전 세계적으로 50억 개 이상의 패스키(Passkey)가 현재 활발히 사용되고 있다. 소비자의 90%가 패스키가 무엇인지 알고 있으며, 기업의 68%가 패스키를 배포했거나 파일럿 테스트 중이다. 구글은 8만 5천 명의 직원이 하드웨어 보안 키로 전환한 이후 피싱으로 인한 계정 탈취가 단 한 건도 발생하지 않았다고 발표했다.

수치 자체는 진짜다. 기술도 제대로 작동한다. 하지만 이 기술을 둘러싼 보안 벤더들의 마케팅 피치는 점차 무책임해지고 있다.

패스키가 실제로 무엇을 하는지, 기존의 모든 대안을 진정으로 압도하는 지점은 어디인지, 그리고 왜 ’피싱 불가능(phishing-proof)’이라는 주장이 허구인지 냉정하게 짚어보려 한다.

패스키의 실체

마케팅 수사를 걷어내고 보면, 패스키는 기본적으로 FIDO2/WebAuthn 자격 증명이다. 두 가지 표준에 기반한다. 브라우저 API인 WebAuthn과 브라우저가 인증 장치와 통신하는 방식인 CTAP2다. 기반 암호화 기술은 비대칭 암호화(일반적으로 P-256 곡선의 ECDSA 또는 Ed25519)다.

웹사이트에 패스키를 등록하면 사용자의 기기에서 공개키/개인키 쌍이 생성된다. 개인키는 기기의 보안 영역(Secure Enclave, TPM, 또는 하드웨어 보안 키)에 안전하게 보관된다. 서버는 오직 공개키만을 받는다. 로그인할 때 서버는 무작위 챌린지(random challenge)를 보내고, 사용자가 로컬에서 생체 인증(지문, 얼굴)이나 PIN으로 본인을 확인하면 기기가 개인키로 챌린지에 서명한다. 서버는 저장된 공개키로 이 서명을 검증한다.

네트워크를 통해 공유 비밀(shared secret)이 오가지 않는다. 데이터베이스에 유출 위험을 안고 저장되는 비밀번호도 없다. 서버가 저장하는 공개키는 수학적으로 타인을 사칭하는 데 완전히 무용지물이다.

이 메커니즘 자체는 진정으로 우아하다. 문제는 이 우아한 핵심을 둘러싼 모든 주변부에서 시작된다.

패스키가 실제로 승리하는 지점

단 하나의 가장 큰 보안상의 이점은 바로 **오리진 바인딩(Origin Binding)**이다. 인증 장치가 챌린지에 서명할 때, 서명은 패스키가 등록된 정확한 도메인(Relying Party ID)과 암호학적으로 결합된다. 만약 paypal.com 대신 paypal-secure-login.com 같은 가짜 피싱 사이트에 접속했다면, 사용자의 기기는 서명 생성을 거부한다. 사용자가 가짜 URL을 눈치챘기 때문이 아니다. 개인키가 사용되기도 전에 브라우저와 하드웨어가 도메인 불일치를 감지하고 차단하기 때문이다.

이 메커니즘은 오늘날 현실에서 가장 위협적인 공격인 중간자 공격(Adversary-in-the-Middle, AiTM) 피싱을 완벽하게 무력화한다. Evilginx 같은 공격 도구는 피해자와 실제 사이트 사이에 끼어들어 비밀번호와 TOTP(일회용 번호)를 실시간으로 중계함으로써 유효한 세션 쿠키를 가로챈다. 하지만 패스키 환경에서는 중계할 수 있는 것이 아무것도 없다. paypal.com을 위해 생성된 서명은 다른 도메인의 프록시로 전달되는 순간 아무런 가치가 없기 때문이다.

이는 이론에 불과한 이야기가 아니다. 2025년 4월 이후 대학교들을 강타한 Evilginx 캠페인은 최소 18개 교육 기관, 67개 도메인을 침해하며 수백 개의 기업 메일함을 탈취했다. 최신 상용 툴킷인 Starkiller는 도커 컨테이너에서 헤드리스 크롬을 실행해 전체 인증 흐름을 프록시한다. 이 공격들은 SMS, TOTP 앱, 푸시 승인, 심지어 번호 일치형 MFA까지 모두 무너뜨렸다. 그러나 올바르게 구현된 패스키 앞에서는 아무것도 건드리지 못했다.

