동적 아이디 기반 원격 사용자 인증 설계
초록
본 논문은 스마트카드를 이용한 동적 아이디 기반 원격 사용자 인증 방식을 제안한다. 사용자는 자유롭게 비밀번호를 선택·변경할 수 있으며, 서버는 검증자 테이블을 유지하지 않는다. 제안된 스킴은 ID 도용, 재전송, 위조, 추측, 내부자 및 검증자 탈취 공격에 대해 강력한 저항성을 제공한다.
상세 분석
제안된 인증 프로토콜은 기존 정적 ID 기반 방식의 근본적인 약점을 보완한다. 먼저, 동적 아이디를 매 세션마다 새롭게 생성함으로써 ID 도용 공격을 효과적으로 차단한다. 이는 서버가 사용자별 고정 식별자를 저장하지 않으며, 대신 일회성 난수와 사용자의 비밀키를 조합해 동적 ID를 산출하는 구조다. 스마트카드 내부에 저장된 비밀키는 물리적 보안이 강화된 환경에서 보호되므로, 키 유출 위험이 크게 감소한다.
비밀번호 선택·변경이 자유로운 점은 사용성 측면에서 큰 장점이다. 기존 많은 스키마가 비밀번호를 고정하거나 서버에 해시 형태로 저장해 변경 절차가 복잡했지만, 본 설계에서는 스마트카드에 저장된 비밀키와 새로운 비밀번호를 이용해 새로운 인증 토큰을 생성한다. 이 과정에서 서버는 비밀번호 자체를 알 필요가 없으며, 검증자 테이블을 유지하지 않으므로 데이터베이스 침해 시 검증자 정보가 유출되지 않는다.
보안 분석에서는 재전송 공격에 대한 저항성을 강조한다. 매 세션마다 새로운 난수와 동적 ID가 사용되므로, 과거에 캡처된 인증 메시지는 재사용이 불가능하다. 위조 공격에 대해서는 스마트카드와 서버 간에 공유된 비밀키 기반의 MAC(Message Authentication Code) 검증을 도입해, 공격자가 임의로 메시지를 변조하더라도 MAC 검증에 실패하도록 설계하였다. 추측 공격에 대해서는 비밀번호와 동적 ID가 결합된 형태로 전송되며, 전송 데이터는 일회성 난수와 해시 연산을 거치기 때문에 사전 계산 공격이 실질적으로 불가능하다.
내부자 공격에 대한 방어는 서버가 사용자 비밀번호나 검증자를 보관하지 않음으로써 구현된다. 내부 관리자가 데이터베이스에 접근하더라도, 실제 인증에 필요한 비밀키는 스마트카드에만 존재한다. 또한, 검증자 탈취 공격(Verifier theft attack)에 대해서는 검증자 자체가 존재하지 않으므로, 탈취 시도 자체가 무의미하다.
전체적으로 프로토콜은 세 단계(등록, 로그인, 비밀번호 변경)로 구성된다. 등록 단계에서는 사용자가 스마트카드에 비밀키와 초기 비밀번호를 저장하고, 서버는 사용자 고유 식별자를 부여한다. 로그인 단계에서는 사용자가 스마트카드와 서버 간에 동적 ID와 MAC을 교환하며, 서버는 이를 검증해 인증을 완료한다. 비밀번호 변경 단계는 기존 인증 절차를 재활용해 새로운 비밀번호와 함께 새로운 비밀키 파생값을 생성한다. 이러한 설계는 최소한의 통신 오버헤드와 높은 보안성을 동시에 달성한다.
댓글 및 학술 토론
Loading comments...
의견 남기기