Passkey ¿qué es y en qué se diferencia de una password?

18min

¿Qué pensarías si te decimos que las contraseñas tienen los días contados? Quizás sea mucho aventurarse, y es que se usan en tantos y tantos servicios que es difícil que desaparezcan a medio plazo, sin embargo, es innegable que existen opciones mejores. Una de ellas, las passkeys, que nos ofrecen muchas ventajas. Te explicamos ntenderás qué problemas tienen las contraseñas y por qué la industria tecnológica está impulsando un cambio de paradigma con el uso de passkeys.

Índice

¿Qué es una passkey?

En el mundo de la seguridad en muchas ocasiones se utiliza un mecanismo de autenticación basado en llaves. En este mecanismo existe una llave pública y una llave privada. Ambas son cadenas criptográficas que encajan entre sí y que permiten realizar los procesos de autenticación de una manera segura.

Una passkey se basa en ese mecanismo de autenticación basado en criptografía de clave pública y privada. Con ello se sustituye a las contraseñas tradicionales, eliminando fricción para el usuario y la necesidad de recordar y usar su clave en el acceso a cada servicio. Entonces, en lugar de depender de una cadena de texto que el usuario debe recordar, las passkeys utilizan archivos criptográficos, los cuales permiten realizar el proceso de autenticación. La clave privada permanece segura en el dispositivo del usuario y una clave pública asociada a esa clave privada se registra en el servicio al que se accede.

Si tienes idea de administración de servidores habrás oído hablar de las llaves SSH. Pues bien, las passkeys son bastante parecidas, solo que en este caso las gestiona el navegador sin que tú tengas que proporcionarlas de manera explícita al autenticarte en los distintos servicios web. De hecho, tu clave privada permanece en el dispositivo sin que tengas que enviarla a través de la red, lo que reduce drásticamente las superficies de ataque habituales.

Las passkeys forman parte de estándares como FIDO2 y WebAuthn que están impulsados por varias organizaciones, incluida la W3C.

Passkey vs. password

Quizás, la más fácil de entender la potencia de las passkeys es diferenciarla de las claves tradicionales que utilizamos mayoritariamente a día de hoy para autenticarnos.

Criptografía asimétrica de claves frente a cadenas de texto memorizadas

Cuando trabajamos con claves tradicionales, éstas son compartidas tanto por el usuario como por el servidor. Es cierto que el servidor las almacena de manera encriptada, dificultando la posibilidad de obtener la clave a partir del hash almacenado, pero sigue siendo información compartida tanto en el usuario como el servidor.

Sin embargo, al usar passkeys lo que se almacena en los servidores es una firma criptográfica mucho más compleja, la llave pública, que no tiene nada que ver con la clave privada que nosotros usamos para autenticarnos. Técnicamente se llama a esto criptografía asimétrica, ya que la clave pública y privada son totalmente diferentes. Nuestra clave privada nunca abandona el dispositivo y desde la clave pública es literalmente imposible conseguir la clave privada. Esto hace que los riesgos de almacenar esa clave en un servidor sean mucho menores.

Inmunidad absoluta ante phishing frente a la vulnerabilidad de las credenciales

Uno de los ataques más habituales en la actualidad es el conocido phishing, en el que el atacante simula ser un servicio, esperando que el usuario introduzca su información de autenticación, de modo que en lugar de autenticarse lo que está haciendo es entregar la clave a los atacantes.

Los ataques de phishing son cada vez más sofisticados y usan lo que se llama ingeniería social para hacerse más efectivos. En este sentido las contraseñas son muy vulnerables y pueden ser fácilmente robadas mediante phishing y, sin embargo, este ataque resulta completamente inofensivo con passkeys. Para empezar porque las passkeys están vinculadas al dominio del servicio, de modo que el navegador o sistema operativo solo permite su uso en el sitio legítimo. Esto hace que el phishing sea ineficaz.

Autenticación local mediante biometría frente a la validación remota en servidores

