Im Rahmen des Projekts (Tinfoil Chat) hat den Versuch unternommen, einen Prototyp eines paranoid geschützten Nachrichtenaustauschsystems zu schaffen, das die Vertraulichkeit der Kommunikation selbst bei einer Kompromittierung der Endgeräte bewahren würde. Um die Durchführung von Audits zu erleichtern, ist der Code des Projekts in der Programmiersprache Python verfasst und Die Veröffentlichung des Video Players MPV 0.32
Heutzutage verbreitete Messaging-Systeme, die End-to-End-Verschlüsselung nutzen, schützen die Kommunikation vor Abhören auf Zwischenservern und vor Analyse des Transitverkehrs. Sie bieten jedoch keinen Schutz gegen Probleme auf der Seite des Endgeräts. Um Systeme mit End-to-End-Verschlüsselung zu kompromittieren, reicht es aus, das Betriebssystem, die Firmware oder die Messenger-Anwendung des Endgeräts zu infizieren, beispielsweise durch die Ausnutzung zuvor unbekannter Sicherheitsanfälligkeiten, durch die initiale Einführung von Software- oder Hardware-Backdoors oder durch die Bereitstellung von gefälschten Updates mit einem Hintertürzugang (etwa unter Druck von Geheimdiensten oder kriminellen Gruppen). Selbst wenn die Schlüssel zur Verschlüsselung auf einem separaten Token gespeichert sind, bleibt bei Kontrolle über das Benutzergerät immer die Möglichkeit, Prozesse nachzuvollziehen, Tastatureingaben abzufangen und die Bildschirmdarstellung zu überwachen.
TFC bietet ein Hardware- und Software-System, das die Verwendung von drei separaten Computern und einem speziellen Hardware-Splitter auf der Client-Seite erfordert. Der gesamte Datenverkehr während der Kommunikation zwischen den Teilnehmern läuft über das anonyme Tor-Netzwerk, und die Messaging-Programme werden als versteckte Tor-Dienste bereitgestellt (die Benutzer werden anhand ihrer Adressen der versteckten Dienste und Schlüssel identifiziert).
Der erste Computer fungiert als Gateway zum Netzwerk und startet den versteckten Tor-Dienst. Das Gateway bearbeitet nur bereits verschlüsselte Daten, während die zwei anderen Computer zum Verschlüsseln und Entschlüsseln eingesetzt werden. Der zweite Computer kann nur zur Entschlüsselung und Anzeige empfangener Nachrichten verwendet werden, während der dritte Computer ausschließlich für die Verschlüsselung und den Versand neuer Nachrichten zuständig ist. Dementsprechend hat der zweite Computer nur die Schlüssel zur Entschlüsselung und der dritte nur die Schlüssel zur Verschlüsselung.
Der zweite und dritte Computer haben keine direkte Verbindung zum Netzwerk und sind durch einen speziellen USB-Splitter vom Gateway-Computer getrennt, der das Prinzip „» und leitet Daten physisch nur in eine Richtung. Der Splitter erlaubt nur das Senden von Daten an den zweiten Computer und nur das Empfangen von Daten vom dritten Computer. Die Datenrichtung im Splitter wird durch beschränkt (ein einfacher Abbruch der Tx- und Rx-Leitungen im Kabel genügt nicht, da der Abbruch die Übertragung von Daten in die entgegengesetzte Richtung nicht ausschließt und nicht garantiert, dass die Tx-Leitung nicht zum Lesen und die Rx-Leitung für das Senden verwendet wird). Der Splitter kann aus verfügbaren Komponenten zusammengebaut werden, () und stehen unter der GNU FDL 1.3 Lizenz zur Verfügung.
Mit einem solchen Schema würde eine Kompromittierung des Gateways Zugriff auf die Verschlüsselungsschlüssel zu erhalten und würde auch die Möglichkeit einschränken, die Angriffe auf verbleibende Geräte fortzusetzen. Im Falle einer Kompromittierung des Computers, auf dem die Schlüssel für die Entschlüsselung gespeichert sind, ist es nicht möglich, Informationen an die Außenwelt zu übertragen, da der Datenfluss nur das Empfangen von Informationen erlaubt und die Rückübertragung durch die Datendiode blockiert wird.
Die Verschlüsselung erfolgt auf Basis von 256-Bit-Schlüsseln mit XChaCha20-Poly1305, zur Sicherung der Schlüssel wird eine langsame Hash-Funktion . Zur Schlüsselübergabe wird (Diffie-Hellman-Protokoll basierend auf Curve448) oder PSK-Schlüssel (). Jede Nachricht wird im Modus der perfekten Weiterleitungssicherheit (PFS, ) auf Basis von Blake2b-Hashes übertragen, wobei die Kompromittierung eines der langfristigen Schlüssel nicht ermöglicht, frühere abgefangene Sitzungen zu entschlüsseln. Die Benutzeroberfläche der Anwendung ist äußerst einfach und umfasst ein Fenster, das in drei Bereiche – Versand, Empfang und eine Kommandozeile mit Protokoll der Interaktion mit dem Gateway – unterteilt ist. Die Steuerung erfolgt über einen speziellen .
Quelle: opennet.ru
