OTP는 어떻게 숫자를 맞추고, 문자 인증은 어디가 약한가
OTP 기기는 은행 서버와 따로 떨어져 있는데도 30초나 1분마다 같은 숫자를 띄웁니다. 문자로 온 인증번호는 내 휴대폰에만 오는 걸까요? OTP가 숫자를 맞추는 원리와, 문자 인증과 OTP가 함께 가진 약점을 살펴봅니다.
OTP 기기는 은행과 연락하지 않는다
1장에서 본 ‘가진 것’ 가운데 가장 익숙한 것이 일회용 비밀번호입니다. 한 번 또는 짧은 시간만 쓰이는 숫자로 '가진 것'을 확인합니다.입니다. OTP 기기는 은행 서버와 숫자를 주고받지 않는데도 서버와 같은 숫자를 띄웁니다. 둘이 같은 비밀값과 같은 시계로 같은 계산을 각자 하기 때문입니다.[1] 이 방식을 시간 기반 OTP(TOTP)라고 부르며, 국제인터넷표준화기구(IETF)의 문서 RFC 6238이 계산법을 정해 두었습니다.[1]
순서는 이렇습니다.
- 기기와 은행 서버가 처음에 같은 비밀값을 나눠 갖습니다. 이것을 OTP 기기와 은행 서버가 처음에 나눠 갖는 같은 비밀값입니다. 이것이 새면 누구나 같은 숫자를 만들 수 있습니다.이라고 하고, 기기마다 값이 다릅니다.[1]
- 둘은 지금 시각을 일정한 간격으로 센 순번을 공유 비밀과 섞어 계산합니다.[1]
- 간격은 시스템마다 정하고, 표준의 기본값은 30초입니다.[1] 국내 은행 OTP는 보통 30초에서 1분마다 숫자를 새로 만듭니다.[9]
- 계산 결과는 너무 길어서 6자리 이상의 숫자로 줄여 보여 줍니다.[2]
- 간격이 지나면 순번이 바뀌므로 숫자도 바뀝니다.[1]
같은 노래책을 한 권씩 나눠 가진 두 사람을 떠올려 보세요. 둘은 30초마다 다음 장으로 넘기기로 약속했습니다. 그러면 서로 연락하지 않아도 지금 펼친 장의 첫 소절이 같습니다. 노래책이 공유 비밀, 넘기는 약속이 시계, 첫 소절이 OTP 숫자입니다. 다만 OTP의 노래책은 비밀값 하나에서 계산으로 만들어집니다. 그래서 비밀값이 새면 누구나 같은 책을 펼칠 수 있습니다.

