WebAuthn
| WebAuthn | |||||||
|---|---|---|---|---|---|---|---|
| |||||||
| |||||||
| Wikidata C:Commons |
Web Authentication (WebAuthn) é un estándar web publicado polo World Wide Web Consortium (W3C).[1][2][3] Define unha API que os sitios web empregan para autenticarse mediante credenciais WebAuthn (coñecidas comunmente como passkeys ou «chaves de acceso»[4][5]) e describe as funcións que deben desempeñar os autenticadores WebAuthn. Soluciona moitos dos problemas da autenticación tradicional baseada en contrasinais ao verificar a identidade do usuario mediante sinaturas dixitais.[6] Aínda que WebAuthn se presenta a miúdo como un substituto total dos contrasinais, a maioría dos sitios web que o implementan continúan a empregar contrasinais dalgunha maneira.[7]
Para empregar WebAuthn, os usuarios necesitan un autenticador compatible. O estándar non especifica como gardar as chaves precisas para asinar, polo que se poden usar diversos tipos de autenticadores. O tipo máis habitual é o autenticador de plataforma, que vén integrado no sistema operativo do dispositivo. Entre os autenticadores de plataforma comúns inclúense Android, Apple Keychain e Windows Hello. Estes fan uso de características de seguridade por hardware (como TEE ou TPM) e decote sincronizan as credenciais entre dispositivos para maior comodidade. Outro tipo habitual é o autenticador itinerante (roaming authenticator), no cal un dispositivo físico independente autentica o usuario conectándose a través de USB, Bluetooth ou NFC. A maioría dos teléfonos intelixentes poden usarse como autenticadores itinerantes, e tamén se empregan chaves de seguridade físicas dedicadas. WebAuthn é compatible cara atrás con FIDO Universal 2nd Factor (U2F), xa que ambos utilizan o protocolo CTAP.[8] Os xestores de contrasinais tamén poden funcionar como autenticadores, a miúdo con sincronización na nube.[9] Nos casos en que a sincronización de credenciais non sexa viable, pódese empregar o transporte híbrido de WebAuthn para acceder a credenciais almacenadas noutro dispositivo como un teléfono intelixente.[10]
Do mesmo xeito que o predecesor U2F, WebAuthn é resistente a certos ataques de phishing,[11] posto que o autenticador só achega as credenciais que foron rexistradas baixo a mesma orixe ou dominio web. Porén, a diferenza de U2F, WebAuthn pode implementarse de xeito totalmente sen contrasinal.[12] Ademais, un autenticador de hardware físico resiste o malware, dado que as chaves fican almacenadas nun dispositivo independente.
Os estándares WebAuthn Nivel 1 e 2 foron publicados polo W3C o 4 de marzo de 2019 e o 8 de abril de 2021 respectivamente.[1][13][14] A especificación de Nivel 3 progresou a través de varios borradores de Candidata a recomendación durante 2026,[15][16] e en xullo de 2026 o W3C propuxo o seu avance a Recomendación definitiva.[17]
Antecedentes
[editar | editar a fonte]O emprego dun nome de usuario e un contrasinal foi o mecanismo habitual para que os usuarios demostrasen perante un servizo quen eran.[18] Porén, este método presenta vulnerabilidades coñecidas: os usuarios adoitan reutilizar contrasinais en diferentes servizos,[19] escoller combinacións febles descifrables por forza bruta,[20] ou anotalos de xeitos inseguros.[21]
En 2012, Google xunto con Yubico comezaron a traballar nun estándar chamado Universal 2nd Factor (U2F)[22] que permitía aos sitios web verificar un segundo factor mediante dispositivos de hardware. O proxecto foi integrado posteriormente na iniciativa conxunta FIDO Alliance, que publicou a súa primeira especificación en 2014.[23] En 2015 iniciouse o desenvolvemento de FIDO2 co gallo de solucionar as limitacións de U2F,[24] xa que U2F aínda dependía dun contrasinal principal e non autenticaba a identidade física do usuario perante a propia chave.[25]
En novembro de 2015 presentouse a proposta ao W3C,[26] creándose o grupo de traballo correspondente para estandarizalo e integralo de xeito nativo nos navegadores web.[27] O soporte nos navegadores estendeuse amplamente a partir de 2018 con Chrome 67, Firefox 60 e Safari 13.[28]
A denominación «passkey»
[editar | editar a fonte]
Passkey (ás veces traducido como «chave de acceso») é a denominación divulgativa para a credencial criptográfica que permite autenticar un usuario baixo o estándar WebAuthn.[29][30] A maioría das interfaces de usuario e aplicacións comerciais adoptaron esta denominación comercial.[7]
Unha passkey pódese gardar tanto en software coma en hardware: desde funcións do sistema como Windows Hello con recoñecemento biométrico,[31] xestores como Bitwarden,[32] ou dispositivos de hardware físico USB.[33] As chaves criptográficas só fican dispoñibles para o navegador web cando o usuario confirma a súa identidade no autenticador.
Cando Apple anunciou o seu soporte para passkeys en 2022,[34] xurdiu a idea errónea de que se trataba dunha tecnoloxía propietaria de dita compañía, malia ser un estándar aberto desenvolvido pola industria.[35]
Descrición xeral
[editar | editar a fonte]O funcionamento de WebAuthn involucra tres partes principais:[1]
- O sitio web (Relying Party ou parte receptora).
- O navegador web (WebAuthn Client).
- O autenticador (dispositivo físico ou compoñente de software compatible con FIDO2).
Nivel 3
[editar | editar a fonte]WebAuthn Nivel 3 introduce varias capacidades que van máis alá da simple autenticación. A extensión PRF (función pseudoaleatoria, Pseudo-Random Function) permite que unha passkey derive chaves de cifrado, o que facilita a protección de datos cifrados (tales como copias de seguridade) sen necesidade dun contrasinal independente.[36] As solicitudes de orixes relacionadas (Related Origin Requests, ROR) permiten usar unha única passkey en múltiples dominios que pertenzan á mesma organización, reducindo a necesidade de duplicar credenciais.[36]
A especificación tamén engadiu unha sección adicada ás implicacións para a privacidade do uso de credenciais WebAuthn entre distintas orixes, incluídos os riscos asociados cos iframes de orixe cruzada.[37]
Autenticación
[editar | editar a fonte]
O autenticador emprega criptografía de chave pública para asinar un desafío dixital dirixido ao sitio web. Ao requirir a confirmación mediante pegada dactilar, recoñecemento facial ou PIN, combínanse factores de seguridade: a posesión do dispositivo («algo que se ten») xunto co dato biométrico («algo que se é») ou o contrasinal curto («algo que se sabe»).
O sitio web solicita a autenticación ao navegador mediante código JavaScript, e o navegador comunícase directamente co autenticador (mediante o protocolo CTAP no caso de chaves externas conectadas por USB, Bluetooth ou NFC). Os datos biométricos fican sempre no dispositivo local e nunca se transmiten a través de Internet.[38]
Rexistro
[editar | editar a fonte]No momento en que o usuario vincula a súa chave ou dispositivo a unha conta, iníciase o proceso de rexistro: o dispositivo xera un par de chaves (pública e privada). A chave privada permanece gardada no dispositivo de forma segura, mentres que a chave pública envíase ao servidor web acompañada dun certificado de atestación dixital.[39] En sesións futuras, o servidor comprobará as sinaturas utilizando unicamente esa chave pública gardada.
Compatibilidade
[editar | editar a fonte]WebAuthn conta con compatibilidade nos principais navegadores modernos: Google Chrome, Mozilla Firefox, Microsoft Edge, Safari e Opera.[40] Servizos como Dropbox engadiron compatibilidade desde 2018,[41] e sistemas operativos móbiles e de escritorio incorporárono como estándar nativo.
Notas
[editar | editar a fonte]- 1 2 3 Balfanz, Dirk; Czeskis, Alexei; Hodges, Jeff; Jones, J.C.; Jones, Michael B.; Kumar, Akshay; Liao, Angelo; Lindemann, Rolf; Lundberg, Emil (eds.). "Web Authentication: An API for accessing Public Key Credentials Level 1". World Wide Web Consortium. Arquivado dende o orixinal o 14 March 2019. Consultado o 4 March 2019.
- ↑ "Web Authentication Working Group". World Wide Web Consortium. Arquivado dende o orixinal o 15 May 2016. Consultado o 2018-05-11.
- ↑ Strickland, Jonathan (18 March 2019). "What is WebAuthn". TechStuff. iHeartMedia. 20:35 No minuto. Arquivado dende o orixinal o 25 June 2021. Consultado o 20 March 2019.
- ↑ "White Paper: Multi-Device FIDO Credentials" (PDF). FIDO Alliance. March 2022. p. 6. Arquivado dende o orixinal (PDF) o 16 June 2024. Consultado o 20 May 2024.
- ↑ Brown, William (April 2024). "webauthn-rs docs". Docs.rs. Kanidm Identity Management Project. Arquivado dende o orixinal o 12 June 2025. Consultado o 3 July 2025.
- ↑ Langley, Adam (2024-12-23). "A Tour of WebAuthn". Imperial Violet. Consultado o 2025-08-13.
- 1 2 Goodin, Dan (30 December 2024). "Passkey technology is elegant, but it's most definitely not usable security". Ars Technica. Arquivado dende o orixinal o 3 July 2025. Consultado o 3 July 2025.
- ↑ "WebAuthn / CTAP: Modern Authentication" (PDF). World Wide Web Consortium. 10 December 2018. Arquivado dende o orixinal (PDF) o 4 December 2020. Consultado o 11 March 2019.
- ↑ "Will Passkeys Kill Password Managers?". Corbado (en inglés). 2023-06-01. Consultado o 2025-09-18.
- ↑ "WebAuthn Passkey QR Codes & Bluetooth: Hybrid Transport". Corbado (en inglés). 2023-11-08. Consultado o 2025-09-18.
- ↑ Kan, Michael (7 March 2019). "Google: Phishing Attacks That Can Beat Two-Factor Are on the Rise". PC Magazine. Arquivado dende o orixinal o 8 March 2019. Consultado o 8 March 2019.
- ↑ "Practical passwordless authentication comes a step closer with WebAuthn". Ars Technica (en inglés). 2018-04-10. Arquivado dende o orixinal o 1 January 2025. Consultado o 2024-10-16.
- ↑ "W3C and FIDO Alliance Finalize Web Standard for Secure, Passwordless Logins". World Wide Web Consortium. 4 March 2019. Arquivado dende o orixinal o 4 March 2019. Consultado o 4 March 2019.
- ↑ Balfanz, Dirk; Czeskis, Alexei; Hodges, Jeff; Jones, J.C.; Jones, Michael B.; Kumar, Akshay; Lindemann, Rolf; Lundberg, Emil, eds. (8 April 2021). "Web Authentication: An API for accessing Public Key Credentials Level 2". World Wide Web Consortium. Arquivado dende o orixinal o 4 June 2019. Consultado o 27 November 2022.
- ↑ "W3C Invites Implementations of Web Authentication: An API for accessing Public Key Credentials Level 3". World Wide Web Consortium. 13 January 2026. Consultado o 20 de setembro de 2026.
- ↑ "Updated Candidate Recommendation: Web Authentication: An API for accessing Public Key Credentials Level 3". World Wide Web Consortium. 26 May 2026. Consultado o 20 de setembro de 2026.
- ↑ "Proposed Advancement of Web Authentication: An API for accessing Public Key Credentials Level 3 to W3C Recommendation". World Wide Web Consortium. 20 July 2026. Consultado o 20 de setembro de 2026.
- ↑ Bonneau, Joseph; Herley, Cormac (2012). "The Quest to Replace Passwords: A Framework for Comparative Evaluation of Web Authentication Schemes". 2012 IEEE Symposium on Security and Privacy. pp. 553–567. doi:10.1109/SP.2012.44.
- ↑ Wang, Chun (2018-03-13). "The Next Domino to Fall: Empirical Analysis of User Passwords across Online Services". Proceedings of the Eighth ACM Conference on Data and Application Security and Privacy (en inglés). ACM. pp. 196–203. doi:10.1145/3176258.3176332.
- ↑ Mazurek, Michelle L. (2013). "Measuring password guessability for an entire university". Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security - CCS '13 (en inglés). ACM Press. pp. 173–186. doi:10.1145/2508859.2516726.
- ↑ Habib, Hana (2018). User behaviors and attitudes under password expiration policies. Fourteenth Symposium On Usable Privacy and Security (SOUPS 2018). USENIX Association. pp. 13–30.
- ↑ "Yubico Company Timeline". Yubico. Consultado o 2026-06-04.
- ↑ "FIDO Alliance Publishes Final FIDO 1.0 Specifications". Yubico. 2014-12-09. Consultado o 2026-06-04.
- ↑ "FIDO Complete Spec 2015-09-04" (PDF). FIDO Alliance. 2015-09-04. Consultado o 5 June 2026.
- ↑ Ghorbani Lyastani, Sanam (May 2020). "Is FIDO2 the Kingslayer of User Authentication? A Comparative Usability Study of FIDO2 Passwordless Authentication". 2020 IEEE Symposium on Security and Privacy (SP). IEEE. pp. 268–285. doi:10.1109/SP40000.2020.00047.
- ↑ "W3C Welcomes the FIDO 2.0 Member Submission". W3C. 2015-11-20. Consultado o 2026-06-05.
- ↑ "Web Authentication Working Group Charter". w3.org. Consultado o 2026-06-04.
- ↑ "Web Authentication API - Web APIs | MDN". MDN Web Docs. 2026-02-19. Consultado o 2026-06-04.
- ↑ Brown, William (April 2024). "webauthn-rs docs". Docs.rs. Kanidm Identity Management Project. Arquivado dende o orixinal o 12 June 2025. Consultado o 3 July 2025.
- ↑ Langley, Adam (2024-12-23). "A Tour of WebAuthn". Imperial Violet. Consultado o 2025-08-13.
- ↑ "Support for Passkeys in Windows". microsoft.com. Consultado o 2026-06-06.
- ↑ "Log In With Passkeys". Bitwarden. Consultado o 2026-06-06.
- ↑ "Stop changing weak passwords. Start replacing them with passkeys". PCWorld. Consultado o 2026-06-06.
- ↑ Clemons, Taylor (6 June 2022). "WWDC 2022: Apple announces Passkey feature to eliminate passwords across platforms". ZD Net. Arquivado dende o orixinal o 6 June 2023. Consultado o 4 July 2025.
- ↑ Shakir, Umar (6 August 2022). "Reminder: passkeys are not just from Apple". The Verge. Arquivado dende o orixinal o 24 September 2023. Consultado o 4 July 2025.
- 1 2 "What Is WebAuthn Level 3 & How Does Enpass Support It?". Enpass. 23 July 2026. Consultado o 20 August 2026.
- ↑ "[L3 REC] Transition Request Draft". w3c/webauthn. GitHub. Consultado o 20 August 2026.
- ↑ "Touch ID and Beyond: Duo's Plans for WebAuthn". Duo Security. 5 March 2019. Arquivado dende o orixinal o 21 March 2020. Consultado o 8 March 2019.
- ↑ "Attestation and Assertion - Web APIs". MDN Web Docs. 2025-05-28. Consultado o 2025-09-20.
- ↑ "Can I use Web Authentication API?". Arquivado dende o orixinal o 19 February 2018. Consultado o 7 March 2019.
- ↑ Girardeau, Brad (2018-05-08). "Introducing WebAuthn support for secure Dropbox sign in". Dropbox. Arquivado dende o orixinal o 12 May 2018. Consultado o 2018-05-11.