Las passkeys además introducen autenticación local, donde el usuario debe desbloquear el acceso mediante biometría o PIN en su dispositivo. Solamente se desbloquean después de que se firma el desafío criptográfico, algo que se hace en el propio dispositivo que usamos para acceder al servicio. Por tanto, la passkey no sale de tu dispositivo, y con ello no se exponen datos sensibles.

Seguridad de doble factor integrada frente a la necesidad de códigos SMS o apps OTP

Para mejorar la seguridad de las claves actualmente se suelen complementar con un segundo factor de autenticación, como códigos SMS, claves enviadas por correo o aplicaciones OTP. Esto hace que el uso de contraseñas sea más seguro, pero también introduce pasos extra en la verificación de los usuarios que nos hacen perder tiempo.

En cambio, las passkeys nos dispensarán de usar esos dobles factores de autenticación, ya que integran de forma nativa con las verificaciones que el propio dispositivo puede realizar. Tu passkey almacenada en el dispositivo siempre se debe desbloquear con alguna verificación extra, ya sea la biometría o un PIN.

Resistencia a filtraciones masivas de datos frente al riesgo de reutilización de claves

Cuando un servidor se ve comprometido pueden ocurrir filtraciones de bases de datos de contraseñas, que aún estando encriptadas pueden resultar útiles para los atacantes. En cambio, cuando usamos passkeys, incluso si un servicio sufre un ataque, los atacantes no conseguirán más que claves públicas que no permiten autenticarse en el servicio u obtener las claves privadas a través de ellas.

Además, como cada passkey es única en ese servicio, no les sirve para poder acceder mediante esa clave a otros servicios.

Implementación de passkeys en los grandes ecosistemas de software

A día de hoy las passkeys ya están siendo usadas en muchas plataformas y nos permiten autenticarnos solo con la biometría. Vamos a ver cómo va la implantación en varios ecosistemas de software.

Despliegue de llaves de acceso en servicios de Google y sincronización en la nube

Google ya usa passkeys en sus servicios principales, permitiendo a los usuarios iniciar sesión sin contraseña. Esto se hace de manera natural en tu dispositivo y además las claves se sincronizan mediante la cuenta de Google, facilitando su disponibilidad allá donde tengas la cuenta activa.

Integración en la infraestructura de Apple a través de iCloud Keychain

Apple también usa el sistema de passkeys en iCloud Keychain y aplicaciones como la App de Contraseñas, permitiendo su sincronización automática entre dispositivos Apple. Igualmente, la experiencia es completamente transparente para el usuario, aprovechando los mecanismos como Face ID o Touch ID de sus dispositivos modernos para validarlas.

Adopción del estándar en el ecosistema corporativo y residencial de Microsoft

Por su parte, Microsoft también ha integrado passkeys en Windows y sus servicios online, apoyándose en Windows Hello, aplicando PIN o autenticación biométrica en los ordenadores donde está disponible. Incluso se encuentran disponibles en entornos corporativos que usan tecnologías Microsoft.

Incorporación del método de inicio de sesión en plataformas globales de eCommerce

Las grandes plataformas de comercio electrónico están adoptando passkeys y eso les permite eliminar fricción con los usuarios y reducir fraudes.

Por ejemplo Google recoge casos de éxito donde el más conocido es el sitio de KAYAK, donde dice que se redujo al 50% el tiempo necesario para hacer login. Con ello no solo se consigue mejor experiencia de usuario, sino que se mejora la conversión.

Soporte nativo en aplicaciones de entretenimiento, redes sociales y banca digital

Servicios de streaming, redes sociales y aplicaciones bancarias están incorporando passkeys como método principal de autenticación. Algunas de las empresas que han mencionado que están aceptando passkeys son ABANCA o Revolut.

Configuración práctica en sistemas operativos y dispositivos móviles

Vamos a ver cómo puedes activar las llaves de acceso en distintos tipos de dispositivos, a través de las correspondientes aplicaciones que nos ofrecen para ello.

Activación paso a paso de llaves de acceso en smartphones y tabletas Android

En Android, las passkeys se gestionan a través de la app Google Password Manager. Usa la cuenta de Google que tienes asociada a tu teléfono y tus llaves de acceso se almacenan y sincronizan de manera automática y transparente para ti.

