
TorChat - Sicherer, privater und anonymer Peer-to-Peer-Chat über das Tor-Netzwerk
Sicherer, privater und anonymer Peer-to-Peer-Chat über das Tor-Netzwerk.
TorChat ist wirklich cool. Es hat einige coole Funktionen, die andere nicht haben.
Im Gegensatz zu standardmäßigen Tor-Chat-Systemen, die permanente Adressen verwenden, ist diese Implementierung vollständig ephemer.
Keine Persistenz: Der Server erstellt einen temporären versteckten Dienst. Sobald die Sitzung endet, wird die .onion-Adresse gelöscht und kann nicht wiederhergestellt oder wiederverwendet werden.
Hybride Architektur: Mir ist aufgefallen, dass das Hosting eines Tor-Dienstes für Benutzer normalerweise der schwierigste Teil ist. Um dies zu lösen, verwendet der Server-Modus einen eingebetteten Tor-Prozess, der keine Konfiguration erfordert. Der Client-Modus greift einfach auf die Tor-Instanz zu, die Sie wahrscheinlich bereits haben (wie Tor Browser). bedeutet, es verwendet system tor.
Einfache Sicherheit: Ich habe ChaCha20-Poly1305 für die Verschlüsselung gewählt. Es ist auf den meisten Hardware schneller als AES und bietet eine integrierte Authentifizierung, was bedeutet, dass die App die Nachricht ablehnt, wenn auch nur ein Bit Ihrer Nachricht während der Übertragung manipuliert wird.
Ja, entworfen mit 🔏.
Hinweis: ChaCha20-Poly1305 ist ein Algorithmus für authentifizierte Verschlüsselung mit assoziierten Daten (AEAD), der den ChaCha20-Stromchiffre mit dem Poly1305-Nachrichtenauthentifizierungscode kombiniert.[1] Er hat eine schnelle Softwareleistung und ist ohne Hardwarebeschleunigung normalerweise schneller als AES-GCM.[1]: §B
Quelle: https://en.wikipedia.org/wiki/ChaCha20-Poly1305 https://protonvpn.com/blog/chacha20
Automatische Einrichtung: Sie müssen kein Netzwerkexperte sein. Der Server übernimmt den Tor-Handshake und erstellt die geheime .onion-Adresse automatisch für Sie.
Selbstzerstörende Einladungen: Einladungen enthalten einen integrierten Timer. Der Link funktioniert nur 10 Minuten lang; wenn bis dahin niemand beitritt, schließt die "Tür" für immer.
QR-Code-Freigabe: Anstatt eine 56-stellige Onion-Adresse einzutippen (was leicht zu Fehlern führen kann), kann der Host einfach einen QR-Code anzeigen, den der Gast scannen kann.
Zwei-Wege-Kommunikation (Vollduplex-Modus): Mithilfe von Python-Threads können beide Personen gleichzeitig Nachrichten eingeben und empfangen, ohne darauf warten zu müssen, dass die andere Person fertig ist.
Totale Löschung: Dieses Tool ist flüchtig. Das bedeutet, es hinterlässt keine Spuren. Es gibt keine Protokolle, keinen Verlauf und keine gespeicherten Dateien. Sobald Sie den Chat schließen, verschwinden die Adresse und die Nachrichten, als hätten sie nie existiert.
TorChat verwendet eine Tor-Architektur für die beste Benutzererfahrung:
Null Abhängigkeiten - Verwendet eingebettetes Tor
Sie können einfach das AppImage ausführen. Für das AppImage ist keine Einrichtung erforderlich.
./TorChat-x86_64.AppImage
# Choose: [1] Host chat (Server)
Erfordert Tor - Verwendet System-Tor oder Tor Browser
Die meisten Leute haben das Ding schon hoffentlich.
Option A: Verwendung von Tor Browser (am einfachsten)
# 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] Connect to peer (Client)
Option B: Verwendung von System-Tor
# 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] Connect to peer (Client)
Person 1 (Host):
chmod +x TorChat-x86_64.AppImage
./TorChat-x86_64.AppImage # Choose [1] Server
# Share the invite URL/QR code
Person 2 (Beitreten):
# Open Tor Browser first, then:
./TorChat-x86_64.AppImage # Choose [2] Client
# Paste the invite URL
Wenn Sie denken, Sie sind ein cooler Entwickler, dann ist das für Sie.
Python 3.7+
System-Tor (nur für Client-Modus)
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 (Beitreten):
# Start system Tor first
python3 client.py
Verschlüsselungsablauf:
Ein gemeinsames Geheimnis wird mit SHA256 gehasht, um einen 32-Byte-Schlüssel zu erzeugen.
Für jede Nachricht wird ein zufälliger 12-Byte-Nonce generiert.
Die Nachricht wird verschlüsselt und der Nonce wird den Daten vorangestellt.
Der Empfänger entfernt die ersten 12 Bytes, um sie als Nonce für die Entschlüsselung zu verwenden.
Netzwerk:
Server: Bindet an 127.0.0.1:5000, was Tor auf eine öffentliche .onion-Adresse abbildet.
Client: Verwendet das SOCKS5-Protokoll, um die TCP-Verbindung durch den Tor-Kreis zu tunneln.
┌─────────────────┐ ┌─────────────────┐
│ 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
-Geteiltes Geheimnis. Diese Methode verwendet ein bereits festgelegtes Passwort und ist für den Moment in Ordnung.
Keine Benutzerauthentifizierung. Jeder, der die Einladungs-URL erhält, kann beitreten.
Kein Nachrichtenverlauf. Die Nachrichten werden an keinem Ort gespeichert. Das bedeutet, dass eine Nachricht, wenn Sie sie senden, nirgendwo aufbewahrt wird. Die Nachrichten werden nicht gespeichert, sodass Sie sie später nicht einsehen können. So funktioniert das System mit den Nachrichten. Die Nachrichten werden in keinem Speicher aufbewahrt, sie sind einfach da. Dann sind sie weg.
Einladungsablauf - Einladungen laufen aus Sicherheitsgründen ab (Standard: 10 Minuten)
# 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
"Adresse nicht gefunden": Ergänzt: Erinnern Sie Benutzer daran, 30–60 Sekunden zu warten, bis das Tor-Netzwerk den neuen .onion-Deskriptor veröffentlicht hat.
"Verbindung abgelaufen": Empfehlen Sie, den Tor-Dienststatus und die Netzwerkkonnektivität zu überprüfen.
sudo systemctl status tor
jetzt hat es mehr Funktionen als dies

TorChat ist für die rechtmäßige, datenschutzfördernde Kommunikation gedacht. Verwenden Sie es verantwortungsbewusst und beachten Sie die örtlichen Gesetze.
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe LICENSE für Details.
Möchten Sie TorChat verbessern? Beiträge sind willkommen!