WebAuthn
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
WebAuthn은 웹사이트, 웹 브라우저, 인증 장치를 포함하는 웹 인증 기술이다. FIDO2 표준을 기반으로 하며, 비밀번호 없이 생체 인식, PIN, 보안 키 등 다양한 인증 수단을 사용하여 사용자 인증을 제공한다. 기존 비밀번호 기반 인증의 보안 취약점을 해결하고 사용자 편의성을 높이는 것을 목표로 하며, 주요 웹 브라우저와 서비스에서 지원되고 있다.
FIDO2는 FIDO U2F (Universal 2nd Factor)의 후속 기술로, 다단계 인증뿐만 아니라 단일 요소 인증 모드를 지원한다.[13] 인증 장치는 웹사이트와 비밀 또는 생체 인식 데이터를 공유하지 않으며, 모든 웹사이트에서 작동한다.[15] 사용자 확인이 성공적으로 완료된 후 인증을 요청하는 서비스에 사용할 올바른 암호화 키 자료를 선택하며, 스마트폰에서 사용되는 방식과 유사하게 비밀과 생체 인식을 함께 사용할 수 있다.
WebAuthn은 기존 비밀번호 기반 인증 방식의 여러 문제점을 해결한다. WebAuthn은 각 웹사이트마다 고유한 인증 정보를 생성하여 안전한 인증 장치에 보관하고, 인증 정보의 개인 키는 서버에 저장하지 않아 데이터 유출 위험을 줄인다. 또한, 웹사이트별로 고유한 자격 증명을 만들어 자격 증명 스터핑이나 피싱 공격을 방지한다.
2. 역사적 배경
2. 1. FIDO U2F와의 관계
FIDO2는 FIDO 유니버설 2차 인증(U2F)의 후속 기술이다. U2F가 기존의 사용자 이름/비밀번호 기반 로그인 방식을 강화하도록 설계되어 다단계 인증 모드만 지원하는 반면, FIDO2는 단일 요소 인증 모드(비밀번호 없는 로그인)에 대한 지원을 추가했다.[13] 다단계 인증 모드에서 인증 장치는 일반적으로 간단한 버튼 누름으로 구성된 ''사용자 존재 확인'' 테스트를 통해 활성화되며, 비밀번호는 필요하지 않다. 단일 요소 인증 모드에서 인증 장치('소유한 것')는 ''사용자 확인''을 수행하며, 인증 장치 기능에 따라 다음과 같다.[14]
모드에 관계없이 인증 장치는 웹사이트와 비밀 또는 생체 인식 데이터를 공유하지 않는다.[15] 또한 단일 사용자의 비밀 또는 생체 인식은 모든 웹사이트에서 작동하며, 인증 장치는 사용자 확인이 성공적으로 완료된 후 인증을 요청하는 서비스에 사용할 올바른 암호화 키 자료를 선택한다.
인증 장치의 비밀과 생체 인식은 스마트폰에서 사용되는 방식과 유사하게 함께 사용할 수 있다. 예를 들어, 지문은 스마트폰에 편리하게 액세스하는 데 사용되지만 가끔 지문 액세스가 실패할 경우 PIN을 사용할 수 있다.
3. 기존 비밀번호 기반 인증 방식과의 비교
자세한 내용은 보안 취약점 개선 하위 섹션을 참고할 수 있다.
3. 1. 보안 취약점 개선
WebAuthn은 설계상 전통적인 비밀번호 기반 인증에서 발생하는 많은 고유한 문제를 해결한다.
4. 구성 요소 및 작동 원리
WebAuthn은 웹사이트, 웹 브라우저, 인증 장치로 구성된다.[9]
- 웹사이트는 WebAuthn 준수 의뢰인(Relying Party)이다.
- 브라우저는 WebAuthn 준수 클라이언트이다.
- 인증자는 FIDO2 인증자이며, WebAuthn 클라이언트와 호환되는 것으로 가정한다.
WebAuthn은 인증 장치를 소유하고 제어하는 사용자가, WebAuthn 클라이언트(웹 브라우저)를 통해 WebAuthn 의뢰인(웹사이트)에게 이를 증명하는 방식을 정의한다.
WebAuthn은 로밍 하드웨어 인증 장치 외에도, 스마트폰과 같은 소프트웨어 인증 장치나 Windows Hello[17] 및 Android 운영 체제[18]와 같이 WebAuthn 클라이언트 장치에 직접 구현된 플랫폼 인증 장치를 사용할 수 있다.
4. 1. 인증 (Authentication)
오른쪽 그림에서 인증기는 하드웨어 인증기로 가정한다. 어떤 경우든 인증기는 다중 요소 암호 인증기로서 WebAuthn Relying Party를 대상으로 한 인증 어설션(assertion)을 증명하기 위해 공개 키 암호화를 이용한다. 사용자 확인에 PIN을 사용한다고 가정하면, 인증기는 "사용자가 가지고 있는 것"이고 PIN은 "사용자가 알고 있는 것"이다.[16]
WebAuthn Relying Party는 자바스크립트를 통해 WebAuthn Client(웹 브라우저 등)에게 지시한다. WebAuthn Client는 브라우저에 구현된 자바스크립트 API를 사용하여 인증기와 상호 작용한다. 인증기는 FIDO Client to Authenticator Protocol|클라이언트-인증자 프로토콜영어 2.0을 준수한다.
4. 2. 등록 (Registration)
WebAuthn Relying Party는 자바스크립트를 통해 WebAuthn Client(웹 브라우저 등)에게 지시하며, WebAuthn Client는 브라우저에 구현된 자바스크립트 API를 사용하여 인증기와 상호 작용한다. 사용자의 공개 키를 얻기 위해, WebAuthn Relying Party는 인증 흐름과 유사한 WebAuthn 등록 흐름을 시작한다.[21] 이때 인증자는 자체 증명 개인 키로 증명문에 서명하고, 서명된 증명문에는 WebAuthn Relying Party가 서명된 인증 어설션을 검증하는 데 사용하는 공개 키 사본이 포함된다. 증명문에는 인증자 자체를 설명하는 메타데이터도 포함되어 있다.증명문의 디지털 서명은 해당 모델의 인증자에 대한 신뢰할 수 있는 증명 공개 키로 검증된다. WebAuthn Relying Party가 신뢰할 수 있는 증명 공개 키 저장소를 얻는 방법은 명시되지 않았지만, FIDO 메타데이터 서비스를 사용하는 것이 한 가지 옵션이다.[22]
JavaScript에 지정된 증명 유형은 신뢰 모델을 결정한다. 예를 들어 자기 증명 유형이 필요한 경우, 신뢰 모델은 기본적으로 최초 사용 시 신뢰가 된다.
5. 지원 현황
WebAuthn 레벨 1 표준은 2019년 3월 4일 웹 인증 워킹 그룹에 의해 W3C 권고안으로 발표되었다.[9][10][23] 구글 크롬, 모질라 파이어폭스, 마이크로소프트 엣지, 애플 사파리, 오페라 등 주요 웹 브라우저에서 지원하고 있다.[10][24]
기존의 FIDO U2F 보안 키는 WebAuthn 표준과 대체로 호환되지만, WebAuthn은 고유한 계정별 "사용자 핸들" 식별자를 참조하는 기능을 추가했으며 이전 인증 장치는 이를 저장할 수 없다.[9]
최초의 FIDO2 호환 인증 장치 중 하나는 2018년 4월 10일에 발표된 유비코(Yubico)의 2세대 보안 키였다.[28] 디스플레이가 있는 최초의 FIDO2 호환 인증 장치는 2019년 11월 6일에 발표된 사토시랩스(SatoshiLabs)의 Trezor Model T였다.[29] Trezor Model T는 또한 사용자가 장치에서 직접 어떤 FIDO2 레지던트 자격 증명을 사용할지 선택할 수 있도록 한 최초의 인증 장치이기도 하다.
"Goldengate"라는 최초의 보안 레벨 2 인증 FIDO2 키는 1년 후인 2019년 4월 8일에 eWBM에 의해 발표되었다.[30][31]
애플은 2020년 6월 24일에 사파리에서 Face ID 또는 Touch ID를 WebAuthn 플랫폼 인증 장치로 사용할 수 있다고 발표했다.[33]
5. 1. 주요 웹 브라우저 지원
| 브라우저 | 데스크톱 지원 버전 | 모바일 지원 버전 |
|---|---|---|
| 구글 크롬 | 67[9] | 87 |
| 모질라 파이어폭스 | 60[26] | 60[26] |
| 마이크로소프트 엣지 | 윈도우 인사이더 빌드 17682[27] (EdgeHTML 18, Blink) | 해당 없음 |
| 사파리 | 13 | 13 |
| 오페라 | 지원[24] | 지원 |
5. 2. 서비스 지원
드롭박스는 2018년 5월 8일에 WebAuthn 로그인을 2단계 인증 방식으로 지원한다고 발표했다.[32] 이 외에도 국내에서는 금융, 공공, IT 등 다양한 분야에서 FIDO 기반 인증 기술 도입이 확대되고 있다.6. API
WebAuthn은 W3C의 자격 증명 관리 API의 확장 기능을 구현한 것으로, 사용자 자격 증명을 교환할 때 웹사이트와 웹 브라우저 간의 상호 작용을 정의한다.[34][35] Web Authentication API는 Credential Management의 `navigator.credentials.create()` 및 `navigator.credentials.get()` JavaScript 메서드를 확장하여 `publicKey` 매개변수를 허용한다. `create()` 메서드는 공개 키 인증자를 사용자 계정과 연결하는 과정의 일부로 등록하는 데 사용되며(초기 계정 생성 시 또는 기존 계정에 새로운 보안 장치를 추가할 때), `get()` 메서드는 인증(예: 로그인 시)에 사용된다.
브라우저가 WebAuthn을 지원하는지 확인하려면 스크립트에서 `window.PublicKeyCredential` 인터페이스가 정의되어 있는지 확인해야 한다. `PublicKeyCredential` 외에도 표준은 `AuthenticatorResponse`, `AuthenticatorAttestationResponse`, `AuthenticatorAssertionResponse` 인터페이스와 다양한 사전 및 기타 데이터 유형을 정의한다.
API는 초기 생성 요청 외에는 개인 키에 직접 접근하거나 조작하는 것을 허용하지 않는다. WebAuthn은 WebAuthn Relying Party라고 하는 검증자에게 요청자가 소유를 어떻게 증명하는지를 명시하고 FIDO2 인증기를 제어한다. 인증 프로세스는 준수하는 웹 브라우저에 불과한 WebAuthn Client라고 불리는 개체가 수행한다.
WebAuthn Relying Party는 자바스크립트를 통해 WebAuthn Client(웹 브라우저 등)에게 지시한다. WebAuthn Client는 브라우저에 구현된 자바스크립트 API를 사용하여 인증기와 상호 작용한다. 인증기는 FIDO Client to Authenticator Protocol|클라이언트-인증자 프로토콜영어 2.0을 준수한다.
7. 비판 및 한계
WebAuthn 표준 초기에는 암호화 방식에 대한 보안 취약점 문제가 제기되었다. 특히, PKCS1v1.5 패딩을 사용하는 RSA와 ECDAA 방식에 대한 우려가 있었다.[36]
2018년 8월, 패러곤 이니셔티브 엔터프라이즈(Paragon Initiative Enterprises)는 WebAuthn 표준에 대한 보안 감사를 실시했다. 감사 결과, 구체적인 익스플로잇은 발견되지 않았지만, 기본적인 암호화 방식에서 몇 가지 심각한 약점이 발견되었다.[36]
주요 비판점은 과거 다른 암호화 시스템에서 문제가 되었던 두 가지 잠재적 문제와 관련이 있었다.
- COSE (RFC 8152)의 강제 사용으로 WebAuthn은 PKCS1v1.5 패딩을 사용하는 RSA도 지원한다. 이 방식은 최소 20년 동안 특정 공격에 취약하며, 과거 다른 프로토콜과 RSA 암호 구현에서 공격에 성공한 사례가 있다.
- FIDO 얼라이언스(FIDO Alliance)는 비대칭 암호화 방식인 ECDAA를 표준화했다.[37] 이는 타원 곡선을 기반으로 한 직접 익명 증명의 한 버전으로, WebAuthn에서는 사용자의 개인 정보를 보호하면서 인증자의 무결성을 검증하는 데 사용하도록 되어 있으며, 핸들의 전역적 상관 관계를 허용하지 않는다.
표준 개발 방식에 대한 비판도 있었다. 제안이 사전에 공개되지 않았고, 경험이 풍부한 암호학자들에게 제안과 피드백을 요청하지 않았기 때문에, 학계로부터 광범위한 암호화 연구를 거치지 못했다는 지적이다.
이러한 단점에도 불구하고, 패러곤 이니셔티브 엔터프라이즈는 WebAuthn 사용을 권장하면서도, 표준 구현자와 개발자에게 몇 가지 권장 사항을 제시했다.
ECDAA 관련 문제점들은 하위 섹션 "ECDAA 관련 문제"에서 더 자세히 다루고 있다.
7. 1. ECDAA 관련 문제
2018년 8월, 패러곤 이니셔티브 엔터프라이즈(Paragon Initiative Enterprises)는 WebAuthn 표준에 대한 보안 감사를 실시했다. 구체적인 익스플로잇은 발견하지 못했지만, 기본적인 암호화 방식과 표준에 의해 강제되는 방식에 몇 가지 심각한 약점이 있음을 밝혀냈다.[36]주요 비판점은 과거 다른 암호화 시스템에서 문제가 되었던 두 가지 잠재적 문제로, 동일한 종류의 공격에 희생되지 않기 위해 피해야 하는 것들이다.
- COSE(RFC 8152)의 의무적인 사용을 통해 WebAuthn은 PKCS1v1.5 패딩을 사용하는 RSA도 지원한다. 이 특정 패딩 방식은 적어도 20년 동안 특정 공격에 취약한 것으로 알려져 있으며, 과거 다른 프로토콜과 RSA 암호 시스템 구현에서 성공적으로 공격받았다. WebAuthn의 맥락에서 주어진 조건 하에서는 악용하기 어렵지만, 더 안전한 암호화 기본 요소와 패딩 방식이 있기 때문에 여전히 좋지 않은 선택이며, 더 이상 암호학자들 사이에서 최선의 관행으로 간주되지 않는다.
- FIDO 얼라이언스(FIDO Alliance)는 비대칭 암호화 방식인 ECDAA를 표준화했다.[37] 이는 타원 곡선을 기반으로 하는 직접 익명 증명의 한 버전으로, WebAuthn의 경우 사용자의 개인 정보를 보호하면서 인증자의 무결성을 검증하는 데 사용하도록 되어 있으며, 핸들의 전역적 상관 관계를 허용하지 않는다. 그러나 ECDAA는 타원 곡선 암호화 분야의 지난 수십 년간의 연구에서 얻은 교훈을 일부 포함하지 않으며, 선택된 곡선은 이 유형의 곡선에 고유한 몇 가지 보안 결함을 가지고 있어 보안 보장을 상당히 감소시킨다. 또한 ECDAA 표준은 무작위적이고 비결정적인 서명을 포함하고 있으며, 이는 이미 과거에 문제가 되었던 사항이다.
패러곤 이니셔티브 엔터프라이즈는 또한 이 표준이 초기에 개발된 방식을 비판했는데, 제안이 사전에 공개되지 않았고 경험이 풍부한 암호학자들에게 제안과 피드백을 요청하지 않았기 때문이다. 따라서 이 표준은 학계로부터 광범위한 암호화 연구를 거치지 않았다.
이러한 단점에도 불구하고, 패러곤 이니셔티브 엔터프라이즈는 사용자들에게 WebAuthn의 사용을 계속 권장하지만, 표준이 최종 확정되기 전에 구현되기를 바라는 몇 가지 권장 사항을 표준의 잠재적 구현자 및 개발자에게 제시했다. 이러한 실수를 가능한 한 빨리 피하는 것은 손상된 표준과 하위 호환성의 필요성으로 인해 발생하는 모든 문제로부터 업계를 보호할 것이다.
ECDAA는 장치 증명과 함께 사용하도록 설계되었다. WebAuthn의 이 특정 기능은 인증이 작동하는 데 반드시 필요한 것은 아니다. 현재 구현에서는 등록 과정에서 증명문을 보낼지 여부를 사용자가 결정할 수 있다. 독립적으로, 신뢰 당사자는 증명을 요구할지 여부를 선택할 수 있다. ECDAA는 브라우저나 신뢰 당사자에 의해 구현되지 않아 WebAuthn 레벨 2에서 제거되었다.[38]
참조
[1]
웹사이트
Web Authentication Working Group
https://www.w3.org/b[...]
World Wide Web Consortium
2018-05-11
[2]
간행물
What is WebAuthn
https://www.iheart.c[...]
iHeartMedia
2019-03-18
[3]
웹사이트
FIDO2 Project
https://fidoalliance[...]
FIDO Alliance
2018-05-11
[4]
웹사이트
White Paper: Multi-Device FIDO Credentials
https://fidoalliance[...]
FIDO Alliance
2022-03-00
[5]
웹사이트
Client to Authenticator Protocol (CTAP)
https://fidoalliance[...]
FIDO Alliance
2019-01-30
[6]
웹사이트
WebAuthn / CTAP: Modern Authentication
https://www.w3.org/S[...]
World Wide Web Consortium
2018-12-10
[7]
웹사이트
Google: Phishing Attacks That Can Beat Two-Factor Are on the Rise
https://www.pcmag.co[...]
PC Magazine
2019-03-07
[8]
웹사이트
Practical passwordless authentication comes a step closer with WebAuthn
https://arstechnica.[...]
2018-04-10
[9]
웹사이트
Web Authentication: An API for accessing Public Key Credentials Level 1 (latest)
https://www.w3.org/T[...]
World Wide Web Consortium
[10]
웹사이트
W3C and FIDO Alliance Finalize Web Standard for Secure, Passwordless Logins
https://www.w3.org/2[...]
World Wide Web Consortium
2019-03-04
[11]
웹사이트
Web Authentication: An API for accessing Public Key Credentials Level 2
https://www.w3.org/T[...]
World Wide Web Consortium
[12]
웹사이트
Web Authentication: An API for accessing Public Key Credentials Level 3
https://www.w3.org/T[...]
World Wide Web Consortium
[13]
웹사이트
User Presence vs User Verification
https://developers.y[...]
[14]
웹사이트
FIDO Registry of Predefined Values
https://fidoalliance[...]
FIDO Alliance
2018-07-02
[15]
웹사이트
Web Authentication: An API for accessing Public Key Credentials Level 1 § Terminology: User Verification
https://www.w3.org/T[...]
W3C
2019-03-04
[16]
웹사이트
Web Authentication API
https://developer.mo[...]
Mozilla
[17]
웹사이트
Secure password-less sign-in for your Microsoft account using a security key or Windows Hello
https://www.microsof[...]
Microsoft
2018-11-20
[18]
웹사이트
Android Now FIDO2 Certified, Accelerating Global Migration Beyond Passwords
https://fidoalliance[...]
FIDO Alliance
2019-02-25
[19]
웹사이트
Touch ID and Beyond: Duo's Plans for WebAuthn
https://duo.com/blog[...]
Duo Security
2019-03-05
[20]
웹사이트
How WebAuthn aims to solve the password problem
https://www.helpnets[...]
Help Net Security
2019-02-27
[21]
웹사이트
Web Authentication API
https://developer.mo[...]
Mozilla
[22]
웹사이트
Metadata Service
https://fidoalliance[...]
FIDO Alliance
[23]
웹사이트
W3C Approves WebAuthn as the Web Standard for Password-Free Logins
https://venturebeat.[...]
2019-03-04
[24]
웹사이트
Can I use Web Authentication API?
https://caniuse.com/[...]
[25]
웹사이트
Enabling Strong Authentication with WebAuthn
https://developers.g[...]
2018-06-03
[26]
웹사이트
Firefox moves browsers into post-password future with WebAuthn tech
https://www.cnet.com[...]
2018-05-09
[27]
웹사이트
Announcing Windows 10 Insider Preview Build 17682
https://blogs.window[...]
Microsoft
2018-05-23
[28]
보도자료
Yubico Launches New Developer Program and Security Key for FIDO2 and WebAuthn W3C Specifications
https://www.yubico.c[...]
2018-04-10
[29]
웹사이트
Make Passwords a Thing of the Past, FIDO2 Is Now Available on Trezor Model T
https://medium.com/t[...]
2019-11-06
[30]
보도자료
eWBM: eWBM's Goldengate Fingerprint Reader is First to Get FIDO L2 Certification
https://www.ewbm.com[...]
2019-04-08
[31]
보도자료
Mobile ID World, Alex Perala: eWBM's Goldengate Fingerprint Reader is First to Get FIDO L2 Certification
https://mobileidworl[...]
2019-04-09
[32]
웹사이트
Introducing WebAuthn support for secure Dropbox sign in
https://blogs.dropbo[...]
Dropbox
2018-05-08
[33]
웹사이트
Safari 14 Release Notes
https://developer.ap[...]
2022-12-16
[34]
웹사이트
Web Authentication API
https://developer.mo[...]
Mozilla
[35]
웹사이트
Introduction to WebAuthn API
https://medium.com/@[...]
Medium
2019-01-15
[36]
웹사이트
Security Concerns Surrounding WebAuthn: Don't Implement ECDAA (Yet)
https://paragonie.co[...]
Paragon Initiative Enterprises Blog
2018-08-23
[37]
웹사이트
FIDO ECDAA Algorithm
https://fidoalliance[...]
FIDO Alliance
2018-02-27
[38]
웹사이트
Remove ECDAA? · Issue #1410 · w3c/webauthn
https://github.com/w[...]
2020-04-28
[39]
웹사이트
WebAuthn 【Web Authentication】
https://e-words.jp/w[...]
e-words IT用語辞典
2024-11-08
[40]
웹사이트
WebAuthnをエミュレートするWebアプリの開発
https://securesky-pl[...]
セキュアスカイプラス
2024-11-08
[41]
웹사이트
用語解説: WebAuthn
https://www.istc.kob[...]
神戸大学
2024-11-08
[42]
웹사이트
WebAuthn(ウェブオースン)
https://www.nri-secu[...]
NRI SECURE
2024-01-08
[43]
웹사이트
Web Authentication: An API for accessing Public Key Credentials Level 1
https://www.w3.org/T[...]
World Wide Web Consortium (W3C)
2019-03-04
[44]
웹사이트
Web Authentication Working Group
https://www.w3.org/b[...]
W3C
2018-05-11
[45]
웹사이트
FIDO2 Project
https://fidoalliance[...]
FIDO Alliance
2018-05-11
[46]
웹사이트
W3C and FIDO Alliance Finalize Web Standard for Secure, Passwordless Logins
https://www.w3.org/2[...]
World Wide Web Consortium
2019-03-04
[47]
웹사이트
W3C Approves WebAuthn as the Web Standard for Password-Free Logins
https://venturebeat.[...]
2019-03-04
[48]
웹사이트
Enabling Strong Authentication with WebAuthn
https://developers.g[...]
2018-06-03
[49]
웹사이트
Firefox moves browsers into post-password future with WebAuthn tech
https://www.cnet.com[...]
2018-05-09
[50]
웹사이트
Announcing Windows 10 Insider Preview Build 17682
https://blogs.window[...]
Microsoft
2018-05-23
[51]
press release
Yubico Launches New Developer Program and Security Key for FIDO2 and WebAuthn W3C Specifications
https://www.yubico.c[...]
2018-04-10
[52]
웹사이트
Introducing WebAuthn support for secure Dropbox sign in
https://blogs.dropbo[...]
Dropbox
2018-05-08
[53]
웹사이트
Security Concerns Surrounding WebAuthn: Don't Implement ECDAA (Yet)
https://paragonie.co[...]
Paragon Initiative Enterprises Blog
2018-08-23
[54]
웹사이트
FIDO ECDAA Algorithm
https://fidoalliance[...]
FIDO Alliance
2018-02-27
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com