<!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 &lt;<a href="mailto:heiko@entropia.de">heiko@entropia.de</a>&gt;<br>
                    Martin Vietz &lt;<a href="mailto:martin@entropia.de">martin@entropia.de</a>&gt;
					</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? &rarr; “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>