Tfc

maqp maqp
Dépôt créer le : 27/01/2016
Forks: 88 Watcher: 0 1309
Choisir une liste...
FR
tfc_logo.png

Tinfoil Chat

License: GPL v3 Python 3.9|3.10 Checked with mypy Unit Tests codecov Codacy Badge CodeFactor Snyk Report

Tinfoil Chat (TFC) est un FOSS+FHD peer-to-peersystème de messagerie qui repose sur l'architecture matérielle haute assurance pour protéger les utilisateurs de passive collection, ,MITM attackset surtout, ,remote key exfiltration. TFC est conçu pour les personnes ayant l'un des modèles de menace les plus complexes : le crime organisé groupes et hackers d'État-nation qui contournent le chiffrement de bout en bout de la sécurité traditionnelle les applications de messagerie en piratant le terminal.

Cryptographie ultramoderne

Utilisation des TFC XChaCha20- OuiPoly1305 end-to-end encryptionavec deniable authenticationprotéger tous les messages et fichiers envoyés aux destinataires et aux groupes. Les clés symétriques sont soit pre-shared, ou échangés en utilisant X448, la base-10 fingerprintsdont la vérification est effectuée par un canal hors bande. TFC fournit un message forward secrecyavec BLAKE2bbasé sur hash ratchet. Toutes les données utilisateur persistantes sont cryptées localement en utilisant XChaCha20-Poly1305, la clé dont le mot de passe et le sel sont dérivés Argon2id, dont les paramètres sont automatiquement réglés selon le meilleur pratique. La génération clé de TFC repose sur le noyau Linux getrandom(), un appel pour son ChaCha20 basé CSPRNG.

Anonyme de conception

TFC relie toutes les communications exclusivement à travers Torréseau d'anonymat. Il utilise la prochaine génération (v3) Tor Onion Servicespour activer la communication P2P qui ne quitte jamais le réseau Tor. Cela rend difficile pour les les utilisateurs de se déanonymiser accidentellement. Cela signifie également que, contrairement à (dé)centralisée messagers, il n'y a pas de serveur tiers avec accès aux métadonnées de l'utilisateur comme qui est parler à qui, quand et combien. L'architecture réseau signifie que TFC fonctionne exclusivement sur les appareils de l'utilisateur. Il n'y a pas d'annonces ou de suivi, et il ne recueille aucune donnée à propos de l'utilisateur. Toutes les données sont toujours cryptées avec des clés les contrôles de l'utilisateur, 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 d'oignon) pour l'utilisateur, par exemple. .4sci35xrhp2d45gbm3qpta7ogfedonuw2mucmc36jxemucd7fmgzj3ad. En connaissant ce compte TFC, n'importe qui peut envoyer à l'utilisateur une demande de contact et leur parler sans jamais apprendre leur identité réelle, adresse IP ou géolocalisation. La géolocalisation protégée rend physique attaques très difficiles parce que l'attaquant ne sait pas où se trouve l'appareil la planète. Dans le même temps, il rend la censure de communication résistante: Blocking TFC exige de bloquer Tor catégoriquement, à l'échelle nationale.

TFC dispose également d'un mode de masquage du trafic qui cache le type, la quantité et le calendrier de communication, même si le périphérique face au réseau de l'utilisateur est piraté. Pour fournir même une protection accrue des métadonnées contre les pirates, la partie face à Internet de la TFC peut être exécutée sur Tails, un système d'exploitation axé sur la vie privée et l'anonymat ne contient aucun fichier personnel de l'utilisateur (ce qui rend difficile de déduire à qui le paramètre à), et qui fournit additional layers of protectionpour leur anonymat.

Premier système de messagerie avec la sécurité des terminaux

TFC est conçu pour être utilisé dans la configuration du matériel qui fournit fort endpoint security. Cette configuration utilise trois ordinateurs par paramètre : Processus de chiffrement et de décryptage sont séparés l'un de l'autre sur deux ordinateurs isolés, l'ordinateur source, et le Ordinateur de destination. Ces deux appareils sont dédiés à la TFC. Cette séparation TCBinteragit avec le réseau via l'ordinateur quotidien de l'utilisateur, appelé l'ordinateur réseau.

Dans TFC les données passent de l'ordinateur source à l'ordinateur réseau, et du réseau Ordinateur de destination, unidirectionnellement. Le caractère unidirectionnel des données le flux est mis en œuvre, car les données sont transmises d'un appareil à l'autre seulement par un libre conception matérielle data diode, qui est connecté aux trois ordinateurs en utilisant un câble USB par périphérique. Les ordinateurs source et destination ne sont pas connectés à Internet, ni à aucun appareil autres que la diode de données.

TFC data diode

Répéteur optique à l'intérieur optocouplersde la diode de données font respecter la direction de la transmission des données avec les lois fondamentales de physique. Cette protection est si forte, les implémentations certifiées des diodes de données sont En général, la protection des infrastructures essentielles et les réseaux gouvernementaux Le niveau de classification des données varie selon les systèmes. Une diode de données pourrait, par exemple, permettre l'accès à la lecture du système de sûreté d'une centrale nucléaire, tout en empêchant les attaquants d'exploiter ces systèmes critiques. Un autre cas d'utilisation est de permettre importation de données provenant de systèmes moins sûrs à ceux qui contiennent des documents classifiés doivent être protégés contre l'exfiltration.

