컴퓨테이션 챌린지 기반 온라인 사전 공격 방지 프로토콜
초록
CompChall은 단방향 해시만을 이용해 온라인 사전 공격을 억제하는 무상태 인증 프로토콜이다. 서버가 20비트 난수 r와 128비트 난수 R를 포함한 해시 챌린지를 전송하고, 클라이언트는 모든 가능한 r값을 대입해 해시를 역산해 r를 찾아 응답한다. 이 과정은 의도적으로 시간·연산 비용을 높여 공격자가 짧은 시간에 다수의 로그인 시도를 할 수 없게 만든다. MAC와 실패 카운터 n을 활용해 재전송 및 재사용 공격을 방지하고, 서버는 상태 정보를 저장하지 않아 DoS에 강한 설계를 갖는다.
상세 분석
CompChall 프로토콜은 온라인 사전 공격을 근본적으로 억제하기 위해 “연산 비용 기반 차단”이라는 아이디어를 채택한다. 기존의 계정 잠금, 지연 응답, CAPTCHA 등은 각각 DoS 취약성, 병렬 공격 회피 불가, 인공지능 기반 우회 등 심각한 한계를 가지고 있었다. 본 논문은 이러한 문제점을 인식하고, 클라이언트가 반드시 수행해야 하는 계산을 설계 단계에서 강제한다는 점에서 차별성을 가진다.
프로토콜은 네 단계로 구성된다. 1단계에서 클라이언트는 단순 로그인 요청을 전송한다. 2단계에서 서버는 20비트 난수 r와 128비트 난수 R를 결합해 H(r‖R)를 계산하고, 동시에 MAC = H(H(r‖P)‖Alice‖K_Bob‖n)를 전송한다. 여기서 r는 작은 비트 길이이지만, R이 매번 새롭게 생성되는 ‘소금(salt)’ 역할을 하여 사전 계산 공격을 무력화한다. 클라이언트는 R을 알고 있으므로 H(r‖R)와 R을 이용해 가능한 모든 2^20 r값을 대입해 해시를 역산하고, 올바른 r를 찾아낸다. 이 과정은 약 5초 정도 소요되며, 서버 입장에서는 거의 비용이 들지 않는다.
3단계에서 클라이언트는 자신의 아이디와 H(r‖P), 그리고 2단계에서 받은 MAC을 그대로 반환한다. 서버는 수신된 H(r‖P)와 저장된 비밀키 K_Bob, 현재 실패 카운터 n을 이용해 MAC을 재계산하고 비교한다. MAC에 n이 포함되어 있기 때문에, 실패가 발생하면 n이 증가하고 동일한 MAC을 재사용하는 재전송 공격은 즉시 실패한다. 또한 성공 시 n은 증가하지 않으므로, 사용자는 마지막 성공 로그인 이후에 동일한 r을 재사용할 수 있어 사용자 경험을 크게 저해하지 않는다.
4단계는 성공/실패 응답만을 전송함으로써 프로토콜을 종료한다. 중요한 점은 서버가 r, R, 혹은 n을 클라이언트에게 전달받은 후 별도로 저장할 필요가 없다는 것이다. MAC 검증만으로 모든 상태를 판단할 수 있기 때문에, 서버는 무상태(stateless) 설계를 유지하고, 이는 대규모 DoS 공격에 대한 내성을 제공한다.
보안 분석 측면에서, 본 논문은 다음과 같은 위협을 검토한다. (1) 오프라인 사전 공격: 전송 내용이 모두 해시와 MAC으로 보호되므로, 단순히 패킷을 캡처해도 평문 비밀번호를 복구하기 어렵다. 다만, SSL/TLS와 같은 전송 암호화가 없을 경우 해시값 자체가 오프라인 공격에 활용될 위험이 있다. 저자는 SSL을 전제 조건으로 제시한다. (2) 재전송 및 재사용 공격: MAC에 n이 포함되어 있어, 동일한 MAC을 재사용하면 n 불일치로 즉시 거부된다. (3) 사전 계산 공격: R이 매번 무작위로 제공되므로, 공격자는 r에 대한 해시 테이블을 미리 구축할 수 없으며, 매 로그인 시마다 새로운 R에 대해 전체 2^20 r을 탐색해야 한다. (4) 서버 측 DoS: 서버는 단순 해시와 MAC 연산만 수행하므로, 대량의 로그인 요청에도 비교적 가벼운 부하만 발생한다.
성능 측면에서는 클라이언트에게 연산 부담을 전가함으로써 서버 비용을 최소화한다. 20비트 난수와 128비트 난수 조합은 연산량을 조정하기 용이하며, 필요에 따라 r의 비트 수를 늘리거나 줄여 공격자의 시도당 처리량을 제어할 수 있다. 또한, 성공 로그인 후 재사용 가능한 r을 허용함으로써 정상 사용자의 로그인 지연을 최소화한다.
한계점으로는 클라이언트 측 연산이 일정 수준 이상 요구되므로, 저성능 디바이스(예: 구형 모바일, 임베디드 시스템)에서는 사용자 경험이 저하될 수 있다. 또한, 프로토콜 자체가 오프라인 사전 공격에 완전한 방어를 제공하지 않으며, SSL 등 외부 암호화 계층에 의존한다는 점이 있다. 마지막으로, MAC 생성에 사용되는 비밀키 K_Bob이 서버에만 존재한다는 전제 하에 키 관리가 중요하며, 키 유출 시 전체 시스템이 위험에 처한다.
종합적으로, CompChall은 온라인 사전 공격을 억제하기 위한 실용적인 설계이며, 무상태 특성과 연산 기반 차단 메커니즘을 통해 기존 방법들의 주요 단점을 보완한다. 실제 적용 시에는 클라이언트 연산 부담, 키 관리, 전송 암호화와 같은 부가적인 요소들을 함께 고려해야 할 것이다.
댓글 및 학술 토론
Loading comments...
의견 남기기