1. OTP (일회용 패스워드) 방식
ㅇ 한 번 쓰고 버리는 암호에 의한 인증 방식
- "정적 패스워드 (static password)"의 취약점(도청,재생 공격,키로깅 등)을 보완하기 위한,
- 동적 인증 방식임
ㅇ 주로, 통신 경로상에 흐르는 세션 패스워드를 1회에 한정시켜, 도청/악용의 최소화 도모
- 로그인시 또는 세션 마다, 매번 패스워드가 변하게하여,
- 패스워드 추측 공격,재생 공격 등을 방어하기 위한 사용자 인증 방식
ㅇ 단점
- 구현비용, 복잡성, 운용비용 등이 많음
2. OTP 구현 방식 구분
ㅇ 동기 방식 (Synchronous OTP)
- 시간 기반 OTP (TOTP, Time-based OTP)
. 例) 금융권 OTP 카드, Google Authenticator 등
- 카운터 기반 OTP (HOTP, Counter-based OTP)
* 둘 다 서버 – 토큰 간 상태 동기화 필요
ㅇ 비동기 방식 (Asynchronous OTP)
- 질의–응답 방식 (Challenge–Response OTP)
3. OTP 구현 상의 특징
ㅇ 동기 방식 특징
- 의사 난수의 생성 방법은,
. `발생장치 고유 ID에 의한 비밀 키`와 `시간(클럭)` 등을 초기 값으로 결합시켜,
. 토큰 안의 알고리즘을 통해 만들어짐
- 즉, OTP 값은 다음 요소들을 결합하고,
. 비밀 키 (Shared Secret / Seed)
. 시간 값(TOTP) 또는 카운터 값(HOTP)
- 해시 기반 함수(HMAC 등)를 사용하여, 의사 난수 생성
- 표준 例) HOTP → RFC 4226, TOTP → RFC 6238
ㅇ 비동기 방식 특징 ☞ Challenge-Response 방식 참조
- "복잡성이 덜하고 비교적 안전성이 높음" : (안전성은 설계에 따라 다름)
- 장점
. 서버 – 토큰 간 시간/카운터 동기화 불필요
. 재생 공격에 강함
- 단점
. 사용자 입력 단계 증가
. 프로토콜 설계 미흡 시 취약 가능
- 例) Challenge–Response OTP : S/Key, OPIE, 스마트카드 기반 CR 인증