Projektis (Tinfoil Chat) on tehtud katse luua prototüüp paranoodiliselt kaitstud sõnumite vahetussüsteemist, mis säilitaks kirjavahetuse saladuse isegi lõppseadmete kompromiteerimise korral. Auditite lihtsustamiseks on projekti kood kirjutatud Pythonis ja ja GPLv3 litsentsi alusel.
Tänapäeval levinud sõnumite vahetussüsteemid, mis kasutavad lõpp-punktide krüpteerimist, kaitsevad kirjavahetust vaheserverites peetmise ja ülemineku liikluse analüüsi eest, kuid ei kaitse lõpp-seadme probleemide eest. Lõpp-punktide krüpteerimises piisab operatsioonisüsteemi, püsivara või sõnumirakenduse, näiteks varjatud haavatavuste kasutamise, seadmesse algselt sisseviidud tark- või riistvaraliste tagasikäikude või vale uuenduse, millel on tagauks (näiteks surveteenuseid pakkudes), kompromiteerimisest. Isegi kui krüpteerimisvõtmed asuvad eraldiseisval tokenil, on kasutaja süsteemi kontrollimise olemasolul alati võimalus protsesside jälgimiseks igapäevastes tegevustes, klaviatuuri andmete pealtkuulamiseks ja ekraaniväljundi jälgimiseks.
TFC pakub tarkvara-riistvara komplekti, mis nõuab kliendi poolel kolme eraldi arvutit ja spetsiaalset riistvaralise jagajat. Kõik liiklus osalejate vahel sõnumite vahetamisel edastatakse anonüümsesse Tor võrgustikku, samas kui sõnumivahetuse programmid on üles ehitatud Tor'i varjatud teenustena (kasutajad tuvastatakse sõnumite vahetamisel varjatud teenuse aadresside ja võtmete järgi).
Esimene arvuti toimib väravana võrku sisselogimiseks ja Tor'i varjatud teenuse käivitamiseks. Värav manipuleerib ainult juba krüpteeritud andmetega, samas kui krüpteerimiseks ja dekrüpteerimiseks kasutatakse kahte ülejäänud arvutit. Teist arvutit võib kasutada ainult dekrüpteerimiseks ja saadud sõnumite kuvamiseks, kolmandat aga ainult krüpteerimiseks ja uute sõnumite saatmiseks. Vastavalt on teisel arvutil ainult dekrüpteerimise võtmed, kolmandal aga ainult krüpteerimise võtmed.
Teine ja kolmas arvuti ei ole otseühenduses võrgu ja on eraldatud pääsupunktist spetsiaalse USB-jaoturiga, mis kasutab põhimõtet „” ja edastab andmeid füüsiliselt ainult ühes suunas. Jaotur lubab ainult andmete saatmist teise arvuti suunas ja ainult kolmandast arvutist andmete vastuvõtmist. Andmete suund jaoturis piirdub abil (lihtne Tx ja Rx joonte katkestamine kaablis ei ole piisav, kuna katkestus ei välista andmete edastamist vastupidises suunas ja ei garanteeri, et Tx joon ei oleks kasutatud lugemiseks, samas kui Rx joon oleks edastamiseks). Jaoturi saab kokku panna kodustest osadest, () ja on saadaval GNU FDL 1.3 litsentsi all.
Selle skeemi korral tagab pääsupunkti kompromiteerimine kasutada krüpteerimisvõtmeid ja ei võimalda rünnakut jätkata ülejäänud seadmetele. Kui arvuti, kus asuvad dekrüpteerimisvõtmed, on kompromiteeritud, ei saa teavet välismaailma edastada, kuna andmevoog on piiratud ainult teabe vastuvõtmisega ja tagasiside edastamine on blokeeritud andme dioodiga.
Krüpteerimine on tehtud 256-bitiste võtmete alusel XChaCha20-Poly1305, võtmete kaitsmiseks parooli abil kasutatakse aeglast räsifunktsiooni . Võtmete vahetamiseks kasutatakse (Diffie-Hellmani protokoll Curve448 alusel) või PSK-võtmeid (). Iga sõnum edastatakse täiusliku ettepoole suunatud salajane (PFS, ) Blake2b räsitehnoloogia alusel, mille korral ühe pikaajalise võtme kompromiteerimine ei võimalda varem salvestatud seansi dekrüpteerimist. Rakenduse liidese kujundus on äärmiselt lihtne ning sisaldab akent, mis on jagatud kolme alasse - saatmine, vastuvõtt ja käsurea logi, mis dokumenteerib suhtlemist pääsupunktiga. Juhtimist teostatakse spetsiaalse .
Allikas: opennet.ru
