<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>CCC, Hackerkultur und Computer(un)sicherheit</title> <meta name="description" content="CCC, Hackerkultur und Computer(un)sicherheit"> <meta name="author" content="Heiko Reese"> <meta name="author" content="Martin Vietz"> <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="css/reveal.css"> <link rel="stylesheet" href="css/theme/black.css" id="theme"> <link rel="stylesheet" href="css/entropia.css"> <!-- Code syntax highlighting --> <link rel="stylesheet" href="lib/css/zenburn.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 ) ? 'css/print/pdf.css' : 'css/print/paper.css'; document.getElementsByTagName( 'head' )[0].appendChild( link ); </script> <!--[if lt IE 9]> <script src="lib/js/html5shiv.js"></script> <![endif]--> </head> <body> <div class="reveal"> <!-- Any section element inside of this container is displayed as a slide --> <div class="slides"> <section> <h1>CCC, Hackerkultur und Computer(un)sicherheit</h1> <p> Heiko Reese <<a href="mailto:heiko@entropia.de">heiko@entropia.de</a>><br> Martin Vietz <<a href="mailto:martin@entropia.de">martin@entropia.de</a>> </p> <p>09.06.2015 Karlsruhe</p> </section> <section data-markdown="markdown/ccc.md" data-separator-vertical="^\n\n" data-separator-notes="^Note:"> </section> </section> <section> <h2>Kernfragen an digitale Erkenntnisse/Beweise</h2> <ul> <li>Erkenntnisgüte</li> <li>Attributierbarkeit</li> <li>zeitliche Veränderung</li> <li>strukturelle Grenzen</li> </ul> </section> <section> <section> <h1>Grundlagen Netzwerke</h1> </section> <section> <h2>»Das Internet«</h2> <ul> <li class="fragment">Ursprung Arpanet in der 60ern: Forschungsnetzwerk der DARPA</li> <li class="fragment">Heute: multinationaler Verbund von Rechnernetzen <ul> <li class="fragment">kooperatives Funktionsmodell (»Blümchenwiese«)</li> <li class="fragment">grenzüberschreitend (wer »regiert« das Internet? → “multistakeholder governance”)</li> <li class="fragment">ubiquitär: Laptop, Mobiltelefon, Uhr, Kühlschrank, Insulinpumpe, Stromzähler, Kernkraftwerk, …</li> </ul> </ul> </section> <section> <h2>Datentransport im Internet</h2> <ul> <li>Daten werden für den Transport in kleine Pakete zerlegt und einzeln transportiert</li> <li>Quelle und Ziel müssen eindeutig beschrieben werden (Adressierung)</li> <li>Das Netz muss dafür sorgen, dass Pakete sicher am Ziel ankommen (Routing)</li> <li>Menschen kommen nicht mit langen Zahlenkolonnen klar, Dinge brauchen nutzerfreundliche Namen (DNS)</li> </ul> </section> <section> <h2>IP-Adressen</h2> <p>Rechner haben mindestens eine IP-Adresse, mittels derer man ihm Datenpakete schicken kann.</p> <p class="fragment">Beispiele:<br> <code>127.0.0.1<br> 8.8.8.8<br> 204.74.99.100<br> 2a02:2e0:3fe:1001:302:: </code> </p> </section> <section> <h2>IP-Adressen</h2> <p>Der komplette IP-Adressraum ist initial an fünf <a href="http://de.wikipedia.org/wiki/Regional_Internet_Registry">Regional Internet Registries</a> vergeben (plus einige Bereiche für den privaten Gebrauch).</p> <img src="images/Regional_Internet_Registries_world_map.svg" width="60%"> <p class="fragment">Diese unterteilen die Blöcke weiter und vergibt diese an ihre Kunden, welche die Blöcke potentiell weiter zerstückeln und weitergeben. Dies endet normalerweise nicht beim Endkunden, sondern beim Zugangsprovider.</p> <p class="fragment">Zugehörigkeit via <code>whois</code> einsehbar. Demo!</p> </section> <section> <h2>IP-Adressen</h2> <p>IP-Adressen in der Firma/Behörde/daheim werden vom Netzwerkadministrator des lokalen Netzwerkes vergeben. Bei Otto Normalverbraucher kümmert sich der »DSL-Plastikrouter« darum.</p> <p class="fragment">Diese Vergabe passiert oft automatisiert und nur für eine bestimmte Zeit. Wenn Kollege X jetzt IP-Adresse Y hat, sagt das erstmal nichts darüber aus, welche IP-Adresse er gestern hatte.</p> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>Schema IP-Paket</h2> <img class="fsimg" src="images/ip-packet_v4_plain.svg"> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>Schema IP-Paket (vereinfacht)</h2> <img class="fsimg" src="images/ip-packet_v4_annotated.svg"> </section> <section> <h2>Routing</h2> <p>Wie kommen jetzt Datenpakete von Rechner A zu Rechner B?</p> <p>Wir fangen mal klein an und bauen uns ein überschaubares Netzwerk ohne Internetanschluss.</p> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>ARP/neighbour discovery</h2> <img class="fsimg" src="images/local_lan_arp_01.svg"> <aside class="notes"> Beispiel: ein Raum voller blinder Personen. Wie untereinander kommunizieren? </aside> </section> <section> <h2>MAC-Adresse</h2> <p>Alle Netzanschlüsse (Netzwerkkarte, WiFi) eines Rechners haben eine Hardware-Adresse (<a href="http://de.wikipedia.org/wiki/MAC-Adresse">MAC — Media Access Control</a>), mit der diese im <emph>lokale Netzsegment (Kabel-/Luftschnittstelle)</emph> angesprochen werden können. Diese werden vom Hersteller bei der Produktion vergeben und sind (hoffentlich) weltweit eindeutig.<p> <p class="fragment">Beispiel: <code>00:1d:f3:a3:01:2a</code> </p> <p class="fragment">MAC-Adressen sind nur im lokalen Netzsegment und nicht im Internet sichtbar.</p> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>ARP/neighbour discovery</h2> <img class="fsimg" src="images/local_lan_arp_02.svg"> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>ARP/neighbour discovery</h2> <img class="fsimg" src="images/local_lan_arp_03.svg"> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>ARP/neighbour discovery</h2> <img class="fsimg" src="images/local_lan_arp_04.svg"> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>ARP spoofing</h2> <img class="fsimg" src="images/local_lan_arp_02.svg"> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>ARP spoofing</h2> <img class="fsimg" src="images/local_lan_arp_03.svg"> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>ARP spoofing</h2> <img class="fsimg" src="images/local_lan_arp_05.svg"> <aside class="notes"> "macchanger -r eth0" zeigen. ARP tut nur wegen Blümchenwiese. </aside> </section> <section > <h2><a href="http://de.wikipedia.org/wiki/ARP-Spoofing">ARP Spoofing</a></h2> Durch geschicktes Senden von ARP-Paketen kann ein Angreifer im lokalen Netzsegment die Identität anderer Rechner annehmen oder sich in die Kommunikation zwischenschalten (sogenannter <a href="http://de.wikipedia.org/wiki/Man-in-the-Middle-Angriff">Man-in-the-Middle-Angriff</a>). <p class="fragment">(Demo) <code>macchanger</code>.</p> </section> <section> <h2>Routing</h2> <p>Wir können jetzt Pakete im lokalen Netzwerk transportieren. Wie kommen meine Pakete jetzt zu Amazon in den USA?</p> <p class="fragment">Pakete in unbekannte Netze werden einfach an den sog. »default router« weitergereicht. Der kennt vll. nicht den Weg zum Ziel, aber kann die Pakete ein Stückchen weiter dorthin bringen</p> <p class="fragment">Firmen/Behörden haben dafür ein Stück Computerblech im Keller, Otto Normalbürger die schon erwähnte Plastikbox neben dem Telefonanschluß.</p> </section> <section> <h2>Routing</h2> <p>Die Router im Internet finden (so möglich) einen Weg von IP-Adresse A zu IP-Adresse B. Der Weg der Pakete (»Route«) ist dabei nicht statisch, sondern hängt von Faktoren wie Leitungskosten und -ausfällen, Geschäftsbeziehungen, Politik uvm. ab.<p> <p class="fragment">Routen sind also dynamisch. Ich weiss also weder vorher noch hinterher, ob meine Pakete auf dem Weg von Karlsruhe nach Frankfurt einmal durch China wandern.</p> </section> <section data-background="#eeeeee" data-transition="none" data-transition-speed="fast"> <h2>Und jetzt in Internet-groß!</h2> <img class="fsimg" src="images/grosses_netz_master.svg"> </section> </section> <section data-markdown="markdown/computer.md" data-separator-vertical="^\n\n" data-separator-notes="^Note:"> </section> </div><!-- end slides --> </div> <script src="lib/js/head.min.js"></script> <script src="js/reveal.js"></script> <script> // Full list of configuration options available at: // https://github.com/hakimel/reveal.js#configuration Reveal.initialize({ controls: true, progress: true, history: true, center: true, width: 1280, height: 1024, transition: 'slide', // none/fade/slide/convex/concave/zoom // Optional reveal.js plugins dependencies: [ { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }, { src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, { src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } }, { src: 'plugin/highlight/highlight.js', async: true, condition: function() { return !!document.querySelector( 'pre code' ); }, callback: function() { hljs.initHighlightingOnLoad(); } }, { src: 'plugin/zoom-js/zoom.js', async: true }, { src: 'plugin/notes/notes.js', async: true } ] }); </script> </body> </html>