Proton Authenticator est une application d’authentification à deux facteurs (A2F) open source qui génère des codes de mot de passe à usage unique basés sur le temps (TOTP) sur votre appareil, vous permettant d’accéder aux services en ligne avec une couche de sécurité supplémentaire. Elle utilise le même chiffrement éprouvé qui sécurise le reste de l’écosystème Proton. Proton Authenticator est unique car elle a été conçue dès le départ pour être disponible sur presque toutes les plateformes tout en préservant votre vie privée et en vous donnant la propriété totale de vos données.
Contrairement à d’autres applications d’authentification, Proton Authenticator sécurise vos données avec un chiffrement de bout en bout, même lorsque vous activez la synchronisation des appareils.
Cela signifie que Proton Authenticator empêche quiconque, y compris Proton lui-même, de savoir auprès de quels services en ligne vous avez des comptes. Cette information, tout comme vos emails ou votre historique de navigation, peut en révéler beaucoup sur vous, et la protéger est essentiel pour préserver votre vie privée.
Le chiffrement de bout en bout de Proton Authenticator garantit que toutes les opérations cryptographiques, y compris la génération de clés et le chiffrement des données, sont effectuées localement sur votre appareil. Cela signifie que vos données non chiffrées ne peuvent être accédées par Proton ou partagées avec des tiers. Les serveurs Proton n’ont jamais accès à vos données non chiffrées, y compris le mot de passe de votre compte Proton.
Modèle de chiffrement
Proton Authenticator adopte une approche complète pour assurer une sécurité et un respect de la vie privée maximaux pour toutes les données utilisateur. Toutes les opérations cryptographiques se produisent localement sur votre appareil, et toutes les données transmises au serveur sont toujours chiffrées. Proton n’a jamais accès aux clés en texte brut requises pour déchiffrer les données utilisateur, ce qui rend impossible pour nous de déchiffrer les données stockées, même si cela est demandé par des tiers.
Proton Authenticator utilise le même chiffrement avancé que nous utilisons pour l’authentification dans Proton Mail. Cela inclut l’utilisation d’une version renforcée du protocole SRP (Secure Remote Password) qui offre des garanties de sécurité plus fortes contre les attaques de type man-in-the-middle (MITM). Notre implémentation signifie que même un attaquant qui peut lire, modifier, retarder, détruire, répéter ou fabriquer arbitrairement des messages entre Proton et un utilisateur de manière indétectable est limité à la vérification d’une seule tentative de mot de passe par tentative de connexion, l’équivalent d’essayer de se connecter directement. De cette façon, même si Proton est compromis et agit de manière malveillante, les informations équivalentes au mot de passe ne sont jamais révélées.
En savoir plus sur le chiffrement de l’authentification de Proton
Chiffrement des données
Proton Authenticator vous permet de stocker en toute sécurité vos codes A2F, même si vous n’avez pas de compte Proton. Cela signifie que le processus de chiffrement initial doit être effectué entièrement sur votre appareil local. Ensuite, si vous décidez d’utiliser votre compte Proton pour synchroniser vos codes entre les appareils, nous pouvons utiliser les clés cryptographiques stockées sur les serveurs Proton pour effectuer la synchronisation.
Le chiffrement Proton commence par le serveur Proton fournissant la version chiffrée de la clé racine que l’application Authenticator utilise pour chiffrer les données de l’utilisateur. Chaque utilisateur Proton possède une clé utilisateur asymétrique, et Proton chiffre cette clé utilisateur sur votre appareil comme suit :
- Comptes utilisant un mot de passe unique : Proton chiffre la clé utilisateur avec un hachage bcrypt du mot de passe du compte et le salage du compte.
- Comptes utilisant notre fonctionnalité de mots de passe multiples : Proton chiffre la clé utilisateur avec un hachage bcrypt du mot de passe de la clé et le salage du compte.
Proton Authenticator utilise bcrypt et un salage de compte pour hacher votre mot de passe comme couche de protection supplémentaire contre les attaques par force brute. Même si un acteur malveillant obtenait l’accès à la base de données Proton, les clés de votre compte seraient en sécurité contre les attaques par force brute.
Une fois que vous activez la synchronisation, Proton Authenticator génère une clé Authenticator aléatoire de 32 octets. Cette clé est chiffrée et signée avec votre clé utilisateur, garantissant que vous seul pouvez la déchiffrer ; personne (pas même Proton) ne peut lire ou créer une nouvelle clé Authenticator. Une fois que vous avez accès à la clé Authenticator, toutes les entrées dans Proton Authenticator sont chiffrées en utilisant AES-GCM 256 bits.

