사전 공격
IT 위키
더 많은 작업
- Dictionary Attack; 사전 대입 공격
- 아이디나 패스워드가 될 가능성이 높은 단어를 미리 사전 파일로 만들어 두고, 그 목록을 차례로 대입하여 인증을 뚫는 공격
- 사람이 정하는 패스워드는 실제로 쓰이는 낱말, 이름, 생년월일, 단순한 자판 배열에 몰려 있다.
사전 공격은 이 편중을 노려 가능성이 높은 후보만 시도한다.
- 무차별 대입 공격 이 가능한 모든 값을 빠짐없이 대입하는 것과 달리, 사전 공격은 후보를
좁혀 시도 횟수를 크게 줄인다. 대신 사전에 없는 패스워드는 찾지 못한다.
- 사전 파일에는 유출된 패스워드 목록, 기본 계정의 초기 패스워드, 서비스 이름 등이 들어가며,
`password` → `p@ssw0rd` 같은 변형 규칙을 함께 적용하는 것이 보통이다.
- 두 방식을 이어 붙여 사전으로 먼저 훑고 실패하면 무차별 대입으로 넘어가는 방식을
하이브리드 공격 이라 한다.
| 구분 | 사전 공격 | 무차별 대입 공격 |
|---|---|---|
| 대입 대상 | 사전 파일에 있는 후보만 | 가능한 모든 문자 조합 |
| 시도 횟수 | 적다 | 많다 |
| 성공 조건 | 패스워드가 사전에 있어야 한다 | 시간만 충분하면 반드시 성공한다 |
| 약한 상대 | 낱말·이름 기반의 패스워드 | 짧은 패스워드 |
- 사전에 오를 만한 낱말을 쓰지 못하도록 패스워드 복잡도 정책을 강제한다
- 로그인 실패 횟수를 제한하여 계정을 잠그거나 시도 간격을 늘린다
- 저장 시 계정마다 다른 솔트 를 붙여 해시한다. 미리 계산해 둔 결과를 재사용할 수 없게 된다
- 반복 횟수를 키운 느린 해시 함수를 써서 한 번의 시도 비용 자체를 높인다
- 다중 인증을 적용하여 패스워드만으로는 인증이 끝나지 않게 한다