ProtonBlog

OpenPGP, la norme définissant comment chiffrer et signer des messages en utilisant PGP, le format de chiffrement d’e-mails le plus utilisé, a reçu une mise à niveau majeure, introduisant diverses améliorations de sécurité et des algorithmes cryptographiques plus modernes.

Le PGP est utilisé pour sécuriser les messages électroniques depuis les années 90. Au cours des 25 dernières années, la norme a été mise à jour à plusieurs reprises. Cependant, les avancées cryptographiques ont continué à repousser les limites de la confidentialité et de la sécurité. Depuis 2016, année où nous avons commencé à maintenir OpenPGP.js(new window), l’une des bibliothèques de chiffrement d’e-mails open source les plus utilisées au monde, nous avons œuvré à moderniser le PGP tout en préservant l’un de ses principaux atouts — l’interopérabilité. Cela nous permet d’apporter le meilleur de la crypto moderne à Proton Mail tout en assurant que Proton Mail ne soit pas un jardin clos.

La normalisation garantit une interopérabilité future, et Proton a également été activement impliqué dans le processus de normalisation avec le groupe de travail OpenPGP à l’Internet Engineering Task Force (IETF). Le résultat de cela est l’« actualisation crypto(new window) » de la norme OpenPGP, comme elle a été surnommée, a apporté un chiffrement authentifié moderne, des courbes plus sécurisées, un hachage de mot de passe résistant à la mémoire, et plus encore.

En standardisant ces améliorations plutôt qu’en utilisant des protocoles propriétaires, nous ouvrons la voie à un écosystème de messagerie électronique plus sécurisé et nous garantissons que les e-mails chiffrés restent interopérables.

Améliorations de la sécurité

Voici un aperçu des plus grandes améliorations de sécurité dans l’actualisation crypto du PGP.

Chiffrement authentifié moderne (AEAD)

Un chiffrement moderne doit être résistant à la falsification clandestine. Un attaquant sans accès à votre clé secrète ne devrait pas pouvoir modifier votre message sans être détecté. Un chiffrement avec cette propriété est appelé « chiffrement authentifié ».

OpenPGP dispose depuis longtemps d’un chiffrement authentifié, utilisant un mécanisme appelé le « Code de détection de modification » (MDC). Bien que cela remplisse sa fonction, les schémas modernes de chiffrement authentifié atteignent le secret et l’authentification en un seul algorithme intégré. Ces modes de chiffrement, appelés algorithmes AEAD, offrent de meilleures performances au même niveau de sécurité.

La nouvelle norme inclut GCM, un algorithme AEAD disponible dans l’API de cryptographie Web, qui fournit des implémentations natives de primitives cryptographiques aux applications web et offre de meilleures performances et sécurité. Pour cette raison, nous commencerons bientôt à utiliser ce mode dans tous les produits Proton.

Courbes plus sécurisées

Nouveauté dans la spécification de l’actualisation crypto, un ensemble d’algorithmes de cryptographie à clé publique qui utilisent Curve25519 et Curve448 pour le chiffrement et le déchiffrement (X25519 et X448) et pour la signature et la vérification (Ed25519 et Ed448). Les membres de la communauté Proton savent que nous utilisons Curve25519 depuis des années. Néanmoins, ce sera la première fois qu’elle est formellement spécifiée.

Nous avons également proposé d’ajouter Curve25519 et Curve448 à l’API de cryptographie Web(new window). Certains navigateurs, tels que Chrome et Safari, ont commencé à implémenter Curve25519. Nous prévoyons d’utiliser cela dans OpenPGP.js pour améliorer encore la performance et la sécurité de nos applications web une fois qu’il sera disponible.

Fonction de hachage de mot de passe résistant à la mémoire

OpenPGP intègre des fonctions de hachage de mot de passe, qu’il nomme les « algorithmes string-to-key (S2K) ». Cependant, jusqu’à l’actualisation cryptographique, tous ces algorithmes étaient assez faibles. L’algorithme le plus robuste, « S2K itéré et salé », sale le mot de passe puis hache à plusieurs reprises le sel et le mot de passe en utilisant une fonction de hachage cryptographique telle que SHA-2 pour un nombre configurable d’itérations, mais avec une limite supérieure de 62 MiB sur les données hachées. Étant donné que le hachage SHA-2 est devenu très rapide et peu coûteux, cela ne suffit plus pour hacher de manière sécurisée un mot de passe. Pour cette raison, Proton a depuis longtemps recours à une fonction de hachage de mot de passe supplémentaire, bcrypt, pour hacher les mots de passe avant de les utiliser pour chiffrer les messages ou les clés OpenPGP.

