ProtonBlog

En octobre 2022, Proton a développé sa propre autorité de certification OpenPGP (CA), ProtonCA, et a commencé à signer les clés de chiffrement pour garantir qu’elles appartiennent à un compte spécifique. Cela permet aux utilisateurs d’OpenPGP de faire confiance aux clés PGP d’autres utilisateurs et facilite l’envoi de messages chiffrés de bout en bout (E2EE).

Cet article explique pourquoi les CA sont nécessaires pour OpenPGP, pourquoi nous avons décidé de développer une CA et comment fonctionne notre CA.

Pourquoi Proton agit-elle en tant qu’autorité de certification ?

OpenPGP, le standard de chiffrement open source que nous utilisons pour chiffrer les e-mails de bout en bout sur Proton Mail, est l’une des méthodes de communication en ligne les plus sécurisées, mais elle présente de petites vulnérabilités potentielles. Un problème est que n’importe qui peut créer une clé et prétendre qu’elle appartient à une adresse e-mail spécifique. Cela pourrait potentiellement permettre à un attaquant de substituer une clé PGP qu’il a créée à la vôtre, lui donnant accès à tous les messages chiffrés avec cette clé.

Ce problème existe également dans d’autres protocoles de cryptographie. Par exemple, le protocole de sécurité de la couche de transport (TLS) qui protège tous les sites internet utilisant HTTPS repose sur quelques CA centralisées pour vérifier qu’une clé spécifique appartient bien à la personne ou au site internet qui la revendique. Pour résoudre ce problème, la communauté OpenPGP a récemment développé OpenPGP CA(new window), rendant facile le déploiement de CA décentralisées. L’objectif est de créer un système étendu avec de nombreuses CA travaillant ensemble pour éliminer les points de défaillance.

Nous avons décidé de lancer ProtonCA car nous sommes particulièrement bien placés pour agir en tant que CA. Nous pouvons facilement confirmer qu’une clé spécifique appartient à une adresse e-mail particulière car nous contrôlons le domaine de messagerie. Bien que les utilisateurs de Proton ne verront pas de différence majeure dans le service, cela facilitera grandement la vie des personnes qui utilisent PGP pour envoyer des e-mails E2EE aux utilisateurs de Proton. Désormais, peu importe comment vous obtenez la clé PGP d’un utilisateur Proton, vous pouvez être sûr qu’elle est valide et récente (utilisée activement au cours des six derniers mois) si ProtonCA l’a signée.

Signatures de tiers

La technologie sous-jacente utilisée par OpenPGP CA — les signatures de tiers — existe depuis des années. Les signatures de tiers sont l’outil principal que les CA utilisent pour authentifier une clé. En gros, si vous êtes une CA, vous ajoutez votre signature à la clé de quelqu’un d’autre, affirmant que vous avez vérifié qu’elle lui appartient. Cela crée une liaison inviolable entre la clé et l’utilisateur.

Par exemple, Alice souhaite envoyer un e-mail à Bob, donc sa première étape est de récupérer sa clé publique de chiffrement. Cette clé téléchargée contient une signature de Ted indiquant qu’il certifie que cette clé appartient à Bob. Si Alice fait confiance à Ted pour vérifier correctement l’identité de Bob, alors elle fait indirectement confiance à la clé de Bob. Ted est l’autorité de confiance dans ce cas, agissant comme une CA (très petite).

Fonctionnement de ProtonCA

Chez Proton, nous avons développé ProtonCA selon le système décrit par OpenPGP CA pour agir en tant que CA pour les clés de millions d’utilisateurs Proton.

Toutes les adresses e-mail hébergées par Proton disposent d’une clé qui leur permet de recevoir des messages E2EE. ProtonCA ajoute une signature tierce à chaque clé de chiffrement d’e-mail en utilisant une clé maîtresse appelée la clé CA. Cela certifie que Proton garantit que la clé appartient à l’adresse qui lui est associée. Lorsqu’une clé est générée ou importée vers Proton Mail, ProtonCA vérifie qu’elle est uniquement associée à une seule adresse e-mail, celle pour laquelle elle a été importée. Nous signons ensuite la clé et la stockons sur nos serveurs. Proton ne vérifie pas l’identité des utilisateurs individuels (par exemple, nous ne demandons pas à nos utilisateurs de fournir une pièce d’identité gouvernementale). ProtonCA confirme simplement qu’une adresse e-mail particulière correspond à une clé spécifique.

Revenons à notre exemple initial avec Alice et Bob, mais remplaçons Ted par ProtonCA. Maintenant, lorsque Alice récupère la clé de Bob, elle recevra une clé avec une signature ProtonCA indiquant que bob@proton.me utilise cette clé. Alice, qui pourrait utiliser un client OpenPGP externe, peut vérifier l’authenticité de cette signature et, si elle fait confiance à Proton, elle fera indirectement confiance à cette clé automatiquement. Cette confiance s’applique quel que soit le moyen par lequel Alice a obtenu la clé de Bob. Même si elle l’a trouvée sur un support non sécurisé, la signature de ProtonCA la rend inviolable.

