SMS 인증 vs OTP 앱, 40%의 격차
로그인 화면에 여섯 자리 숫자를 넣어 본 적은 누구나 있습니다. 그 숫자가 문자로 왔는지 인증 앱에서 나왔는지는 대개 신경 쓰지 않습니다. 화면에 뜬 결과가 똑같기 때문입니다.
그런데 마이크로소프트가 실제 계정을 대상으로 측정한 결과는 두 방식을 같은 것으로 보기 어렵게 만듭니다. 같은 조건에서 SMS 인증을 쓴 계정의 공격 성공률은 1.66퍼센트, 인증 앱을 쓴 계정은 0.99퍼센트였습니다. 여섯 자리 숫자가 어디를 거쳐 왔는지가 결과를 갈랐습니다.
SMS 인증과 OTP 앱, 숫자가 오는 길이 다릅니다
SMS 인증은 서버가 일회용 숫자를 만들어 이동통신망을 통해 사용자의 전화번호로 보내는 방식입니다. 비밀 자체가 통신망을 건너므로, 그 경로에 개입할 수 있는 쪽은 누구든 숫자를 볼 수 있습니다. 대표적인 개입 지점이 통신사 대리점에서 이뤄지는 유심 교체와 번호 이동입니다.
OTP 앱은 다릅니다. 계정을 등록할 때 QR 코드로 시드 값을 한 번만 주고받은 뒤, 서버와 앱이 각자 같은 계산을 수행해 같은 숫자를 만들어 냅니다. 표준은 RFC 6238의 TOTP 알고리즘이며 2011년 5월에 공개됐습니다. 기본 시간 단위는 30초로 권고되어 있고, 이 값은 보안과 사용성 사이의 절충이라고 문서에 명시돼 있습니다. 등록 이후에는 숫자가 네트워크를 건너지 않습니다.
| 항목 | SMS 인증 | OTP 앱 |
|---|---|---|
| 숫자의 생성 위치 | 서버 | 서버와 기기가 각각 |
| 전달 경로 | 이동통신망 | 전달하지 않음 |
| 신뢰해야 하는 대상 | 통신사와 번호 관리 절차 | 기기와 시드 보관 상태 |
| 통신 불가 상황 | 사용 불가 | 사용 가능 |
| 공격 성공률 실측 | 1.66퍼센트 | 0.99퍼센트 |
수치의 출처를 밝혀 두겠습니다. 마이크로소프트 연구진은 2022년 4월 22일부터 9월 22일까지 이상 활동이 관측된 계정을 분석했고, 비밀번호가 유출된 계정 12만 8천 개 가운데 다중 인증이 걸려 있던 7,861개를 따로 살폈습니다. 이 자료에서 SMS는 인증 앱보다 40.8퍼센트 덜 효과적이었습니다. 다만 방식을 가리지 않고 다중 인증을 켜는 것만으로 계정 침해 위험이 99.22퍼센트 줄었다는 점도 같은 연구의 결론입니다.
미러 이미징 - 화면이 같으니 속도 같다고 믿습니다
SMS에 익숙한 쪽은 인증 앱을 이렇게 봅니다. 어차피 여섯 자리 숫자를 넣는 것은 똑같은데 앱을 왜 따로 깔아야 하느냐, 휴대전화를 바꾸면 등록해 둔 것이 전부 날아가지 않느냐는 의문입니다.
인증 앱을 쓰는 쪽은 반대로 묻습니다. 유심 교체 한 번이면 뚫리는 방식을 은행이 왜 아직도 기본값으로 두느냐는 것입니다. 두 질문 모두 상대가 자기와 같은 위협을 상정하고 만들어졌으리라 가정합니다.
착시의 근원은 결과 화면입니다. 여섯 자리 숫자라는 형태가 같으니 뒤에 있는 구조도 같으리라 여기게 됩니다. 저는 인증 방식을 고를 때 사람들이 실제로 비교하는 것은 보안 수준이 아니라 손이 가는 횟수라고 생각합니다.
SMS 인증과 OTP 앱을 가른 것은 숫자의 길이가 아니라 그 숫자를 누구의 손을 거쳐 받을지에 대한 판단입니다. 두 렌즈의 정의는 핵심이론 페이지에 정리해 두었습니다.
알로센트리즘 - 각자가 지키려 한 것
SMS 인증이 지키려 한 값은 도달률입니다. 앱을 설치할 필요도, 계정을 만들 필요도, 스마트폰일 필요조차 없습니다. 전화번호만 있으면 작동하므로 어떤 서비스든 전체 이용자를 한 번에 덮을 수 있습니다. 게다가 국내에서는 통신사 가입 절차 자체가 실명 확인을 거치므로, 번호는 이미 검증된 신원 표식으로 재활용됩니다. 보급의 관점에서 이보다 효율적인 수단은 없었습니다.
OTP 앱이 지키려 한 값은 경로의 제거입니다. 비밀이 이동하지 않으면 중간에서 가로챌 대상도 없다는 발상이며, 통신사를 신뢰 사슬에서 빼는 것이 목적입니다. 비행기 안에서도, 해외 로밍이 끊긴 상태에서도 숫자가 나오는 이유가 여기에 있습니다.
그래서 핵심 문장은 이렇게 정리됩니다. SMS의 취약성은 게으름이 아니라, 전 국민이 별도 준비 없이 쓸 수 있는 인증을 얻기 위해 지불한 대가입니다. 반대로 OTP 앱의 번거로운 초기 등록은 통신사를 신뢰 목록에서 지우기 위해 감수한 비용입니다. 이 흐름의 다음 단계인 공개키 기반 인증은 패스워드와 패스키를 비교한 글에서 다룬 바 있습니다.
반론 - OTP 앱도 최종 답은 아닙니다
인증 앱을 정답처럼 말하기 어려운 이유가 있습니다. 가장 큰 한계는 피싱입니다. 가짜 로그인 화면이 사용자에게 여섯 자리를 입력받아 그대로 진짜 서버에 중계하면, 그 숫자가 앱에서 나왔는지 문자로 왔는지는 아무 차이가 없습니다. OTP는 자신이 어느 사이트에 쓰이는지 알지 못하기 때문입니다.
미국 표준기술연구소가 2025년 7월 발행한 SP 800-63B 개정 4판은 이 문제를 분명히 다룹니다. 공중전화망을 이용한 대역 외 인증을 제한된 인증 수단으로 분류하고, 검증자가 유심 교체와 번호 이동 같은 위험 지표를 먼저 확인할 것을 권고합니다. 또한 이용자에게 대체 수단을 반드시 제공하고 그 한계를 알리도록 요구합니다.
SMS 쪽의 위험이 문서상의 이야기만은 아닙니다. 미국 연방수사국 산하 인터넷범죄신고센터가 집계한 2025년 사이버 범죄 피해액은 209억 달러로 전년 대비 26퍼센트 늘었고, 신고가 많은 유형 가운데 유심 교체 사기가 10퍼센트를 차지했습니다. 반대편도 적자면, 인증 앱은 기기를 잃었을 때 복구가 까다롭고, 편의를 위해 시드를 클라우드에 동기화하는 순간 그 계정이 새로운 단일 실패 지점이 됩니다.
결론 - 지금 손댈 순서를 정합니다
우선순위는 분명합니다. 금융과 이메일처럼 다른 계정의 열쇠 노릇을 하는 곳부터 SMS를 빼고 인증 앱으로 옮기는 것이 합리적입니다. 이메일이 SMS로만 보호되고 있다면 그 아래 붙은 모든 계정의 실제 보안 수준은 유심 한 장과 같습니다.
두 번째로 통신사 계정에 번호 이동과 유심 재발급 잠금을 걸어 두시기 바랍니다. SMS를 계속 쓰는 계정이 하나라도 남아 있다면 이 조치가 그 계정의 방어선입니다. 세 번째로 인증 앱을 새로 등록할 때 나오는 백업 코드를 인쇄해 오프라인에 보관하는 편이 좋습니다.
다만 두 방식 모두 피싱 앞에서는 같은 자리에 서 있다는 점을 잊지 않아야 합니다. 도메인이 다르면 아예 작동하지 않는 인증으로 옮겨 가는 것이 근본 해법이며, 그 방향은 이미 정해져 있다고 봅니다. 다음 글에서는 GPU와 NPU를 놓고, 같은 인공지능 연산을 두 부품이 왜 다르게 처리하도록 설계됐는지 살펴보겠습니다.
댓글
댓글 쓰기