
Tinfoil Chat - Sistema de mensajería enrutado por cebolla y seguro en el extremo
Tinfoil Chat (TFC) es un sistema de mensajería FOSS+FHD peer-to-peer que se basa en una arquitectura de hardware de alta seguridad para proteger a los usuarios de la recopilación pasiva, los ataques MITM y, lo más importante, la exfiltración remota de claves. TFC está diseñado para personas con uno de los modelos de amenaza más complejos: grupos de crimen organizado y hackers patrocinados por Estados nacionales que eluden el cifrado de extremo a extremo de las aplicaciones de mensajería segura tradicionales hackeando el endpoint.
/rr.TFC utiliza cifrado de extremo a extremo XChaCha20-Poly1305 con autenticación denegable para proteger todos los mensajes y archivos enviados a destinatarios individuales y grupos. Las claves simétricas son precompartidas, o se intercambian usando X448, cuyas huellas digitales en base 10 se verifican mediante un canal fuera de banda. TFC proporciona secreto perfecto hacia adelante por mensaje con un hash ratchet basado en BLAKE2b. Todos los datos persistentes del usuario se cifran localmente usando XChaCha20-Poly1305, cuya clave se deriva de la contraseña y la sal usando Argon2id, cuyos parámetros se ajustan automáticamente según las mejores prácticas. La generación de claves de TFC se basa en getrandom() del kernel de Linux, una llamada al sistema para su CSPRNG basado en ChaCha20.
TFC enruta toda la comunicación exclusivamente a través de la red de anonimato Tor. Utiliza los (v3) Tor Onion Services para permitir una comunicación P2P que nunca sale de la red Tor. Esto hace difícil que los usuarios se desanonimicen accidentalmente. También significa que, a diferencia de los mensajeros (des)centralizados, no hay un servidor de terceros con acceso a metadatos del usuario como quién está hablando con quién, cuándo y cuánto. La arquitectura de red significa que TFC se ejecuta exclusivamente en los dispositivos del usuario. No hay anuncios ni rastreo, y no recopila ningún dato sobre el usuario. Todos los datos siempre están cifrados con claves que el usuario controla, y las bases de datos nunca abandonan el dispositivo del usuario.
Usar Onion Services también significa que no se necesita registro de cuenta. Durante el primer inicio, TFC genera una cuenta TFC aleatoria (una dirección Onion Service) para el usuario, por ejemplo 4sci35xrhp2d45gbm3qpta7ogfedonuw2mucmc36jxemucd7fmgzj3ad. Al conocer esta cuenta TFC, cualquiera puede enviar al usuario una solicitud de contacto y hablar con él sin llegar a conocer nunca su identidad en la vida real, su dirección IP o su geolocalización. La geolocalización protegida hace que los ataques físicos sean muy difíciles porque el atacante no sabe dónde está ubicado el dispositivo en el planeta. Al mismo tiempo, hace que la comunicación sea resistente a la censura: bloquear TFC requiere bloquear Tor de forma categórica, a nivel nacional.
TFC también incluye un modo de enmascaramiento de tráfico que oculta el tipo, la cantidad y el horario de la comunicación, incluso si el dispositivo del usuario orientado a la red es hackeado. Para proporcionar aún más protección de metadatos frente a hackers, la parte de TFC orientada a Internet puede ejecutarse en Tails, un sistema operativo centrado en la privacidad y el anonimato que no contiene archivos personales del usuario (lo que hace difícil deducir a quién pertenece el endpoint), y que proporciona capas adicionales de protección para garantizar el anonimato.
TFC está diseñado para usarse en una configuración de hardware que proporciona una fuerte seguridad de endpoint. Esta configuración utiliza tres computadoras por endpoint: los procesos de cifrado y descifrado se separan entre sí en dos computadoras aisladas, la Computadora de Origen y la Computadora de Destino. Estos dos dispositivos están dedicados a TFC. Esta TCB dividida interactúa con la red a través de la computadora de uso diario del usuario, llamada Computadora en Red.
En TFC, los datos se mueven de la Computadora de Origen a la Computadora en Red, y de la Computadora en Red a la Computadora de Destino, de forma unidireccional. La unidireccionalidad del flujo de datos se impone, ya que los datos se pasan de un dispositivo a otro solo a través de un diodo de datos de diseño de hardware libre, que está conectado a las tres computadoras usando un cable USB por dispositivo. Las Computadoras de Origen y de Destino no están conectadas a Internet, ni a ningún dispositivo que no sea el diodo de datos.