바이오메트리 기반 원격 인증의 취약점 재조명과 개선 방안
초록
본 논문은 Yan 등(2013)의 바이오메트리 기반 원격 인증 프로토콜을 개선한 Dheerendra 등(2022)의 스킴을 분석한다. 분석 결과, Dheerendra 스킴이 오프라인 신원 추측 공격에 취약함을 밝혀내고, 해당 공격이 성공하면 인증 위조, 세션 키 탈취, 재전송 공격 등 주요 보안 위협을 모두 수행할 수 있음을 입증한다.
상세 분석
먼저, Yan et al.이 제안한 원격 인증 프로토콜은 사용자의 생체 정보와 비밀번호를 결합하여 서버와의 상호 인증을 수행하도록 설계되었다. 그러나 해당 스킴은 초기 설계 단계에서 키 교환 과정의 무결성 검증이 부족하고, 사용자 식별자(ID)가 해시값 형태로 전송되는 점에서 사전 지식이 없는 공격자는 ID를 추측하기 어려울 것이라는 가정에 의존한다. Dheerendra et al.은 이러한 문제점을 보완하기 위해 인증 메시지에 추가적인 난수와 해시 연산을 삽입하고, 서버가 사용자에게 전송하는 인증 토큰에 시간 스탬프를 포함시켰다. 겉보기에는 재전송 방지와 세션 고유성 확보에 도움이 되는 것으로 보였지만, 실제 구현에서는 몇 가지 중요한 약점이 남아 있었다.
첫 번째 약점은 사용자 식별자(ID)가 여전히 고정된 해시값 h(ID‖x) 형태로 전송된다는 점이다. 여기서 x는 서버가 비밀로 유지하는 값이지만, 공격자는 사전 공격(dictionary attack)이나 무차별 대입 공격을 통해 가능한 ID 후보군을 미리 생성하고, 캡처한 인증 메시지의 해시값과 비교함으로써 정확한 ID를 추정할 수 있다. 특히, 의료 시스템에서는 환자 ID가 제한된 형식(예: 주민등록번호, 병원 발급 번호)으로 구성되는 경우가 많아 사전 공격의 효율성이 크게 증가한다.
두 번째 약점은 오프라인 공격을 가능하게 하는 해시 연산의 구조이다. Dheerendra 스킴은 클라이언트가 전송하는 메시지에 h(PW‖r1)와 같은 형태의 해시값을 포함시키는데, 여기서 PW는 사용자의 비밀번호, r1은 클라이언트가 생성한 난수이다. 공격자는 캡처한 메시지와 서버가 반환한 인증 응답을 이용해 PW와 r1의 조합을 무차별 대입으로 시험해볼 수 있다. 서버와 클라이언트 간에 교환되는 모든 데이터가 공개 채널을 통해 전송되므로, 공격자는 충분한 샘플을 확보한 뒤 오프라인으로 연산 비용만으로 비밀번호를 복구할 수 있다.
세 번째로, 인증 토큰에 포함된 시간 스탬프가 충분히 정밀하지 않으며, 서버가 토큰 유효성을 검증할 때 허용하는 시간 윈도우가 넓게 설정돼 있다. 이는 재전송 공격을 완전히 차단하지 못하고, 공격자가 동일한 인증 토큰을 일정 기간 내에 재사용함으로써 인증을 우회할 수 있는 여지를 남긴다.
마지막으로, 키 교환 단계에서 사용되는 대칭키 K가 클라이언트와 서버 사이에 직접 전송되지 않고, h(ID‖PW‖r2) 형태로 파생되지만, r2가 클라이언트에 의해 생성된 난수임에도 불구하고 해당 값이 인증 메시지에 평문으로 포함된다. 공격자는 r2 값을 획득하면 K를 재구성할 수 있으며, 이는 이후 모든 세션에 대한 기밀성을 위협한다.
이러한 일련의 취약점을 종합하면, 공격자는 오프라인 신원 추측 공격을 성공시킨 뒤, 인증 위조, 세션 키 탈취, 재전송 공격, 심지어 서버에 대한 서비스 거부(DoS) 공격까지 수행할 수 있다. 따라서 Dheerendra et al.이 제시한 개선안은 근본적인 설계 결함을 해결하지 못했으며, 보다 근본적인 프로토콜 재설계가 필요함을 확인한다.
댓글 및 학술 토론
Loading comments...
의견 남기기