시간 기반 일회용 비밀번호
"오늘의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]
TOTP는 HMAC 기반 일회용 비밀번호 알고리즘(HOTP)을 기반으로 한다. 인증 대상과 인증자는 HOTP 매개변수와 함께 다음 TOTP 매개변수를 미리 설정해야 한다.
코드 생성 방법으로는, 전문 기업이 독자적으로 개발한 알고리즘을 이용하는 경우와, HMAC 기반 일회용 비밀번호를 기반으로 한 "OATH-TOTP"(RFC 6238)를 이용하는 경우가 있다. 전자는 독점 소프트웨어의 일부이므로 도입을 위해서는 계약이 필요하지만, 후자는 국제 표준화된 규격으로 누구나 이용할 수 있다. 따라서 대부분의 웹 서비스는 후자의 방식을 채택하고 있다.
3. 알고리즘
인증기와 피인증자는 모두 TOTP 값을 계산한 다음, 피인증자가 제공한 TOTP 값이 로컬에서 생성된 TOTP 값과 일치하는지 확인한다. 일부 인증기는 클럭 스큐, 네트워크 지연 및 사용자 지연을 고려하여 현재 시간 이전 또는 이후에 생성되어야 하는 값을 허용한다.
TOTP 값은 HOTP 알고리즘을 사용하여 카운터를 현재 시간을 기준으로 감소하지 않는 값으로 바꾼다.
TOTP 값(''K'') = HOTP 값(''K'', ''C'')
카운터 값은 다음과 같이 계산한다.
여기서
유닉스 시간은 윤초 삽입 시 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에 준수하는 범용 관리 소프트웨어 및 장치에 사용자가 직접 등록한다. 올바르게 일회용 비밀번호를 생성할 수 있다면 어떤 소프트웨어 및 장치를 선택해도 문제가 없으므로, 각자의 필요에 맞춰 원하는 것을 선택하여 사용할 수 있다.
그러나 인터넷 뱅킹 등 높은 보안이 요구되는 상황에서는, 위의 일반적인 등록 절차처럼 공유 시크릿의 원시 데이터가 노출될 기회가 있다는 것 자체가 위험이 될 수 있다. 이 경우, 기업 고유의 알고리즘을 탑재한 제품과 같이 전용 관리 소프트웨어 및 장치를 이용한다.
범용 관리 소프트웨어 및 장치에는 다음이 포함된다.
전용 관리 소프트웨어 및 장치에는 다음이 포함된다.
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