한국어
  • OTP
  • TOTP
  • MFA
  • HOTP
  • one-time password

일회용 비밀번호 (OTP)란 무엇인가?

OTP란 무엇인가? OTP와 TOTP의 차이점은 무엇인가? OTP는 어떻게 작동하는가? 이 문서는 OTP의 기본 개념과 왜 정적 비밀번호보다 선호되는지를 설명합니다.

Simeng
Simeng
Developer

OTP는 일회용 비밀번호를 의미하며, 일회용 핀, 일회용 패스코드 또는 동적 비밀번호로도 알려져 있습니다. 이는 단일 인증 세션이나 거래에 사용되는 고유하고 자동으로 생성된 임시 비밀번호입니다.

전통적인 정적 비밀번호와 달리, OTP는 사용할 때마다 변경되며 짧은 시간 이후에 만료됩니다. 이는 공격자가 훔쳐서 재사용하기 훨씬 어렵기 때문에 매우 안전한 인증 방법입니다.

OTP는 온라인 뱅킹, 전자 상거래 및 민감한 데이터나 시스템에 대한 접근을 보안하는 등 다양한 보안 애플리케이션에서 광범위하게 채택되었습니다. OTP는 또한 다단계 인증 (MFA)에서 두 번째 요소로 일반적으로 사용되어 보안 수준을 추가로 제공합니다. 사용자가 알고 있는 정보(예: 비밀번호)와 사용자가 가지고 있는 것(예: 모바일 기기)을 결합함으로써 OTP는 현대의 인증 시스템에서 필수적인 도구가 되었습니다.

OTP는 어떻게 작동하는가?

다양한 사용 사례에 대해 각각 다른 방식으로 생성 및 전달되는 여러 유형의 OTP가 있습니다. 일반적인 OTP 방법으로는 다음이 포함됩니다:

SMS OTP / 이메일 OTP

SMS OTP 또는 이메일 OTP는 서버가 고유한 패스코드를 생성하여 SMS 또는 이메일을 통해 사용자의 인증을 위한 간단한 형태의 OTP 중 하나입니다. 사용자는 이 패스코드를 입력하여 자신을 인증합니다.

작동 원리:

  • 사용자는 서버에서 OTP를 요청합니다.
  • 서버는 무작위 숫자 또는 영숫자 코드를 생성하고 SMS 또는 이메일을 통해 사용자에게 전송합니다.
  • 사용자는 SMS 또는 이메일 받은편지함에서 OTP를 가져와 애플리케이션에 입력합니다.
  • 서버는 기록에 따라 코드를 검증하고 유효한 경우 접근을 허용합니다.

보안 조치:

  • OTP는 가로채기 및 재생 공격의 위험을 최소화하기 위해 짧은 시간 동안(예: 5분간)만 유효합니다.
  • SMS 전달 채널은 셀룰러 네트워크를 의해 성간되며, 심 교환 공격이나 통신 인프라의 다른 취약점에 취약할 수 있습니다.
  • 이메일 기반 OTP는 사용자의 이메일 계정이 공격을 받으면 그대로 가로챌 수 있습니다.

사용 사례:

SMS 및 이메일 OTP는 온라인 뱅킹, 전자 상거래 및 소셜 미디어 플랫폼 등 소비자 대상 애플리케이션에서 일반적으로 사용됩니다. 이는 정적 비밀번호보다 더 안전할 뿐만 아니라 복잡한 비밀번호와 보안 질문을 기억하지 않고도 사용자가 자신을 인증할 수 있는 편리한 방법을 제공합니다.

대부분의 사용자가 항상 휴대폰이나 이메일 계정에 액세스할 수 있는 상황에서 SMS 및 이메일 OTP는 사용자 인증, 이메일 주소 또는 전화번호 소유권 확인, 비밀번호 복구를 위한 선호하는 방법이 되었습니다.

HMAC 기반 OTP (HOTP)

HMAC 기반 OTP는 RFC 4226에서 정의된 시계열 OTP 알고리즘으로, 비밀 키와 카운터 값을 바탕으로 일회용 패스코드 시퀀스를 생성합니다. 각 OTP는 비밀 키와 카운터 값을 사용하여 암호화 해시 함수(예: SHA-1, SHA-256)로 해시함으로써 파생됩니다.

작동 원리:

  1. 비밀: HOTP는 서버와 클라이언트 간에 공유 비밀 키가 필요합니다.

  2. 카운터: 서버와 클라이언트는 각각의 OTP를 생성할 때마다 증가하는 카운터 값을 유지합니다.

  3. 클라이언트는 공유 비밀 키(K)를 사용하여 카운터 값(C)의 HMAC-SHA1(또는 다른 해시 함수) 해시를 계산합니다.

    • H = HMAC-SHA1(K, C)
  4. 해시 값은 숫자를 생성하기 위해 6 또는 8자리 코드로 잘립니다(구현에 따라 다름).

    • OTP = Truncate(H)mod 10^d
  5. 서버는 카운터 값을 추적하고, 들어오는 OTP를 동일한 카운터 값과 비밀 키를 사용하여 해시 값을 계산함으로 검증합니다. (미세한 불일치가 있는 경우는, 동기화 문제를 고려하여 1~2개의 증가 카운터 값을 허용할 수 있습니다)

보안 조치:

  • HOTP는 각 비밀번호가 사용될 때까지 고유하고 유효하게 하여, 카운터가 보안 인증 후 증가되도록 합니다.
  • 비밀 키는 네트워크를 통해 전송되지 않으므로 가로채기 위험이 줄어듭니다.
  • 카운터 값은 서버와 클라이언트 간에 동기화되어 재생 공격을 방지합니다.

