Projekt TFC (Tinfoil Chat) navrhl hardwarové zařízení se 3 USB porty pro připojení 3 počítačů a vytvoření paranoidně chráněného systému zpráv.
První počítač funguje jako brána pro připojení k síti a spuštění skryté služby Tor, manipuluje s již zašifrovanými daty.
Druhý počítač má dešifrovací klíče a používá se pouze k dešifrování a zobrazení přijatých zpráv.
Třetí počítač má šifrovací klíče a používá se pouze k šifrování a odesílání nových zpráv.
Rozbočovač USB funguje na optočlenech na principu „datové diody“ a fyzicky předává data pouze určenými směry: odesílá data směrem k druhému počítači a přijímá data ze třetího počítače.
Kompromitace prvního počítače vám neumožní získat přístup k šifrovacím klíčům, samotným datům a neumožní vám pokračovat v útoku na zbývající zařízení.
Když je kompromitován druhý počítač, útočník bude číst zprávy a klíče, ale nebude je moci přenést do vnějšího světa, protože data jsou pouze přijímána zvenčí, ale nejsou odesílána ven.
Pokud dojde ke kompromitaci třetího počítače, útočník se může vydávat za předplatitele a psát jeho jménem zprávy, ale nebude moci číst data přicházející zvenčí (protože jsou přenesena do druhého počítače a tam jsou dešifrována).
Šifrování je založeno na 256bitovém algoritmu XChaCha20-Poly1305 a pomalá hashovací funkce Argon2id se používá k ochraně klíčů heslem. Pro výměnu klíčů se používají klíče X448 (protokol Diffie-Hellman založený na Curve448) nebo klíče PSK (předsdílené). Každá zpráva je přenášena v režimu dokonalého dopředného utajení (PFS, Perfect Forward Secrecy) založeném na haších Blake2b, ve kterém kompromitace jednoho z dlouhodobých klíčů neumožňuje dešifrování dříve zachycené relace.
Rozhraní aplikace je extrémně jednoduché a obsahuje okno rozdělené do tří oblastí – odesílání, přijímání a příkazový řádek s logem interakce s bránou. Ovládání se provádí pomocí speciální sady příkazů.
Program kód projektu byl napsán v Pythonu a dostupné pod licencí GPLv3. Rozbočovací obvody jsou součástí dodávky (PCB) a jsou dostupné pod licencí GNU FDL 1.3, splitter lze sestavit z dostupných dílů.
Zdroj: linux.org.ru