presentation-torhs/torhs.md

115 lines
3.9 KiB
Markdown
Raw Permalink Normal View History

2018-11-04 08:33:15 +01:00
# 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>
2018-11-04 08:40:38 +01:00
## Warum The onion router
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/-FtCTW2rVFM?controls=0&amp;start=44" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
2018-11-04 08:33:15 +01:00
## 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/
2018-11-04 08:40:38 +01:00
- 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
2018-11-04 08:33:15 +01:00
## Hidden Services
- Facebook: https://facebookcorewwwi.onion
- DuckDuckGo: https://3g2upl4pq6kufc4m.onion
- OnionDir: http://dirnxxdraygbifgc.onion
- TORCH: http://xmh57jrzrnw6insl.onion/