web-dev-qa-db-fra.com

Comment les clés ProtonMail sont-elles distribuées?

Il existe un service appelé ProtonMail .

Il crypte les e-mails côté client, stocke les messages cryptés sur leurs serveurs, puis le destinataire les décrypte, également côté client et le système "ne stocke pas de clés".

Ma question est la suivante: comment fonctionne le déchiffrement?

Je suis un peu confus. Dois-je envoyer ma clé de déchiffrement à chaque destinataire avant qu'il ne puisse lire mes messages?

30
Protty

Je suis Jason, l'un des développeurs de ProtonMail.

Le déchiffrement utilise une combinaison de chiffrement asymétrique (RSA) et symétrique (AES).

Pour PM à PM courriels, nous utilisons une implémentation de PGP où nous gérons l'échange de clés. Nous avons donc toutes les clés publiques. Quant aux clés privées , lorsque vous créez un compte, il est généré sur votre navigateur, puis chiffré avec le mot de passe de votre boîte aux lettres (auquel nous n'avons pas accès). Ensuite, la clé privée chiffrée est envoyée au serveur afin que nous puissions vous la renvoyer à chaque fois que vous Nous stockons donc votre clé privée, oui, mais comme il s'agit de la clé privée chiffrée, nous n'avons en fait pas accès à votre clé.

Pour PM vers les e-mails extérieurs, le cryptage est facultatif. Si vous choisissez de crypter, nous utilisons un cryptage symétrique avec un mot de passe que vous avez défini pour ce message. Ce mot de passe peut être TOUT. Il ne doit PAS être votre Mot de passe de la boîte aux lettres. Vous devez en quelque sorte communiquer ce mot de passe au destinataire.

Nous avons également quelques autres astuces pour contourner les performances horribles de RSA.

Nous finirons par écrire un livre blanc avec tous les détails que tout le monde peut comprendre. Mais quelque chose comme ça est un projet d'une semaine en soi. Je m'excuse à l'avance si ma réponse n'a de sens que pour les cryptographes.

51
Jason S.

J'ai substantiellement modifié cette réponse après la réponse de Jason et une conversation par e-mail. L'original est toujours disponible dans l'historique des modifications.

Il y a deux cas différents ici: ProtonMail-to-ProtonMail et ProtonMail-to-Other.

Pour les courriers électroniques de PM à PM, le système est en mesure de gérer la distribution de clé publique/clé privée. Puisqu'ils ont écrit le code qui génère les clés privées et envoie les clés publiques au serveur et qu'ils connaissent le destinataire de l'e-mail avant de crypter, ils peuvent crypter avec la clé publique du destinataire et le destinataire peut décrypter avec leur clé privée. Cela peut être transparent pour les utilisateurs du système. Ils ne mentionnent pas la signature d'e-mails avec votre clé privée, mais cela devrait également être possible et transparent.

Les e-mails PM-to-Other n'utilisent pas de cryptage asymétrique. Lorsque vous créez un e-mail à un destinataire qui n'utilise pas ProtonMail, vous générez un nouveau mot de passe qui est utilisé pour dériver une clé symétrique utilisée pour crypter le message. Vous devez ensuite transmettre ce mot de passe à votre destinataire en utilisant une méthode différente et sécurisée indépendamment. Envoyer un e-mail à votre destinataire la clé de déchiffrement puis l'e-mail chiffré revient à ne pas utiliser le chiffrement si votre modèle de menace comprend un attaquant qui peut intercepter votre courrier électronique. (Si votre modèle de menace ne le fait pas inclut cette capacité, pourquoi avez-vous même besoin d'un courrier chiffré?)

Le courrier que votre destinataire reçoit réellement dans son client de messagerie n'est pas chiffré et n'est pas votre message d'origine. Il s'agit simplement d'un lien vers le site Web de ProtonMail où ils peuvent utiliser le mot de passe que vous leur avez déjà communiqué pour décrypter votre message.

Dans les deux cas, l'affirmation est que le chiffrement et le déchiffrement sont effectués à l'aide de Javascript dans votre navigateur et que les serveurs centralisés ne voient que les données chiffrées.

Si vous disposez d'une méthode de communication indépendante et sécurisée pour le mot de passe de déchiffrement, pourquoi ne pas simplement l'utiliser à la place de ProtonMail?

Une raison pourrait être que votre méthode indépendante n'est pas aussi pratique. Il peut s'agir de rendre visite au destinataire en personne ou de lui téléphoner. Une autre raison potentielle est à des fins publicitaires ou promotionnelles. Si vous aimez ProtonMail et souhaitez que vos contacts l'utilisent, leur envoyer un e-mail à partir de ProtonMail en fera la promotion.

Mais si vous avez une méthode que vous considérez sécurisée et pratique (OTR, Cryptocat, Skype, quoi que vous ayez confiance), alors pourquoi ne pas simplement l'utiliser?


