summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Ludikovsky <peter+torhs@ludikovsky.name>2018-11-04 08:33:15 +0100
committerPeter Ludikovsky <peter+torhs@ludikovsky.name>2018-11-04 08:38:17 +0100
commit49464cf60c64dacbc70f645215eb1a4290cad915 (patch)
treeaea38891f89db00bba0ffd2be59d0629d89003e8
Initial commit
-rw-r--r--.gitignore2
-rw-r--r--.gitmodules3
-rw-r--r--Makefile10
m---------reveal.js0
-rw-r--r--torhs.md102
5 files changed, 117 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..23f832b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*.html
+*.pdf
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..12123b5
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "reveal.js"]
+ path = reveal.js
+ url = https://github.com/hakimel/reveal.js.git
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..71a8447
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,10 @@
+all: torhs.html
+
+torhs.html: torhs.md
+ pandoc -t revealjs --standalone --smart --slide-level=2 \
+ --css=usrspace.css \
+ -V 'revealjs-url:reveal.js/' \
+ -o torhs.html torhs.md
+
+clean:
+ rm -rf torhs.html
diff --git a/reveal.js b/reveal.js
new file mode 160000
+Subproject c35cce54a5d4800b90e71a43da140c034730898
diff --git a/torhs.md b/torhs.md
new file mode 100644
index 0000000..c4fa828
--- /dev/null
+++ b/torhs.md
@@ -0,0 +1,102 @@
+# 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/