Commentaires : Proton publie le code source de son gestionnaire de mots de passe pour montrer qu'il n'a rien à cacher

Proton Mail, la messagerie suisse connue pour son service crypté, vient de publier l’intégralité du code source de son gestionnaire de mots de passe. Une belle preuve de son engagement envers la sécurité et de sa transparence.

Donc du coup si on a le code source on peu facilement trouver les mots de passe non ?
Je demande je n’y connais rien :grin:

Eh bien… pas du tout ! On peut juste chercher les failles plus facilement (pour ceux qui s’y connaissent vraiment très très bien) mais c’est à double sens : la société sera prévenue plus facilement pour aider à les corriger. Beaucoup de sociétés font ça désormais.

1 « J'aime »

Heureusement non. En fait, faut voir ça comme une machine à chiffrer des messages.
La machine en elle-même permet de chiffrer et traduire les messages mais elle a besoin de paramètres ainsi que d’une clé ou d’un code qui influe sur le résultat produit par la machine. Et avoir le contenu à chiffrer/déchiffrer bien entendu.

Si on a pas l’ensemble de ces éléments, ça n’est pas exploitable. (à la condition que la machine soit bien conçu)

Et en soit, un gestionnaire de mot de passe a un fonctionnement proche.

Pour un cas concret, il y a un exemple très bien documenté qu’est le système de chiffrement des échanges utilisés par les Allemands pendant la seconde guerre mondiale : Enigma (machine) — Wikipédia

(l’article Wikipédia est très complet mais il y a des vidéos ou des articles qui résument l’histoire de façon vulgariser.)

Donc en fait dévoiler le code source ne sert strictement à rien car il peut très bien y avoir « des mouchards » dans la clé ou le code

Comme vouloir passer quelque chose en contrebande dans une voiture, le code source c’est la voiture et le clé c’est le moteur. Je planque ma contrebande dans le moteur. Je démonte la voiture pour montrer que je n’ai rien mais hors de question d’ouvrir le moteur, car c’est la clé qui permet à la voiture de rouler.

Non, la clé c’est « inerte », c’est comme un mot de passe, ça ne contient pas de code exécutable.

Et cette clé n’est pas fixée par Proton Pass de toute façon : pour chaque utilisateur, soit le code (celui qui est publié) génère une clé aléatoire, et cette clé est ensuite stockée en la chiffrant avec le mot de passe maître défini par l’utilisateur, ce qui fait que seul quelqu’un qui a le mot de passe maître de l’utilisateur peut accéder à la clé, soit le code génère une clé dérivée du mot de passe maître (et donc là encore, si on ne connait pas le mot de passe maître, on ne peut pas avoir la clé).

Si tu fais l’analogie avec la voiture, la clé n’est pas le moteur, mais bien juste… la clé qui permet de démarrer la voiture.

2 « J'aime »

Merci :+1:

Publier le code source c’est bien mais qu’est-ce qui prouve que l’application compilée qui tourne sur le serveur correspond bien au code source publié ?

1 « J'aime »

La partie « sensible » de l’application, celle qui a accès aux mots de passe en clair, ne tourne pas sur le serveur, mais sur la machine de l’utilisateur.

Donc il « suffit » de vérifier que :

  • le code n’envoie pas d’informations sensibles au serveur : il ne doit lui envoyer que des données chiffrées, sans aucune information permettant de les déchiffrer (donc pas d’envoi du mot de passe maître au serveur),
  • l’application téléchargeable (Android, iOS et extensions de navigateurs) est conforme à ce code source (pas trivial à vérifier, mais pas impossible non plus, surtout s’ils fournissent les scripts de build, il suffit alors de les exécuter puis d’étudier les différences entre la version qu’on a compilée et celle fournie par Proton, différences qui doivent normalement être minimes).

C’est d’ailleurs uniquement le code des applications qui a été publié, pas le code côté serveur.

2 « J'aime »

Si on va par là … et en suivant ton raisonnement.
La liste des ingrédients sur la nourriture c’est pareil, tout comme les composants d’un médicament, …
Bref au bout d’un moment c’est bien de chercher la petite bête mais pas que cette recherche devienne ridicule …

1 « J'aime »