
TorChat - Chat peer-to-peer sicura, privata e anonima sulla rete Tor
Chat peer-to-peer sicura, privata e anonima sulla rete Tor.
TorChat è davvero fantastico. ha alcune cose interessanti che gli altri non hanno.
A differenza dei sistemi di chat Tor standard che utilizzano indirizzi permanenti, questa implementazione è completamente effimera.
Zero Persistenza: Il server crea un servizio nascosto temporaneo. Una volta terminata la sessione, l'indirizzo .onion viene eliminato e non può essere recuperato o riutilizzato.
Architettura Ibrida: Ho notato che ospitare un servizio Tor è solitamente la parte più difficile per gli utenti. Per risolvere questo, la modalità Server utilizza un processo Tor incorporato che non richiede alcuna configurazione. La modalità Client si collega semplicemente all'istanza Tor che probabilmente hai già (come Tor Browser). significa che utilizza il tor di sistema.
Sicurezza Semplice: Ho scelto ChaCha20-Poly1305 per la crittografia. È più veloce di AES sulla maggior parte dell'hardware e fornisce autenticazione integrata, il che significa che se anche un singolo bit del tuo messaggio viene manomesso durante il transito, l'app lo rifiuta.
sì, progettato con 🔏.
Nota : ChaCha20-Poly1305 è un algoritmo di crittografia autenticata con dati associati (AEAD), che combina il cifrario a flusso ChaCha20 con il codice di autenticazione dei messaggi Poly1305.[1] Ha prestazioni software veloci e, senza accelerazione hardware, è solitamente più veloce di AES-GCM.[1]: §B
fonte : https://en.wikipedia.org/wiki/ChaCha20-Poly1305 https://protonvpn.com/blog/chacha20
Configurazione Automatica: Non devi essere un esperto di rete. Il server gestisce l'handshake Tor e crea automaticamente per te l'indirizzo .onion segreto.
Link di Invito: L'host riceve un link contenente un segreto di stanza casuale di 32 byte. Chiunque possieda il link può unirsi, fino a 16 peer. Il link smette di funzionare nel momento in cui l'host esce e l'indirizzo onion viene eliminato.
Condivisione tramite Codice QR: Invece di digitare un indirizzo onion di 56 caratteri (che è facile sbagliare), l'host può semplicemente mostrare un codice QR da scansionare per l'ospite.
Stanze di Gruppo: Fino a 16 persone in una stanza. L'host inoltra ogni messaggio a tutti gli altri, e le persone possono digitare e ricevere contemporaneamente senza aspettare che qualcun altro finisca.
Consegna Affidabile: I messaggi hanno un prefisso di lunghezza prima della crittografia, quindi un messaggio viene riassemblato correttamente indipendentemente da come la rete lo suddivide in pezzi.
Cancellazione Totale: Questo strumento è effimero. Questo significa che non lascia tracce. Non ci sono log, né cronologia, né file salvati. Una volta chiusa la chat, l'indirizzo e i messaggi svaniscono come se non fossero mai esistiti.
TorChat utilizza un'architettura Tor, per la migliore esperienza utente:
Zero Dipendenze - Utilizza Tor incorporato
Puoi semplicemente eseguire l'AppImage. Non c'è alcuna configurazione che devi fare per l'AppImage.
./TorChat-x86_64.AppImage
# Choose: [1] Host room (Server)
Richiede Tor - Utilizza il Tor di sistema o Tor Browser
La maggior parte delle persone ha già questa cosa spero.
Opzione A: Utilizzando Tor Browser (Più Semplice)
# 1. First you need to open the Tor Browser because it gives you a SOCKS proxy that works on port 9150 which's the Tor Browser.
# 2. Run TorChat client
./TorChat-x86_64.AppImage
# Choose: [2] Join room (Client)
Opzione B: Utilizzando il Tor di Sistema
# 1. Install and start system Tor
sudo apt install tor [ debian ]
sudo pacman -S tor [ arch ]
To start the tor service you need to use the following command:
sudo systemctl start tor.
This will get the tor service up and running. You have to use the tor service if you want to use tor. The command sudo
systemctl start tor
is what you should type to start tor.
# 2. Run TorChat client
./TorChat-x86_64.AppImage
# Choose: [2] Join room (Client)
Persona 1 (Host):
chmod +x TorChat-x86_64.AppImage
./TorChat-x86_64.AppImage # Choose [1] Server
# Share the invite URL/QR code
# Type /invite any time to print it again
Persona 2 (Unirsi):
# Open Tor Browser first, then:
./TorChat-x86_64.AppImage # Choose [2] Client
# Paste the invite URL
# Repeat for as many people as you want in the room
Se pensi di essere un dev figo allora è per te.
Python 3.7+
Tor di Sistema (solo per la modalità client)
git clone https://github.com/blackXploit-404/torchat.git
cd torchat
python -m venv torchat
source torchat/bin/activate
pip install -r requirements.txt
Server (Host):
python3 server.py
# This uses embedded Tor, so no setup is needed
Client (Unirsi):
# Start system Tor first
python3 client.py
Flusso di Crittografia:
Un segreto condiviso viene sottoposto a hash utilizzando SHA256 per creare una chiave di 32 byte.
Per ogni messaggio, viene generato un nonce casuale di 12 byte.
Il messaggio viene crittografato, e il nonce viene anteposto ai dati.
Il ricevente rimuove i primi 12 byte da utilizzare come nonce per la decrittografia.
Networking:
Server: Si collega a 127.0.0.1:5000, che Tor mappa a un indirizzo .onion pubblico.
Client: Utilizza il protocollo SOCKS5 per incanalare la connessione TCP attraverso il 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 │