L'autenticació web (WebAuthn) és un estàndard web publicat pel World Wide Web Consortium (W3C).[1][2][3] Defineix una API que els llo
| Tipus | API web |
|---|---|
| Ús | key attestation (en) |
| Característiques tècniques | |
| Utilitza | criptografia de clau pública |
L'autenticació web (WebAuthn) és un estàndard web publicat pel World Wide Web Consortium (W3C).[1][2][3] Defineix una API que els llocs web utilitzen per autenticar-se amb credencials WebAuthn (passkeys)[4][5] 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.[6] 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.[7]
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.[8] Els gestors de contrasenyes també es poden utilitzar com a autenticadors, sovint amb sincronització al núvol.[9] 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[10] 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.[11] 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.[1][12][13] Una especificació de nivell 3 és actualment un Primer Esborrany Públic de Treball (FPWD).[14] WebAuthn és un component central del Projecte FIDO2 sota la direcció de la FIDO Alliance.[15]
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.[16] Depenent de les capacitats de l'autenticador, això pot ser:[17]
Independentment del mode, l'autenticador mai comparteix els seus secrets o dades biomètriques amb el lloc web.[18] 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.
El W3C va dissenyar i estandarditzar WebAuthn per resoldre o mitigar molts problemes inherents a l'autenticació tradicional basada en contrasenya:

Clau d'accés és el terme no tècnic de facto per a una credencial WebAuthn.[5][6] La majoria d'interfícies d'usuari que admeten WebAuthn només utilitzen clau d'accés per referir-se a les credencials WebAuthn.[7]
Quan Apple va introduir per primera vegada les claus d'accés al públic el 2022,[19] 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.[20] 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.[5] Aquesta definició cobreix la major part del que els diferents proveïdors es refereixen i accepten com a claus d'accés.
Igual que el seu predecessor FIDO U2F, l'autenticació web del W3C (WebAuthn) implica un lloc web, un navegador web i un autenticador:[1]
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.

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.

Per iniciar el flux d'autenticació WebAuthn,[21] 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[22] 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[23] i el sistema operatiu Android.[24]
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í.[25][26]
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[21] 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.[27]
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.[28]
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.

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.[1][12][29] WebAuthn és compatible amb Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari[12] i Opera.[30]
La versió d'escriptori de Google Chrome admet WebAuthn des de la versió 67.[31] Firefox, que no era completament compatible amb l'estàndard FIDO U2F anterior, va incloure i habilitar WebAuthn a la versió 60 de Firefox, publicada el 9 de maig de 2018.[32] Una versió inicial de Windows Insider de Microsoft Edge (Build 17682) va implementar una versió de WebAuthn que funciona tant amb Windows Hello com amb claus de seguretat externes.[33]
Les claus de seguretat FIDO U2F existents són en gran manera compatibles amb l'estàndard WebAuthn, tot i que WebAuthn ha afegit la capacitat de fer referència a un identificador únic de "contacte d'usuari" per compte, que els autenticadors antics no poden emmagatzemar.[1]
Un dels primers autenticadors compatibles amb FIDO2 va ser la clau de seguretat de segona generació de Yubico, anunciada el 10 d'abril de 2018.[34] El primer autenticador compatible amb FIDO2 amb pantalla va ser el Trezor Model T de SatoshiLabs, anunciat el 6 de novembre de 2019.[35] El Trezor Model T també va ser el primer autenticador que va permetre als usuaris seleccionar quina credencial de resident de FIDO2 s'havia d'utilitzar directament en un dispositiu.
La primera clau FIDO2 certificada de nivell de seguretat 2, anomenada "Goldengate", va ser anunciada un any després per eWBM el 8 d'abril de 2019.[36][37]
Dropbox va anunciar la compatibilitat amb els inicis de sessió WebAuthn (com a segon factor) el 8 de maig de 2018.[38]
Apple va anunciar que Face ID o Touch ID es podria utilitzar com a autenticador de plataforma WebAuthn amb Safari el 24 de juny de 2020.[39]
Diversos gestors de contrasenyes com ara Bitwarden i Dashlane admeten WebAuthn.[40][41]
WebAuthn implementa una extensió de l'API de gestió de credencials més general del W3C, que intenta formalitzar la interacció entre llocs web i navegadors web quan s'intercanvien credencials d'usuari. L'API d'autenticació web[42][43] estén els mètodes JavaScript navigator.credentials.create() i navigator.credentials.get() de gestió de credencials perquè acceptin un paràmetre publicKey. El mètode create() s'utilitza per registrar autenticadors de clau pública com a part de l'associació amb comptes d'usuari (possiblement en el moment de la creació inicial del compte, però més probablement quan s'afegeix un nou dispositiu de seguretat a un compte existent), mentre que el mètode get() s'utilitza per a l'autenticació (com ara en iniciar la sessió).
Per comprovar si un navegador admet WebAuthn, els scripts han de comprovar si la interfície window. està definida. A més de PublicKeyCredential, l'estàndard també defineix les interfícies AuthenticatorResponse, AuthenticatorAttestationResponse i AuthenticatorAssertionResponse PublicKeyCredential a més d'una varietat de diccionaris i altres tipus de dades.
L'API no permet l'accés directe ni la manipulació de claus privades, més enllà de sol·licitar-ne la creació inicial.
A l'agost de 2018, Paragon Initiative Enterprises va dur a terme una auditoria de seguretat de l'estàndard WebAuthn. Tot i que no van trobar cap vulnerabilitat específica, van revelar algunes debilitats greus en la manera com s'utilitza i s'imposa la criptografia subjacent a l'estàndard.[44]
Els principals punts de crítica giren al voltant de dos possibles problemes que eren problemàtics en altres sistemes criptogràfics en el passat i, per tant, s'haurien d'evitar per no ser víctimes del mateix tipus d'atacs:
Paragon Initiative Enterprises també va criticar com es va desenvolupar inicialment l'estàndard, ja que la proposta no es va fer pública amb antelació i no es va demanar suggeriments ni comentaris als criptògrafs experimentats. Per tant, l'estàndard no va ser objecte d'una àmplia investigació criptogràfica per part del món acadèmic.
Malgrat aquestes deficiències, Paragon Initiative Enterprises encara anima els usuaris a continuar utilitzant WebAuthn, però ha elaborat algunes recomanacions per a possibles implementadors i desenvolupadors de l'estàndard que esperen que es puguin implementar abans que l'estàndard estigui finalitzat. Evitar aquests errors el més aviat possible protegiria la indústria de qualsevol repte que introdueixin estàndards incomplits i la necessitat de compatibilitat amb versions anteriors.
L'ECDAA només es va dissenyar per utilitzar-se en combinació amb l'attestació del dispositiu. Aquesta característica particular de WebAuthn no és necessàriament necessària perquè l'autenticació funcioni. Les implementacions actuals permeten a l'usuari decidir si s'envia una declaració d'atestació durant la cerimònia de registre. Independentment, les parts que confien en el protocol poden optar per exigir l'atestació o no. L'ECDAA es va eliminar del nivell 2 de WebAuthn, ja que no estava implementat pels navegadors ni per les parts que confien en el protocol.[46]
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.