presentation-torhs/torhs.md

3.3 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

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

  1. Daten werden 3x verschlüsselt und an den 1. Hop gesendet

    ENC(Hop2+ENC(Hop3+ENC(Ziel+Daten)))
    
  2. Jeder Hop entschlüsselt einen Layer & sendet den Inhalt weiter

  3. Exit-Node sendet an das eigentliche Ziel

  4. 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

  1. Client sendet RP via IP an den Server
  2. Server baut eine Verbindung zum RP auf
  3. 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

Hidden Services