
Tinfoil Chat - Onion-geroutetes, endpunktgesichertes Nachrichtensystem
Tinfoil Chat (TFC) ist ein FOSS+FHD Peer-to-Peer- Messaging-System, das auf einer Hardware-Architektur mit hoher Assurance aufbaut, um Benutzer vor passiver Sammlung, MITM-Angriffen und – am wichtigsten – Remote-Key-Exfiltration zu schützen. TFC ist für Menschen mit einem der komplexesten Bedrohungsmodelle konzipiert: organisierte Kriminalitätsgruppen und staatliche Hacker, die die Ende-zu-Ende-Verschlüsselung traditioneller sicherer Messaging-Apps umgehen, indem sie den Endpunkt hacken.
/rr nicht mehr.TFC verwendet XChaCha20-Poly1305 Ende-zu-Ende-Verschlüsselung mit abstreitbarer Authentifizierung, um alle Nachrichten und Dateien zu schützen, die an einzelne Empfänger und Gruppen gesendet werden. Die symmetrischen Schlüssel sind entweder vorgegeben oder werden über X448 ausgetauscht, wobei deren Basis-10- Fingerabdrücke über einen Out-of-Band-Kanal verifiziert werden. TFC bietet Forward Secrecy pro Nachricht mit einem auf BLAKE2b basierenden Hash-Ratchet. Alle persistenten Benutzerdaten werden lokal mit XChaCha20-Poly1305 verschlüsselt, dessen Schlüssel aus Passwort und Salt mittels Argon2id abgeleitet wird, wobei die Parameter automatisch nach Best Practices abgestimmt werden. Die Schlüsselerzeugung von TFC stützt sich auf den getrandom()-Syscall des Linux-Kernels, einen Syscall für dessen ChaCha20-basierten CSPRNG.
TFC leitet sämtliche Kommunikation ausschließlich über das Tor Anonymitätsnetzwerk. Es nutzt (v3) Tor Onion Services, um P2P-Kommunikation zu ermöglichen, die das Tor-Netzwerk niemals verlässt. Dadurch wird es für die Nutzer schwierig, sich versehentlich zu deanonymisieren. Es bedeutet außerdem, dass es – anders als bei (de)zentralisierten Messengern – keinen Drittanbieter-Server gibt, der Zugriff auf Nutzermetadaten hat, etwa darauf, wer mit wem spricht, wann und wie viel. Die Netzwerkarchitektur bedeutet, dass TFC ausschließlich auf den Geräten des Nutzers läuft. Es gibt keine Werbung und kein Tracking, und es werden keinerlei Daten über den Nutzer gesammelt. Alle Daten sind stets mit Schlüsseln verschlüsselt, die der Nutzer kontrolliert, und die Datenbanken verlassen niemals das Gerät des Nutzers.
Die Verwendung von Onion Services bedeutet außerdem, dass keine Kontoregistrierung erforderlich ist. Beim ersten Start
generiert TFC ein zufälliges TFC-Konto (eine Onion-Service-Adresse) für den Nutzer, z. B.
4sci35xrhp2d45gbm3qpta7ogfedonuw2mucmc36jxemucd7fmgzj3ad. Wenn jemand dieses TFC-Konto kennt,
kann er dem Nutzer eine Kontaktanfrage senden und mit ihm sprechen, ohne jemals dessen
reale Identität, IP-Adresse oder Geolokalisierung zu erfahren. Die geschützte Geolokalisierung macht physische
Angriffe sehr schwierig, da der Angreifer nicht weiß, wo sich das Gerät auf
dem Planeten befindet. Gleichzeitig macht sie die Kommunikation zensurresistent: Das Blockieren von TFC
erfordert eine landesweite, kategorische Blockierung von Tor.
TFC bietet außerdem einen Traffic-Masking-Modus, der die Art, Menge und den Zeitplan der Kommunikation verbirgt, selbst wenn das netzwerkseitig exponierte Gerät des Nutzers gehackt wurde. Um noch weiteren Metadatenschutz vor Hackern zu bieten, kann der internetseitige Teil von TFC auf Tails betrieben werden, einem auf Privatsphäre und Anonymität ausgerichteten Betriebssystem, das keine persönlichen Dateien des Nutzers enthält (was es schwierig macht, abzuleiten, zu wem der Endpunkt gehört) und das zusätzliche Schutzschichten zur Gewährleistung der Anonymität bietet.
TFC ist für die Verwendung in einer Hardware-Konfiguration konzipiert, die starke Endpoint-Sicherheit bietet. Diese Konfiguration verwendet drei Computer pro Endpunkt: Verschlüsselungs- und Entschlüsselungsprozesse sind voneinander auf zwei isolierte Computer getrennt, den Source Computer und den Destination Computer. Diese beiden Geräte sind für TFC reserviert. Diese aufgeteilte TCB interagiert über den alltäglichen Computer des Nutzers, den sogenannten Networked Computer, mit dem Netzwerk.
In TFC bewegen sich Daten vom Source Computer zum Networked Computer und vom Networked Computer zum Destination Computer, und zwar unidirektional. Die Unidirektionalität des Datenflusses wird erzwungen, da die Daten nur über ein frei verfügbares Hardware-Design, eine Datendiode, von einem Gerät zum anderen weitergegeben werden, die mit den drei Computern über je ein USB-Kabel pro Gerät verbunden ist. Der Source Computer und der Destination Computer sind nicht mit dem Internet oder mit irgendeinem anderen Gerät außer der Datendiode verbunden.