본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
One Time Password; 일회용 패스워드
  • 패스워드를 유추할 수 없다.
  • 한 번 쓴 값은 다시 쓸 수 없어, 고정 패스워드가 유출되거나 엿보여도 그 값으로 다시 로그인할 수 없다. 그래서 계정 도용(Account Theft)과 재전송 공격을 막는 대표적인 대응책이다. 고정 패스워드와 함께 쓰는 다중 인증 의 소지 요소로 많이 쓴다
  • 동기화 방식의 경우, 패스워드의 전송이 이루어지지 않는다.
  • 질의-응답(도전-응답, Challenge-Response) 방식이라고도 한다. 서버가 난수 같은 임의의 질의값(challenge)을 만들어 클라이언트에 보내고, 클라이언트는 그 값으로 OTP 를 계산해 응답한다. 시각이나 카운터를 서버와 맞출 필요가 없다. OATH 의 OCRA(RFC 6287)가 HOTP 를 바탕으로 한 질의-응답 방식 표준이다.[1]
  • 서버에서 질의값을 1회용(One-Time)으로 생성해서 보여준다.
  • 사용자는 질의값을 OTP기기에 입력하고 반환값을 서버로 보낸다.
  • 서버는 반환값을 검증한다.
  • 현재 시간을 이용하여 난수를 생성한다.
  • 서버 시간과 OTP기기에서 관리되는 시간이 일치해야 한다.
  • 시간의 지속적 동기화가 어려우므로 보통 30초 정도 간격으로 생성한다.
  • 현재 은행에서 사용하는 대부분의 OTP가 시간 동기화 방식이다.

이벤트 동기화

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