HOTP는 공유 비밀 키와 증가하는 카운터로 일회용 비밀번호를 생성하는 알고리즘이다. RFC 4226에 정의된다.
원리
카운터를 HMAC-SHA-1 입력으로 처리한 뒤 지정된 절차로 짧은 숫자 코드를 만든다. 생성기와 검증기는 대응하는 카운터 상태를 관리한다.
예시
사용자가 인증 장치의 버튼을 누를 때마다 카운터가 진전하고 서버가 허용 범위의 코드인지 확인하는 구성을 만들 수 있다.
주의할 점
짧은 코드에는 온라인 추측 제한이 필요하다. 재사용 방지와 카운터 재동기화를 설계하고 공유 비밀이 노출되면 이후 코드를 만들 수 있다는 점을 고려한다.