Passkeys: la contraseña que no existe

Publicado el por David Carrero

Todas las historias de contraseñas terminan igual: alguien tenía tu secreto guardado en algún sitio, y lo perdió.

Da igual el año. Al principio estaba en un fichero de texto plano de un ordenador compartido y bastó con pedirle al sistema que lo imprimiera. En 1979, Morris y Thompson contaron cómo salar y encarecer el cálculo del hash para que una lista robada no se convirtiera de inmediato en una lista de contraseñas, que fue una mejora enorme. Y después llegaron las reglas de composición que nos hicieron poner un símbolo al final. Pero la forma del problema no se movió ni un milímetro en todo ese tiempo: hay un secreto, tú lo sabes, el servidor puede comprobarlo, y por tanto el servidor tiene algo que perder.

Todo lo que hemos hecho desde entonces consiste en hacer ese secreto más largo, más raro, más salado, más lento de romper. Nadie se planteó la pregunta anterior: ¿y si no hubiera secreto compartido?

1976 la idea de que un secreto puede tener dos mitades

En 1976, Whitfield Diffie y Martin Hellman publicaron New Directions in Cryptography. La idea era casi insultante de tan simple: una clave puede partirse en dos trozos que no son intercambiables. Uno lo repartes a los cuatro vientos; el otro no sale de tu casa. Lo que firmas con el privado se verifica con el público, pero el público no sirve para firmar nada.

Léelo otra vez pensando en un servidor: el sitio ya no necesita guardar algo con lo que se pueda entrar. Solo la mitad que no abre nada.

Que la idea tardara casi medio siglo en llegar a la pantalla de tu banco no dice mucho a favor de nuestro sector. Los certificados de cliente existían y funcionaban; lo que no existía era una forma de usarlos que no requiriera un máster. La criptografía estaba resuelta. La usabilidad, no.

2013 alguien se pone de acuerdo, para variar

En 2013 nació la FIDO Alliance, un consorcio industrial con un objetivo declarado y poco modesto: reducir la dependencia de las contraseñas. Lo importante no fue la tecnología —esa ya estaba— sino que fabricantes, navegadores y servicios se sentaran a acordar un mismo protocolo. Suena a burocracia y era exactamente lo que faltaba: un mecanismo de autenticación que solo funciona en un navegador y con un servicio no es un mecanismo, es una anécdota.

2019 el navegador aprende a hacer criptografía

En marzo de 2019, WebAuthn se convirtió en recomendación del W3C. En cristiano: cualquier página podía ya pedirle al navegador —con una API estándar, sin plugins ni drivers— que generara un par de claves y firmara con él.

El flujo, sin adornos, es este. Cuando te registras, tu dispositivo crea un par de claves nuevo, específico para ese sitio. Manda la pública. Se queda la privada, guardada por el propio dispositivo y protegida por tu huella, tu cara o su PIN. Cuando vuelves, el sitio te envía un reto al azar, tu dispositivo lo firma, y el sitio comprueba la firma con la pública que ya tenía.

Fíjate en lo que no ocurre: no viaja ningún secreto. El servidor nunca ha tenido tu clave privada, así que no puede perderla. Si mañana filtran su base de datos entera, lo que se llevan es una lista de claves públicas —más o menos como robar el listín de teléfonos—. No hay hashes que pasar por una GPU ni diccionario que probar. No es que sea difícil: es que ahí no hay nada que valga.

El efecto colateral es más grande que la idea

Cuando tu dispositivo crea ese par de claves, lo ata al dominio. La clave que guardó para tubanco.es solo se ofrece a tubanco.es. No es una política, ni una advertencia, ni un aviso rojo en la barra: es que la clave para tubanc0-seguridad.com no existe. El navegador no la encuentra porque nunca se creó.

Esto mata el phishing. No lo reduce: lo deja sin mecanismo. Todo el negocio del phishing consiste en que tú puedes teclear tu contraseña en el sitio equivocado, y llevamos años intentando arreglarlo con formación de usuarios y campañas de concienciación. Todo eso era tratar el síntoma. Tu ojo se deja engañar por una URL parecida; tu teléfono, no. No lee: compara cadenas.

De paso se lleva por delante la reutilización, que era el otro pecado capital. Cada sitio tiene su par de claves. No hay nada que reutilizar aunque quieras.

2022 los tres que mandan firman la paz

En mayo de 2022, Apple, Google y Microsoft anunciaron conjuntamente que ampliarían el soporte de las credenciales FIDO —las passkeys— en sus plataformas y navegadores.

Eso es lo que convirtió esto de una nota técnica en algo que le puedes explicar a tu madre. Hasta entonces, WebAuthn casi siempre significaba una llave física USB: excelente, y para tres personas. La passkey vive donde ya tienes el móvil en la mano y se desbloquea con la cara.

Lo que no arregla

Ahora la letra pequeña, porque el sector va a pasar los próximos años fingiendo que no existe.

La recuperación sigue siendo el punto blando. El hueco no ha desaparecido: se ha movido. Si pierdes el dispositivo, alguien tiene que decidir que eres tú, y esa decisión se toma casi siempre por correo, por SMS o hablando con un humano en un centro de llamadas. Ese humano es exactamente el mismo objetivo que antes. Has blindado la puerta principal y la trasera sigue donde estaba.

El sincronizado te ata a un ecosistema. Las passkeys son cómodas porque tu plataforma las replica entre tus aparatos. Que es otra forma de decir que tus llaves viven en el llavero de una empresa concreta. Salir de ahí no es imposible, pero tampoco es un botón. Cambiaste el problema de recordar por el de pertenecer.

Y sigues necesitando entrar si pierdes el móvil. Lo que en la práctica significa que casi ningún sitio ha quitado la contraseña: la ha escondido detrás de un «¿problemas para acceder?». Mientras exista ese enlace, existe la contraseña, y es tan mala como siempre fue. La cadena se rompe por el método más débil que aceptes, no por el más elegante que ofrezcas.

Qué hacer mientras tanto

Activa passkeys donde te las ofrezcan y empieza por lo que más duele si cae: el correo, el banco, la cuenta que usas para entrar en las demás. Es de las pocas mejoras de seguridad que además te quita trabajo.

Y no te engañes: vas a seguir teniendo contraseñas durante años, aunque sea como plan B. Que sean largas, distintas en cada sitio y estén en un gestor. Si quieres una que no salga de tu cabeza, usa el generador; si quieres saber si la que tienes aguanta algo, pásala por el comprobador.

La vieja pregunta del centinela —¿eres de los nuestros?— por fin tiene una respuesta distinta. Durante décadas contestamos diciendo una palabra que podían escuchar. Ahora contestamos con una firma que solo puede hacer tu dispositivo, sin que la palabra llegue a existir. Es la primera vez que cambiamos la pregunta en lugar de la palabra.


Fuentes: W. Diffie y M. Hellman, «New Directions in Cryptography», IEEE Transactions on Information Theory, 1976 · R. Morris y K. Thompson, «Password Security: A Case History», Communications of the ACM, 1979 · FIDO Alliance, constituida en 2013 · «Web Authentication: An API for accessing Public Key Credentials», recomendación del W3C, marzo de 2019 · anuncio conjunto de Apple, Google y Microsoft sobre el soporte de passkeys, mayo de 2022.

← Volver al blog