Mobile OTP 인증 구조와 보안 운영 원칙

Mobile OTP의 TOTP·HOTP·질의응답 방식과 시드값 관리, 피싱 대응, 생체인증 연계까지 인증 체계 설계 관점에서 정리합니다.

2026-08-14 · 최초 발행 2025-06-15

정적 비밀번호만으로는 막기 어려운 인증 위험

Mobile OTP(One Time Password)는 한 번만 사용할 수 있는 비밀번호를 생성하는 인증 기술이다. 모바일 기기에서 OTP를 만들고 입력할 수 있어, 정적 패스워드가 갖는 재사용 공격과 키로깅 위험을 줄이는 데 쓰인다.

금융거래나 민감정보 접근처럼 신원 확인을 강화해야 하는 구간에서 활용되며, 피싱·스니핑 같은 공격에 대응하고 금융·의료·공공 분야의 보안 규제 요구사항을 충족하는 수단이 될 수 있다.

동기화 방식에 따라 달라지는 OTP

시간 기반 OTP인 TOTP(Time-based OTP)는 서버와 클라이언트의 시간 동기화를 바탕으로 동작한다. 일정 시간, 보통 30초마다 새 패스워드를 생성하며 HMAC-SHA1, HMAC-SHA256이 대표 알고리즘이다. Google Authenticator와 Microsoft Authenticator가 이 방식을 구현한 사례다.

HOTP(HMAC-based OTP)는 시간을 기준으로 삼지 않고 카운터 값으로 패스워드를 생성한다. 사용자가 OTP를 요청할 때마다 카운터가 증가하며 RFC 4226을 따른다. 시간 동기화 문제는 없지만, 서버와 사용자 측 카운터를 맞춰 관리해야 한다.

질의-응답 방식은 서버가 전달한 질의값(Challenge)에 대해 OTP를 생성한다. 서버와 클라이언트가 같은 알고리즘과 비밀키를 공유하며, 하드웨어 토큰에서 주로 사용된다.

SMS OTP는 문자메시지로 일회용 비밀번호를 전송한다. 별도 앱을 설치하지 않아도 되지만, SMS 보안 취약성과 네트워크 의존성이 제약이 된다.

모바일 앱과 서버가 검증하는 흐름

Mobile OTP는 사용자 앱과 서버가 공유한 비밀키를 바탕으로 같은 값을 계산하고 비교하는 구조다.

ServerMobile AppUserServerMobile AppUser로그인 시도OTP 인증 요청OTP 생성 요청비밀키 + 시간/카운터 값으로 OTP 생성OTP 표시OTP 입력동일한 알고리즘으로 OTP 검증인증 성공/실패 응답

TOTP를 생성할 때는 공유 비밀키(Seed)를 만들고 등록한 뒤, 현재 시간을 30초 단위로 나눈 Time Step 값을 구한다. 비밀키와 시간 값을 HMAC 함수에 넣어 해시를 생성하고, 그 결과의 특정 부분을 추출해 6~8자리 숫자로 바꾼다. 생성된 OTP는 설정된 시간, 보통 30초 동안만 유효하다.

TOTP는 다음과 같이 표현할 수 있다.

TOTP = HOTP(K, T)
여기서 K는 공유 비밀키, T는 (현재 Unix시간 / 시간간격)의 정수 값

HOTP(K, C) = Truncate(HMAC-SHA-1(K, C))
Truncate 함수는 해시 값에서 일부만 추출하여 사람이 읽을 수 있는 숫자로 변환

표준과 키 관리가 구현의 중심이 된다

HOTP 알고리즘은 RFC 4226, 시간 기반 TOTP 알고리즘은 RFC 6238에서 정의한다. OATH(Initiative for Open Authentication)는 개방형 인증 표준화를 위한 기구다.

해시 알고리즘으로는 HMAC-SHA1이 널리 사용되며, HMAC-SHA256은 SHA1보다 강화된 보안성을 제공한다. 일부 솔루션은 대칭키 암호화 알고리즘인 AES도 사용한다.

