
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 Sachen, die andere nicht haben.
Anders als Standard-Tor-Chat-Systeme, die permanente Adressen verwenden, ist diese Implementierung vollständig ephemer.
Keine Persistenz: Der Server erstellt einen temporären Hidden Service. Sobald die Sitzung endet, wird die .onion-Adresse gelöscht und kann nicht wiederhergestellt oder wiederverwendet werden.
Hybride Architektur: Mir ist aufgefallen, dass das Hosten 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 keinerlei Konfiguration erfordert. Der Client-Modus greift einfach auf die Tor-Instanz zu, die du wahrscheinlich bereits hast (wie den Tor Browser). Das bedeutet, er nutzt das 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 integrierte Authentifizierung, was bedeutet, dass die App die Nachricht ablehnt, wenn auch nur ein einziges Bit deiner Nachricht während der Übertragung manipuliert wird.
Ja, mit 🔏 entworfen.
Hinweis: ChaCha20-Poly1305 ist ein Algorithmus für authentifizierte Verschlüsselung mit zugehörigen Daten (AEAD), der die ChaCha20-Stromchiffre mit dem Poly1305-Nachrichtenauthentifizierungscode kombiniert.[1] Er hat eine schnelle Software-Leistung 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: Du musst kein Netzwerkexperte sein. Der Server übernimmt den Tor-Handshake und erstellt die geheime .onion-Adresse automatisch für dich.
Einladungslinks: Der Host erhält einen Link, der ein zufälliges 32-Byte-Raumgeheimnis enthält. Jeder, der den Link besitzt, kann beitreten, bis zu 16 Peers. Der Link funktioniert nicht mehr, sobald der Host beendet und die Onion-Adresse gelöscht wird.
QR-Code-Teilen: Anstatt eine 56-stellige Onion-Adresse einzugeben (die leicht falsch eingegeben werden kann), kann der Host einfach einen QR-Code anzeigen, den der Gast scannen kann.
Gruppenräume: Bis zu 16 Personen in einem Raum. Der Host leitet jede Nachricht an alle anderen weiter, und die Leute können gleichzeitig tippen und empfangen, ohne darauf zu warten, dass jemand anderes fertig wird.
Zuverlässige Zustellung: Nachrichten werden vor der Verschlüsselung mit einer Längenangabe versehen, sodass eine Nachricht korrekt wieder zusammengesetzt wird, egal wie das Netzwerk sie in Teile aufteilt.
Vollständige Löschung: Dieses Tool ist ephemer. Das bedeutet, es hinterlässt keine Spuren. Es gibt keine Logs, keine Historie und keine gespeicherten Dateien. Sobald du den Chat schließt, verschwinden die Adresse und die Nachrichten, als hätten sie nie existiert.
TorChat verwendet eine Tor-Architektur für die beste Benutzererfahrung:
Keine Abhängigkeiten - Verwendet eingebettetes Tor
Du kannst einfach das AppImage ausführen. Für das AppImage ist keine Einrichtung erforderlich.
./TorChat-x86_64.AppImage
# Wähle: [1] Raum hosten (Server)
Erfordert Tor - Verwendet System-Tor oder Tor Browser
Die meisten Leute haben das bereits hoffentlich.
Option A: Verwendung des Tor Browsers (Am einfachsten)
# 1. Zuerst musst du den Tor Browser öffnen, da er dir einen SOCKS-Proxy bereitstellt, der auf Port 9150 funktioniert, was der Tor Browser ist.
# 2. TorChat-Client ausführen
./TorChat-x86_64.AppImage
# Wähle: [2] Raum beitreten (Client)
Option B: Verwendung von System-Tor
# 1. System-Tor installieren und starten
sudo apt install tor [ debian ]
sudo pacman -S tor [ arch ]
Um den Tor-Dienst zu starten, musst du den folgenden Befehl verwenden:
sudo systemctl start tor.
Dadurch wird der Tor-Dienst gestartet und läuft. Du musst den Tor-Dienst verwenden, wenn du Tor nutzen möchtest. Der Befehl sudo
systemctl start tor
ist das, was du eingeben solltest, um Tor zu starten.
# 2. TorChat-Client ausführen
./TorChat-x86_64.AppImage
# Wähle: [2] Raum beitreten (Client)
Person 1 (Host):
chmod +x TorChat-x86_64.AppImage
./TorChat-x86_64.AppImage # Wähle [1] Server
# Teile die Einladungs-URL/den QR-Code
# Tippe jederzeit /invite, um sie erneut auszugeben
Person 2 (Beitreten):
# Öffne zuerst den Tor Browser, dann:
./TorChat-x86_64.AppImage # Wähle [2] Client
# Füge die Einladungs-URL ein
# Wiederhole dies für so viele Personen, wie du im Raum haben möchtest
Wenn du denkst, du bist ein cooler Entwickler, dann ist das für dich.
Python 3.7+
System-Tor (nur für den 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
# Dies verwendet eingebettetes Tor, daher ist keine Einrichtung erforderlich
Client (Beitreten):
# Zuerst System-Tor starten
python3 client.py
Verschlüsselungsablauf:
Ein gemeinsames Geheimnis wird mit SHA256 gehasht, um einen 32-Byte-Schlüssel zu erstellen.
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-Schaltkreis 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: