103 lines
3.3 KiB
Markdown
103 lines
3.3 KiB
Markdown
|
# 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
|
||
|
|
||
|
<aside class="notes">
|
||
|
Wer sich über Tor bei Facebook anmeldet wird dort genau so getrackt wie sonst. Es sieht nur niemand unterwegs.
|
||
|
</aside>
|
||
|
|
||
|
## Tor Verbindung
|
||
|
|
||
|
1. Client holt sich die Info über *alle* Relays von einem Directory Server
|
||
|
2. Client verbindet sich zu erstem Hop
|
||
|
3. Client holt sich von diesem Infos zu zweitem Hop
|
||
|
4. Von diesem kommen dann die Infos zum dritten (Exit) Hop
|
||
|
|
||
|
## Tor Verbindung
|
||
|
|
||
|
5. Daten werden 3x verschlüsselt und an den 1. Hop gesendet
|
||
|
|
||
|
ENC(Hop2+ENC(Hop3+ENC(Ziel+Daten)))
|
||
|
6. Jeder Hop entschlüsselt einen Layer & sendet den Inhalt weiter
|
||
|
7. Exit-Node sendet an das eigentliche Ziel
|
||
|
8. 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
|
||
|
|
||
|
1. Server erstellt einen Service-Descriptor aus Public Key und 3 Introduction Points (IPs)
|
||
|
2. Server sendet den Service-Descriptor in das Hidden Service Directory (HSDir)
|
||
|
3. Client wählt einen IP und einen Rendezvous Point (RP)
|
||
|
4. Client baut eine Verbindung zum RP auf
|
||
|
|
||
|
## Wie funktioniert ein HS
|
||
|
|
||
|
5. Client sendet RP via IP an den Server
|
||
|
6. Server baut eine Verbindung zum RP auf
|
||
|
7. 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
|
||
|
|
||
|
1. Web-Service aufsetzen
|
||
|
2. SSH-Service aufsetzen
|
||
|
3. beides via Hidden Services erreichbar machen
|
||
|
4. Web-Service via Tor Browser testen
|
||
|
5. 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/
|
||
|
|
||
|
## Hidden Services
|
||
|
|
||
|
- Facebook: https://facebookcorewwwi.onion
|
||
|
- DuckDuckGo: https://3g2upl4pq6kufc4m.onion
|
||
|
- OnionDir: http://dirnxxdraygbifgc.onion
|
||
|
- TORCH: http://xmh57jrzrnw6insl.onion/
|