무차별 대입 공격이란 무엇인가요?
무차별 대입 공격은 올바른 값을 찾을 때까지 가능한 모든 조합을 체계적으로 시도하여 비밀번호, 암호화 키, 또는 기타 비밀을 알아내려는 암호 분석 방법이다.
다른 이름: brute force, password cracking, exhaustive search
무차별 대입 공격은 어떤 비밀에 대해서든 가장 단순한 형태의 공격이다. 모든 가능성을 시도하는 것이다. 4자리 PIN에는 1만 가지 조합이 있어 컴퓨터에게는 사소하다. 8자리 소문자 비밀번호에는 약 2090억 가지 조합이 있어 현대 하드웨어로 가능하다. 256비트 암호화 키에는 2^256가지 가능성이 있어, 알려진 물리 법칙으로 상상할 수 있는 어떤 기술로도 계산적으로 불가능하다.
실무에서 공격자는 비밀번호에 대해 순수한 무차별 대입을 거의 수행하지 않는다. 대신 최적화된 변형을 사용한다. 사전 공격(흔한 비밀번호와 단어 시도), 규칙 기반 공격(숫자 덧붙이기나 문자 치환 같은 일반적 변형 적용), 자격 증명 스터핑(다른 데이터 유출에서 새어 나온 비밀번호 사용), 레인보우 테이블 공격(사전 계산된 해시 조회 테이블 사용)이다. 이 기법들은 사람이 고른 비밀번호의 예측 가능성을 이용해 탐색 공간을 크게 줄인다.
무차별 대입 공격에 대한 방어는 여러 수준에서 작동한다. 강력한 비밀번호와 긴 암호화 키는 완전 탐색을 비현실적으로 만든다. 속도 제한은 기간당 시도 횟수를 제한한다. 계정 잠금 정책은 여러 번 실패 후 접근을 막는다. PBKDF2, bcrypt 같은 키 유도 함수는 각 시도를 계산적으로 비싸게 만든다. 솔팅은 사전 계산된 조회 공격을 막는다. 이 방어들이 합쳐져 무차별 대입 공격의 비용을 모든 실용적 임계값 너머로 끌어올린다.
Vaulted가 무차별 대입 공격을 사용하는 방법
Vaulted는 여러 수준에서 무차별 대입 공격을 방어한다. AES-256-GCM 암호화 키는 무작위 256비트 값이므로 무차별 대입 복호화가 계산적으로 불가능하다. 패스프레이즈로 보호된 비밀의 경우, 반복 10만 회의 PBKDF2가 비밀번호 추측 시도마다 비용을 크게 늘린다. 서버 측 속도 제한(IP당 분당 생성 10회, 조회 30회)은 API에 대한 빠른 자동화 시도를 막는다. 그리고 조회 제한은 비밀이 소수의 접근 후 영구 삭제되도록 하여 반복 추측의 창을 닫는다.