WebAuthn이란 무엇인가?
비밀번호는 실패합니다. 피싱에 당하고, 크리덴셜 스터핑과 패스워드 스프레이 공격에 악용되며, 유출됩니다. Verizon의 2026 Data Breach Investigations Report (DBIR)에 따르면 전체 침해 사고의 39%에서 자격 증명 악용이 확인되었으며, 이는 해당 데이터셋에서 가장 광범위하게 나타난 단일 기법입니다. 그렇기 때문에 방어자는 로그인 경로에서 비밀번호를 제거하는 통제를 우선시합니다. WebAuthn은 바로 이를 위해 만들어진 World Wide Web Consortium (W3C) 표준입니다.
Web Authentication의 약자인 WebAuthn은 사용자를 웹 애플리케이션에 인증하기 위해 강력한 공개 키 기반 자격 증명을 생성하고 사용하는 브라우저 API를 정의하는 W3C 웹 표준입니다. 비밀번호와 같은 공유 비밀을 교환하는 대신, WebAuthn은 비대칭 암호화를 사용합니다. 즉, 사용자의 인증기가 사이트별로 고유한 키 쌍을 생성하고, 개인 키는 보안 하드웨어 내부에 잠긴 상태로 유지하며, 공개 키만 서버와 공유합니다.
W3C 사양은 이를 공식적으로 "사용자를 강력하게 인증하기 위한 목적으로 웹 애플리케이션이 강력하고, 증명 가능하며, 범위가 지정된 공개 키 기반 자격 증명을 생성하고 사용할 수 있게 하는 API"로 정의합니다. 실질적으로 이는 지문 스캔, 얼굴 잠금 해제 또는 물리적 보안 키를 사용해 웹 애플리케이션에 로그인할 수 있으며, 서버는 공격자가 재사용할 수 있는 어떤 정보도 받지 않는다는 의미입니다.
WebAuthn은 Fast Identity Online (FIDO) Alliance와 협력하여 개발된 FIDO2 프로젝트의 핵심 구성 요소입니다. FIDO2는 WebAuthn(브라우저 API 계층)과 CTAP (Client to Authenticator Protocol)을 결합하며, CTAP는 USB, 근거리 무선 통신(NFC) 또는 Bluetooth Low Energy (BLE)를 통해 인증기 장치와 브라우저 간 통신을 처리합니다. 이 둘은 함께 웹에서 비밀번호 없는 피싱 저항형 인증의 기반을 형성합니다.
두 가지 사건은 비밀번호 모델이 대규모 환경에서 어떤 비용을 초래하는지 보여줍니다. 2021년 공격자는 회사 CEO가 미국 상원에 밝힌 바와 같이, 사용될 의도가 없었던 레거시 가상 사설망(VPN) 프로필을 통해 Colonial Pipeline에 접근했습니다. Colonial은 공격을 억제하기 위해 파이프라인을 중단했고, CISA 권고문에 다뤄진 랜섬웨어 운영인 DarkSide 계열 조직에 440만 달러의 몸값을 지불했습니다. 이후 Department of Justice는 그중 230만 달러를 압수했습니다. 2023년 MGM Resorts는 2023년 10월 8-K에 따르면, 신원 워크플로우를 겨냥한 소셜 엔지니어링으로 시작된 사이버 사고로 인해 약 1억 달러의 재무적 손실 영향을 보고했습니다. 두 사건 모두 재사용 가능한 비밀에 의해 발생했습니다. WebAuthn은 이를 로그인 경로에서 제거합니다.
WebAuthn과 기존 인증의 비교
기존 인증은 공유 비밀에 의존합니다. 비밀번호, 일회용 코드, 푸시 승인 모두 공격자가 가로채거나, 재생하거나, 실시간으로 피싱할 수 있는 데이터를 전송합니다. WebAuthn은 공유 비밀을 공개 키 암호화로 대체하여 이 모델을 바꿉니다. 이 방식에서는 개인 키가 인증기 하드웨어를 절대 벗어나지 않으며, 재사용 가능한 어떤 정보도 네트워크를 통과하지 않습니다.
차이점은 기존 방식이 무너지는 지점에서 가장 중요합니다.
- 피싱 저항성. 비밀번호 기반 및 OTP 기반 인증은 실시간 피싱 프록시에 의해 탈취될 수 있습니다. WebAuthn 자격 증명은 출처 도메인에 암호학적으로 바인딩되므로, login.example.com에 등록된 자격 증명은 login-example.com이나 기타 유사 도메인에서는 인증되지 않습니다. 브라우저가 이를 사용자 판단과 무관하게 프로토콜 수준에서 강제합니다.
- 서버 측 노출. 기존 시스템은 데이터베이스 침해 시 고가치 표적이 되는 비밀번호 해시 또는 공유 비밀을 저장합니다. WebAuthn은 공개 키만 저장합니다. 서버가 완전히 침해되더라도 공격자가 사용자를 가장하는 데 사용할 수 있는 것은 아무것도 얻지 못합니다.
- 자격 증명 재사용. 사용자는 여러 서비스에서 비밀번호를 재사용하며, 이는 크리덴셜 스터핑을 대규모로 효과적으로 만듭니다. WebAuthn은 relying party별로 고유한 키 쌍을 생성하므로, 한 서비스에서 손상된 자격 증명은 다른 서비스에서는 가치가 전혀 없습니다.
- 사용자 마찰과 보안의 상충 관계. 더 긴 비밀번호와 잦은 변경은 문서상 보안을 향상시키지만 사용성을 저하시킵니다. WebAuthn은 이 상충 관계를 제거합니다. 지문 스캔이나 얼굴 잠금 해제는 어떤 비밀번호 정책보다 더 강한 인증 보증을 제공하면서도 사용자 마찰은 더 적습니다.
결과적으로 WebAuthn은 자격 증명 기반 침해의 대부분을 차지하는 세 가지 벡터, 즉 피싱, 서버 측 탈취, 사이트 간 재사용을 제거합니다. 이러한 차이를 이해하는 것은 프로토콜 구성 요소가 이러한 속성을 어떻게 강제하는지 이해하는 기반이 됩니다.
WebAuthn의 핵심 구성 요소
WebAuthn은 W3C 사양에서 정의한 3자 아키텍처로 동작합니다.
인증기: 키 쌍을 생성하고 인증 assertion에 서명하는 암호학적 엔터티입니다. 인증기는 두 가지 범주로 나뉩니다.
- 플랫폼 인증기는 장치 운영 체제에 내장되어 있습니다. Windows Hello, Touch ID, Face ID가 이에 해당합니다. 거의 마찰 없이 등록할 수 있지만, 장치를 분실하면 함께 사라집니다.
- 로밍(크로스 플랫폼) 인증기는 YubiKeys 및 FIDO 보안 키와 같은 휴대용 하드웨어 장치입니다. 여러 장치에서 작동하지만 물리적 배포와 자산 관리가 필요합니다.
어떤 유형을 선택하든 보안 모델은 동일합니다. 인증기는 relying party별로 고유한 키 쌍을 생성하며, 개인 키는 인증기의 보안 경계를 절대 벗어나지 않습니다.
Relying Party (RP): 클라이언트 측 JavaScript가 WebAuthn API를 호출하고, 서버 측 구성 요소가 자격 증명 저장 및 검증을 처리하는 웹 애플리케이션입니다. RP는 공개 키만 저장합니다. 일반적으로 도메인 이름인 RP ID는 출처 바인딩을 위한 암호학적 앵커 역할을 합니다.
사용자 에이전트(브라우저): 브라우저는 인증기와 relying party 간의 모든 상호작용을 중재합니다. 출처 정책을 강제하고, 도메인 간 자격 증명 오용을 방지하며, 사용자 프라이버시를 보호합니다. 한 출처에 등록된 자격 증명은 다른 출처에서 사용할 수 없으며, 이것이 프로토콜 수준에서 피싱을 막는 방식입니다.
WebAuthn은 또한 등록 중 인증기가 자신의 진위를 암호학적으로 증명할 수 있게 하는 attestation 프레임워크를 정의합니다. 그러면 기업은 자격 증명이 알 수 없거나 소비자급 장치가 아니라 신뢰할 수 있고 IT가 승인한 인증기 모델에서 왔는지 검증할 수 있습니다. FIDO Metadata Service는 인증기 모델에 대한 실시간 폐기 및 권고 메커니즘을 제공합니다.
행위자와 신뢰 경계를 이해하면 두 가지 ceremony를 매핑하고 정확히 어디에서 검증이 실패할 수 있는지 확인할 수 있습니다.
WebAuthn의 작동 방식
WebAuthn은 등록(자격 증명 생성)과 인증(assertion 검증)이라는 두 가지 암호학적 ceremony를 정의합니다. 둘 다 챌린지-응답 프로토콜을 따릅니다.
- 등록(자격 증명 생성): 서버는 암호학적으로 무작위인 챌린지를 생성하고 relying party 정보, 사용자 계정 세부 정보, 허용 가능한 암호 알고리즘과 함께 클라이언트에 전송합니다. 클라이언트는
navigator.credentials.create()를 호출합니다. 인증기는 명시적인 사용자 동의를 요청하고, 새로운 비대칭 키 쌍을 생성한 뒤, 공개 키, 서명된 챌린지, 자격 증명 ID, 그리고 (선택적으로) attestation 인증서 체인을 포함하는 attestation 객체를 반환합니다. 서버는 attestation을 검증하고, 서명을 검증하며, 공개 키가 요청된 알고리즘과 일치하는지 확인한 후, 자격 증명 공개 키, 자격 증명 ID, 서명 카운터를 저장합니다. 중요한 가드레일: 동일한 매개변수라도navigator.credentials.create()는 호출할 때마다 새로운 자격 증명을 생성합니다. 중복 등록을 방지하려면 excludeCredentials parameter를 사용해야 합니다. - 인증(assertion 검증): 서버는 새로운 챌린지를 생성하고 허용된 자격 증명 ID 목록과 함께 클라이언트에 전송합니다. 클라이언트는
navigator.credentials.get()을 호출합니다. 인증기는 사용자 존재 또는 사용자 신원을(정책에 따라) 검증한 다음 저장된 개인 키로 챌린지에 서명합니다. 서버는 저장된 공개 키를 조회하고, assertion 서명을 검증하며, 챌린지 일치 여부를 검증하고, 사용자 존재/검증 플래그를 확인하며, 출처와 RP ID 일치 여부를 확인하고, 서명 카운터가 증가했는지 검증합니다.
서명 카운터 검증은 복제된 인증기에 대한 방어 수단입니다. 카운터가 예상대로 증가하지 않으면 자격 증명 복제의 증거가 됩니다.
AAL2 준수를 위해서는 User Presence (UP)만이 아니라 User Verification (UV)을 강제해야 합니다. syncable authenticators guidance에 따르면 검증자는 UV가 선호됨을 표시하고, 응답을 검사하여 UV 플래그가 설정되었는지 확인해야 합니다.
조직이 WebAuthn을 배포하는 방식
WebAuthn이 실제 운영 환경에서 어디에 적용되는지 보면, 대부분의 평가자가 실제로 묻는 질문, 즉 이것이 대규모에서 검증되었는가에 대한 답을 얻을 수 있습니다.
- Google Accounts가 가장 명확한 벤치마크입니다. Google은 2023년 5월 패스키 배포를 시작했고 2023년 10월 개인 계정의 기본값으로 설정했습니다. 출시 후 1년 이내에 패스키는 4억 개가 넘는 계정에서 10억 회 이상 사용되었고, Google은 이미 일일 기준으로 패스키가 SMS OTP와 인증기 앱을 합친 것보다 더 자주 인증에 사용된다고 보고했습니다.
- GitHub는 WebAuthn을 언급하며 2023년에 모든 기여자에게 2FA를 의무화했을 때 사용 가능한 가장 강력한 2FA 옵션이라고 밝혔고, 물리적 보안 키와 Windows Hello 및 Face ID 같은 플랫폼 인증기를 피싱에 가장 덜 취약한 방식이라고 설명했습니다.
- 상용 플랫폼도 뒤따랐습니다: Amazon, PayPal, Shopify, DocuSign, 그리고 평균 가입 및 로그인 시간을 50% 단축한 Kayak 모두 WebAuthn 기반 로그인을 출시했습니다. 이러한 배포는 WebAuthn이 소비자 규모에서 성능을 발휘하고, 복구 워크플로우를 처리하며, 표준 ID 공급자 아키텍처와 통합된다는 점을 확인해 줍니다.
ceremony와 실제 배포 사례를 이해했다면, 다음 결정은 어떤 유형의 인증기가 환경에 적합한지입니다.
WebAuthn 인증기의 유형
인증기 선택은 WebAuthn 배포의 보안 보증 수준, 사용자 경험, 운영 오버헤드를 결정합니다. 각 유형은 엔터프라이즈 계획에서 중요한 서로 다른 트레이드오프를 가집니다.
- 플랫폼 인증기는 장치의 운영 체제와 하드웨어에 내장되어 있습니다. Windows Hello는 Trusted Platform Module (TPM) 기반 PIN, 얼굴 인식 또는 지문을 사용합니다. Apple 장치는 Secure Enclave로 보호되는 Touch ID 또는 Face ID를 사용합니다. Android 장치는 Google Play Services를 통해 지문 또는 얼굴 잠금 해제를 사용합니다. 플랫폼 인증기 1carry the lowest enrollment friction because users already have the hardware, and biometric verification satisfies user verification (UV) requirements for AAL2 compliance without extra steps. 제한 사항은 자격 증명이 장치에 묶인다는 점입니다. 사용자가 노트북이나 휴대폰을 분실하면 synced passkeys를 사용하지 않는 한 해당 자격 증명도 사라집니다.
- 로밍(크로스 플랫폼) 인증기는 YubiKeys, Feitian BioPass 키 또는 기타 FIDO2 보안 키와 같은 휴대용 하드웨어 토큰으로, USB, NFC 또는 BLE를 통해 연결됩니다. 여러 장치와 운영 체제에서 작동하므로 권한 있는 액세스, 공유 워크스테이션 환경, 고보증 사용 사례의 표준 선택지입니다. 트레이드오프는 배포 물류입니다. 물리적 장치를 조달, 배송, 자산 관리 및 운영해야 하며, 사용자는 이를 휴대해야 합니다.
- 동기화된 패스키는 WebAuthn 자격 증명이 플랫폼 비밀번호 관리자(iCloud Keychain, Google Password Manager 또는 1Password 같은 타사 관리자)를 통해 동기화되는 새로운 범주입니다. 동기화된 패스키는 동일한 계정에 연결된 모든 장치에서 자격 증명이 유지되므로 장치 분실 시 복구 문제를 줄여줍니다. 대부분의 엔터프라이즈 사용자에게 이는 WebAuthn 도입에서 가장 큰 마찰 지점을 제거합니다. 트레이드오프는 이제 인증 보안이 동기화된 자격 증명을 호스팅하는 플랫폼 계정의 보안에 부분적으로 의존한다는 점입니다. 고보증 환경에서는 IT가 관리하는 백업 키를 갖춘 장치 바인딩 자격 증명이 여전히 더 강력한 선택입니다.
대부분의 엔터프라이즈 배포는 조합 방식을 사용합니다. 일상 사용을 위한 플랫폼 인증기, 등록된 백업으로서의 로밍 키, 그리고 위험 프로파일이 허용하는 경우 동기화된 패스키입니다. 올바른 조합을 선택하는 것은 보증 요구 사항, 사용자 집단, 그리고 감당할 수 있는 운영 오버헤드에 달려 있습니다.
인증기 결정은 확보하게 되는 보안 속성에 직접적인 영향을 미치며, 다음 섹션에서 이를 다룹니다.
WebAuthn의 보안 이점
WebAuthn은 피싱 저항성, 서버 측 노출, 규제 준수, 사이트 간 공격 방지 전반에서 구체적인 보안 이점을 제공합니다.
- 프로토콜 수준의 피싱 저항성. WebAuthn은 자격 증명을 출처에 암호학적으로 바인딩합니다. FIDO Alliance NIST comment는 공격자가 피싱 저항성이 없는 AAL2 인증기를 이미 따라잡았다고 경고했습니다. WebAuthn은 이 격차를 해소합니다.
- 서버에 공유 비밀이 없음.FIDO2의 공개 키 암호화 모델은 ID 공급자와 인증기 간 비밀 공유 필요성을 제거하며, 이는 NIST SP 800-63B-4에서 verifier compromise resistance라고 부르는 속성입니다. 데이터베이스가 완전히 침해되어도 공격자가 재생할 수 있는 것은 아무것도 없습니다.
- 규제 정렬. WebAuthn은 NIST SP 800-63B-4 AAL2 피싱 저항형 요구 사항을 충족합니다. 미국 정부의 Office of Management and Budget (OMB) Memorandum M-22-09는 연방 기관을 위한 피싱 저항형 접근 방식으로 W3C Web Authentication 표준을 직접 명시합니다. 규제 대상 조직은 명확하고 감사 가능한 준수 경로를 확보할 수 있습니다.
- 인적 요소 공격 제거. 2026 Verizon DBIR 은 침해 사고의 62%에 인적 요소가 포함된다고 밝혔습니다. WebAuthn은 두 가지 중요한 인적 공격 표면, 즉 취약한 비밀번호 선택과 피싱 취약성을 제거합니다. 비밀번호가 없으면 사용자는 취약한 비밀번호를 선택할 수 없습니다.
- 사이트 간 크리덴셜 스터핑 방지. 각 자격 증명은 특정 도메인에 암호학적으로 범위 지정되므로 크리덴셜 스터핑이 서비스 전반에서 훨씬 덜 효과적입니다.
이러한 보안 속성은 이론에 그치지 않습니다. WebAuthn을 대규모로 배포한 조직들은 이미 운영 환경에서 이를 검증했으며, 사용 사례는 거의 모든 산업 분야에 걸쳐 있습니다.
일반적인 WebAuthn 사용 사례
WebAuthn 도입은 자격 증명 기반 공격이 가장 큰 비즈니스 영향을 미치는 시나리오에 집중되어 있습니다. 다음은 운영 환경에서 가장 자주 나타나는 배포 패턴입니다.
- 권한 있는 액세스 및 관리자 콘솔es. VPN 포털, 클라우드 관리 콘솔, 인프라 관리자 패널은 자격 증명 탈취의 가장 가치 높은 표적입니다. 이러한 액세스 지점에 대해 WebAuthn을 필수 2차 인증 요소 또는 기본 비밀번호 없는 방식으로 배포하면 피싱 키트와 자격 증명 덤프가 가장 적극적으로 악용하는 공격 표면을 제거할 수 있습니다. 이는 일반적으로 모든 엔터프라이즈 롤아웃의 첫 단계입니다.
- 금융 서비스 및 헬스케어의 고객 대상 로그인. 자격 증명 손상이 침해 통지, 규제 벌금, 직접적인 재무 손실로 이어지는 규제 산업에서는 고객 인증에 패스키를 도입하고 있습니다. 뱅킹 애플리케이션, 환자 포털, 보험 플랫폼은 WebAuthn을 사용해 준수 요구 사항(PCI DSS, HIPAA 액세스 통제)과 계정 탈취 사기 감소라는 운영 목표를 모두 충족합니다.
- 공유 워크스테이션 및 키오스크 환경. 병원, 제조 현장, 소매 운영은 비밀번호 기반 로그인이 느리고 어깨너머 엿보기에 취약한 공유 터미널을 운영합니다. 로밍 인증기(NFC 지원 보안 키 또는 배지 탭 솔루션)는 공유 장치에 자격 증명을 입력하지 않고도 몇 초 안에 사용자를 인증합니다.
- 직원용 싱글 사인온(SSO). Okta, Azure AD 또는 Ping Identity 같은 플랫폼을 통해 identity provider (IdP) 수준에서 WebAuthn을 배포하면, 단일 등록으로 연합 환경의 모든 다운스트림 애플리케이션을 보호할 수 있습니다. 이는 가장 효율적인 광범위 적용 경로입니다. IdP에 한 번만 WebAuthn을 배포하면 모든 Security Assertion Markup Language (SAML) 또는 OpenID Connect (OIDC) relying party가 피싱 저항형 인증을 상속받기 때문입니다.
이러한 각 사용 사례는 동일한 원칙을 강화합니다. 인증 흐름에서 재사용 가능한 비밀을 제거하는 데 가까워질수록, 자격 증명 기반 공격 경로는 그만큼 적게 열려 있게 됩니다. 다만 WebAuthn을 대규모로 배포하면 팀이 계획해야 하는 운영 복잡성이 발생합니다.
WebAuthn의 과제와 한계
WebAuthn의 보안 모델은 견고하지만, 엔터프라이즈 배포에서는 팀이 지속적으로 과소평가하는 운영 복잡성이 드러납니다.
- 자격 증명 수명 주기 관리. 엔터프라이즈 WebAuthn 배포의 주요 실패 모드는 암호학적 문제가 아니라 운영 문제입니다. 인증기 배포, 장치 분실 시 자격 증명 폐기, 갱신 정책, 인증 실패에 대한 사용자 지원을 위한 문서화된 프로세스가 필요합니다. FIDO 수명 주기 가이드는 등록, 복구, 폐기 단계를 자세히 다룹니다.
- 인증기 유형 선택. 플랫폼 인증기(배포 비용 없음, 장치와 함께 분실), 로밍 인증기(휴대 가능하지만 물리적 배포 필요), 하이브리드 접근 방식 사이에서 전략적 결정을 내려야 합니다. 각각은 서로 다른 보증 수준, 복구 요구 사항, 운영 오버헤드를 수반합니다.
- 레거시 애플리케이션 통합. 환경 내 모든 애플리케이션이 WebAuthn을 기본적으로 지원하는 것은 아닙니다. SAML, OAuth, OpenID Connect 같은 연합 프로토콜과의 통합을 해결해야 합니다. 이는 복잡한 ID 연합 토폴로지를 가진 조직에 상당한 과제입니다.
- FIDO 서버 아키텍처 결정. 기존 ID 공급자에 FIDO 서버를 통합할지, 독립형 FIDO 서버를 배포할지, 또는 FIDO-server-as-a-service 모델을 사용할지 선택해야 합니다. 각각은 자격 증명 저장 아키텍처, 재해 복구 절차, 롤아웃 범위에 영향을 미칩니다. FIDO 서버 배포 가이드는 이러한 트레이드오프를 자세히 다룹니다.
- 동기화된 자격 증명의 트레이드오프. 주요 플랫폼 비밀번호 관리자를 통한 패스키 동기화는 사용자 마찰을 크게 줄이지만, 인증 보안의 일부를 플랫폼 계정 보안으로 이전합니다. 보증 요구 사항이 가장 높은 경우에는 IT가 관리하는 백업 키를 갖춘 장치 바인딩 자격 증명이 여전히 더 강력한 선택입니다.
운영 복잡성을 넘어, 특정 구현 결정은 더 지속적인 노출을 초래합니다.
- 모든 MFA를 피싱 저항형으로 취급. 이는 가장 영향이 큰 실수입니다. TOTP, SMS OTP 또는 푸시 알림 MFA를 배포하고 피싱 저항형 준수를 주장하면 여전히 노출됩니다. 실시간 피싱 프록시는 이러한 접근 방식에서 두 요소를 모두 탈취하고 재생합니다. verifier name binding 또는 channel binding을 갖춘 WebAuthn만이 진정한 피싱 저항성을 달성합니다.
- 인증되지 않은 자격 증명 등록 허용. CVE-2021-3632는 Keycloak에서 이를 보여주었는데, 사용자 계정에 장치가 없을 경우 누구나 새 보안 장치를 등록할 수 있었습니다. 등록은 이미 인증된 세션 내에서 또는 검증된 대역 외 프로세스를 통해 이루어져야 합니다.
- 부실한 등록 흐름 설계. 어색한 등록 과정은 사용자 저항을 만들고 지원 티켓 볼륨을 증가시킵니다. 등록 포털은 인증된 세션 내에서 사용자를 등록 과정으로 안내하고, 허용되는 인증기에 대한 명확한 지침을 제공하며, 특정 장치가 거부된 이유를 설명해야 합니다.
- 대체 및 복구 메커니즘 부재. 장치 분실, 하드웨어 장애 또는 생체 인식 문제에 대한 문서화된 대체 절차 없이 WebAuthn을 배포하면 잠금 시나리오가 발생합니다. 사전 등록된 백업 인증기, IT 관리자 비상 액세스 코드, 대면 검증 프로세스가 필요합니다.
- 보안 스택과 분리된 상태로 WebAuthn 배포. WebAuthn은 독립형 해결책이 아닙니다. NIST SP 1800-35에 따르면, 지속적 인증 평가, 장치 상태 검증, 컨텍스트 인식 액세스 정책, 엔드포인트 보안 인프라와 통합되어야 합니다. 제로 트러스트 아키텍처에서 WebAuthn은 액세스 결정에 반영할 수 있는 가장 강력한 신호 중 하나가 됩니다.
이러한 과제는 올바른 계획으로 해결할 수 있습니다. 다음 실무는 개념 검증과 운영 준비가 된 배포를 구분하는 핵심 결정을 다룹니다.
WebAuthn 구현 모범 사례
다음 실무는 개념 검증과 운영 준비가 된 WebAuthn 배포를 구분하는 핵심 결정을 다룹니다.
AAL2를 위해 사용자 검증을 강제합니다. 등록 및 인증 ceremony 모두에서 userVerification: "required"를 설정하고 서버 측에서 UV 플래그를 검증합니다. 준수 범위 배포에서는 "preferred"에 의존하지 마십시오.
attestation을 사용해 인증기 정책을 강제합니다. 등록 중 attestation을 확인하고 보안 요구 사항(예: FIDO L1+ 인증)을 충족하는 인증기만 허용합니다. AAGUID(인증기 모델 식별자) 기반 허용 목록을 사용하고, 실시간 인증기 상태 확인을 위해 FIDO Metadata Service와 통합합니다.
단계적으로 배포합니다. FIDO 단계적 롤아웃 권고는 다음과 같은 단계적 접근 방식입니다.
- 고위험 애플리케이션(VPN, 권한 있는 액세스, 관리자 콘솔)에 대한 2차 인증 요소 WebAuthn
- 운영 지원을 구축하면서 플랫폼 전반에 2차 인증 요소 롤아웃
- 성숙한 사용자 집단을 위한 discoverable credentials 및 비밀번호 없는 흐름
- 등록된 사용자를 대상으로 레거시 인증을 폐기한 완전한 비밀번호 없는 환경
이 접근 방식은 WebAuthn을 기본값으로 만들기 전에 정책, 지원, 복구 워크플로우를 검증할 수 있게 해줍니다.
다중 인증기 복구 전략을 구현합니다. 사용자당 최소 두 개의 인증기를 등록합니다. 기본 인증기(예: 일상 사용을 위한 플랫폼 인증기)와 백업 인증기(예: 안전하게 보관된 보안 키)입니다. 사용자 계정 설정에서 등록된 복구 자격 증명을 명확하게 표시합니다.
서명 카운터를 검증합니다. 모든 인증에서 서명 카운터가 단조롭게 증가하는지 확인합니다. 증가하지 않는 카운터는 잠재적으로 복제된 인증기를 나타냅니다.
예상된 오류와 예상치 못한 오류를 구분합니다. WebAuthn 오류를 명시적으로 추적합니다. NotAllowedError, AbortError 및 Credential Manager 패스키 오류를 별도의 신호로 분류하여 사용자 마찰과 보안 이상 징후를 구분할 수 있도록 합니다.
이러한 실무를 따르면 WebAuthn 배포를 운영 준비 상태로 끌어올릴 수 있습니다. 그러나 올바르게 구성된 WebAuthn 롤아웃조차 완전한 ID 방어는 아닙니다. WebAuthn 자체를 완전히 우회하는 공격에는 로그인 ceremony를 넘어 작동하는 통제, 즉 세션 하이재킹, 인증 후 측면 이동, 헬프데스크 소셜 엔지니어링에 대응하는 통제가 필요합니다.
SentinelOne이 ID 보안을 강화하는 방법
WebAuthn은 자격 증명 재생을 줄이지만, 운영 환경에서 마주치는 모든 ID 경로 공격을 막지는 못합니다. 여전히 세션 토큰 탈취, 장치 손상, 헬프데스크 소셜 엔지니어링, 인증 후 측면 이동에 대응해야 합니다.
Singularity™ Platform은 ID 및 엔드포인트 컨텍스트를 상호 연관시켜 이 격차를 해소합니다.
- Singularity Identity는 공격자가 디렉터리 서비스와 SSO 워크플로우를 노릴 때 의심스러운 ID 행위를 탐지하고 대응합니다. 이는 WebAuthn이 전혀 다루지 않는 ID 인프라를 포괄합니다.
- Singularity Endpoint는 장치에서 행위 기반 및 정적 AI 모델을 실행하여 자격 증명 탈취형 멀웨어와 로그인 통제를 완전히 우회하는 hands-on-keyboard 활동을 차단합니다. 공격자가 비밀번호 대신 세션을 노릴 때 중요한, 악성 패턴을 사람의 개입 없이 실시간으로 표시합니다.
- Purple AI™는 보안 데이터 전반을 추론하여 조사를 안내하고 다음 조치를 권고합니다. 2025 IDC Snapshot에 따르면 고객은 위협을 63% 더 빠르게 식별했으며, 이는 실패한 WebAuthn 로그인이 사용자 마찰인지 활성 피싱 캠페인인지 판단해야 할 때 중요합니다.
이들은 함께 로그인 전후 양측에서 ID 공격 경로를 억제합니다.
WebAuthn을 더 광범위한 피싱 방어 프로그램 및 사고 대응 워크플로우 내의 하나의 강력한 신호로 취급하면, 계정 탈취 위험과 실제 발생한 일을 입증하는 데 드는 시간을 모두 줄일 수 있습니다.
데모 요청을 통해 SentinelOne이 인증과 완전한 ID 방어 사이의 격차를 어떻게 해소하는지 확인해 보십시오.
하이브리드 환경 전반에 걸쳐 실시간 아이덴티티 보호와 엔드투엔드 가시성을 확보하여 노출을 탐지하고, 자격 증명 오용을 차단하며, 아이덴티티 위험을 감소시킵니다.
핵심 요점
WebAuthn은 공개 키 암호화를 사용한 비밀번호 없는 피싱 저항형 웹 인증을 위한 W3C 표준입니다. 자격 증명을 특정 도메인에 암호학적으로 바인딩하여 자격 증명 재생을 아키텍처 수준에서 불가능하게 만듭니다.
성공적인 엔터프라이즈 배포를 위해서는 단계적 롤아웃, attestation 기반 인증기 정책, 다중 장치 복구 전략, 그리고 더 광범위한 보안 스택과의 통합이 필요합니다.
FAQ
Web Authentication의 약자인 WebAuthn은 사용자를 웹 애플리케이션에 인증하기 위해 강력한 공개 키 기반 자격 증명을 생성하고 사용하는 브라우저 API를 정의하는 W3C 웹 표준입니다.
비밀번호 대신 비대칭 암호화를 사용합니다. 즉, 인증자가 사이트별로 고유한 키 쌍을 생성하고, 개인 키는 보안 하드웨어에 보관하며, 공개 키만 서버와 공유합니다. 이로 인해 자격 증명 탈취와 피싱 공격을 훨씬 더 어렵게 만듭니다.
WebAuthn의 주요 보안 속성은 암호화된 도메인 바인딩을 통한 피싱 저항성입니다. 자격 증명을 등록하면 해당 자격 증명은 신뢰 당사자의 정확한 출처에 바인딩됩니다. 인증할 때 브라우저는 서명된 응답에 해당 출처를 암호화 방식으로 포함하므로, 유사한 도메인에 있는 공격자는 사용자의 자격 증명을 재사용할 수 없습니다.
피싱을 넘어, WebAuthn은 공개 키만 저장되므로 서버 측 자격 증명 탈취를 제거하고, 각 자격 증명이 단일 도메인으로 범위가 지정되므로 credential stuffing도 방지합니다.
WebAuthn과 FIDO2는 관련되어 있지만 동일하지는 않습니다. FIDO2는 더 광범위한 프로젝트로, W3C와 협력하여 FIDO Alliance가 개발했으며, 두 가지 사양을 결합합니다: WebAuthn(공개 키 자격 증명을 생성하고 검증하기 위한 브라우저 API)과 CTAP(Client to Authenticator Protocol로, USB, NFC 또는 BLE를 통해 인증자와 브라우저 간의 통신을 처리함)입니다.
WebAuthn은 FIDO2의 웹 측면 절반입니다. 애플리케이션에서 WebAuthn을 구현합니다. CTAP는 인증자 하드웨어와 브라우저 사이에서 실행됩니다.
WebAuthn은 제로 트러스트 아키텍처에서 가장 강력한 인증 신호 중 하나를 제공합니다. NIST SP 1800-35에 따르면, WebAuthn은 지속적 인증 평가, 디바이스 상태 검증, 그리고 컨텍스트 인식 액세스 정책과 통합됩니다. WebAuthn 자격 증명은 피싱에 강하고 도메인에 바인딩되므로, 더 광범위한 액세스 결정에 반영되는 높은 수준의 신뢰를 제공하는 신원 확인 단계로 기능합니다.
실제로 WebAuthn을 엔드포인트 텔레메트리 및 행위 분석과 결합하면, 정책 엔진은 어떤 비밀번호나 레거시 MFA 방식보다 더 신뢰할 수 있는 인증 신호를 확보할 수 있습니다.
Can I Use에 따르면, WebAuthn은 전 세계 브라우저의 약 95%에서 사용할 수 있습니다. 모든 최신 데스크톱 브라우저가 이를 지원합니다: Chrome (v67+), Firefox (v60+), Safari (v14+), 및 Edge (v18+). 모바일에서는 Android용 Chrome, iOS의 Safari, 그리고 Samsung Internet이 모두 WebAuthn을 지원합니다.
플랫폼 인증자의 경우, Windows 10+에는 Windows Hello(얼굴 인식, 지문, TPM을 통한 PIN)가 포함되어 있으며, macOS/iOS 16+는 패스키를 위한 iCloud Keychain 동기화와 함께 Touch ID 및 Face ID를 지원하고, Android 9+는 Google Play Services를 통해 지문 및 얼굴 잠금 해제를 제공합니다. 이전 OS 버전과 일부 제한된 엔터프라이즈 브라우저 구성에서는 여전히 공백이 남아 있습니다.
WebAuthn은 브라우저가 공개 키 자격 증명 생성 및 인증을 위해 구현하는 W3C API 사양입니다. 패스키는 WebAuthn 자격 증명을 가리키는 사용자 대상 용어이며, 흔히 플랫폼 제공업체를 통해 여러 기기에서 동기화되는 동기화된(클라우드 기반) 자격 증명을 특별히 의미합니다.
모든 패스키는 내부적으로 WebAuthn을 사용하지만, 모든 WebAuthn 자격 증명이 동기화된 패스키인 것은 아닙니다. 기기 바인딩된 WebAuthn 자격 증명은 특정 하드웨어에 계속 연결된 상태로 유지됩니다.
WebAuthn은 구성에 따라 단일 요소(인증기 소유), 이중 요소(소유 + 생체 인식 또는 PIN) 또는 다중 요소 인증으로 작동할 수 있습니다.
AAL2 준수를 위해서는 사용자 검증(생체 인식 또는 PIN)을 강제하고 서버 측에서 UV 플래그를 검증해야 합니다. WebAuthn은 TOTP 및 SMS OTP와 같은 기존 MFA 방식을 대체하면서, 그 어떤 방식보다도 더 강력한 피싱 저항성을 제공합니다.
복구 계획이 없으면 계정에서 잠기게 됩니다. 모범 사례는 사용자당 최소 두 개의 인증자를 등록하는 것입니다. 일상적으로 사용하는 기본 기기 하나와 안전하게 보관되는 백업 하나입니다.
계정 복구 프로세스에는 IT 관리자 비상 액세스 코드와, 백업 인증자를 사용할 수 없는 고신뢰 환경을 위한 대면 확인 절차도 포함되어야 합니다.
예, 하지만 통합에는 계획이 필요합니다. WebAuthn은 SAML, OAuth 또는 OpenID Connect를 사용하는 연합 환경에서 ID 공급자(IdP) 수준에서 작동합니다. IdP가 WebAuthn 절차를 처리한 다음 다운스트림 애플리케이션에 연합 토큰을 발급합니다.
즉, 개별 애플리케이션마다가 아니라 IdP에서 WebAuthn을 배포하므로 연합 서비스 전반에서 롤아웃이 단순화됩니다.
브라우저는 모든 인증 절차 중에 인증자가 서명하는 데이터에 출처(도메인)를 암호학적으로 포함합니다. 중간자 공격자는 인증 어설션을 다른 도메인으로 중계할 수 없습니다. 자격 증명이 등록된 출처 외의 어떤 출처에 대해서도 서명이 검증되지 않기 때문입니다.
이 보호는 TLS나 사용자 인식과 무관하게 프로토콜 수준에서 작동합니다.

