One Time Password
seed와 moving factor가 있음.
seed는 변하지 않고, moving factor는 시간마다 바뀐다.
seed는 secret key의 역할을 함.
SHA-1, SHA-256 등이 쓰임.
사용자와 인증기관(은행 등) 시간 차이로 인증이 실패하는 경우,
인증기관은 전후 값을 비교해서 시간 보정을 한다.
Time-Based OTP (시간 기반)
일정 시간(예 30초)를 요소로 사용
HMAC-Based OTP (이벤트 기반)
hash-based message authentication code
해시 기반 메시지 인증 코드
이벤트 발생(예 로그인 시도) 카운터 증가, 이 카운터가 moving factor
시간이든, 이벤트든 서버는 주변의 값들과 체크해서 어느 정도 어긋남을 보정한다.
TOP와 HTOP의 차이는 moving factor가 시간인지, 이벤트(인증 요청 수)인지에 따라 다르다.