L'autenticació web (WebAuthn) és un estàndard web publicat pel World Wide Web Consortium (W3C). Defineix una API que els llocs web utilitzen per autenticar-se amb credencials WebAuthn (passkeys) i descriu el que haurien de fer els autenticadors WebAuthn. Resol molts dels problemes de l'autenticació tradicional basada en contrasenyes verificant la identitat de l'usuari amb signatures digitals. Tot i que WebAuthn sovint es promociona com un substitut complet de les contrasenyes, la majoria de llocs web que l'implementen continuen utilitzant contrasenyes d'alguna manera.

Per utilitzar WebAuthn, els usuaris necessiten un autenticador compatible. L'estàndard no especifica com emmagatzemar les claus necessàries per signar, de manera que es poden utilitzar diversos tipus d'autenticadors. El tipus d'autenticador més comú és un autenticador de plataforma, que està integrat al sistema operatiu del dispositiu. Els autenticadors de plataforma comuns inclouen Android, Apple Keychain i Windows Hello. Aquests utilitzen funcions de seguretat de maquinari (com ara TEE i TPM) i sovint sincronitzen les credencials entre dispositius per facilitar-ne l'ús. Un altre tipus d'autenticador comú és un autenticador roaming, on un dispositiu de maquinari separat autentica l'usuari connectant-se per USB, Bluetooth Low Energy o comunicacions de camp proper (NFC). La majoria dels telèfons intel·ligents es poden utilitzar com a autenticadors roaming i també s'utilitzen claus de seguretat físiques dedicades. WebAuthn és efectivament compatible amb versions anteriors de FIDO Universal 2nd Factor (U2F), ja que tots dos utilitzen el protocol CTAP. Els gestors de contrasenyes també es poden utilitzar com a autenticadors, sovint amb sincronització al núvol. Quan la sincronització de credencials no és viable o possible, es pot utilitzar WebAuthn Hybrid Transport per accedir a les credencials emmagatzemades en un altre autenticador, com ara un telèfon intel·ligent.

Igual que l'U2F antic, WebAuthn és resistent a alguns atacs de phishing ja que l'autenticador només ofereix credencials que es van registrar al mateix lloc web. Tanmateix, a diferència d'U2F, WebAuthn es pot implementar sense contrasenya. A més, un autenticador de maquinari mòbil resisteix el programari maliciós, ja que les claus s'emmagatzemen en un dispositiu separat, cosa que impedeix que el programari maliciós hi accedeixi directament.

El nivell d'autorització web Els estàndards 1 i 2 es van publicar com a Recomanacions del W3C el 4 de març de 2019 i el 8 d'abril de 2021, respectivament. Una especificació de nivell 3 és actualment un Primer Esborrany Públic de Treball (FPWD). WebAuthn és un component central del Projecte FIDO2 sota la direcció de la FIDO Alliance.

Rerefons FIDO2 és el successor de FIDO Universal 2nd Factor (U2F). Mentre que U2F només admet el mode multifactor, havent estat dissenyat per enfortir els fluxos d'inici de sessió basats en nom d'usuari/contrasenya existents, FIDO2 afegeix compatibilitat amb el mode d'un sol factor. En el mode multifactor, l'autenticador s'activa mitjançant una prova de presència de l'usuari, que normalment consisteix en prémer un botó; no cal cap contrasenya. En el mode d'un sol factor, l'autenticador ( alguna cosa que tens) realitza la verificació de l'usuari. Depenent de les capacitats de l'autenticador, això pot ser:

alguna cosa que coneixes: un secret com ara un PIN, un codi d'accés o un patró de lliscament alguna cosa que ets: una dada biomètrica com ara l'empremta digital, la cara, l'iris o la veu

Independentment del mode, l'autenticador mai comparteix els seus secrets o dades biomètriques amb el lloc web. A més, el secret o la biometria d'un sol usuari funciona amb tots els llocs web, ja que l'autenticador selecciona el material de clau criptogràfica correcte per utilitzar per al servei que sol·licita l'autenticació després que la verificació de l'usuari s'hagi completat correctament.

