1. 패스워드 크래킹
1) 인증 및 인증수단
▣ 인증이란?
- 로그인 요청 등을 통해 통신 상에서 보내는 사람의 자격검증
▣ 인증 수단
1. 알고 있는 것(Something you know) : password
2. 가지고 있는 것(Something you have) : 신용카드, RFID 카드
3. 자신의 어떤 것(Something you are) : 지문, 망막, 음성, 서명
4. 자신이 있는 곳(Somewhere you are) : 위치
- 가장 빈번하게 사용되는 인증 수단은 password
- 은행, 주식, 군대 등 가장 흔하게 사용
- 패스워드는 해커에게 가장 매력적인 침투 수단
☞ ID와 PW만 알고 있으면 어디서든 침투 가능하니까.
2) 취약한 패스워드 분류
▣ 취약한 패스워드
1. 길이가 너무 짧거나 아예 패스워드가 설정되어 있지 않은 경우
2. 사전에 나오는 단어나 이들의 조합
3. 키보드 자판의 나열
4. 사용자 계정정보에서 유추한 단어
▣ 안전한 규칙
- 영어 대, 소문자 / 숫자 / 기호
- 위의 2가지만 사용 시 : 10글자 이상
- 위의 3가지만 사용 시 : 8글자 이상
3) 해시와 암호화
# 운영체제에서 패스워드를 숨기는 방법은 해시와 암호화
▣ 해시
- 임의의 데이터로부터 일종의 짧은 문자열로 만들어내는 방법.
- 해시함수는 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용해 결과를 만들어냄.
- 이 결과를 해시 값이라 함.
- 1:1 대응 -> 무조건 하나의 평문에는 대응하는 오직 단 하나의 해시값이 나옴 (알고리즘이 동일하다는 전제하에)
▣ 암호화
- 특별한 지식을 소유한 사람을 제외하고는 누구든지 읽어볼 수 없도록 알고리즘을 이용해 데이터를 전달.
- 이러한 과정을 통해 암호화된 정보를 생성할 수 있음.
- 암호화된 정보는 복호화하여 다시 읽을 수 있음.
4) Salt
▣ Salt
- 패스워드는 해시와 암호화 알고리즘으로 변경하여 저장됨.
- 예를 들어, root계정과 i2sec계정의 패스워드가 123456으로 동일할 경우 암호화 및 해시 모두 똑같은 값으로 저장될 것임.
☞ 알고리즘이 동일하니까
- Salt는 똑같은 패스워드를 숨기기 위한 첨가물.
- 패스워드 크래킹을 어렵게 만드는 보안 강화 기법임.
- 같은 패스워드더라도 다른 값으로 저장이 됨. => 해시의 고유함이라는 단점을 보완.
◈ Salt 미적용
계정 | 패스워드 | MD5 |
root | 123456 | E10ADF3151ASDVC21518421EEVCVE151C4V81D231F6D121CV |
i2sec | 123456 | E10ADF3151ASDVC21518421EEVCVE151C4V81D231F6D121CV |
◈ Salt 적용
계정 | 패스워드 | MD5 |
root | 123456 | E10ADF3151ASDVC21518421EEVCVE151C4V81D231F6D121CV |
i2sec | 123456 | DVAC51512DVC411VCCCE6511VC244V1E5V2C2Z1C2V154DDD |
5) 패스워드 크래킹 방법론
▣ 사전 대입 공격 (Dictionary Attack)
- 사용자의 패스워드에 특정 패턴이 존재함을 착안
- 패스워드로 사용될만한 것들을 사전파일로 만든 뒤 하나씩 대입
- 공격 대상의 개인정보를 안다면 효율적
장점 | 시간이 빠름 |
단점 | 사전 파일의 퀄리티가 중요. 해당하는 패스워드가 없으면 크랙 불가 |
▣ 무작위 대입 공격 (Brute Force Attack)
- 사전 공격 실패시 사용
- 영어, 숫자, 특수문자 패턴 중 선택한 패턴과 길이만 선택한 후 모든 가능한 경우의 수로 공격시도
- 짧은 길이와 단순한 패턴에 효율적.
장점 | 무조건 백프로 다 크랙 가능함 |
단점 | 시간이 너무 걸림 |
▣ 레인보우 테이블 (Rainbow Table) 공격
- 패스워드 별로 해시 값을 미리 생성해 놓은 것
- 크래킹 하고자 하는 해시 값을 테이블에서 검색해서 역으로 패스워드를 찾음
- 모든 패스워드들에 대한 해시 값을 구한다면 용량은 수치화 불가 => 너무 많음...
- 레인보우 테이블의 핵심은 R(Reduction) 함수를 이용해 작은 크기로 줄이는 것에 있음
# R함수
- 해시테이블을 작은 크기로 줄이기 위함
- 해시테이블의 해시 값으로 패스워드 문자열을 만들어 내는 함수
- 규칙은 만들기 나름. 여기서는 MD5 해시값 중 앞의 6개 숫자만 뽑아낸다고 가정.
- MD5 해시 생성과 R함수 동작의 반복을 체인이라 칭함.
- 일반적으로 체인은 몇천번에 걸쳐 형성
i2sec 대구지점 23기 수료생.
'해킹&보안 > 시스템해킹&보안' 카테고리의 다른 글
쉘 프로그래밍 (0) | 2017.03.16 |
---|---|
[D+5] Backdoor (백도어) (2) (0) | 2017.03.08 |
[D+4] Backdoor (백도어) (1) (0) | 2017.03.07 |
[D+3] Setuid (권한상승) (0) | 2017.03.06 |
[D+2] 패스워드 크래킹 (2) (3) | 2017.03.05 |