Web Authentication (WebAuthn) é un estándar web publicado polo World Wide Web Consortium (W3C). Define unha API que os sitios web empregan para autenticarse mediante credenciais WebAuthn (coñecidas comunmente como passkeys ou «chaves de acceso») 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. 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.
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. Os xestores de contrasinais tamén poden funcionar como autenticadores, a miúdo con sincronización na nube. 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.
Do mesmo xeito que o predecesor U2F, WebAuthn é resistente a certos ataques de phishing, 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. 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. A especificación de Nivel 3 progresou a través de varios borradores de Candidata a recomendación durante 2026, e en xullo de 2026 o W3C propuxo o seu avance a Recomendación definitiva.
Antecedentes O emprego dun nome de usuario e un contrasinal foi o mecanismo habitual para que os usuarios demostrasen perante un servizo quen eran. Porén, este método presenta vulnerabilidades coñecidas: os usuarios adoitan reutilizar contrasinais en diferentes servizos, escoller combinacións febles descifrables por forza bruta, ou anotalos de xeitos inseguros.
En 2012, Google xunto con Yubico comezaron a traballar nun estándar chamado Universal 2nd Factor (U2F) 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. En 2015 iniciouse o desenvolvemento de FIDO2 co gallo de solucionar as limitacións de U2F, xa que U2F aínda dependía dun contrasinal principal e non autenticaba a identidade física do usuario perante a propia chave.
En novembro de 2015 presentouse a proposta ao W3C, creándose o grupo de traballo correspondente para estandarizalo e integralo de xeito nativo nos navegadores web. O soporte nos navegadores estendeuse amplamente a partir de 2018 con Chrome 67, Firefox 60 e Safari 13.
A denominación «passkey»
miniatura|upright=1.2|Exemplo do uso de passkey como credencial WebAuthn en Bitwarden
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. A maioría das interfaces de usuario e aplicacións comerciais adoptaron esta denominación comercial.
Unha passkey pódese gardar tanto en software coma en hardware: desde funcións do sistema como Windows Hello con recoñecemento biométrico, xestores como Bitwarden, ou dispositivos de hardware físico USB. 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, 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.
Descrición xeral
O funcionamento de WebAuthn involucra tres partes principais:
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
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. 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.
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.
Autenticación
miniatura|upright=1.2|dereita|Fluxo habitual de autenticación en WebAuthn
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.
Rexistro
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. En sesións futuras, o servidor comprobará as sinaturas utilizando unicamente esa chave pública gardada.
Compatibilidade
WebAuthn conta con compatibilidade nos principais navegadores modernos: Google Chrome, Mozilla Firefox, Microsoft Edge, Safari e Opera. Servizos como Dropbox engadiron compatibilidade desde 2018, e sistemas operativos móbiles e de escritorio incorporárono como estándar nativo.
Notas
Véxase tamén Ligazóns externas Especificación oficial de Web Authentication no W3C Documentación sobre a API de Web Authentication en MDN
Categoría:Criptografía Categoría:Seguridade informática