HMAC 기반 일회용 비밀번호

HMAC 기반 일회용 비밀번호(HMAC-based one-time password, HOTP)는 HMAC 기반 일회용 비밀번호(OTP) 알고리즘이다. 이는 OATH(Initiative for Open Authentication)의 초석이다.

HOTP는 2005년 12월 IETF  정보 문서로 발표되었으며, 이 문서에는 Java 구현과 함께 알고리즘이 문서화되어 있다. 이후 이 알고리즘은 전 세계 여러 기업에서 채택되었다(아래 참조). HOTP 알고리즘은 무료로 제공되는 개방형 표준이다.

 알고리즘 
HOTP 알고리즘은 사람이 읽을 수 있는 비밀번호 또는 값을 대칭적으로 생성하여 인증하는 방식을 제공하며, 각 값은 단 한 번의 인증 시도에만 사용된다. 일회용이라는 특성은 각 카운터 값을 한 번만 사용한다는 데서 비롯된다.

HOTP를 사용하려는 당사자는 몇 가지 매개변수를 설정해야 한다. 일반적으로 이러한 토큰은 인증자가 지정하며, 인증된 개체는 이를 수락하거나 수락하지 않는다.

 암호화 해시 방식 H(기본값은 SHA-1)
 임의의 바이트 문자열이며 비공개로 유지되어야 하는 비밀 키 K
 반복 횟수를 계산하는 카운터 C
 HOTP 값 길이 d(6~10, 기본값은 6, 권장 값 6~8)

양쪽 당사자는 비밀 키 K와 카운터 C에서 파생된 HOTP 값을 계산한다. 그런 다음 인증자는 로컬에서 생성된 값을 인증된 개체가 제공한 값과 비교한다.

 토큰 
하드웨어 및 소프트웨어 토큰은 다양한 공급업체에서 제공되며, 일부 공급업체는 아래 참조 자료를 참조하십시오.

소프트웨어 토큰은 (거의) 모든 주요 모바일/스마트폰 플랫폼(J2ME, 안드로이드, 아이폰, 블랙베리, Maemo, macOS, Windows Mobile)에서 사용할 수 있다.

 같이 보기 
 시간 기반 일회용 비밀번호 (TOTP)

 각주 

 외부 링크 
 RFC 4226: HOTP: An HMAC-Based One-Time Password Algorithm
 RFC 6238: TOTP: Time-Based One-Time Password Algorithm
 RFC 6287: OCRA: OATH Challenge-Response Algorithm
 Initiative For Open Authentication
 Implementation of RFC 4226 - HOPT Algorithm  Step by step Python implementation in a Jupyter Notebook

분류:인터넷 기반 프로토콜
분류:암호 알고리즘
분류:컴퓨터 접근 제어 프로토콜