Projekta robežās (Tinfoil Chat) mēģināja izveidot paranoidāli aizsargātas ziņojumapmaiņas sistēmas prototipu, kas saglabātu korespondences privātumu pat tad, ja galapunkti tiktu apdraudēti. Lai vienkāršotu auditu, projekta kods ir rakstīts Python valodā un licencēts saskaņā ar GPLv3.
Izplatītākās ziņojumapmaiņas sistēmas, kas izmanto pilnīgu šifrēšanu, aizsargā saziņu no pārtveršanas starpniekserveros un no tranzīta datplūsmas analīzes, taču tās neaizsargā pret problēmām klienta ierīcē. Lai kompromitētu pilnībā šifrētas sistēmas, pietiek kompromitēt operētājsistēmu, programmaparatūru vai ziņojumapmaiņas lietotni gala ierīcē, piemēram, izmantojot iepriekš nezināmas ievainojamības, sākotnēji ieviešot ierīcē programmatūras vai aparatūras kļūdas vai piegādājot viltotu atjauninājumu ar aizmugurējām durvīm (piemēram, kad izlūkdienesti vai noziedzīgas grupas izdara spiedienu uz izstrādātāju). Pat ja šifrēšanas atslēgas tiek glabātas atsevišķā marķierī, ja lietotāja sistēma ir kontrolē, vienmēr ir iespējams izsekot procesiem, pārtvert tastatūras datus un uzraudzīt ekrāna izvadi.
TFC piedāvā aparatūras un programmatūras risinājumu, kam nepieciešami trīs atsevišķi datori un īpašs aparatūras sadalītājs klienta pusē. Visa datplūsma ziņojumapmaiņas mijiedarbības laikā tiek pārraidīta caur anonimizējošu Tor tīklu, un ziņojumapmaiņas programmatūra ir ieviesta kā Tor slēptie pakalpojumi (lietotāji ziņojumapmaiņas laikā tiek identificēti pēc slēptām pakalpojumu adresēm un atslēgām).
Pirmais dators darbojas kā vārteja uz tīklu un darbina slēpto Tor pakalpojumu. Vārteja apstrādā tikai šifrētus datus, bet pārējie divi datori tiek izmantoti šifrēšanai un atšifrēšanai. Otrais dators var atšifrēt un parādīt tikai saņemtos ziņojumus, bet trešais var tikai šifrēt un sūtīt jaunus ziņojumus. Attiecīgi otrajam datoram ir tikai atšifrēšanas atslēgas, bet trešajam — tikai šifrēšanas atslēgas.
Otrajam un trešajam datoram nav tieša savienojuma ar tīklu, un tos no vārtejas datora atdala īpašs USB sadalītājs, kas izmanto principu ""un fiziski pārraida datus tikai vienā virzienā. Sadalītājs ļauj datus nosūtīt tikai uz otro datoru un saņem datus tikai no trešā datora. Datu virzienu sadalītājā ierobežo (Vienkārši pārtraukt Tx un Rx līnijas kabelī nav pietiekami, jo pārrāvums neliedz datu pārraidi pretējā virzienā un negarantē, ka Tx līnija netiks izmantota lasīšanai, bet Rx - pārraidei). Sadalītāju var salikt no improvizētām detaļām, () un ir pieejami saskaņā ar GNU FDL 1.3 licenci.
Ar šādu shēmu vārteja ir apdraudēta. Tas ļaus piekļūt šifrēšanas atslēgām un novērsīs turpmākus uzbrukumus atlikušajām ierīcēm. Ja dators, kurā atrodas atšifrēšanas atslēgas, tiek apdraudēts, informāciju no tā nevarēs pārsūtīt uz ārpasauli, jo datu plūsma ir ierobežota tikai ar datu saņemšanu, un reverso pārraidi bloķē datu diode.
Šifrēšana ir balstīta uz 256 bitu atslēgām uz XChaCha20-Poly1305, un atslēgu aizsardzībai ar paroli tiek izmantota lēna jaucējfunkcija. Atslēgu apmaiņai tiek izmantota atslēgu apmaiņa. (Difija-Helmana protokols, kas balstīts uz Curve448) vai PSK atslēgas (). Katrs ziņojums tiek pārraidīts pilnīgas uz priekšu vērstas slepenības (PFS) režīmā, ), pamatojoties uz Blake2b hešiem, kuros vienas no ilgtermiņa atslēgām kompromitēšana neļauj atšifrēt iepriekš pārtvertu sesiju. Lietojumprogrammas saskarne ir ārkārtīgi vienkārša un ietver logu, kas sadalīts trīs zonās: sūtīšana, saņemšana un komandrinda ar mijiedarbību ar vārteju žurnālu. Vadība tiek veikta, izmantojot īpašu .
Avots: opennet.ru