Si tienes un servicio que permita inicio de sesión con llaves te lo informará y te permitirá activarlo.

Configuración y gestión de Passkeys en dispositivos iOS y ordenadores Mac

En dispositivos de Apple, las passkeys se crean y almacenan en la aplicación App de Contraseñas. Esta aplicación sustituye a la anterior Llaveros y mejora bastante la experiencia de usuario, algo que no era la verdad muy complicado de conseguir porque había bastante margen de mejora.

Ahora en App de Contraseñas verás que hay una sección dedicada a llaves de acceso donde podrás localizar las llaves que estás usando actualmente. De todos modos, si estás usando el navegador Chrome, aunque estés en Mac es muy probable que tu passkey se almacene directamente en tu cuenta de Google.

Passkey ¿qué es y en qué se diferencia de una password?

 

Uso de Windows Hello para habilitar el acceso biométrico en sistemas de escritorio

Con Windows Hello también puedes autenticarte usando passkeys en sistemas de Microsoft y validar tu acceso mediante reconocimiento facial, huella o PIN. En ese caso las llaves de acceso se almacenan de forma segura en el dispositivo o se sincronizan mediante la cuenta de Microsoft.

Para configurar Windows Hello, que viene integrado de casa en los ordenadores con un Windows reciente, tienes que entrar en Inicio > Configuración Luego te vas a Cuentas > Opciones de inicio de sesión y verás las opciones de acceso con Windows Hello dependiendo de las capacidades de tu equipo. Igualmente, si usas Chrome es probable que las passkeys se almacenen en tu cuenta de Google como pasa en Mac.

Vinculación y almacenamiento de credenciales criptográficas en gestores de terceros

Además de las aplicaciones nativas de cada dispositivo también puedes usar algunas aplicaciones que hacen de gestores de contraseñas para almacenar las passkeys. Algunos ejemplos de aplicaciones que lo soportan son 1Password o Bitwarden.

Procedimiento para iniciar sesión de forma segura utilizando códigos QR entre dispositivos

Algunos servicios ofrecen la posibilidad de usar códigos QR para acceder con Passkey cuando el usuario inicia sesión desde un dispositivo que no tiene su llave de acceso. En este caso lo que haces es escanear el código QR y autenticarte directamente en la aplicación usando el teléfono, como si fuera un autenticador, firmando el desafío de forma segura sin necesidad de transferir credenciales al dispositivo externo. Esto por ejemplo lo podemos ver en la página de Revolut.

Gestión de problemas, pérdida de dispositivos y copias de seguridad

El uso de passkeys hace que los distintos flujos a los que estábamos acostumbrados cambien un poco pero generalmente todo se mantiene bastante intuitivo.

¿Qué pasa si pierdo, me roban o se rompe el teléfono donde guardaba mi Passkey?

Probablemente te harás la pregunta ¿Qué pasa si pierdo mi teléfono o me lo roban? Si bien es cierto que en tu teléfono están las llaves de acceso a numerosos servicios, no debes de preocuparte demasiado porque todas las llaves están protegidas. Para empezar necesitarán pruebas biométricas para poder activar las llaves de acceso. Además siempre puedes resetear tu teléfono de manera remota con las aplicaciones nativas de tu sistema operativo.

Por otro lado, si lo que te preocupa es que las llaves se pierdan y no puedas acceder a los servicios, tampoco es un problema ya que tus claves están sincronizadas a través de los distintos servicios, ya sea tu cuenta de Google, tu cuenta Apple o Microsoft.

Cómo transferir llaves de acceso entre diferentes sistemas operativos (de Android a iOS o viceversa)

La verdad es que no te tienes que preocupar por este punto, ya que las llaves de acceso se sincronizan de manera automática. No obstante, si no fuera así tienes algunas estrategias disponibles:

  • Puedes usar aplicaciones de terceros compatibles con passkeys, como las que hemos señalado antes.
  • También puedes volver a autenticarte en los servicios para generar nuevas llaves de acceso
  • En el caso de que el servicio lo facilite, también tienes el código QR para autorizar tu acceso desde otro dispositivo sin que tengas que transferir la passkey.