La signature de ProtonCA ajoute également une non-répudiation aux clés fournies par Proton. En d’autres termes, si Proton fournit une mauvaise clé, la signature de ProtonCA prouve que la clé a été téléchargée depuis Proton. Cela réduirait la confiance en Proton et nous dissuaderait de fournir des clés malveillantes.

Pour éviter de certifier des clés obsolètes, ProtonCA applique une politique d’expiration stricte. Chaque clé est certifiée pour six mois à la fois. Un mois avant l’expiration d’un certificat, ProtonCA vérifie que l’adresse e-mail associée est toujours active et que la clé actuelle n’a pas été retirée. Si ces deux critères sont remplis, ProtonCA renouvellera la certification pour six mois supplémentaires.

Comment faire confiance à ProtonCA dans d’autres clients OpenPGP

La clé ProtonCA peut être récupérée ici(new window) et possède l’empreinte suivante : .

Vous pouvez importer cette clé dans votre trousseau GnuPG en utilisant la commande suivante :

$ gpg --import-key pubkey.asc

Vous devez ensuite définir le niveau de confiance suivant :

$ gpg --edit-key 0xD806C1AF5978E8C7> trust> 5> y> quit

PGP marquera alors automatiquement cette clé comme fiable et toutes les clés signées par cette clé comme indirectement fiables.

Le niveau de confiance cinq (ultime) est nécessaire si vous n’avez pas votre propre clé OpenPGP. Chaque chemin de confiance indirect doit commencer par une clé de confiance ultime.

Pour définir un niveau de confiance inférieur à cinq, vous devez signer localement la clé openpgp-ca@proton.me. Vous pouvez le faire avec les commandes suivantes :

$ gpg --edit-key 0xD806C1AF5978E8C7> lsign> y> save

Cela créera une signature non exportable sur la clé ProtonCA. Une fois cette étape effectuée, vous pouvez définir un niveau de confiance différent :

$ gpg --edit-key 0xD806C1AF5978E8C7> trust> 4> quit

Utiliser vos propres certifications

Puisque l’objectif de OpenPGP CA est de mettre en place un système de signature décentralisé, avoir une autorité de certification centrale unique qui émet des signatures irait à l’encontre du but recherché. C’est pourquoi nous avons ajouté une prise en charge des certifications sur les clés PGP importées.

Vous pouvez configurer votre propre instance de OpenPGP CA(new window) ou signer les clés en utilisant Sequoia ou GnuPG, puis les importer directement dans Proton. Il vous suffit d’importer la clé privée signée pour l’adresse souhaitée. La clé publique que nous avons rendue accessible aux utilisateurs de Proton Mail via l’Annuaire de Clés Web (WKD)(new window) ou notre Serveur de Clés Public (PKS) contient la signature importée.

Notez que si vous souhaitez ajouter une nouvelle clé, la signature ne sera pas automatiquement transférée vers la nouvelle clé. Vous devrez la signer à nouveau manuellement après son ajout.

MISE À JOUR 28 octobre 2022 : Cet article a ajouté trois paragraphes expliquant comment définir votre niveau de confiance en dessous de cinq.

Protégez votre vie privée avec Proton
Créer un compte gratuit

Articles similaires

en
Google is one of the biggest obstacles to privacy. The Big Tech giant may offer quick access to information online, but it also controls vast amounts of your personal or business data. Recently, more people are becoming aware of the actual price you
What to do if someone steals your Social Security number
en
If you’re a United States citizen or permanent resident, you have a Social Security number (SSN). This number is the linchpin of much of your existence, linked to everything from your tax records to your credit cards. Theft is a massive problem, whic
compromised passwords
en
  • Vie privée, les fondamentaux
Compromised passwords are a common issue and probably one of the biggest cybersecurity threats for regular people. How do passwords get compromised, and is there anything you can do to prevent it? * What does compromised password mean? * How do pa
Is WeTransfer safe?
en
  • Vie privée, les fondamentaux
WeTransfer is a popular service used by millions worldwide to send large files. You may have wondered if it’s safe or whether you should use it to share sensitive files. We answer these questions below and present a WeTransfer alternative that may su
what is a dictionary attack
en
  • Vie privée, les fondamentaux
Dictionary attacks are a common method hackers use to try to crack passwords and break into online accounts.  While these attacks may be effective against people with poor account security, it’s extremely easy to protect yourself against them by usi
Les fuites de données sont de plus en plus courantes. Lorsque vous vous inscrivez à un service en ligne, vous fournissez des informations personnelles précieuses pour les pirates, telles que des adresses e-mail, des mots de passe, des numéros de télé