Messagerie chiffrée de bout en bout
Sur un canal chiffré, un message est chiffré sur l'appareil qui l'écrit et déchiffré sur ceux de ses destinataires. Le serveur transporte des blobs qu'il ne peut pas lire. Voici ce que cela garantit, et ce que cela ne garantit pas.
Ce qui est protégé
Le contenu
Textes, réactions, épingles, réponses de fil et pièces jointes des canaux chiffrés : chiffrés par le protocole MLS (RFC 9420), une clé par fichier pour les pièces. Ni Scutti ni l'hébergeur ne peuvent les lire.
Le passé
Un appareil retiré d'un canal ne lit plus ce qui suit. Un appareil qui entre ne lit pas ce qui précède, sauf ce qu'un appareil de confiance lui transmet.
Les clés
Elles ne quittent jamais les appareils de leur propriétaire. Sur le web, elles sont rangées dans le navigateur sous une clé non exportable ; dans l'application, dans le trousseau du système. La sauvegarde par phrase secrète est chiffrée avant de partir, et la phrase ne quitte pas son auteur.
Ce qui ne l'est pas
Les métadonnées
Qui écrit dans quel canal, quand, à quelle fréquence, la taille d'une pièce jointe, et si un message mérite une notification. Le serveur en a besoin pour acheminer.
Les appareils
Un appareil compromis lit ce qu'il déchiffre. L'empreinte de sécurité se compare de vive voix entre correspondants, et un appareil perdu se révoque depuis « Mon compte > Appareils ».
La recherche
Aucune recherche ne couvre un canal chiffré : le serveur ne peut pas indexer ce qu'il ne lit pas, et l'application ne le fait pas non plus. C'est un choix : un index local serait une seconde copie des messages sur chaque appareil.
La modération
L'éditeur ne peut ni lire ni modérer un canal chiffré. Un signalement passe par la structure, qui en est responsable ; l'éditeur ne peut agir que sur le compte (suspension, suppression), jamais sur le contenu.
Le navigateur
Le code de la messagerie web est servi par le serveur. Un serveur malveillant pourrait servir un code piégé à une seule personne. C'est pour cela que l'application native est l'ancre de confiance, et que le code servi est vérifiable (ci-dessous).
Vérifier le code servi
Manifeste
Le serveur publie les empreintes SHA-256 du bundle messagerie sous
/.well-known/scutti-messagerie.json. Le dépôt public de Scutti versionne l'empreinte du cœur cryptographique, et sa construction est reproductible : rebâtir le même commit donne le même manifeste.
Cœur MLS
WASM servi :
509a5b2016cf1b5ef86cd06e4ef6ccfcdcdec3cda4270a3394e228489f86f01f, construit au commit 6c397c1814db.
De l'extérieur
Depuis n'importe quelle machine :
node scripts/verifier-messagerie.mjs https://une-instance --wasm-du-depot télécharge le manifeste et chaque fichier, et signale tout écart avec ce que le dépôt publie.