Je suis prudent par nature et j'ai des réserves sur ce service, au moins jusqu'à ce qu'il ait subi son procès par le feu.

  1. Il n'y a aucun moyen de révoquer ou de modifier un mot de passe de boîte aux lettres. Si jamais le mot de passe de votre boîte aux lettres fuit, votre seul recours est de fermer votre compte et d'en créer un nouvea . Vraisemblablement, cela ressemblera beaucoup à l'obtention d'une nouvelle adresse e-mail, ce qui signifie que beaucoup d'e-mails seront livrés à votre ancienne adresse après que vous l'ayez fermée et que personne ne connaîtra votre nouvelle adresse. Je suppose que vous perdriez également l'accès à tous vos anciens e-mails. Il n'y a aucune raison cryptographique pour que vos destinataires perdent l'accès à l'e-mail que vous leur avez envoyé, mais le système peut supprimer tous les e-mails lorsque l'expéditeur est supprimé car ils sont tous stockés sur leurs serveurs.
  2. Pour les utilisateurs non ProtonMail qui reçoivent de nombreux e-mails cryptés des utilisateurs ProtonMail, ils devront stocker le mot de passe de décryptage quelque part et un mappage entre eux. Chaque e-mail individuel nécessitera la recherche et la saisie d'un nouveau mot de passe. Je dirais que ce n'est pas utilisable.
  3. Faire des réclamations est facile. Ladar Levison a dit que Lavabit n'a stocké aucune clé afin qu'il ne puisse pas être contraint de les divulguer. Cela s'est avéré faux . La conception de ProtonMail semble nettement meilleure, mais les affirmations de "Même nous ne pouvons pas lire votre courrier" sont toujours suspectes jusqu'à preuve du contraire.
  4. Ils omettent des détails importants de leurs FAQ/instructions . Par exemple, lorsqu'ils prétendent pouvoir supprimer des e-mails à un certain moment, ils ne mentionnent pas qu'un utilisateur peut copier cet e-mail dans un autre programme avant qu'il ne soit supprimé et que la copie ne sera pas supprimée. Ils omettent également le détail selon lequel vous devez trouver votre propre méthode sécurisée de distribution du mot de passe de déchiffrement pour les e-mails PM-to-Other.
  5. La fonctionnalité de délai d'expiration fait référence à SnapChat qui ne supprime pas les images, mais arrête simplement de les répertorier dans l'application .
  6. Certaines personnes intelligentes ont également des réserves à ce sujet .
  7. Les seules métadonnées mentionnées sont les adresses IP et les temps d'accès. Les métadonnées telles que les adresses À: et De: doivent être stockées sur leurs serveurs dans un format accessible (c'est-à-dire en texte brut ou avec des clés de chiffrement disponibles) pour permettre que l'e-mail soit remis à la bonne personne. Les adresses IP et les temps d'accès peuvent évidemment encore être capturés et stockés par des attaquants.
  8. Le système ne peut pas être utilisé si vous êtes hors ligne. Pas de rattrapage sur votre e-mail pendant un vol ou dans le métro. Vous n'avez pas de copie de votre e-mail si le service s'arrête.
  9. Votre clé privée est stockée sur les serveurs ProtonMail, cryptée avec AES256 en utilisant votre mot de passe de boîte vocale. C'est probablement pour que vous puissiez utiliser ProtonMail sur un autre ordinateur et qu'ils puissent simplement pousser votre clé privée sur cet ordinateur pour que vous puissiez la décrypter avec votre mot de passe de boîte aux lettres. Il s'agit d'un compromis de sécurité pour la convivialité/commodité. C'est également en contradiction avec la page de sécurité sur le site Web qui dit qu'ils ne sont pas envoyés au serveur.
  10. La réponse de Jason mentionne des "astuces" pour améliorer les performances de RSA. Des modifications apparemment bénignes ont été apportées auparavant au code cryptographique qui ont complètement compromis sa sécurité.

Ce n'est certainement pas à l'épreuve de la NSA, mais tout le buzz à ce sujet utilise cette expression exacte pour le prétendre. Leur propre article de blog sur les modèles de menace dit qu'il n'est pas à l'épreuve de la NSA.

Cela peut vous être utile, mais pas si vous essayez d'organiser une révolution.

12
Ladadadada

"Le système d'authentification et de décryptage séparé de ProtonMail signifie la connexion à un compte ProtonMail qui nécessite deux mots de passe. Le premier mot de passe est utilisé pour authentifier l'utilisateur et récupérer le compte correct . Après cela, les données chiffrées sont envoyées à l'utilisateur. Le deuxième mot de passe est un mot de passe de déchiffrement qui ne nous est jamais envoyé. [ Le deuxième mot de passe est] utilisé pour déchiffrer les données de l'utilisateur dans le navigateur afin que nous n'ayons jamais accès aux données déchiffrées ou au mot de passe de déchiffrement. Pour cette raison, nous ne pouvons pas non plus pour faire la récupération de mot de passe. Si vous oubliez votre mot de passe de déchiffrement, nous ne pouvons pas récupérer vos données. "

