]> git.siccegge.de Git - talk/dnssec.git/blobdiff - slides.tex
Finish
[talk/dnssec.git] / slides.tex
index 1e73484caa1f2f20c9e67af0944c9725f884a534..1d4881e401700ad91196b798add12e41402988c8 100644 (file)
@@ -4,13 +4,33 @@
 \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}}
@@ -30,7 +50,7 @@
 \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}