Si vous voulez discuter tranquillou sur un petit bout de web avec vos potes sans qu'un Bernard ou un Jean Jacques ne s'invite dans la conversation, voici un nouveau service de chat 100% chiffré de bout en bout.

Ça s'appelle Darkwire.io, les sources sont disponibles ici et ça fonctionne de la manière suivante. Lorsque vous vous connectez au site, vous créez un salon de discussion, ce qui génère en local une première paire de clés pour le chiffrement (privée / publique en RSA-OAEP)  et une paire de clés (privée / publique en RSASSA-PKCS1-v1_5) pour la signature. Ensuite votre ami(e) vous rejoint et elle/lui aussi génère ces clés. Ensuite, vous échangez vos clés publiques et vous pouvez commencer à discuter.

Capture d'écran 2016-02-04 14.22.43

Dès qu'un nouveau message est envoyé, une clé de session (en AES-CBC) et un vecteur d'initialisation aléatoire sont créés. Le message est alors chiffré en utilisant ce vecteur et cette clé de session et le tout est signé. Ensuite ce package est transmis au correspondant qui peut alors déchiffrer le message en utilisant sa clé privée, la clé de session et le vecteur. Et la signature est bien évidemment validée. Et si on est plusieurs, le message est chiffré avec les clés publiques de tout le monde.

C'est une implémentation de l'API de crypto web standard et si vous voulez vous pencher là-dessus ou héberger ce code sur votre propre serveur, c'est possible si vous récupérez  les sources.

Le point faible de Darkwire c'est que vous ne savez pas forcement qui vous avez en face. Alors en attendant qu'on puisse s'authentifier pour valider son identité, je vous recommande de mettre au point un mot clé secret en amont avec votre correspondant, la prochaine fois que vous irez boire un verre avec lui.