패스키의 다른 장점들도 분명 실질적이다.

  • 크리덴셜 스터핑(Credential Stuffing) 원천 차단: 모든 패스키는 사이트별로 고유하다. 비밀번호 재사용이 구조적으로 불가능하다.
  • 서버 측 비밀 탈취 방지: DB가 털려도 공격자가 얻는 것은 공개키뿐이다. 쓸모가 없다.
  • SIM 스와핑 무력화: 통신사가 인증 체계에 관여하지 않는다.
  • 화면 엿보기나 클립보드 탈취 무력화: 훔쳐볼 일회용 코드가 없다.
  • 태생적인 다중 요소 인증(MFA): 기기(소유)와 생체/PIN(존재/지식)이 단 하나의 원자적(atomic) 연산으로 결합된다. 공격자가 끼어들 시간적 틈이 없다.

피싱, 크리덴셜 스터핑, 비밀번호 재사용, 서버 DB 유출처럼 계정을 대규모로 탈취하는 주된 공격들에 대해 패스키는 비밀번호와 2차 인증을 조합한 그 어떤 방식보다 범주적으로 우월하다. 이 점에 관한 한 벤더들의 주장은 정확하다.

마케팅 피치가 무너지는 지점

1. 계정 복구가 새로운 ’앞문’이 된다

만약 패스키로 보호되는 계정에 “패스키를 분실하셨나요? 이메일로 재설정하기” 같은 흐름이 남아 있다면, 공격자는 패스키를 깰 필요가 없다. 이메일만 털면 된다. FIDO 얼라이언스 자체의 배포 가이드라인도 이를 인정하고 있다. 문서화된 패스키 피싱 취약점 사례 4건은 모두 패스키 자체의 결함이 아니라, 취약한 계정 복구나 대체(fallback) 메커니즘 때문에 발생했다.

인증의 강도는 계정 권한을 획득하는 가장 약한 경로의 수준을 넘지 못한다. 만약 그 경로가 이메일과 SMS OTP라면, 당신이 도입한 패스키는 눈속임에 불과하다.

2. 다운그레이드 공격 (Downgrade Attack)

Proofpoint는 마이크로소프트 Entra ID를 겨냥한 깔끔한 공격을 보고했다. 피싱 프록시가 윈도우 환경의 사파리처럼 패스키를 지원하지 않는 브라우저인 것처럼 위장하면, Entra ID는 패스키 지원을 비활성화하고 사용자를 SMS나 OTP 인증으로 유도한다. 프록시는 이 취약한 자격 증명과 세션 쿠키를 손쉽게 가로챈다. WebAuthn 절차 자체가 아예 시작조차 되지 않기 때문에 패스키의 오리진 바인딩은 작동할 기회조차 얻지 못한다.

대부분의 기업이 패스키를 기존 비밀번호 방식과 병행하여 선택 사항으로 제공하고 있기 때문에 이 공격이 먹힌다. 더 취약한 방식이 남아 있다면, 공격자는 반드시 사용자를 그쪽으로 몰아갈 방법을 찾아낸다. FIDO 얼라이언스는 이를 ‘가장 약한 고리(weakest link)’ 문제라고 부르며 단호한 해결책을 제시한다. 피싱 가능한 모든 대체 인증 수단을 제거하고, 강력한 경로만을 유일한 경로로 남겨두라는 것이다.

하지만 대부분의 조직은 이렇게 하지 못했다. 여전히 패스키를 지원하지 않는 기기를 쓰는 사용자들이 많기 때문이다.

3. 동기화된 패스키는 신뢰 범위를 넓힌다

일반 소비자를 겨냥한 패스키 홍보는 “개인키가 보안 하드웨어(Secure Enclave)에 안전하게 보관된다”고 말한다. 이는 기기 바인딩(device-bound) 자격 증명일 때만 사실이다. iCloud 키체인, 구글 비밀번호 관리자, 1Password 등에서 제공하는 **동기화된 패스키(Synced Passkey)**의 경우, 개인키는 암호화되어 클라우드 계정을 통해 사용자의 여러 기기로 동기화된다.

