
TorChat - chat peer-to-peer seguro, privado y anónimo a través de la red Tor
Chat peer-to-peer seguro, privado y anónimo a través de la red Tor.
TorChat es realmente genial. Tiene algunas cosas interesantes que otros no tienen.
A diferencia de los sistemas de chat Tor estándar que utilizan direcciones permanentes, esta implementación es completamente efímera.
Cero persistencia: El servidor crea un servicio oculto temporal. Una vez que la sesión termina, la dirección .onion se elimina y no se puede recuperar ni reutilizar.
Arquitectura híbrida: Noté que alojar un servicio Tor suele ser la parte más difícil para los usuarios. Para resolverlo, el modo Servidor utiliza un proceso Tor integrado que no requiere configuración. El modo Cliente simplemente se conecta a la instancia de Tor que probablemente ya tienes (como Tor Browser). Significa que usa el Tor del sistema.
Seguridad simple: Elegí ChaCha20-Poly1305 para el cifrado. Es más rápido que AES en la mayoría del hardware y proporciona autenticación integrada, lo que significa que si un solo bit de tu mensaje es alterado durante el tránsito, la aplicación lo rechaza.
Sí, diseñado con 🔏.
Nota: ChaCha20-Poly1305 es un algoritmo de cifrado autenticado con datos asociados (AEAD) que combina el cifrado de flujo ChaCha20 con el código de autenticación de mensajes Poly1305.[1] Tiene un rendimiento rápido en software y, sin aceleración por hardware, suele ser más rápido que AES-GCM.[1]: §B
fuente : https://en.wikipedia.org/wiki/ChaCha20-Poly1305 https://protonvpn.com/blog/chacha20
Configuración automática: No necesitas ser un experto en redes. El servidor gestiona el handshake de Tor y crea la dirección .onion secreta por ti automáticamente.
Invitaciones autodestructivas: Las invitaciones incluyen un temporizador integrado. El enlace solo funciona durante 10 minutos; si nadie se une antes de que termine, la "puerta" se cierra para siempre.
Compartir mediante código QR: En lugar de escribir una dirección onion de 56 caracteres (que es fácil de equivocar), el anfitrión puede mostrar un código QR para que el invitado lo escanee.
Conversación bidireccional (modo full-dúplex): Mediante hilos de Python, ambas personas pueden escribir y recibir mensajes al mismo tiempo sin esperar a que la otra persona termine.
Eliminación total: Esta herramienta es efímera. Esto significa que no deja huellas. No hay registros, ni historial, ni archivos guardados. Una vez que cierras el chat, la dirección y los mensajes desaparecen como si nunca hubieran existido.
TorChat utiliza una arquitectura Tor, para la mejor experiencia de usuario:
Cero dependencias - Usa Tor integrado
Puedes ejecutar el AppImage directamente. No hay ninguna configuración que necesites hacer para el AppImage.
./TorChat-x86_64.AppImage
# Elige: [1] Alojar chat (Servidor)
Requiere Tor - Usa el Tor del sistema o Tor Browser
La mayoría de la gente ya tiene esto, espero.
Opción A: Usando Tor Browser (Lo más fácil)
# 1. Primero necesitas abrir Tor Browser porque te proporciona un proxy SOCKS que funciona en el puerto 9150, que es el de Tor Browser.
# 2. Ejecuta el cliente de TorChat
./TorChat-x86_64.AppImage
# Elige: [2] Conectar con un peer (Cliente)
Opción B: Usando Tor del sistema
# 1. Instala e inicia el Tor del sistema
sudo apt install tor [ debian ]
sudo pacman -S tor [ arch ]
Para iniciar el servicio tor necesitas usar el siguiente comando:
sudo systemctl start tor.
Esto pondrá el servicio tor en marcha. Tienes que usar el servicio tor si quieres usar tor. El comando
sudo systemctl start tor
es lo que debes escribir para iniciar tor.
# 2. Ejecuta el cliente de TorChat
./TorChat-x86_64.AppImage
# Elige: [2] Conectar con un peer (Cliente)
Persona 1 (Anfitrión):
chmod +x TorChat-x86_64.AppImage
./TorChat-x86_64.AppImage # Elige [1] Servidor
# Comparte la URL de invitación / código QR
Persona 2 (Invitado):
# Abre Tor Browser primero, luego:
./TorChat-x86_64.AppImage # Elige [2] Cliente
# Pega la URL de invitación
Si crees que eres un desarrollador genial, esto es para ti.
Python 3.7+
Tor del sistema (solo para modo cliente)
git clone https://github.com/blackXploit-404/torchat.git
cd torchat
python -m venv torchat
source torchat/bin/activate
pip install -r requirements.txt
Servidor (Anfitrión):
python3 server.py
# Esto usa Tor integrado, por lo que no se necesita configuración
Cliente (Invitado):
# Inicia el Tor del sistema primero
python3 client.py
Flujo de cifrado:
Un secreto compartido se procesa con SHA256 para crear una clave de 32 bytes.
Para cada mensaje, se genera un nonce aleatorio de 12 bytes.
El mensaje se cifra y el nonce se antepone a los datos.
El receptor extrae los primeros 12 bytes para usarlos como nonce en el descifrado.
Red:
Servidor: Se vincula a 127.0.0.1:5000, que Tor asigna a una dirección .onion pública.
Cliente: Usa el protocolo SOCKS5 para tunelizar la conexión TCP a través del circuito Tor.
┌─────────────────┐ ┌─────────────────┐
│ SERVER MODE │ │ CLIENT MODE │
├─────────────────┤ ├─────────────────┤
│ Embedded Tor │ │ System Tor │
│ - Tor process │◄──►│ - SOCKS proxy │
│ - Hidden service│ │ - Port 9050/9150│
│ - No dependencies│ │ - Existing Tor │
└─────────────────┘ └─────────────────┘
SENDER SIDE:
User Message: "Hello World"
│
▼
┌─────────────────────┐
│ ChaCha20-Poly1305 │
│ Encryption Engine │
├─────────────────────┤
│ Key: SHA256(secret) │
│ Nonce: 12 random │
│ Plaintext: message │
└─────────────────────┘
│
▼
Encrypted Bytes: [nonce + ciphertext + auth_tag]
│
▼
┌─────────────────────┐
│ Tor Network │
│ (3-hop anonymity) │
└─────────────────────┘
RECEIVER SIDE:
I got some encrypted bytes. These encrypted bytes were received. The encrypted bytes are now here.
│
▼
┌─────────────────────┐
│ ChaCha20-Poly1305 │
│ Decryption Engine │
├─────────────────────┤
│ Key: SHA256(secret) │
│ Nonce: extract │
│ Verify: auth_tag │
└─────────────────────┘
│
▼
Decrypted Message: "Hello World"
HOST TOR NETWORK CLIENT
┌─────────┐ ┌───┐ ┌───┐ ┌───┐ ┌─────────┐
│Embedded │───────────▶│ A │───▶│ B │───▶ │ C │◄─────│ System|│
│ Tor │ │ │ │ │ │ │ │ Tor │
└─────────┘ └───┘ └───┘ └───┘ └─────────┘
│ Entry Middle Exit │
│ Node Node Node │
▼ ▼
.onion Address 3-Hop Encrypted Circuit SOCKS5 Proxy
Secreto compartido. Este método utiliza una contraseña que ya está establecida y es aceptable por ahora.
Sin autenticación de usuarios. Cualquiera que obtenga la URL de invitación puede unirse.
Sin historial de mensajes. Los mensajes no se almacenan en ningún lugar. Esto significa que cuando envías un mensaje, no se guarda en ninguna parte. Los mensajes no se guardan, por lo que no podrás verlos más tarde. Así es como funciona el sistema con los mensajes. Los mensajes no se conservan en ningún almacenamiento, simplemente se van. Luego desaparecen.
Caducidad de invitaciones - Las invitaciones caducan por seguridad (10 minutos por defecto)
# Embedded Tor (Server)
DataDirectory /tmp/tor_chat_xyz/
HiddenServiceDir /tmp/tor_chat_xyz/hidden_service/
HiddenServicePort 5000 127.0.0.1:5000
SocksPort 0 # Disabled for server
# System Tor (Client)
SocksPort 9050
# Default system configuration
"Address not found": se añadió un recordatorio para que los usuarios esperen de 30 a 60 segundos hasta que la red Tor publique el nuevo descriptor .onion.
"Connection timed out": Sugerir comprobar el estado del servicio Tor y la conectividad de red.
sudo systemctl status tor
ahora tiene más características que esto

TorChat está pensado para la comunicación legal que mejora la privacidad. Úsalo con responsabilidad y cumple con las leyes locales.
Este proyecto está licenciado bajo la Licencia MIT. Consulta LICENSE para más detalles.
¿Quieres mejorar TorChat? ¡Las contribuciones son bienvenidas!