Saltar al contenido

Passkeys y FIDO2: el fin de la contraseña, explicado sin humo

    Passkeys y FIDO2:

    el fin de la contraseña, explicado sin humo

    Privacidad digital  |  unfantasmaenelsistema.com

    Durante 2025 casi todos los servicios grandes —Google, Apple, Microsoft, Amazon, PayPal, GitHub, WhatsApp— han empezado a ofrecerte que «crees una passkey» y dejes de usar la contraseña. El mensaje de marketing es siempre el mismo: «más rápido y más seguro». Y alrededor de ese mensaje se ha acumulado una capa espesa de confusión: que si es lo mismo que Face ID, que si Apple o Google se quedan con tu huella, que si te encierran en su ecosistema, que si pierdes el móvil y pierdes la cuenta.

    Este artículo desmonta esa confusión desde la base. Qué es realmente una passkey (una clave criptográfica, no una contraseña disfrazada), por qué resiste el phishing por diseño y no por buena voluntad, qué diferencia hay entre las passkeys que se sincronizan y las que viven en una llave física, y dónde sigue estando el eslabón débil que ninguna passkey arregla: la recuperación de la cuenta.

    Qué aprenderás en este artículo

    Cómo funciona un login con criptografía de clave pública, sin jerga · Por qué una passkey no se puede robar en una brecha del servidor ni caer en una web clon · La diferencia entre WebAuthn, CTAP, FIDO2 y passkey (y por qué se mezclan mal) · Passkeys sincronizadas vs. ligadas al dispositivo vs. llaves físicas FIDO2 · El problema real que queda abierto: la recuperación de cuenta

    1. El problema que las contraseñas nunca van a resolver

    Una contraseña es un secreto compartido: tú lo conoces y el servidor lo conoce (idealmente guardado como un hash, pero lo conoce). Ese modelo arrastra tres fallos que no se arreglan pidiéndote que la hagas más larga.

    • Se puede robar del servidor. Cada brecha de datos vuelca millones de hashes que luego se atacan offline con GPU. Si reutilizas contraseñas, una brecha en un foro cualquiera abre tu correo
    • Se puede pescar. Una web clon con un dominio parecido te pide la contraseña, tú la escribes, y el atacante la reenvía al sitio real en tiempo real. El segundo factor por SMS o por código TOTP también se reenvía en ese mismo instante
    • Depende de ti. El usuario medio gestiona cientos de cuentas. Sin un gestor, la única forma de sobrevivir es repetir o usar patrones débiles

    Los gestores de contraseñas mitigan mucho de esto (lo cubrimos en nuestro artículo dedicado), pero no cambian el modelo: sigue habiendo un secreto que viaja hasta un servidor y que, por tanto, se puede interceptar o filtrar. Las passkeys cambian el modelo entero.

    2. La idea de fondo: firmar un reto, no enviar un secreto

    Una passkey es un par de claves criptográficas generado en tu dispositivo. La clave privada nunca sale de ahí. La clave pública —que no sirve para suplantarte— se envía al servicio y se guarda junto a tu cuenta. Es criptografía asimétrica, la misma familia que sostiene HTTPS o las llaves SSH.

    2.1 Registro

    Cuando creas la passkey, tu dispositivo genera el par de claves específicamente para ese dominio (por ejemplo, para «github.com»), guarda la privada en su almacén seguro y entrega la pública al servidor. A partir de ahí el servidor tiene tu clave pública asociada a tu usuario, y nada más sensible.

    2.2 Inicio de sesión

    En cada login el servidor manda un reto: un número aleatorio de un solo uso. Tu dispositivo lo firma con la clave privada —después de que tú lo autorices con la huella, la cara o el PIN del dispositivo— y devuelve la firma. El servidor la verifica con la clave pública que ya tenía. Si cuadra, entras. En ningún momento viaja un secreto reutilizable por la red.

    Tu biometría no va a ninguna parte

    La huella o la cara solo sirven para desbloquear localmente el almacén de claves de tu dispositivo · El servicio nunca recibe datos biométricos: solo recibe una firma criptográfica · Puedes usar el PIN del dispositivo en lugar de biometría y el modelo de seguridad es el mismo

    3. Por qué resiste el phishing por diseño

    Esta es la propiedad que hace que las passkeys importen de verdad, y no es una promesa: es una consecuencia mecánica de cómo funcionan.

    Cuando el dispositivo crea la passkey la ata al origen (el dominio exacto: esquema, host y puerto). En el login, el navegador solo le ofrece al dispositivo las passkeys cuyo origen coincide con la página en la que estás. Si un atacante monta «g1thub-login.com», tu gestor de passkeys sencillamente no tiene ninguna clave para ese dominio y no hay nada que firmar. No es que el usuario «se dé cuenta»: es que no existe la opción de equivocarse.

    Además, la firma incluye datos del propio origen, así que un proxy que reenvíe la petición al sitio real (el ataque que rompe el 2FA tradicional) produce una firma que el servidor legítimo rechaza porque el origen no encaja.

    Método de login¿Resiste phishing?¿Resiste filtración del servidor?Portabilidad
    Contraseña solaNoNo (hash crackeable)Total (la sabes de memoria)
    Contraseña + OTP por SMSNo (se reenvía)ParcialAlta
    Contraseña + TOTP (app)No (se reenvía)ParcialMedia (semilla exportable)
    Passkey sincronizadaSí (origin binding)Sí (solo clave pública)Alta dentro del ecosistema
    Llave física FIDO2 (device-bound)SíSíBaja (llevas la llave encima)

    4. El vocabulario, ordenado

    Passkey, FIDO2, WebAuthn y CTAP se usan como sinónimos y no lo son. Es más fácil verlo como capas.

    • FIDO2 es el paraguas: el conjunto de estándares de la FIDO Alliance y el W3C para login sin contraseña con clave pública
    • WebAuthn es la API del navegador: lo que una web usa para pedirle al sistema «crea una credencial» o «firma este reto»
    • CTAP (Client to Authenticator Protocol) es cómo el navegador o el sistema habla con el autenticador externo —una llave USB, o tu teléfono actuando de llave por Bluetooth—
    • Passkey es el nombre comercial, acordado en 2022, para una credencial WebAuthn detectable (el sitio puede ofrecerte entrar sin que escribas primero el usuario). En la práctica: una credencial FIDO2 pensada para humanos, normalmente sincronizada

    Resumen de una frase

    Una passkey es una credencial FIDO2 · el navegador la maneja con WebAuthn · si el autenticador es externo, la conversación va por CTAP

    5. Sincronizadas vs. ligadas al dispositivo

    Aquí está la decisión práctica que tienes que entender antes de adoptarlas en serio.

    5.1 Passkeys sincronizadas

    Las que crean por defecto el llavero de iCloud, el Gestor de contraseñas de Google o un gestor como Bitwarden o 1Password. La clave privada se cifra de extremo a extremo y se replica entre tus dispositivos a través de la nube del proveedor. Ventaja: si cambias de móvil, tus passkeys aparecen solas. Inconveniente: la seguridad de todas ellas se apoya en la seguridad de esa cuenta de sincronización y de su proceso de recuperación. Y salir de un ecosistema a otro todavía es incómodo, aunque el estándar de exportación (FIDO Credential Exchange) ya está definido.

    5.2 Passkeys ligadas al dispositivo (device-bound)

    La clave privada no sale nunca de un hardware concreto: el chip seguro del portátil, o una llave física. No hay copia en la nube. Ventaja: superficie de ataque mínima, ideal para cuentas de alto valor. Inconveniente: si ese hardware se rompe o se pierde y no tenías una segunda credencial registrada, dependes por completo de la recuperación de cuenta del servicio.

    5.3 Llaves físicas FIDO2

    YubiKey, Nitrokey, Google Titan y similares. Son autenticadores device-bound en formato llavero USB-C/NFC. Se usan para las cuentas que de verdad no te puedes permitir perder (tu gestor de contraseñas, el correo principal, el registrador de tu dominio, cuentas de administración). Regla básica: compra siempre dos, registra ambas en cada cuenta crítica y guarda la segunda en otro sitio físico.

    # Passkey ligada a hardware FIDO2 para SSH (OpenSSH 8.2+)
    # La clave privada se queda dentro de la llave; el fichero del disco
    # es solo una referencia y no sirve de nada sin la llave presente.
    ssh-keygen -t ed25519-sk -O resident -C "llave-fido2-principal"
     
    # 'resident' = la credencial vive en la llave y puedes
    # recuperarla en otro equipo con:  ssh-keygen -K

    6. El eslabón débil que sigue ahí: la recuperación de cuenta

    Una passkey puede ser imposible de pescar y aún así tu cuenta puede caer si el procedimiento de «he perdido el acceso» es débil. Un atacante racional no ataca la criptografía: llama al soporte, o usa el correo de recuperación, o el SMS de respaldo.

    • Si tras poner una passkey dejas activo el «recibir un código por SMS» como alternativa, el atacante atacará el SMS (SIM swapping) y habrás ganado poco
    • El correo de recuperación es tan fuerte como el login de ese correo: protégelo también con passkey o llave física
    • Registra más de una passkey o llave por cuenta crítica, en dispositivos distintos, para no depender de la recuperación
    • Guarda los códigos de respaldo de un solo uso que el servicio te da al activar el método sin contraseña, en papel o en el gestor

    El error típico al migrar

    Añadir una passkey pero no revisar los métodos antiguos que quedan activos como alternativa · La cuenta acaba siendo tan segura como el más débil de todos ellos, no como la passkey · Repasa la sección de seguridad entera y elimina lo que ya no necesites

    7. Estado de adopción y limitaciones reales

    • Soporte de sistema operativo y navegadores: maduro en Windows, macOS, iOS, Android y los navegadores principales desde 2023-2024
    • Cobertura de servicios: creciente pero desigual; muchos sitios ofrecen passkey solo como segundo factor, no como sustituto pleno de la contraseña
    • Entornos compartidos y kioscos: iniciar sesión con passkey del teléfono en un equipo ajeno funciona vía código QR y Bluetooth, pero es más lento que teclear
    • Empresas: la gestión de passkeys en flotas grandes (altas, bajas, atestación del tipo de autenticador permitido) todavía está cuajando en las plataformas de identidad
    • Passkeys sincronizadas y cumplimiento: algunos marcos regulatorios exigen credenciales device-bound, donde la sincronización en la nube no encaja

    Recomendación práctica

    Empieza por tus cuentas ancla: correo principal, gestor de contraseñas y, si tienes, el registrador del dominio · Usa una llave física FIDO2 (dos, en realidad) para esas; passkeys sincronizadas del móvil o del gestor para el resto · No borres la contraseña hasta tener la recuperación resuelta y probada en un dispositivo secundario

    Conclusión

    Las passkeys no son «biometría para entrar más rápido» ni una contraseña con otro nombre. Son un cambio de modelo: se acaba el secreto compartido que se puede filtrar de un servidor o teclear en la web equivocada, y se sustituye por una firma criptográfica atada al dominio real. La resistencia al phishing no es una característica opcional que dependa de tu atención: es una consecuencia de cómo está construido el protocolo.

    Lo que las passkeys no arreglan solas es la recuperación de cuenta. Adoptarlas bien consiste tanto en crear la credencial como en cerrar las puertas traseras —SMS de respaldo, correos de recuperación mal protegidos, métodos antiguos olvidados— que un atacante usará precisamente porque la puerta principal ya no cede.

    Referencias

    passkeys.dev — Documentación técnica de referencia de la FIDO Alliance y el W3C · webauthn.io y webauthn.me — Demos interactivas para ver el registro y la firma paso a paso · fidoalliance.org — Especificaciones FIDO2 y CTAP, y directorio de productos certificados · Nuestro artículo sobre gestores de contraseñas, para el contexto de la transición

    unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

    Resumen de privacidad

    Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.