🔑 Dictionary Attack(사전 공격) 정리
“파이썬 딕셔너리 공부하다가 생각나서 정리해보는 Dictionary Attack”
📌 사전 공격이란?
사전 공격(Dictionary Attack)은 미리 준비된 단어 목록(사전, dictionary)에 있는 단어들을 이용해 암호를 추측하거나 해독하는 공격 방식입니다.
공격자는 흔히 사용되는 단어, 구문, 숫자 조합 등으로 구성된 사전을 활용해 시스템이나 계정에 접근을 시도한다.
⚙️ 작동 방식
- 사전 준비
- 자주 쓰는 단어, 이름, 숫자 조합, 비밀번호 패턴 등으로 사전(wordlist) 생성
- 암호 추측
- 사전의 단어들을 하나씩 입력하여 암호와 비교
- 일치 여부 확인
- 일치하는 암호가 발견되면 해당 계정에 접근
📝 공격 예시
- 단어 목록 공격:
‘password’, ‘123456’, ‘admin’ 등 흔한 비밀번호 시도 - 구문 공격:
‘iloveyou’, ‘happybirthday’ 등 자주 쓰는 구문 시도 - 이름 공격:
사용자, 가족, 친구 등의 이름 활용
🛡️ 방어 방법
- 길고 복잡한 비밀번호 사용:
대소문자, 숫자, 특수문자를 조합해 15자 이상으로 설정 - 비밀번호 관리자 사용:
무작위로 생성된 복잡한 비밀번호를 안전하게 저장·관리 - 이중 인증(MFA) 활성화:
비밀번호 유출 시에도 추가 인증 필요 - 강력한 해싱 알고리즘 사용:
서버에서 비밀번호를 안전하게 저장해 해독 난이도 상승
🕰️ 사전 공격의 역사와 진화
시대/단계 | 특징 및 변화 |
---|---|
초창기 | 비밀번호가 단순해, 사전이나 흔한 단어를 수작업으로 입력하며 추측 |
자동화 도구 등장 | 컴퓨터 성능 향상으로 자동화 프로그램을 사용, 대량의 단어와 조합을 빠르게 시도 |
워드리스트 확장 | 숫자, 특수문자, 대소문자, 속어, 외국어 등 다양한 변형 포함 |
패스워드 맹글링 | 대소문자 변경, 문자 치환(a→@, o→0), 숫자/기호 추가 등 변형 규칙 적용 |
규칙 자동화 | 맹글링 규칙 생성까지 자동화, 더 많은 변형 비밀번호 생성 가능 |
타임-스페이스 트레이드오프 | 미리 해시값을 계산해 저장(레인보우 테이블 등), 실시간 공격 속도 향상 |
요약:
딕셔너리 어택은 단순 수작업에서 자동화·고도화된 공격까지 발전했으며, 약한 비밀번호를 노린 실제 해킹 사고에 많이 활용되었다. 강력한 비밀번호, 이중 인증, 안전한 해싱 등으로 방어할 수 있다.