TOTP는 ‘시간 기반 일회용 비밀번호(Time-based One-Time Password)’의 약자입니다. 이는 인증 앱에 표시되는 많은 6자리 코드의 기반이 되는 기술입니다. TOTP 코드는 개인 설정 키와 현재 시간을 바탕으로 계산되며, 짧은 시간이 지나면 유효 기간이 만료됩니다.

TOTP는 일반적으로 2단계 인증의 두 번째 단계로 사용됩니다. 인증 앱이 메시지를 기다리는 대신 로컬에서 코드를 계산하기 때문에 모바일 신호가 없어도 작동할 수 있습니다.

TOTP 코드는 어떤 정보로 생성되나요?

두 가지 입력값이 중요합니다: 공유 비밀 키와 시간 카운터입니다. 계정 제공자는 설정 과정에서 비밀 키를 생성하고, QR 코드나 수동 키를 통해 인증기에 이를 제공합니다. 그런 다음 양측은 시간을 동일한 간격의 시간 창으로 나누고 동일한 암호화 계산을 수행합니다.

비밀 키, 알고리즘, 시간 구간이 일치하면 양측 모두 동일한 짧은 코드를 생성합니다. 비밀 키 자체는 매번 로그인할 때마다 전송될 필요가 없습니다.

Four-stage TOTP process from secret and time to code validation
인증기와 서비스는 동일한 비밀 키와 시간 창을 바탕으로 독립적으로 값을 계산합니다.

TOTP는 어떻게 작동하나요?

  1. 서비스 제공자는 인증기 등록을 위해 고유한 비밀 키를 생성합니다.
  2. 사용자는 신뢰할 수 있는 기기에서 설정용 QR 코드를 스캔하거나 수동 비밀번호를 입력합니다.
  3. 인증기는 시크릿과 현재 시간 창을 결합합니다.
  4. 그 결과는 일반적으로 6자리인 짧은 숫자 코드로 축소됩니다.
  5. 서비스 제공자는 예상 코드를 계산하여 사용자가 입력한 코드와 비교합니다.

RFC 6238은 TOTP를 HOTP의 시간 기반 변형으로 정의합니다. 일반적인 구성은 30초 주기, 6자리 숫자 및 HMAC-SHA-1을 사용하지만, 그 외에도 지원되는 알고리즘과 설정이 있습니다.

TOTP 코드는 왜 만료되나요?

유효 기간이 짧기 때문에 복사된 코드를 재사용할 수 있는 시간이 제한됩니다. 시간 창이 변경되면 인증기는 다른 값을 생성합니다. 서비스는 네트워크 지연 및 미세한 시계 차이를 고려하여 근접한 시간 창을 허용할 수 있지만, 허용 범위가 넓어지면 승인 창도 커집니다.

카운트다운이 시작될 무렵에 새로운 코드를 입력하세요. 코드가 계속해서 거부된다면, 작동하지 않는 2단계 인증(2FA) 코드를 해결하는 방법에 대한 가이드를 참고하세요.

TOTP 대 HOTP

TOTP와 HOTP는 유사한 계산 방식을 사용하지만 진행 방식이 다릅니다:

  • TOTP는 시간 단위에 따라 변경되므로 인증기의 시계가 동기화되어야 합니다.
  • HOTP는 버튼을 누르거나 사용이 성공한 후와 같이 카운터가 증가할 때 변경됩니다.

TOTP는 시간이 자동으로 변화하는 요소를 제공하기 때문에 소프트웨어 인증 앱에서 흔히 사용됩니다. HOTP는 여전히 일부 하드웨어 토큰과 특수 시스템에서 사용되고 있습니다.

TOTP 대 SMS 코드

TOTP 앱은 기기 내에서 코드를 계산하며, 일반적으로 오프라인 상태에서도 작동합니다. SMS는 코드를 전달하기 위해 전화 통신망에 의존합니다. SMS는 편리하지만 SIM 카드 교체, 번호 재할당, 도청, 전송 실패 등의 영향을 받을 수 있습니다.

일반적인 TOTP나 SMS 모두 피싱 공격을 완전히 막을 수는 없습니다. 설득력 있는 가짜 로그인 페이지를 통해 현재 코드를 가로채거나 전달할 수 있기 때문입니다. 중요한 계정의 경우, 지원되는 환경에서는 패스키나 FIDO 보안 키를 사용하는 것이 일반적으로 더 안전합니다. 인증 앱과 SMS의 상세한 비교 내용을 참조하십시오.

TOTP 비밀이란 무엇일까요?

비밀은 해당 등록에 대한 향후 모든 코드의 기반이 되는 장기 유효한 인증 정보입니다. 이 비밀을 알고 있는 사람이라면 누구나 다른 인증기를 설정하고 일치하는 값을 생성할 수 있습니다. 설정용 QR 코드의 스크린샷은 대개 해당 비밀을 포함하고 있으므로 민감한 정보입니다.

본 가이드에서는 수동 2단계 인증 설정 키를 찾을 수 있는 위치와, 이를 비밀번호나 복구 코드와 구별하는 방법을 설명합니다.

TOTP는 오프라인에서도 작동하나요?

네. 일단 설정되면 인증 앱은 활성 인터넷 연결이 아닌, 시크릿과 정확한 시계만 있으면 됩니다. 로그인을 확인하는 서비스는 여전히 저장된 등록 정보에 접근할 수 있어야 합니다.

TOTP 생성기를 안전하게 사용하는 방법

  • 본인이 관리 권한이 있는 계정의 비밀값만 사용하십시오.
  • 시크릿을 입력하기 전에 웹사이트 주소와 기기를 확인하십시오.
  • 채팅이나 지원 양식을 통해 비밀번호나 설정용 QR 코드를 절대 전송하지 마십시오.
  • 복구 코드는 평소에 사용하는 인증기와 별도로 보관하십시오.
  • 비밀번호가 유출되었을 가능성이 있다면 등록 절차를 다시 진행하십시오.

승인된 테스트의 경우, Get2FA.dev TOTP 생성기가 브라우저에서 표준 코드를 계산합니다. 중요한 계정의 일상적인 사용에는 평판이 좋은 인증 앱이나 하드웨어 기반 방식을 사용하는 것이 좋습니다.

자주 묻는 질문

TOTP 코드의 유효 기간은 얼마나 됩니까?

30초가 일반적인 기본값이지만, 제공업체는 다른 기간을 설정할 수도 있습니다. 카운트다운은 특정 시간 창에 속하며, 코드를 보거나 복사해도 다시 시작되지 않습니다.

TOTP 코드는 왜 보통 6자리인가요?

6자리는 사용 편의성과 제한된 가능한 값의 수 사이에서 균형을 맞춥니다. 코드 공간 자체가 크지 않기 때문에 속도 제한과 짧은 유효 기간이 중요합니다.

두 기기에서 동일한 TOTP 코드가 표시될 수 있나요?

네, 두 기기 모두 동일한 비밀 키를 보유하고, 동일한 설정을 사용하며, 시계가 동기화되어 있다면 가능합니다. 등록 정보를 중복하는 것이 적절한지는 보안 정책에 따라 다릅니다.

TOTP는 2FA와 같은 것입니까?

아니요. TOTP는 여러 인증 방법 중 하나일 뿐입니다. 2FA가 무엇을 의미하는지, 그리고 다른 인증 방법들이 어떻게 작동하는지 읽어보세요.