Passkeys: la contrasenya que no existeix

Publicat el per David Carrero

Totes les històries de contrasenyes acaben igual: algú tenia el teu secret guardat en algun lloc, i el va perdre.

Tant se val l’any. Al principi era en un fitxer de text pla d’un ordinador compartit i n’hi va haver prou de demanar-li al sistema que l’imprimís. El 1979, Morris i Thompson van explicar com salar i encarir el càlcul del hash perquè una llista robada no es convertís immediatament en una llista de contrasenyes, i això va ser una millora enorme. I després van arribar les regles de composició que ens van fer posar un símbol al final. Però la forma del problema no es va moure ni un mil·límetre en tot aquest temps: hi ha un secret, tu el saps, el servidor el pot comprovar i, per tant, el servidor té alguna cosa a perdre.

Tot el que hem fet des d’aleshores consisteix a fer aquest secret més llarg, més estrany, més salat, més lent de trencar. Ningú no es va plantejar la pregunta anterior: i si no hi hagués secret compartit?

1976 la idea que un secret pot tenir dues meitats

El 1976, Whitfield Diffie i Martin Hellman van publicar New Directions in Cryptography. La idea era gairebé insultant de tan simple: una clau es pot partir en dos trossos que no són intercanviables. Un el reparteixes als quatre vents; l’altre no surt de casa. El que signes amb la privada es verifica amb la pública, però la pública no serveix per signar res.

Torna-ho a llegir pensant en un servidor: el lloc ja no necessita guardar res amb què es pugui entrar. Només la meitat que no obre cap porta.

Que la idea trigués gairebé mig segle a arribar a la pantalla del teu banc no diu gaire a favor del nostre sector. Els certificats de client existien i funcionaven; el que no existia era una manera d’usar-los que no demanés un màster. La criptografia estava resolta. La usabilitat, no.

2013 algú es posa d’acord, per variar

El 2013 va néixer la FIDO Alliance, un consorci industrial amb un objectiu declarat i poc modest: reduir la dependència de les contrasenyes. L’important no va ser la tecnologia —aquesta ja hi era— sinó que fabricants, navegadors i serveis s’asseguessin a acordar un mateix protocol. Sona a burocràcia i era exactament el que faltava: un mecanisme d’autenticació que només funciona en un navegador i amb un servei no és un mecanisme, és una anècdota.

2019 el navegador aprèn a fer criptografia

Al març del 2019, WebAuthn es va convertir en recomanació del W3C. Dit clar i català: qualsevol pàgina ja podia demanar-li al navegador —amb una API estàndard, sense connectors ni controladors— que generés un parell de claus i signés amb ell.

El flux, sense adorns, és aquest. Quan et registres, el teu dispositiu crea un parell de claus nou, específic per a aquell lloc. Envia la pública. Es queda la privada, guardada pel dispositiu mateix i protegida per la teva empremta, la teva cara o el seu PIN. Quan hi tornes, el lloc t’envia un repte a l’atzar, el teu dispositiu el signa, i el lloc comprova la signatura amb la pública que ja tenia.

Fixa’t en el que no passa: no viatja cap secret. El servidor no ha tingut mai la teva clau privada, així que no la pot perdre. Si demà filtren la seva base de dades sencera, el que s’enduen és una llista de claus públiques —més o menys com robar la guia de telèfons—. No hi ha hashes per passar per una GPU ni diccionari per provar. No és que sigui difícil: és que allà no hi ha res que valgui.

L’efecte col·lateral és més gran que la idea

Quan el teu dispositiu crea aquell parell de claus, el lliga al domini. La clau que va guardar per a elteubanc.cat només s’ofereix a elteubanc.cat. No és una política, ni un advertiment, ni un avís vermell a la barra: és que la clau per a elteubanc0-seguretat.com no existeix. El navegador no la troba perquè no es va crear mai.

Això mata el phishing. No el redueix: el deixa sense mecanisme. Tot el negoci del phishing consisteix que tu pots teclejar la contrasenya al lloc equivocat, i fa anys que ho intentem arreglar amb formació d’usuaris i campanyes de conscienciació. Tot allò era tractar el símptoma. El teu ull es deixa enganyar per una URL semblant; el teu telèfon, no. No llegeix: compara cadenes.

De passada s’emporta per davant la reutilització, que era l’altre pecat capital. Cada lloc té el seu parell de claus. No hi ha res per reutilitzar ni que vulguis.

2022 els tres que manen signen la pau

Al maig del 2022, Apple, Google i Microsoft van anunciar conjuntament que ampliarien el suport de les credencials FIDO —les passkeys— a les seves plataformes i navegadors.

Això és el que va convertir això d’una nota tècnica en una cosa que li pots explicar a la teva mare. Fins aleshores, WebAuthn gairebé sempre volia dir una clau física USB: excel·lent, i per a tres persones. La passkey viu on ja tens el mòbil a la mà i es desbloqueja amb la cara.

El que no arregla

Ara la lletra petita, perquè el sector es passarà els pròxims anys fent veure que no hi és.

La recuperació continua sent el punt tou. El forat no ha desaparegut: s’ha mogut. Si perds el dispositiu, algú ha de decidir que ets tu, i aquesta decisió es pren gairebé sempre per correu, per SMS o parlant amb un humà d’un centre d’atenció telefònica. Aquell humà és exactament el mateix objectiu que abans. Has blindat la porta principal i la del darrere continua on era.

La sincronització et lliga a un ecosistema. Les passkeys són còmodes perquè la teva plataforma les replica entre els teus aparells. Que és una altra manera de dir que les teves claus viuen al clauer d’una empresa concreta. Sortir-ne no és impossible, però tampoc no és un botó. Has canviat el problema de recordar pel de pertànyer.

I encara necessites entrar si perds el mòbil. Cosa que a la pràctica vol dir que gairebé cap lloc no ha tret la contrasenya: l’ha amagada darrere d’un «Problemes per accedir?». Mentre existeixi aquest enllaç, existeix la contrasenya, i és tan dolenta com ho ha estat sempre. La cadena es trenca pel mètode més feble que acceptis, no pel més elegant que ofereixis.

Què fer mentrestant

Activa passkeys allà on te les ofereixin i comença pel que més fa mal si cau: el correu, el banc, el compte que uses per entrar a tots els altres. És de les poques millores de seguretat que a sobre et treu feina.

I no t’enganyis: continuaràs tenint contrasenyes durant anys, encara que sigui com a pla B. Que siguin llargues, diferents a cada lloc i que estiguin en un gestor. Si en vols una que no surti del teu cap, fes servir el generador; si vols saber si la que tens aguanta res, passa-la pel comprovador.

La vella pregunta del sentinella —ets dels nostres?— per fi té una resposta diferent. Durant dècades responíem dient una paraula que podien sentir. Ara responem amb una signatura que només pot fer el teu dispositiu, sense que la paraula arribi a existir. És la primera vegada que canviem la pregunta en lloc de la paraula.


Fonts: W. Diffie i M. Hellman, «New Directions in Cryptography», IEEE Transactions on Information Theory, 1976 · R. Morris i K. Thompson, «Password Security: A Case History», Communications of the ACM, 1979 · FIDO Alliance, constituïda el 2013 · «Web Authentication: An API for accessing Public Key Credentials», recomanació del W3C, març del 2019 · anunci conjunt d’Apple, Google i Microsoft sobre el suport de passkeys, maig del 2022.

← Tornar al blog