Un secret i una dada biomètrica a l'autenticador es poden utilitzar junts, de manera similar a com s'utilitzarien en un telèfon intel·ligent. Per exemple, una empremta digital proporciona un accés convenient al telèfon intel·ligent de l'usuari, però de vegades l'accés amb empremta digital falla, en aquest cas l'usuari pot utilitzar un PIN.

Raons per al seu disseny i estandardització El W3C va dissenyar i estandarditzar WebAuthn per resoldre o mitigar molts problemes inherents a l'autenticació tradicional basada en contrasenya:

Generació i emmagatzematge segurs de credencials: WebAuthn genera credencials úniques per a cada lloc web mitjançant algoritmes robustos i les emmagatzema de manera segura en autenticadors de confiança. Això elimina vulnerabilitats comunes com ara: Contrasenyes febles que es poden forçar fàcilment a causa d'una longitud insuficient. Contrasenyes predictibles i vulnerables a atacs de diccionari (per exemple, "contrasenya", "12345678"). Contrasenyes endevinables basades en informació personal (per exemple, dates de naixement, adreces). Emmagatzematge deficient de contrasenyes al costat del client (per exemple, escrites, emmagatzemades als contactes del telèfon). Reutilització de contrasenyes en diversos llocs web, ja que les credencials de WebAuthn són específiques per a llocs web individuals per disseny. Requisits de contrasenya inadequats imposats pel servidor (per exemple, criteris massa laxos o restrictius, límits de longitud màxima arbitraris, jocs de caràcters limitats). Restriccions que impedeixen les funcions d'emplenament automàtic del gestor de contrasenyes. Sense emmagatzematge de credencials al servidor: la part privada d'una credencial no s'emmagatzema mai en un servidor, cosa que elimina riscos i vulnerabilitats com ara: Emmagatzematge de contrasenyes insegur en bases de dades (per exemple, text sense format o basant-se en algoritmes/construccions febles basats en hash). Filtracions de bases de dades que exposen contrasenyes. Canvis de contrasenya obligatoris i ineficaços periòdics. Credencials úniques per a cada lloc web: WebAuthn garanteix que les credencials siguin úniques per a cada lloc web, eliminant els riscos i vulnerabilitats següents: Atacs de farciment de credencials, on els atacants utilitzen credencials d'una filtració de dades en diversos llocs. Atacs de phishing, ja que les credencials no es poden reutilitzar ni aplicar malament a diferents llocs web.

Marca amb clau d'accés miniatura|Aquí es mostra l'ús de la clau d'accés com a terme per referir-se a les credencials WebAuthn (Bitwarden per a Pixiv) Clau d'accés és el terme no tècnic de facto per a una credencial WebAuthn. La majoria d'interfícies d'usuari que admeten WebAuthn només utilitzen clau d'accés per referir-se a les credencials WebAuthn.

Quan Apple va introduir per primera vegada les claus d'accés al públic el 2022, van emfatitzar les seves integracions de plataforma pròpies. Això, combinat amb la manca d'una comunicació clara d'altres líders de la indústria, va portar alguns a especular que les claus d'accés eren propietat d'Apple, cosa que no era el cas. A mesura que els navegadors i els llocs web van començar a implementar WebAuthn, els conjunts de funcions inconsistents van donar lloc a una varietat d'interpretacions del que es comptava exactament com a clau d'accés. Algunes persones van assumir que una clau d'accés requeria una gestió per part d'un autenticador de plataforma o que necessitava sincronització mitjançant el núvol. Una definició millor és que una clau d'accés és qualsevol credencial WebAuthn gestionada per qualsevol autenticador WebAuthn. Aquesta definició cobreix la major part del que els diferents proveïdors es refereixen i accepten com a claus d'accés.

Visió general Igual que el seu predecessor FIDO U2F, l'autenticació web del W3C (WebAuthn) implica un lloc web, un navegador web i un autenticador:

