3.9 KiB
3.9 KiB
Tor Hidden Services for Fun and NAT Traversal
Was ist Tor
Was ist Tor
- Tor (nicht TOR) steht für "The onion router"
- Möglichkeit Kommunikationswege zu anonymisieren
- Anonymisiert nicht den Inhalt
Warum The onion router
Tor Verbindung
- Client holt sich die Info über alle Relays von einem Directory Server
- Client verbindet sich zu erstem Hop
- Client holt sich von diesem Infos zu zweitem Hop
- Von diesem kommen dann die Infos zum dritten (Exit) Hop
Tor Verbindung
-
Daten werden 3x verschlüsselt und an den 1. Hop gesendet
ENC(Hop2+ENC(Hop3+ENC(Ziel+Daten)))
-
Jeder Hop entschlüsselt einen Layer & sendet den Inhalt weiter
-
Exit-Node sendet an das eigentliche Ziel
-
Zurück wird bei jedem Hop ein Layer hinzugefügt
TL;DR
- Tor verschlüsselt die Daten in Schichten (wie eine Zwiebel)
- Jeder Hop kann nur seine eigenen Daten lesen
- Jeder Hop kennt nur seine direkten Nachbarn, nicht den gesamten Pfad
- Exit-Node kennt das Ziel, und Klardaten (wenn nicht TLS)
- Entry-Node kenn den Client
- Wer Entry- und Exit-Node kennt kann den Nutzer relativ leicht deanonymisieren
Hidden Services
Was ist ein Hidden Service
- Kurz: ein Dienst, der nur innerhalb des Tor-Netzwerkes erreichbar ist und damit ein „Darknet“ bildet
- Vorbehaltlich:
- Es gibt Web2Tor Proxies
- „Darknet“ deswegen weil es innerhalb von Tor Suchmaschinen gibt
- Inhaltsdaten werden noch immer nicht anonymisiert
Wie funktioniert ein HS
- Server erstellt einen Service-Descriptor aus Public Key und 3 Introduction Points (IPs)
- Server sendet den Service-Descriptor in das Hidden Service Directory (HSDir)
- Client wählt einen IP und einen Rendezvous Point (RP)
- Client baut eine Verbindung zum RP auf
Wie funktioniert ein HS
- Client sendet RP via IP an den Server
- Server baut eine Verbindung zum RP auf
- Client und Server können nun verschlüsselt kommunizieren
HS Vorteile
- Dienste nicht aus dem Internet erreichbar
- Dienste auch ohne Port Forwarding erreichbar
- Kommunikation ist verschleiert
- Kommunikation ist verschlüsselt
HS Nachteile
- Dienste nicht ohne Tor erreichbar (nicht-trivial auf Smartphones, non-HTTP(s) unmöglich auf iOS)
- Verbindung nur so gut wie der schlechteste Knoten
- Keine ACLs, wer den Service-Namen kennt kommt hin
- TLS fast nur Self-Signed oder teuer möglich
- HS Namen unmöglich zu merken (mit HSv3 noch schlimmer)
Demo Time!
Demo
- Web-Service aufsetzen
- SSH-Service aufsetzen
- beides via Hidden Services erreichbar machen
- Web-Service via Tor Browser testen
- SSH-Service via Linux und Android testen
Links
Allgemein
- Design documents: https://www.torproject.org/docs/documentation.html.en#DesignDoc
- Statistiken zu
.onion
Services: https://metrics.torproject.org/hidserv-dir-onions-seen.html - Liste von Tor Hidden Services: https://en.wikipedia.org/wiki/List_of_Tor_hidden_services
- Tor2web (Onion to Clearnet): https://www.tor2web.org/
- Orbot: https://guardianproject.info/apps/orbot/
Konfiguration
- Tor: https://www.torproject.org/docs/documentation.html.en
- Installation unter Debian/Ubuntu: https://www.torproject.org/docs/debian.html.en
- Tor Hidden Services: https://www.torproject.org/docs/tor-onion-service.html.en
- Bridges: https://www.torproject.org/docs/bridges.html.en
Hidden Services
- Facebook: https://facebookcorewwwi.onion
- DuckDuckGo: https://3g2upl4pq6kufc4m.onion
- OnionDir: http://dirnxxdraygbifgc.onion
- TORCH: http://xmh57jrzrnw6insl.onion/