OTP
IT위키
더 많은 작업
- One Time Password; 일회용 패스워드
- 패스워드를 유추할 수 없다.
- 한 번 쓴 값은 다시 쓸 수 없어, 고정 패스워드가 유출되거나 엿보여도 그 값으로 다시 로그인할 수 없다. 그래서 계정 도용(Account Theft)과 재전송 공격을 막는 대표적인 대응책이다. 고정 패스워드와 함께 쓰는 다중 인증 의 소지 요소로 많이 쓴다
- 동기화 방식의 경우, 패스워드의 전송이 이루어지지 않는다.
- 질의-응답(도전-응답, Challenge-Response) 방식이라고도 한다. 서버가 난수 같은 임의의 질의값(challenge)을 만들어 클라이언트에 보내고, 클라이언트는 그 값으로 OTP 를 계산해 응답한다. 시각이나 카운터를 서버와 맞출 필요가 없다. OATH 의 OCRA(RFC 6287)가 HOTP 를 바탕으로 한 질의-응답 방식 표준이다.[1]
- 서버에서 질의값을 1회용(One-Time)으로 생성해서 보여준다.
- 사용자는 질의값을 OTP기기에 입력하고 반환값을 서버로 보낸다.
- 서버는 반환값을 검증한다.
- 스마트 폰 등 거래가 가능한 기기에서 거래 정보와 연동된 인증번호 생성
- 인증번호 값이 일치하는 것에서 더 나아가서 수취인, 금액 등이 일치해야지만 유효
- 해시 체인을 이용한다
- 벨 연구소에서 개발되었으며 유닉스 계열 운영체제에서 사용된다.
- 비밀 값에 해시 함수를 여러 번 적용한 해시 체인을 만들고, 로그인할 때마다 체인을 거꾸로 하나씩 사용한다. 서버는 받은 값을 한 번 해시해 직전에 저장한 값과 같은지 확인한다. 엿들은 패스워드를 다시 쓰는 재전송 공격을 막으려고 설계되었다.[2]
| 방식 | OTP 를 만드는 입력 | 서버와 맞춰야 하는 것 | 표준 |
|---|---|---|---|
| 시간 동기화 | 비밀 키 + 현재 시각 | 시각 | TOTP(RFC 6238)[3] |
| 이벤트 동기화 | 비밀 키 + 사용 횟수(카운터) | 카운터 | HOTP(RFC 4226)[4] |
| 질의-응답(도전-응답) | 비밀 키 + 서버가 보낸 임의의 질의값 | 없음 | OCRA(RFC 6287)[1] |
| S/KEY | 비밀 값의 해시 체인 | 체인의 현재 위치 | RFC 1760[2] |
- 서버가 임의의 수를 만들어 클라이언트에 보내고 클라이언트가 그 수로 OTP 를 만드는 것은 질의-응답 방식이다. 시간·이벤트 동기화 방식은 서버가 값을 보내 주지 않고 양쪽이 각자 시각·카운터로 같은 값을 계산한다
- ↑ 1.0 1.1 「RFC 6287: OCRA: OATH Challenge-Response Algorithm」, IETF, 2011, https://www.rfc-editor.org/rfc/rfc6287, 확인일: 2026-11-05.
- ↑ 2.0 2.1 「RFC 1760: The S/KEY One-Time Password System」, IETF, 1995, https://www.rfc-editor.org/rfc/rfc1760, 확인일: 2026-11-05.
- ↑ 「RFC 6238: TOTP: Time-Based One-Time Password Algorithm」, IETF, 2011, https://www.rfc-editor.org/rfc/rfc6238, 확인일: 2026-11-05.
- ↑ 「RFC 4226: HOTP: An HMAC-Based One-Time Password Algorithm」, IETF, 2005, https://www.rfc-editor.org/rfc/rfc4226, 확인일: 2026-11-05.