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 !

12 commentaires

Triton - 17/01/2014 à 12:01:58

Je pense que personne n'a imaginé que c'était infaillible. Ça n'empêche que c'est mieux d'utiliser MyCrytoChat (éventuellement sur ton propre serveur), que d'utiliser le chat de Facebook...

Après, le service est jeune et il ne demande qu'à évoluer. C'est également pour ça que les sources sont disponibles. (C'est un peu le principe...)

@jvoisin : Ton analyse montre que tu sais de quoi tu parles et que tu as pris du temps pour écrire ton article. Cependant, je trouve qu'elle est un peu "dure"... J'espère que toi et Tommy pourrez discuter par mail et améliorer ensemble l'application. :-)

@répondre #lien

jvoisin - 17/01/2014 à 13:15:59

@Tommy: C'est transféré. Ça expliquerai pourquoi tu n'as pas reçu le précédent. Désolé.

@répondre #lien

dynek - 17/01/2014 à 15:27:58

Il est tellement simple de détruire publiquement le travail d'autrui plutôt que proposer un coup de main en privé.

@répondre #lien

dynek - 17/01/2014 à 15:28:42

Oh et surtout il pense passer pour un héro je suppose.

@répondre #lien

qwerty - 17/01/2014 à 17:54:27

Salut !
Une suggestion serait une option demandant un MDP pour avoir accès à une conversation... Ca serait pratique.

@répondre #lien

Woolyss - 17/01/2014 à 18:21:20

Projet open-source très intéressant!
Merci pour ces remarques pertinentes au sujet de la sécurité. Je me posais aussi ce genre de questions.

@répondre #lien

tester - 17/01/2014 à 21:47:41

elle a pour but d'être KISS, simple à déployer et de ne pas nécessiter d'inscription.

Si ça t'oblige à installer/securiser/admisnistrer un serveur web chez toi (et nulle part ailleurs vu qu'il y aura toujours un risque de manipulation de données), ça perd un peu de son effet kisscool non ?

Enfin je dis ça je dis rien ;)

@répondre #lien

Kokorikoo - 17/01/2014 à 22:45:25

Au contraire, je trouve que MyCryptoChat représente une très bonne base et dans l'idéal chacun devrait modifier/adapter le code (même un peu) pour augmenter la difficulté de l'éventuelle exploitation d'une faille a pseudo-grande échelle. La seule chose qui fait flippé les pas beaux, c'est le michu noyé dans la masse et le seul levier qu'il nous reste c'est de faire augmenter cette masse. Je ne suis pas un criminel mais il m'arrive d'avoir des idées et je n'ai pas envie de les voir exploitées à ma place, surtout par un pays qui est champion en tout, parce qu'il triche... Donc moi je dis, Tommy bravo car perso, j'avais la flemme de le faire et là, ça me donne envie de faire mon petit fork rien qu'a moi puisque le taff est déjà bien entamé. De plus, la dernière version est assez difficile a exploiter pour un 'robot' et si le chat est mis en place à un instant T sur un serveur x puis disparait, franchement à moins d'être vraiment sur des affaires ultra chelou et déjà bien surveillé on peut dire que la sécurité est largement au dessus de tout ce que l'on trouve (de simple, pour la masse). Mes propos n'engagent que moi^^

@répondre #lien

jvoisin - 29/01/2014 à 16:25:39

@dynek: Un coup de main ? J'ai l'impression que tu n'as pas compris l'article. Le principe même de mycryptochat est foireux; il n'est pas possible de l'améliorer. Comme métaphore, il y aurait la cheminée en carton. Ça ne peut pas marcher. Tu auras beau "donner un coup de main", ça restera foireux. Pour faire des cheminées, il vaut mieux utiliser des matériaux ininflammables, même si c'est louable comme idée de vouloir utiliser du carton pour construire des cheminées pour les masses.

@répondre #lien

Pètz - 28/05/2014 à 09:06:49

j'aime la notion de "zone sécurisé et crypté" mais pour le coup je me pose plein de questions...

la principal c'est cela:
* la garanti que le code exécuté sur le client et bien celui provenant du serveur?
- le client est t'il sûr? pas d’extensions dans son navigateur qui modifie le comportement des scripts?
- utilise t'il un proxy (à son insu?) qui pareil, charge des fichiers ou modifie l'intégrité des codes JavaScript
- le FAI? n'en fait'il pas autant?
- la personne n'est elle pas surveillé par le gouvernement et tous ses requêtes web ne sont il pas "réajusté" pour que des personnes sachent ce qu'il fait.

Bon, en utilisant SSL on doit pouvoir éviter une grosse parti de ces problèmes (sûr? j'en suis pas certain).
Mais le SSL pour le coup suffit à lui seul aux échanges cryptés.

Créer une extension pour le navigateur (là les fichiers sont présent sur le client) mais rien ne garanti que les scripts sur le disques ne soit pas modifié par un programme malveillant...

Alors là oui, on peu dire bah Internet c'est foutu...

Evidemment je suis extrême, mais je pense que des gens comme toi lance un véritable débat en créant des outils de communication crypté.
Mega, Cryptochat et surtout MyCryptoChat son de très bonne solution et justement, la question de la perfectibilité est posé de manière concrète.

Peu ont palier à ses problèmes? Par design? Non?

Perso, j'adore l'idée d'avoir un serveur à la méga stockant des fichiers crypté (balaise) que tout le monde pourrai voir mais impossible à décrypté sans la bonne clé. Mais l'ensemble des outils permettant ces 2 étapes (cryptage/décryptage) peuvent être corrompu par des tiers. Et sur Internet, y'en a beaucoup.

Peu on réellement sécurisé des informations sur un ordinateur? et sur Internet?

ps: je sais que le site et même le projet n'est pas le sujet du débat, mais je profite de ce poste pour en parler.

@répondre #lien

icon Flux RSS des commentaires de cet article

Les commentaires sont fermés pour cet article