|
1 \documentclass[dvipsnames,14pt,t]{beamer} |
|
2 \usepackage{proof} |
|
3 \usepackage{beamerthemeplainculight} |
|
4 \usepackage[T1]{fontenc} |
|
5 \usepackage[latin1]{inputenc} |
|
6 \usepackage{mathpartir} |
|
7 \usepackage{isabelle} |
|
8 \usepackage{isabellesym} |
|
9 \usepackage[absolute,overlay]{textpos} |
|
10 \usepackage{ifthen} |
|
11 \usepackage{tikz} |
|
12 \usepackage{courier} |
|
13 \usepackage{listings} |
|
14 \usetikzlibrary{arrows} |
|
15 \usetikzlibrary{positioning} |
|
16 \usetikzlibrary{calc} |
|
17 \usepackage{graphicx} |
|
18 \usetikzlibrary{shapes} |
|
19 \usetikzlibrary{shadows} |
|
20 \usetikzlibrary{plotmarks} |
|
21 |
|
22 |
|
23 \isabellestyle{rm} |
|
24 \renewcommand{\isastyle}{\rm}% |
|
25 \renewcommand{\isastyleminor}{\rm}% |
|
26 \renewcommand{\isastylescript}{\footnotesize\rm\slshape}% |
|
27 \renewcommand{\isatagproof}{} |
|
28 \renewcommand{\endisatagproof}{} |
|
29 \renewcommand{\isamarkupcmt}[1]{#1} |
|
30 |
|
31 % Isabelle characters |
|
32 \renewcommand{\isacharunderscore}{\_} |
|
33 \renewcommand{\isacharbar}{\isamath{\mid}} |
|
34 \renewcommand{\isasymiota}{} |
|
35 \renewcommand{\isacharbraceleft}{\{} |
|
36 \renewcommand{\isacharbraceright}{\}} |
|
37 \renewcommand{\isacharless}{$\langle$} |
|
38 \renewcommand{\isachargreater}{$\rangle$} |
|
39 \renewcommand{\isasymsharp}{\isamath{\#}} |
|
40 \renewcommand{\isasymdots}{\isamath{...}} |
|
41 \renewcommand{\isasymbullet}{\act} |
|
42 |
|
43 |
|
44 |
|
45 \definecolor{javared}{rgb}{0.6,0,0} % for strings |
|
46 \definecolor{javagreen}{rgb}{0.25,0.5,0.35} % comments |
|
47 \definecolor{javapurple}{rgb}{0.5,0,0.35} % keywords |
|
48 \definecolor{javadocblue}{rgb}{0.25,0.35,0.75} % javadoc |
|
49 |
|
50 \lstset{language=Java, |
|
51 basicstyle=\ttfamily, |
|
52 keywordstyle=\color{javapurple}\bfseries, |
|
53 stringstyle=\color{javagreen}, |
|
54 commentstyle=\color{javagreen}, |
|
55 morecomment=[s][\color{javadocblue}]{/**}{*/}, |
|
56 numbers=left, |
|
57 numberstyle=\tiny\color{black}, |
|
58 stepnumber=1, |
|
59 numbersep=10pt, |
|
60 tabsize=2, |
|
61 showspaces=false, |
|
62 showstringspaces=false} |
|
63 |
|
64 \lstdefinelanguage{scala}{ |
|
65 morekeywords={abstract,case,catch,class,def,% |
|
66 do,else,extends,false,final,finally,% |
|
67 for,if,implicit,import,match,mixin,% |
|
68 new,null,object,override,package,% |
|
69 private,protected,requires,return,sealed,% |
|
70 super,this,throw,trait,true,try,% |
|
71 type,val,var,while,with,yield}, |
|
72 otherkeywords={=>,<-,<\%,<:,>:,\#,@}, |
|
73 sensitive=true, |
|
74 morecomment=[l]{//}, |
|
75 morecomment=[n]{/*}{*/}, |
|
76 morestring=[b]", |
|
77 morestring=[b]', |
|
78 morestring=[b]""" |
|
79 } |
|
80 |
|
81 \lstset{language=Scala, |
|
82 basicstyle=\ttfamily, |
|
83 keywordstyle=\color{javapurple}\bfseries, |
|
84 stringstyle=\color{javagreen}, |
|
85 commentstyle=\color{javagreen}, |
|
86 morecomment=[s][\color{javadocblue}]{/**}{*/}, |
|
87 numbers=left, |
|
88 numberstyle=\tiny\color{black}, |
|
89 stepnumber=1, |
|
90 numbersep=10pt, |
|
91 tabsize=2, |
|
92 showspaces=false, |
|
93 showstringspaces=false} |
|
94 |
|
95 % beamer stuff |
|
96 \renewcommand{\slidecaption}{APP 08, King's College London, 20 November 2012} |
|
97 \newcommand{\dn}{\stackrel{\mbox{\scriptsize def}}{=}}% for definitions |
|
98 \newcommand{\bl}[1]{\textcolor{blue}{#1}} |
|
99 |
|
100 \begin{document} |
|
101 |
|
102 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
103 \mode<presentation>{ |
|
104 \begin{frame}<1>[t] |
|
105 \frametitle{% |
|
106 \begin{tabular}{@ {}c@ {}} |
|
107 \\ |
|
108 \LARGE Access Control and \\[-3mm] |
|
109 \LARGE Privacy Policies (8)\\[-6mm] |
|
110 \end{tabular}}\bigskip\bigskip\bigskip |
|
111 |
|
112 %\begin{center} |
|
113 %\includegraphics[scale=1.3]{pics/barrier.jpg} |
|
114 %\end{center} |
|
115 |
|
116 \normalsize |
|
117 \begin{center} |
|
118 \begin{tabular}{ll} |
|
119 Email: & christian.urban at kcl.ac.uk\\ |
|
120 Of$\!$fice: & S1.27 (1st floor Strand Building)\\ |
|
121 Slides: & KEATS (also homework is there)\\ |
|
122 \end{tabular} |
|
123 \end{center} |
|
124 |
|
125 |
|
126 \end{frame}} |
|
127 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
128 |
|
129 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
130 \mode<presentation>{ |
|
131 \begin{frame}[c] |
|
132 \frametitle{Last Week} |
|
133 |
|
134 Andrew Secure RPC Protocol: |
|
135 \bl{$A$} and \bl{$B$} share a key \bl{$K_{AB}$} and want to identify |
|
136 each other\bigskip |
|
137 |
|
138 \begin{itemize} |
|
139 \item \bl{$A \,\text{sends}\, B : A, N_A$} |
|
140 \item \bl{$B\,\text{sends}\, A : \{N_A, K'_{AB}\}_{K_{AB}}$} |
|
141 \item \bl{$A \,\text{sends}\, B : \{N_A\}_{K'_{AB}}$} |
|
142 \end{itemize} |
|
143 |
|
144 \end{frame}} |
|
145 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
146 |
|
147 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
148 \mode<presentation>{ |
|
149 \begin{frame}[t] |
|
150 \frametitle{Protocols} |
|
151 |
|
152 \mbox{} |
|
153 |
|
154 \begin{tabular}{l} |
|
155 {\Large \bl{$A\;\text{sends}\; B : \ldots$}}\\ |
|
156 \onslide<2->{\Large \bl{$B\;\text{sends}\; A : \ldots$}}\\ |
|
157 \onslide<2->{\Large \;\;\;\;\;\bl{$:$}}\bigskip |
|
158 \end{tabular} |
|
159 |
|
160 \begin{itemize} |
|
161 \item by convention \bl{$A$}, \bl{$B$} are named principals \bl{Alice\ldots}\\ |
|
162 but most likely they are programs, which just follow some instructions\bigskip |
|
163 \item<2-> indicates one ``protocol run'', or session, which specifies some |
|
164 order in the communication |
|
165 \item<2-> there can be several sessions in parallel (think of wifi routers) |
|
166 \end{itemize} |
|
167 |
|
168 \end{frame}} |
|
169 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
170 |
|
171 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
172 \mode<presentation>{ |
|
173 \begin{frame}[c] |
|
174 \frametitle{Last Week} |
|
175 |
|
176 |
|
177 \bl{$A$} and \bl{$B$} share the key \bl{$K_{AB}$} and want to identify |
|
178 each other\bigskip |
|
179 |
|
180 \begin{itemize} |
|
181 \item \bl{$A \,\text{sends}\, B : A, N_A$} |
|
182 \item \bl{$B\,\text{sends}\, A : \{N_A, K'_{AB}\}_{K_{AB}}$} |
|
183 \item \bl{$A \,\text{sends}\, B : \{N_A\}_{K'_{AB}}$} |
|
184 \end{itemize} |
|
185 \end{frame}} |
|
186 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
187 |
|
188 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
189 \mode<presentation>{ |
|
190 \begin{frame}[c] |
|
191 \frametitle{Defeating Challenge-Response} |
|
192 |
|
193 \noindent |
|
194 A \alert{reflection attack}: an intruder \bl{$I$} impersonates \bl{$B$}. |
|
195 |
|
196 \begin{center} |
|
197 \begin{tabular}{@{\hspace{-7mm}}c@{\hspace{1mm}}c@{}} |
|
198 \begin{tabular}{@{}l@{}} |
|
199 \onslide<1->{\bl{$A \,\text{sends}\, I : A, N_A$}}\\ |
|
200 \onslide<4->{\bl{$I \,\text{sends}\, A : \{N_A,\!K'_{\!AB}\}_{K_{\!AB}}$}}\\ |
|
201 \onslide<5->{\bl{$A \,\text{sends}\, I : \{N_A\}_{K'_{AB}}$}}\\ |
|
202 \end{tabular} |
|
203 & |
|
204 \begin{tabular}{@{}l@{}} |
|
205 \onslide<2->{\bl{$I \,\text{sends}\, A : B, N_A$}}\\ |
|
206 \onslide<3->{\bl{$A \,\text{sends}\, I : \{N_A,\!K'_{\!AB}\}_{K_{\!AB}}$}}\\ |
|
207 \onslide<6->{\bl{$I \,\text{sends}\, A : \{N_A\}_{K'_{AB}}$}}\\ |
|
208 \end{tabular} |
|
209 \end{tabular} |
|
210 \end{center}\bigskip |
|
211 |
|
212 \onslide<7->{Sounds stupid: ``\ldots answering a question with a counter question''} |
|
213 |
|
214 \end{frame}} |
|
215 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
216 |
|
217 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
218 \mode<presentation>{ |
|
219 \begin{frame}[c] |
|
220 \frametitle{Identify Friend or Foe} |
|
221 |
|
222 \begin{center} |
|
223 \onslide<2->{\mbox{}\hspace{3.4cm}\includegraphics[scale=0.55]{pics/MigInMiddle.jpg}} |
|
224 \end{center} |
|
225 |
|
226 \begin{textblock}{6}(0.3,2) |
|
227 198?: war between Angola (supported by Cuba) |
|
228 and Namibia (supported by SA) |
|
229 \end{textblock} |
|
230 |
|
231 \begin{textblock}{3}(12.5,4.6) |
|
232 \onslide<2->{ |
|
233 \begin{tikzpicture} |
|
234 \node at (0,0) [single arrow, fill=red,text=white, rotate=-50, shape border rotate=180]{``bystander''}; |
|
235 \end{tikzpicture}} |
|
236 \end{textblock} |
|
237 |
|
238 \begin{textblock}{3}(10.9,10) |
|
239 \onslide<2->{ |
|
240 \begin{tikzpicture} |
|
241 \node at (0,0) [single arrow, fill=red,text=white, rotate=-40, shape border rotate=180]{attacker}; |
|
242 \end{tikzpicture}} |
|
243 \end{textblock} |
|
244 |
|
245 \only<3->{ |
|
246 \begin{textblock}{6}(0.3,12) |
|
247 being outsmarted by Angola/Cuba |
|
248 ended SA involvement |
|
249 \end{textblock}} |
|
250 \end{frame}} |
|
251 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
252 |
|
253 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
254 \mode<presentation>{ |
|
255 \begin{frame}[c] |
|
256 \frametitle{Encryption to the Rescue?} |
|
257 |
|
258 |
|
259 \begin{itemize} |
|
260 \item \bl{$A \,\text{sends}\, B : \{A, N_A\}_{K_{AB}}$}\hspace{1cm} encryption\bigskip |
|
261 \item \bl{$B\,\text{sends}\, A : \{N_A, K'_{AB}\}_{K_{AB}}$}\bigskip |
|
262 \item \bl{$A \,\text{sends}\, B : \{N_A\}_{K'_{AB}}$}\bigskip |
|
263 \end{itemize}\pause |
|
264 |
|
265 means you need to send a separate ``Hello'' signal (bad), or worse |
|
266 share a single key between many entities |
|
267 \end{frame}} |
|
268 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
269 |
|
270 |
|
271 |
|
272 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
273 \mode<presentation>{ |
|
274 \begin{frame}[c] |
|
275 \frametitle{Possible Kinds of Attacks} |
|
276 |
|
277 \begin{itemize} |
|
278 \item reflection attacks |
|
279 \item man-in-the-middle attacks |
|
280 \item replay attacks |
|
281 \item timing attacks |
|
282 \item changing environment / changing assumptions |
|
283 \end{itemize} |
|
284 \end{frame}} |
|
285 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
286 |
|
287 \end{document} |
|
288 |
|
289 %%% Local Variables: |
|
290 %%% mode: latex |
|
291 %%% TeX-master: t |
|
292 %%% End: |
|
293 |