IT Study/보안 및 프라이버시

🔐 OTP(일회용 비밀번호) 생성 알고리즘과 인증 프로세스

cs_bot 2025. 4. 10. 15:31

1. OTP 개요

  • OTP(One-Time Password)는 사용 시마다 변경되는 단일 사용 비밀번호를 의미함
  • 고정된 비밀번호의 재사용 위험성을 제거하여 인증 보안을 강화하는 데 활용됨
  • 인증 우회, 스니핑, 리플레이 공격 등에 강인한 특징을 가짐
  • 대표적으로 TOTP(Time-based OTP), HOTP(HMAC-based OTP) 방식이 존재함

2. OTP 사용 목적 및 도입 배경

  • 전통적 ID/PW 인증 체계의 취약점을 극복하기 위한 다중 인증 수단 필요성 대두됨
  • 피싱, 키로깅, 스니핑 등을 통한 비밀번호 탈취 사례 증가에 따른 대응책으로 사용됨
  • 비밀번호를 매번 동적으로 생성하여 재사용 방지함으로써 보안성 제고 가능함
  • 금융권, 공공기관, 의료, 전자정부 등에서 광범위하게 채택됨

3. OTP 구성 요소

구성 요소 설명
OTP 생성기 (토큰) 일회용 비밀번호를 생성하는 디바이스 또는 앱 (예: Google Authenticator, 하드웨어 토큰 등)
OTP 서버 OTP 생성 규칙 기반의 OTP를 검증하는 서버
사용자 OTP를 입력하여 인증을 요청하는 주체
공유 키 (Secret) OTP 생성기와 서버 간 사전 공유된 비밀 키

4. OTP 주요 알고리즘

4.1 HOTP (HMAC-based OTP)

  • IETF RFC 4226에서 정의된 OTP 알고리즘
  • HMAC-SHA1 기반으로 OTP 생성
  • 시간 대신 카운터 값(counter)을 기반으로 OTP 생성
  • 입력값: 비밀 키(Secret Key), 카운터 값
  • 출력값: 일정 자릿수의 OTP (보통 6~8자리)

HOTP 생성 수식:

HOTP(K, C) = Truncate(HMAC-SHA-1(K, C))
  • 재동기화 이슈 발생 가능, 서버-클라이언트 간 카운터 불일치 시 인증 실패 위험 존재

4.2 TOTP (Time-based OTP)

  • IETF RFC 6238에서 정의됨
  • HOTP에 시간 요소를 결합하여 OTP를 생성함
  • 일반적으로 30초 또는 60초 단위로 OTP 갱신
  • 입력값: 비밀 키, 현재 시간 기반의 타임스탬프
  • 출력값: 일정 자릿수 OTP

TOTP 생성 수식:

TOTP = HOTP(K, T) where T = (Current Unix Time - T0) / X
  • 시간 기반이므로 동기화 이슈는 낮지만, 클라이언트와 서버의 시간 차이 보정 필요

5. OTP 인증 프로세스

  1. 사용자 인증 요청

    • 사용자 ID 및 OTP 입력을 통한 인증 요청 발생
  2. 서버의 OTP 생성

    • 서버는 사전 공유된 비밀 키와 현재 시간 혹은 카운터 값을 기반으로 OTP 생성
  3. 사용자 입력값 검증

    • 사용자 입력 OTP와 서버 생성 OTP를 비교하여 일치 여부 확인
  4. 인증 결과 반환

    • 일치 시 인증 성공, 불일치 시 실패 및 재시도 가능성 제공
  5. 재동기화 및 실패 처리

    • HOTP의 경우 카운터 허용 범위 내에서 재시도하여 인증 허용
    • TOTP는 시간 오차 허용 범위 내에서 유효성 검증

6. OTP 활용 시 보안 고려사항

  • 비밀 키(Secret Key)의 안전한 저장 필수, 유출 시 OTP 무력화 가능성 존재
  • 하드웨어 기반 OTP 토큰의 분실, 복제에 대한 보호 장치 마련 필요
  • 시간 동기화 문제 발생 시 TOTP 인증 실패 가능성 있음
  • OTP와 정적 비밀번호를 결합한 2단계 인증(2FA) 구조로 활용 시 보안 효과 상승
  • OTP 유효 시간 짧게 설정하여 리플레이 공격 위험 최소화 가능

7. OTP 시스템 도입 사례

  • 금융권 인터넷 뱅킹 사용자 대상 OTP 토큰 지급을 통한 이체 인증
  • 클라우드 기반 서비스(Google, AWS, Microsoft 등)에서 TOTP 앱 기반 MFA 적용
  • 전자정부 민원서비스 로그인 시 OTP 기반 2단계 인증 적용 사례 증가
  • 공공기관 내부망 접근을 위한 VPN 접속 시 OTP 기반 인증 도입 확산

8. 기타 발전 방향 및 대체 기술

  • FIDO2 기반 생체인증 기술로 OTP 대체 추세 확대 중
  • 하드웨어 보안 모듈(HSM) 및 Secure Element 기반 OTP 저장 강화
  • 인증 앱 기반 Push Notification 기반 인증 도입 (ex. 네이버 인증서, 카카오 인증)
  • QR 코드 기반 OTP 인증 또는 일회용 URL 기반 인증 링크 제공 방식 등장

9. 결론

  • OTP는 정적 인증 정보의 취약성을 보완하고, 리플레이 공격에 대응 가능한 효과적인 인증 수단임
  • HOTP와 TOTP는 각각 고유한 특징과 구현 상 장단점을 가짐
  • 다양한 분야에서 OTP 기술이 적용 중이며, 지속적으로 고도화되는 인증 환경에 맞춰 보완 및 대체 기술로 진화 중임
  • 향후 생체인증, FIDO, 블록체인 기반 인증 등과 결합하여 보다 안전하고 사용자 친화적인 인증 체계로 발전할 것으로 기대됨