생체인식 스마트카드 원격 인증 취약점 분석 및 개선 방안
초록
본 논문은 Li 등(2023)의 생체인식 기반 원격 사용자 인증 스킴을 검증하고, 설계상의 몇 가지 보안 결함을 발견한다. 특히 재전송 공격, 서버 측 인증 누락, 세션 키 협상 미비 등이 문제점으로 지적된다. 이를 보완하기 위해 해시 기반 챌린지‑응답과 양방향 인증 절차를 추가한 개선 스킴을 제안한다. 개선안은 인증 성공 시 사용자와 서버 간에 안전한 세션 키를 확립하도록 설계되었으며, 기존 스킴 대비 계산 비용 상승이 미미함을 보인다.
상세 분석
Li et al.의 스킴은 생체인식 템플릿, 스마트카드, 단방향 해시 함수를 결합하고, 동기화된 시계 대신 난수 논스를 사용함으로써 시간 동기화 문제를 회피하고 계산 효율성을 높였다. 그러나 설계 검토 결과 다음과 같은 핵심 취약점이 드러났다. 첫째, 로그인 단계에서 서버가 클라이언트에게 전송하는 난수(Ns)와 사용자의 응답 해시값만으로 인증을 수행하므로, 공격자는 이전에 캡처한 인증 메시지를 재전송하여 인증을 우회할 수 있다. 이는 논스가 충분히 랜덤하지만, 서버가 동일 논스를 재사용하거나 논스 검증이 부적절하게 이루어지는 경우 발생한다. 둘째, 서버 측 인증이 일방향으로만 이루어져 사용자는 서버의 진위 여부를 확인할 수 없으며, 이는 피싱 서버에 대한 중간자 공격에 취약하게 만든다. 셋째, 인증 절차가 끝난 뒤 세션 키(SK)를 명시적으로 도출하지 않아, 이후 통신에서 암호화·무결성 보호가 보장되지 않는다. 기존 스킴은 해시값을 단순히 인증 토큰으로 사용하지만, 키 파생 함수(KDF)를 적용하지 않아 키 재사용 위험이 존재한다. 넷째, 스마트카드 내부에 저장된 비밀값이 탈취될 경우, 공격자는 카드 복제와 함께 동일한 인증 과정을 수행할 수 있다. Li et al.은 비밀값을 해시와 XOR 연산으로 보호했지만, 역공격에 대한 충분한 안전성을 입증하지 못한다. 이러한 문제점을 해결하기 위해 본 논문은 다음과 같은 개선책을 제시한다. 첫째, 서버가 발행한 난수와 사용자 측에서 생성한 추가 난수(Nu)를 결합한 이중 논스 방식을 도입하여 재전송 공격을 방지한다. 둘째, 서버는 사용자의 인증 성공 후 자체 챌린지를 반환하고, 사용자는 이에 대한 해시 응답을 전송함으로써 양방향 인증을 구현한다. 셋째, 양쪽이 공유한 이중 논스와 비밀값을 입력으로 하는 KDF를 적용해 세션 키를 도출하고, 이후 통신은 이 키를 이용한 대칭 암호화로 보호한다. 넷째, 스마트카드에 저장되는 비밀값을 해시와 비밀키 기반 MAC으로 보호하고, 카드 내부에서 주기적인 비밀값 업데이트 메커니즘을 추가한다. 이러한 개선은 기존 스킴의 구조를 크게 변경하지 않으면서도 보안성을 크게 향상시킨다.
댓글 및 학술 토론
Loading comments...
의견 남기기