사용 사례:

HOTP는 타이밍 제약을 구현하는데 도전이 될 수 있는 하드웨어 토큰과 레거시 시스템에 주로 사용됩니다. 현대 애플리케이션에서는 TOTP가 그 시간 기반 특성과 구현의 용이성 때문에 보다 일반적으로 사용됩니다.

시간 기반 OTP (TOTP)

시간 기반 OTP는 RFC 6238에서 정의된 알고리즘으로, 현재 시간과 공유 비밀 키를 바탕으로 일회용 패스코드 시퀀스를 생성합니다. TOTP는 카운터 값을 대신하여 타임 스탬프를 사용하여 OTP를 생성하는 HOTP의 더 진보된 확장판입니다. 이는 OTP에 시간 기반의 유효성을 부여하여 HOTP보다 더 안전하게 합니다.

작동 원리:

  1. 비밀: HOTP와 마찬가지로, TOTP는 서버와 클라이언트 간에 공유 비밀 키가 필요합니다.

  2. 시간 단계: HOTP와 TOTP의 주요 차이점은 TOTP가 카운터 값 대신 시간 기반 단계 값(일반적으로 30초)을 사용한다는 것입니다.

  3. 클라이언트는 공유 비밀 키를 사용하여 현재 시간을 시간 단계로 나눈 값을 HMAC-SHA1 해시로 계산합니다.

    • H(Time) = HMAC-SHA1(K, Time/TimeStep)
  4. 해시 값은 6 또는 8자리 코드로 잘려 OTP를 생성하게 됩니다.

    • OTP(Time) = Truncate(H(Time))mod 10^d
  5. 동적 OTP: OTP 생성이 시간 기반이므로 OTP는 30초마다 변경되며, 더 높은 수준의 보안을 제공합니다.

  6. 서버는 현재 시간과 비밀 키를 사용하여 들어오는 OTP를 검증합니다. OTP가 유효한 시간 창 내에 있는 한 서버는 인증을 수락합니다.

보안 조치:

  • 시간 동기화에 대한 의존도가 있는 OTP는 짧은 기간 동안만 유효하여 가로채기나 재사용의 위험을 줄입니다.
  • 시간 기반의 특성으로 인해 TOTP는 재생 공격에 대한 위험이 적어져, 만약 공격자가 이전에 사용된 OTP를 얻더라도 시간이 만료되면 무효화됩니다.
  • HOTP와 마찬가지로, 공유 비밀 키는 네트워크를 통해 전송되지 않으므로 가로채기 위험이 줄어듭니다.

사용 사례:

TOTP는 Google Authenticator, Authy 및 Microsoft Authenticator와 같은 소프트웨어 기반 인증 앱에서 널리 사용됩니다. 이러한 앱은 사용자들이 다양한 온라인 서비스를 인증할 때 시간 기반 OTP를 생성합니다. 소셜 미디어 플랫폼, 클라우드 서비스 및 금융 기관을 포함합니다.

TOTP 인증 앱은 MFA에 대한 가장 인기 있는 형태의 OTP로, 보안과 사용성 간의 균형을 제공합니다. 사용자는 SMS나 이메일 전달에 의존하지 않고 모바일 기기에서 OTP를 생성할 수 있어 보다 안전하고 편리한 인증 방법입니다.

OTP의 장점

  1. 강화된 보안

    • OTP는 도난되거나 손상된 비밀번호와 관련된 위험을 완화합니다.
    • OTP는 시간에 민감하며 빠르게 만료되어 공격자가 이를 가로채어 재사용할 수 있는 기회를 줄입니다.
    • 일회용이라는 특성때문에 OTP는 고유하며 재사용할 수 없기 때문에 정적 비밀번호보다 더 안전합니다.
  2. 사용의 용이성

    • OTP는 생성이 쉬우며, 사용자가 최소한의 상호작용을 요구합니다.
    • TOTP와 같은 다양한 플랫폼 및 서비스에서 널리 지원되며, 최소한의 설정만 요구되고 기존의 다양한 인증 앱을 활용할 수 있습니다.
  3. 유연성

    • OTP는 SMS, 이메일 및 인증 앱을 포함하여 여러 채널을 통해 전달될 수 있어 사용자가 선호하는 방법을 선택할 수 있는 유연성을 제공합니다.
  4. 규제 준수

    • OTP는 PCI DSS, GDPR 및 HIPAA와 같은 강력한 인증 메커니즘을 요구하는 산업 표준 및 규정을 준수하여 민감한 데이터를 보호합니다.

왜 OTP가 정적 비밀번호보다 선호되는가?

OTP는 현대 보안 관행에서 필수 도구로 자리 잡은 안전하고 편리한 인증 방법입니다. 각 인증 세션마다 고유하고 시간에 민감한 패스코드를 제공함으로써 OTP는 전통적인 정적 비밀번호보다 높은 수준의 보안을 제공합니다. SMS, 이메일, 인증 앱을 통해 전달되는 OTP는 민감한 데이터를 보호하고 온라인 서비스에 대한 접근을 보안하기 위해 다양한 애플리케이션에서 널리 채택되고 있습니다. 위협 환경이 진화함에 따라, OTP는 사용자 계정을 보호하고 개인 및 기업 정보를 무단 접근으로부터 방지하는데 중요한 역할을 계속하고 있습니다.