이제 패스키의 보안은 사용자의 Apple ID나 구글 계정 보안에 의존하게 된다. 해당 클라우드 계정이 털리면 공격자는 동기화된 모든 패스키에 접근할 수 있게 된다. 이는 YubiKey 같은 전용 보안 키와는 전혀 다른 신뢰 모델이다. 반드시 나쁘다는 뜻은 아니지만, “키가 기기를 절대 떠나지 않는다”는 말과는 전혀 다른 차원의 이야기다.

팔로알토 네트웍스의 Unit42 연구팀은 2025년 구글의 동기화된 패스키 생태계를 겨냥한 세 가지 공격 유형을 발표했다. ‘Golden Pass-ta-key’ 공격은 재등록 흐름을 강제하고, 위조된 사용자 확인 키를 주입하여, 크롬의 프로세스 메모리에서 마스터 복호화 키를 덤프함으로써 동기화된 모든 패스키의 개인키를 추출해 냈다. 동기화된 모든 패스키를 보호하는 SDS(Security Domain Secret)가 등록 과정 중 크롬의 device-log 페이지에 기록되는 취약점도 발견되었다. 구글은 로깅 문제를 패치했지만, 키 자체는 여전히 클라이언트로 전송되며 메모리에 노출되어 있다.

이것은 패스키 자체의 결함이라기보다는 ’동기화 자격 증명 구현체’의 문제다. 하지만 누군가 “패스키는 해킹이 불가능하다”고 말할 때, 이들은 이런 현실을 쏙 빼놓고 이야기한다.

4. 브라우저 확장 프로그램의 인증 가로채기

SquareX는 DEF CON에서 악성 브라우저 확장 프로그램이 WebAuthn API 호출(navigator.credentials.create(), navigator.credentials.get())을 가로채 패스키 등록 및 인증 흐름 전체를 조작할 수 있음을 시연했다. 크롬은 정확히 이러한 동작을 지원하는 webAuthenticationProxy라는 확장 프로그램 API를 문서화해 두고 있다. 원격 데스크톱 같은 유스케이스를 위해 존재하는 API지만, 이는 적절한 권한을 가진 확장 프로그램이 WebAuthn의 처리 경로 한가운데에 앉아 있을 수 있음을 의미한다.

이 공격은 암호학을 깨뜨리지 않는다. 브라우저 내부 프로세스에 침투할 뿐이다. 패스키는 지시받은 내용에 정확히 서명하지만, 그 맥락이 이미 위조되었다는 사실을 알지 못한다.

5. 모든 것을 우회하는 디바이스 코드 흐름 (Device-Code Flow)

가장 흥미로우면서도 가장 덜 논의되는 공격이다. 2026년 Lexfo는 마이크로소프트 365를 겨냥한 세 가지 활성 피싱 캠페인을 발견했다. 두 건은 Evilginx를 사용했기에 패스키로 차단되었다. 하지만 세 번째는 OAuth 디바이스 코드(device-code) 흐름 남용을 사용했다. 피해자는 진짜 마이크로소프트의 microsoft.com/devicelogin 페이지로 유도되어 코드를 입력하고, 진짜 MFA를 완료한 뒤, 공격자의 세션을 정상 승인해 버린다. 접속한 도메인은 진짜 마이크로소프트였고, 오리진 바인딩은 완벽하게 작동했다. 하지만 사용자가 진짜 사이트에서 공격자 세션을 인증해 주었기 때문에 아무 소용이 없었다.

FIDO2 키와 패스키도 이런 공격 앞에서는 무력하다. 이를 막는 유일한 방어책은 디바이스 코드 로그인이 필요하지 않은 사용자에게 조건부 액세스(Conditional Access) 정책으로 해당 흐름을 완전히 차단하는 것뿐이다.

냉정한 비교

공격 유형 SMS OTP TOTP 앱 푸시 승인 동기화된 패스키 기기 바인딩 패스키
AiTM 피싱 (Evilginx 방식) 실패(탈취) 실패(탈취) 실패(탈취) 차단 성공 차단 성공
SIM 스와핑 치명적 무관 무관 무관 무관
서버 DB 유출 해시 해독 위험 시드(Seed) 유출 위험 토큰 유출 위험 공개키만 노출(안전) 공개키만 노출(안전)
크리덴셜 스터핑 재사용 시 뚫림 2FA로 차단 차단 구조적 불가능 구조적 불가능
계정 복구 흐름 우회 취약 취약 취약 사이트 구현에 따름 사이트 구현에 따름
취약한 방식으로 다운그레이드 무관 무관 무관 대체수단 있으면 취약 대체수단 있으면 취약
클라우드 동기화 계정 탈취 무관 무관 무관 취약 무관(안전)
브라우저 확장 프로그램 가로채기 무관 무관 무관 취약 취약
디바이스 코드 흐름 남용 실패(뚫림) 실패(뚫림) 실패(뚫림) 실패(뚫림) 실패(뚫림)

