패스워드 크래킹
패스워드 크래킹(password cracking)이란 해당 시스템에 저장된 패스워드를 알아내는 해킹 기법이다.
개요[편집]
패스워드 크래킹은 네트워크 컴퓨터 시스템에 의해 전송된 저장 위치로부터 또는 데이터로부터 패스워드를 복구하는 것을 포함한다. 패스워드 크래킹의 목적은 컴퓨터 시스템에 무단 접근을 통해 권한을 얻거나 잊어버린 암호를 복구하기 위해 사용한다. 해커가 시스템을 해킹할 수 있도록 테스트 암호 강도를 위한 기술은 크래킹 암호를 사용하는 또 다른 이유가 될 수 있다. 일반적으로 반복적 작업이나 일정한 패턴, 조합 등을 통해 알아내기도 한다. 패스워드 크래킹은 해킹 기법 중 난이도는 낮지만 가장 강력한 공격이다. 또한 보안 프로그램이 설치되어 있어도 얼마든지 크래킹이 가능하다.
특징[편집]
공격 기법[편집]
- 무작위 대입 공격(Brute Force Attack)
- 무작위 대입 공격이란 조합 가능한 모든 패스워드를 대입해보는 것으로 대입하여 똑같은 해시값이 나오면 성공한다. 기본적으로 모든 해시는 해당 기술로 뚫을 수 있다. 다만, 그 시간이 짧을 수도 있지만 천문학적인 시간이 걸릴 수도 있다. 따라서 패스워드 길이를 길게 늘여 찾는데 걸리는 시간을 최대한 오래 걸리게 함으로써 쉽게 뚫리는 것을 방지할 수 있다. MD5는 해당 기술로 빨리 뚫리기 때문에 보안 목적으로 적합하지 않다.
- MD5의 경우 25개의 GPU로 초당 1,800억 개의 패스워드 대입이 가능하다. 단순 영문 대소문자, 숫자만 조합한 8자리 고정 패스워드의 경우 62^8개의 조합이 가능한데, 이 경우 62^8/1800억 = 1212초로 불과 20분이면 해당 패스워드를 알아내는 것이 가능하다. 패스워드 길이를 늘린다면 당연히 찾아내는데 오랜시간이 걸려 안전하겠지만 지금과 같이 수치 연산에 강력한 GPU 사용으로 인해 좀더 획기적인 패스워드 설정 방법이 나오는 것이 필요하다.
- 장점 : 100% 성공률을 보장하고 패스워드 길이가 짧으면 패스워드를 찾는데 짧은 시간이 소요된다.
- 단점 : 패스워드 길이가 짧지 않은 경우가 대부분이어서 평균적으로 오랜 시간이 걸린다.
- 레인보우 테이블 공격(Rainbow Table Attack)
- 현재 패스워드는 '패스워드 + 해시'를 통해 저장되어 있다. 따라서 패스워드별로 해당 해시값을 미리 저장한 이후 해당 해시값을 통해 역으로 패스워드를 찾아내는 방식이다. 하지만 해시함수는 다양하며 해당 데이터를 모두 저장한다는 것은 메모리 적으로 많은 부담이 된다. 또한 해당 레인보우 테이블을 만드는 데에도 많은 시간이 소요되며 해시에 대한 알고리즘 수행 시간이 길수록 해당 테이블을 얻어내는 것 역시 아주 어렵다. 이러한 단점을 보완하기 위해 나온 것이 R(Reduction) 함수이다. R 함수는 레인보우 테이블을 작은 크기로 줄이는 데 사용되며 일정한 패턴이나 유사한 것들을 이용하여 모든 값을 저장하는 것이 아닌 특정 값만 저장하여 패스워드를 역으로 알아내는 것이다.
- 장점 : 해시 함수를 통한 패스워드 크래킹이 가능하다.
- 단점 : 테이블 생성에 많은 시간이 소요된다.
- 사전 대입 공격(Dicitionary Attack)
- 사전 대입 공격은 예상되는 흔히 쓰이는 패스워드를 모두 저장하여 모두 대입해 보는 방식이다. 무작위의 경우 모든 경우의 수를 따지기 때문에 많은 시간이 소요되고 패스워드가 해당 사전에 저장되어 있지 않을 경우 패스워드 크래킹에 실패한다. 하지만 사전에 저장된 패스워드만 대입하기 때문에 짧은 시간이 소요된다.
- 장점 : 무작위 공격에 비해 짧은 시간이 소요된다.
- 단점 : 사전에 저장된 패스워드가 없을 경우 크래킹이 불가하다.
- 충돌 공격(Collision Attack)
- 충돌 공격은 충돌이 발생하는 경우를 공격하는 것으로, 해시 함수 특성상 같은 문자의 경우 같은 해시값을 가져 충돌이 발생한다는 것이다. 따라서 해당 해시함수를 통해 무작위로 패스워드를 입력하여 같은 해시값이 나올 때까지 반복하는 작업을 한다. 해당 공격을 방지하기 위해 나온 것이 다양한 해시함수를 사용하는 것과 솔트(salt) 기술을 병합하는 것이다. 해당 기술은 앞서 충돌 공격을 방지하기 위한 것으로 같은 패스워드일지라도 '패스워드 + 해시 + 솔트' 구조로 인해 해시값은 다른 결과를 가져온다.
- 장점 : 무작위 공격과 유사하여 패스워드를 100% 찾아낸다.
- 단점 : 현재 보안 정책이나 기술로는 충돌 공격을 하는 것이 불가능하다.
- 혼합 공격(Hybrid Attack)
- 혼합 공격이란 앞서 설명한 무작위 대입 공격과 사전 대입 공격 기술을 합한 것을 의미한다. 사전에 포함된 패스워드를 기반으로 무작위로 대입하여 찾아내기도 하며, 이를 기반으로 무작위 대입을 실행하는 것이다.
- 사회공학적 공격(Guessing Attack)
- 사회공학적 공격이란 해당 사용자가 인적사항이나 행동, 실수 등을 통해 패스워드를 알아내는 것이다. 직업이나 환경, 공동체 내의 공통적인 암호 등을 통해 유추해내어 패스워드를 알아내는 것이다. 현재 암호화가 강화되어 위에 기술된 방법을 통해 찾는 것은 많은 시간이 걸려 상황에 따라 비효율적일 수 있으며 찾지 못하는 경우도 있으나 짧은 시간에 찾을 수 있다는 장점이 있다.[1]
패스워드 크래킹 툴[편집]
- 존 더 리퍼(John the ripper) : 패스워드 크래킹 툴의 대표적인 툴이다. 패스워드 크래킹의 대두분의 기법들이 포함되어 있다.
- Ophcracker : 레인보우 테이블을 통한 크래킹 툴이다.
- 카인과 아벨(Cain & Abel) : 윈도우 GUI 기반 도구로 스니핑(Sniffing)과 ARP 포이스닝(Posisoning), 중간자 공격(MITM)에 주로 사용된다.
- 히드라(Hydra) : 네트워크 패스워드 크래킹 툴이다.
- 메두사(Medusa) : 히드라와 유사한 툴로 히드라에 비해 빠른 속도를 지니고 있다.
- 에어크랙(Aircrack) : 무선 네트워크의 패스워드를 크래킹하는 툴이다.[1]
솔트(Salt)[편집]
패스워드는 해시와 암호화 알고리즘으로 변경되어 저장되는데 솔트는 똑같은 패스워드를 숨기기 위한 첨가물로써 패스워드 크래킹을 어렵게 만드는 보안 강화 기법이다. 이는 같은 패스워드라도 다른 값으로 저장이 되게 하여 해시의 고유함이라는 단점을 보완해준다. 예를 들어, root계정과 i2sec계정의 패스워드가 123456으로 동일할 경우 솥트 미적용 시 알고리즘이 동일하기 때문에 암호화 및 해시 모두 똑같은 값으로 저장된다. 반대로 솔트 적용시 다른 해시값이 저장된다. [2]
Salt 미적용 계정 패스워드 MD5 root 123456 E10ADF3151ASDVC21518421EEVCVE151C4V81D231F6D121CV i2sec 123456 E10ADF3151ASDVC21518421EEVCVE151C4V81D231F6D121CV
Salt 적용 계정 패스워드 MD5 root 123456 E10ADF3151ASDVC21518421EEVCVE151C4V81D231F6D121CV i2sec 123456 DVAC51512DVC411VCCCE6511VC244V1E5V2C2Z1C2V154DDD
대안[편집]
길이가 짧거나 단순 조합에 의한 패스워드, 반복적인 단어나 특정 단어에 의한 패스워드, 유추가 가능하거나 많은 사람이 사용할만한 패스워드는 패스워드 크래킹 공격에 취약하므로 사용을 자제 해야한다. 따라서 안전한 패스워드는 크게 세 가지로 정리 할 수 있다.
- 적절한 알고리즘 사용(PBKDF2, Bcrypt, Scrypt 등)
- 길이 및 다양한 조합의 패스워드 설정(영문, 숫자, 특수문자 조합 등)
- 패스워드를 암호화할 때 해시값의 반복을 통해 암호화를 극대화해주는 키 스트레칭
패스워드 크래킹의 경우 해킹에 있어 필수적인 요소이며, 사용자의 입장에서 본인을 인증하기에 필수적인 요소이다. 해커에 의해 패스워드가 탈취당할 수 있지만, 대부분 해킹의 경우 사용자나 관리자의 부주의나 안일한 태도로 인해 대부분 발생하기 때문에 조금의 보안 의식을 가지고 책임감을 느낀다면 많은 사고가 발생하지 않을 것이다.[1]
각주[편집]
- ↑ 1.0 1.1 1.2 good player, 〈(System)패스워드 크래킹〉, 《티스토리》, 2018-12-12
- ↑ Hyeonnii, 〈패스워드 크래킹(1)〉, 《티스토리》, 2017-03-02
참고 자료[편집]
- good player, 〈(System)패스워드 크래킹〉, 《티스토리》, 2018-12-12
- Hyeonnii, 〈패스워드 크래킹(1)〉, 《티스토리》, 2017-03-02
같이 보기[편집]