Dans TFC, la diode de données matérielles assure qu'aucun des TCB-halves peut être consulté bidirectionnellement. Puisque la protection repose sur les limitations physiques du matériel capacités, aucun morceau de malware, pas même un zero-day exploitpeut contourner la sécurité fournie par la diode de données.

Comment ça marche

Avec le matériel en place, il ne reste plus qu'à lancer l'appareil. programme TFC spécifique sur chaque ordinateur.

System overview

Dans l'illustration ci-dessus, Alice entre des messages et des commandes au programme d'émetteur Sur son ordinateur source. Le programme d'émetteur chiffre et signe le texte clair data et relaie les caractères de l'ordinateur source à son ordinateur réseau à travers la diode de données.

Programme de relais sur les commandes de relais informatiques en réseau d'Alice et des copies de sorties messages à son ordinateur de destination via la diode de données. Programme du receveur sur Alice Destination L'ordinateur authentifie, déchiffre et traite le message/commande reçu.

Le programme relais d'Alice partage des messages et des fichiers avec Bob sur un service Tor Onion. Le client web du programme Relay de Bob récupère le code de l'oignon d'Alice Service et le transmet à son ordinateur de destination à travers sa diode de données. Chez Bob Le programme du receveur authentifie, déchiffre et traite le message/fichier reçu.

Quand Bob répondra, il tapera son message au programme d'émetteur sur sa source Ordinateur, et après un processus miroir, Alice lit le message du Programme des récepteurs sur son ordinateur de destination. Tout cela se produit de manière transparente et automatique.

Pourquoi les clés et les textes simples ne peuvent pas être exfiltrés

L'architecture décrite ci-dessus utilise simultanément les deux the classical and the alternative data diode modelspermettre la communication bidirectionnelle entre deux utilisateurs, tout en fournissant sécurité matérielle endpoint imposée:

  1. L'ordinateur de destination utilise le modèle classique de diode de données. Cela signifie qu'il peut recevoir données de l'ordinateur réseau non sécurisé, mais est incapable de renvoyer les données au réseau Ordinateur. Le programme des receveurs est conçu pour fonctionner sous ces contraintes. Toutefois, même si le programme authentifie et valide toutes les données entrantes, il n'est pas exclu malware ne pouvait pas encore infiltrer l'ordinateur de destination. Au cas où cela arriverait, le malware ne serait pas en mesure d'exfiltrer les clés sensibles ou les textes simples de retour au réseau Ordinateur, car la diode de données empêche tout trafic sortant.

  2. L'ordinateur source utilise le modèle alternatif de diode de données. Cela signifie qu'il peut sortir données chiffrées à l'ordinateur réseau non sécurisé sans avoir à s'inquiéter d'être compromis. La diode de données n'a pas le matériel qui permettrait la transmission de données au Source Computer, qui protège l'ordinateur source de toutes les attaques à distance. L'émetteur Le programme est également conçu pour fonctionner sous les contraintes de flux de données introduites par la diode de données; Pour permettre les échanges de clés, les clés publiques courte courbure elliptique sont entrées manuellement par l'utilisateur.

  3. L'ordinateur en réseau est conçu selon l'hypothèse qu'il peut être compromis par une attaquant à distance: Toutes les données sensibles qui passent par le programme Relay sont protégées par authenticated encryptionsans exception. Puisque l'attaquant est incapable d'exfiltrer les clés de déchiffrement de l'ordinateur source ou de destination, le chiffrement obtenu de l'ordinateur réseau sont sans valeur pour l'agresseur.

Exfiltration security

Solution intermédiaire isolée de Qubes

Pour certains utilisateurs, APTsdu monde moderne ne font pas partie du modèle de menace, et pour d'autres, l'exigence d'avoir à construire la diode de données par elle-même est une rupture de marché. Pourtant, pour tous, le stockage de clés privées sur un appareil réseau reste un risque de sécurité.

Pour répondre aux besoins de ces utilisateurs, TFC peut également être exécuté en trois Qubesmachines virtuelles. Avec la configuration Qubes, l'isolement est fourni par le Xen hypervisor, et l'unidirectionnalité du flux de données entre les VM est appliquée avec Qubes' qrexec framework. Ce mécanisme d'isolement intermédiaire fonctionne sur un seul ordinateur, ce qui signifie qu'aucune diode de données matérielles n'est nécessaire.

Systèmes d'exploitation pris en charge

Ordinateur source/destination

  • Debian 12.5
  • PureOS 10.3
  • *buntu 24.04 LTS
  • Pop! OS 22.04 LTS
  • Monnaie Linux 21.3
  • LMDE 6
  • Zorine OS 17.1
  • Qubes 4.2.1 (Debian 12 VM)

Ordinateur en réseau

  • Tailles 6.2
  • Debian 12.5
  • PureOS 10.3
  • *buntu 24.04 LTS
  • Pop! OS 22.04 LTS
  • Monnaie Linux 21.3
  • LMDE 6
  • Zorine OS 17.1
  • Qubes 4.2.1 (Debian 12 VM)

Informations supplémentaires

Threat model
FAQ
Security design

Diode de données matérielles<Br> Breadboard version(Facile)
Perfboard version(intermédiaire)
PCB version(Avancé)

Comment utiliser
Installation
Master password setup
Local key setup
Onion Service setup
X448 key exchange
Pre-shared keys
Commands

Update log

Contributeurs GitHub

maqp
maqp
67 contributions
MarkusOttela
MarkusOttela
1 contributions