
Tinfoil Chat - Système de messagerie sécurisé de bout en bout, routé en oignon
Tinfoil Chat (TFC) est un système de messagerie FOSS+FHD pair-à-pair qui repose sur une architecture matérielle à haute assurance pour protéger les utilisateurs contre la collecte passive, les attaques MITM et surtout, l'exfiltration de clés à distance. TFC est conçu pour les personnes ayant l'un des modèles de menace les plus complexes : les groupes de criminalité organisée et les pirates informatiques étatiques qui contournent le chiffrement de bout en bout des applications de messagerie sécurisées traditionnelles en piratant le point de terminaison.
/rr.TFC utilise le chiffrement de bout en bout XChaCha20-Poly1305 avec authentification déniable pour protéger tous les messages et fichiers envoyés aux destinataires individuels et aux groupes. Les clés symétriques sont soit pré-partagées, soit échangées à l'aide de X448, dont les empreintes en base 10 sont vérifiées via un canal hors bande. TFC assure une confidentialité persistante par message grâce à un hash ratchet basé sur BLAKE2b. Toutes les données utilisateur persistantes sont chiffrées localement à l'aide de XChaCha20-Poly1305, dont la clé est dérivée du mot de passe et du sel à l'aide de Argon2id, dont les paramètres sont automatiquement ajustés conformément aux bonnes pratiques. La génération de clés de TFC repose sur l'appel système getrandom() du noyau Linux, un appel système pour son CSPRNG basé sur ChaCha20.
TFC achemine toute communication exclusivement via le réseau d'anonymat Tor. Il utilise les services onion Tor (v3) pour permettre une communication P2P qui ne quitte jamais le réseau Tor. Cela rend difficile pour les utilisateurs de se désanonymiser accidentellement. Cela signifie aussi que, contrairement aux messageries (dé)centralisées, il n'existe aucun serveur tiers ayant accès aux métadonnées des utilisateurs, comme qui parle à qui, quand, et combien. L'architecture réseau fait que TFC s'exécute exclusivement sur les appareils de l'utilisateur. Il n'y a ni publicités ni traçage, et il ne collecte aucune donnée quelle qu'elle soit sur l'utilisateur. Toutes les données sont toujours chiffrées avec des clés contrôlées par l'utilisateur, et les bases de données ne quittent jamais l'appareil de l'utilisateur.
L'utilisation des services onion signifie également qu'aucune inscription de compte n'est nécessaire. Lors du premier lancement, TFC génère un compte TFC aléatoire (une adresse de service onion) pour l'utilisateur, par exemple 4sci35xrhp2d45gbm3qpta7ogfedonuw2mucmc36jxemucd7fmgzj3ad. En connaissant ce compte TFC, n'importe qui peut envoyer à l'utilisateur une demande de contact et lui parler sans jamais connaître son identité réelle, son adresse IP ou sa géolocalisation. La géolocalisation protégée rend les attaques physiques très difficiles, car l'attaquant ne sait pas où l'appareil se trouve sur la planète. En même temps, cela rend la communication résistante à la censure : bloquer TFC nécessite de bloquer Tor catégoriquement, à l'échelle nationale.
TFC dispose également d'un mode de masquage du trafic qui dissimule le type, la quantité et le calendrier des communications, même si l'appareil de l'utilisateur exposé au réseau est compromis. Pour offrir une protection encore plus poussée des métadonnées contre les pirates, la partie de TFC exposée à Internet peut être exécutée sur Tails, un système d'exploitation axé sur la confidentialité et l'anonymat qui ne contient aucun fichier personnel de l'utilisateur (ce qui rend difficile de déduire à qui appartient le point de terminaison), et qui fournit des couches de protection supplémentaires pour garantir l'anonymat.
TFC est conçu pour être utilisé dans une configuration matérielle qui offre une forte sécurité des points de terminaison. Cette configuration utilise trois ordinateurs par point de terminaison : les processus de chiffrement et de déchiffrement sont séparés sur deux ordinateurs isolés, l'ordinateur source et l'ordinateur de destination. Ces deux appareils sont dédiés à TFC. Cette TCB scindée interagit avec le réseau via l'ordinateur quotidien de l'utilisateur, appelé ordinateur en réseau.
Dans TFC, les données circulent de l'ordinateur source vers l'ordinateur en réseau, et de l'ordinateur en réseau vers l'ordinateur de destination, de manière unidirectionnelle. L'unidirectionnalité du flux de données est imposée, car les données ne passent d'un appareil à un autre que par une diode de données à conception matérielle libre, connectée aux trois ordinateurs à l'aide d'un câble USB par appareil. Les ordinateurs source et de destination ne sont connectés ni à Internet, ni à aucun autre appareil que la diode de données.