당신의 비밀번호가 이미 어딘가에 유출돼 있다고 가정하는 편이 현실에 가깝다. 대형 서비스의 개인정보 유출은 매년 반복되고, 한 번 새어 나간 아이디·비밀번호 조합은 자동화된 도구로 수백 개 사이트에 그대로 대입된다. 이걸 크리덴셜 스터핑(credential stuffing)이라 부른다. 그래서 계정 보안의 출발점은 ‘더 복잡한 비밀번호’가 아니라, 비밀번호가 뚫려도 계정은 지켜지는 구조를 만드는 일이다.
그 구조의 핵심은 두 가지다. 하나는 비밀번호 자체를 없애는 패스키(passkey), 다른 하나는 비밀번호가 뚫려도 한 겹 더 막는 2단계 인증(2FA)이다. 문제는 2단계 인증에도 등급이 있다는 점이다. 가장 흔한 문자(SMS) 인증번호는 2025년 미국 표준기관 NIST가 ‘제한’ 등급으로 낮췄을 만큼 약한 고리가 됐고, 그 약점을 정면으로 파고드는 공격이 유심(SIM)을 통째로 가로채는 심 스와핑이다.
방어는 세 겹으로 세우면 된다. 비밀번호를 패스키로 대체하고, 아직 패스키가 안 되는 계정엔 강한 2단계 인증을 걸고, 문자 인증의 급소인 유심을 통신사 서비스로 잠그는 순서다. 2025년 SKT 유심 정보 유출로 온 국민이 한 번 실감한 위협이라 더는 남 얘기가 아니다.
나는 정보보안 일을 하면서도 정작 내 개인 계정을 패스키로 옮긴 건 그리 오래되지 않았다. 갤럭시 지문 한 번으로 네이버와 구글에 로그인되는 걸 직접 겪고 나서야 손이 갔다. 두 아이 아빠라 내 계정 하나가 뚫리면 가족 사진첩부터 금융까지 줄줄이 엮인다는 걸 알기에, 미루던 걸 그제야 한 번에 정리했다.
비밀번호 하나로 버티는 시대는 끝났다
비밀번호는 ‘공유된 비밀’이다. 사용자도 알고 서버도 아는 문자열이라, 서버가 털리거나 사용자가 가짜 사이트에 입력하는 순간 그대로 넘어간다. 아무리 길고 복잡하게 만들어도 이 본질은 바뀌지 않는다. 20자짜리 난수 비밀번호도 피싱 사이트에 한 번 입력하면 8자짜리와 똑같이 탈취된다. 길이는 무차별 대입을 늦출 뿐, 유출과 피싱은 막지 못한다.
더 큰 문제는 재사용이다. 사람은 수십 개 계정의 비밀번호를 다 다르게 외우지 못하니 같은 걸 돌려 쓴다. 그러면 한 사이트에서 샌 비밀번호가 이메일·쇼핑·금융 계정의 열쇠가 된다. 공격자는 유출 목록을 사서 자동으로 대입하기만 하면 된다. 그래서 두 가지가 필요하다. 계정마다 다른 비밀번호(비밀번호 관리자의 몫)와, 비밀번호가 뚫려도 한 겹 더 막는 두 번째 인증 수단이다.
여기서 방향이 갈린다. 비밀번호 위에 인증을 한 겹 더 얹느냐, 아니면 비밀번호라는 개념 자체를 없애느냐. 앞의 것이 2단계 인증이고, 뒤의 것이 패스키다. 결론부터 말하면 지원되는 서비스는 패스키로 옮기고, 안 되는 곳은 강한 2단계 인증으로 받치는 게 2026년 기준 정답이다.
패스키는 비밀번호를 ‘훔칠 수 없는 것’으로 바꾼다
패스키는 비밀번호를 한 쌍의 암호 키로 대체한다. 서비스에 가입하면 기기가 공개키와 개인키 한 쌍을 만드는데, 공개키만 서버에 올라가고 개인키는 기기의 보안 칩 안에 남아 절대 밖으로 나오지 않는다. 로그인할 때 서버가 매번 다른 ‘문제(challenge)’를 보내면, 기기가 개인키로 서명해 돌려준다. 서버는 갖고 있던 공개키로 그 서명이 맞는지만 확인한다. 비밀 자체를 주고받지 않으니 중간에서 훔칠 게 없다.
핵심은 두 가지다. 첫째, 개인키가 기기를 떠나지 않으므로 서버가 털려도 로그인 수단은 새어 나가지 않는다. 서버에 남는 공개키는 그 자체로는 아무것도 못 여는 값이다. 둘째, 패스키는 등록된 사이트 주소(origin)에 묶여 있어 가짜 사이트에서는 아예 작동하지 않는다. 진짜 은행과 똑같이 생긴 피싱 페이지를 만들어도, 주소가 다르면 브라우저가 패스키를 꺼내주지 않는다. 비밀번호 시대의 가장 큰 구멍인 피싱이 구조적으로 막히는 것이다. FIDO2·WebAuthn이라 부르는 국제 표준이 이 방식을 정의한다.
사용 경험은 오히려 더 간단하다. 로그인할 때 비밀번호를 입력하는 대신 기기 잠금을 풀 때 쓰는 지문·얼굴·PIN으로 승인하면 끝이다. 한 번 등록한 패스키는 iOS·안드로이드의 플랫폼 클라우드(애플 iCloud 키체인, 구글 비밀번호 관리자 등)를 통해 내 다른 기기로 자동 동기화된다. FIDO 얼라이언스 집계로는 2026년 기준 전 세계에서 쓰이는 패스키가 약 50억 개에 이른다.
국내 적용도 이미 시작됐다. 네이버가 2025년 1월 PC와 모바일 웹에서 패스키 로그인을 공식 도입했고, 카카오도 카카오계정에 웹 기반 패스키를 적용했다. 구글·애플·마이크로소프트 계정은 물론이고, 갤럭시·아이폰의 지문·얼굴 인식이 그대로 패스키 승인 수단이 된다. 자주 쓰는 계정부터 설정 화면에서 ‘패스키 등록’을 찾아 걸어두면, 그 계정은 피싱과 비밀번호 유출 양쪽에서 한 번에 벗어난다.
패스키를 쓸 때 놓치기 쉬운 전제가 하나 있다. 패스키의 승인은 결국 기기 잠금을 푸는 행위이므로, 기기 자체에 지문·얼굴·PIN 잠금이 걸려 있어야 의미가 있다. 잠금 없는 폰에 패스키를 등록하면 폰을 집어 든 사람이 곧 계정 주인이 된다. 또 카페나 회사의 공용 PC처럼 본인 것이 아닌 기기에는 패스키를 남기지 않는다. 자기 폰의 패스키로 잠깐 다른 기기에서 로그인해야 할 때는, 그 기기에 패스키를 복사하는 대신 화면에 뜬 QR을 자기 폰으로 찍어 곁에서 한 번만 승인하는 방식(기기 간 인증)을 쓰면 개인키는 원래 폰에 그대로 남는다.
2단계 인증도 다 같은 2단계가 아니다
아직 패스키를 지원하지 않는 계정이 훨씬 많다. 그런 곳은 비밀번호에 2단계 인증을 얹어야 하는데, 여기서 흔히 오해가 생긴다. ‘2단계 인증을 켰으니 안전하다’가 아니라, 어떤 두 번째 수단을 쓰느냐가 안전을 가른다. 크게 세 등급이다.
문자(SMS) 인증번호가 가장 약하다. 미국 표준기관 NIST는 2025년 7월 발표한 디지털 신원 지침(SP 800-63B-4)에서 문자·음성 기반 일회용 비밀번호를 처음으로 ‘제한(restricted)’ 등급 인증수단으로 분류했다. 심 스와핑, 번호 이동(포팅), 통신망 가로채기에 취약하다는 이유다. 계속 쓰려면 위험을 별도로 완화하라는 조건이 붙었다. 없는 것보단 낫지만, 중요한 계정의 마지막 방어선으로 삼기엔 부족하다는 공식 신호다.
인증 앱(TOTP)이 그다음이다. 구글 OTP(Authenticator)나 Aegis 같은 앱이 30초마다 6자리 코드를 스스로 만들어낸다. 문자망을 아예 거치지 않으므로, 유심을 통째로 가로채는 심 스와핑으로 번호를 빼앗겨도 이 코드는 넘어가지 않는다. 문자 인증에서 반드시 벗어나야 하는 이유가 여기 있다. 다만 완벽하진 않다. 공격자가 진짜와 똑같은 피싱 사이트를 띄워두고 사용자가 입력한 코드를 실시간으로 진짜 사이트에 재입력하면 뚫린다. OTP 방식 자체는 피싱에 안전하지 않다는 게 CISA의 일관된 경고다.
패스키와 하드웨어 보안키가 가장 강하다. 앞서 본 대로 등록된 주소에서만 작동하니 실시간 피싱에도 뚫리지 않는다. YubiKey 같은 물리 보안키는 USB나 NFC로 꽂아 인증하는 방식으로, 사실상 ‘기기에 물린 패스키’다. 계정마다 이 셋 중 가장 높은 등급을 걸 수 있는지부터 확인하는 게 순서다.
| 방식 | 작동 원리 | 심 스와핑에 | 실시간 피싱에 | 권장도 |
|---|---|---|---|---|
| SMS 문자 인증번호 | 문자로 6자리 수신 | 뚫림 | 뚫림 | 최후 수단(NIST 제한 등급) |
| 인증 앱(TOTP) | 앱이 30초 코드 생성 | 안전 | 뚫릴 수 있음 | SMS보다 우선 |
| 패스키 / 하드웨어 보안키 | 기기 개인키로 서명(주소 고정) | 안전 | 안전 | 최우선 |
문자 인증의 급소 — 심 스와핑과 SKT 유심 유출
왜 문자 인증이 이렇게까지 낮은 평가를 받는지는 심 스와핑(유심 탈취)의 실제 경로를 보면 분명해진다. 공격은 대개 세 단계로 흐른다. 먼저 피싱·유출·SNS를 뒤져 피해자의 이름·생년월일·번호 같은 신상을 모은다. 그 정보로 통신사에 피해자인 척 전화하거나 대리점을 이용해 ‘유심을 새로 발급받거나 기기를 바꿨다’고 속인다. 번호가 공격자의 유심으로 넘어가는 순간, 피해자의 휴대폰은 신호가 끊기고 모든 문자와 전화가 공격자에게 간다. 여기엔 은행·거래소가 보내는 인증번호도 포함된다. 공격자는 이 번호로 비밀번호를 재설정하고 계좌에 접근한다.
규모도 작지 않다. 미국 FBI는 2024년 한 해 982건의 심 스와핑을 수사했고 피해액은 약 2,600만 달러에 달했다. 영국 국가사기데이터베이스 기준으로는 2024년 심 스와핑 사기가 전년 대비 1,000% 넘게 폭증했다. 그리고 2025년, 이 위협은 한국에서 전 국민의 문제로 옮겨붙었다.
국내에서 번호를 빼앗기는 건 특히 파괴적이다. 한국은 휴대폰 문자 본인인증이 금융 거래, 관공서 민원, 각종 서비스 가입의 사실상 만능 신원 확인 수단으로 쓰이기 때문이다. 번호가 공격자에게 넘어가면 문자 인증번호 몇 개를 가로채는 데 그치지 않고, 비대면 계좌 개설이나 대출, 명의 도용으로까지 연쇄로 번질 수 있다. 문자 하나에 계정 로그인과 신원 증명이 함께 얹혀 있는 구조라, 그 문자를 받는 유심을 지키는 일의 무게가 그만큼 크다.
SKT는 2025년 4월 18일 네트워크에서 비정상 트래픽을 탐지했고, 이후 가입자의 전화번호, 국제이동통신가입자식별번호(IMSI), 가입자 인증키(Ki) 같은 민감한 유심 정보가 외부로 유출된 것으로 드러났다. 이 값들은 유심을 복제하는 데 쓰일 수 있는 핵심 정보라, 방치하면 대규모 심 스와핑으로 이어질 수 있는 사안이었다. SKT는 4월 28일부터 전국 대리점에서 2,300만 전 고객을 대상으로 무료 유심 교체를 시작했고, 복제 유심의 타 단말 사용을 차단하는 유심보호서비스를 무료로 제공하며, 이상 인증을 실시간 감시하는 부정사용탐지시스템(FDS)을 최고 단계로 올렸다. 과학기술정보통신부도 KT·LG유플러스를 포함한 통신 3사 CISO와 매일 이상 징후를 점검했다.
유심보호서비스로 유심 탈취를 잠근다
이 사고를 계기로 널리 알려진 방어책이 통신 3사의 유심보호서비스다. 원리는 단순하면서 효과적이다. 내 유심 정보와 단말기 고유번호(IMEI)를 하나로 묶어 관리하기 때문에, 공격자가 유출된 정보로 복제 유심을 만드는 데 성공하더라도 그 유심을 다른 휴대폰(IMEI가 다른 기기)에 꽂는 순간 통신망 접속이 차단된다. 유심을 통째로 옮겨 문자를 가로채는 심 스와핑의 핵심 동작을 원천에서 막는 셈이다. 통신 3사 모두 무료로 제공한다.
가입은 각 사 앱이나 홈페이지에서 몇 번의 터치로 끝난다. SKT는 T월드 홈페이지·앱의 ‘유심 안심 기능 설정’에서 가입을 누르면 되고, KT는 ‘마이케이티’ 앱이나 고객센터, LG유플러스는 ‘당신의U+’ 앱에서 신청한다. 유심 교체 없이 지금 쓰는 유심에 안심 기능만 설정하는 방식이라 번거롭지 않다. 번호를 바꾸거나 유심을 교체(eSIM 전환 포함)해도 서비스는 그대로 유지된다.
한 가지 유의할 점이 있다. 이 서비스가 켜져 있으면 기기 변경 자체를 막아주는 것이므로, 새 휴대폰을 사서 유심을 옮길 때는 먼저 유심보호서비스를 해지하고 개통을 진행한 뒤 다시 켜야 정상적으로 쓸 수 있다. 정당한 기기 변경까지 막히는 게 불편처럼 보여도, 그 불편이 곧 방어력이다. 물리 유심 대신 eSIM으로 전환하는 것도 도움이 된다. 손으로 뽑아 옮길 유심 자체가 없으니 오프라인 탈취가 어려워진다.
계정을 잃는 곳은 대부분 ‘복구 경로’다
패스키를 걸고 인증 앱을 켜도, 정작 계정을 빼앗기는 자리는 따로 있다. 바로 ‘비밀번호를 잊으셨나요’ 뒤에 숨은 복구 경로다. 공격자는 정문이 잠기면 뒷문을 노린다. 대부분의 서비스가 계정 복구를 이메일과 전화번호로 처리하기 때문에, 이메일 계정과 휴대폰 번호가 사실상 모든 계정의 마스터키가 된다. 그래서 가장 먼저, 가장 강하게 지켜야 할 것이 주 이메일 계정이다. 이메일이 뚫리면 거기 묶인 모든 서비스의 비밀번호를 순서대로 재설정당할 수 있다. 이메일에 패스키나 하드웨어 보안키를 걸고, 휴대폰 번호는 앞서 본 유심보호서비스로 잠그는 게 복구 경로를 닫는 두 축이다.
복구 경로에서 특히 조심할 게 문자다. 정문에는 패스키를 걸어놓고 복구 수단으로는 여전히 문자 인증만 열어두면, 공격자는 정문을 두드리는 대신 ‘문자로 재설정’을 눌러 우회한다. 계정 설정에서 복구·2차 인증 수단 목록을 한 번 열어, 문자만 유일한 대안으로 남아 있지 않은지 확인하는 게 좋다. 백업 이메일이나 두 번째 보안키를 복구 수단으로 함께 등록해 두면, 문자 하나가 뚫려도 복구 경로 전체가 열리지는 않는다.
두 번째 함정은 백업 코드다. 2단계 인증을 켜면 서비스가 열 개 안팎의 일회용 백업(복구) 코드를 준다. 인증 앱이 든 폰을 잃었을 때 계정을 되찾는 마지막 열쇠다. 그런데 이 코드는 만료되지 않고, 하나만 있어도 2단계 인증을 통째로 우회한다. 다시 말해 이 코드가 새면 그 계정의 2단계 인증은 없는 것과 같다. 그런데 많은 사람이 이걸 이메일 본문이나 휴대폰 메모앱에 평문으로 저장한다. 이메일이 뚫리면 백업 코드까지 함께 넘어가는 최악의 조합이다.
백업 코드는 온라인과 분리해 보관해야 한다. 종이에 인쇄해 지워지지 않게 펜으로 적어 서랍이나 금고에 두거나, PIN이 걸린 USB에 넣거나, 비밀번호 관리자의 보안 메모 필드에 저장한다. 그리고 어떤 계정이든 인증 수단을 두 개 이상 등록해 두는 게 원칙이다. 기기 하나를 잃어도 다른 수단으로 들어갈 수 있어야 한다.
패스키의 복구도 방식이 나뉜다. 클라우드로 동기화되는 패스키(iCloud 키체인, 구글 비밀번호 관리자 등)는 종단간 암호화된 채 클라우드에 백업돼 있어, 기기를 잃어도 새 기기에서 계정에 로그인하고 본인 확인을 거치면 그대로 복원된다. 반면 YubiKey 같은 하드웨어 보안키는 동기화되지 않는다. 설계상 복제가 불가능해 안전한 대신, 그 키를 잃으면 되찾을 방법이 없다. 그래서 중요한 계정에는 보안키를 두 개 등록해 하나는 집 금고 같은 곳에 따로 보관하는 게 표준 관행이다.
비밀번호 관리자가 나머지를 메운다
패스키가 아무리 좋아도 당분간은 비밀번호를 완전히 없앨 수 없다. 지원하지 않는 서비스가 여전히 많기 때문이다. 그 빈자리를 메우는 게 비밀번호 관리자다. 계정마다 길고 무작위인 비밀번호를 자동으로 만들어 기억해 주므로, 앞서 지적한 재사용 문제가 근본적으로 사라진다. 한 사이트가 털려도 다른 계정으로 번지지 않는다. 크리덴셜 스터핑을 끊는 가장 확실한 한 수다.
요즘 비밀번호 관리자는 비밀번호뿐 아니라 패스키와 인증 앱의 코드, 백업 코드까지 한곳에 담아준다. 다만 그렇게 하면 관리자 자체가 단일 급소가 되므로, 마스터 비밀번호는 어디에도 재사용하지 않은 긴 값으로 만들고 관리자 계정에 반드시 강한 2단계 인증을 걸어야 한다. 본인 계정이 이미 유출된 목록에 올라 있는지는 ‘Have I Been Pwned’ 같은 서비스에 이메일을 넣어 확인할 수 있다. 걸리는 게 있으면 그 계정부터 비밀번호를 바꾸고 2단계 인증을 켜면 된다.
오늘 저녁에 할 일 — 내가 적용한 순서와 우선순위
나는 SKT 유심 사고를 계기로 미뤄둔 계정 정리를 하루 저녁에 몰아서 했다. 순서가 중요해서 그대로 옮겨 적는다. 가장 먼저 주 이메일(구글) 계정에 갤럭시 지문으로 패스키를 걸고, 예비로 인증 앱까지 등록했다. 이메일이 모든 복구의 열쇠라 여기부터 손댔다. 그다음 통신사 유심보호서비스에 가입해 번호 자체를 잠갔다. 은행·거래소처럼 패스키가 안 되는 계정은 문자 인증을 전부 인증 앱으로 바꿨고, 각 계정의 백업 코드를 출력해 집에 있는 문서 보관함에 넣었다. 마지막으로 재사용하던 비밀번호들을 관리자로 옮겨 계정마다 다른 값으로 갈아 끼웠다. 스마트홈 허브를 직접 돌리다 보니 계정 하나가 집 안 기기 전체의 통제권과 연결된다는 걸 체감한 터라, 이 정도는 해둬야 마음이 놓였다.
거창한 장비도, 긴 시간도 필요 없다. 아래 우선순위대로 위에서부터 하나씩 처리하면 대부분 저녁 한 번에 끝난다. 완벽을 노리기보다, 가장 중요한 계정 서너 개(이메일·금융·본인인증에 쓰는 통신)부터 등급을 올리는 게 실속 있다.
| 순위 | 조치 | 막아주는 위협 |
|---|---|---|
| 1 | 주 이메일에 패스키(또는 하드웨어 보안키) 등록 | 복구 경로 탈취, 연쇄 비밀번호 재설정 |
| 2 | 통신사 유심보호서비스 가입(eSIM 전환 병행) | 심 스와핑, 문자 인증번호 가로채기 |
| 3 | SMS 인증을 인증 앱(TOTP)으로 교체 | 번호 탈취 시 코드 유출 |
| 4 | 네이버·카카오·구글 등 패스키 지원 계정 전환 | 피싱, 서버 유출발 비밀번호 탈취 |
| 5 | 백업 코드 인쇄·금고 보관 + 인증 수단 2개 이상 | 기기 분실 시 잠김, 백업 코드 유출 |
| 6 | 비밀번호 관리자로 계정별 고유 비밀번호 | 재사용발 크리덴셜 스터핑 |
정리하면, 계정 보안은 ‘뚫리지 않는 비밀번호’를 만드는 싸움이 아니라 ‘뚫려도 계정은 지켜지는 구조’를 세우는 일이다. 지원되는 곳은 패스키로 비밀번호를 지우고, 남은 곳은 문자 대신 인증 앱으로 받치고, 문자 인증의 급소인 유심은 통신사 서비스로 잠근다. 이 세 겹을 세워두면, 다음에 또 어느 서비스에서 개인정보가 새더라도 그 유출이 곧바로 계정 탈취로 이어지지는 않는다.
![ApoorvCTF 2025 - [AI] Pokédex Neural Network Write Up 3 ApoorvCTF 2025 – [AI] Pokédex Neural Network Write Up](https://redchupa.com/wp-content/uploads/2026/04/20250304_1638_32.png)
