E2EAuth
Tus claves. Tus dispositivos. Totalmente protegidos.
Descripción general
E2EAuth es una especificación de autenticador de código abierto y multiplataforma diseñada para proporcionar una gestión segura, privada y fiable de credenciales de autenticación multifactor en dispositivos de escritorio y móviles. Admite contraseñas de un solo uso basadas en tiempo (TOTP) y contraseñas de un solo uso basadas en HMAC (HOTP), con sincronización cifrada de extremo a extremo, almacenamiento local primero y recuperación social mediante contactos de confianza.
E2EAuth está diseñado en torno a la propiedad del usuario, la arquitectura de conocimiento cero, la interoperabilidad, las prácticas de seguridad transparentes y la libertad frente al bloqueo del proveedor. Los secretos de autenticación permanecen bajo el control del usuario, y los servicios de sincronización o recuperación no deben obtener acceso independiente a la bóveda de credenciales del usuario.
Principios fundamentales
- Seguridad ante todo: Proteger los secretos de autenticación durante el almacenamiento, la sincronización, la recuperación y el uso.
- Cifrado de extremo a extremo: Garantizar que solo los dispositivos autorizados del usuario puedan descifrar la bóveda de credenciales.
- Funcionamiento local primero: Permitir a los usuarios generar códigos de autenticación sin conexión a internet.
- Propiedad del usuario: Dar a los usuarios el control sobre las credenciales, los dispositivos, las claves de cifrado, las copias de seguridad y los acuerdos de recuperación.
- Compatibilidad multiplataforma: Admitir acceso seguro en entornos de escritorio y móviles.
- Arquitectura de conocimiento cero: Impedir que los servidores, los operadores de servicios y los contactos de recuperación lean de forma independiente el contenido de la bóveda.
- Transparencia de código abierto: Permitir la revisión pública de la especificación, la implementación, los controles de seguridad y los cambios.
- Interoperabilidad: Admitir estándares de autenticación establecidos y la migración portátil de credenciales.
- Recuperación resiliente: Proporcionar opciones de recuperación seguras sin introducir acceso no autorizado ni puertas traseras de recuperación centralizadas.
- Operaciones auditables: Mantener registros transparentes de las acciones relevantes para la seguridad sin exponer innecesariamente los secretos de autenticación.
Módulos principales
Gestión de credenciales de autenticación
- Admitir credenciales TOTP de acuerdo con RFC 6238.
- Admitir credenciales HOTP de acuerdo con RFC 4226.
- Permitir a los usuarios añadir credenciales escaneando códigos QR compatibles.
- Admitir la introducción manual de nombres de emisor, identificadores de cuenta, secretos compartidos, algoritmos, longitudes de dígitos y otros parámetros requeridos.
- Validar los parámetros de las credenciales importadas e identificar configuraciones no admitidas.
- Generar códigos de autenticación localmente utilizando el algoritmo y los parámetros de credencial adecuados.
- Mostrar indicadores de cuenta atrás para los códigos basados en tiempo.
- Realizar un seguimiento del estado del contador HOTP y sincronizar las actualizaciones del contador de forma segura entre dispositivos autorizados.
- Admitir nombres de credenciales, información del emisor, etiquetas de cuenta, iconos, categorías, etiquetas y notas.
- Proporcionar búsqueda, ordenación, filtrado y favoritos.
- Mostrar claramente el estado de expiración y regeneración de los códigos.
- Admitir la copia segura de códigos de autenticación con un comportamiento configurable de borrado del portapapeles.
- Minimizar la exposición de secretos y códigos en los registros de la aplicación, notificaciones, informes de fallos y salidas de diagnóstico.
- Identificar claramente credenciales no válidas, expiradas, no admitidas o potencialmente conflictivas.
- Preservar la funcionalidad de las credenciales cuando el dispositivo está sin conexión.
Bóveda segura y almacenamiento local
- Almacenar las credenciales de autenticación en una bóveda local protegida.
- Cifrar los datos sensibles de credenciales en reposo.
- Separar las claves de cifrado de la bóveda de los datos de credenciales almacenados.
- Utilizar los mecanismos seguros de la plataforma para proteger el material de claves específico del dispositivo cuando estén disponibles.
- Admitir un mecanismo de desbloqueo de la bóveda controlado por el usuario.
- Admitir una derivación de claves robusta basada en contraseña cuando se utilicen contraseñas.
- Proporcionar un desbloqueo biométrico opcional mediante los mecanismos de seguridad del sistema operativo compatibles.
- Aplicar un bloqueo automático configurable tras un periodo de inactividad o cuando la aplicación pase a segundo plano.
- Exigir reautenticación para operaciones sensibles de acuerdo con las políticas de seguridad definidas por el usuario.
- Proteger contra la exposición accidental a través de las vistas previas de la aplicación, las capturas de pantalla cuando sean compatibles, el historial del portapapeles y el contenido de las notificaciones.
- Proporcionar un bloqueo seguro de la bóveda y la finalización de la sesión.
- Evitar almacenar secretos de autenticación en texto plano en registros, archivos temporales o copias de seguridad sin protección.
- Comunicar las limitaciones de la protección a nivel de dispositivo y los riesgos de sistemas operativos comprometidos.
Cifrado de extremo a extremo y gestión de claves
- Cifrar el contenido de la bóveda antes de que abandone el dispositivo de origen.
- Garantizar que los proveedores de sincronización no puedan descifrar los datos de credenciales de forma independiente.
- Utilizar algoritmos y protocolos criptográficos establecidos y revisados de forma independiente.
- Definir los requisitos de cifrado autenticado, derivación segura de claves, manejo de nonces y rotación de claves.
- Establecer identidades de dispositivo autenticadas e intercambio seguro de claves para el emparejamiento de dispositivos.
- Impedir que dispositivos no autorizados se unan a la red de sincronización de un usuario.
- Proteger los datos sincronizados contra manipulación, repetición y modificación no autorizada.
- Vincular los registros cifrados a los metadatos contextuales adecuados para evitar sustituciones no intencionadas entre bóvedas o registros.
- Separar las responsabilidades de autenticación, cifrado, identidad de dispositivo y recuperación.
- Evitar que las contraseñas, claves de cifrado, fragmentos de recuperación y secretos de autenticación aparezcan en la telemetría o en la salida de diagnóstico.
- Admitir la revocación del acceso de dispositivos y la rotación de las claves de cifrado pertinentes.
- Comunicar claramente que los dispositivos previamente autorizados o comprometidos pueden conservar la información que ya han descifrado.
- Documentar los supuestos criptográficos, los modelos de amenazas, los ciclos de vida de las claves y las limitaciones de recuperación.
Sincronización entre dispositivos