A projekt keretein belül (Tinfoil Chat) egy próbálkozás egy paranoid módon védett üzenetküldő rendszer prototípusának létrehozására, amely megőrzi a beszélgetések titkát még akkor is, ha a végberendezések kompromittálódnak. A projekt kódjának egyszerűsítése érdekében Python nyelven íródott és GPLv3 licenc alatt áll.
A jelenlegi üzenetküldő rendszerek, amelyek végpontok közötti titkosítást használnak, megvédik a beszélgetéseket a közbenső szervereken történő lehallgatástól és a tranzitforgalom elemzésétől, de nem védenek a kliensoldali problémák ellen. A végpontok közötti titkosítást használó rendszerek kompromittálásához elegendő a végberendezés operációs rendszerének, firmware-jának vagy üzenetküldő alkalmazásának megkompromittálása, például eddig ismeretlen sebezhetőségek kihasználásával, szoftveres vagy hardveres kiskapuk beépítésével, vagy egy hamis frissítés hátsó ajtóval való leadásával (például a fejlesztőkre gyakorló nyomás révén a titkosszolgálatok vagy bűnözői csoportok által). Még ha a titkosításhoz szükséges kulcsok egy külön tokenen is vannak, a felhasználói rendszer feletti ellenőrzés meglétével mindig van lehetőség a folyamatok nyomon követésére, a billentyűzetről való adathalászatra és a képernyő kimenetének figyelésére.
A TFC egy szoftver-hardware komplexumot kínál, amely három külön számítógép és egy speciális hardver splitter alkalmazását igényli az ügyfélnél. Az üzenetküldők közötti interakció során az összes forgalmat anonimizált Tor hálózaton keresztül továbbítják, míg az üzenetküldő alkalmazások Tor rejtett szolgáltatások formájában működnek (a felhasználók az üzenetküldés során rejtett szolgáltatások címeivel és kulcsaival azonosítják magukat).
Az első számítógép átjáróként működik a hálózathoz való csatlakozáshoz és a Tor rejtett szolgáltatás elindításához. Az átjáró csak az már titkosított adatokat manipulálja; a titkosításhoz és visszafejtéshez a két másik számítógép használatos. A második számítógép kizárólag a visszafejtésre és az érkezett üzenetek megjelenítésére használható, míg a harmadik csak az üzenetek titkosítására és új üzenetek küldésére. Ennek megfelelően a második számítógép csak a visszafejtéshez szükséges kulcsokkal rendelkezik, míg a harmadik csak a titkosításhoz szükséges kulcsokkal.
A második és a harmadik számítógép nem rendelkezik közvetlen kapcsolattal a hálózathoz, és egy speciális USB elosztóval van elkülönítve a gateway számítógéptől, amely a következő elven működik:és fizikailag csak egy irányba engedi át az adatokat. Az elosztó csak a második számítógép felé engedélyezi az adatok küldését, és csak a harmadik számítógéptől fogad adatokat. Az elosztón belüli adatirány korlátozva van (a Tx és Rx vonalak egyszerű megszakítása a kábelben nem elegendő, mivel a megszakítás nem zárja ki az adatok visszaadását, és nem garantálja, hogy a Tx vonalat ne használják olvasásra, míg az Rx-t az adásra). Az elosztó barkácsolható házilag, () és GNU FDL 1.3 licenc alatt elérhetők.
Egy ilyen séma mellett a gateway kompromittálása hozzáférést a titkosítási kulcsokhoz, és nem teszi lehetővé a támadások folytatását a további eszközökön. Ha a számítógép, amelyen a dekódoló kulcsok találhatók, kompromittálódik, az onnan származó információkat nem lehet átkonvertálni a külvilágba, mivel az adatfolyam csak az információk fogadására korlátozódik, visszafelé pedig az adatdiód blokkolja az átadást.
A titkosítás 256 bites kulcsok alapján készült az XChaCha20-Poly1305 használatával, a kulcsok jelszó védelme érdekében lassú hash-funkciót alkalmaznak . A kulcsok cseréje (a Diffie-Hellman protokoll Curve448 alapú) vagy PSK kulcsok (). Minden üzenet tökéletes előremenő titkosság (PFS, ) alapján kerül átadásra Blake2b hash-ekkel, ahol egy hosszú távú kulcs kompromittálása nem teszi lehetővé a korábban elfogott session dekódolását. Az alkalmazás felülete rendkívül egyszerű, és egy három területre bontott ablakból áll - küldés, fogadás és parancssor a gateway-jel való interakció logjával. Az irányítás egy speciális .
Forrás: opennet.ru