패턴은 명확하다. 패스키는 오늘날 가장 흔하고 대규모로 일어나는 공격들을 완벽히 차단한다. 하지만 모든 공격을 막아주는 것은 아니며, 동기화된 패스키는 기기 바인딩 자격 증명에는 없던 새로운 유형의 리스크를 불러온다.

규제 환경에 주는 시사점

GxP, 21 CFR Part 11 등의 규제 프레임워크 아래에서 일하는 조직에게 패스키는 비밀번호+TOTP 방식보다 실질적인 개선을 제공한다. ‘두 가지 구별되는 식별 요소(소유 + 지식/생체)’ 요구사항을 깔끔하게 만족하며, 공유 비밀번호보다 훨씬 강력한 부인 방지(non-repudiation)를 제공하고, 서버 유출 시 치명적인 결과를 낳는 공유 비밀 저장 문제를 제거한다.

하지만 컴플라이언스보다 까다로운 것은 **밸리데이션(Validation)**이다. 이제 다음과 같은 항목들을 검증해야 하기 때문이다.

  • 인증 장치의 동작 (오리진에 정확히 바인딩되는가? 사용자 확인을 강제하는가?)
  • 동기화 패브릭의 보안 모델 (동기화 패스키를 사용하는 경우)
  • 계정 복구 흐름의 우회 저항성
  • 대체 인증 수단 정책 (취약한 인증 방식이 완전히 비활성화되었는가?)
  • 증명 체인(Attestation Chain) 검증 (어떤 하드웨어 기기가 자격 증명을 생성했는지 증명할 수 있는가?)

엔터프라이즈 환경에서 FIDO 얼라이언스와 Yubico는 권한이 높은 계정에 대해 등록 시 기기 증명(attestation) 검증을 거치는 ’기기 바인딩 자격 증명’을 사용할 것을 권장한다. 일반적인 사내 SSO에는 동기화된 패스키로도 충분하다. 이러한 계층화 모델은 합리적이지만, 이는 관리해야 할 자격 증명 유형이 하나가 아니라 두 개가 된다는 뜻이기도 하다.

결론

패스키는 오늘날 현실에서 실제로 벌어지는 주요 공격들을 막아내는 데 있어 현존하는 가장 뛰어난 인증 기술이다. 중간자 피싱, 크리덴셜 스터핑, 비밀번호 재사용, 서버 DB 침해에 맞서 패스키에 견줄 수 있는 대안은 없다. 8만 5천 명의 구글 직원이 피싱 제로를 유지하고 있다는 사실이 그 강력한 증거다.

하지만 ’피싱 불가능’이라는 수식어는 마케팅 용어일 뿐, 보안의 절대적 속성이 아니다. 공격 표면이 이동했을 뿐이다. 공격자들의 목표는 “공유된 비밀번호 훔치기”에서 “계정 복구 흐름 우회하기, 다운그레이드 강제하기, 동기화 계정 털기, 브라우저 확장 프로그램 가로채기, 혹은 완전히 다른 인증 흐름 악용하기”로 진화했다. 이러한 공격들은 단순히 TOTP 번호를 피싱하는 것보다 훨씬 어렵고 대규모 실행이 까다롭기 때문에 패스키가 진정한 발전인 것은 분명하다. 하지만 위험이 0이 된 것은 결코 아니다.

패스키를 도입하려 한다면 명심해야 한다. 패스키를 유일한 경로로 만들고, 복구 절차를 철저히 잠그고, 특권 계정에는 기기 바인딩 자격 증명을 요구하며, 취약한 대체 인증 수단들을 걷어내야 한다. 암호학적 핵심은 견고하다. 위험이 도사리고 있는 곳은 언제나 그 주변의 모든 연결 고리들이다.