From: Christoph Egger Date: Thu, 14 Aug 2014 14:32:42 +0000 (+0200) Subject: Finish X-Git-Tag: ICMP8/2014-08-10^0 X-Git-Url: https://git.siccegge.de//index.cgi?p=talk%2Fdnssec.git;a=commitdiff_plain;h=3e96c6b5264532566f5ee4381572634a0d62cacd Finish --- diff --git a/images/42.pdf b/images/42.pdf new file mode 100644 index 0000000..a17e326 Binary files /dev/null and b/images/42.pdf differ diff --git a/slides.tex b/slides.tex index 1e73484..1d4881e 100644 --- a/slides.tex +++ b/slides.tex @@ -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} @@ -38,4 +58,206 @@ \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}