인증 앱, 하드웨어 토큰 및 SMS 코드는 2단계 인증(2FA)을 설정할 때 접하게 되는 일반적인 인증 방법입니다. 이 모든 방법은 일회용 비밀번호(OTP)에 의존합니다. TOTPHOTP는 표준화된 두 가지 유형의 OTP이며, SMS 및 이메일 코드는 다른 일반적인 OTP 전달 방법입니다. 이들은 근본적으로 동일한 기본 목적을 수행하지만 구현 방식이 다르기 때문에 고유한 장점과 한계가 있습니다. 이 글에서는 HOTP 대 TOTP 대 OTP를 비교 분석하고 다양한 사용 사례에 어떤 옵션이 가장 적합한지 설명하겠습니다.

HOTP, TOTP 및 OTP 이해하기

일회용 비밀번호(OTP)

OTP는 단 한 번만 사용되는 임시 코드로, 단일 사용 비밀번호 또는 2FA 코드라고도 합니다. 이는 비밀번호를 대체하는 것이 아니라 추가적인 보안 계층을 제공합니다. OTP는 로그인 중이나 온라인 계정을 설정할 때 신원 확인을 위해 금융 어플리케이션에서 일반적으로 사용됩니다.

참고: OTP는 TOTP, HOTP, 이메일/SMS를 포함하여 다양한 형태의 일회용 비밀번호를 아우르는 포괄적인 용어입니다.

시간 기반 일회용 비밀번호(TOTP)

TOTP 코드는 일반적으로 인증 앱에서 생성되는 6자리 코드입니다. 이는 약 30초 동안 유효합니다(서비스에 따라 최대 60초까지 가능). 코드가 만료되면 더 이상 작동하지 않으며 새 코드가 생성됩니다. TOTP는 시간 기반의 특성 덕분에 공격자가 도난당한 코드를 사용할 수 있는 시간적 기회를 제한하므로 보안성이 매우 높습니다.

HMAC 기반 일회용 비밀번호(HOTP)

HOTP는 YubiKey와 같은 하드웨어 토큰에서 흔히 볼 수 있으며, 카운터 기반 시스템을 사용하여 코드를 생성합니다. 이 시스템은 번호가 매겨진 상품권 책과 유사하게 작동합니다. 즉, 시스템과 대조되는 코드의 실행 순서가 있습니다. 하드웨어 토큰과 어플리케이션 서버가 동기화 상태를 유지하는 한, 귀하의 접근이 허용됩니다.

TOTP와 달리 HOTP 코드는 타이머에 의해 만료되지 않습니다. 귀하가 코드를 사용하거나 새 코드를 생성할 때까지 유효합니다. 따라서 오프라인 상황에 적합하지만, 코드를 생성하고 사용하지 않으면 공격자가 발견하여 사용할 수 있는 유효한 키로 남아 있게 됨을 의미하기도 합니다.

HOTP, TOTP 및 OTP: 주요 차이점

TOTP와 HOTP는 모두 다른 생성 방식을 사용하는 OTP의 유형입니다. 예를 들어, 귀하가 TOTP와 OTP를 비교한다면, 귀하는 인증 앱의 시간 기반 코드와 SMS 및 이메일 코드와 같은 일반적인 OTP 방식을 비교하고 있을 가능성이 높습니다.

SMS/이메일 코드TOTPHOTP
코드 유효 기간다양함 (분 단위에서 시간 단위까지)30~60초새 코드가 생성될 때까지
보안*낮음높음보통
설정 복잡도없음낮음보통
활성 네트워크 요구 사항아니요아니요
추가 하드웨어 없음없음하드웨어 토큰

*코드 유효 기간 및 가로채기 위험에 따른 보안 수준.

보안

HOTP, TOTP, OTP는 노출 시간과 전송 방식을 주요 고려 사항으로 하여 각기 다른 수준의 보안을 제공합니다.

TOTP는 코드가 기기에서 생성되고 유효 기간이 짧기 때문에 일반적으로 SMS나 이메일 코드보다 강력한 보안을 제공합니다. 공격자가 어떻게든 귀하의 TOTP 코드를 획득하더라도, 해당 코드는 무용지물이 됩니다.

HOTP는 암호화 기반으로 구축되어 강력한 보안을 제공합니다. 하지만 HOTP 코드는 타이머에 의해 만료되지 않으므로 유효 기간이 길어질 수 있어, 유출된 코드가 취약점이 될 수 있습니다.

SMS 및 이메일 코드는 이 중에서 가장 보안성이 떨어집니다. 가로채거나 우회할 수 있는 네트워크를 통해 전송되므로 SIM 스왑이나 피싱 공격에 더 취약합니다..

참고: 어떤 OTP 방식도 피싱과 같은 사회 공학적 공격으로부터 안전하지 않습니다. 자신을 제대로 보호하려면 피싱을 식별하는 방법을 아는 것이 중요합니다.

