summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Ludikovsky <peter+torhs@ludikovsky.name>2018-11-04 08:40:38 +0100
committerPeter Ludikovsky <peter+torhs@ludikovsky.name>2018-11-04 08:40:38 +0100
commit2806e32745cc9f834495287749dc90ad9a703518 (patch)
tree8f97e4c9acffc5cdd51f9a283a598978c016454e
parent49464cf60c64dacbc70f645215eb1a4290cad915 (diff)
Added more links
-rw-r--r--.gitignore1
-rw-r--r--torhs.html175
-rw-r--r--torhs.md12
3 files changed, 187 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 23f832b..a136337 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1 @@
-*.html
*.pdf
diff --git a/torhs.html b/torhs.html
new file mode 100644
index 0000000..8a2fc60
--- /dev/null
+++ b/torhs.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="generator" content="pandoc">
+ <title></title>
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
+ <link rel="stylesheet" href="reveal.js//css/reveal.css">
+ <style type="text/css">code{white-space: pre;}</style>
+ <link rel="stylesheet" href="reveal.js//css/theme/black.css" id="theme">
+ <link rel="stylesheet" href="usrspace.css"/>
+ <!-- Printing and PDF exports -->
+ <script>
+ var link = document.createElement( 'link' );
+ link.rel = 'stylesheet';
+ link.type = 'text/css';
+ link.href = window.location.search.match( /print-pdf/gi ) ? 'reveal.js//css/print/pdf.css' : 'reveal.js//css/print/paper.css';
+ document.getElementsByTagName( 'head' )[0].appendChild( link );
+ </script>
+ <!--[if lt IE 9]>
+ <script src="reveal.js//lib/js/html5shiv.js"></script>
+ <![endif]-->
+</head>
+<body>
+ <div class="reveal">
+ <div class="slides">
+
+
+<section><section id="tor-hidden-services-for-fun-and-nat-traversal" class="titleslide slide level1"><h1>Tor Hidden Services for Fun and NAT Traversal</h1></section></section>
+<section><section id="was-ist-tor" class="titleslide slide level1"><h1>Was ist Tor</h1></section><section id="was-ist-tor-1" class="slide level2">
+<h2>Was ist Tor</h2>
+<ul>
+<li>Tor (<em>nicht</em> TOR) steht für “The onion router”</li>
+<li>Möglichkeit Kommunikationswege zu anonymisieren</li>
+<li>Anonymisiert <strong>nicht</strong> den Inhalt</li>
+</ul>
+<aside class="notes">
+Wer sich über Tor bei Facebook anmeldet wird dort genau so getrackt wie sonst. Es sieht nur niemand unterwegs.
+</aside>
+</section><section id="warum-the-onion-router" class="slide level2">
+<h2>Warum The onion router</h2>
+<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>
+</section><section id="tor-verbindung" class="slide level2">
+<h2>Tor Verbindung</h2>
+<ol type="1">
+<li>Client holt sich die Info über <em>alle</em> Relays von einem Directory Server</li>
+<li>Client verbindet sich zu erstem Hop</li>
+<li>Client holt sich von diesem Infos zu zweitem Hop</li>
+<li>Von diesem kommen dann die Infos zum dritten (Exit) Hop</li>
+</ol>
+</section><section id="tor-verbindung-1" class="slide level2">
+<h2>Tor Verbindung</h2>
+<ol start="5" type="1">
+<li><p>Daten werden 3x verschlüsselt und an den 1. Hop gesendet</p>
+<pre><code>ENC(Hop2+ENC(Hop3+ENC(Ziel+Daten)))</code></pre></li>
+<li>Jeder Hop entschlüsselt einen Layer &amp; sendet den Inhalt weiter</li>
+<li>Exit-Node sendet an das eigentliche Ziel</li>
+<li><p>Zurück wird bei jedem Hop ein Layer hinzugefügt</p></li>
+</ol>
+</section><section id="tldr" class="slide level2">
+<h2>TL;DR</h2>
+<ul>
+<li>Tor verschlüsselt die Daten in Schichten (wie eine Zwiebel)</li>
+<li>Jeder Hop kann nur seine eigenen Daten lesen</li>
+<li>Jeder Hop kennt nur seine direkten Nachbarn, nicht den gesamten Pfad</li>
+<li>Exit-Node kennt das Ziel, und Klardaten (wenn nicht TLS)</li>
+<li>Entry-Node kenn den Client</li>
+<li>Wer Entry- und Exit-Node kennt kann den Nutzer relativ leicht deanonymisieren</li>
+</ul>
+</section></section>
+<section><section id="hidden-services" class="titleslide slide level1"><h1>Hidden Services</h1></section><section id="was-ist-ein-hidden-service" class="slide level2">
+<h2>Was ist ein Hidden Service</h2>
+<ul>
+<li>Kurz: ein Dienst, der nur innerhalb des Tor-Netzwerkes erreichbar ist und damit ein „Darknet“ bildet</li>
+<li>Vorbehaltlich:
+<ul>
+<li>Es gibt Web2Tor Proxies</li>
+<li>„Darknet“ deswegen weil es innerhalb von Tor Suchmaschinen gibt</li>
+<li>Inhaltsdaten werden noch immer nicht anonymisiert</li>
+</ul></li>
+</ul>
+</section><section id="wie-funktioniert-ein-hs" class="slide level2">
+<h2>Wie funktioniert ein HS</h2>
+<ol type="1">
+<li>Server erstellt einen Service-Descriptor aus Public Key und 3 Introduction Points (IPs)</li>
+<li>Server sendet den Service-Descriptor in das Hidden Service Directory (HSDir)</li>
+<li>Client wählt einen IP und einen Rendezvous Point (RP)</li>
+<li>Client baut eine Verbindung zum RP auf</li>
+</ol>
+</section><section id="wie-funktioniert-ein-hs-1" class="slide level2">
+<h2>Wie funktioniert ein HS</h2>
+<ol start="5" type="1">
+<li>Client sendet RP via IP an den Server</li>
+<li>Server baut eine Verbindung zum RP auf</li>
+<li>Client und Server können nun verschlüsselt kommunizieren</li>
+</ol>
+</section><section id="hs-vorteile" class="slide level2">
+<h2>HS Vorteile</h2>
+<ul>
+<li>Dienste nicht aus dem Internet erreichbar</li>
+<li>Dienste auch ohne Port Forwarding erreichbar</li>
+<li>Kommunikation ist verschleiert</li>
+<li>Kommunikation ist verschlüsselt</li>
+</ul>
+</section><section id="hs-nachteile" class="slide level2">
+<h2>HS Nachteile</h2>
+<ul>
+<li>Dienste nicht ohne Tor erreichbar (nicht-trivial auf Smartphones, non-HTTP(s) unmöglich auf iOS)</li>
+<li>Verbindung nur so gut wie der schlechteste Knoten</li>
+<li>Keine ACLs, wer den Service-Namen kennt kommt hin</li>
+<li>TLS fast nur Self-Signed oder teuer möglich</li>
+<li>HS Namen unmöglich zu merken (mit HSv3 noch schlimmer)</li>
+</ul>
+</section></section>
+<section><section id="demo-time" class="titleslide slide level1"><h1>Demo Time!</h1></section><section id="demo" class="slide level2">
+<h2>Demo</h2>
+<ol type="1">
+<li>Web-Service aufsetzen</li>
+<li>SSH-Service aufsetzen</li>
+<li>beides via Hidden Services erreichbar machen</li>
+<li>Web-Service via Tor Browser testen</li>
+<li>SSH-Service via Linux und Android testen</li>
+</ol>
+</section></section>
+<section><section id="links" class="titleslide slide level1"><h1>Links</h1></section><section id="allgemein" class="slide level2">
+<h2>Allgemein</h2>
+<ul>
+<li>Design documents: https://www.torproject.org/docs/documentation.html.en#DesignDoc</li>
+<li>Statistiken zu <code>.onion</code> Services: https://metrics.torproject.org/hidserv-dir-onions-seen.html</li>
+<li>Liste von Tor Hidden Services: https://en.wikipedia.org/wiki/List_of_Tor_hidden_services</li>
+<li>Tor2web (Onion to Clearnet): https://www.tor2web.org/</li>
+<li>Orbot: https://guardianproject.info/apps/orbot/</li>
+</ul>
+</section><section id="konfiguration" class="slide level2">
+<h2>Konfiguration</h2>
+<ul>
+<li>Tor: https://www.torproject.org/docs/documentation.html.en</li>
+<li>Installation unter Debian/Ubuntu: https://www.torproject.org/docs/debian.html.en</li>
+<li>Tor Hidden Services: https://www.torproject.org/docs/tor-onion-service.html.en</li>
+<li>Bridges: https://www.torproject.org/docs/bridges.html.en</li>
+</ul>
+</section><section id="hidden-services-1" class="slide level2">
+<h2>Hidden Services</h2>
+<ul>
+<li>Facebook: https://facebookcorewwwi.onion</li>
+<li>DuckDuckGo: https://3g2upl4pq6kufc4m.onion</li>
+<li>OnionDir: http://dirnxxdraygbifgc.onion</li>
+<li>TORCH: http://xmh57jrzrnw6insl.onion/</li>
+</ul>
+</section></section>
+ </div>
+ </div>
+
+ <script src="reveal.js//lib/js/head.min.js"></script>
+ <script src="reveal.js//js/reveal.js"></script>
+
+ <script>
+
+ // Full list of configuration options available at:
+ // https://github.com/hakimel/reveal.js#configuration
+ Reveal.initialize({
+
+ // Optional reveal.js plugins
+ dependencies: [
+ { src: 'reveal.js//lib/js/classList.js', condition: function() { return !document.body.classList; } },
+ { src: 'reveal.js//plugin/zoom-js/zoom.js', async: true },
+ { src: 'reveal.js//plugin/notes/notes.js', async: true }
+ ]
+ });
+ </script>
+ </body>
+</html>
diff --git a/torhs.md b/torhs.md
index c4fa828..92fe1ab 100644
--- a/torhs.md
+++ b/torhs.md
@@ -12,6 +12,10 @@
Wer sich über Tor bei Facebook anmeldet wird dort genau so getrackt wie sonst. Es sieht nur niemand unterwegs.
</aside>
+## 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>
+
## Tor Verbindung
1. Client holt sich die Info über *alle* Relays von einem Directory Server
@@ -93,6 +97,14 @@ Wer sich über Tor bei Facebook anmeldet wird dort genau so getrackt wie sonst.
- 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