El papel de los gestores de contraseñas de terceros (1Password, Bitwarden) en la era Passkey

Los gestores de contraseñas se han puesto las pilas para dar soporte a passkeys y permitir evolucionar también los mecanismos de autenticación cuando los servicios lo permiten.

Aunque generalmente no es totalmente necesario el uso de estos gestores de contraseñas cuando trabajas con passkey, ya que la llave la gestionará la propia aplicación nativa de tu dispositivo, pueden venir bien cuando utilizas dispositivos de distintos fabricantes o cuando quieres centralizar todas las llaves de acceso en un único soporte.

Arquitectura y protocolos como FIDO2, WebAuthn y CTAP

Ahora vamos a salir un poco del punto de vista del usuario y vamos a profundizar en los protocolos que soportan el uso de passkeys. Sin necesidad de entrar en detalles demasiado técnicos y complejos puede venirte bien para entender mejor cómo funciona este sistema de autenticación.

El rol de la API WebAuthn

WebAuthn es una API estándar disponible en el navegador que permite a las aplicaciones web registrar y autenticar usuarios mediante credenciales criptográficas. Este es un API estándar que actúa como puente entre la aplicación web y los autenticadores.

Mediante el API WebAuthn se gestionan operaciones como el registro de nuevas credenciales, la generación de desafíos criptográficos o la validación de respuestas firmadas.

El protocolo CTAP (Client to Authenticator Protocol)

El protocolo CTAP es el que se usa para comunicar los dispositivos cliente y los autenticadores. Si antes decíamos de WebAuthn que se encargaba de hacer el puente entre la web y el navegador, ahora tenemos a CTAP que es el que se encarga de permitir la comunicación entre el navegador y el autenticador.

Aquí hace falta definir la figura del autenticador, que es es el encargado de resolver el reto criptográfico y devolver la respuesta firmada. Para ello se apoya en la propia llave y los sistemas que tiene el dispositivo para desbloquear el acceso a la llave, como el sensor biométrico o el PIN.

Autenticadores de plataforma frente a llaves de seguridad de hardware externas (YubiKey)

Por lo que respecta los autenticadores queremos mencionar que existen dos tipos. Por un lado, los autenticadores de plataforma, que están integrados en dispositivos (smartphones, laptops) y utilizan biometría o PIN. Por otro, los autenticadores externos, dispositivos físicos como YubiKey que se conectan por USB, NFC o Bluetooth.

Los más habituales son los autenticadores de plataforma y también los más cómodos de usar porque estan en el móvil y son elementos con los que ya operamos el día a día. Sin embargo, en entornos críticos los dispositivos físicos de seguridad especializados como YubiKey nos ofrecen un mayor grado de aislamiento y control.

Anatomía de los flujos criptográficos como la ceremonia de registro (Attestation) y la ceremonia de autenticación (Assertion)

Ya para lo que respecta al flujo de funcionamiento de las passkeys se establece mediante dos procesos fundamentales. Por un lado, proceso de registro, en  el que se genera el par de claves, se almacena la clave privada en el dispositivo y se envía la clave pública al servidor, junto con información del autenticador. Este paso también se llama Attestation.

Por otro, el proceso de autenticación: donde el servidor envía un desafío, el dispositivo lo firma con la clave privada y devuelve la respuesta para su verificación. También se denomina Assertion.

Implementando Passkeys en tu plataforma empresarial o desarrollo

Si quieres implementar Passkeys en tu plataforma necesitas preocuparte por el paso de la comunicación entre tu sitio web y el navegador. Afortunadamente ya existen librerías, que cambian dependiendo del lenguaje de programación.

Integración en el código

Primero y fundamental, para la implementación solo necesitas integrar WebAuthn en el backend y frontend, ya que las otras partes como la comunicación CTAP se realizan mediante el propio dispositivo.

En este punto lo más importante es la generación y validación de desafíos criptográficos, así como el almacenamiento de las claves públicas de los usuarios.

