Trojan-Proxy-Protokoll: Wie ein Passwort in TLS den Traffic hinter einer echten Website verbirgt
Von 534 Privatkunden-VPNs in unseren Daten geben 116 an, keinen anzubieten. Unten: die Dienste, die dafür am höchsten ranken.
In der Welt von VPN und Proxy ist Trojan ein Open-Source-Protokoll zur Umgehung von Zensur, kein Virus und keine VPN-Marke. Der Name stammt vom griechischen hölzernen Pferd: Der Verkehr tarnt sich als gewöhnliches HTTPS. Ihr Client öffnet echtes TLS auf Port 443, weist sich in seiner ersten Nachricht mit einem gehashten Passwort aus, und jeder ohne das richtige Passwort sieht eine gewöhnliche Website.
Im ersten Paket nach dem Handshake
Sobald TLS steht, packt der Client mehrere Dinge in eine einzige Nachricht: den SHA-224-Hash des Passworts, geschrieben als 56 Hexadezimalzeichen, einen Zeilenumbruch (CRLF), eine SOCKS5-ähnliche Anfrage (CONNECT oder UDP ASSOCIATE, mit Zieladresse und Port), ein weiteres CRLF und den ersten Datenblock. Das Anhängen von Daten an die Anmeldung ist wichtig: Es gibt kein kurzes verräterisches „Auth“-Paket, an dem ein Zensor sich stoßen könnte. Die Protokollbeschreibung passt auf eine Seite.
Was ein falsches Passwort oder ein Scanner zurückbekommt
Ein fehlgeschlagener TLS-Handshake wird verworfen, so wie es jeder Webserver täte. Gelingt der Handshake, ist der Hash aber falsch oder die Anfrage fehlerhaft, übergibt der Server den Stream einem vorgegebenen Ausweich-Endpunkt, standardmäßig einem lokalen Webserver auf Port 80. Stellen Sie dahinter eine echte Seite: Eine leere Seite weckt Verdacht, während ein aktiv betriebener Blog bei einer Sondierung keinen Verdacht erregt. Passive Beobachtung liest das Ganze als gewöhnliches HTTPS-Surfen, und laut Protokoll kann es auch Drosselung (QoS) durch den Anbieter abwehren, die gegen Proxies gerichtet ist.
Trojan-GFW, Trojan-Go und Trojan-R
Das ursprüngliche C++-Projekt (trojan-gfw auf GitHub) entstand, um an der Great Firewall Chinas vorbeizukommen; das Arch Linux wiki vermerkt, dass seine Entwicklung stockt und der Code nie einer richtigen Sicherheitsprüfung unterzogen wurde. Trojan-Go implementiert das Protokoll in Go neu, konfigurationskompatibel zum Original, und ergänzt smux-Multiplexing zur Verringerung der Latenz, WebSocket-Transport zum Relaying über ein CDN, eine optionale Shadowsocks-AEAD-Verschlüsselungsschicht, TLS-Fingerprint-Imitation und ein Routing-Modul. Trojan-R ist eine in Rust geschriebene Implementierung mit Fokus auf Geschwindigkeit und geringen Speicherverbrauch.
Wo Sie Trojan begegnen: Xray, V2Ray, sing-box und Clash
Die meisten Nutzer installieren nie eine Trojan-Binärdatei. Cores wie Xray-core, V2Ray, sing-box (mit optionalem Multiplexing und uTLS) und die Clash-Familie mit mihomo implementieren Trojan; Apps wie v2rayN, v2rayNG, Hiddify, Shadowrocket und NekoBox importieren seine Profile, und der alte Android-Client Igniter spricht das originale Trojan. Der Core öffnet einen lokalen Port im SOCKS5-Stil; das ganze Gerät einzubinden ist Aufgabe des TUN-Modus der App. Die Dokumentation von Xray erlaubt den Klartextmodus nur in einem vertrauenswürdigen privaten Netzwerk: Überall sonst ist TLS Pflicht, und in öffentlichen Netzen muss zusätzlich Mux aktiviert werden, um das Muster TLS-in-TLS zu vermeiden.
Stärken und Schwächen
| Aspekt | Wie Trojan damit umgeht | Was zu beachten ist |
|---|---|---|
| Verschlüsselung | echtes TLS, keine eigene Kryptografie | keine selbst entwickelte Kryptografie, die gebrochen werden könnte |
| Tarnung | HTTPS auf Port 443, trägt TCP und UDP | Ihre Domain erscheint im Handshake und kann blockiert werden |
| Aktive Sondierungen | bei einer Weiterleitung an den Ausweich-Endpunkt antwortet die Tarnwebsite | Forschung 2025 (TrojanProbe) unterscheidet Builds weiterhin über speziell gebaute HTTP-Anfragen |
| Client-Fingerprint | abhängig vom Core | ein Go- oder OpenSSL-Client Hello unterscheidet sich von einem Browser, sofern uTLS keinen imitiert |
| Einrichtung | VPS, Domain, gültiges Zertifikat (Let's Encrypt funktioniert) | selbstsignierte Zertifikate müssen auf jedem Client gepinnt werden |
Trojan, VLESS Reality und NaiveProxy
Reality stammt aus dem Xray-Projekt und erspart Domain und Zertifikat: Der Server entlehnt den TLS-Handshake einer echten Website eines Drittanbieters, und Sondierungen ohne den Schlüssel werden an diese Seite weitergereicht; die Glossar-Einträge VLESS Reality und Xray/V2Ray behandeln diese Familie. NaiveProxy nutzt den eigenen Netzwerkcode von Chromium hinter einem Caddy-Server, sein Verkehr ist also der von Chrome (Glossar-Eintrag); die Tarnung von Trojan ist nur so gut wie die Browser-Imitation des Clients. Shadowsocks, kurz gesagt, zielt darauf, wie zufälliges Rauschen statt wie HTTPS zu wirken.
Trojan-Unterstützung bei VPN-Diensten
Von 371 Diensten im Hauptranking von VPNRadarLab geben 11 an, Trojan zu unterstützen, 98 erklären, dass sie es nicht anbieten, und 268 äußern sich nicht dazu. Das Trojan-Ranking listet die Anbieter, Apps, Cores und Panels, die es einsetzen.
Trojan-FAQ
Braucht Trojan eine eigene Domain?
Ein selbstsigniertes Zertifikat funktioniert nur, wenn jeder Client dieses Zertifikat pinnt; andernfalls benötigen Sie eine echte Domain mit einem gültigen Zertifikat.
Kann ein Trojan-Server hinter einem CDN liegen?
Das originale Trojan nicht. Trojan-Go leitet über ein CDN per WebSocket weiter, und Xray unterstützt dasselbe über WebSocket oder gRPC.
Ist Trojan-Go mit originalen Trojan-Clients kompatibel?
Nur solange seine Erweiterungen ausgeschaltet bleiben.
Trojan in wenigen Zeilen
Trojan verpackt Proxy-Verkehr in echtes TLS auf Port 443, prüft einen SHA-224-Passwort-Hash innerhalb der ersten Nachricht und serviert eine Ausweich-Website an alle ohne den richtigen Hash. Seine Schwachpunkte sind der TLS-Fingerprint des Clients, TLS-in-TLS-Muster ohne Mux und IP-Sperren. Reality erübrigt eigene Domain und Zertifikat, und NaiveProxy ahmt den Fingerprint von Chrome genauer nach; IP-Blockaden treffen alle drei.
Top-Dienste: Trojan-Protokoll
- CitadelVPN8.55
- Xeovo VPN5.05
- StelsVPN4.79
- TorGuard4.61
- VPNEU4.49