En commentaire, je dirais que cela serait toujours vulnérable à un compromis de clé SSL de style NSA vs Lavabit. Si vous pouvez obtenir leur clé SSL, vous vous faites passer pour ProtonMail et utilisez javascript pour voler à la fois le premier et le deuxième mot de passe de tous les utilisateurs. Cela peut casser tout le protocole de chiffrement.

Ainsi, ce ne sera pas le "seul système de messagerie électronique auquel NSA ne peut pas accéder": http://www.forbes.com/sites/hollieslade/2014/05/19/the-only-email-system-the-nsa-cant-access /

2
Jasyth

Sous l'onglet "Sécurité" de leur page, ils indiquent:

Nous prenons en charge l'envoi de communications cryptées à des utilisateurs non ProtonMail via un cryptage symétrique. Lorsque vous envoyez un message chiffré à un utilisateur non ProtonMail, il reçoit un lien qui charge le message chiffré sur son navigateur qu'il peut déchiffrer à l'aide d'une phrase secrète de déchiffrement que vous avez partagée avec lui.

Il semble que vous devez d'abord partager la phrase secrète de déchiffrement avec le récepteur.

0
JSmyth

Le système d'authentification et de déchiffrement séparé de ProtonMail signifie la connexion à un compte ProtonMail qui nécessite deux mots de passe. Le premier mot de passe est utilisé pour authentifier l'utilisateur et récupérer le compte correct. Après cela, des données chiffrées sont envoyées à l'utilisateur. Le deuxième mot de passe est un mot de passe de déchiffrement qui ne nous est jamais envoyé. Il est utilisé pour déchiffrer les données de l'utilisateur dans le navigateur afin que nous n'ayons jamais accès aux données déchiffrées ou au mot de passe de déchiffrement. Pour cette raison, nous ne pouvons pas non plus effectuer de récupération de mot de passe. Si vous oubliez votre mot de passe de déchiffrement, nous ne pouvons pas récupérer vos données.

Source

Il apparaît donc qu'un mot de passe est utilisé pour vous authentifier, et un deuxième mot de passe (qui est la clé de déchiffrement) est utilisé pour récupérer vos données et les afficher dans votre navigateur (via HTTPS). Votre deuxième mot de passe/clé de déchiffrement n'est pas stocké sur leurs serveurs et tout le déchiffrement se fait localement dans votre système. Ils ne peuvent pas décrypter ce à quoi ils n'ont pas de clés. Cela ne signifie cependant pas qu'un enregistreur de frappe sur votre système ne peut pas obtenir les informations nécessaires pour déchiffrer vos données.

Quant à l'envoi d'e-mails sécurisés à des utilisateurs non Proton:

Même votre communication avec les utilisateurs non ProtonMail est sécurisée.

Nous prenons en charge l'envoi de communications cryptées à des utilisateurs non ProtonMail via un cryptage symétrique. Lorsque vous envoyez un message chiffré à un utilisateur non ProtonMail, il reçoit un lien qui charge le message chiffré sur son navigateur qu'il peut déchiffrer à l'aide d'une phrase secrète de déchiffrement que vous avez partagée avec lui. Vous pouvez également envoyer des messages non cryptés à Gmail, Yahoo, Outlook et autres, tout comme les e-mails habituels.

À titre personnel, cela semble très sûr. Si leurs serveurs étaient jamais saisis, il semble qu'ils ne pourraient rien faire pour déverrouiller les données. Le lien le plus faible est les utilisateurs finaux, les mots de passe qu'ils utilisent et si leurs mots de passe sont compromis ou non (même s'il semble que même si la base de données de mots de passe de ProtonMail pour le premier mot de passe a été piratée, tous les attaquants auraient des données chiffrées, car non base de données est utilisée pour stocker le deuxième mot de passe).

0

je suppose qu'ils utilisent une clé PGP, avec une clé publique et une clé privée. Ils stockent votre clé publique et votre clé privée cryptée à l'aide de votre mot de passe (vous devez leur faire confiance pour ne stocker que la clé privée cryptée). Ils ont votre clé publique, ils peuvent donc crypter tout courrier entrant. Si vous souhaitez lire votre courrier, une fois que vous êtes identifié, ils vous envoient (c'est transparent) la clé privée chiffrée à l'aide de votre mot de passe qui est décrypté avec votre mot de passe, et vous pouvez ensuite utiliser cette clé privée pour déchiffrer vos courriels. Si c'est ça, ça me semble plutôt bien.

0
nightrow