SMS/이메일 코드TOTPHOTP
활성 네트워크 요구 사항으로 인해 가로채기에 취약함공격자가 유출된 코드를 악용할 수 있는 시간이 극히 짧음유효 기간이 길어 공격 기회가 늘어남
암호화되지 않은 플랫폼으로 인해 코드가 유출되기 쉬음코드가 기기에서 생성되므로 가로채기 위험이 낮음암호화 기반으로 구축된 강력한 보안

사용자 경험

설정 복잡도, 시간적 압박, 신뢰성은 세 가지 방식의 사용자 경험에 영향을 미칩니다.

TOTP는 신뢰할 수 있으며 편리합니다. 설정이 간편하며(대개 간단한 QR 코드 스캔만으로 가능), 활성 네트워크가 없어도 코드가 생성됩니다. 그러나 코드의 짧은 만료 시간으로 인해 시간적 압박이 발생하며, 이는 속도가 느린 사용자나 여러 계정을 관리하는 사용자에게 불만을 유발할 수 있습니다.

이와 대조적으로 HOTP는 시간 제약이 전혀 없어 훨씬 더 여유롭습니다. 하지만 설정이 훨씬 더 복잡하며, 추가 하드웨어를 구매해야 할 수도 있습니다.

SMS 및 이메일 코드는 설정이 필요 없어 가장 간편하지만, 네트워크 연결에 의존하므로 중단이나 장애 시 지연이 발생할 수 있습니다.

SMS/이메일 코드TOTPHOTP
설정이 필요 없음2단계 인증 앱으로 QR 코드를 통한 간편한 설정설정이 복잡하며, 추가 하드웨어가 필요할 수 있음
약간의 시간적 압박이 있으며, 일부 코드는 몇 시간 내에 만료됨시간적 압박으로 인해 불만이 유발될 수 있음시간적 압박 없음
코드 전송을 위해 활성 네트워크에 완전히 의존함네트워크 연결이 없어도 안정적으로 작동함오프라인으로 작동하지만 동기화 문제가 발생할 수 있음

제한 사항

각 방식의 고유한 한계는 귀하가 이를 사용하는 방식과 시기에 영향을 미칩니다. SMS 및 이메일 코드는 귀하의 기존 기기에서 작동하지만, 네트워크 및 인터넷 연결에 의존하므로 코드 전송이 지연되어 유효 기간보다 더 오래 걸릴 수도 있습니다.

TOTP는 코드를 생성하는 데 네트워크 연결이 필요하지 않지만, 코드가 작동하려면 귀하의 스마트폰이 서버와 시간 동기화되어 있어야 합니다. 이를 보장하는 가장 좋은 방법은 귀하의 기기 시계가 인터넷과 자동으로 동기화되도록 설정하는 것입니다. 그러면 여행 중에도 시간 동기화가 유지됩니다.

HOTP의 경우, 네트워크 연결이 원활하지 않을 때 오프라인으로 새 코드를 생성하는 것이 유리할 수 있습니다. 그러나 이는 양날의 검입니다. 코드를 사용하지 않고 재생성하면 기기가 서버와 동기화되지 않아 인증 실패가 발생할 수 있습니다. 또한 HOTP에 필요한 수동 재생성은 사용자에게 큰 보안 책임을 부여합니다.

SMS/이메일 코드TOTPHOTP
네트워크 상태가 좋지 않은 지역에서는 코드 전송이 크게 지연될 수 있습니다여행 중이더라도 기기 시간은 서버 시간과 동기화되어 있어야 합니다.너무 많은 코드가 생성되고 사용되지 않으면 동기화가 해제될 수 있습니다.

귀하는 어떤 OTP 방식을 사용해야 할까요?

간단히 답하자면 TOTP는 대부분의 사람들에게 가장 적합한 표준인 반면, HOTP는 특정 오프라인 요구 사항을 충족합니다. 두 방식 모두 SMS보다 우수합니다.

개인의 필요에 따라 다르겠지만, 대부분의 상황에서는 TOTP가 더 균형 잡힌 선택인 것으로 보입니다. 시간 기반의 특성은 보안을 한층 더 강화해 주며, 스마트폰을 통한 접근성은 귀하가 정기적으로 접근하는 계정에 대해 편리하고 안전한 선택이 되도록 합니다. 하지만 피싱에 대해 훨씬 더 강력한 보호를 원한다면 FIDO2/패스키와 같은 하드웨어 기반 방식이 그 어떤 OTP 방식보다 더 효과적입니다.

비밀번호를 안전하게 저장하고 OTP를 생성하세요

비밀번호와 TOTP 인증 코드를 관리하는 것은 번거로운 일일 수 있습니다. 로그인 시 앱을 계속 전환하다 보면 귀하가 코드를 입력해야 하는 이미 제한된 시간이 더욱 줄어들기 때문입니다. Proton Pass는 통합 2단계 인증(TOTP) 기능으로 이러한 번거로움을 줄여주는 안전한 비밀번호 관리자입니다. 하나의 안전하고 암호화된 보관함에서 귀하의 비밀번호, 2단계 인증 코드 등에 접근하세요.