OTP의 신뢰성은 시드값 관리에 크게 좌우된다. 키는 충분한 엔트로피를 갖는 난수로 생성하고, 보안 영역이나 TEE 같은 안전한 저장소에 보관해야 한다. QR코드 또는 암호화된 채널을 통한 키 배포도 보호 대상이다.

모바일 앱에서는 코드 난독화, 루팅·탈옥 탐지, 스크린샷 방지를 고려할 수 있다. 등록과 사용 절차는 간결해야 하며, 네트워크 연결 없이 OTP를 만들 수 있는 오프라인 지원도 필요하다. 시간 기반 방식이라면 NTP 서버 활용과 시간 오차 보정 기능을 함께 검토한다.

인증 경로별 활용 방식

금융권에서는 인터넷뱅킹과 모바일뱅킹 로그인, 거래 인증, 공인인증서 대체 수단, 카드 결제 추가 인증에 Mobile OTP를 활용한다. 국내 은행권의 뱅크사인과 금융결제원의 브이패스가 사례다.

기업 환경에서는 VPN 접속, 클라우드 서비스 접근 제어, 내부 시스템 로그인 보안 강화에 적용할 수 있다. Microsoft 365, Google Workspace, AWS의 MFA 적용도 관련 사례로 볼 수 있다.

공공 영역에서는 전자정부 서비스 인증, 민원24·정부24 등 공공 포털 인증, 전자투표와 온라인 민원 서비스에 사용된다. 행정안전부의 간편인증 서비스가 사례로 언급된다.

시드값부터 세션까지 통제해야 한다

초기 등록 과정에서 시드값이 유출되면 공격자는 OTP를 재현할 수 있다. 이미 사용된 OTP를 다시 쓰는 리플레이 공격, 가짜 사이트에서 OTP 입력을 유도하는 피싱, 통신 과정에서 값을 가로채는 중간자 공격, 시간 기반 정보를 분석하는 타이밍 공격도 대응해야 할 위협이다.

OTP만 단독으로 두기보다 다른 인증 수단과 결합한 다중 요소 인증(MFA)을 적용할 수 있다. 거래 정보를 OTP 생성에 넣는 트랜잭션 서명, 지문·얼굴 인식과의 연계, 위치·기기·행동 패턴을 분석하는 컨텍스트 기반 인증도 보완 수단이다. 인증 뒤에는 적절한 세션 타임아웃을 설정한다.

운영 단계에서는 OTP 유효 시간을 30초 이내로 제한하고, 연속 실패 시 계정을 잠그는 시도 횟수 제한이 필요하다. 비정상 접근 패턴을 모니터링하고 앱 위변조 방지 기술로 무결성을 검증하며, 정기적인 보안 감사와 취약점 점검·업데이트를 수행한다.

디지털 신원 체계와 결합하는 방향

생체인증과 결합하면 지문, 얼굴, 홍채 인식뿐 아니라 걸음걸이와 타이핑 패턴 같은 행동 생체인증을 활용할 수 있다. 생체정보는 OTP 시드값 보호에도 쓰일 수 있다.

AI와 머신러닝은 사용자 행동 패턴을 학습해 이상을 탐지하고, 상황에 따라 인증 강도를 조절하는 리스크 기반 인증과 지능형 보안 위협 분석·대응에 적용될 수 있다.

분산신원증명(DID)과의 연계는 블록체인 기반 탈중앙화 인증 체계 및 자기주권 신원 관리에 OTP를 활용하는 방향이다. FIDO2, WebAuthn 표준과 연계한 디바이스 기반 인증은 Passwordless 환경과 심리스(Seamless) 인증 경험으로 확장될 수 있다.

양자컴퓨터 위협에 대비해서는 포스트 퀀텀 암호화(PQC) 기술 적용, 양자 내성 알고리즘 개발, 기존 OTP 프로토콜의 양자 내성 버전 준비가 과제로 남는다.

Mobile OTP인증 보안다중 요소 인증모바일 보안TOTP