155 \draw[white] (3.7,1) node (Y) {}; |
240 \draw[white] (3.7,1) node (Y) {}; |
156 \draw[red, <->, line width = 2mm] (X) -- (Y); |
241 \draw[red, <->, line width = 2mm] (X) -- (Y); |
157 |
242 |
158 \draw[red, <->, line width = 1mm] (-0.6,1) -- (-1.6,1); |
243 \draw[red, <->, line width = 1mm] (-0.6,1) -- (-1.6,1); |
159 \end{tikzpicture} |
244 \end{tikzpicture} |
|
245 \end{textblock} |
|
246 |
|
247 \end{frame}} |
|
248 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
249 |
|
250 |
|
251 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
252 \mode<presentation>{ |
|
253 \begin{frame}[t] |
|
254 \frametitle{Process Ownership} |
|
255 |
|
256 \begin{itemize} |
|
257 \item access control in Unix is very coarse |
|
258 \end{itemize}\bigskip\bigskip\bigskip |
|
259 |
|
260 \begin{center} |
|
261 \begin{tabular}{c} |
|
262 root\\ |
|
263 \hline |
|
264 |
|
265 user$_1$ user$_2$ \ldots www, mail, lp |
|
266 \end{tabular} |
|
267 \end{center}\bigskip\bigskip\bigskip |
|
268 |
|
269 |
|
270 \textcolor{gray}{\small root has UID $=$ 0}\\\pause |
|
271 \textcolor{gray}{\small you also have groups that can share access to a file}\\ |
|
272 \textcolor{gray}{\small but it is difficult to exclude access selectively}\\ |
|
273 \end{frame}} |
|
274 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
275 |
|
276 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
277 \mode<presentation>{ |
|
278 \begin{frame}[c] |
|
279 \frametitle{Access Control in Unix (2)} |
|
280 |
|
281 |
|
282 \begin{itemize} |
|
283 \item privileges are specified by file access permissions (``everything is a file'') |
|
284 \item there are 9 (plus 2) bits that specify the permissions of a file |
|
285 |
|
286 \begin{center} |
|
287 \begin{tabular}{l} |
|
288 \texttt{\$ ls - la}\\ |
|
289 \texttt{-rwxrw-r-{}- \hspace{3mm} foo\_file.txt} |
|
290 \end{tabular} |
160 \end{center} |
291 \end{center} |
161 |
292 \end{itemize} |
162 \begin{itemize} |
293 |
163 \item the idea is make the attack surface smaller and |
294 \end{frame}} |
164 mitigate the consequences of an attack |
295 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
165 \end{itemize} |
296 |
166 |
297 |
|
298 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
299 \mode<presentation>{ |
|
300 \begin{frame}[c] |
|
301 \frametitle{Login Process} |
|
302 |
|
303 |
|
304 \begin{itemize} |
|
305 \item login processes run under UID $=$ 0\medskip |
|
306 \begin{center} |
|
307 \texttt{ps -axl | grep login} |
|
308 \end{center}\medskip |
|
309 |
|
310 \item after login, shells run under UID $=$ user (e.g.~501)\medskip |
|
311 \begin{center} |
|
312 \texttt{id cu} |
|
313 \end{center}\medskip\pause |
|
314 |
|
315 \item non-root users are not allowed to change the UID --- would break |
|
316 access control |
|
317 \item but needed for example for \texttt{passwd} |
|
318 \end{itemize} |
|
319 |
|
320 \end{frame}} |
|
321 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
322 |
|
323 |
|
324 |
|
325 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
326 \mode<presentation>{ |
|
327 \begin{frame}[c] |
|
328 \frametitle{Setuid and Setgid} |
|
329 |
|
330 The solution is that unix file permissions are 9 + \underline{2 Bits}: |
|
331 \alert{Setuid} and \alert{Setgid} Bits |
|
332 |
|
333 \begin{itemize} |
|
334 \item When a file with setuid is executed, the resulting process will assume the UID given to the owner of the file. |
|
335 \item This enables users to create processes as root (or another user).\bigskip |
|
336 |
|
337 \item Essential for changing passwords, for example. |
|
338 \end{itemize} |
|
339 |
|
340 \begin{center} |
|
341 \texttt{chmod 4755 fobar\_file} |
|
342 \end{center} |
167 |
343 |
168 \end{frame}} |
344 \end{frame}} |
169 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
345 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
170 |
346 |
171 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
347 |
172 \mode<presentation>{ |
348 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
173 \begin{frame}[c] |
349 \mode<presentation>{ |
174 \frametitle{Shared Access Control} |
350 \begin{frame}[c] |
175 |
351 \frametitle{\begin{tabular}{c}Privilege Separation in\\ OpenSSH\end{tabular}} |
176 \begin{center} |
352 |
177 \includegraphics[scale=0.7]{pics/pointsplane.jpg} |
353 \begin{center} |
|
354 \begin{tikzpicture}[scale=1] |
|
355 |
|
356 \draw[line width=1mm] (0, 1.1) rectangle (1.2,2); |
|
357 \draw (4.7,1) node {Internet}; |
|
358 \draw (0.6,1.7) node {\footnotesize Slave}; |
|
359 \draw[line width=1mm] (0, 0) rectangle (1.2,0.9); |
|
360 \draw (0.6,1.7) node {\footnotesize Slave}; |
|
361 \draw (0.6,0.6) node {\footnotesize Slave}; |
|
362 \draw (0.6,-0.5) node {\footnotesize \begin{tabular}{c}unprivileged\\[-1mm] processes\end{tabular}}; |
|
363 \draw (-2.7,-0.4) node {\footnotesize \begin{tabular}{c}privileged\\[-1mm] process\end{tabular}}; |
|
364 |
|
365 \draw[line width=1mm] (-1.8, 0) rectangle (-3.6,2); |
|
366 \draw (-2.9,1.7) node {\footnotesize Monitor}; |
|
367 |
|
368 \draw[white] (1.7,1) node (X) {}; |
|
369 \draw[white] (3.7,1) node (Y) {}; |
|
370 \draw[red, <->, line width = 2mm] (X) -- (Y); |
|
371 |
|
372 \draw[red, <->, line width = 1mm] (-0.4,1.4) -- (-1.4,1.1); |
|
373 \draw[red, <->, line width = 1mm] (-0.4,0.6) -- (-1.4,0.9); |
|
374 |
|
375 \end{tikzpicture} |
178 \end{center} |
376 \end{center} |
179 |
377 |
180 \begin{textblock}{11}(10.5,10.5) |
378 \begin{itemize} |
181 \small |
379 \item pre-authorisation slave |
182 To take an action you\\[-1mm] |
380 \item post-authorisation\bigskip |
183 need at least either: |
381 \item 25\% codebase is privileged, 75\% is unprivileged |
184 \begin{itemize} |
382 \end{itemize} |
185 \item 1 CEO\\[-5mm] |
383 \end{frame}} |
186 \item 2 MDs, or\\[-5mm] |
384 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
187 \item 3 Ds |
385 |
188 \end{itemize} |
386 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
189 \end{textblock} |
387 \mode<presentation>{ |
190 |
388 \begin{frame}[c] |
191 \end{frame}} |
389 \frametitle{Network Applications} |
192 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
390 |
193 |
391 ideally network application in Unix should be designed as follows: |
194 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
392 |
195 \mode<presentation>{ |
393 \begin{itemize} |
196 \begin{frame}[c] |
394 \item need two distinct processes |
197 \frametitle{Lessons from Access Control} |
395 \begin{itemize} |
198 |
396 \item one that listens to the network; has no privilege |
199 Not just restricted to Unix: |
397 \item one that is privileged and listens to the latter only (but does not trust it) |
200 |
398 |
201 \begin{itemize} |
399 \end{itemize} |
202 \item if you have too many roles (i.e.~too finegrained AC), then |
400 |
203 hierarchy is too complex\\ |
401 \item to implement this you need a parent process, which forks a child process |
204 \textcolor{gray}{you invite situations like\ldots let's be root}\bigskip |
402 \item this child process drops privileges and listens to hostile data\medskip |
205 |
403 |
206 \item you can still abuse the system\ldots |
404 \item after authentication the parent forks again and the new child becomes the user |
207 |
405 \end{itemize} |
208 \end{itemize} |
406 |
209 |
407 |
210 \end{frame}} |
408 \end{frame}} |
211 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
409 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
212 |
410 |
213 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
411 |
214 \mode<presentation>{ |
412 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
215 \begin{frame}[c] |
413 \mode<presentation>{ |
216 \frametitle{\begin{tabular}{@ {}c@ {}}A ``Cron''-Attack\end{tabular}} |
414 \begin{frame}[c] |
217 |
415 \frametitle{\begin{tabular}{@ {}c@ {}}Famous Security Flaws in Unix\end{tabular}} |
218 The idea is to trick a privileged person to do something on your behalf: |
416 |
219 |
417 |
220 \begin{itemize} |
418 \begin{itemize} |
221 \item root:\\\texttt{rm /tmp/*/*}\bigskip\bigskip\pause |
419 \item \texttt{lpr} unfortunately runs with root privileges; you had the option to delete files after printing \ldots\pause\pause |
222 |
420 \item for debugging purposes (FreeBSD) Unix provides a ``core dump'', but allowed to follow links \ldots\pause |
223 \footnotesize |
421 \item \texttt{mkdir foo} is owned by root\medskip |
224 \begin{minipage}{1.1\textwidth} |
422 \begin{center} |
225 \textcolor{gray}{the shell behind the scenes:}\\ |
423 \texttt{-rwxr-xr-x 1 root wheel /bin/mkdir} |
226 \textcolor{gray}{\texttt{rm /tmp/dir$_1$/file$_1$ /tmp/dir$_1$/file$_2$ /tmp/dir$_2$/file$_1$ \ldots}}\bigskip\\ |
424 \end{center}\medskip |
227 |
425 it first creates an i-node as root and then changes to ownership to the user's id\\ \textcolor{gray}{\small (automated with a shell script)} |
228 \textcolor{gray}{this takes time} |
426 \end{itemize} |
229 \end{minipage} |
427 |
230 \end{itemize} |
428 \only<1>{ |
231 |
429 \begin{textblock}{1}(3,3) |
232 |
|
233 \end{frame}} |
|
234 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
235 |
|
236 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
237 \mode<presentation>{ |
|
238 \begin{frame}[c] |
|
239 \frametitle{\begin{tabular}{@ {}c@ {}}A ``Cron''-Attack\end{tabular}} |
|
240 |
|
241 \begin{enumerate} |
|
242 \item attacker \textcolor{gray}{(creates a fake passwd file)}\\ |
|
243 \texttt{mkdir /tmp/a; cat > /tmp/a/passwd}\medskip |
|
244 \item root \textcolor{gray}{(does the daily cleaning)}\\ |
|
245 \texttt{rm /tmp/*/*}\medskip\\ |
|
246 \hspace{2cm}\textcolor{gray}{\small records that \texttt{/tmp/a/passwd}}\\ |
|
247 \hspace{2cm}\textcolor{gray}{\small should be deleted, but does not do it yet}\medskip\\ |
|
248 |
|
249 \item attacker \textcolor{gray}{(meanwhile deletes the fake passwd file, and establishes a link to |
|
250 the real passwd file)}\\ |
|
251 \texttt{rm /tmp/a/passwd; rmdir /tmp/a;}\\\texttt{ln -s /etc /tmp/a}\\ |
|
252 \item root now deletes the real passwd file |
|
253 \end{enumerate} |
|
254 |
|
255 \only<2>{ |
|
256 \begin{textblock}{11}(2,5) |
|
257 \begin{tikzpicture} |
430 \begin{tikzpicture} |
258 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] |
431 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] |
259 {\normalsize\color{darkgray} |
432 {\begin{minipage}{8cm} |
260 \begin{minipage}{9cm}\raggedright |
433 Only failure makes us experts. |
261 To prevent this kind of attack, you need additional |
434 -- Theo de Raadt (OpenBSD, OpenSSH) |
262 policies (don't do such operations as root). |
|
263 \end{minipage}}; |
435 \end{minipage}}; |
264 \end{tikzpicture} |
436 \end{tikzpicture} |
265 \end{textblock}} |
437 \end{textblock}} |
266 |
438 |
267 \end{frame}} |
439 |
268 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
440 |
269 |
441 \end{frame}} |
270 |
442 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
271 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
443 |
272 \mode<presentation>{ |
444 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
273 \begin{frame}[c] |
445 \mode<presentation>{ |
274 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier Analysis\end{tabular}} |
446 \begin{frame}[c] |
275 |
447 \frametitle{\begin{tabular}{@ {}c@ {}}Other Problems\end{tabular}} |
276 \textcolor{gray}{There is no absolutely secure system and security almost never comes for free.} |
448 |
277 |
449 There are thing's you just cannot solve on the programming side:\bigskip |
278 \begin{itemize} |
450 |
279 \item What assets are you trying to protect? |
451 \begin{itemize} |
280 \item What are the risks to these assets? |
452 \item for system maintenance you often have \texttt{cron}-jobs cleaning \texttt{/tmp}\medskip |
281 \item How well does the security solution mitigate those risks? |
453 \begin{itemize} |
282 \item What other risks does the security solution cause? |
454 \item attacker:\\ |
283 \item What costs and trade-offs does the security solution impose? |
455 \texttt{mkdir /tmp/a; cat > /tmp/a/passwd} |
284 \end{itemize} |
456 \item root:\\\texttt{rm /tmp/*/*}: |
285 |
457 \item attacker:\\ |
286 |
458 \texttt{rm /tmp/a/passwd; rmdir /tmp/a;}\\\texttt{ln -s /etc /tmp/a} |
287 \end{frame}} |
459 \end{itemize} |
288 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
460 \end{itemize} |
289 |
461 |
290 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
462 \end{frame}} |
291 \mode<presentation>{ |
463 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
292 \begin{frame}[t] |
464 |
293 \frametitle{\begin{tabular}{@ {}c@ {}}Example: Credit Cards\end{tabular}} |
465 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
294 |
466 \mode<presentation>{ |
295 You might have the policy of not typing in your credit card online. Worthwhile or not? |
467 \begin{frame}[c] |
296 \begin{itemize} |
468 \frametitle{\begin{tabular}{@ {}c@ {}}Security Levels\end{tabular}} |
297 \item<2->What assets are you trying to protect?\\ |
469 |
298 \only<2>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}your credit card number\end{tabular}} |
470 Unix essentially can only distinguish between two security levels (root and non-root). |
299 \item<3->What are the risks to these assets?\\ |
471 |
300 \only<3>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
472 \begin{itemize} |
301 With credit cards you loose a fixed amount \pounds{50}. Amazon \pounds{50}. \end{tabular}} |
473 \item In military applications you often have many security levels (top-secret, secret, confidential, unclassified)\bigskip\pause |
302 \item<4->How well does the security solution mitigate those risks?\\ |
474 |
303 \only<4>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
475 \item Information flow: Bell --- La Padula model |
304 Well, hackers steal credit cards from databases. They usually do not attack you individually.\end{tabular}} |
476 |
305 \item<5->What other risks does the security solution cause? |
477 \begin{itemize} |
306 \only<5>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright None (?)\end{tabular}} |
478 \item read: your own level and below |
307 \item<6->What costs and trade-offs does the security solution impose? |
479 \item write: your own level and above |
308 \only<6>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright Internet shopping is convenient and sometimes cheaper.\end{tabular}} |
480 \end{itemize} |
309 \item<7>[]{\bf\large No!} |
481 \end{itemize} |
310 \end{itemize}\pause\pause |
482 |
311 |
483 \end{frame}} |
312 |
484 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
313 \end{frame}} |
485 |
314 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
486 |
315 |
487 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
316 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
488 \mode<presentation>{ |
317 \mode<presentation>{ |
489 \begin{frame}[c] |
318 \begin{frame}[c] |
490 \frametitle{\begin{tabular}{@ {}c@ {}}Security Levels (2)\end{tabular}} |
319 \frametitle{\begin{tabular}{@ {}c@ {}}Example: Firewalls\end{tabular}} |
491 |
320 |
492 \begin{itemize} |
321 \begin{center} |
493 \item Bell --- La Padula preserves data secrecy, but not data integrity\bigskip\pause |
322 \includegraphics[scale=0.5]{pics/firewall.png} |
494 |
323 \end{center} |
495 \item Biba model is for data integrity |
324 |
496 |
325 A firewall is a piece of software that controls incoming and outgoing traffic according to some rules. |
497 \begin{itemize} |
326 \end{frame}} |
498 \item read: your own level and above |
327 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
499 \item write: your own level and below |
328 |
500 \end{itemize} |
329 |
501 \end{itemize} |
330 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
502 |
331 \mode<presentation>{ |
503 \end{frame}} |
332 \begin{frame}[t] |
504 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
333 \frametitle{\begin{tabular}{@ {}c@ {}}Example: Firewalls\end{tabular}} |
505 |
334 |
506 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
335 \begin{itemize} |
507 \mode<presentation>{ |
336 \item<1->What assets are you trying to protect?\\ |
508 \begin{frame}[c] |
337 \only<1>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}Whatever is behind the firewall |
509 \frametitle{\begin{tabular}{@ {}c@ {}}Access Control in 2000\end{tabular}} |
338 (credit cards, passwords, blueprints, \ldots)\end{tabular}} |
510 |
339 \item<2->What are the risks to these assets?\\ |
511 According to Ross Anderson (1st edition of his book), some senior Microsoft people held the |
340 \only<2>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
512 following view: |
341 With a small online shop you are already at risk. Pentagon, definitely.\end{tabular}} |
513 |
342 \item<3->How well does the security solution mitigate those risks?\\ |
514 \begin{center} |
343 \only<3>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
|
344 Well, at home so not much. Everywhere else, if properly configurated then it does.\end{tabular}} |
|
345 \item<4->What other risks does the security solution cause? |
|
346 \only<4>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright There might be backdoors or bugs in the firewall, |
|
347 but generally they are secure. You choose to prevent certain traffic.\end{tabular}} |
|
348 \item<5->What costs and trade-offs does the security solution impose? |
|
349 \only<5>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
|
350 Minimal to modest. Firewalls are part of free software. You need a knowledgeable |
|
351 person to set them up.\end{tabular}} |
|
352 \item<7>[]{\bf\large Yes!} |
|
353 \end{itemize}\pause\pause |
|
354 |
|
355 |
|
356 \end{frame}} |
|
357 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
358 |
|
359 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
360 \mode<presentation>{ |
|
361 \begin{frame}[t] |
|
362 \frametitle{\begin{tabular}{@ {}c@ {}}Ex: Two-Factor Authentication\end{tabular}} |
|
363 |
|
364 Google uses nowadays two-factor authentication. But it is an old(er) |
|
365 idea. It is used for example in Germany and Netherlands for online transactions. |
|
366 |
|
367 \begin{center} |
|
368 \includegraphics[scale=0.6]{pics/tan1.jpg}\hspace{5mm} |
|
369 \includegraphics[scale=0.2]{pics/tan2.jpg} |
|
370 \end{center} |
|
371 |
|
372 \pause |
|
373 Or nowadays by SMS (restricts the validity of the numbers) or with a secure generator |
|
374 |
|
375 \begin{center} |
|
376 \includegraphics[scale=0.08]{pics/pinsentry.jpg} |
|
377 \end{center} |
|
378 |
|
379 \end{frame}} |
|
380 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
381 |
|
382 |
|
383 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
384 \mode<presentation>{ |
|
385 \begin{frame}[t] |
|
386 \frametitle{\begin{tabular}{@ {}c@ {}}Ex: Two-Factor Authentication\end{tabular}} |
|
387 |
|
388 \begin{itemize} |
|
389 \item<1->What assets are you trying to protect?\\ |
|
390 \only<1>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}Your bank account.\end{tabular}} |
|
391 \item<2->What are the risks to these assets?\\ |
|
392 \only<2>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
|
393 Nowadays pretty high risk.\end{tabular}} |
|
394 \item<3->How well does the security solution mitigate those risks?\\ |
|
395 \only<3>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
|
396 It prevents problems when passwords are stolen. Man-in-the-middle attacks |
|
397 still possible.\end{tabular}} |
|
398 \item<4->What other risks does the security solution cause? |
|
399 \only<4>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright Your mobile phone or credit card/pin might |
|
400 be stolen. SIM card becomes more valuable.\end{tabular}} |
|
401 \item<5->What costs and trade-offs does the security solution impose? |
|
402 \only<5>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
|
403 Banks need to establish an infrastructure. For you it might be inconvenient.\end{tabular}} |
|
404 \item<7>[]{\bf\large Yes!} |
|
405 \end{itemize} |
|
406 |
|
407 |
|
408 \end{frame}} |
|
409 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
410 |
|
411 |
|
412 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
413 \mode<presentation>{ |
|
414 \begin{frame}[t] |
|
415 \frametitle{\begin{tabular}{@ {}c@ {}}Security Seals\end{tabular}} |
|
416 |
|
417 According to Ross Anderson: ``\ldots is a tamper-indicating device |
|
418 designed to leave non-erasable, unambiguous evidence of unauthorized |
|
419 entry or tampering.'' |
|
420 |
|
421 \begin{center} |
|
422 \includegraphics[scale=0.45]{pics/seal.jpg} |
|
423 \end{center}\mbox{}\\[-12mm] |
|
424 |
|
425 They also need some quite sophisticated policies (seal regiment). |
|
426 \end{frame}} |
|
427 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
428 |
|
429 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
430 \mode<presentation>{ |
|
431 \begin{frame}[t] |
|
432 \frametitle{\begin{tabular}{@ {}c@ {}}Security Seals (2)\end{tabular}} |
|
433 |
|
434 \begin{itemize} |
|
435 \item at the Argonne National Laboratory they tested 244 different security seals |
|
436 \begin{itemize} |
|
437 \item meantime to break the seals for a trained person: 100 s |
|
438 \item including 19\% that were used for safeguard of nuclear material |
|
439 \end{itemize}\bigskip |
|
440 |
|
441 \item Andrew Appel defeated all security seals which were supposed to keep |
|
442 voting machines safe |
|
443 \end{itemize} |
|
444 |
|
445 |
|
446 \only<2>{ |
|
447 \begin{textblock}{11}(1,1) |
|
448 \begin{tikzpicture} |
515 \begin{tikzpicture} |
449 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] |
516 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] |
450 {\normalsize |
517 {\begin{minipage}{10.5cm} |
451 \begin{minipage}{11cm}\raggedright\small |
518 \small Access control does not matter. Computers are becoming single-purpose |
452 \begin{center} |
519 or single-user devices. Single-purpose devices, such as Web servers that deliver a single service, don't |
453 \includegraphics[scale=0.25]{pics/appelseals.jpg} |
520 need much in the way of access control as there's nothing for operating system access controls |
454 \end{center} |
521 to do; the job of separating users from each other is best left to application code. As for the PC |
455 \begin{center} |
522 on your desk, if all the software on it comes from a single source, then again there's no need |
456 \begin{minipage}{10.5cm} |
523 for the operating system to provide separation. \hfill{}\textcolor{gray}{(in 2000)} |
457 \begin{itemize} |
|
458 \item The tamper-indicating tape can be lifted using a heat gun. |
|
459 \item The security screw cap can be removed using a screwdriver, then the |
|
460 serial-numbered top can be replaced (undamaged) onto a fresh (unnumbered) base. |
|
461 \item The wire seal can be defeated using a \#4 wood screw. |
|
462 \item The plastic strap seal can be picked using a jeweler's screwdriver. |
|
463 \end{itemize} |
|
464 \end{minipage} |
|
465 \end{center} |
|
466 \end{minipage}}; |
524 \end{minipage}}; |
467 \end{tikzpicture} |
525 \end{tikzpicture} |
468 \end{textblock}} |
526 \end{center} |
469 |
527 |
470 \end{frame}} |
528 \end{frame}} |
471 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
529 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
472 |
530 |
473 |
531 |
474 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
532 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
475 \mode<presentation>{ |
533 \mode<presentation>{ |
476 \begin{frame}[t] |
534 \begin{frame}[t] |
477 \frametitle{\begin{tabular}{@ {}c@ {}}Example: Security Seals\end{tabular}} |
535 \frametitle{\begin{tabular}{@ {}c@ {}}Research Problems\end{tabular}} |
478 |
536 |
479 \begin{itemize} |
537 \begin{itemize} |
480 \item<1->What assets are you trying to protect?\\ |
538 \item with access control we are back to 1970s\bigskip |
481 \only<1>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}Voting machines, doors.\end{tabular}} |
539 |
482 \item<2->What are the risks to these assets?\\ |
540 \only<1>{ |
483 \only<2>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright Casual thieves, insider attacks.\end{tabular}} |
541 \begin{tikzpicture} |
484 \item<3->How well does the security solution mitigate those risks?\\ |
542 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] |
485 \only<3>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
543 {\begin{minipage}{10cm} |
486 Needs a quite complicated security regiment.\end{tabular}} |
544 \small Going all the way back to early time-sharing systems we systems people regarded the users, and any code they wrote, as the mortal enemies of us and each other. We were like the police force in a violent slum.\\ |
487 \item<4->What other risks does the security solution cause? |
545 \mbox{}\hfill--- Roger Needham |
488 \only<4>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright You might not notice tampering.\end{tabular}} |
546 \end{minipage}}; |
489 \item<5->What costs and trade-offs does the security solution impose? |
547 \end{tikzpicture}}\pause |
490 \only<5>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
548 |
491 The ``hardware'' is cheap, but indirect costs can be quite high.\end{tabular}} |
549 \item the largest research area in access control in 2000-07 has been ``Trusted Computing'', but thankfully it |
492 \item<7>[]{\bf\large No!} {\textcolor{gray}{Though in some areas they work: airports, swimming pools, \ldots}} |
550 is dead now\bigskip |
493 \end{itemize} |
551 \item a useful research area is to not just have robust access control, but also usable access control --- by programmers and users\\ |
494 |
552 (one possible answer is operating system virtualisation, e.g.~Xen, VMWare)\medskip\pause |
495 |
553 |
|
554 \item electronic voting |
|
555 \end{itemize} |
496 \end{frame}} |
556 \end{frame}} |
497 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
557 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
498 |
558 |
499 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
559 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
500 \mode<presentation>{ |
560 \mode<presentation>{ |
501 \begin{frame}[t] |
561 \begin{frame}[t] |
502 \frametitle{\begin{tabular}{@ {}c@ {}}Ex: Security-by-Obscurity\end{tabular}} |
562 \frametitle{\begin{tabular}{@ {}c@ {}}Mobile OS\end{tabular}} |
503 |
563 |
504 You might think it is a good idea to keep a security relevant algorithm or |
564 \begin{itemize} |
505 software secret. |
565 \item iOS and Android solve the defence-in-depth problem by \alert{sandboxing} applications\bigskip |
506 |
566 |
507 \begin{itemize} |
567 \item you as developer have to specify the resources an application needs |
508 \item<1->What assets are you trying to protect?\\ |
568 \item the OS provides a sandbox where access is restricted to only these resources |
509 \only<1>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}Source code, an algorithm and things that depend on it\end{tabular}} |
569 \end{itemize} |
510 \item<2->What are the risks to these assets?\\ |
570 \end{frame}} |
511 \only<2>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
571 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
512 Can be pretty high (Oystercards).\end{tabular}} |
572 |
513 \item<3->How well does the security solution mitigate those risks?\\ |
573 |
514 \only<3>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright |
574 |
515 Not really. The source code can be reverse engineered, stolen, coerced \ldots{}\end{tabular}} |
575 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
516 \item<4->What other risks does the security solution cause? |
576 \mode<presentation>{ |
517 \only<4>{\begin{tabular}{@{\hspace{1cm}}p{9cm}}\raggedright You prevent |
577 \begin{frame}[c] |
518 scrutiny and independent advice. You also more likely than not to |
578 \frametitle{\begin{tabular}{@ {}c@ {}}Security Theatre\end{tabular}} |
519 get it wrong.\end{tabular}} |
579 |
520 \item<5>[]{\bf\large No!} |
580 |
521 \end{itemize} |
581 Security theatre is the practice of investing in countermeasures intended to provide the |
522 |
582 \underline{feeling} of improved security while doing little or nothing to actually achieve it.\hfill{}\textcolor{gray}{Bruce Schneier} |
523 |
583 |
524 \end{frame}} |
584 \end{frame}} |
525 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
585 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
526 |
586 |
527 |
587 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
528 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
588 \mode<presentation>{ |
529 \mode<presentation>{ |
589 \begin{frame}[c] |
530 \begin{frame}[t] |
590 \frametitle{\begin{tabular}{@ {}c@ {}}Security Theatre\end{tabular}} |
531 \frametitle{\begin{tabular}{@ {}c@ {}}Voting as Security Problem\end{tabular}} |
591 |
532 |
592 \begin{itemize} |
533 What are the security requirements of a voting system?\bigskip |
593 \item for example, usual locks and strap seals are security theatre |
534 |
594 \end{itemize} |
535 \begin{itemize} |
595 |
536 \item<2->Integrity |
596 \begin{center} |
537 \item<3->Ballot Secrecy |
597 \includegraphics[scale=0.45]{pics/seal.jpg} |
538 \item<5->Voter Authentication |
598 \end{center} |
539 \item<6->Enfranchisement |
599 |
540 \item<7->Availability |
600 |
541 \end{itemize} |
601 \end{frame}} |
|
602 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
603 |
|
604 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
605 \mode<presentation>{ |
|
606 \begin{frame}[c] |
|
607 |
|
608 \begin{minipage}{11cm} |
|
609 From: Ross Anderson <Ross.Anderson@cl.cam.ac.uk>\\ |
|
610 To: cl-security-research@lists.cam.ac.uk\\ |
|
611 Subject: Tip off\\ |
|
612 Date: Tue, 02 Oct 2012 13:12:50 +0100\\ |
|
613 |
|
614 I received the following tip off, and have removed the sender's |
|
615 coordinates. I suspect it is one of many security vendors who |
|
616 don't even get the basics right; if you ever go to the RSA |
|
617 conference, there are a thousand such firms in the hall, each |
|
618 with several eager but ignorant salesmen. A trying experience.\\ |
|
619 |
|
620 Ross |
|
621 \end{minipage} |
|
622 |
|
623 \end{frame}} |
|
624 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
625 |
|
626 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
627 \mode<presentation>{ |
|
628 \begin{frame}[c] |
|
629 |
|
630 \begin{minipage}{11cm} |
|
631 I'd like to anonymously tip you off about this\\ |
|
632 product:\\ |
|
633 |
|
634 {\small http://www.strongauth.com/products/key-appliance.html}\\ |
|
635 |
|
636 It sounds really clever, doesn't it?\\ |
|
637 \ldots\\ |
|
638 |
|
639 Anyway, it occurred to me that you and your colleagues might have a |
|
640 field day discovering weaknesses in the appliance and their |
|
641 implementation of security. However, whilst I'd be willing to help |
|
642 and/or comment privately, it'd have to be off the record ;-) |
|
643 \end{minipage} |
|
644 |
|
645 \end{frame}} |
|
646 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
647 |
|
648 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
649 \mode<presentation>{ |
|
650 \begin{frame}[c] |
|
651 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 1\end{tabular}} |
|
652 |
|
653 {\bf What assets are you trying to protect?}\bigskip |
|
654 |
|
655 This question might seem basic, but a surprising number of people never ask it. The question involves understanding the scope of the problem. For example, securing an airplane, an airport, commercial aviation, the transportation system, and a nation against terrorism are all different security problems, and require different solutions. |
542 |
656 |
543 \only<2>{ |
657 \only<2>{ |
544 \begin{textblock}{5.5}(8,5) |
|
545 \begin{tikzpicture} |
658 \begin{tikzpicture} |
546 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm, text centered] |
659 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm] |
547 {\small |
660 {\begin{minipage}{10cm} |
548 \begin{minipage}{5cm}\raggedright |
661 \small You like to prevent: ``It would be terrible if this sort of attack ever happens; we need to do everything in our power to prevent it.'' |
549 \begin{center} |
|
550 \begin{minipage}{4.5cm} |
|
551 \begin{itemize} |
|
552 \item The outcome matches with the voters' intend. |
|
553 \item There might be gigantic sums at stake and need to be defended against. |
|
554 \end{itemize} |
|
555 \end{minipage} |
|
556 \end{center} |
|
557 \end{minipage}}; |
662 \end{minipage}}; |
558 \end{tikzpicture} |
663 \end{tikzpicture}} |
559 \end{textblock}} |
664 \end{frame}} |
560 |
665 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
561 \only<4>{ |
666 |
562 \begin{textblock}{5.5}(8,5) |
667 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
563 \begin{tikzpicture} |
668 \mode<presentation>{ |
564 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm, text centered] |
669 \begin{frame}[c] |
565 {\small |
670 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 2\end{tabular}} |
566 \begin{minipage}{5cm}\raggedright |
671 |
567 \begin{center} |
672 {\bf What are the risks to these assets?}\bigskip |
568 \begin{minipage}{4.5cm} |
673 |
569 \begin{itemize} |
674 Here we consider the need for security. Answering it involves understanding what is being defended, what the consequences are if it is successfully attacked, who wants to attack it, how they might attack it, and why. |
570 \item Nobody can find out how you voted. |
675 |
571 \item (Stronger) Even if you try, you cannot prove how you voted. |
676 \end{frame}} |
572 \end{itemize} |
677 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
573 \end{minipage} |
678 |
574 \end{center} |
679 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
575 \end{minipage}}; |
680 \mode<presentation>{ |
576 \end{tikzpicture} |
681 \begin{frame}[c] |
577 \end{textblock}} |
682 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 3\end{tabular}} |
578 |
683 |
579 \only<5>{ |
684 {\bf How well does the security solution mitigate those risks?}\bigskip |
580 \begin{textblock}{5.5}(8,5) |
685 |
581 \begin{tikzpicture} |
686 Another seemingly obvious question, but one that is frequently ignored. If the security solution doesnÕt solve the problem, it's no good. This is not as simple as looking at the security solution and seeing how well it works. It involves looking at how the security solution interacts with everything around it, evaluating both its operation and its failures. |
582 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm, text centered] |
687 |
583 {\small |
688 \end{frame}} |
584 \begin{minipage}{5cm}\raggedright |
689 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
585 \begin{center} |
690 |
586 \begin{minipage}{4.5cm} |
691 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
587 \begin{itemize} |
692 \mode<presentation>{ |
588 \item Only authorised voters can vote up to the permitted number of votes. |
693 \begin{frame}[c] |
589 \end{itemize} |
694 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 4\end{tabular}} |
590 \end{minipage} |
695 |
591 \end{center} |
696 {\bf What other risks does the security solution cause?}\bigskip |
592 \end{minipage}}; |
697 |
593 \end{tikzpicture} |
698 This question addresses what might be called the problem of unintended consequences. Security solutions have ripple effects, and most cause new security problems. The trick is to understand the new problems and make sure they are smaller than the old ones. |
594 \end{textblock}} |
699 |
595 |
700 \end{frame}} |
596 \only<6>{ |
701 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
597 \begin{textblock}{5.5}(8,5) |
702 |
598 \begin{tikzpicture} |
703 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
599 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm, text centered] |
704 \mode<presentation>{ |
600 {\small |
705 \begin{frame}[c] |
601 \begin{minipage}{5cm}\raggedright |
706 \frametitle{\begin{tabular}{@ {}c@ {}}Schneier: Step 5\end{tabular}} |
602 \begin{center} |
707 |
603 \begin{minipage}{4.5cm} |
708 {\bf What costs and trade-offs does the security solution impose?}\bigskip |
604 \begin{itemize} |
709 |
605 \item Authorised voters should have the opportunity to vote. |
710 Every security system has costs and requires trade-offs. Most security costs money, sometimes substantial amounts; but other trade-offs may be more important, ranging from matters of convenience and comfort to issues involving basic freedoms like privacy. Understanding these trade-offs is essential. |
606 \end{itemize} |
|
607 \end{minipage} |
|
608 \end{center} |
|
609 \end{minipage}}; |
|
610 \end{tikzpicture} |
|
611 \end{textblock}} |
|
612 |
|
613 \only<7>{ |
|
614 \begin{textblock}{5.5}(8,5) |
|
615 \begin{tikzpicture} |
|
616 \draw (0,0) node[inner sep=2mm,fill=cream, ultra thick, draw=red, rounded corners=2mm, text centered] |
|
617 {\small |
|
618 \begin{minipage}{5cm}\raggedright |
|
619 \begin{center} |
|
620 \begin{minipage}{4.5cm} |
|
621 \begin{itemize} |
|
622 \item The voting system should accept all authorised votes and produce results in a timely manner. |
|
623 \end{itemize} |
|
624 \end{minipage} |
|
625 \end{center} |
|
626 \end{minipage}}; |
|
627 \end{tikzpicture} |
|
628 \end{textblock}} |
|
629 |
|
630 \end{frame}} |
|
631 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
632 |
|
633 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
634 \mode<presentation>{ |
|
635 \begin{frame}[t] |
|
636 \frametitle{\begin{tabular}{@ {}c@ {}}Ballot Boxes\end{tabular}} |
|
637 |
|
638 |
|
639 \begin{center} |
|
640 \includegraphics[scale=2.5]{pics/ballotbox.jpg} |
|
641 \end{center} |
|
642 |
|
643 |
|
644 \end{frame}} |
|
645 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
646 |
|
647 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
648 \mode<presentation>{ |
|
649 \begin{frame}[t] |
|
650 \frametitle{\begin{tabular}{@ {}c@ {}}Problems with Voting\end{tabular}} |
|
651 |
|
652 |
|
653 \begin{center}\large |
|
654 \begin{tabular}{rcl} |
|
655 Integrity & vs. & Ballot Secrecy\bigskip\\ |
|
656 Authentication & vs. &Enfranchisement |
|
657 \end{tabular} |
|
658 \end{center}\bigskip\bigskip\pause |
|
659 |
|
660 Further constraints: |
|
661 |
|
662 \begin{itemize} |
|
663 \item costs |
|
664 \item accessibility |
|
665 \item convenience |
|
666 \item intelligibility |
|
667 \end{itemize} |
|
668 \end{frame}} |
|
669 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
670 |
|
671 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
672 \mode<presentation>{ |
|
673 \begin{frame}[t] |
|
674 \frametitle{\begin{tabular}{@ {}c@ {}}E-Voting\end{tabular}} |
|
675 |
|
676 |
|
677 \begin{itemize} |
|
678 \item The Netherlands between 1997 - 2006 had electronic voting machines\\ |
|
679 \textcolor{gray}{(hacktivists had found: they can be hacked and also emitted radio signals revealing how you voted)} |
|
680 |
|
681 \item Germany had used them in pilot studies\\ |
|
682 \textcolor{gray}{(in 2007 a law suit has reached the highest court and it rejected electronic voting |
|
683 on the grounds of not being understandable by the general public)} |
|
684 |
|
685 \item UK used optical scan voting systems in a few polls |
|
686 \end{itemize} |
|
687 \end{frame}} |
|
688 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
689 |
|
690 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
691 \mode<presentation>{ |
|
692 \begin{frame}[t] |
|
693 \frametitle{\begin{tabular}{@ {}c@ {}}E-Voting\end{tabular}} |
|
694 |
|
695 \mbox{}\\[-12mm] |
|
696 \begin{itemize} |
|
697 \item US used mechanical machines since the 30s, later punch cards, now DREs and |
|
698 optical scan voting machines \textcolor{gray}{(fantastic ``ecosystem'' for study)} |
|
699 |
|
700 \item Estonia used in 2007 the Internet for national elections |
|
701 \textcolor{gray}{(there were earlier pilot studies in other countries)} |
|
702 |
|
703 \item India uses e-voting devices since at least 2003\\ |
|
704 \textcolor{gray}{(``keep-it-simple'' machines produced by a government owned company)} |
|
705 |
|
706 \item South Africa used software for its tallying in the 1993 elections (when Nelson Mandela was elected) |
|
707 \textcolor{gray}{(they found the tallying software was rigged, but they were able to tally manually)} |
|
708 \end{itemize} |
|
709 \end{frame}} |
|
710 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
711 |
|
712 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
713 \mode<presentation>{ |
|
714 \begin{frame}[t] |
|
715 \frametitle{\begin{tabular}{@ {}c@ {}}A Brief History of Voting\end{tabular}} |
|
716 |
|
717 |
|
718 \begin{itemize} |
|
719 \item Athenians |
|
720 \begin{itemize} |
|
721 \item show of hands |
|
722 \item ballots on pieces of pottery |
|
723 \item different colours of stones |
|
724 \item ``facebook''-like authorisation |
|
725 \end{itemize}\bigskip |
|
726 |
|
727 \textcolor{gray}{problems with vote buying / no ballot privacy}\bigskip |
|
728 |
|
729 |
|
730 \item French Revolution and the US Constitution got things ``started'' with |
|
731 paper ballots (you first had to bring your own; later they were pre-printed by parties) |
|
732 \end{itemize} |
|
733 \end{frame}} |
|
734 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
735 |
|
736 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
737 \mode<presentation>{ |
|
738 \begin{frame}[t] |
|
739 \frametitle{\begin{tabular}{@ {}c@ {}}Ballot Boxes\end{tabular}} |
|
740 |
|
741 Security policies involved with paper ballots: |
|
742 |
|
743 \begin{enumerate} |
|
744 \item you need to check that the ballot box is empty at the start of the poll / no false bottom (to prevent ballot stuffing) |
|
745 \item you need to guard the ballot box during the poll until counting |
|
746 \item tallied by a team at the end of the poll (independent observers) |
|
747 \end{enumerate} |
|
748 |
|
749 \begin{center} |
|
750 \includegraphics[scale=1.5]{pics/ballotbox.jpg} |
|
751 \end{center} |
|
752 |
|
753 |
|
754 \end{frame}} |
|
755 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
756 |
|
757 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
758 \mode<presentation>{ |
|
759 \begin{frame}[t] |
|
760 \frametitle{\begin{tabular}{@ {}c@ {}}Paper Ballots\end{tabular}} |
|
761 |
|
762 What can go wrong with paper ballots? |
|
763 |
|
764 \only<2>{ |
|
765 \begin{center} |
|
766 \includegraphics[scale=0.8]{pics/tweet.jpg}\\ |
|
767 \footnotesize William M.~Tweed, US Politician in 1860's\\ |
|
768 ``As long as I count the votes, what are you going to do about it?'' |
|
769 \end{center}} |
|
770 |
|
771 \only<3>{ |
|
772 \medskip |
|
773 \begin{center} |
|
774 \begin{minipage}{10cm} |
|
775 {\bf Chain Voting Attack} |
|
776 \begin{enumerate} |
|
777 \item you obtain a blank ballot and fill it out as you want |
|
778 \item you give it to a voter outside the polling station |
|
779 \item voter receives a new blank ballot |
|
780 \item voter submits prefilled ballot |
|
781 \item voter gives blank ballot to you, you give money |
|
782 \item goto 1 |
|
783 \end{enumerate} |
|
784 \end{minipage} |
|
785 \end{center} |
|
786 } |
|
787 |
|
788 \end{frame}} |
|
789 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
790 |
|
791 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
792 \mode<presentation>{ |
|
793 \begin{frame}[t] |
|
794 \frametitle{\begin{tabular}{@ {}c@ {}}Mechanical Voting Machines\end{tabular}} |
|
795 |
|
796 \begin{itemize} |
|
797 \item<1-> Lever Voting Machines (ca.~1930 - 1990) |
|
798 \only<1>{ |
|
799 \begin{center} |
|
800 \includegraphics[scale=0.56]{pics/leavermachine.jpg} |
|
801 \end{center} |
|
802 } |
|
803 \item<2->Punch Cards (ca.~1950 - 2000) |
|
804 \only<2>{ |
|
805 \begin{center} |
|
806 \includegraphics[scale=0.5]{pics/punchcard1.jpg}\;\; |
|
807 \includegraphics[scale=0.46]{pics/punchcard2.jpg} |
|
808 \end{center} |
|
809 } |
|
810 \end{itemize} |
|
811 |
|
812 |
|
813 |
|
814 \end{frame}} |
|
815 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
816 |
|
817 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
818 \mode<presentation>{ |
|
819 \begin{frame}[t] |
|
820 \frametitle{\begin{tabular}{@ {}c@ {}}Electronic Voting Machines\end{tabular}} |
|
821 |
|
822 \begin{center} |
|
823 \begin{tabular}{c} |
|
824 \includegraphics[scale=0.45]{pics/dre1.jpg}\; |
|
825 \includegraphics[scale=0.40]{pics/dre2.jpg}\\\hline\\ |
|
826 \includegraphics[scale=0.5]{pics/opticalscan.jpg} |
|
827 \end{tabular} |
|
828 \end{center} |
|
829 |
|
830 \only<1->{ |
|
831 \begin{textblock}{5.5}(1,4) |
|
832 DREs |
|
833 \end{textblock}} |
|
834 \only<1->{ |
|
835 \begin{textblock}{5.5}(1,11) |
|
836 Optical Scan |
|
837 \end{textblock}} |
|
838 |
|
839 \only<2>{ |
|
840 \begin{textblock}{5.5}(0.5,14.5) |
|
841 all are computers |
|
842 \end{textblock}} |
|
843 |
|
844 \end{frame}} |
|
845 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
846 |
|
847 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
848 \mode<presentation>{ |
|
849 \begin{frame}[c] |
|
850 \frametitle{\begin{tabular}{@ {}c@ {}}DREs\end{tabular}} |
|
851 |
|
852 Direct-recording electronic voting machines\\ |
|
853 (votes are recorded for example memory cards) |
|
854 |
|
855 typically touchscreen machines |
|
856 |
|
857 usually no papertrail (hard to add: ballot secrecy) |
|
858 |
|
859 \begin{center} |
|
860 \includegraphics[scale=0.56]{pics/dre1.jpg} |
|
861 \end{center} |
|
862 |
|
863 |
|
864 \end{frame}} |
|
865 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
866 |
|
867 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
868 \mode<presentation>{ |
|
869 \begin{frame}[c] |
|
870 \frametitle{\begin{tabular}{@ {}c@ {}}Diebold Machines\end{tabular}} |
|
871 |
|
872 The work by J.~Alex Halderman: |
|
873 |
|
874 \begin{itemize} |
|
875 \item acquired a machine from an anonymous source\medskip |
|
876 \item the source code running the machine was tried to keep secret\medskip\pause |
|
877 |
|
878 \item first reversed-engineered the machine (extremely tedious) |
|
879 \item could completely reboot the machine and even install a virus that infects other Diebold machines |
|
880 \item obtained also the source code for other machines |
|
881 \end{itemize} |
|
882 |
|
883 \end{frame}} |
|
884 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
885 |
|
886 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
887 \mode<presentation>{ |
|
888 \begin{frame}[c] |
|
889 \frametitle{\begin{tabular}{@ {}c@ {}}Diebold Machines\end{tabular}} |
|
890 |
|
891 What could go wrong?\pause \;\;Failure-in-depth.\bigskip\pause |
|
892 |
|
893 A non-obvious problem: |
|
894 |
|
895 \begin{itemize} |
|
896 \item you can nowadays get old machines, which still store old polls |
|
897 |
|
898 \item the paper ballot box needed to be secured during the voting until counting; |
|
899 e-voting machines need to be secured during the entire life-time |
|
900 \end{itemize} |
|
901 |
|
902 \end{frame}} |
|
903 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
904 |
|
905 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
906 \mode<presentation>{ |
|
907 \begin{frame}[c] |
|
908 \frametitle{\begin{tabular}{@ {}c@ {}}Paper Trail\end{tabular}} |
|
909 |
|
910 Conclusion:\\ Any electronic solution should have a paper trail. |
|
911 |
|
912 \begin{center} |
|
913 \begin{tabular}{c} |
|
914 \includegraphics[scale=0.5]{pics/opticalscan.jpg} |
|
915 \end{tabular} |
|
916 \end{center}\pause |
|
917 |
|
918 You still have to solve problems about |
|
919 Voter registration, voter authentification, guarding against tampering |
|
920 |
|
921 \end{frame}} |
|
922 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
923 |
|
924 |
|
925 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
926 \mode<presentation>{ |
|
927 \begin{frame}[c] |
|
928 \frametitle{\begin{tabular}{@ {}c@ {}}E-Voting in India\end{tabular}} |
|
929 |
|
930 Their underlying engineering principle is ``keep-it-simple'': |
|
931 |
|
932 \begin{center} |
|
933 \begin{tabular}{c} |
|
934 \includegraphics[scale=1.05]{pics/indiaellection.jpg}\;\; |
|
935 \includegraphics[scale=0.40]{pics/india1.jpg} |
|
936 \end{tabular} |
|
937 \end{center}\medskip\pause |
|
938 |
|
939 Official claims: ``perfect'', ``tamperproof'', ``no need for technical improvements'' , ``infallible'' |
|
940 \end{frame}} |
|
941 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
942 |
|
943 |
|
944 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
945 \mode<presentation>{ |
|
946 \begin{frame}[c] |
|
947 \frametitle{\begin{tabular}{@ {}c@ {}}Lessons to be Learned\end{tabular}} |
|
948 |
|
949 \begin{itemize} |
|
950 \item keep a paper trail and design your system to keep this secure\medskip |
|
951 \item make the software open source (avoid security-by-obscurity))\medskip |
|
952 \item have a simple design in order to minimise the attack surface |
|
953 \end{itemize} |
|
954 |
|
955 \end{frame}} |
|
956 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
957 |
|
958 |
|
959 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
960 \mode<presentation>{ |
|
961 \begin{frame}[c] |
|
962 |
|
963 \begin{center} |
|
964 \includegraphics[scale=0.56]{pics/Voting1.png} |
|
965 \end{center} |
|
966 |
|
967 |
|
968 \end{frame}} |
|
969 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
970 |
|
971 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
972 \mode<presentation>{ |
|
973 \begin{frame}[c] |
|
974 |
|
975 \begin{center} |
|
976 \includegraphics[scale=0.56]{pics/Voting2.png} |
|
977 \end{center} |
|
978 |
|
979 |
|
980 \end{frame}} |
|
981 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
982 |
|
983 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
984 \mode<presentation>{ |
|
985 \begin{frame}[c] |
|
986 |
|
987 \begin{center} |
|
988 \includegraphics[scale=0.56]{pics/Voting3.png} |
|
989 \end{center} |
|
990 |
|
991 |
|
992 \end{frame}} |
|
993 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
994 |
|
995 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
996 \mode<presentation>{ |
|
997 \begin{frame}[c] |
|
998 |
|
999 \begin{center} |
|
1000 \includegraphics[scale=0.56]{pics/Voting4.png} |
|
1001 \end{center} |
|
1002 |
|
1003 |
711 |
1004 \end{frame}} |
712 \end{frame}} |
1005 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
713 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
1006 |
714 |
1007 |
715 |