Nos límites do proxecto (Tinfoil Chat) intentouse crear un prototipo dun sistema de mensaxería protexido contra paranoicos que manteña o segredo da correspondencia aínda que os dispositivos finais se vexan comprometidos. Para simplificar a auditoría, o código do proxecto está escrito en Python e licenciado baixo GPLv3.
Os sistemas de mensaxería estendidos actualmente que usan o cifrado de extremo a extremo permítenche protexer a correspondencia contra a interceptación en servidores intermedios e a análise do tráfico de tránsito, pero non protexen contra problemas no lateral do dispositivo cliente. Para comprometer os sistemas baseados no cifrado de extremo a extremo, abonda con comprometer o sistema operativo, o firmware ou a aplicación de mensaxería no dispositivo final, por exemplo, mediante a explotación de vulnerabilidades previamente descoñecidas, mediante a introdución inicial de marcadores de software ou hardware. no dispositivo ou a través da entrega dunha actualización ficticia cunha porta traseira (por exemplo, cando se fai presión sobre o programador por parte dos servizos de intelixencia ou grupos criminais). Aínda que as claves de cifrado estean nun token separado, se tes control sobre o sistema do usuario, sempre é posible rastrexar procesos, interceptar datos do teclado e supervisar a saída da pantalla.
TFC ofrece un complexo de software e hardware que require o uso de tres ordenadores separados e un divisor de hardware especial no lado do cliente. Todo o tráfico durante a interacción dos participantes da mensaxería transmítese a través da rede Tor anónima e os programas de mensaxería realízanse en forma de servizos Tor ocultos (os usuarios identifícanse mediante enderezos e claves de servizo ocultas ao intercambiar mensaxes).
O primeiro ordenador actúa como pasarela para conectarse á rede e executar o servizo oculto Tor. A pasarela manipula só os datos xa cifrados, e os outros dous ordenadores úsanse para o cifrado e o descifrado. O segundo ordenador só se pode usar para descifrar e mostrar as mensaxes recibidas, e o terceiro só para cifrar e enviar novas mensaxes. En consecuencia, o segundo ordenador só ten claves de descifrado e o terceiro só claves de cifrado.
O segundo e o terceiro ordenadores non teñen conexión directa á rede e están separados do ordenador da pasarela por un divisor USB especial que utiliza o “” e transmite fisicamente datos só nunha dirección. O divisor só permite enviar datos ao segundo ordenador e só recibir datos do terceiro ordenador. A dirección dos datos no divisor está limitada usando (unha simple rotura nas liñas Tx e Rx do cable non é suficiente, xa que unha interrupción non exclúe a transmisión de datos en sentido contrario e non garante que a liña Tx non se utilice para a lectura, e a liña Rx para a transmisión. ). O divisor pódese montar a partir de pezas de chatarra, () e están dispoñibles baixo a licenza GNU FDL 1.3.
Con tal esquema, a pasarela está comprometida acceder ás claves de cifrado e non che permitirá continuar o ataque aos dispositivos restantes. Se o ordenador no que se atopan as claves de descifrado está comprometido, a información desta non se pode transmitir ao mundo exterior, xa que o fluxo de datos só está limitado pola recepción de información e a transmisión inversa está bloqueada polo díodo de datos.
O cifrado baséase en claves de 256 bits en XChaCha20-Poly1305, utilízase unha función hash lenta para protexer as claves cun contrasinal . Para o intercambio de chaves úsase (Protocolo Diffie-Hellman baseado en Curve448) ou teclas PSK (). Cada mensaxe transmítese en perfecto segredo de reenvío (PFS, ) baseado en hash de Blake2b, nos que o compromiso dunha das claves a longo prazo non permite o descifrado dunha sesión previamente interceptada. A interface da aplicación é moi sinxela e inclúe unha xanela dividida en tres áreas: envío, recepción e unha liña de comandos cun rexistro de interacción coa pasarela. A xestión realízase a través dun especial .
Fonte: opennet.ru
