Por qué se rompió el sueño de las Passkeys
El sueño
- En 2019, el autor comenzó a desarrollar una biblioteca de Webauthn para Rust
- En ese momento, había optimismo sobre que esta tecnología podría reemplazar las contraseñas
- Se esperaba que pudiera admitir autenticación de dos factores, autenticación sin contraseña y autenticación sin nombre de usuario
- La biblioteca desarrollada por el autor tuvo un gran impacto en la industria
Señales de advertencia
- Chrome domina el mercado, así que si Chrome no da soporte a algo, existe el problema de que quede fuera del estándar
- Authenticator Selection Extension es un ejemplo representativo
- También es problemático que las decisiones importantes se tomen en reuniones presenciales celebradas en Estados Unidos
- Esto deja fuera a participantes internacionales
La caída
- En 2022, Apple anunció las Passkeys
- Al principio parecían estar bien diseñadas, pero después, a raíz de una presentación del liderazgo, la Passkey pasó a definirse como una Resident Key
- Esto terminó excluyendo a las llaves de seguridad con poco espacio de almacenamiento
- Después de eso, la Passkey se desvirtuó y pasó a ser un medio para encerrar a los usuarios dentro de una plataforma
Empeora la situación
- Chrome y Safari fuerzan el uso de caBLE en lugar de llaves de seguridad
- Es un método con una usabilidad muy deficiente
- Android bloquea el uso de llaves de seguridad en sitios web compatibles con Passkey
- Los ejemplos para desarrolladores inducen a usar solo Google Passkey
- Los usuarios están teniendo muchas dificultades para usar Passkey
- Aparecen problemas como bugs, procesos complejos y pérdida de llaves
- Las Passkeys se eliminan con frecuencia de Apple Keychain
Perspectiva
- El autor prevé que Passkey fracasará para el consumidor general
- La búsqueda de beneficios por parte de las empresas deteriora la experiencia de usuario
- Incluso la pareja del autor dice que las contraseñas son mejores que Passkey
- En las empresas siguen siendo necesarias las llaves de seguridad, pero los problemas de usabilidad permanecen
- El autor planea seguir manteniendo el proyecto webauthn-rs, pero está buscando otras alternativas en lugar de Passkey
Opinión de GN⁺
- Es preocupante que Passkey esté avanzando en una dirección que excluye a las llaves de seguridad y profundiza la dependencia de la plataforma. Limitar la capacidad de elección del usuario no parece deseable.
- Parece necesario mejorar la usabilidad al mismo tiempo que se desarrolla la tecnología. No debería volverse excesivamente compleja ni demasiado restrictiva.
- También parece urgente resolver los problemas que surgen en el proceso de estandarización a medida que crece la influencia de unas pocas empresas. Haría falta una estructura de toma de decisiones más abierta y transparente.
- Como alternativas, los certificados de dispositivo o el enfoque con tarjetas inteligentes resultan interesantes. Podrían ser opciones para superar las limitaciones actuales de Passkey y, al mismo tiempo, mejorar la usabilidad.
- Dado que todavía estamos en una etapa de transición, parece necesario que continúe el desarrollo técnico y que se siga incorporando la retroalimentación de los usuarios. Ojalá distintos actores colaboren para construir un sistema de autenticación mejor.
3 comentarios
Se acerca un futuro sin contraseñas
Presentamos Passkey en Chrome
Comentarios en Hacker News
El mayor problema de las passkeys es que no se puede confiar en las empresas que las ofrecen. Están bloqueadas a la plataforma por razones de seguridad, pero muchas veces es difícil distinguir eso del vendor lock-in. Si creas una passkey en un dispositivo de Apple, nunca puede salir de ese dispositivo y no hay forma de cambiar eso. Eso protege contra el phishing, pero no sé qué pasaría si Apple borra la llave o si quisiera deshacerme de mi iPhone.
En las largas discusiones sobre passkeys se ve una evasión extraña de la parte de seguridad basada en "algo que sabes". En Estados Unidos, los tribunales y las fuerzas del orden pueden obtener legalmente nombres de usuario, huellas dactilares, escaneos de retina, Face ID y similares, pero no tienen derecho a extraer algo de tu cerebro. Las passkeys prefieren reemplazar "algo que sabes" por "algo que tienes", y eso suena a pesadilla de seguridad.
Opinión contraria: me encantan las passkeys. Uso el navegador Firefox y el gestor 1Password, y en iPhone uso 1Password + Firefox. Revisé passkeys.directory y cambié a passkeys los inicios de sesión de GitHub, Google, Microsoft y otros. Términos como "iniciar sesión con passkey" en lugar de "iniciar sesión con Touch ID" y similares son confusos. 1Password sincroniza las passkeys entre dispositivos. Si necesito iniciar sesión en una computadora pública puede ser incómodo, pero no me pasa muy seguido.
Sigo evitando las passkeys porque todavía no tienen un modelo mental claro. Ya uso contraseñas aleatorias generadas por mi gestor de contraseñas actual, así que no siento necesidad de cambiar. Entiendo nombre de usuario/correo + contraseña, pero recordando el dolor de las "contraseñas específicas de aplicación", me preocupa que algunas herramientas open source/CLI no se integren bien con las passkeys, así que mejor esperar a que la situación se estabilice.
Estoy totalmente metido en el ecosistema de Apple Keychain y tengo varios dispositivos Apple, así que las passkeys me parecen excelentes. Como desarrollador, veo todos los días las limitaciones del débil 2FA por SMS. Los usuarios pueden ser engañados fácilmente con ingeniería social para entregar sus códigos 2FA. Las passkeys ofrecen una solución más segura, así que los desarrolladores no tienen que preocuparse de que el usuario llame a soporte y lea el código en voz alta. Un SIM swap no compromete una passkey, y no puedes compartir una passkey con un estafador.
Como persona técnica, no me queda claro cómo funcionan las passkeys, por qué son mejores o incluso qué son exactamente. Si una función de seguridad no es tan simple como recordar nombre de usuario y contraseña y guardarlos en un lugar seguro, no va a funcionar. Se menciona una llave en el dispositivo, pero si uso tanto teléfono como PC, me pregunto cómo se accede, si al principio hace falta nombre de usuario/contraseña, o si se necesita una llave física que haya que conectar al dispositivo.
Usernameless parece una optimización excesiva. Que el usuario use un nombre de usuario al iniciar sesión es razonable y bueno. Le recuerda qué nombre de usuario está usando. Puede pasar que alguien acceda a un servicio con una passkey usernameless, luego la pierda por alguna razón y también olvide el nombre de usuario del servicio, quedándose sin poder iniciar el proceso de recuperación de cuenta.
Si no sabes cómo funcionan técnicamente las passkeys, vale la pena revisar esta guía de implementación: https://webauthn.guide/ No entiendo el rechazo hacia las passkeys. Pasar a desafíos de clave pública para autenticación es un gran avance para la seguridad web. Cada navegador/OS protege y respalda la clave privada. Aunque pierdas la llave, puedes restablecer las credenciales de autenticación usando el flujo de "olvidé mi contraseña".
Para considerar usar passkeys, se tendrían que cumplir estos requisitos:
No he comprobado si la implementación de WebAuthn en Firefox o Chrome sobre Linux cumple con estos requisitos.
He tratado de seguir la evolución del espacio de 2FA, y las passkeys fueron lo que más me confundió. Vi mucho hype de que las passkeys son la tecnología de próxima generación, pero fue difícil encontrar una explicación real de qué son y cómo funcionan. Al enterarme de que se trata de una llave almacenada en una security key, me decepcioné. Me gusta la idea de generar claves al vuelo con base en el nombre de dominio. La ventaja de las passkeys es que no tienes que recordar el nombre de usuario que usas en cada sitio web, pero eso me parece una ventaja menor.
Respuesta a una pregunta relacionada sobre cuál es el nombre oficial de la tecnología (¿basada en FIDO2? ¿basada en WebAuthn?) que calcula y reconstruye claves al vuelo con base en el nombre de dominio: la encontré en https://fy.blackhats.net.au/blog/… A una clave reconstruida al vuelo se le llama "non-resident credential".