Comme Proton Authenticator ne nécessite pas de compte Proton, nous avons également besoin d’un schéma de chiffrement séparé qui stocke en toute sécurité vos données lorsqu’elles n’existent que sur votre appareil. Au final, la façon la plus simple d’implémenter cela est de traiter le compte Proton comme un fournisseur de clés distinct. Au final, cela ressemble à ce qui suit :

Pour le stockage local des clés sur votre appareil, nous nous appuyons sur les fournisseurs de stockage de clés sécurisés de chaque système :
- Android : Nous stockons en toute sécurité la clé dans le Keystore Android(nouvelle fenêtre), qui est ensuite utilisé pour chiffrer une clé aléatoire locale que nous stockons dans le système de fichiers protégé de l’application. Cette clé est utilisée pour chiffrer symétriquement toutes les entrées de Proton Authenticator sur votre appareil.
- iOS/iPadOS/macOS : Nous générons une clé aléatoire locale et la stockons dans le service de trousseau (Keychain)(nouvelle fenêtre). Cette clé est utilisée pour chiffrer symétriquement toutes les entrées de Proton Authenticator sur votre appareil.
- Windows : Nous générons une clé aléatoire locale et la stockons dans le gestionnaire d’identifiants Windows(nouvelle fenêtre). Cette clé est utilisée pour chiffrer symétriquement toutes les entrées de Proton Authenticator sur votre appareil. Si la connexion au WCM n’est pas disponible, nous permettons à l’utilisateur de chiffrer sa clé aléatoire locale avec un mot de passe.
- Linux : Nous générons une clé aléatoire locale et la stockons dans le service secret DBUS disponible. Cette clé est utilisée pour chiffrer symétriquement toutes les entrées de Proton Authenticator sur votre appareil. Si aucun service secret DBUS n’est configuré, nous permettons à l’utilisateur de chiffrer sa clé aléatoire locale avec un mot de passe.
Chiffrement de la sauvegarde
L’un des principaux atouts de Proton Authenticator est que vous contrôlez toujours vos données. Cela inclut la possibilité de sauvegarder périodiquement vos codes sur votre appareil local et de définir un mot de passe qui chiffre ces données sensibles.
Pour implémenter cette sauvegarde locale sécurisée, nous utilisons le mot de passe que vous avez fourni pour dériver une clé de chiffrement sécurisée en utilisant Argon2 comme KDF (fonction de dérivation de clé). Une KDF est utilisée pour générer des clés cryptographiques à partir d’entrées secrètes, comme les mots de passe saisis par l’utilisateur, et son objectif principal est d’améliorer la sécurité en rendant le craquage des mots de passe plus difficile et plus long pour les attaquants. En utilisant cette clé de chiffrement générée à partir de votre mot de passe, nous sérialisons toutes vos entrées et les chiffrons pour garantir que vos données restent chiffrées en toute sécurité, même si la sauvegarde fait l’objet d’une fuite. Et en utilisant des technologies bien connues et ouvertes, vous pouvez déchiffrer vos données sans utiliser Proton Authenticator, ce qui vous permet de garder le contrôle même si vous décidez de passer à une autre application d’authentification.
La sécurité par la transparence
Comme tous les services Proton, Proton Authenticator est open source. Tout le monde peut consulter notre code source pour vérifier notre modèle de sécurité. Comme pour nos autres services, Proton Authenticator fera également l’objet d’audits de sécurité indépendants réguliers, et nous partagerons ces rapports d’audit publiquement dès qu’ils seront disponibles.
Enfin, pour les chercheurs en sécurité intéressés, Proton Authenticator est éligible au programme de recherche de bugs de Proton qui offre des récompenses allant jusqu’à 100 000 $ pour la découverte de bugs dans les logiciels de Proton.
