Projekt TFC (Tinfoil Chat) navrhol hardvérové zariadenie s 3 portami USB na pripojenie 3 počítačov a vytvorenie systému posielania správ s ochranou proti paranoidom.
Prvý počítač funguje ako brána na pripojenie k sieti a spustenie skrytej služby Tor, manipuluje už so zašifrovanými údajmi.
Druhý počítač má dešifrovacie kľúče a používa sa iba na dešifrovanie a zobrazenie prijatých správ.
Tretí počítač má šifrovacie kľúče a používa sa iba na šifrovanie a odosielanie nových správ.
Rozbočovač USB funguje na optočlenoch na princípe „dátovej diódy“ a fyzicky prenáša dáta iba v určených smeroch: posiela dáta do druhého počítača a prijíma dáta z tretieho počítača.
Kompromitácia prvého počítača vám neumožní získať prístup k šifrovacím kľúčom, samotným dátam a neumožní vám pokračovať v útoku na zvyšné zariadenia.
Keď je napadnutý druhý počítač, útočník bude čítať správy a kľúče, ale nebude ich môcť preniesť do vonkajšieho sveta, pretože údaje sú iba prijímané zvonku, ale nie odosielané von.
Ak je napadnutý tretí počítač, útočník sa môže vydávať za predplatiteľa a písať v jeho mene správy, ale nebude môcť čítať dáta prichádzajúce zvonka (pretože idú do druhého počítača a tam sa dešifrujú).
Šifrovanie je založené na 256-bitovom algoritme XChaCha20-Poly1305 a pomalá hashovacia funkcia Argon2id sa používa na ochranu kľúčov heslom. Na výmenu kľúčov sa používajú kľúče X448 (protokol Diffie-Hellman založený na Curve448) alebo kľúče PSK (predzdieľané). Každá správa sa prenáša v režime dokonalého dopredného utajenia (PFS, Perfect Forward Secrecy) založenom na hašovaní Blake2b, v ktorom kompromitácia jedného z dlhodobých kľúčov neumožňuje dešifrovanie predtým zachytenej relácie.
Rozhranie aplikácie je mimoriadne jednoduché a obsahuje okno rozdelené do troch oblastí – odosielanie, prijímanie a príkazový riadok s protokolom interakcie s bránou. Ovládanie sa vykonáva pomocou špeciálnej sady príkazov.
Program kód projektu bol napísaný v Pythone a sú dostupné pod licenciou GPLv3. Rozdeľovacie obvody sú zahrnuté (PCB) a sú dostupné pod licenciou GNU FDL 1.3, rozbočovač je možné zostaviť z dostupných dielov.
Zdroj: linux.org.ru