Inom ramen för projektet (Tinfoil Chat) har ett försök gjorts att skapa en prototyp av ett paranoid-sÀker meddelandesystem som skulle bevara meddelandenas hemlighet Àven vid kompromettering av slutpunkts-enheterna. För att underlÀtta genomförandet av en granskning Àr projektets kod skriven i Python och under GPLv3-licensen.
Vanligt förekommande meddelandesystem som anvĂ€nder end-to-end-kryptering skyddar meddelanden mot avlyssning pĂ„ mellanliggande servrar och mot analys av transittrafik, men skyddar inte mot problem pĂ„ klientsidan. För att kompromettera system baserade pĂ„ end-to-end-kryptering rĂ€cker det med att kompromettera operativsystemet, firmware eller meddelandeappen pĂ„ slutpunkten, till exempel genom utnyttjande av tidigare okĂ€nda sĂ„rbarheter, genom initial inbĂ€ddning av programvarukomponenter eller hĂ„rdvarubakdörrar i enheten eller genom att leverera en falsk uppdatering med bakdörr (till exempel under press frĂ„n myndigheter eller kriminella grupper). Ăven om nycklarna för kryptering finns pĂ„ en separat token finns det alltid en möjlighet att spĂ„ra processerna, avlyssna data frĂ„n tangentbordet och övervaka utdata pĂ„ skĂ€rmen.
TFC erbjuder ett programvaruhÄrdvarukomplex som krÀver anvÀndning av tre separata datorer pÄ klientsidan och en speciell hÄrdvarusplitter. All trafik under interaktionen mellan meddelandeanvÀndare överförs genom det anonyma nÀtverket Tor, och programmen för meddelandeutbyte exekveras som dolda Tor-tjÀnster (anvÀndare identifieras genom adresser pÄ dolda tjÀnster och nycklar).
Den första datorn fungerar som en gateway för att ansluta till nÀtverket och starta den dolda Tor-tjÀnsten. Gatewayen manipulerar endast redan krypterade data, medan de tvÄ andra datorerna anvÀnds för kryptering och dekryptering. Den andra datorn kan endast anvÀndas för dekryptering och visning av mottagna meddelanden, medan den tredje endast anvÀnds för kryptering och sÀndning av nya meddelanden. DÀrmed har den andra datorn endast nycklar för dekryptering, medan den tredje har endast nycklar för kryptering.
Den andra och tredje datorn har ingen direkt anslutning till nÀtverket och Àr Ätskilda frÄn gateway-datorn med en speciell USB-splitter som anvÀnder principen «» och som fysiskt endast tillÄterdata att flöda i ett riktning. Splittern tillÄter endast sÀndning av data till den andra datorn och endast mottagning av data frÄn den tredje datorn. Datorkommunikationen i splittern begrÀnsas av (en enkel avbrott av Tx- och Rx-linjerna i kabeln Àr otillrÀcklig, dÄ avbrottet inte utesluter transmission av data i motsatt riktning och inte garanterar att Tx-linjens anvÀndning inte kommer att anvÀndas för lÀsning, och Rx för sÀndning). Splittern kan byggas av tillgÀngliga komponenter, () och finns under licensen GNU FDL 1.3.
Med en sÄdan layout kommer kompromettering av gateway Ätkomst till krypteringsnycklar och hindrar att attacken fortsÀtter mot de ÄterstÄende enheterna. Vid en kompromettering av datorn dÀr dekrypteringsnycklarna Àr lagrade, kommer det inte vara möjligt att överföra information frÄn den till omvÀrlden, eftersom datatrafiken begrÀnsas till mottagande av information, och den omvÀndaöverföringen blockeras av data-dioden.
Krypteringen utförs med hjĂ€lp av 256-bitars nycklar med XChaCha20-Poly1305 och en lĂ„ngsam hash-funktion, . För nyckelutbyte anvĂ€nds (Diffie-Hellman-protokollet baserat pĂ„ Curve448) eller PSK-nycklar (). Varje meddelande överförs i perfekt framĂ„triktad sekretess (PFS, ) baserat pĂ„ hash-ar av Blake2b, dĂ€r kompromettering av en av de lĂ„ngvariga nycklarna inte möjliggör dekryptering av tidigare fĂ„ngade sessioner. ApplikationsgrĂ€nssnittet Ă€r extremt enkelt och inkluderar ett fönster som Ă€r uppdelat i tre sektioner â sĂ€ndning, mottagning och kommandorad med logg över interaktionen med gatewayn. Styrenheten utförs genom en sĂ€rskild .
KĂ€lla: opennet.ru
