\usepackage[utf8]{inputenc}
\usepackage{listings}
+\usepackage{tikz}
+
+\usetikzlibrary{svg.path,positioning,intersections}
+\usepgflibrary{shapes.geometric}
+\usepgflibrary{shapes.misc}
+\usepgflibrary{shapes.symbols}
+\usepgflibrary{shapes}
+\usetikzlibrary{shapes,decorations,shadows}
+\usetikzlibrary{decorations.pathmorphing}
+\usetikzlibrary{decorations.shapes}
+\usetikzlibrary{fadings}
+\usetikzlibrary{patterns}
+\usetikzlibrary{calc}
+\tikzstyle{netdb}=[anchor=center,color=black,rectangle,draw,minimum
+ size=.6em,minimum height=.2em]
+\tikzstyle{client}=[fill=i4gray,rectangle,draw]
+\tikzstyle{chain}=[rectangle,draw,minimum size=1em,minimum height=.5em]
+\tikzstyle{arrow}=[->,thick,draw,shorten <=2pt,shorten >=2pt,]
+\tikzstyle{tunnel}=[fill=gray,shape=ellipse,minimum size=4em,minimum height=1.1em]
+
\usetheme{CambridgeUS}
\usefonttheme{structuresmallcapsserif}
\title{DNSSEC}
\author{Christoph Egger}
\institute[Debian]{The Debian Project}
-\date{}
+\date{\today}
\usebackgroundtemplate{\includegraphics[width=\paperwidth]{images/swirl-lightest}}
\logo{\includegraphics[viewport=274 335 360 440,width=1cm]{images/openlogo-nd.pdf}}
\setbeamercolor{palette sidebar quaternary}{fg=debianred}
\setbeamercolor{block title}{fg=debianblue}
- \setbeamercolor{description item}{fg=debianblue}
+\setbeamercolor{description item}{fg=debianblue}
\begin{document}
\titlepage
}
+\section{Einführung}
+
+\begin{frame}
+ \begin{block}{Wikipedia}
+ The Domain Name System Security Extensions (DNSSEC) is a suite of
+ Internet Engineering Task Force (IETF) specifications for securing
+ certain kinds of information provided by the Domain Name System
+ (DNS) as used on Internet Protocol (IP) networks. It is a set of
+ extensions to DNS which provide to DNS clients (resolvers) origin
+ authentication of DNS data, authenticated denial of existence, and
+ data integrity, but not availability or confidentiality.
+ \end{block}
+\end{frame}
+
+\section{Signaturen}
+\begin{frame}
+ \frametitle{RRSIG}
+ \begin{block}{siccegge.de}\resizebox{\textwidth}{!}{\texttt{
+ \begin{tabular}{llll}
+siccegge.de. & IN & A & 62.113.200.104\\
+siccegge.de. & IN & RRSIG & A 8 2 43200 20140908181927 20140809171927 60018 siccegge.de.\\
+ &
+ \multicolumn{3}{l}{zldkAFJKKV4/gkmZ8DZkV7AT6nIt4mLXjClJwSnGqvrlBWEzc9h3knLMa9iJeEh01ZEZcWi+JRD/vVVNqBg4P1}\\
+ & \multicolumn{3}{l}{vCGsiPDvzBvO+gq0wtxPPpouNZA9r9h9in4sB3Vw/6HpMcqp843mB+B5SGQZkALDsVCcoY4J0/rPWPXYGHQkA=}\\
+\end{tabular}}}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{ZSK, KSK}
+ \begin{itemize}
+ \item \texttt[KSK] ``KeySigningKey'' -- wird in der übergeordneten
+ Zone referenziert und signiert alle Schlüssel \emph{in} der Zone
+ \pause
+ \item \texttt[ZSK] ``ZoneSigningKey'' -- wird durch den \texttt{KSK}
+ authorisiert und signiert weitere Einträge
+ \pause\bigskip
+ \item Normalerweise gibt es \emph{einen} KSK und \emph{zwei} ZSKs in
+ einer Zone
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \begin{figure}
+ \centering
+ \begin{tikzpicture}[scale=1.2]
+ \tikzstyle{every node}=[font=\small]
+ \node[minimum width=8em,minimum height=12em,draw=gray](dezone) at (0,0) {};
+ \node[below=2em of dezone.south] {de. Zone};
+ \node[minimum width=8em,minimum height=12em,draw=gray](rootzone) at (-9em,0) {};
+ \node[below=2em of rootzone.south] {. Zone};
+ \node[minimum width=8em,minimum height=12em,draw=gray](sicceggezone) at (9em,0) {};
+ \node[below=2em of sicceggezone.south] {siccegge.de. Zone};
+
+ \node[ellipse,draw=debianred](rootksk) at (-9em,3em) {KSK};
+ \node[ellipse,draw=debianblue](rootzsk) at (-9em,0em) {ZSK};
+ \node[ellipse,draw=black](rootds) at (-9em,-3em) {DS};
+
+ \node[ellipse,draw=debianred](deksk) at (0em,3em) {KSK};
+ \node[ellipse,draw=debianblue](dezsk) at (0em,0em) {ZSK};
+ \node[ellipse,draw=black](deds) at (0em,-3em) {DS};
+
+ \node[ellipse,draw=debianred](sicceggeksk) at (9em,3em) {KSK};
+ \node[ellipse,draw=debianblue](sicceggezsk) at (9em,0em) {ZSK};
+ \node[ellipse,draw=black](arecord) at (6.5em,-2em) {\tiny{A}};
+ \node[ellipse,draw=black](aaaarecord) at (8em,-3em) {\tiny{AAAA}};
+ \node[ellipse,draw=black](sshfprecord) at (10.5em,-4em) {\tiny{SSHFP}};
+
+ \draw[arrow,draw=black] (rootds.south) |- ++(0,-2em) -| ([xshift=1em]rootzone.east)
+ |- ([xshift=4.5em,yshift=1em]rootzone.north) -| (deksk.north);
+ \draw[arrow,draw=black] (deds.south) |- ++(0,-2em) -| ([xshift=1em]dezone.east)
+ |- ([xshift=4.5em,yshift=1em]dezone.north) -| (sicceggeksk.north);
+
+ \draw[arrow,draw=debianred] (rootksk.south) -- (rootzsk.north);
+ \draw[arrow,draw=debianred] (deksk.south) -- (dezsk.north);
+ \draw[arrow,draw=debianred] (sicceggeksk.south) -- (sicceggezsk.north);
+
+ \draw[arrow,draw=debianblue] (rootzsk) -- (rootds);
+ \draw[arrow,draw=debianblue] (dezsk) -- (deds);
+ \draw[arrow,draw=debianblue] (sicceggezsk) -- (arecord);
+ \draw[arrow,draw=debianblue] (sicceggezsk) -- (aaaarecord);
+ \draw[arrow,draw=debianblue] (sicceggezsk) -- (sshfprecord);
+ \end{tikzpicture}
+ \end{figure}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Schlüsseltausch}
+ \begin{block}{Idee}
+ Wechsle die Schlüssel regelmäßig. Damit lassen sich auch kleine,
+ effizienter verwendbare Schlüssel verwenden. Auch in Sachen
+ ``Revocation'' nützlich
+ \end{block}
+ \bigskip\pause
+ Schlüssel wechseln in DNS ist nicht so einfach: \pause Stichpunkt
+ \texttt{TTL}
+ \bigskip\pause
+
+ 2 Methoden:
+ \begin{itemize}
+ \item Neuen Schlüssel vor der Verwendung veröffentlichen
+ \item Vorübergehend mit beiden Schlüsseln signieren
+ \end{itemize}
+\end{frame}
+
+\section{NSEC und NSEC3}
+
+\begin{frame}
+ \frametitle{NSEC}
+ \begin{itemize}
+ \item Bilde einen Kreis, der alle vorhandenen Einträge umfasst
+ \item Speichere signierte Feststellung, dass zwischen zwei Namen
+ kein dritter liegt
+ \item Bei negativer Antwort (\texttt{NXDOMAIN}) sende auch den
+ signierten \texttt{NSEC} Eintrag in dessen Interval die Antwort
+ liegen würde\pause\bigskip
+ \item ``Zonewalking'' auflistung aller Einträge in einer Zone
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{NSEC3}
+
+ \begin{itemize}
+ \item Statt Einträge in einem Ring anzuordnen, bilde zuerst eine
+ kryptographische Streusumme
+ \item Verwende Salz und mehrere Runden der Streufunktion für
+ maximalen Effekt.
+ \end{itemize}\bigskip\pause
+ \begin{block}{git.siccegge.de}\resizebox{\textwidth}{!}{\texttt{
+ \begin{tabular}{llll}
+siccegge.de. & IN & NSEC3PARAM & 1 0 100 3BBD311E9F6B0E57
+\end{tabular}}}
+ \end{block}
+\end{frame}
+
+\begin{frame}
+ \frametitle{Negative Antwort}
+ Es werden bis zu drei \texttt{NSEC3} Antworten benötigt\bigskip
+ \begin{itemize}
+ \item Der \texttt{NSEC3}-Eintrag, der das entsprechende Interval
+ umfasst
+ \pause
+ \item Der längste existente \texttt{NSEC3}-Eintrag um zu beweisen, dass diese
+ Zone zuständig ist.
+ \pause
+ \item Ein \texttt{NSEC3}-Eintrag, der beweist, dass keine Wildcards existieren
+ \end{itemize}
+\end{frame}
+
+\section{Zusatznutzen}
+\begin{frame}
+ \frametitle{DANE}
+ \begin{block}{git.siccegge.de}\resizebox{\textwidth}{!}{\texttt{
+ \begin{tabular}{llll}
+\_25.\_tcp.oteiza.siccegge.de. & IN & TLSA & 3 1 1
+101B5B5CCDC5568CEC385552611FD0355BF15DB293E96F46E29DE4A0C4B2BC3F \\
+\_443.\_tcp.siccegge.de. & IN & TLSA & 3 1 1
+62BEBD9F2E77CF26A4006A50F69FC3891BF7BEDDAEF8AC96E57C1D9BA2AB1F73 \\
+\_5222.\_tcp.xmpp.egger.im & IN & TLSA & 3 1 1 9c93fab0d88c911592dedfa7f9385aeee228b0c6d526813ad1182c983677736b
+\end{tabular}}}
+ \end{block}
+ \bigskip\pause
+ Achtung! Beim Schlüsseltausch gibt's wieder Spass.
+ \bigskip\pause
+ \begin{itemize}
+ \item 3: Bezeichnet ein Service Zertifikat
+ \pause
+ \item 1: Angegeben wird der öffentlich Schlüssel, nicht das
+ Zertifikat
+ \pause
+ \item 1: Angegeben wird eine \texttt{SHA256}-Summe
+ \end{itemize}
+\end{frame}
+
+\begin{frame}
+ \frametitle{SSHFP}
+ \begin{block}{git.siccegge.de}\resizebox{\textwidth}{!}{\texttt{
+ \begin{tabular}{lll}
+git.siccegge.de & IN & SSHFP 1 1 0E812EE0A3704230F3C415076E1BAA149A5DC75B\\
+git.siccegge.de & IN & SSHFP 1 2 1CBACAF365040DC1DF841FD07D9186BC343D4AF7DCF689CC8CF4A2F75D7F4B57\\
+git.siccegge.de & IN & SSHFP 3 1 A2D0495E912DA039EEA51A1593F7F74FB919AAD4\\
+git.siccegge.de & IN & SSHFP 3 2 9BF73E3654AA65B847054247F85EFB5C88AB7460840B9C922E647B00696661CF\\
+git.siccegge.de & IN & SSHFP 4 1 2A3EF64AC589193ACFAD783B62E3C193A67F3F46\\
+git.siccegge.de & IN & SSHFP 4 2 880686195D6C1AAA6791F3A3EF4E7B565DCF9F560F2F1BBB93C56EFD5996F335\\
+\end{tabular}}}
+ \end{block}
+ \bigskip\pause
+ \begin{itemize}
+ \item Erste Zahl: Hostkeytyp
+ \item Zweite Zahl: Prüfsummentyp
+ \end{itemize}
+\end{frame}
+
+\begin{frame}{Fragen?}
+ \vspace*{\fill}
+ \begin{center}
+ \includegraphics[width=7cm]{images/42.pdf}
+ \end{center}
+ \vspace*{\fill}
+\end{frame}
+
\end{document}