515 lines
19 KiB
TeX
515 lines
19 KiB
TeX
\documentclass{f4_beamer}
|
|
\usepackage{graphicx}
|
|
\usepackage{float}
|
|
\usepackage{subfigure}
|
|
\usepackage{xspace}
|
|
\usepackage{textcomp}
|
|
\usepackage{tabularx}
|
|
\usepackage{booktabs}
|
|
\usepackage{amsmath}
|
|
\usepackage{subfigure}
|
|
\usepackage{here}
|
|
\usepackage{verbatim}
|
|
\usepackage{listings}
|
|
\usepackage{url}
|
|
\usepackage{xcolor}
|
|
\usepackage{caption}
|
|
\usepackage[autostyle=true,german=quotes]{csquotes}
|
|
|
|
% Suppress numbering captions
|
|
\captionsetup{labelformat=empty}
|
|
|
|
% Setup für Codeblocks
|
|
\lstset{
|
|
% Optionen
|
|
breaklines=true,
|
|
breakatwhitespace=true,
|
|
breakautoindent=true,
|
|
frame=single,
|
|
%framexleftmargin=19pt,
|
|
inputencoding=utf8,
|
|
%language=awk,
|
|
%numbers=left,
|
|
%numbersep=8pt,
|
|
showspaces=false,
|
|
showstringspaces=false,
|
|
tabsize=1,
|
|
%xleftmargin=19pt,
|
|
captionpos=b,
|
|
% Styling
|
|
basicstyle=\footnotesize\ttfamily,
|
|
commentstyle=\footnotesize,
|
|
keywordstyle=\footnotesize\ttfamily,
|
|
numberstyle=\footnotesize,
|
|
stringstyle=\footnotesize\ttfamily,
|
|
}
|
|
% Hack für Sonderzeichen in Codeblocks
|
|
\lstset{literate=%
|
|
{Ö}{{\"O}}1
|
|
{Ä}{{\"A}}1
|
|
{Ü}{{\"U}}1
|
|
{ß}{{\ss}}1
|
|
{ü}{{\"u}}1
|
|
{ä}{{\"a}}1
|
|
{ö}{{\"o}}1
|
|
{°}{{${^\circ}$}}1
|
|
}
|
|
|
|
% Define colors
|
|
\definecolor{hlr}{RGB}{255,180,180}
|
|
\definecolor{hlg}{RGB}{180,255,180}
|
|
\definecolor{hlb}{RGB}{180,180,255}
|
|
|
|
\mode<presentation>
|
|
\title{IPv6}
|
|
\subtitle{Einführung und Sicherheitsaspekte}
|
|
\author{Jan Philipp Timme}
|
|
\date{\today}
|
|
|
|
\begin{document}
|
|
|
|
\begin{frame}{Neuigkeiten mit IPv6 (1/2)}
|
|
\begin{itemize}
|
|
\item RFC 2460, 1998/12 - IPv6 Specification
|
|
\item 128 Bit Adressraum
|
|
\item Neu: Link-lokale Adressen
|
|
\item Multicast anstelle von Broadcast
|
|
\item Einfache Paketstruktur mit optionalen Headern
|
|
\item ICMPv6 für Betrieb essentiell (Bei IPv4 war ICMP optional)
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Neuigkeiten mit IPv6 (2/2)}
|
|
\begin{itemize}
|
|
\item Automatische Konfiguration via SLAAC\footnote{RFC 2462, 1998/12 - IPv6 Stateless Address Autoconfiguration} (und DHCPv6\footnote{RFC 3315, 2003/07 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6)})
|
|
\item Router Advertisments
|
|
\item Vollwertiges Routing, keine NAT\footnote{Network Address Translation} erforderlich!
|
|
\item Paketfragmentierung nur noch durch den Absender möglich
|
|
\item Überlappende Fragmentierung ist verboten\footnote{Kapitel 1. in RFC 6946, 2013/05 - Processing of IPv6 "Atomic" Fragments}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\section{Einstieg in IPv6}
|
|
|
|
\subsection{Notation und Schreibweisen}
|
|
|
|
\begin{frame}{Notation und Kurzschreibweise\footnote{Alle Beispiele mit RFC 3849, 2004/07 - IPv6 Address Prefix Reserved for Documentation}}
|
|
Gegeben: IPv6-Adresse
|
|
\texttt{2001:0db8:2407:08d3:0000:0000:0000:1234} \newline
|
|
\newline
|
|
1) Führende Nullen streichen \newline
|
|
\texttt{2001:\colorbox{hlb}{0}db8:2407:\colorbox{hlb}{0}8d3:\colorbox{hlb}{000}0:\colorbox{hlb}{000}0:\colorbox{hlb}{000}0:1234} \newline
|
|
$\Rightarrow$ \texttt{2001:db8:2407:8d3:0:0:0:1234} \newline
|
|
\newline
|
|
2) Zusammenhängende Nullsegmente mit \texttt{::} ersetzen
|
|
\texttt{2001:db8:2407:8d3:\colorbox{hlb}{0:0:0}:1234} \newline
|
|
$\Rightarrow$ \texttt{2001:db8:2407:8d3::1234} \newline
|
|
\newline
|
|
\enquote{Das ist schon kürzer, aber tippen will ich das nicht...} \newline
|
|
$\rightarrow$ \enquote{Dafür gibt es im DNS \texttt{AAAA}-Einträge!}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressen: Präfixe und Suffixe\footnote{Kapitel 2.3. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Notation wie Classless Inter-domain Routing (CIDR\footnote{RFC 4632, 2006/08 - Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan}) bei IPv4 \newline
|
|
\newline
|
|
IPv6-Adresse mit angegebener Präfix-Länge: \texttt{2001:db8:2407:8d3::1234/\colorbox{hlr}{64}} \newline
|
|
\newline
|
|
Bedeutung: Präfix mit \colorbox{hlr}{64} Bit Länge fest vorgegeben
|
|
$\Rightarrow$ Übriges Suffix mit $128 - \colorbox{hlr}{64} = \colorbox{hlg}{64}$ Bit Länge frei zur Verwendung
|
|
\newline
|
|
|
|
\texttt{\colorbox{hlr}{2001:0db8:2407:08d3}:\colorbox{hlg}{0000:0000:0000:1234}/\colorbox{hlr}{64}} \end{frame}
|
|
|
|
\begin{frame}{Hierarchische Zuweisung von Netzen (Beispiel)}
|
|
\begin{itemize}
|
|
\item ISP bekommt ein \texttt{\colorbox{hlr}{/24}} Präfix zugewiesen
|
|
\begin{itemize}
|
|
\item $128 - \texttt{\colorbox{hlr}{24}} = 104$ Bit Suffix für ISP
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\texttt{\colorbox{hlr}{2001:0d}00:0000:0000:0000:0000:0000:0000/\colorbox{hlr}{24}}
|
|
\begin{itemize}
|
|
\item ISP weist Kunden ein \texttt{\colorbox{hlb}{/56}} Präfix aus seinem \texttt{\colorbox{hlr}{/24}} Präfix zu
|
|
\begin{itemize}
|
|
\item $128 - \texttt{\colorbox{hlb}{56}} = 72$ Bit Suffix für Kunde
|
|
\item $\rightarrow$ $104 - 72 = 32$ Bit bleiben für Subnetzbildung
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\texttt{\colorbox{hlb}{\colorbox{hlr}{2001:0d}b8:2407:d3}00:0000:0000:0000:0000/\colorbox{hlb}{56}}
|
|
\begin{itemize}
|
|
\item Kundenrouter weist jedem Subnetz ein \texttt{\colorbox{hlg}{/64}}-Präfix\footnote{Empfohlene Subnetzgröße laut RFC 6177, 2011/03 - IPv6 Address Assignment to End Sites} zu
|
|
\begin{itemize}
|
|
\item $72 - 64 = 8$ Bit bleiben für Subnetzbildung
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\texttt{\colorbox{hlg}{\colorbox{hlb}{\colorbox{hlr}{2001:0d}b8:2407:d3}42:}0000:0000:0000:0000/\colorbox{hlg}{64}}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Fassungsvermögen von IPv6-Netzen}
|
|
Adresse eines Gerätes in Kundennetz: \newline
|
|
\texttt{\colorbox{hlg}{\colorbox{hlb}{\colorbox{hlr}{2001:0d}b8:2407:d3}42:}7ae4:00ff:fecf:8a50/\colorbox{hlg}{64}} \newline
|
|
\newline
|
|
Anzahl \texttt{\colorbox{hlb}{/56}} Präfixe für Kunden: $2^{104-(128-56)} = 2^{32} = \colorbox{hlb}{4.294.967.296}$ \newline
|
|
Anzahl \texttt{\colorbox{hlg}{/64}} Subnetze für einen Kunden: $2^{8} = \colorbox{hlg}{256}$ \newline
|
|
Anzahl Adressen pro Subnetz: $2^{64} = 18.446.744.073.709.551.616$ \newline
|
|
\newline
|
|
$\Rightarrow$ Adressmangel in IPv6-Netzen vorerst nicht in Sicht
|
|
\end{frame}
|
|
|
|
|
|
\subsection{Adressklassen}
|
|
|
|
\begin{frame}{Adressklassen: Unspezifizierte Adresse\footnote{Kapitel 2.5.2. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Aus IPv4 bekannt als \texttt{0.0.0.0/0} \newline
|
|
\newline
|
|
In IPv6: \texttt{0000:0000:0000:0000:0000:0000:0000:0000} (kurz: \texttt{::}) \newline
|
|
\begin{itemize}
|
|
\item Zeigt das Fehlen einer Adresse an
|
|
\item \dots oder signalisiert Erreichbarkeit eines Sockets auf allen Adressen eines Geräts
|
|
\item Darf nie einem Gerät zugewiesen werden
|
|
\item Als Quelladresse für Pakete erlaubt
|
|
\begin{itemize}
|
|
\item \dots sofern Rechner noch keine IPv6-Adresse besitzt
|
|
\item \dots diese Packete dürfen nicht geroutet werden
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressklassen: Loopback Adresse\footnote{Kapitel 2.5.3. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Aus IPv4 bekannt als \texttt{127.0.0.1/8} \newline
|
|
\newline
|
|
\texttt{0000:0000:0000:0000:0000:0000:0000:0001/128} (kurz: \texttt{::1/128})
|
|
\newline
|
|
\begin{itemize}
|
|
\item Funktionsweise bereits aus IPv4 bekannt
|
|
\item Nur eine Adresse anstelle eines Netzbereichs
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressklassen: Link-lokale Unicast Adresse\footnote{Kapitel 2.5.6. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Ähnlich zu \texttt{169.254.0.0/16} \newline
|
|
\newline
|
|
Präfix: \texttt{fe80::/10} \newline
|
|
Beispiel: \texttt{fe80::7ae4:ff:fecf:8a50/64}
|
|
\newline
|
|
\begin{itemize}
|
|
\item Gilt nur innerhalb der Broadcast-Domäne \textbf{eines Interface}
|
|
\begin{itemize}
|
|
\item \texttt{ping -6 fe80::7ae4:ff:fecf:8a50\textbf{\%eth0}}
|
|
\end{itemize}
|
|
\item Darf nicht geroutet werden
|
|
\item Für Tätigkeiten auf dem lokalen Link
|
|
\begin{itemize}
|
|
\item Neighbor Dicovery Protocol
|
|
\item Automatic Address Configuration
|
|
\item Router Advertisment
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]{Adressklassen: Unique Local Adress (ULA)\footnote{Definiert in RFC 4193, 2005/11 - Unique Local IPv6 Unicast Addresses}}
|
|
Ähnlich zu privaten IPv4-Adressen wie z.B. \texttt{192.168.0.0/24} \newline
|
|
\newline
|
|
Präfix: \texttt{fc00::/7} \newline
|
|
Beispiel ULA-Präfix: \texttt{fd04:4232:a9fc::/48} \newline
|
|
\newline
|
|
Aufbau der ULA\footnote{Kapitel 3.1. in RFC 4193, 2005/11 - Unique Local IPv6 Unicast Addresses}:
|
|
\begin{itemize}
|
|
\item Präfix (7 Bit)
|
|
\item Local-Flag (1 Bit) - Wert: 1 (0 nicht in Standard definiert, reserviert)
|
|
\item Global ID (40 Bit) - Zufällig gewählter Wert
|
|
\item Subnet ID (16 Bit) - Raum für Subnetze
|
|
\item Interface ID (64 Bit)
|
|
\end{itemize}
|
|
|
|
\begin{itemize}
|
|
\item Für Nutzung in privaten Netzen, nicht global geroutet
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressklassen: Globale Unicast Adresse (GUA)\footnote{Kapitel 2.5.4. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}}
|
|
Analog zu global gerouteter IPv4-Adresse \newline
|
|
\newline
|
|
\texttt{2001:db8:2407:8d3:7ae4:ff:fecf:8a50/128}
|
|
\newline
|
|
\begin{itemize}
|
|
\item Wie bereits aus IPv4 bekannt
|
|
\item Global geroutete IPv6-Adresse
|
|
\item Werden von IANA\footnote{Internet Assigned Numbers Authority} vergeben
|
|
\item $\rightarrow$ \url{https://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.xhtml}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressklassen: Multicast\footnote{Adressenformat nachzuschlagen in RFC 7371, 2014/09 - Updates to the IPv6 Multicast Addressing Architecture} (Layer 3)}
|
|
Präfix: \texttt{ff00::/8} \newline
|
|
Statische, link-lokale Multicast-Adressen:
|
|
\begin{itemize}
|
|
\item Alle Knoten: \texttt{ff02::1}
|
|
\item Alle Router: \texttt{ff02::2}
|
|
\item Alle DHCP Server und Relays: \texttt{ff02::1:2} \newline
|
|
\end{itemize}
|
|
Alle registrierten Multicast-Adressen finden sich unter \url{https://www.iana.org/assignments/ipv6-multicast-addresses/ipv6-multicast-addresses.xhtml}.
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressklassen: Multicast (Layer 2)}
|
|
Layer 2 kennt keine IPv6-Adressen, sondern MAC-Adressen. \newline
|
|
|
|
Umsetzung von Multicast-IPv6-Adresse auf Layer 2: \newline
|
|
Bytes \texttt{33-33} verkettet mit den letzten 4 Bytes der IPv6-Zieladresse\footnote{Kapitel 7 in RFC 2464, 1998/12 - Transmission of IPv6 Packets over Ethernet Networks}\newline
|
|
\newline
|
|
Beispiel: \texttt{ff02::1} $\rightarrow$ \texttt{33-33-00-00-00-01} \newline
|
|
\end{frame}
|
|
|
|
\begin{frame}{Adressklassen: Multicast (Solicited Node Address\footnote{Kapitel 2.7.1. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture})}
|
|
Link-lokale Adresse: \texttt{fe80::7ae4:ff:fe\colorbox{hlb}{cf:8a50}/64} \newline
|
|
Präfix Solicited Node Address: \texttt{ff02::1:ff00:0/104} \newline
|
|
\newline
|
|
\texttt{\colorbox{hlr}{ff02:0000:0000:0000:0000:0001:ff}00:0000/\colorbox{hlr}{104}} \newline
|
|
$\rightarrow$ \texttt{\colorbox{hlr}{ff02:0000:0000:0000:0000:0001:ff}\colorbox{hlb}{cf:8a50}/\colorbox{hlr}{104}} \newline
|
|
\newline
|
|
$\rightarrow$ \texttt{ff02::1:ffcf:8a50/104} \newline
|
|
|
|
\begin{itemize}
|
|
\item Zieladresse z.B. für DAD oder Neighbor Discovery
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\section{Verbindung mit lokalem Netzwerk}
|
|
|
|
\subsection{Link-lokale Adresse ermitteln}
|
|
|
|
\begin{frame}{Link-lokale Adresse ableiten}
|
|
Netzwerkkabel eingestöpselt. Was nun? \newline
|
|
Erst einmal die Link-lokale Adresse ableiten\footnote{Kapitel 5.3. in RFC 2462, 1998/12 - IPv6 Stateless Address Autoconfiguration}.\newline
|
|
Hier: Interface-ID aus MAC-Adresse ableiten (EUI-64 Interface ID)\footnote{64-Bit Extended Unique Identifier; Alternative Verfahren sind möglich}
|
|
|
|
\begin{itemize}
|
|
\item MAC-Adresse ermitteln $\rightarrow$ \texttt{7\colorbox{hlb}{8}-E4-00-CF-8A-50}
|
|
\item Bit mit Wertigkeit 2 in erstem Byte invertieren\footnote{Kapitel 2.5.1. in RFC 4291, 2006/02 - IP Version 6 Addressing Architecture}
|
|
\item Bytefolge \texttt{FF-FE} mittig einfügen $\rightarrow$ \texttt{7\colorbox{hlb}{6}-E4-00-FF-FE-CF-8A-50}
|
|
\item Ergebnis als Interface-ID für Präfix \texttt{fe80::/10} verwenden
|
|
\end{itemize}
|
|
$\rightarrow$ \texttt{fe80::78e4:00ff:f3cf:8a:50}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Abgeleitete Adresse auf Verwendung überprüfen}
|
|
Noch ist nicht gesichert, dass die Adresse \texttt{fe80::78e4:00ff:f3cf:8a:50} frei ist. \newline
|
|
$\rightarrow$ Duplicate Address Detection (DAD)
|
|
\begin{itemize}
|
|
\item Neighbor Solicitation\footnote{Kapitel 4.3. in RFC 4861, 2007/09 - Neighbor Discovery for IP version 6 (IPv6)} abschicken
|
|
|
|
\begin{itemize}
|
|
\item Quelladresse \texttt{::}
|
|
\item Zieladresse \texttt{fe80::78e4:00ff:f3cf:8a:50}
|
|
\end{itemize}
|
|
\item Einige Zeit warten
|
|
\item Falls Neighbor Advertisment ankommt: Adresse bereits in Verwendung
|
|
\begin{itemize}
|
|
\item $\rightarrow$ Von vorne beginnen oder aufgeben
|
|
\end{itemize}
|
|
\item Falls keine Antwort: Adresse kann verwendet werden \newline
|
|
\end{itemize}
|
|
\colorbox{hlr}{Angriff möglich}
|
|
\end{frame}
|
|
|
|
|
|
\subsection{Neighbor Discovery Protocol}
|
|
|
|
\begin{frame}{Neighbor Discovery Protocol\footnote{Definiert in RFC 4861, 2007/09 - Neighbor Discovery for IP version 6 (IPv6)}}
|
|
IPv4: ARP $\rightarrow$ IPv6: NDP \newline
|
|
Aufgabe: Verknüpfung von Layer 2 und Layer 3
|
|
\begin{itemize}
|
|
\item Neighbor Solicitation (ICMPv6 Typ 135)
|
|
\begin{itemize}
|
|
\item Quelladresse: IPv6-Adresse des Absenders
|
|
\item Zieladresse: Multicast-Adresse der IPv6-Zieladresse
|
|
\end{itemize}
|
|
\item Neighbor Advertisment (ICMPv6 Typ 136)
|
|
\begin{itemize}
|
|
\item Wird als Unicast an anfragenden Host zurückgeschickt
|
|
\item Unangefragte Neighbor Advertisments können an Multicast-Adresse geschickt werden
|
|
\item Override-Flag zeigt an, existierende Neighbor-Cache-Einträge zu überschreiben \newline
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\colorbox{hlr}{Angriff möglich}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}{Erreichbarkeit über Link-lokale Adresse}
|
|
\begin{itemize}
|
|
\item Über die Link-lokale Adresse ist das Gerät im lokalen Netzwerk für alle Teilnehmer erreichbar
|
|
\item Auf dem Gerät laufende Dienste sind für alle im lokalen Netzwerk erreichbar
|
|
\end{itemize}
|
|
\colorbox{hlr}{Angriffe möglich}
|
|
\begin{itemize}
|
|
\item Vertrauensfrage: Stellen andere Netzwerkteilnehmer eine Bedrohung dar?
|
|
\end{itemize}
|
|
$\rightarrow$ Lokale Firewall auch für IPv6 aktivieren!
|
|
\end{frame}
|
|
|
|
|
|
\section{Verbindung mit dem Internet}
|
|
|
|
\subsection{Stateless Address Autoconfiguration}
|
|
|
|
\begin{frame}{Router Solicitation und Router Advertisment\footnote{Kapitel 4.1. und 4.2. in RFC 4861, 2007/09 - Neighbor Discovery for IP version 6 (IPv6)}}
|
|
Wir haben eine Link-lokale Adresse. Wie sieht's aus mit Internetzugriff?
|
|
\begin{itemize}
|
|
\item Globale Unicast Adresse beschaffen $\rightarrow$ Router benötigt
|
|
\item Router Solicitation versenden (ICMPv6 Typ 133)
|
|
\begin{itemize}
|
|
\item Quelladresse: IPv6-Adresse des Absenders
|
|
\item Zieladresse: \texttt{ff02::2}
|
|
\end{itemize}
|
|
\item Auf Router Advertisment warten (ICMPv6 Typ 134)
|
|
\begin{itemize}
|
|
\item Wird auch periodisch an \texttt{ff02::1} verschickt
|
|
\item Informationen über verfügbare Präfixe + Priorität
|
|
\item Managed-Flag: Falls gesetzt $\rightarrow$ DHCPv6 verpflichtend
|
|
\item Other Configuration-Flag: Falls gesetzt: Zusatzinfos via DHCPv6
|
|
\item Router Lifetime \newline
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\colorbox{hlr}{Angriff möglich}
|
|
\end{frame}
|
|
|
|
|
|
\subsection{Zwischenfazit}
|
|
|
|
\begin{frame}{Zwischenfazit (1/2)}
|
|
\begin{itemize}
|
|
\item DoS-Angriffe gegen hinzukommende Netzwerkteilnehmer
|
|
\item Identitätsdiebstahl im lokalen Netz weiterhin möglich
|
|
\item MITM-Angriffe leicht, wenn man sich als Router für XYZ ausgibt
|
|
\begin{itemize}
|
|
\item \dots z.B. als Router für einen Bezahldienstleister o.Ä. \newline
|
|
\end{itemize}
|
|
\item Nebenbei: ICMPv6 hat auch ein Redirect-Paket (analog zu ICMP)
|
|
\item Einen falschen DHCPv6-Server zu betreiben ist nicht schwerer geworden
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Zwischenfazit (2/2)}
|
|
Aber: Es gibt Hoffnung!
|
|
\begin{itemize}
|
|
\item First-Hop Security (FHS): ACLs auf Switchen ausrollen
|
|
\begin{itemize}
|
|
\item Der Switch erlaubt nur Router Advertisments vom Port eines Routers
|
|
\end{itemize}
|
|
\item Ähnliches Konzept: Router Advertisment Guard\footnote{RFC 6105, 2011/02 - Router Advertisment Guard}
|
|
\item SEcure Neighbor Discovery\footnote{RFC 3971, 2005/03 - Secure NEighbor Discovery (SEND)} (SEND)
|
|
\begin{itemize}
|
|
\item Nutzung einer PKI: Digital signierte NDP-Nachrichten \newline
|
|
\end{itemize}
|
|
\item \dots oder gründliches Monitoring\footnote{Zum Beispiel mit ramond: \url{http://ramond.sourceforge.net/}}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\subsection{Globale Unicast Adressen einrichten}
|
|
|
|
\begin{frame}{Globale Unicast Adressen (GUA) einrichten}
|
|
Ein Router Advertisment für \texttt{2001:db8:0815::/64} ist eingetroffen.
|
|
\begin{itemize}
|
|
\item Interface-ID ermitteln (z.B. auf Basis der MAC-Adresse)
|
|
\item Interface-ID an Prefix anhängen
|
|
\item Für ermittelte Adresse Duplicate Address Detection durchführen
|
|
\end{itemize}
|
|
Erfolg? $\rightarrow$ GUA ermittelt: \texttt{2001:db8:0815::1333:3333:3333:3337}! \newline
|
|
Das Gerät im Internet erreichbar. \newline
|
|
\newline
|
|
\colorbox{hlr}{Angriffe möglich}
|
|
\end{frame}
|
|
|
|
|
|
\subsection{IPv6-Netzen scannen}
|
|
|
|
\begin{frame}{IPv6-Netze scannen}
|
|
\begin{itemize}
|
|
\item Typische Subnetzgröße: 64 Bit
|
|
\item Lineares Scannen von Adressen nicht sinnvoll
|
|
\item $\rightarrow$ Verfahren zur Generierung von Interface-IDs ausnutzen
|
|
\item Nach Geräten bestimmter Hersteller suchen\footnote{MAC-Adressbereiche werden Herstellern zugeteilt: \url{http://standards-oui.ieee.org/oui.txt}}
|
|
\item $\rightarrow$ Zu durchsuchender Adressraum reduziert sich von 64 Bit auf 16-24 Bit.
|
|
\end{itemize}
|
|
Die Geheimhaltung einer IPv6-Adresse bietet KEINE Sicherheit.\newline
|
|
\newline
|
|
Dennoch sind z.B. Privacy Extensions\footnote{RFC 4941, 2007/09 - Privacy Extensions} zur Erzeugung von zufälligen Interface-IDs gerade für Clientgeräte eine gute Wahl.
|
|
\end{frame}
|
|
|
|
|
|
\section{Abschluss}
|
|
|
|
\begin{frame}{Zusammenfassung}
|
|
\begin{itemize}
|
|
\item Auch mit IPv6 gibt es (zusätzliche) Bedrohungen
|
|
\item Bedrohungsniveau ist ähnlich zu dem von IPv4
|
|
\item Gewinn von Adressraum schlägt die wenigen Zusatzrisiken
|
|
\item Organisiert euch Internetzugang mit IPv6 und spielt damit!
|
|
\begin{itemize}
|
|
\item z.B. Multiplayerspiele ohne lästige NAT oder VPN \newline
|
|
\end{itemize}
|
|
\end{itemize}
|
|
Wichtige Punkte:
|
|
\begin{itemize}
|
|
\item Firewall statt NAT
|
|
\item Privacy Extensions aktivieren (Unter Windows standardmäßig aktiv)
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Viel Spaß mit IPv6! (1/4)}
|
|
\dots mit einer netten Buchempfehlung \dots
|
|
\begin{itemize}
|
|
\item Scott Hogg, Eric Vyncke: IPv6 Security, 2008, Cisco Press \newline
|
|
ISBN-13: 978-1-58705-594-2
|
|
\begin{itemize}
|
|
\item \url{http://www.ciscopress.com/store/ipv6-security-9781587055942}
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\dots einem Spielzeug für Neugierige \dots
|
|
\begin{itemize}
|
|
\item IPv6 Attack Toolkit \url{https://github.com/vanhauser-thc/thc-ipv6}
|
|
\end{itemize}
|
|
\dots
|
|
\end{frame}
|
|
|
|
\begin{frame}{Viel Spaß mit IPv6! (2/4)}
|
|
\dots und ein paar IPv6-relevanten RFCs:
|
|
\begin{itemize}
|
|
\item RFC 2460, 1998/12 - IPv6 Specification
|
|
\item RFC 3849, 2004/07 - IPv6 Address Prefix Reserved for Documentation
|
|
\item RFC 2462, 1998/12 - IPv6 Stateless Address Autoconfiguration
|
|
\item RFC 4291, 2006/02 - IP Version 6 Addressing Architecture
|
|
\item RFC 6177, 2011/03 - IPv6 Address Assignment to End Sites
|
|
\item RFC 4193, 2005/11 - Unique Local IPv6 Unicast Addresses
|
|
\end{itemize}
|
|
\dots
|
|
\end{frame}
|
|
|
|
\begin{frame}{Viel Spaß mit IPv6! (3/4)}
|
|
\dots
|
|
\begin{itemize}
|
|
\item RFC 3315, 2003/07 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
|
|
\item RFC 4861, 2007/09 - Neighbor Discovery for IP version 6 (IPv6)
|
|
\item RFC 3971, 2005/03 - Secure NEighbor Discovery (SEND)
|
|
\item RFC 6946, 2013/05 - Processing of IPv6 "Atomic" Fragments
|
|
\item RFC 2464, 1998/12 - Transmission of IPv6 Packets over Ethernet Networks
|
|
\item RFC 6085, 2011/01 - Address Mapping of IPv6 Multicast Packets on Ethernet
|
|
\end{itemize}
|
|
\dots
|
|
\end{frame}
|
|
|
|
\begin{frame}{Viel Spaß mit IPv6! (4/4)}
|
|
\dots
|
|
\begin{itemize}
|
|
\item RFC 6105, 2011/02 - Router Advertisment Guard
|
|
\item RFC 8064, 2017/02 - Recommendation on Stable IPv6 Interface Identifiers
|
|
\item RFC 4941, 2007/09 - Privacy Extensions
|
|
\item RFC 4301, 2005/12 - Security Architecture
|
|
\item RFC 3879, 2004/09 - Deprecating Site Local Addresses
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
% The end.
|
|
\end{document} |