EAP‑MD5 보안 강화 방안: 사전 공격 저항성 향상 아이디어
초록
본 논문은 IEEE 802.1X 표준에서 사용되는 EAP‑MD5 인증 프로토콜의 사전(dictionary) 공격 취약점을 분석하고, 인증 속도를 크게 희생하지 않으면서 보안을 강화할 수 있는 새로운 설계 아이디어를 제안한다. 기존 공격 메커니즘을 재현하고, 제안 방식은 서버‑클라이언트 간에 동적 솔트와 이중 해시 구조를 도입함으로써 사전 공격 성공 확률을 실질적으로 낮춘다.
상세 분석
EAP‑MD5는 802.1X 환경에서 가장 간단하고 빠른 인증 메커니즘 중 하나로, 클라이언트가 비밀번호를 MD5 해시 형태로 전송하고 서버가 이를 검증한다. 그러나 설계 단계에서 ‘솔트(salt)’ 개념이 도입되지 않았기 때문에 동일한 비밀번호에 대해 항상 동일한 해시값이 생성된다. 이 특성은 공격자가 사전(dictionary) 공격을 수행할 때, 미리 준비한 해시 사전만으로도 대다수의 인증 시도를 성공시킬 수 있게 만든다.
논문은 먼저 EAP‑MD5 인증 흐름을 상세히 재현한다. 인증 서버는 챌린지(난수) C를 클라이언트에게 전송하고, 클라이언트는 비밀번호 P와 C를 결합해 MD5(P‖C)를 계산한 뒤 응답한다. 서버는 동일한 연산을 수행해 비교한다. 여기서 문제는 C가 짧고 예측 가능하거나 재사용되는 경우가 많아, 공격자는 C와 P의 조합을 사전 공격에 포함시킬 수 있다는 점이다. 특히, 많은 실제 구현에서 C가 8바이트 이하이며, 일부 장비는 고정된 C 값을 사용한다는 것이 실험을 통해 밝혀졌다.
사전 공격 시나리오를 구체화하면, 공격자는 네트워크 트래픽을 스니핑하거나 인증 서버에 직접 접근해 C값을 획득한다. 이후 사전에 준비한 “비밀번호‑챌린지” 해시 테이블을 이용해 일치 여부를 빠르게 판단한다. MD5의 충돌 취약성은 이 경우 크게 영향을 미치지 않으며, 오히려 빠른 해시 연산이 공격 효율을 높인다.
논문이 제안하는 개선 아이디어는 크게 두 가지 요소를 결합한다. 첫째, 서버가 매 인증 시도마다 128비트 이상의 고품질 난수 S를 생성하고, 이를 클라이언트에게 전송한다. 둘째, 클라이언트는 비밀번호 P와 S를 결합해 2단계 해시를 수행한다. 구체적으로, H1 = MD5(P‖S), H2 = MD5(H1‖C)와 같이 두 번 해싱함으로써 동적 솔트와 챌린지를 모두 포함한다. 서버는 동일한 연산을 수행해 검증한다.
이 설계는 다음과 같은 보안 효과를 제공한다. (1) S가 매번 새로 생성되므로 동일 비밀번호라도 매 인증마다 전혀 다른 해시값이 산출된다. (2) 사전 공격자는 S 값을 알지 못하면 사전 테이블을 미리 만들 수 없으며, 실시간으로 S를 포함한 해시를 계산해야 하므로 비용이 기하급수적으로 증가한다. (3) 기존 EAP‑MD5의 빠른 인증 속도를 유지한다. MD5 연산은 여전히 두 번만 수행되며, 추가된 난수 전송은 기존 802.1X 프레임에 작은 부가 정보를 삽입하는 수준으로 구현 가능하다.
논문은 또한 제안 방안의 성능 평가를 수행한다. 실험 환경은 1 Gbps 이더넷과 표준 무선 LAN(AP)에서 각각 10,000회 인증을 수행한 결과, 평균 인증 지연은 기존 방식 대비 0.3 ms 증가에 그쳤다. 이는 실무에서 감내 가능한 수준이며, 보안 강화 효과와 비교했을 때 충분히 타당한 트레이드오프임을 보여준다.
마지막으로, 제안 방식은 기존 EAP‑MD5 구현을 크게 수정하지 않고도 적용 가능하도록 설계되었다. 서버 측에서는 챌린지 전송 직후 추가 난수 S를 포함시키고, 클라이언트 측에서는 인증 라이브러리에서 두 단계 해시 로직을 삽입하면 된다. 따라서 레거시 장비와의 호환성을 유지하면서도 사전 공격에 대한 저항성을 크게 높일 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기