본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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