Skip to main content
QUICK REVIEW

[논문 리뷰] T/Key: Second-Factor Authentication From Secure Hash Chains

Dmitry Kogan, Nathan Manohar|arXiv (Cornell University)|2017. 08. 28.
User Authentication and Security Systems참고 문헌 44인용 수 10
한 줄 요약

T/Key는 서버 측 비밀번호를 저장하지 않고도 보안 해시 체인을 사용하여 시간 기반 일회성 암호를 제공하는 시스템입니다. 서버가 해킹되더라도 사용자 비밀번호가 泄露되지 않도록 하여 제2요인 인증을 가능하게 하며, 클라이언트가 사전에 긴 해시 체인을 계산하고 최종 값을 서버에만 전송함으로써 보안을 확보합니다. 클라이언트는 체인에서 일회성 암호를 순차적으로 유도하며, 독립적인 랜덤 함수로 구성된 해시 체인의 역행을 해결하는 데 있어 새로운 이론적 하한선을 도입함으로써 보안을 강화합니다.

ABSTRACT

Time-based one-time password (TOTP) systems in use today require storing secrets on both the client and the server. As a result, an attack on the server can expose all second factors for all users in the system. We present T/Key, a time-based one-time password system that requires no secrets on the server. Our work modernizes the classic S/Key system and addresses the challenges in making such a system secure and practical. At the heart of our construction is a new lower bound analyzing the hardness of inverting hash chains composed of independent random functions, which formalizes the security of this widely used primitive. Additionally, we develop a near-optimal algorithm for quickly generating the required elements in a hash chain with little memory on the client. We report on our implementation of T/Key as an Android application. T/Key can be used as a replacement for current TOTP systems, and it remains secure in the event of a server-side compromise. The cost, as with S/Key, is that one-time passwords are longer than the standard six characters used in TOTP.

연구 동기 및 목표

  • 기존 TOTP 시스템에서 서버 측 비밀번호 저장으로 인해 유출되는 보안 결함을 해결하기 위해.
  • 기존 S/Key 시스템을 시간 기반으로 현대화하여 실세계 구현에 실용적으로 적용 가능하도록 하기 위해.
  • 독립적인 랜덤 함수로 구성된 해시 체인의 역행 문제에 대해 새로운 이론적 하한선을 도출하여 보안을 체계화하기 위해.
  • 최소한의 메모리 사용량으로 효율적으로 해시 체인 요소를 생성할 수 있는 클라이언트 측 알고리즘을 설계하기 위해.
  • T/Key를 기능적인 안드로이드 애플리케이션으로 구현하고 평가하여 실용성과 보안성을 실증하기 위해.

제안 방법

  • 시스템은 클라이언트에만 저장되는 시드를 사용해 약 200만 길이의 긴 해시 체인을 구성하며, 설정 시 최종 요소를 서버에 전송합니다.
  • 클라이언트는 체인을 역순으로 계산하여 30초마다 한 요소씩 표시하고, 사용자는 로그인 시 이를 입력합니다.
  • 서버는 체인의 최종 해시 값만 저장하며, 비밀번호는 전혀 저장하지 않으며, 저장된 값에서 정방향으로 체인을 재계산하여 일회성 암호를 검증합니다.
  • 독립적인 랜덤 함수로 구성된 k단계 해시 체인의 역행 문제에 대해 새로운 이론적 하한선을 설정하여, k번째 프리이미지 역행이 표준 가정 하에 계산적으로 어렵다는 것을 증명합니다.
  • O(1) 메모리와 O(k) 시간으로 작동하는 거의 최적의 클라이언트 측 알고리즘을 개발하여 모바일 장치에서의 효율적 구현을 가능하게 합니다.
  • 보안 모델은 해시 함수가 상호 독립적이고 랜덤하다는 가정을 두며, 분석은 감소 증명 기법을 사용하여 T/Key를 해킹하는 것은 랜덤 함수를 비밀리에 역행하는 것과 동일한 확률로 성립함을 보입니다.

실험 결과

연구 질문

  • RQ1서버에 어떤 비밀번호도 저장하지 않는 시간 기반 일회성 암호 시스템을 구축할 수 있는가?
  • RQ2독립적인 랜덤 함수로 구성된 k단계 해시 체인의 역행 문제는 얼마나 계산적으로 어렵다?
  • RQ3최소한의 메모리와 계산 비용으로 장기 해시 체인의 요소를 효율적으로 생성할 수 있는 클라이언트는 가능한가?
  • RQ4서버 해킹 상황에서 이러한 시스템의 보안 수준은 기존 TOTP 및 S/Key 기반 시스템과 비교해 어떻게 되는가?
  • RQ5이 구조에서 128비트 보안을 달성하기 위해 필요한 최소 비밀번호 길이는 얼마인가?

주요 결과

  • T/Key는 130비트 일회성 암호를 사용하여 128비트 보안을 달성하며, 표준 6자리 TOTP보다 훨씬 길지만 서버 해킹에 대한 강력한 보안을 제공합니다.
  • 독립적인 랜덤 함수로 구성된 k단계 해시 체인의 역행이 계산적으로 어렵다는 가정 하에 T/Key는 증명 가능하게 보안이 확보되어 있으며, 어떤 적대자도 T번의 질의를 수행할 경우 k번째 프리이미지 역행 확률이 최대 약 Õ(ε³/²N/k) 이하임을 보여주는 하한선이 존재합니다. 여기서 N은 보안 매개변수입니다.
  • 이론적 분석을 통해 T/Key를 해킹하는 것은 비밀리에 랜덤 함수를 역행하는 것과 동일한 확률로 성립함을 증명하여 강력한 보안 기반을 확립합니다.
  • O(1) 메모리와 O(k) 시간으로 작동하는 거의 최적의 클라이언트 측 알고리즘을 개발하여 모바일 환경에 실용적으로 적용 가능함을 입증합니다.
  • 안드로이드 앱으로의 구현을 통해 T/Key가 실세계에서 실현 가능하며, 서버에 비밀번호가 저장되지 않고 기존 로그인 워크플로우와 완전히 호환됨을 입증합니다.
  • 해당 시스템은 공격자가 서버에 접근하여 최종 해시 값을 확보하더라도, 체인의 이전 값들을 복구하는 것은 여전히 계산적으로 불가능하므로 보안이 유지됩니다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.