1. 개요


1.1. Bruteforce 공격이란?

출처 : Research Gate(photo by Fahad E Salamh)

출처 : Research Gate(photo by Fahad E Salamh)

특정한 암호를 풀기 위해 가능한 모든 값을 대입하여 푸는 방법을 말한다.

해쉬함수를 간단하면서도 강력하게 뚫을 수 있는 공격이라는 장점을 가지고 있다. 결론적으로, 대부분의 암호화 방식들 이 공격에 안전하지 못하지 못하다. 암호를 푸는데 긴 시간이 걸린다는 점과 대부분의 경우를 계산하더라도 컴퓨터 자원을 낭비할 수 있다는 단점이 있다.

특히, 자릿수, 한 자리에 들어가는 문자의 개수에 따라 그 경우의 수가 천차만별이며, 그 만큼 소요되는 시간도 길어진다.

1.2. 공격 방법 및 종류

일반적인 방법으로는 모든 경우의 수를 대입하면서 풀지만, 최근에는 여러 방법 및 종류로 나뉘어졌으며, 무작정 대입보다는 다음과 같은 방법을 선호하기도 한다.

1.2.1 사전 공격

사전에 비밀번호 리스트와 같은 여러 단어들을 적어 사전을 만들고, 이를 돌려 대입하며 공격한다.

Kali Linux의 John the Ripper툴이 이 방법을 사용하여 공격한다.

출처: John the Ripper 공식 홈페이지

출처: John the Ripper 공식 홈페이지

1.2.2 역 무차별 대입 공격

많은 계정들을 대상으로 흔한 비밀번호를 반복적으로 시도한다.

이 또한, 흔한 비밀번호 리스트가 담긴 사전 파일을 이용하여 시도하기도 한다.

1.2.3 인증 정보 스터핑

사이트 또는 서비스에서 훔친 유저의 아이디 및 비밀번호를 사용해 다른 서비스에서도 대입해봄으로써 하이재킹을 한다. 이는 일반적인 사전 공격, 또는 DB에 sql injection을 통하여 유출된 사전들을 이용해 여러 서비스에 대입해본다.