WebAuthn(Web Authentication API)은 FIDO2의 핵심 구성 요소로, W3C에서 표준화한 웹 기반 인증 API입니다.


🔑 WebAuthn 개요

  • 정식 명칭: Web Authentication API
  • 표준화: W3C + FIDO Alliance (2018년 공개)
  • 역할: 웹 브라우저와 웹 애플리케이션이 공개키 기반 인증을 쉽게 구현할 수 있도록 지원.
  • 기능: 비밀번호 없이(또는 비밀번호와 함께) 로그인 가능.

⚙️ 동작 방식

  1. 등록(Registration)
    • 사용자가 서비스에 로그인할 때, 기기(스마트폰, 보안키, OS 내장 인증기 등)가 공개키/개인키 쌍 생성.
    • 서비스 서버에는 공개키만 저장.
  2. 인증(Authentication)
    • 로그인 시 서버가 난수(Challenge)를 발급.
    • 사용자는 지문, 얼굴인식, PIN 등으로 개인키 사용 → Challenge에 전자서명 생성.
    • 서버는 공개키로 검증 → 사용자가 진짜임을 확인.

🌍 지원 환경

  • 브라우저: 크롬, 엣지, 사파리, 파이어폭스 (대부분 지원)
  • 플랫폼 인증기: Windows Hello, Android 생체인식, iOS Face ID/Touch ID
  • 외부 인증기: YubiKey 같은 USB/NFC/Bluetooth 보안키

✅ 장점

  • 서버에 비밀번호 저장 불필요 → 데이터 유출 피해 최소화
  • 피싱 방지 (서버 도메인과 연동된 키로만 인증 가능)
  • 멀티 디바이스 확장 (Passkey 개념으로 기기 간 동기화)

📌 요약:
WebAuthn은 웹에서 동작하는 공개키 기반 인증 표준이며, FIDO2의 핵심.
→ “아이디+비밀번호” 대신 지문·얼굴인식·보안키로 바로 로그인할 수 있게 만드는 기술입니다.


 

🌐 브라우저별 WebAuthn 지원 요약

브라우저최소 지원 버전 / 시점주요 특징 / 제한사항
Chrome Desktop: v67+ webauthn-doc.spomky-labs.com+2위키백과+2
모바일(Android): 최신 버전에서 폭넓게 지원 webauthn.wtf+2webauthn.me+2
플랫폼 인증기(biometrics) + 외부 보안키 모두 사용 가능. 대부분 기능이 잘 구현됨.
Firefox Desktop: v60+ webauthn-doc.spomky-labs.com+2위키백과+2
Android: v68+부터 일부 지원됨 webauthn-doc.spomky-labs.com+2窓の杜+2
외부 키 지원 양호. 플랫폼 인증기의 생체 인증 통합 등은 OS / 버전별로 제약 있음.
Microsoft Edge (Chromium 기반) Desktop: Chromium 기반 버전부터 완전 지원 (Edge 79+ 등) webauthn-doc.spomky-labs.com+2위키백과+2 Windows Hello 등의 플랫폼 인증기 + 외부 보안키 기능 사용 가능. 이전 비-Chromium Edge는 제한적 지원.
Safari macOS: Safari 13+ webauthn-doc.spomky-labs.com+2AppleInsider+2
iOS: iOS Safari 13.3+ (이후 버전) webauthn-doc.spomky-labs.com+2더 버지+2
Touch ID / Face ID 등의 생체 인증 및 외부 보안키 지원. 다만, 일부 구 버전에서는 제한적이며 사용자 제스처(user gesture) 요구사항이나 제약이 있음. simplewebauthn.dev+2webauthn-doc.spomky-labs.com+2
Opera Opera 54+ 데스크탑 버전에서 지원됨 webauthn-doc.spomky-labs.com+1 Chromium 기반이므로 Chrome과 유사한 지원. 외부 키·플랫폼 인증 모두 가능.
Internet Explorer 지원 안됨 / 폐지됨 webauthn-doc.spomky-labs.com+2okta.github.io+2 WebAuthn 기술 사양상 미지원. 기존 보안 취약점 및 기능 부족 문제로 사용 지양됨.

⚠️ 주의사항 / 기능별 제약

  • 플랫폼 인증기 vs 외부 인증기:
    외부 보안키(USB/NFC/Bluetooth 등)는 거의 모든 지원 브라우저에서 작동하지만, 플랫폼에 내장된 인증기(지문·얼굴·PIN 등)의 지원은 OS와 브라우저 버전에 따라 다름.
  • iOS / Safari의 제한:
    iOS의 경우 WebAuthn이 Safari 및 일부 브라우저에서 지원되나, 생체 인증(예: Face ID, Touch ID) 또는 외부 키 사용에 대한 제약이 존재하곤 함. 예를 들어 iOS 13.3 이전 버전의 Safari는 외부 보안 키만 지원하거나 완전한 생체 인증 기능이 없었음. webauthn.me+2더 버지+2
  • 버전별 버그 / 구현 차이:
    브라우저마다 WebAuthn API의 navigator.credentials.create() / get() 호출 시 사용자 제스처 필요성, 인증기 타입 지원, 응답 검증 방식 등에서 작은 차이가 있음. 예: Safari의 사용자 제스처 감지 관련 문제. simplewebauthn.dev+1
  • Passkey / Level-3 기능:
    WebAuthn의 최신 기능들(예: Passkeys, getClientCapabilities(), conditional mediation 등)은 모든 브라우저에 완전히 구현된 것은 아니고 일부 브라우저만 지원 시작함. passlock.dev+1

'소프트웨어 > 상식' 카테고리의 다른 글

패스키(Passkey)  (1) 2025.09.17
OTP(One-Time Password) 원리  (0) 2025.09.17
FIDO vs MFA vs TOTP  (0) 2025.09.17
FIDO(Fast IDentity Online)  (0) 2025.09.17
TOTP(Time-based One-Time Password)  (0) 2025.09.17

+ Recent posts