1 \documentclass[dvipsnames,14pt,t]{beamer} |
1 \documentclass[dvipsnames,14pt,t]{beamer} |
2 \usepackage{../slides} |
2 \usepackage{../slides} |
3 \usepackage{../langs} |
3 \usepackage{../langs} |
4 \usepackage{../graphics} |
4 \usepackage{../graphics} |
|
5 \usepackage{../data} |
|
6 \usepackage{../grammar} |
5 |
7 |
6 % beamer stuff |
8 % beamer stuff |
7 \renewcommand{\slidecaption}{APP 10, King's College London} |
9 \renewcommand{\slidecaption}{APP 10, King's College London} |
8 \newcommand{\bl}[1]{\textcolor{blue}{#1}} |
10 \newcommand{\bl}[1]{\textcolor{blue}{#1}} |
9 |
11 |
10 \begin{document} |
12 \begin{document} |
11 |
13 |
12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
13 \mode<presentation>{ |
15 \begin{frame}[t] |
14 \begin{frame}<1>[t] |
|
15 \frametitle{% |
16 \frametitle{% |
16 \begin{tabular}{@ {}c@ {}} |
17 \begin{tabular}{@ {}c@ {}} |
17 \\ |
18 \\ |
18 \LARGE Access Control and \\[-3mm] |
19 \LARGE Access Control and \\[-3mm] |
19 \LARGE Privacy Policies (10)\\[-6mm] |
20 \LARGE Privacy Policies (10)\\[-6mm] |
20 \end{tabular}}\bigskip\bigskip\bigskip |
21 \end{tabular}}\bigskip\bigskip\bigskip |
21 |
22 |
22 %\begin{center} |
23 \normalsize |
23 %\includegraphics[scale=1.3]{pics/barrier.jpg} |
|
24 %\end{center} |
|
25 |
|
26 \normalsize |
|
27 \begin{center} |
24 \begin{center} |
28 \begin{tabular}{ll} |
25 \begin{tabular}{ll} |
29 Email: & christian.urban at kcl.ac.uk\\ |
26 Email: & christian.urban at kcl.ac.uk\\ |
30 Office: & S1.27 (1st floor Strand Building)\\ |
27 Office: & S1.27 (1st floor Strand Building)\\ |
31 Slides: & KEATS (also homework is there)\\ |
28 Slides: & KEATS (also homework is there)\\ |
32 \end{tabular} |
29 \end{tabular} |
33 \end{center} |
30 \end{center} |
34 |
31 |
35 \end{frame}} |
32 \end{frame} |
36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
33 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
37 |
34 |
38 |
35 |
39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
40 \mode<presentation>{ |
37 \begin{frame}[c] |
41 \begin{frame}[c] |
38 \frametitle{\mbox{}\\[20mm]\Huge Revision} |
42 \frametitle{\mbox{}\\[20mm]\huge Revision} |
39 |
43 |
40 \end{frame} |
44 \end{frame}} |
|
45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
46 |
42 |
47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
43 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
48 \mode<presentation>{ |
44 \begin{frame}[c] |
|
45 \frametitle{Security Engineering} |
|
46 |
|
47 \begin{center} |
|
48 \begin{tabular}{cc} |
|
49 \raisebox{-0.8mm}{\includegraphics[scale=0.28]{../pics/flight.jpg}} & |
|
50 \includegraphics[scale=0.31]{../pics/airbus.jpg}\\ |
|
51 \small Wright brothers, 1901 & \small Airbus, 2005 \\ |
|
52 \end{tabular} |
|
53 \end{center} |
|
54 |
|
55 \end{frame} |
|
56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
57 |
|
58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
49 \begin{frame}[c] |
59 \begin{frame}[c] |
50 \frametitle{1st Lecture} |
60 \frametitle{1st Lecture} |
51 |
61 |
52 \begin{itemize} |
62 \begin{itemize} |
53 \item hashes and salts to guaranty data integrity\bigskip |
63 \item chip-and-pin, banks vs.~customers |
54 \item storing passwords (brute force attacks and dictionary attacks) |
64 \begin{quote}\small\rm |
55 \end{itemize} |
65 the one who can improve security should also be |
56 |
66 liable for the losses |
57 |
67 \end{quote}\pause\bigskip |
58 \end{frame}} |
68 |
59 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
69 \item hashes and salts to guarantee data integrity\medskip |
60 |
70 \item storing passwords (you should know the difference between |
61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
71 brute force attacks and dictionary attacks; how do salts help?) |
62 \begin{frame}[fragile,t] |
72 \end{itemize} |
63 \frametitle{\begin{tabular}{c}2nd Lecture:\\ E-Voting\end{tabular}} |
73 |
|
74 \end{frame} |
|
75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
76 |
|
77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
78 \begin{frame}[c] |
|
79 \frametitle{1st Lecture: Cookies} |
|
80 |
|
81 \begin{itemize} |
|
82 \item good uses of cookies?\medskip |
|
83 |
|
84 \item bad uses of cookies: snooping, tracking, profiling\ldots |
|
85 the ``disadvantage'' is that the user is in |
|
86 \alert{control}, because you can delete them |
|
87 |
|
88 \begin{center} ``Please track me using cookies.'' |
|
89 \end{center}\bigskip\pause |
|
90 |
|
91 \item fingerprinting beyond browser cookies |
|
92 \begin{quote}\small\rm |
|
93 Pixel Perfect: Fingerprinting Canvas in HTML5\\ |
|
94 (a research paper from 2012)\\ |
|
95 \footnotesize |
|
96 \url{http://cseweb.ucsd.edu/~hovav/papers/ms12.html} |
|
97 \end{quote} |
|
98 \end{itemize} |
|
99 |
|
100 \end{frame} |
|
101 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
102 |
|
103 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
104 \begin{frame}[c] |
|
105 \frametitle{1st Lecture: Cookies} |
|
106 |
|
107 \begin{itemize} |
|
108 \item a bit of JavaScript and HTML5 + canvas\medskip |
|
109 \begin{center} |
|
110 \begin{tabular}{cc} |
|
111 Firefox & Safari\\ |
|
112 \includegraphics[scale=0.31]{../pics/firefox1.png} & |
|
113 \includegraphics[scale=0.31]{../pics/safari1.png} \\ |
|
114 \tiny |
|
115 \pcode{55b2257ad0f20ecbf927fb66a15c61981f7ed8fc} & |
|
116 \tiny |
|
117 \pcode{17bc79f8111e345f572a4f87d6cd780b445625d3} |
|
118 \end{tabular} |
|
119 \end{center}\bigskip |
|
120 |
|
121 \item\small no actual drawing needed\pause |
|
122 \item\small in May 2014 a crawl of 100,000 popular |
|
123 webpages revealed 5.5\% already use canvas |
|
124 fingerprinting\smallskip |
|
125 \begin{center}\scriptsize |
|
126 \url{https://securehomes.esat.kuleuven.be/~gacar/persistent/the_web_never_forgets.pdf} |
|
127 \end{center} |
|
128 \end{itemize} |
|
129 |
|
130 \end{frame} |
|
131 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
132 |
|
133 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
134 \begin{frame}[c] |
|
135 \frametitle{1st Lecture: Cookies} |
|
136 |
|
137 Remember the small web-app I showed where a cookie |
|
138 protected a counter\bigskip |
|
139 |
|
140 \begin{itemize} |
|
141 \item NYT, the cookie looks the ``resource'' - harm\medskip |
|
142 \item imaginary discount unlocked by cookie - no harm |
|
143 \end{itemize} |
|
144 |
|
145 \end{frame} |
|
146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
147 |
|
148 |
|
149 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
150 \begin{frame}[t] |
|
151 \frametitle{2nd Lecture: E-Voting} |
|
152 |
|
153 Where are paper ballots better than voice voting?\bigskip |
64 |
154 |
65 \begin{itemize} |
155 \begin{itemize} |
66 \item Integrity |
156 \item Integrity |
67 \item Ballot Secrecy |
157 \item \alert{Ballot Secrecy} |
68 \item Voter Authentication |
158 \item Voter Authentication |
69 \item Enfranchisement |
159 \item Enfranchisement |
70 \item Availability |
160 \item Availability |
71 \end{itemize} |
161 \end{itemize} |
72 |
162 |
73 |
|
74 |
|
75 \end{frame} |
163 \end{frame} |
76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
164 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
77 |
165 |
78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
166 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
79 \begin{frame}[fragile,t] |
167 \begin{frame}[t] |
80 \frametitle{\begin{tabular}{c}2nd Lecture:\\ E-Voting\end{tabular}} |
168 \frametitle{2nd Lecture: E-Voting} |
81 |
169 |
82 Online Banking vs.~E-Voting |
170 \begin{itemize} |
83 |
171 \item (two weeks ago) an Australian parliamentary committee |
84 \begin{itemize} |
172 found: e-voting is highly vulnerable to hacking and Australia |
85 \item online banking: if fraud occurred you try to identify who did what (somebody's account got zero)\bigskip |
173 will not use it any time soon\bigskip\pause |
86 \item e-voting: some parts can be done electronically, but not the actual voting (final year project: online voting) |
174 \item Alex Halderman, Washington D.C.~hack |
87 \end{itemize} |
175 \begin{center} |
88 |
176 \scriptsize |
89 |
177 \url{https://jhalderm.com/pub/papers/dcvoting-fc12.pdf} |
|
178 \end{center}\medskip |
|
179 |
|
180 \item PDF-ballot tampering at the wireless router (the modification |
|
181 is nearly undetectable and leaves no traces; MITM attack with firmware |
|
182 updating) |
|
183 \begin{center} |
|
184 \scriptsize |
|
185 \url{http://galois.com/wp-content/uploads/2014/11/technical-hack-a-pdf.pdf} |
|
186 \end{center} |
|
187 |
|
188 \end{itemize} |
90 |
189 |
91 \end{frame} |
190 \end{frame} |
92 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
191 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
93 |
192 |
94 |
193 |
95 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
194 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
96 \tikzset{alt/.code args={<#1>#2#3#4}{% |
195 \tikzset{alt/.code args={<#1>#2#3#4}{% |
97 \alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path |
196 \alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path |
98 }} |
197 }} |
99 |
198 |
100 \mode<presentation>{ |
|
101 \begin{frame}[t] |
199 \begin{frame}[t] |
102 \frametitle{\begin{tabular}{c}3rd Lecture:\\ Buffer Overflow Attacks\end{tabular}} |
200 \frametitle{\begin{tabular}{c}3rd Lecture:\\ Buffer Overflow Attacks\end{tabular}} |
103 |
201 |
104 \begin{itemize} |
202 \begin{itemize} |
105 \item the problem arises from the way C/C++ organises its function calls\\[-8mm]\mbox{} |
203 \item the problem arises from the way C/C++ organises its function calls\\[-8mm]\mbox{} |
131 |
229 |
132 \node at (7.75,3.9) {\small\begin{tabular}{l}stack\end{tabular}}; |
230 \node at (7.75,3.9) {\small\begin{tabular}{l}stack\end{tabular}}; |
133 \draw[line width=1mm] (7,3.5) -- (7,0.5) -- (8.5,0.5) -- (8.5,3.5); |
231 \draw[line width=1mm] (7,3.5) -- (7,0.5) -- (8.5,0.5) -- (8.5,3.5); |
134 |
232 |
135 \onslide<3,4,7,8>{ |
233 \onslide<3,4,7,8>{ |
136 \node at (7.75, 0.8) {ret}; |
234 \node at (7.75, 1.4) {ret}; |
137 \draw[line width=1mm] (7,1.1) -- (8.5,1.1); |
235 \draw[line width=1mm] (7,1.1) -- (8.5,1.1); |
|
236 \node at (7.75, 2.0) {sp}; |
|
237 \draw[line width=1mm] (7,2.3) -- (8.5,2.3); |
138 } |
238 } |
139 \onslide<3>{ |
239 \onslide<3,4>{ |
140 \node at (7.75, 1.4) {4}; |
240 \node at (7.75, 0.8) {4}; |
141 \draw[line width=1mm] (7,1.7) -- (8.5,1.7); |
241 \draw[line width=1mm] (7,1.7) -- (8.5,1.7); |
142 } |
242 } |
143 \onslide<7>{ |
243 \onslide<7,8>{ |
144 \node at (7.75, 1.4) {3}; |
244 \node at (7.75, 0.8) {3}; |
145 \draw[line width=1mm] (7,1.7) -- (8.5,1.7); |
245 \draw[line width=1mm] (7,1.7) -- (8.5,1.7); |
146 } |
246 } |
147 |
247 |
148 |
248 |
149 |
|
150 |
|
151 \end{tikzpicture} |
249 \end{tikzpicture} |
152 \end{center} |
250 \end{center} |
153 |
251 |
154 \end{frame}} |
252 \end{frame} |
155 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
253 |
156 \mode<presentation>{ |
254 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
157 \begin{frame}[t] |
255 \begin{frame}[t] |
158 |
256 |
159 \begin{center} |
257 \begin{center} |
160 \begin{tikzpicture}[scale=1] |
258 \begin{tikzpicture}[scale=1] |
161 %\draw[black!10,step=2mm] (0,0) grid (9,4); |
259 %\draw[black!10,step=2mm] (0,0) grid (9,4); |
178 \onslide<5->{\draw[<-, line width=2mm,red] (4,2) to node [above,sloped,midway] |
276 \onslide<5->{\draw[<-, line width=2mm,red] (4,2) to node [above,sloped,midway] |
179 {\begin{tabular}{l}user\\[-1mm] input\end{tabular}} (6,2);} |
277 {\begin{tabular}{l}user\\[-1mm] input\end{tabular}} (6,2);} |
180 \onslide<8->{\draw[<-, line width=1mm,red] (1,-2) to (3,1);} |
278 \onslide<8->{\draw[<-, line width=1mm,red] (1,-2) to (3,1);} |
181 |
279 |
182 \node at (7.75,3.9) {\small\begin{tabular}{l}stack\end{tabular}}; |
280 \node at (7.75,3.9) {\small\begin{tabular}{l}stack\end{tabular}}; |
183 \draw[line width=1mm] (7,3.5) -- (7,0.5) -- (8.5,0.5) -- (8.5,3.5); |
281 \draw[line width=1mm] (7,3.5) -- (7,-0.1) -- (8.5,-0.1) -- (8.5,3.5); |
184 |
282 |
185 \onslide<3->{ |
283 \onslide<3->{ |
|
284 \node at (7.75, 0.2) {4}; |
186 \draw[line width=1mm,alt=<6->{fill=red}{fill=white}] (7,0.5) rectangle (8.5,1.1); |
285 \draw[line width=1mm,alt=<6->{fill=red}{fill=white}] (7,0.5) rectangle (8.5,1.1); |
187 \node at (7.75, 0.8) {\alt<6->{@a\#}{ret}}; |
286 \node at (7.75, 0.8) {\alt<6->{@a\#}{ret}}; |
188 \draw[line width=1mm,alt=<6->{fill=red}{fill=white}] (7,1.1) rectangle (8.5,1.7); |
287 \draw[line width=1mm,alt=<6->{fill=red}{fill=white}] (7,1.1) rectangle (8.5,1.7); |
189 \node at (7.75, 1.4) {\alt<6->{!?w;}4}; |
288 \node at (7.75, 1.4) {\alt<6->{!?w;}sp}; |
190 } |
289 } |
191 |
290 |
192 \onslide<4->{ |
291 \onslide<4->{ |
193 \draw[line width=1mm,fill=red] (7,1.7) rectangle (8.5,3.0); |
292 \draw[line width=1mm,fill=red] (7,1.7) rectangle (8.5,3.0); |
194 \node[white] at (7.75, 2.4) {buffer}; |
293 \node[white] at (7.75, 2.4) {buffer}; |
195 } |
294 } |
196 |
295 |
197 \end{tikzpicture} |
296 \end{tikzpicture} |
198 \end{center} |
297 \end{center} |
199 |
298 |
200 \end{frame}} |
299 \end{frame} |
201 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
300 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
202 |
301 |
203 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
302 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
204 \mode<presentation>{ |
|
205 \begin{frame}[t] |
303 \begin{frame}[t] |
206 \frametitle{\begin{tabular}{c}3rd Lecture:\\ Unix Access Control\end{tabular}} |
304 \frametitle{\begin{tabular}{c}3rd Lecture:\\[-3mm] |
|
305 Buffer Overflow Attacks\end{tabular}} |
|
306 |
|
307 US National Vulnerability Database\\ |
|
308 \small(636 out of 6675 in 2014) |
|
309 |
|
310 \begin{center} |
|
311 \begin{tikzpicture} |
|
312 \begin{axis}[ |
|
313 xlabel={year}, |
|
314 ylabel={\% of total attacks}, |
|
315 ylabel style={yshift=0em}, |
|
316 enlargelimits=false, |
|
317 xtick={1997,1998,2000,...,2014}, |
|
318 xmin=1996.5, |
|
319 xmax=2015, |
|
320 ymax=21, |
|
321 ytick={0,5,...,20}, |
|
322 scaled ticks=false, |
|
323 axis lines=left, |
|
324 width=11cm, |
|
325 height=5cm, |
|
326 ybar, |
|
327 nodes near coords= |
|
328 {\footnotesize |
|
329 $\pgfmathprintnumber[fixed,fixed zerofill,precision=1,use comma]{\pgfkeysvalueof{/data point/y}}$}, |
|
330 x tick label style={font=\scriptsize,/pgf/number format/1000 sep={}}] |
|
331 \addplot |
|
332 table [x=Year,y=Percentage] {bufferoverflows.data}; |
|
333 \end{axis} |
|
334 \end{tikzpicture} |
|
335 \end{center} |
|
336 |
|
337 \scriptsize |
|
338 \url{http://web.nvd.nist.gov/view/vuln/statistics} |
|
339 \end{frame} |
|
340 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
341 |
|
342 |
|
343 |
|
344 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
345 \begin{frame}[t] |
|
346 \frametitle{\begin{tabular}{c}4rd Lecture:\\ Unix Access Control\end{tabular}} |
207 |
347 |
208 \begin{itemize} |
348 \begin{itemize} |
209 \item privileges are specified by file access permissions (``everything is a file'') |
349 \item privileges are specified by file access permissions (``everything is a file'') |
210 \end{itemize}\medskip |
350 \end{itemize}\medskip |
211 |
351 |
228 \draw[red, <->, line width = 1mm] (-0.6,1) -- (-1.6,1); |
368 \draw[red, <->, line width = 1mm] (-0.6,1) -- (-1.6,1); |
229 \end{tikzpicture} |
369 \end{tikzpicture} |
230 \end{center} |
370 \end{center} |
231 |
371 |
232 \begin{itemize} |
372 \begin{itemize} |
233 \item the idea is make the attack surface smaller and |
373 \item the idea is to make the attack surface smaller and |
234 mitigate the consequences of an attack |
374 mitigate the consequences of an attack |
235 \end{itemize} |
375 \end{itemize} |
236 |
376 |
237 \end{frame}} |
377 \end{frame} |
238 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
378 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
239 |
379 |
240 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
380 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
241 \begin{frame}[fragile,t] |
381 \begin{frame}[fragile,t] |
242 \frametitle{\begin{tabular}{c}3rd Lecture:\\ Unix Access Control\end{tabular}} |
382 \frametitle{\begin{tabular}{c}4rd Lecture:\\ Unix Access Control\end{tabular}} |
243 |
383 |
244 \begin{itemize} |
384 \begin{itemize} |
245 \item when a file with setuid is executed, the resulting process will assume the |
385 \item when a file with setuid is executed, the resulting process will assume the |
246 UID given to the owner of the file |
386 UID given to the owner of the file |
247 \end{itemize} |
387 \end{itemize} |
248 |
388 |
249 \small\tt |
389 \footnotesize\tt |
250 \begin{center} |
390 \begin{center} |
251 \begin{verbatim} |
391 \begin{verbatim} |
252 $ ls -ld . * */* |
392 $ ls -ld . * */* |
253 drwxr-xr-x 1 ping staff 32768 Apr 2 2010 . |
393 drwxr-xr-x 1 ping staff 32768 Apr 2 2010 . |
254 -rw----r-- 1 ping students 31359 Jul 24 2011 manual.txt |
394 -rw----r-- 1 ping students 31359 Jul 24 2011 manual.txt |
255 -r--rw--w- 1 bob students 4359 Jul 24 2011 report.txt |
395 -r--rw--w- 1 bob students 4359 Jul 24 2011 report.txt |
256 -rwsr--r-x 1 bob students 141359 Jun 1 2013 microedit |
396 -rwsr--r-x 1 bob students 141359 Jun 1 2013 microedit |
257 dr--r-xr-x 1 bob staff 32768 Jul 23 2011 src |
397 dr--r-xr-x 1 bob staff 32768 Jul 23 2011 src |
258 -rw-r--r-- 1 bob staff 81359 Feb 28 2012 src/code.c |
398 -rw-r--r-- 1 bob staff 81359 Feb 28 2012 src/code.c |
259 -r--rw---- 1 emma students 959 Jan 23 2012 src/code.h |
399 -r--rw---- 1 emma students 959 Jan 23 2012 src/code.h |
260 \end{verbatim} |
400 \end{verbatim} |
261 \end{center} |
401 \end{center} |
262 |
402 |
263 |
403 |
264 \end{frame} |
404 \end{frame} |
265 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
405 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
266 |
406 |
267 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
407 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
268 \mode<presentation>{ |
408 \begin{frame}[t] |
269 \begin{frame}[c] |
409 \frametitle{\begin{tabular}{c}4rd Lecture:\\ Unix Access Control\end{tabular}} |
270 \frametitle{\begin{tabular}{c}8th Lecture: Privacy\end{tabular}} |
410 |
271 |
411 \begin{itemize} |
272 \begin{itemize} |
412 \item Alice wants to have her files readable, |
273 \item differential privacy for annonymizing research data |
413 \alert{except} for her office mates. |
|
414 \end{itemize} |
|
415 |
|
416 |
|
417 \end{frame} |
|
418 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
419 |
|
420 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
421 \begin{frame}[c] |
|
422 \frametitle{5rd Lecture: Protocols} |
|
423 |
|
424 Simple Challenge Response\\ |
|
425 (solving the replay problem): |
|
426 |
|
427 \begin{center} |
|
428 \begin{tabular}{lll} |
|
429 \bl{$A \rightarrow B:$} & \bl{Hi I am A}\\ |
|
430 \bl{$B \rightarrow A:$} & \bl{$N$} & (challenge)\\ |
|
431 \bl{$A \rightarrow B:$} & \bl{$\{N\}_{K_{AB}}$}\\ |
|
432 \end{tabular} |
|
433 \end{center}\pause |
|
434 |
|
435 Mutual Challenge Response: |
|
436 |
|
437 \begin{center} |
|
438 \begin{tabular}{ll} |
|
439 \bl{$A \rightarrow B:$} & \bl{$N_A$}\\ |
|
440 \bl{$B \rightarrow A:$} & \bl{$\{N_A, N_B\}_{K_{AB}}$}\\ |
|
441 \bl{$A \rightarrow B:$} & \bl{$N_B$}\\ |
|
442 \end{tabular} |
|
443 \end{center} |
|
444 |
|
445 \end{frame} |
|
446 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
447 |
|
448 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
449 \begin{frame}[c] |
|
450 \frametitle{5rd Lecture: Protocols} |
|
451 |
|
452 A car-transponder protocol: |
|
453 |
|
454 \begin{enumerate} |
|
455 \item \bl{$C$} generates a random number \bl{$N$} |
|
456 \item \bl{$C$} calculates \bl{$(F,G) = \{N\}_K$} |
|
457 \item \bl{$C \to T$}: \bl{$N, F$} |
|
458 \item \bl{$T$} calculates \bl{$(F',G') = \{N\}_K$} |
|
459 \item \bl{$T$} checks that \bl{$F = F'$} |
|
460 \item \bl{$T \to C$}: \bl{$N, G'$} |
|
461 \item \bl{$C$} checks that \bl{$G = G'$} |
|
462 \end{enumerate} |
|
463 |
|
464 Authentication: \bl{$T \to C$}, \bl{$C \to T$}? |
|
465 \end{frame} |
|
466 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
467 |
|
468 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
469 \begin{frame}[c] |
|
470 \frametitle{5rd Lecture: Protocols} |
|
471 |
|
472 The interlock protocol (``best bet'' against MITM): |
|
473 |
|
474 \begin{center} |
|
475 \begin{tabular}{ll@{\hspace{2mm}}l} |
|
476 1. & \bl{$A \to B :$} & \bl{$K^{pub}_A$}\\ |
|
477 2. & \bl{$B \to A :$} & \bl{$K^{pub}_B$}\\ |
|
478 3. & & \bl{$\{A,m\}_{K^{pub}_B} \;\mapsto\; H_1,H_2$}\\ |
|
479 & & \bl{$\{B,m'\}_{K^{pub}_A} \;\mapsto\; M_1,M_2$}\\ |
|
480 4. & \bl{$A \to B :$} & \bl{$H_1$}\\ |
|
481 5. & \bl{$B \to A :$} & \bl{$\{H_1, M_1\}_{K^{pub}_A}$}\\ |
|
482 6. & \bl{$A \to B :$} & \bl{$\{H_2, M_1\}_{K^{pub}_B}$}\\ |
|
483 7. & \bl{$B \to A :$} & \bl{$M_2$} |
|
484 \end{tabular} |
|
485 \end{center}\pause |
|
486 |
|
487 \footnotesize |
|
488 \bl{$m$} = How is your grandmother? \bl{$m'$} = How is the |
|
489 weather today in London? |
|
490 |
|
491 \end{frame} |
|
492 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
493 |
|
494 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
495 \begin{frame}[c] |
|
496 \frametitle{Access Control Logic} |
|
497 |
|
498 Ross Anderson about the use of Logic:\bigskip |
|
499 |
|
500 \begin{quote}\rm |
|
501 ``Formal methods can be an excellent way of finding |
|
502 bugs in security protocol designs as they force the designer |
|
503 to make everything explicit and thus confront difficult design |
|
504 choices that might otherwise be fudged.'' |
|
505 \end{quote} |
|
506 |
|
507 \end{frame} |
|
508 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
509 |
|
510 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
511 \begin{frame}[t] |
|
512 \frametitle{Access Control Logic} |
|
513 |
|
514 \begin{center} |
|
515 \begin{tabular}[t]{rcl@ {\hspace{10mm}}l} |
|
516 \bl{$F$} & \bl{$::=$} & \bl{$\textit{true}$}\\ |
|
517 & \bl{$|$} & \bl{$\textit{false}$}\\ |
|
518 & \bl{$|$} & \bl{$a(t_1,\ldots,t_n)$}\\ |
|
519 & \bl{$|$} & \bl{$F_1 \wedge F_2$}\\ |
|
520 & \bl{$|$} & \bl{$F_1 \vee F_2$}\\ |
|
521 & \bl{$|$} & \bl{$F_1 \Rightarrow F_2$}\\ |
|
522 & \bl{$|$} & \alert{$P\;\textit{says}\; F$}\\ |
|
523 \end{tabular} |
|
524 \end{center} |
|
525 |
|
526 where \bl{$P = Alice, Bob, Christian$} |
|
527 |
|
528 \begin{itemize} |
|
529 \item \bl{$HoD\;\textit{says}\;\textit{is\_staff}(Christian)$} |
|
530 \end{itemize} |
|
531 \end{frame} |
|
532 |
|
533 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
534 \begin{frame}[t] |
|
535 \frametitle{Access Control Logic} |
|
536 |
|
537 \ldots can be used for answering the following questions: |
|
538 |
|
539 \begin{itemize} |
|
540 \item To what conclusions does this protocol come? |
|
541 \item What assumptions are needed for this protocol? |
|
542 \item Does the protocol uses unnecessary actions, which can be left out? |
|
543 \item Does the protocol encrypt anything which could be sent in plain, without |
|
544 weakening the security? |
|
545 \end{itemize} |
|
546 |
|
547 \end{frame} |
|
548 |
|
549 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
550 \begin{frame}[c] |
|
551 \frametitle{5th Lecture: Protocols} |
|
552 |
|
553 An article in The Guardian from 2013 reveals how GCHQ and the |
|
554 NSA at a G20 Summit in 2009 sniffed emails from Internet |
|
555 cafes, monitored phone calls from delegates and attempted to |
|
556 listen on phone calls which were made by Russians and which |
|
557 were transmitted via satellite links: |
|
558 |
|
559 \begin{center} |
|
560 \small |
|
561 \url{http://www.theguardian.com/uk/2013/jun/16/gchq-intercepted-communications-g20-summits} |
|
562 \end{center} |
|
563 |
|
564 \end{frame} |
|
565 |
|
566 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
567 \begin{frame}[fragile,c] |
|
568 \frametitle{6th Lecture:\\[-2mm] Zero-Knowledge Proofs} |
|
569 |
|
570 \begin{center} |
|
571 %\addtolength{\fboxsep}{4mm} |
|
572 %\fbox{\includegraphics[scale=0.3] |
|
573 %{../pics/Dismantling_Megamos_Crypto.png}} |
|
574 \end{center} |
|
575 |
|
576 \end{frame} |
|
577 |
|
578 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
579 \begin{frame}[c] |
|
580 \frametitle{7th Lecture: Privacy} |
|
581 |
|
582 |
|
583 \begin{itemize} |
|
584 \item de-anonymisation attacks\\ (Netflix, DNA databases, \ldots) |
|
585 \end{itemize} |
|
586 |
|
587 \end{frame} |
|
588 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
589 \begin{frame}[c] |
|
590 \frametitle{7th Lecture: Privacy} |
|
591 |
|
592 \begin{itemize} |
|
593 \item differential privacy for anonymising research data |
274 |
594 |
275 \begin{center} |
595 \begin{center} |
276 User\;\;\;\; |
596 User\;\;\;\; |
277 \begin{tabular}{c} |
597 \begin{tabular}{c} |
278 tell me \bl{$f(x)$} $\Rightarrow$\\ |
598 tell me \bl{$f(x)$} $\Rightarrow$\\ |
287 \item \bl{$f(x)$} can be released, if \bl{$f$} is insensitive to |
607 \item \bl{$f(x)$} can be released, if \bl{$f$} is insensitive to |
288 individual entries \bl{$x_1, \ldots, x_n$}\\ |
608 individual entries \bl{$x_1, \ldots, x_n$}\\ |
289 \item The intuition: whatever is learned from the dataset would be learned regardless of whether |
609 \item The intuition: whatever is learned from the dataset would be learned regardless of whether |
290 \bl{$x_i$} participates\bigskip\pause |
610 \bl{$x_i$} participates\bigskip\pause |
291 |
611 |
292 \item Tor webservice |
612 \end{itemize} |
293 \end{itemize} |
613 |
294 |
614 \end{frame} |
295 |
615 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
296 \end{frame}} |
616 |
297 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
617 |
298 |
618 |
299 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
619 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
300 \mode<presentation>{ |
620 \begin{frame}[c] |
301 \begin{frame}[c] |
621 \frametitle{8th Lecture: Bitcoins} |
302 \frametitle{\begin{tabular}{c}9th Lecture:\\ Privacy\end{tabular}} |
622 |
303 |
623 |
304 \begin{itemize} |
624 \begin{itemize} |
305 \item zero-knowledge proofs |
625 \item conclusion: not anonymous, not free from (potential) government |
306 \item requires NP problems, for example graph isomorphisms\bigskip\pause |
626 interference\bigskip\bigskip |
307 \item random number generators |
627 |
308 \end{itemize} |
628 \item The department has large labs full |
309 |
629 of computers that are pretty much idle over night. Why |
310 |
630 is it a bad idea to let them mine for Bitcoins?\bigskip\pause |
311 \end{frame}} |
631 |
312 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
632 \item other cryptocurrencies (Litecoins,\ldots) |
|
633 \begin{center}\small |
|
634 \url{http://en.wikipedia.org/wiki/Cryptocurrency} |
|
635 \end{center} |
|
636 \end{itemize} |
|
637 |
|
638 \end{frame} |
|
639 |
|
640 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
641 \begin{frame}[c] |
|
642 \frametitle{9th Lecture: Static Analysis} |
|
643 |
|
644 \begin{itemize} |
|
645 \item more principled way of writing software |
|
646 \item testing can show the presence of bugs, but not their |
|
647 absence\bigskip |
|
648 |
|
649 \item ``A good attack is one that the engineers never even thought |
|
650 about.'' ---Bruce Schneier |
|
651 \end{itemize} |
|
652 |
|
653 \begin{center} |
|
654 \includegraphics[scale=1]{../pics/barrier.jpg} |
|
655 \end{center} |
|
656 |
|
657 \end{frame} |
|
658 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
659 |
|
660 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
661 \begin{frame}[c] |
|
662 \frametitle{9th Lecture} |
|
663 |
|
664 \begin{itemize} |
|
665 \item model checking\medskip |
|
666 \item program logics (Hoare logics, separation logic)\medskip |
|
667 \item specifications / correctness proofs |
|
668 \end{itemize} |
|
669 |
|
670 \end{frame} |
|
671 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
672 |
|
673 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
674 \begin{frame}[c] |
|
675 \frametitle{Further Reading} |
|
676 |
|
677 \begin{itemize} |
|
678 \item Risks mailing list |
|
679 \begin{center}\small |
|
680 \url{http://catless.ncl.ac.uk/Risks} |
|
681 \end{center} |
|
682 \item Crypto-Gram |
|
683 \begin{center}\small |
|
684 \url{https://www.schneier.com/crypto-gram.html} |
|
685 \end{center} |
|
686 \item Light blue touchpaper |
|
687 \begin{center}\small |
|
688 \url{https://www.lightbluetouchpaper.org} |
|
689 \end{center} |
|
690 |
|
691 \end{itemize} |
|
692 |
|
693 \end{frame} |
|
694 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
695 |
|
696 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
697 \begin{frame}[c] |
|
698 |
|
699 \begin{itemize} |
|
700 \item you can still send me your hws\bigskip |
|
701 \item projects |
|
702 \end{itemize} |
|
703 |
|
704 \end{frame} |
|
705 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
706 |
|
707 |
|
708 |
313 |
709 |
314 \end{document} |
710 \end{document} |
|
711 |
315 |
712 |
316 %%% Local Variables: |
713 %%% Local Variables: |
317 %%% mode: latex |
714 %%% mode: latex |
318 %%% TeX-master: t |
715 %%% TeX-master: t |
319 %%% End: |
716 %%% End: |