mChat English Ouvrir mChat

mChat · document

Comment ça marche, en détail

La page d'accueil dit l'essentiel en six phrases. Celle-ci donne les noms exacts, pour qui veut vérifier plutôt que croire.

01

La poignée de main

Chaque conversation ouvre un canal Noise XX classique en X25519 et, en parallèle, un échange ML-KEM-768. La clé de transport finale dérive des deux à la fois, liée à l'empreinte de la poignée de main. La suite complète s'appelle Noise_XX_25519+MLKEM768_ChaChaPoly_BLAKE2s.

02

Pourquoi deux et pas un

X25519 est éprouvé mais tombera devant un ordinateur quantique en état de marche. ML-KEM est conçu pour y résister mais il est jeune. Les composer veut dire qu'il faut casser les deux, donc que ni la faiblesse future de l'un ni un défaut encore inconnu de l'autre ne suffit.

03

Les groupes

Les salons utilisent MLS, la norme de messagerie de groupe de l'IETF publiée en RFC 9420. La clé du groupe change à chaque arrivée et à chaque départ : qui part ne lit plus la suite, qui arrive ne relit pas le passé.

04

Le serveur

Trois rôles, tous aveugles au contenu : un annuaire de clés publiques, un relais de blocs opaques, et l'hébergement du client web. Il ne détient aucune clé privée, donc il n'y a rien à lui demander sous contrainte qu'il puisse donner.

05

Les appels

L'audio et la vidéo passent par un serveur LiveKit que nous hébergeons nous-mêmes. Le jeton qui ouvre une salle est signé par votre clé de compte, et le nom de la salle est dérivé des deux noms de la paire : une salle dont on ne fait pas partie ne peut pas être nommée.

06

Ce qui reste à faire

La suppression de compte en libre-service. Elle est écrite ici parce qu'un défaut annoncé se corrige, tandis qu'un défaut caché s'apprend au mauvais moment.