]> git.siccegge.de Git - talk/dnssec.git/blob - slides.tex
Finish
[talk/dnssec.git] / slides.tex
1 \documentclass[13pt]{beamer}
2 \usepackage{ngerman}
3 \usepackage{multicol}
4 \usepackage[utf8]{inputenc}
5 \usepackage{listings}
6
7 \usepackage{tikz}
8
9 \usetikzlibrary{svg.path,positioning,intersections}
10 \usepgflibrary{shapes.geometric}
11 \usepgflibrary{shapes.misc}
12 \usepgflibrary{shapes.symbols}
13 \usepgflibrary{shapes}
14 \usetikzlibrary{shapes,decorations,shadows}
15 \usetikzlibrary{decorations.pathmorphing}
16 \usetikzlibrary{decorations.shapes}
17 \usetikzlibrary{fadings}
18 \usetikzlibrary{patterns}
19 \usetikzlibrary{calc}
20 \tikzstyle{netdb}=[anchor=center,color=black,rectangle,draw,minimum
21 size=.6em,minimum height=.2em]
22 \tikzstyle{client}=[fill=i4gray,rectangle,draw]
23 \tikzstyle{chain}=[rectangle,draw,minimum size=1em,minimum height=.5em]
24 \tikzstyle{arrow}=[->,thick,draw,shorten <=2pt,shorten >=2pt,]
25 \tikzstyle{tunnel}=[fill=gray,shape=ellipse,minimum size=4em,minimum height=1.1em]
26
27
28 \usetheme{CambridgeUS}
29 \usefonttheme{structuresmallcapsserif}
30 \title{DNSSEC}
31 \author{Christoph Egger}
32 \institute[Debian]{The Debian Project}
33 \date{\today}
34
35 \usebackgroundtemplate{\includegraphics[width=\paperwidth]{images/swirl-lightest}}
36 \logo{\includegraphics[viewport=274 335 360 440,width=1cm]{images/openlogo-nd.pdf}}
37 \definecolor{debianred}{rgb}{.780,.000,.211} % 199,0,54
38 \definecolor{debianblue}{rgb}{0,.208,.780} % 0,53,199
39 \definecolor{debianlightbackgroundblue}{rgb}{.941,.941,.957} % 240,240,244
40 \definecolor{debianbackgroundblue}{rgb}{.776,.784,.878} % 198,200,224
41
42 \usecolortheme[named=debianbackgroundblue]{structure}
43 \setbeamercolor{normal text}{fg=debianred}
44 \setbeamercolor{titlelike}{fg=debianblue}
45 \setbeamercolor{sidebar}{fg=debianred,bg=debianbackgroundblue}
46
47 \setbeamercolor{palette sidebar primary}{fg=debianred}
48 \setbeamercolor{palette sidebar secondary}{fg=debianred}
49 \setbeamercolor{palette sidebar tertiary}{fg=debianred}
50 \setbeamercolor{palette sidebar quaternary}{fg=debianred}
51
52 \setbeamercolor{block title}{fg=debianblue}
53 \setbeamercolor{description item}{fg=debianblue}
54
55 \begin{document}
56
57 \frame{
58 \titlepage
59 }
60
61 \section{Einführung}
62
63 \begin{frame}
64 \begin{block}{Wikipedia}
65 The Domain Name System Security Extensions (DNSSEC) is a suite of
66 Internet Engineering Task Force (IETF) specifications for securing
67 certain kinds of information provided by the Domain Name System
68 (DNS) as used on Internet Protocol (IP) networks. It is a set of
69 extensions to DNS which provide to DNS clients (resolvers) origin
70 authentication of DNS data, authenticated denial of existence, and
71 data integrity, but not availability or confidentiality.
72 \end{block}
73 \end{frame}
74
75 \section{Signaturen}
76 \begin{frame}
77 \frametitle{RRSIG}
78 \begin{block}{siccegge.de}\resizebox{\textwidth}{!}{\texttt{
79 \begin{tabular}{llll}
80 siccegge.de. & IN & A & 62.113.200.104\\
81 siccegge.de. & IN & RRSIG & A 8 2 43200 20140908181927 20140809171927 60018 siccegge.de.\\
82 &
83 \multicolumn{3}{l}{zldkAFJKKV4/gkmZ8DZkV7AT6nIt4mLXjClJwSnGqvrlBWEzc9h3knLMa9iJeEh01ZEZcWi+JRD/vVVNqBg4P1}\\
84 & \multicolumn{3}{l}{vCGsiPDvzBvO+gq0wtxPPpouNZA9r9h9in4sB3Vw/6HpMcqp843mB+B5SGQZkALDsVCcoY4J0/rPWPXYGHQkA=}\\
85 \end{tabular}}}
86 \end{block}
87 \end{frame}
88
89 \begin{frame}
90 \frametitle{ZSK, KSK}
91 \begin{itemize}
92 \item \texttt[KSK] ``KeySigningKey'' -- wird in der übergeordneten
93 Zone referenziert und signiert alle Schlüssel \emph{in} der Zone
94 \pause
95 \item \texttt[ZSK] ``ZoneSigningKey'' -- wird durch den \texttt{KSK}
96 authorisiert und signiert weitere Einträge
97 \pause\bigskip
98 \item Normalerweise gibt es \emph{einen} KSK und \emph{zwei} ZSKs in
99 einer Zone
100 \end{itemize}
101 \end{frame}
102
103 \begin{frame}
104 \begin{figure}
105 \centering
106 \begin{tikzpicture}[scale=1.2]
107 \tikzstyle{every node}=[font=\small]
108 \node[minimum width=8em,minimum height=12em,draw=gray](dezone) at (0,0) {};
109 \node[below=2em of dezone.south] {de. Zone};
110 \node[minimum width=8em,minimum height=12em,draw=gray](rootzone) at (-9em,0) {};
111 \node[below=2em of rootzone.south] {. Zone};
112 \node[minimum width=8em,minimum height=12em,draw=gray](sicceggezone) at (9em,0) {};
113 \node[below=2em of sicceggezone.south] {siccegge.de. Zone};
114
115 \node[ellipse,draw=debianred](rootksk) at (-9em,3em) {KSK};
116 \node[ellipse,draw=debianblue](rootzsk) at (-9em,0em) {ZSK};
117 \node[ellipse,draw=black](rootds) at (-9em,-3em) {DS};
118
119 \node[ellipse,draw=debianred](deksk) at (0em,3em) {KSK};
120 \node[ellipse,draw=debianblue](dezsk) at (0em,0em) {ZSK};
121 \node[ellipse,draw=black](deds) at (0em,-3em) {DS};
122
123 \node[ellipse,draw=debianred](sicceggeksk) at (9em,3em) {KSK};
124 \node[ellipse,draw=debianblue](sicceggezsk) at (9em,0em) {ZSK};
125 \node[ellipse,draw=black](arecord) at (6.5em,-2em) {\tiny{A}};
126 \node[ellipse,draw=black](aaaarecord) at (8em,-3em) {\tiny{AAAA}};
127 \node[ellipse,draw=black](sshfprecord) at (10.5em,-4em) {\tiny{SSHFP}};
128
129 \draw[arrow,draw=black] (rootds.south) |- ++(0,-2em) -| ([xshift=1em]rootzone.east)
130 |- ([xshift=4.5em,yshift=1em]rootzone.north) -| (deksk.north);
131 \draw[arrow,draw=black] (deds.south) |- ++(0,-2em) -| ([xshift=1em]dezone.east)
132 |- ([xshift=4.5em,yshift=1em]dezone.north) -| (sicceggeksk.north);
133
134 \draw[arrow,draw=debianred] (rootksk.south) -- (rootzsk.north);
135 \draw[arrow,draw=debianred] (deksk.south) -- (dezsk.north);
136 \draw[arrow,draw=debianred] (sicceggeksk.south) -- (sicceggezsk.north);
137
138 \draw[arrow,draw=debianblue] (rootzsk) -- (rootds);
139 \draw[arrow,draw=debianblue] (dezsk) -- (deds);
140 \draw[arrow,draw=debianblue] (sicceggezsk) -- (arecord);
141 \draw[arrow,draw=debianblue] (sicceggezsk) -- (aaaarecord);
142 \draw[arrow,draw=debianblue] (sicceggezsk) -- (sshfprecord);
143 \end{tikzpicture}
144 \end{figure}
145 \end{frame}
146
147 \begin{frame}
148 \frametitle{Schlüsseltausch}
149 \begin{block}{Idee}
150 Wechsle die Schlüssel regelmäßig. Damit lassen sich auch kleine,
151 effizienter verwendbare Schlüssel verwenden. Auch in Sachen
152 ``Revocation'' nützlich
153 \end{block}
154 \bigskip\pause
155 Schlüssel wechseln in DNS ist nicht so einfach: \pause Stichpunkt
156 \texttt{TTL}
157 \bigskip\pause
158
159 2 Methoden:
160 \begin{itemize}
161 \item Neuen Schlüssel vor der Verwendung veröffentlichen
162 \item Vorübergehend mit beiden Schlüsseln signieren
163 \end{itemize}
164 \end{frame}
165
166 \section{NSEC und NSEC3}
167
168 \begin{frame}
169 \frametitle{NSEC}
170 \begin{itemize}
171 \item Bilde einen Kreis, der alle vorhandenen Einträge umfasst
172 \item Speichere signierte Feststellung, dass zwischen zwei Namen
173 kein dritter liegt
174 \item Bei negativer Antwort (\texttt{NXDOMAIN}) sende auch den
175 signierten \texttt{NSEC} Eintrag in dessen Interval die Antwort
176 liegen würde\pause\bigskip
177 \item ``Zonewalking'' auflistung aller Einträge in einer Zone
178 \end{itemize}
179 \end{frame}
180
181 \begin{frame}
182 \frametitle{NSEC3}
183
184 \begin{itemize}
185 \item Statt Einträge in einem Ring anzuordnen, bilde zuerst eine
186 kryptographische Streusumme
187 \item Verwende Salz und mehrere Runden der Streufunktion für
188 maximalen Effekt.
189 \end{itemize}\bigskip\pause
190 \begin{block}{git.siccegge.de}\resizebox{\textwidth}{!}{\texttt{
191 \begin{tabular}{llll}
192 siccegge.de. & IN & NSEC3PARAM & 1 0 100 3BBD311E9F6B0E57
193 \end{tabular}}}
194 \end{block}
195 \end{frame}
196
197 \begin{frame}
198 \frametitle{Negative Antwort}
199 Es werden bis zu drei \texttt{NSEC3} Antworten benötigt\bigskip
200 \begin{itemize}
201 \item Der \texttt{NSEC3}-Eintrag, der das entsprechende Interval
202 umfasst
203 \pause
204 \item Der längste existente \texttt{NSEC3}-Eintrag um zu beweisen, dass diese
205 Zone zuständig ist.
206 \pause
207 \item Ein \texttt{NSEC3}-Eintrag, der beweist, dass keine Wildcards existieren
208 \end{itemize}
209 \end{frame}
210
211 \section{Zusatznutzen}
212 \begin{frame}
213 \frametitle{DANE}
214 \begin{block}{git.siccegge.de}\resizebox{\textwidth}{!}{\texttt{
215 \begin{tabular}{llll}
216 \_25.\_tcp.oteiza.siccegge.de. & IN & TLSA & 3 1 1
217 101B5B5CCDC5568CEC385552611FD0355BF15DB293E96F46E29DE4A0C4B2BC3F \\
218 \_443.\_tcp.siccegge.de. & IN & TLSA & 3 1 1
219 62BEBD9F2E77CF26A4006A50F69FC3891BF7BEDDAEF8AC96E57C1D9BA2AB1F73 \\
220 \_5222.\_tcp.xmpp.egger.im & IN & TLSA & 3 1 1 9c93fab0d88c911592dedfa7f9385aeee228b0c6d526813ad1182c983677736b
221 \end{tabular}}}
222 \end{block}
223 \bigskip\pause
224 Achtung! Beim Schlüsseltausch gibt's wieder Spass.
225 \bigskip\pause
226 \begin{itemize}
227 \item 3: Bezeichnet ein Service Zertifikat
228 \pause
229 \item 1: Angegeben wird der öffentlich Schlüssel, nicht das
230 Zertifikat
231 \pause
232 \item 1: Angegeben wird eine \texttt{SHA256}-Summe
233 \end{itemize}
234 \end{frame}
235
236 \begin{frame}
237 \frametitle{SSHFP}
238 \begin{block}{git.siccegge.de}\resizebox{\textwidth}{!}{\texttt{
239 \begin{tabular}{lll}
240 git.siccegge.de & IN & SSHFP 1 1 0E812EE0A3704230F3C415076E1BAA149A5DC75B\\
241 git.siccegge.de & IN & SSHFP 1 2 1CBACAF365040DC1DF841FD07D9186BC343D4AF7DCF689CC8CF4A2F75D7F4B57\\
242 git.siccegge.de & IN & SSHFP 3 1 A2D0495E912DA039EEA51A1593F7F74FB919AAD4\\
243 git.siccegge.de & IN & SSHFP 3 2 9BF73E3654AA65B847054247F85EFB5C88AB7460840B9C922E647B00696661CF\\
244 git.siccegge.de & IN & SSHFP 4 1 2A3EF64AC589193ACFAD783B62E3C193A67F3F46\\
245 git.siccegge.de & IN & SSHFP 4 2 880686195D6C1AAA6791F3A3EF4E7B565DCF9F560F2F1BBB93C56EFD5996F335\\
246 \end{tabular}}}
247 \end{block}
248 \bigskip\pause
249 \begin{itemize}
250 \item Erste Zahl: Hostkeytyp
251 \item Zweite Zahl: Prüfsummentyp
252 \end{itemize}
253 \end{frame}
254
255 \begin{frame}{Fragen?}
256 \vspace*{\fill}
257 \begin{center}
258 \includegraphics[width=7cm]{images/42.pdf}
259 \end{center}
260 \vspace*{\fill}
261 \end{frame}
262
263 \end{document}