패스워드 크래킹에 대해서 정리해보겠습니다🔑🗝🔏🔐
패스워드 크래킹이란 말 그대로 패스워드를 알아내는 해킹 기법이다.
사전 대입 공격 ( Dictionary Attack )
패스워드가 될 만한 것들을 모두 적어놓고 하나씩 대입을 해본다.
공격 대상의 개인정보를 안다면 효율적이다.
장점 : 무작위 공격에 비해 빠르다
단점 : 사전에 저장되어 있지 않다면 크래킹 불가.
무작위 대입 공격 ( Brute Force Attack )
조합 가능한 모든 패스워드를 대입해보는 것으로 대입하여 똑같은 해시값이 나오면 성공한다.
모든 해시를 뚫을 수 있지만 패스워드에 따라 시간이 매우 오래걸릴 수 있다. ( 살아있는 동안 못 뚫을 수도... )
장점 : 높은 성공률을 자랑하고 패스워드가 짧을 수록 좋다.
단점 : 패스워드가 짧은 경우가 없어서 시간이 오래 걸린다.
레인보우 테이블 공격 (Rainbow Table Attack)
패스워드 별로 해시 값을 미리 생성해 놓은 것이고 크래킹 하고자 하는 해시 값을 테이블에서 검색해서 역으로 패스워드를 찾는다. 용량에 부담이 있어 R함수를 이용해 작은 크기로 줄인다.
R함수 : 일정한 패턴이나 유사한 것을 이용하여 특정 값만 저장한다.
패스워드 | 해시 |
123456 | E10ADEERR432105D~~ |
104321 | G4EN5320KDL3EAQD~~ |
453203 | A5E25H523HA24DAB~~ |
표에서 과정은 몇 천번을 하고 최종 테이블로 간다.
최종 테이블에는 최초 패스워드와 최종 해시값을 저장한다.
패스워드 |
해시 |
123456 | A5E25H532HA24DAB~~ |
이런 값들을 레인보우 테이블에 저장한다.
[ 패스워드를 찾는 방법 ]
G4EN5320KDL3EAQD에 대한 패스워드를 알고 싶다면 먼저 최종 테이블에 해시값이 있는 지 확인한다.
없으면 해시값을 R함수로 추출한다. ( 453203 )
R함수값으로 다시 해시값을 추출한다. ( A5E25H32HA24DAB )
생성한 값이 최종 테이블에 있는지 확인한다.
있다면 최초 패스워드를 알아내고 최초 패스워드 해시값부터 타고 내려오면 된다.
참조 : http://wiki.hash.kr/index.php/%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C_%ED%81%AC%EB%9E%98%ED%82%B9
'시스템 해킹 > 내 맘대로 시스템 해킹' 카테고리의 다른 글
해시와 암호화 (0) | 2020.02.09 |
---|