El lloc web és una part de confiança conforme a WebAuthn El navegador és un client WebAuthn conforme. L'autenticador és un autenticador FIDO2, és a dir, se suposa que és compatible amb el client WebAuthn.

WebAuthn especifica com un reclamant demostra la possessió i el control d'un autenticador FIDO2 a un verificador anomenat WebAuthn Relying Part. El procés d'autenticació està mediat per una entitat anomenada WebAuthn Client, que és poc més que un navegador web conforme.

Autenticació class=skin-invert|miniatura|Un flux típic d'autenticació web (WebAuthn) L'autenticador és un autenticador criptogràfic multifactor que utilitza criptografia de clau pública per signar una asserció d'autenticació dirigida a la part que confia en WebAuthn. Suposant que l'autenticador utilitza un reconeixement facial, una empremta digital o un PIN per a la verificació de l'usuari, l'autenticador en si és quelcom que teniu, mentre que el reconeixement facial i l'empremta digital (biomètrica) són quelcom que sou i el PIN és quelcom que coneixeu. miniatura|Exemple d'autenticació WebAuthn amb Android Credential Manager Per iniciar el flux d'autenticació WebAuthn, la part de confiança WebAuthn indica les seves intencions al client WebAuthn (és a dir, al navegador) mitjançant JavaScript. El client WebAuthn es comunica amb l'autenticador mitjançant una API de JavaScript implementada al navegador. Un autenticador roaming s'ajusta al protocol CTAP (Client to Authenticator Protocol) de FIDO Client to Authenticator Protocol i es connecta mitjançant USB, Bluetooth Low Energy o comunicacions de camp proper (NFC).

WebAuthn no requereix estrictament un autenticador de maquinari itinerant. Alternativament, es pot utilitzar un autenticador de programari (per exemple, implementat en un telèfon intel·ligent) o un autenticador de plataforma (és a dir, un autenticador implementat directament al dispositiu client WebAuthn). Exemples rellevants d'autenticadors de plataforma inclouen Windows Hello i el sistema operatiu Android.

El transport híbrid WebAuthn permet que el client WebAuthn accedeixi a les credencials emmagatzemades en un altre autenticador, com ara un telèfon intel·ligent, cosa que és útil en determinades situacions on la sincronització de credencials no és viable.

Hi ha un malentès persistent entre els usuaris que les dades biomètriques es transmeten a través de la xarxa de la mateixa manera que les contrasenyes, cosa que no és així.

Registre Quan la part de confiança de WebAuthn rep l'asserció d'autenticació signada del navegador, la signatura digital de l'asserció es verifica mitjançant una clau pública de confiança per a l'usuari.

Per obtenir una clau pública per a l'usuari, la part de confiança de WebAuthn inicia un flux de registre WebAuthn similar al flux d'autenticació il·lustrat anteriorment. La diferència principal és que l'autenticador ara signa una declaració d'atestat amb la seva clau privada d'atestat. La declaració d'atestat signada conté una còpia de la clau pública que la part de confiança de WebAuthn utilitza finalment per verificar una afirmació d'autenticació signada. El certificat d'atestat conté metadades que descriuen l'autenticador en si.

La signatura digital de la declaració d'atestat es verifica amb la clau pública d'atestat de confiança per a aquest model d'autenticador en particular. No s'especifica com la part de confiança de WebAuthn obté el seu magatzem de claus públiques d'atestat de confiança. Una opció és utilitzar el servei de metadades FIDO.

El tipus d'atestat especificat al JavaScript determina el model de confiança. Per exemple, es pot desitjar un tipus d'atestat anomenat autoatestat, per al qual el model de confiança és essencialment confiança en el primer ús.

Suport miniatura|Exemple de clau d'accés WebAuthn com a part del gestor de contrasenyes Bitwarden El nivell d'autorització web 1 estàndard va ser publicat com a Recomanació del W3C pel Grup de Treball d'Autenticació Web el 4 de març de 2019. WebAuthn és compatible amb Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari i Opera.