MyCryptoChat, polémique et failles

icon Tags de l'article : ,

Janvier 17, 2014


Je suis tombé, grâce à Vinc3r, sur un article qui remet clairement en cause l'utilisation de MyCryptoChat : Why you should not use MyCryptoChat.

Je trouve déjà ça très sympa d'avoir un peu creusé le fonctionnement de l'application et de remonter les bugs et les problèmes liés au chiffrement en JavaScript. Bon, il aurait aussi pu me contacter pour m'en parler, cela aurait été sympa...

Il a raison sur de nombreux points d'ailleurs, mais il a également tort sur d'autres...

Déjà, les grosses failles qu'il révèle ont déjà été corrigées (vous pouvez le voir sur le code source) : XSS, génération de la clef faillible, seed qui ne change pas, etc.

Ensuite, il n'a pas tout à fait compris l'intérêt de l'application : elle a pour but d'être KISS, simple à déployer et de ne pas nécessiter d'inscription.

Je n'ai jamais promis d'application 100% secure, déjà parce que j'en suis incapable (ce n'est pas mon job), ensuite parce que c'est impossible (même les meilleures applications de cryptographie ont encore des failles aujourd'hui).

J'ai juste essayé d'offrir une application simple et légère, qui offre un peu plus de sécurité et d'indépendance des données que la majorité des services qu'on utilise aujourd'hui.

Elle n'est pas parfaite, mais c'est pour ça que j'ai publié le code source : pour que les gens m'aident à l'améliorer. Ce qu'il a un peu fait malgré lui (heureusement que j'ai entendu parler de l'article par Vinc3r...).

Après, certaines de ses critiques ne sont pas forcément adaptées et/ou constructives :
  • Oui, JavaScript n'est pas la panacée niveau chiffrement des données... Mais je me vois mal demander aux utilisateurs du site d'installer des outils ou des modules pour ensuite communiquer... On perdrait légèrement l'intérêt du site. Même si ce n'est pas extra, c'est toujours mieux que rien et c'est le mieux qu'on puisse faire dans un navigateur sans passer par un module externe...
  • Oui, la Seed pour les IPs est en dur. Elle est modifiable (un message d'erreur apparaîtra désormais lorsqu'on ne l'a pas changée) et sert juste à éviter à quelqu'un de retrouver les IPs à partir des hashs...
  • Pas de documentation ? Et alors ? Le peu qu'il y a à savoir est expliqué sur les pages du projets et pour plus d'informations tu peux toujours aller regarder le code source...
  • Tu dois faire confiance au serveur ? Oui, comme pour TOUS LES SITES WEBS SUR LESQUELS TU VAS. Sauf que tu peux aussi déployer ton propre MyCryptoChat sur ton serveur si tu veux avoir vraiment confiance... C'est même le principe à la base...
  • Pas moyen de vérifier si le code source est le bon ? cf. point d'avant.
  • Ce n'est pas simple de vérifier si le JavaScript est le bon ? Si, tu copies le contenu du fichier javascript et tu le compare avec celui du code source... Ou alors cf. point d'avant.
  • Le site ne doit pas dépendre de ressources externes ? Il n'en dépend pas...
  • Il n'y a pas d'authentification ? Oui, c'est le principe, encore et toujours...
  • On peut se faire passer pour quelqu'un d'autre si on a la même IP. Oui, car c'est la seule information un minimum *nominative* qu'on a. Sinon il faudrait rajouter de l'authentification, et, encore une fois, on perdrait l'intérêt de l'application...
  • L'application n'est disponible qu'en HTTP et est hébergée dans Azure ? Il s'agit de l'application démo, il ne tient qu'à toi de la déployer ailleurs en HTTPS.

Voilà, j'espère avoir répondu aux questions (et aux doutes) que les gens se posent vis-à-vis de MyCryptoChat.

Si vous avez des questions, je suis encore une fois disponible dans les commentaires ;)

Ah, juste une chose : le code source est à jour, mais pas le package à déployer. Je pense le mettre à jour dans la journée avec les dernières modifications. Si vous voulez mettre à jour ou déployer un MyCryptoChat, n'hésitez pas à utiliser le code source plutôt que le package, car le code source sera forcément plus à jour.

Bonne journée à tous !