En este punto puedes apoyarte en librerías disponibles en distintos lenguajes, ya que están preparadas para simplificar la integración.

  • Node.js tiene SimpleWebAuthn que incluye implementaciones tanto para la parte de frontend como backend.
  • PHP tiene como opción más relevante a FIDO2/Webauthn
  • Java tiene como principal alternativa a webauthn4j

Usarlas no es demasiado complicado pero requiere el estudio de cada librería por separado.

Gestión de la identidad corporativa

Si piensas usar passkeys en entornos empresariales, tienes que pensar que además será necesario integrarlas con sistemas de identidad existentes como LDAP, Active Directory o proveedores SSO.

Estrategias de migración híbrida

Ten en cuenta que usar solamente passkeys puede causar problemas en un conjunto relevante de usuarios, ya que no todos van a estar dispuestos a migrar a passkeys de un día para otro.

Así pues, lo normal es que tu aplicación siga soportando login mediante sistemas más tradicionales como las clásicas passwords. Así pues, si acabas migrando a passkey generalmente usarás una solución híbrida que permita soporte a otros modelos de autenticación junto con los passkeys.

Cumplimiento normativo y auditorías de seguridad

No hay ninguna norma específica que te obligue a usar passkeys pero sí te podrían facilitar el cumplimiento de normativas como GDPR o PSD2, al reducir riesgos de filtración de las claves, a la vez que se mejora la seguridad de autenticación.

Desafíos de usabilidad, accesibilidad y el problema del bloqueo de ecosistemas

El uso de passkeys por lo general mejora las prestaciones de las claves tradicionales, como hemos señalado ya. Sin embargo a la hora de la verdad todavía hay algunos desafíos para que se extiendan lo suficiente como para acabar matando a las contraseñas, principalmente por la penetración entre los servicios y por resultar todavía confusas para algunos usuarios.

Desafíos de uso para usuarios mayores o sin smartphones de última generación

Aunque es verdad que las passkeys mejoran la UX, a la hora de la verdad no todos los tipos de usuarios se sienten cómodos con ellas.

Por ejemplo, las personas mayores pueden sentir cierta reticencia a usarlas, ya que desconocen sus ventajas y se sienten más cómodos siendo ellos los que tienen que introducir una clave. Muchas veces, solo por el hecho de introducir nuevos conceptos ya surge un bloqueo en usuarios con menos habilidades de cara a las tecnologías emergentes.

A esto se uno que no todos los dispositivos tienen posibilidades de reconocimiento de huellas o la cara. Seguramente esto no sea tan relevante actualmente, ya que la mayoría de los móviles tienen estas funcionalidades, pero a veces es el propio usuario el que no ha querido configurar esas características en su teléfono.

Autenticación en ordenadores compartidos

Si compartes un ordenador con otras personas cabría preguntarse hasta qué punto una passkey es recomendable. Ten en cuenta que estas credenciales pueden quedar ligadas al dispositivo, lo que permitiría usarlas a otras personas.

Por tanto aquí habría que ir con ojo y activar llaves en ordenadores donde realmente podamos asegurar que no existen otros usuarios que las puedan usar.

El dilema del bloqueo de proveedores (Vendor Lock-in)

Otra cosa que no facilita las cosas es el bloqueo de proveedores. Esto se refiere a que algunos proveedores pueden anular el uso de otras aplicaciones para trabajar con passkeys, obligando a usar sus propias herramientas. Esto hace que migrar entre plataformas pueda ser más complejo.

Buenas prácticas de Diseño UX

Si piensas implantar Passkeys es importante mantener una buena experiencia de usuario, que tenga como objetivo reducir las fricciones lo máximo posible. Algunos consejos que nos gustaría destacar son los siguientes.

  • Ofrecer explicaciones claras durante el registro y las ventajas de usar passkeys.
  • Permitir métodos alternativos de acceso para los usuarios que no quieran o no puedan usar llaves de acceso.
  • Minimizar fricción en el proceso de login.
  • Informar sobre los procesos de recuperación de cuentas y ofrecer mecanismos para invalidar llaves de acceso anteriormente validadas.
Sergio Arias

Productos relacionados: