Zero-Trace Terminal es una aplicación web estática que permite a dos dispositivos establecer una conexión punto a punto directa mediante WebRTC para intercambiar mensajes de texto cifrados de extremo a extremo, sin servidor de aplicaciones propio. El código se ejecuta íntegramente en el navegador de cada usuario; la única infraestructura externa interviene en la señalización inicial, tarea que recae en el broker público de PeerJS, y, cuando es necesario, en servidores TURN para atravesar NAT restrictivos o redes corporativas (4G/5G, firewalls).
El funcionamiento arranca cuando un usuario hace clic en «INITIALIZE ROOM (HOST)»: se genera una cadena aleatoria de 100 caracteres (Room Key) con crypto.getRandomValues(), que actúa como único secreto compartido entre las partes y debe transmitirse por un canal fuera de banda. A partir de esa clave se derivan dos valores independientes: una clave AES-GCM de 256 bits mediante PBKDF2 con SHA-256 y 100.000 iteraciones (usada para cifrar los mensajes) y un identificador PeerJS derivado de un SHA-256 truncado, que sirve solo para que ambos pares se localicen en el broker.
Cada mensaje se cifra con un IV aleatorio de 12 bytes antes de enviarlo por el DataChannel; el receptor extrae el IV y aplica AES-GCM, cuya etiqueta de autenticación garantiza confidencialidad e integridad (cualquier manipulación provoca un error de descifrado). El proyecto no guarda nada en disco: ni claves, ni mensajes, ni cookies; un botón «PANIC: PURGE SESSION» cierra conexiones y borra el estado en memoria.
Los autores subrayan limitaciones importantes: el cifrado protege el contenido de la conversación, pero no el anonimato a nivel de red (se recomienda usar una VPN de confianza); no hay autenticación criptográfica de la identidad del interlocutor (quien posea la Room Key puede conectarse); y no hay secreto perfecto hacia adelante entre sesiones si se reutilizase la misma clave. La Room Key caduca a los 120 segundos si la conexión no se establece.