OpenPGP va passer à Argon2(new window), le gagnant du concours de hachage de mots de passe. Cette fonction est «difficile sur la mémoire(new window)», ce qui signifie qu’elle nécessite une quantité significative de mémoire pour hacher un mot de passe. Cela rend plus difficile pour un attaquant d’optimiser le processus de devinette de mots de passe à l’aide de matériel dédié, tel que des circuits intégrés spécifiques à une application(new window), car la vitesse de hachage restera limitée par la vitesse de la mémoire. Avec la mise à jour de la norme OpenPGP, nous passerons également à Argon2 chez Proton.

Abandon des algorithmes obsolètes

L’actualisation cryptographique abandonne les primitives et algorithmes cryptographiques anciens, y compris les algorithmes de hachage MD5, SHA1 et RipeMD, les algorithmes symétriques IDEA, 3DES et CAST5, et les algorithmes de clé publique ElGamal, DSA et les clés RSA de moins de 3072 bits (le niveau de sécurité comparable à Curve25519). Ils sont tous considérés comme moins sécurisés que leurs alternatives modernes et, de ce fait, ne conviennent pas à l’utilisation dans de nouvelles données ou même à la consommation de données existantes dans certains cas. La norme par défaut de Proton a longtemps été Curve25519, qui est plus sécurisée.

Prévention des attaques par écrasement de clé

Un domaine de recherche de l’équipe Crypto de Proton a été les attaques par écrasement de clé, et en 2022, nous avons publié un article de recherche(new window) sur ce sujet en collaboration avec le professeur Kenneth Paterson de l’ETH Zurich. Cette recherche a également été présentée à la conférence ACM sur la sécurité informatique et des communications à Los Angeles en novembre 2022. Bien que nous ayons ajouté des correctifs de sécurité à OpenPGP.js et à GopenPGP(new window) dès la découverte de ces problèmes, la nouvelle spécification OpenPGP aborde les vulnérabilités de manière plus efficace.

Robustesse face aux vulnérabilités futures

Si la plupart des changements dans l’actualisation cryptographique visent à corriger les vulnérabilités connues ou à moderniser les primitives cryptographiques utilisées, certains visent à prévenir les vulnérabilités potentielles dans les primitives cryptographiques qui pourraient être découvertes à l’avenir et qui pourraient affecter OpenPGP.

En particulier, les signatures sont désormais salées, en d’autres termes, une valeur aléatoire est hachée avant le message ou le document signé. Cela rend plus difficile la réalisation d’une attaque par collision, où un attaquant remplace une signature d’un document donné par une signature d’un autre document qui partage le même préfixe, car cette signature peut avoir été hachée avec un sel différent, signifiant que le préfixe ne correspondrait pas.

Cela signifie que si une attaque telle que SHAttered(new window) (qui a démontré une collision dans SHA1) était jamais découverte contre les algorithmes de hachage actuels (comme SHA2), OpenPGP ne serait pas autant impacté.

Améliorations à venir

Après la publication de l’actualisation cryptographique de la norme OpenPGP, nous prévoyons de continuer à travailler avec le groupe de travail OpenPGP pour apporter une cryptographie encore plus avancée et des fonctionnalités supplémentaires à PGP, telles que :

Améliorations de sécurité

  • Cryptographie post-quantique (un sujet sur lequel nous travaillons déjà. Nous publierons un article de blog séparé à ce sujet prochainement.)
  • Confidentialité persistante (protection des messages envoyés aujourd’hui même si une clé est compromise demain)
  • Séparation de domaine pour la signature et/ou le chiffrement

Facilitation de nouvelles fonctionnalités

  • Transfert automatique utilisant le réchiffrement par procuration
  • Clés symétriques persistantes pour le stockage à long terme de matériel de clé symétrique, de messages chiffrés symétriquement et d’attestations symétriques
  • Révocateur désigné pour remplacer le mécanisme obsolète de clé de révocation
  • Signatures d’attestation pour faciliter les certifications de tiers attestées par la première partie (1PA3PC).
  • Clés supplantées pour faciliter la transition vers de nouvelles clés
  • Interface OpenPGP sans état (SOP)
  • Extensions au RFC 3156(new window) (PGP/MIME)

Spécifications et améliorations des mécanismes de découverte de clés basés sur le réseau

  • Protocole de serveur de clés HTTP (HKP)
  • Annuaire de clés Web (WKD)

Vous pouvez trouver des détails supplémentaires sur les sujets proposés ici(new window).

Spécification et implémentations

La mise à jour « rafraîchissement crypto » de la norme OpenPGP est actuellement en cours de révision par le directeur de la zone de sécurité de l’IETF. Une fois le document passé en revue, il sera publié en tant que nouvelle norme.

La spécification a été co-écrite par Daniel Huigens de Proton, Justus Winter de Sequoia-PGP et Niibe Yutaka de l’Initiative du Logiciel Libre du Japon (FSIJ). Elle a été éditée par Paul Wouters de Aiven. Les présidents du groupe de travail, Daniel Kahn Gillmor de l’American Civil Liberties Union (ACLU) et Stephen Farell du Trinity College de Dublin, ont dirigé le processus. Nous tenons à les remercier, ainsi que toutes les autres personnes qui ont contribué au rafraîchissement crypto, pour avoir aidé à rendre Internet plus sûr !

Nous avons déjà implémenté le rafraîchissement crypto dans OpenPGP.js et GopenPGP, les deux bibliothèques OpenPGP open source maintenues par Proton. Nous publierons bientôt de nouvelles versions avec ces améliorations afin que toute application utilisant ces bibliothèques, y compris Proton Mail, Proton Drive, Proton Pass et bien d’autres, puisse bénéficier des améliorations de sécurité et de performance du rafraîchissement crypto.

Nous tenons également à remercier le Sovereign Tech Fund(new window), une initiative financée par le ministère fédéral allemand de l’Économie et de l’Action Climatique qui soutient les projets open source contribuant à l’infrastructure numérique au service de l’intérêt public, pour avoir financé l’implémentation du rafraîchissement crypto dans OpenPGP.js et GopenPGP(new window).

Vous pouvez vérifier la progression de l’implémentation de diverses bibliothèques OpenPGP, y compris OpenPGP.js et GopenPGP, dans les résultats de la suite de tests d’interopérabilité OpenPGP pour le rafraîchissement crypto(new window). Sequoia-PGP a développé cette suite de tests, qui teste les implémentations OpenPGP pour l’interopérabilité afin de garantir que les messages électroniques peuvent être envoyés entre deux utilisateurs quelconques, indépendamment de l’application ou de l’implémentation OpenPGP qu’ils utilisent.

Impact

PGP est utilisé pour sécuriser de multiples services Proton tels que Proton Mail, Proton Drive et Proton Pass, mais ils sont loin d’être les seuls. Thunderbird, le populaire client de messagerie de bureau, offre une prise en charge intégrée pour OpenPGP. Mailvelope et Flowcrypt, deux extensions de navigateur utilisant OpenPGP.js, permettent à quiconque de chiffrer de bout en bout ses e-mails en utilisant OpenPGP même si leur fournisseur de messagerie électronique ne prend pas en charge le chiffrement de bout en bout. Ce dernier propose également des applications mobiles pour Android et iOS. Toutes ces applications, et bien d’autres encore, font partie de l’écosystème OpenPGP, permettant aux utilisateurs d’envoyer des messages chiffrés de manière interopérable sans être liés à un seul fournisseur ou application. La norme ouverte favorise l’innovation et évite le verrouillage, bénéficiant finalement aux utilisateurs finaux.

Grâce au rafraîchissement crypto, les millions de personnes qui utilisent ces applications bénéficieront de toutes les améliorations de sécurité et de performance mentionnées ci-dessus. Vos messages seront chiffrés de manière plus sécurisée, que vous communiquiez avec un autre utilisateur de Proton ou avec un utilisateur de l’une des autres applications prenant en charge OpenPGP.

Avec votre soutien, nous sommes impatients de continuer à développer une cryptographie interopérable, open source et basée sur des standards ouverts pour faire avancer la mission de Proton et de tout l’écosystème de la confidentialité open source.

Ce travail a été réalisé par Daniel Huigens, Lara Bruseghini et Lukas Burkhalter de l’équipe de Cryptographie de Proton.

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é