Las contraseñas son el eslabón más débil en la seguridad de las cuentas. Pueden ser suplantadas, filtradas, reutilizadas u olvidadas. Por eso hemos añadido soporte para WebAuthn Passkeys: un método de autenticación sin contraseña resistente al phishing que es más seguro y más conveniente.
¿Qué son los Passkeys?
Los Passkeys son credenciales criptográficas almacenadas en tu dispositivo (teléfono, portátil, llave de seguridad) que reemplazan las contraseñas para la autenticación. Utilizan el estándar WebAuthn (parte de FIDO2) y ofrecen varias ventajas:
- Resistentes al phishing - Los Passkeys están vinculados al dominio del sitio web, por lo que no pueden usarse en sitios falsos
- Sin secretos que filtrar - Solo la clave pública se almacena en el servidor
- Vinculados al dispositivo - La clave privada nunca sale de tu dispositivo
- Protegidos por biometría - Típicamente asegurados por Face ID, Touch ID o Windows Hello
- Sincronización entre dispositivos - Las plataformas modernas sincronizan los Passkeys entre dispositivos a través de cuentas de iCloud, Google o Microsoft
Nuestra implementación
Integramos el soporte de WebAuthn Passkeys en nuestra pila de autenticación existente de django-allauth, proporcionando endpoints tanto para web como para la API móvil.
Flujo de registro
Cuando un usuario registra un nuevo Passkey, el flujo funciona así:
- El cliente solicita opciones de registro al servidor
- El servidor genera un desafío con información del usuario y la parte confiable
- La API WebAuthn del navegador solicita al usuario (biometría o llave de seguridad)
- El cliente envía la credencial de vuelta al servidor
- El servidor verifica y almacena la clave pública
| |
Flujo de autenticación
Para la autenticación de dos factores usando un Passkey:
- El usuario completa la autenticación primaria (usuario/contraseña o inicio de sesión social)
- El servidor devuelve un desafío para la verificación WebAuthn
- El navegador solicita el Passkey (toque biométrico)
- La credencial se verifica contra la clave pública almacenada
- El usuario está completamente autenticado
| |
Gestión de Passkeys
Los usuarios pueden gestionar sus Passkeys registrados:
- Listar todos los Passkeys con fecha de registro y último uso
- Renombrar Passkeys para una identificación más fácil (ej., “iPhone”, “MacBook”)
- Eliminar Passkeys (con protección contra eliminar el último autenticador)
| |
Endpoints de la API
Nuestra API REST proporciona soporte completo de WebAuthn para la aplicación móvil:
| Endpoint | Método | Descripción |
|---|---|---|
/api/webauthn/register/options/ | GET | Obtener desafío de registro |
/api/webauthn/register/complete/ | POST | Completar registro |
/api/webauthn/authenticate/options/ | GET | Obtener desafío de autenticación |
/api/webauthn/verify/ | POST | Verificar credencial para 2FA |
/api/webauthn/ | GET | Listar Passkeys registrados |
/api/webauthn/<id>/ | PATCH | Renombrar un Passkey |
/api/webauthn/<id>/ | DELETE | Eliminar un Passkey |
Consideraciones de seguridad
Códigos de recuperación
Cuando un usuario registra su primer autenticador (Passkey o TOTP), generamos automáticamente códigos de recuperación. Estos códigos de un solo uso pueden utilizarse si todos los demás métodos de autenticación no están disponibles:
| |
Prevención de bloqueo
Los usuarios no pueden eliminar su último Passkey si los dejaría sin ningún método de autenticación de dos factores:
| |
Monitoreo
Rastreamos el uso de Passkeys mediante métricas de Datadog para monitoreo de seguridad:
| |
Compatibilidad con navegadores
WebAuthn es compatible con todos los navegadores modernos:
- Chrome 67+
- Firefox 60+
- Safari 13+
- Edge 79+
- Chrome móvil, Safari, Firefox
Para navegadores más antiguos, los usuarios pueden seguir usando TOTP (aplicaciones de autenticación) o códigos de recuperación.
La experiencia del usuario
Añadir un Passkey toma solo segundos:
- Ve a Configuración → Seguridad → Autenticación de dos factores
- Haz clic en Añadir Passkey
- Nombra tu dispositivo (ej., “iPhone 15”)
- Autentícate con Face ID / Touch ID / Windows Hello
- ¡Listo! Tu Passkey está registrado
Los inicios de sesión futuros requieren solo una confirmación biométrica, sin escribir contraseñas ni copiar códigos de aplicaciones de autenticación.
Por qué elegimos Passkeys
| Método | Riesgo de phishing | Experiencia de usuario | Recuperación |
|---|---|---|---|
| Contraseñas | Alto | Mala (olvidadas, débiles) | Restablecimiento por email |
| SMS 2FA | Medio (intercambio de SIM) | Aceptable | Número de teléfono |
| Aplicaciones TOTP | Bajo | Entrada manual de código | Claves de respaldo |
| Passkeys | Muy bajo | Excelente | Códigos de recuperación |
Los Passkeys representan el futuro de la autenticación. Ya están soportados por las plataformas de Apple, Google y Microsoft, haciéndolos accesibles para casi todos nuestros usuarios.
¿Listo para prescindir de las contraseñas? ¡Activa los Passkeys en tu configuración de seguridad!