맨위로가기

시간 기반 일회용 비밀번호

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

시간 기반 일회용 비밀번호(TOTP)는 OATH 회원들의 협력을 통해 개발된 업계 표준으로, HMAC 기반 일회용 비밀번호 알고리즘(HOTP)을 기반으로 한다. 2011년 RFC 6238로 공식화되었다. TOTP는 특정 에포크 이후의 현재 시간을 사용하여 계산되며, 구현 방식은 기업 고유 알고리즘과 OATH-TOTP 두 가지로 나뉜다. OATH-TOTP는 Base32 형식의 공유 시크릿을 사용자가 직접 등록하는 방식이며, 보안이 중요한 상황에서는 전용 관리 소프트웨어를 사용하기도 한다. TOTP는 피싱될 수 있지만, 공유 비밀번호가 유출될 경우 위험하며, 클라이언트와 서버의 시간 동기화가 중요하다.

더 읽어볼만한 페이지

  • 암호 알고리즘 - 이진 코드
    이진 코드는 0과 1을 사용하여 정보를 표현하는 시스템으로, 고대 중국의 주역에서 기원하며, 컴퓨터 과학, 통신 등 다양한 분야에서 활용된다.
  • 암호 알고리즘 - 메시지 인증 코드
    메시지 인증 코드(MAC)는 메시지 무결성을 보장하기 위해 사용되는 암호화 기법으로, 송신자와 수신자가 동일한 키를 공유하여 MAC 생성, 확인 과정을 거친다.
  • 컴퓨터 접근 제어 - 로그인
    로그인은 특정 페이지, 웹사이트 또는 응용 프로그램에 접근하기 위해 사용자 이름과 암호를 입력하여 시스템에 접근하는 절차이며, 1960년대 시분할 시스템과 1970년대 BBS에서 사용되기 시작했다.
  • 컴퓨터 접근 제어 - SIM 카드
    SIM 카드는 이동통신 장치에서 가입자 정보를 저장하고 네트워크를 인증하는 스마트 카드로, 가입자 식별 정보, 인증 정보, 전화번호부 등을 저장하며, 최근에는 내장형 eSIM으로 발전하고 있다.
  • 인터넷 프로토콜 - IPTV
    IPTV는 인터넷 프로토콜을 사용하여 실시간 방송, VOD 등 다양한 콘텐츠를 제공하는 텔레비전 서비스이며, 고속통신망과의 통합, 양방향 서비스 등의 장점을 가지지만 망 사업자 제한 등의 제한 사항도 존재한다.
  • 인터넷 프로토콜 - DNSSEC
    DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
시간 기반 일회용 비밀번호
개요
유형비밀번호
목적인증
개발자RSA 보안
첫 공개2005년
표준RFC 4226 (HOTP)
RFC 6238 (TOTP)
상세 정보
설명시간 기반 일회용 비밀번호 (TOTP)는 대칭 키를 사용하여 암호화된, 시간과 동기화된 일회용 비밀번호를 생성하는 알고리즘이다.
특징시간 동기화
대칭 키 암호화
일회용 비밀번호 생성
기술 정보
기반HOTP 알고리즘 기반
해시 함수HMAC-SHA-1 (기본), HMAC-SHA-256, HMAC-SHA-512 지원
시간 간격30초 (일반적)
비밀 키서버와 클라이언트 간 공유
비밀번호 길이6-8자리 숫자
장점추가 하드웨어 불필요
구현 용이
다양한 플랫폼 지원
단점시간 동기화 필요
비밀 키 유출 시 보안 취약
관련 표준 및 기술
관련 기술OTP
HOTP
다단계 인증
표준 문서RFC 6238

2. 역사

TOTP 초안은 여러 OATH 회원들의 협력을 통해 개발되어 업계에서 지원하는 표준을 목표로 하였다. 이는 이벤트 기반 일회용 표준인 HOTP를 보완하며, 최종 사용자 조직과 기업에게 애플리케이션 요구 사항 및 보안 지침에 가장 적합한 기술을 선택할 수 있는 더 많은 선택권을 제공한다.[14] 2008년, OATH는 IETF에 이 규격의 초안을 제출했다. 이 버전은 IETF에 제출된 이전 버전에 기초하여 저자가 기술 공동체로부터 받은 모든 피드백과 논평을 통합한다.[14] 2011년 5월에 TOTP는 공식적으로 RFC 6238이 되었다.[13]

코드 생성 방법으로는, 전문 기업이 독자적으로 개발한 알고리즘을 이용하는 경우와, HMAC 기반 일회용 비밀번호를 기반으로 한 "OATH-TOTP"(RFC 6238)를 이용하는 경우가 있다. 전자는 독점 소프트웨어의 일부이므로 도입을 위해서는 계약이 필요하지만, 후자는 국제 표준화된 규격으로 누구나 이용할 수 있다. 따라서 대부분의 웹 서비스는 후자의 방식을 채택하고 있다.

3. 알고리즘

TOTP는 HMAC 기반 일회용 비밀번호 알고리즘(HOTP)을 기반으로 한다. 인증 대상과 인증자는 HOTP 매개변수와 함께 다음 TOTP 매개변수를 미리 설정해야 한다.


  • ''T'': 시간 간격 카운트가 시작될 유닉스 시간 (기본값은 0)
  • ''T'': ''C'' 카운터 값을 계산하는 데 사용되는 간격 (기본값은 30초)


인증기와 피인증자는 모두 TOTP 값을 계산한 다음, 피인증자가 제공한 TOTP 값이 로컬에서 생성된 TOTP 값과 일치하는지 확인한다. 일부 인증기는 클럭 스큐, 네트워크 지연 및 사용자 지연을 고려하여 현재 시간 이전 또는 이후에 생성되어야 하는 값을 허용한다.

TOTP 값은 HOTP 알고리즘을 사용하여 카운터를 현재 시간을 기준으로 감소하지 않는 값으로 바꾼다.

TOTP 값(''K'') = HOTP 값(''K'', ''C'')

카운터 값은 다음과 같이 계산한다.

C_T = \left\lfloor\frac{T - T_0}{T_X}\right\rfloor,

여기서

  • ''C''는 ''T''과 ''T'' 사이의 기간 ''T''의 수
  • ''T''는 특정 에포크 이후의 현재 시간을 초 단위로 표시
  • ''T''은 유닉스 에포크 이후의 초 단위로 지정된 에포크 (예: 유닉스 시간을 사용하면 ''T''은 0)
  • ''T''는 일회성 기간의 길이 (예: 30초)


유닉스 시간윤초 삽입 시 1초를 반복하지만, ''C''는 감소하지 않는다.

3. 1. 구현 방식

TOTP 구현 방식은 크게 기업 고유 알고리즘을 이용하는 방식과 OATH-TOTP (6238)를 이용하는 방식 두 가지로 나뉜다.

기업 고유 알고리즘 방식은 초기 설정 시 공유 시크릿을 토큰에 다운로드하거나 시리얼 번호를 입력하여 사용자 계정과 서버를 연결한다. 이 경우 사용자는 공유 시크릿 원본 데이터에 접근할 수 없다.

OATH-TOTP 방식은 서버에서 제공된 Base32 형식의[9] 공유 시크릿을 사용자가 직접 등록하는 방식이다.

3. 1. 1. OATH-TOTP 준수 제품

NTT 데이터 그룹의 BizXaaS Authentication, RSA 시큐리티의 SecurID, OneSpan의 디지패스 등이 있다. 서버에서 제공된 BASE32 형식의[9] 공유 시크릿을 OATH-TOTP에 준수하는 범용 관리 소프트웨어 및 장치에 사용자가 직접 등록한다. 올바르게 일회용 비밀번호를 생성할 수 있다면 어떤 소프트웨어 및 장치를 선택해도 문제가 없으므로, 각자의 필요에 맞춰 원하는 것을 선택하여 사용할 수 있다.

그러나 인터넷 뱅킹 등 높은 보안이 요구되는 상황에서는, 위의 일반적인 등록 절차처럼 공유 시크릿의 원시 데이터가 노출될 기회가 있다는 것 자체가 위험이 될 수 있다. 이 경우, 기업 고유의 알고리즘을 탑재한 제품과 같이 전용 관리 소프트웨어 및 장치를 이용한다.

범용 관리 소프트웨어 및 장치에는 다음이 포함된다.

  • Aegis Authenticator - 무료 및 오픈 소스
  • andOTP[10]
  • ente Auth - 무료 및 오픈 소스
  • FreeOTP
  • Google Authenticator
  • KeepassXC ( 비밀번호 관리자이지만 OATH-TOTP 관리 기능도 존재)
  • YubiKey (유비코(Yubico)) [11] (FIDO 보안 키이지만, OATH-TOTP 관리 기능도 탑재)


전용 관리 소프트웨어 및 장치에는 다음이 포함된다.

  • 시만텍 VIP (Symantec VIP) [12] (범용 OATH-TOTP 관리 소프트웨어로도 사용할 수 있도록 설계)

4. 보안성

TOTP 값은 비밀번호처럼 피싱될 수 있지만, 공격자가 실시간으로 자격 증명을 가로채야 하므로 일반적인 피싱보다는 어렵다.[15] 공유 비밀번호를 도용한 공격자는 원하는 대로 유효한 새 TOTP 값을 생성할 수 있는데, 이는 대규모 인증 데이터베이스 침해 시 특히 문제가 될 수 있다.[16]

레이턴시 및 동기화되지 않은 시계 문제로 인해 일회용 비밀번호는 일정 시간 범위 내에서 유효성을 검사해야 한다. 클라이언트와 서버의 시계는 대략적으로 동기화되어야 하며, TOTP 값은 일반적으로 30초 이상 유효하다.[13]

참조

[1] 웹사이트 RFC 6238 – TOTP: Time-Based One-Time Password Algorithm https://tools.ietf.o[...] 2011-05
[2] 웹사이트 OATH Submits TOTP: Time-Based One Time Password Specification to IETF http://www.openauthe[...] 2010-02-22
[3] 웹사이트 Has two-factor authentication been defeated? A spotlight on 2FA's latest challenge https://blog.malware[...] 2019-01-21
[4] 뉴스 Time-Based One-Time Passwords (TOTP) https://www.transmit[...] 2020-06-25
[5] 뉴스 RSA Agrees to Replace Security Tokens After Admitting Compromise https://www.wired.co[...] 2017-02-17
[6] 웹사이트 Home - ワンタイムパスワード認証/トランザクション認証サービス : BizXaaS-Authentication https://www.bizemoti[...] NTTデータグループ 2024-10-30
[7] 웹사이트 SecurID https://www.rsa.com/[...] RSAセキュリティ 2024-10-29
[8] 웹사이트 Secure Transaction Signing https://www.onespan.[...] OneSpan 2024-10-29
[9] 문서 登録に必要な情報を取り扱いやすくするため、それらの情報を格納したURIやQRコードも併せて表示するのが一般的である。
[10] Citation andOTP/andOTP https://github.com/a[...] andOTP 2020-08-11
[11] 웹사이트 What is OATH - TOTP (Time)? https://www.yubico.c[...] Yubico 2024-10-29
[12] 웹사이트 Symantec VIP - 2 要素認証をどこからでも https://vip.symantec[...] シマンテック 2024-10-30
[13] 웹인용 RFC 6238 – TOTP: Time-Based One-Time Password Algorithm https://tools.ietf.o[...] 2011-07-13
[14] 웹인용 OATH Submits TOTP: Time-Based One Time Password Specification to IETF http://www.openauthe[...] 2010-02-22
[15] 웹인용 Has two-factor authentication been defeated? A spotlight on 2FA's latest challenge https://blog.malware[...] 2019-01-21
[16] 뉴스 RSA Agrees to Replace Security Tokens After Admitting Compromise https://www.wired.co[...] 2017-02-17



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com