E2EAuth
Vos clés. Vos appareils. Entièrement protégés.
Aperçu
E2EAuth est une spécification d'authentificateur open source et multiplateforme conçue pour offrir une gestion sécurisée, privée et fiable des identifiants d'authentification multifacteur sur les ordinateurs de bureau et les appareils mobiles. Elle prend en charge les mots de passe à usage unique basés sur le temps (TOTP) et les mots de passe à usage unique basés sur HMAC (HOTP), avec une synchronisation chiffrée de bout en bout, un stockage local-first et une récupération sociale via des contacts de confiance.
E2EAuth est conçue autour de la propriété utilisateur, d'une architecture à connaissance nulle, de l'interopérabilité, de pratiques de sécurité transparentes et de l'absence de dépendance à un fournisseur. Les secrets d'authentification restent sous le contrôle de l'utilisateur, et les services de synchronisation ou de récupération ne doivent pas obtenir un accès indépendant au coffre d'identifiants de l'utilisateur.
Principes fondamentaux
- La sécurité avant tout : Protéger les secrets d'authentification tout au long du stockage, de la synchronisation, de la récupération et de l'utilisation.
- Chiffrement de bout en bout : Garantir que seuls les appareils utilisateurs autorisés peuvent déchiffrer le coffre d'identifiants.
- Fonctionnement local-first : Permettre aux utilisateurs de générer des codes d'authentification sans connexion Internet.
- Propriété utilisateur : Donner aux utilisateurs le contrôle sur les identifiants, les appareils, les clés de chiffrement, les sauvegardes et les modalités de récupération.
- Compatibilité multiplateforme : Prendre en charge un accès sécurisé sur les environnements de bureau et mobiles.
- Architecture à connaissance nulle : Empêcher les serveurs, les opérateurs de service et les contacts de récupération de lire indépendamment le contenu du coffre.
- Transparence open source : Permettre l'examen public de la spécification, de l'implémentation, des contrôles de sécurité et des modifications.
- Interopérabilité : Prendre en charge les normes d'authentification établies et la migration portable des identifiants.
- Récupération résiliente : Fournir des options de récupération sécurisées sans introduire d'accès non autorisé ni de porte dérobée de récupération centralisée.
- Opérations auditables : Tenir des registres transparents des actions liées à la sécurité sans exposer inutilement les secrets d'authentification.
Modules principaux
Gestion des identifiants d'authentification
- Prendre en charge les identifiants TOTP conformément à la RFC 6238.
- Prendre en charge les identifiants HOTP conformément à la RFC 4226.
- Permettre aux utilisateurs d'ajouter des identifiants en scannant des QR codes compatibles.
- Prendre en charge la saisie manuelle des noms d'émetteur, des identifiants de compte, des secrets partagés, des algorithmes, des longueurs de chiffres et d'autres paramètres requis.
- Valider les paramètres des identifiants importés et identifier les configurations non prises en charge.
- Générer localement les codes d'authentification à l'aide de l'algorithme et des paramètres d'identifiant appropriés.
- Afficher des indicateurs de compte à rebours pour les codes basés sur le temps.
- Suivre l'état du compteur HOTP et synchroniser les mises à jour du compteur de manière sécurisée entre les appareils autorisés.
- Prendre en charge les noms d'identifiants, les informations d'émetteur, les libellés de compte, les icônes, les catégories, les étiquettes et les notes.
- Fournir la recherche, le tri, le filtrage et les favoris.
- Afficher clairement l'état d'expiration et de régénération des codes.
- Prendre en charge la copie sécurisée des codes d'authentification avec un comportement configurable d'effacement du presse-papiers.
- Minimiser l'exposition des secrets et des codes dans les journaux applicatifs, les notifications, les rapports de plantage et les sorties de diagnostic.
- Identifier clairement les identifiants invalides, expirés, non pris en charge ou potentiellement conflictuels.
- Préserver le fonctionnement des identifiants lorsque l'appareil est hors ligne.
Coffre sécurisé et stockage local
- Stocker les identifiants d'authentification dans un coffre local protégé.
- Chiffrer les données d'identification sensibles au repos.
- Séparer les clés de chiffrement du coffre des données d'identification stockées.
- Utiliser les mécanismes sécurisés de la plateforme pour protéger le matériel de clé propre à l'appareil lorsqu'ils sont disponibles.
- Prendre en charge un mécanisme de déverrouillage du coffre contrôlé par l'utilisateur.
- Prendre en charge une dérivation de clé robuste basée sur un mot de passe lorsque des mots de passe sont utilisés.
- Fournir un déverrouillage biométrique optionnel via les mécanismes de sécurité du système d'exploitation pris en charge.
- Appliquer un verrouillage automatique configurable après une période d'inactivité ou la mise en arrière-plan de l'application.
- Exiger une réauthentification pour les opérations sensibles conformément aux politiques de sécurité définies par l'utilisateur.
- Se protéger contre l'exposition accidentelle via les aperçus d'application, les captures d'écran lorsque cela est pris en charge, l'historique du presse-papiers et le contenu des notifications.
- Fournir un verrouillage sécurisé du coffre et une terminaison de session.
- Éviter de stocker des secrets d'authentification en clair dans les journaux, les fichiers temporaires ou les sauvegardes non protégées.
- Communiquer les limites de la protection au niveau de l'appareil et les risques liés à un système d'exploitation compromis.
Chiffrement de bout en bout et gestion des clés
- Chiffrer le contenu du coffre avant qu'il ne quitte l'appareil d'origine.
- Garantir que les fournisseurs de synchronisation ne peuvent pas déchiffrer indépendamment les données d'identification.
- Utiliser des algorithmes et protocoles cryptographiques établis et audités de manière indépendante.
- Définir les exigences en matière de chiffrement authentifié, de dérivation de clé sécurisée, de gestion des nonces et de rotation des clés.
- Établir des identités d'appareil authentifiées et un échange de clés sécurisé pour l'appairage des appareils.
- Empêcher les appareils non autorisés de rejoindre le réseau de synchronisation d'un utilisateur.
- Protéger les données synchronisées contre la falsification, la relecture et les modifications non autorisées.
- Lier les enregistrements chiffrés aux métadonnées contextuelles appropriées afin d'empêcher toute substitution involontaire entre coffres ou enregistrements.
- Séparer les responsabilités d'authentification, de chiffrement, d'identité d'appareil et de récupération.
- Empêcher les mots de passe, clés de chiffrement, parts de récupération et secrets d'authentification d'apparaître dans la télémétrie ou les sorties de diagnostic.
- Prendre en charge la révocation de l'accès d'un appareil et la rotation des clés de chiffrement concernées.
- Communiquer clairement que des appareils précédemment autorisés ou compromis peuvent conserver les informations qu'ils ont déjà déchiffrées.
- Documenter les hypothèses cryptographiques, les modèles de menace, les cycles de vie des clés et les limites de récupération.
Synchronisation entre appareils