동적 ID 기반 원격 사용자 인증 스킴의 취약점 분석
초록
본 논문은 Yan‑yan Wang 등(2009)이 제안한 동적 ID 기반 원격 사용자 인증 프로토콜을 검토하고, 스마트카드 비밀값(y) 탈취를 전제로 한 비밀번호 추측, 사용자·서버 위장, 서비스 거부 공격 등을 상세히 제시한다. 또한 비밀번호 변경 단계에서 기존 비밀번호 검증이 누락된 설계 결함을 지적한다.
상세 분석
이 논문은 2004년 Das·Saxena·Gulati가 제안한 동적 ID 기반 인증 스킴의 여러 후속 개선안 중 하나인 Yan‑yan Wang 팀의 2009년 논문을 대상으로 암호학적 취약점을 체계적으로 분석한다. 먼저 등록 단계에서 서버가 비밀값 x와 사용자 비밀번호 해시 h(PW) 를 XOR 연산으로 결합해 Ni를 생성하고, 스마트카드에 y 값을 저장한다는 점을 지적한다. y는 모든 사용자의 카드에 동일하게 저장되며, 전력 분석·사이드채널 공격을 통해 추출 가능하다고 가정한다.
-
비밀번호 추측 공격: 공격자는 스마트카드에서 y를 확보하고, 전송된 로그인 메시지(CIDi, Ni, T, IDi) 를 수집한다. 서버가 검증 단계에서 사용한 식
h(PW_i)=CID_i⊕h(Ni⊕y⊕T)⊕ID_i
을 이용해 실제 비밀번호 해시값을 복원한다. 이후 사전 공격이나 무차별 대입을 통해 원본 비밀번호를 알아낼 수 있다. 이 과정은 해시 함수가 충돌 저항성을 갖더라도, 해시값 자체가 노출되면 비밀번호 복구가 가능함을 보여준다. -
사용자 위장 공격: 등록 단계에서 Ni = h(PW_i)⊕h(x)⊕ID_i 로 정의되므로, 공격자는 h(PW_i) 를 알면 h(x) 를 추출할 수 있다. h(x) 를 이용해 임의의 비밀번호 PW* 로 새로운 Ni* 를 계산하고, CID* 를 재구성해 서버에 정상 로그인 요청을 보낼 수 있다. 이는 서버가 사용자 ID와 타임스탬프만 검증하고, 실제 비밀번호 검증을 수행하지 않기 때문에 가능한 공격이다.
-
서버 위장 공격: 서버가 클라이언트에게 전송하는 인증 토큰 a’ = h(h(PW_i)⊕y⊕T’) 를 공격자가 동일한 식으로 생성해 사용자에게 전달하면, 사용자는 서버를 신뢰하게 된다. 이는 서버와 클라이언트가 공유하는 비밀값 y와 h(PW_i) 가 노출된 상황에서 발생한다.
-
서비스 거부(DoS) 공격: 비밀번호 변경 단계에서 기존 비밀번호 검증이 전혀 이루어지지 않는다. 공격자는 스마트카드를 물리적으로 확보하거나 사용자의 부재 시 임의의 기존 비밀번호 PW’ 와 새로운 비밀번호 PWnew 를 입력해 Ni 를 Ni⊕h(PW’)⊕h(PWnew) 로 변조한다. 결과적으로 정당 사용자는 이후 로그인 시도에서 서버와의 일치 검증에 실패해 서비스 이용이 차단된다.
이러한 네 가지 공격 시나리오는 모두 스마트카드 내부 비밀값(y) 혹은 서버 비밀값(x)의 유출을 전제로 하지만, 실제 스마트카드가 물리적 공격에 취약하다는 기존 연구(전력 분석, 사이드채널)와 일치한다. 따라서 “스마트카드가 절대적으로 안전하다”는 가정은 현실적이지 않으며, 설계 단계에서 비밀값을 카드에 저장하지 않거나, 비밀값을 주기적으로 업데이트하고, 비밀번호 검증을 다중 단계로 강화해야 함을 시사한다.
또한 논문은 기존 동적 ID 스킴이 갖는 장점(검증 테이블 불필요, 비밀번호 자유 변경) 을 유지하면서도, 위와 같은 구조적 약점을 보완하는 방안을 제시하지 않는다. 이는 향후 연구에서 보안 강화와 효율성 사이의 트레이드오프를 재검토해야 함을 의미한다.
댓글 및 학술 토론
Loading comments...
의견 남기기