숫자가 오가는 사이 조금 늦어질 수 있습니다. 그래서 이 문서는 서버가 많아야 바로 앞 순번 하나까지만 더 받아 주라고 권합니다.[1] 방금 바뀌기 전의 숫자가 잠깐 더 통할 수 있는 것은 이 때문입니다.
계산 과정 보기
- 순번은 1970년 1월 1일 0시(UTC)부터 지난 초를 시간 간격(기본값 30초)으로 나누고 소수점 아래를 버린 값입니다.[1]
- 이 문서 4.2절의 예로 보면 간격이 30초일 때 59초는 순번 1, 60초는 순번 2입니다. 그래서 59초와 60초 사이에 숫자가 바뀝니다.[1]
- 같은 부록에서 비밀값 ‘12345678901234567890’, 59초일 때 8자리 OTP는 94287082입니다. 6자리로 줄이면 끝 여섯 자리인 287082입니다.[1]
- 6자리 숫자는 10의 6제곱, 곧 100만 가지입니다. 아무 숫자나 한 번 넣어 맞힐 확률은 약 100만분의 1이고, 서버가 앞 순번 숫자까지 받아 주면 많아야 100만분의 2입니다.
문자 인증번호는 전화번호를 믿는다
문자 인증도 ’가진 것’을 확인하려는 방법입니다. 그런데 문자는 휴대폰이 아니라 전화번호로 갑니다. 번호가 다른 유심으로 옮겨 가면 인증 문자도 따라갑니다.[4] 미국 NIST 지침은 문자·음성 전화로 하는 인증을 ‘제한적’ 방식으로 분류합니다.[3] 문자를 보내기 전에 유심 변경, 번호 이동 같은 위험 신호를 살피라고 합니다.[3]
약점은 크게 두 가지입니다.
범죄자가 통신사를 속이거나 유심을 복제해 남의 전화번호를 자기 기기로 옮기는 수법입니다. 심 스와핑이라고도 합니다.. 범죄자가 피해자인 척 통신사를 속여 피해자 번호를 자기 유심으로 옮깁니다. 그 뒤로 전화와 문자가 범죄자 기기로 갑니다.[4] 미국 FBI에는 2021년 한 해 이런 신고가 1,611건 들어왔습니다.[4] 한국에서는 유심 정보를 복제한 ’쌍둥이 유심’으로 같은 일을 벌인 조직이 검거되었습니다.[5] 범죄자가 기기변경을 하자 피해자 휴대폰은 통신이 끊기고, 인증 문자는 범죄자에게 갔습니다.[5] 서울경찰청은 이 조직이 이 수법으로 피해자 4명의 전자적으로 거래하고 옮길 수 있는, 경제적 가치가 있는 증표입니다. 한국은행의 전자 화폐, 페이 같은 선불전자지급수단, 예금 토큰은 여기서 빠집니다.디지털 돈에 대한 세 가지 착각 챕터에서 보기 약 89억 원어치를 빼낸 혐의가 있다고 밝혔습니다.[5]
악성 앱. 스미싱 문자 속 주소로 깔린 악성 앱은 휴대폰의 문자 메시지를 빼 갑니다.[6] NIST도 악성 앱이 문자로 온 인증번호를 읽어 쓰는 위협을 꼽습니다.[3]
문자 인증이 확인하는 것은 ’이 번호로 온 문자를 봤다’입니다. ’이 휴대폰을 가졌다’를 확인하지는 못합니다. 휴대폰이 갑자기 전화도 문자도 안 되면 고장보다 번호 도용을 먼저 의심하고, 바로 통신사에 연락합니다.[4]
손으로 옮기는 숫자는 가짜 사이트로도 간다
OTP와 문자 인증번호에는 공통 약점이 하나 더 있습니다. 사람이 숫자를 보고 직접 입력한다는 점입니다. NIST는 이렇게 손으로 옮기는 방식을 진짜처럼 꾸민 화면이나 연락으로 비밀번호·인증번호 같은 인증 정보를 입력하게 해 빼내는 수법입니다.에 강한 인증으로 보지 않습니다.[3] 입력한 숫자에는 어느 사이트에 넣었는지가 담기지 않습니다. 그래서 가짜 사이트가 받은 숫자를 진짜 사이트에 그대로 넘겨 로그인할 수 있습니다.[3]
미국 사이버보안·인프라보안청(CISA)도 이 수법을 설명합니다. 가짜 로그인 화면에 아이디, 비밀번호와 인증 앱의 6자리 코드까지 넣게 하는 방식입니다.[7] 한국인터넷진흥원도 피싱사이트에서 인증번호를 빼앗긴 사례를 경고합니다.[6]
“OTP 숫자는 30초면 바뀌니 알려 줘도 괜찮다”고 생각하기 쉽습니다. 사기범에게는 그 30초면 충분합니다. 받은 숫자를 바로 진짜 사이트에 넣으면 되기 때문입니다.[3] 금융당국과 금융회사는 전화나 문자로 비밀번호나 인증번호를 요구하지 않습니다.[8] 그런 요구를 받으면 숫자를 불러 주지 말고 전화를 끊습니다.
숫자를 옮겨 적지 않는 인증이라면 어떨까요? 다음 챕터에서는 사이트 주소에 묶인 열쇠로 이 문제를 푸는 FIDO 표준에 바탕을 둔 인증 수단입니다. 기기에 둔 개인 키로 서명해 로그인하고, 사이트에는 공개 키만 등록합니다.패스키가 피싱에 강한 이유와 인증을 둘러싼 착각 챕터에서 보기를 봅니다.
용어 정리
- OTP
- 일회용 비밀번호입니다. 한 번 또는 짧은 시간만 쓰이는 숫자로 '가진 것'을 확인합니다.
- 공유 비밀
- OTP 기기와 은행 서버가 처음에 나눠 갖는 같은 비밀값입니다. 이것이 새면 누구나 같은 숫자를 만들 수 있습니다.
- 유심 바꿔치기
- 범죄자가 통신사를 속이거나 유심을 복제해 남의 전화번호를 자기 기기로 옮기는 수법입니다. 심 스와핑이라고도 합니다.
- 피싱
- 진짜처럼 꾸민 화면이나 연락으로 비밀번호·인증번호 같은 인증 정보를 입력하게 해 빼내는 수법입니다.
이해도 점검
정답 0 / 3Q1OTP 기기는 은행 서버와 따로 떨어져 있는데도 서버와 같은 숫자를 띄웁니다. 그 까닭은 무엇입니까?
Q2어느 날 휴대폰이 고장 난 것도 아닌데 갑자기 전화도 문자도 되지 않습니다. 가장 먼저 의심하고 할 일은 무엇입니까?
Q3은행 직원이라는 사람이 "보안 점검 중이니 OTP에 뜬 6자리를 불러 달라. 30초면 바뀌니 걱정 없다"고 합니다. 맞는 판단은 무엇입니까?
이 챕터의 요약
- OTP 기기와 은행 서버는 같은 비밀값과 같은 시계로 숫자를 각자 계산합니다.
- 문자 인증은 휴대폰이 아니라 전화번호를 믿기 때문에 유심 바꿔치기와 악성 앱에 약합니다.
- 손으로 옮겨 적는 숫자는 가짜 사이트가 그대로 넘길 수 있어 피싱을 막지 못합니다.
출처와 신뢰도
- ARFC 6238: TOTP, Time-Based One-Time Password Algorithm (2011. 5.) · 국제인터넷표준화기구(IETF)시간 기반 OTP의 원 표준 문서입니다. 증명자(기기)와 검증자(서버)가 현재 시각을 알고 같은 비밀을 공유해야 하며 기기마다 비밀이 달라야 한다는 3장, 시간 간격의 기본값은 30초이고 시스템마다 정하는 값이라는 4.1절, 순번 계산과 59초·60초 예(4.2절), 네트워크 지연을 감안해 시간 단계 하나 정도만 더 허용하라는 권고(5.2절), 부록 B의 시험값을 가져왔습니다.본문으로
- ARFC 4226: HOTP, An HMAC-Based One-Time Password Algorithm (2005. 12.) · 국제인터넷표준화기구(IETF)TOTP가 바탕으로 삼는 OTP 표준입니다. OTP 값은 6자리 이상 숫자여야 하고, 계산 결과를 잘라 사람이 입력하기 쉬운 숫자로 줄인다는 4장과 5.3절을 가져왔습니다.본문으로
- ASP 800-63B-4: Digital Identity Guidelines, Authentication and Authenticator Management (2025. 7.) · 미국 국립표준기술연구소(NIST)미국 연방 인증 지침의 최종판입니다. 문자·음성 전화(PSTN)를 쓰는 인증을 제한적(restricted) 방식으로 두고 기기 교체·유심 변경·번호 이동 같은 위험 신호를 살피라는 3.1.3.3절, 악성 앱이 문자로 온 비밀을 읽는 위협(표 3), 손으로 옮겨 입력하는 OTP와 문자 인증은 출력이 세션에 묶이지 않아 피싱 저항으로 보지 않는다는 3.2.5절을 가져왔습니다.본문으로
- ACriminals Increasing SIM Swap Schemes to Steal Millions of Dollars from US Public (I-020822-PSA, 2022. 2. 8.) · 미국 연방수사국(FBI) 인터넷범죄신고센터(IC3)미국 수사기관의 공익 경고입니다. 범죄자가 피해자인 척 통신사를 속여 번호를 자기 유심으로 옮기면 전화와 문자가 범죄자 기기로 간다는 설명, 2021년 유심 바꿔치기 신고 1,611건·피해 6,800만 달러 이상, 번호를 되찾으려면 바로 통신사에 연락하라는 권고를 가져왔습니다.본문으로
- A유심 복제·부정개통으로 가상자산·금융자산 탈취한 해외 기반 해킹범죄조직 총책 등 32명 검거 (보도자료, 2026. 5. 22.) · 서울경찰청 사이버수사과수사기관의 발표입니다. 피해자 유심의 비밀정보를 빈 유심에 넣어 '쌍둥이 유심'을 만들고 기기변경을 하면 피해자 휴대폰은 통신이 끊기고 인증문자를 범죄자가 가로챈다는 수법 설명과, 이 방법으로 피해자 4명의 가상자산 거래소 계정에 침입해 약 89억 원 상당의 가상자산을 탈취한 혐의가 있다는 발표를 가져왔습니다.본문으로
- A과태료, 범칙금 등 행정처분 스미싱 주의 권고 (보안공지, 2025. 8. 21.) · 한국인터넷진흥원(KISA) 보호나라공공기관의 보안 공지입니다. 스미싱으로 설치된 악성 앱이 저장된 연락처와 문자 메시지 정보를 빼낸다는 설명과, 피싱사이트에서 인증번호를 탈취한 사례가 있다는 경고를 가져왔습니다.본문으로
- AImplementing Phishing-Resistant MFA (팩트시트, 2022. 10.) · 미국 사이버보안·인프라보안청(CISA)미국 정부 보안기관의 안내입니다. 가짜 로그인 화면에 아이디, 비밀번호와 함께 인증 앱의 6자리 코드까지 넣게 하는 피싱 수법 설명과, 유심 바꿔치기의 정의를 가져왔습니다.본문으로
- A최근 금융권 개인정보 유출사고에 따른 보이스피싱·스미싱 등 피해에 주의하세요 (소비자경보 2026-26호, 2026. 10. 6.) · 금융위원회금융당국의 소비자경보입니다. 금융당국과 금융회사는 전화·문자로 비밀번호나 인증번호를 요구하지 않는다는 문장을 가져왔습니다.본문으로
- B표준소개: 일회용 패스워드(OTP) 통합인증 서비스 프레임워크 (TTA Journal, 2014) · 한국정보통신기술협회(TTA) 기관지, 금융보안연구원 연구원 기고 (Korea Science)금융 보안 전문기관 연구원이 쓴 표준 소개 글입니다. 국내 인터넷뱅킹에서 흔히 쓰는 OTP가 시간동기화 방식으로 보통 30초~1분에 한 번씩 OTP를 생성한다는 설명을 가져왔습니다. 기기별 간격의 공식 목록이 아니라 일반적인 범위를 밝힌 자료입니다.본문으로