netsim.tex 77 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962
  1. \documentclass[14pt,aspectratio=169]{beamer}
  2. %\usetheme{Boadilla}
  3. \usetheme{Minimalist}
  4. \usepackage{tikz}
  5. \usetikzlibrary{calc,shapes}
  6. \usepackage{ulem}
  7. \title{Network Security}
  8. \subtitle{with Netsim}
  9. \author{Vecna\thanks{building on work by Erinn Atwater, Cecylia Bocovich, Miti Mazmudar, Sajin Sasy, Parjanya Vyas, and Bailey Kacsmar}\thanks{with visuals from Simon Oya and Ian Goldberg}}
  10. \institute{University of Waterloo}
  11. \date{2024 May 13}
  12. \newcommand\srccolor{blue}
  13. \newcommand\dstcolor{purple}
  14. \newcommand\protocolor{cyan}
  15. \newcommand\msgcolor{orange}
  16. % All our images
  17. \pgfdeclareimage[width=1cm]{router}{router}
  18. \pgfdeclareimage[width=1cm]{basestation}{basestation}
  19. \pgfdeclareimage[width=1cm]{mobile}{mobile}
  20. \pgfdeclareimage[width=1cm]{server}{server}
  21. \pgfdeclareimage[width=1cm]{desktop}{desktop}
  22. \pgfdeclareimage[width=1cm]{scroll}{scroll}
  23. \pgfdeclareimage[width=1cm]{evilscroll}{evilscroll}
  24. \pgfdeclareimage[width=8cm]{postcard}{postcard}
  25. \pgfdeclareimage[width=8cm]{envelope}{envelope}
  26. \pgfdeclareimage[width=2cm]{cat}{cat-instructor}
  27. \pgfdeclareimage[width=1cm]{alice}{alice}
  28. \pgfdeclareimage[width=1cm]{bob}{bob}
  29. \pgfdeclareimage[width=1cm]{carol}{carol}
  30. \pgfdeclareimage[width=1cm]{dave}{dave}
  31. \pgfdeclareimage[width=1cm]{eve}{eve}
  32. \pgfdeclareimage[width=1.25cm]{mallory}{mallory}
  33. \pgfdeclareimage[width=4cm]{bubble}{bubble1}
  34. \pgfdeclareimage[width=0.5cm]{lock}{lock}
  35. \pgfdeclareimage[width=2cm]{key}{key-sec}
  36. \pgfdeclareimage[width=1.25cm]{apri}{alice-pri}
  37. \pgfdeclareimage[width=1.25cm]{bpri}{bob-pri}
  38. \pgfdeclareimage[width=1.25cm]{mpri}{mallory-pri}
  39. \pgfdeclareimage[width=1.25cm]{apub}{alice-pub}
  40. \pgfdeclareimage[width=1.25cm]{bpub}{bob-pub}
  41. \pgfdeclareimage[width=1.25cm]{mpub}{mallory-pub}
  42. \pgfdeclareimage[width=1cm]{ciphertext}{ciphertext}
  43. \pgfdeclareimage[height=0.5cm]{x}{x}
  44. \pgfdeclareimage[height=2.5cm]{crysp}{crysp}
  45. \newcommand\onenetwork{
  46. \filldraw [fill=orange!20, draw=black, thick] (-7,1) -- (-3.5,.5) -- (-4,-2) -- (-7,-2) -- cycle;
  47. \node [inner sep=0pt] (mobile) at (-5,-1.25) {\pgfuseimage{mobile}};
  48. \node [inner sep=0pt] (desktop) at (-6.5,-1.25) {\pgfuseimage{desktop}};
  49. \node [inner sep=0pt] (basestation) at (-4.25,-.25) {\pgfuseimage{basestation}};
  50. \node [inner sep=0pt] (AS1r1) at (-6,0.25) {\pgfuseimage{router}};
  51. \draw [draw=black,thick] (desktop) -- (basestation);
  52. \draw [draw=black,thick] (basestation) -- (AS1r1);
  53. }
  54. \newcommand\theinternet{
  55. \filldraw [fill=green!20, draw=black, thick] (-5,4) -- (5,4) -- (3,1) -- (-3,1) -- cycle;
  56. \filldraw [fill=blue!20, draw=black, thick] (-3,.5) -- (3,.5) -- (3.5,-2) -- (-3.5,-2) -- cycle;
  57. \filldraw [fill=red!20, draw=black, thick] (-7,4) --(-5.5,4) -- (-3.5,1) -- (-7,1.5);
  58. \filldraw [fill=purple!20, draw=black, thick] (7,4) --(5.5,4) -- (3.5,1) -- (7,0);
  59. \filldraw [fill=orange!20, draw=black, thick] (-7,1) -- (-3.5,.5) -- (-4,-2) -- (-7,-2);
  60. \filldraw [fill=yellow!20, draw=black, thick] (7,-.5) -- (3.5,.5) -- (4,-2) -- (7,-2);
  61. \node [inner sep=0pt] (mobile) at (-5,-1.25) {\pgfuseimage{mobile}};
  62. \node [inner sep=0pt] (desktop) at (-6.5,-1.25) {\pgfuseimage{desktop}};
  63. \node [inner sep=0pt] (basestation) at (-4.25,-.25) {\pgfuseimage{basestation}};
  64. \node [inner sep=0pt] (AS1r1) at (-6,0.25) {\pgfuseimage{router}};
  65. \draw [draw=black,thick] (desktop) -- (basestation);
  66. \draw [draw=black,thick] (basestation) -- (AS1r1);
  67. \node [inner sep=0pt] (AS2r1) at (-6.25,2) {\pgfuseimage{router}};
  68. \node [inner sep=0pt] (AS2r3) at (-6.25,3.5) {\pgfuseimage{router}};
  69. \node [inner sep=0pt] (AS2r2) at (-4.6,1.6) {\pgfuseimage{router}};
  70. \draw [draw=black,thick] (AS2r1) -- (AS1r1);
  71. \draw [draw=black,thick] (AS2r2) -- (AS2r1);
  72. \draw [draw=black,thick] (AS2r2) -- (AS2r3);
  73. \draw [draw=black,thick] (AS2r1) -- (AS2r3);
  74. \draw [draw=black,thick] (AS2r1) -- ($(-7,1)!(AS2r1)!(-7,0)$);
  75. \draw [draw=black,thick] (AS2r3) -- ($(-7,1)!(AS2r3)!(-7,0)$);
  76. \node [inner sep=0pt] (AS3r1) at (-3.5,3.5) {\pgfuseimage{router}};
  77. \node [inner sep=0pt] (AS3r2) at (-2.5,1.5) {\pgfuseimage{router}};
  78. \node [inner sep=0pt] (AS3r3) at (-1,2.5) {\pgfuseimage{router}};
  79. \node [inner sep=0pt] (AS3r4) at (2,1.5) {\pgfuseimage{router}};
  80. \node [inner sep=0pt] (AS3r5) at (3,3) {\pgfuseimage{router}};
  81. \draw [draw=black,thick] (AS2r3) -- (AS3r1);
  82. \draw [draw=black,thick] (AS2r2) -- (AS3r2);
  83. \draw [draw=black,thick] (AS3r1) -- (AS3r3);
  84. \draw [draw=black,thick] (AS3r2) -- (AS3r3);
  85. \draw [draw=black,thick] (AS3r4) -- (AS3r3);
  86. \draw [draw=black,thick] (AS3r5) -- (AS3r3);
  87. \draw [draw=black,thick] (AS3r2) -- (AS3r4);
  88. \node [inner sep=0pt] (AS4r1) at (6.25,3.5) {\pgfuseimage{router}};
  89. \node [inner sep=0pt] (AS4r2) at (4.75,1.25) {\pgfuseimage{router}};
  90. \node [inner sep=0pt] (AS4basestation) at (6.25,1.2) {\pgfuseimage{basestation}};
  91. \draw [draw=black,thick] (AS4r1) -- (AS4r2);
  92. \draw [draw=black,thick] (AS4basestation) -- (AS4r2);
  93. \draw [draw=black,thick] (AS3r5) -- (AS4r1);
  94. \node [inner sep=0pt] (AS5r1) at (-2.5,0) {\pgfuseimage{router}};
  95. \node [inner sep=0pt] (AS5r2) at (2,0) {\pgfuseimage{router}};
  96. \node [inner sep=0pt] (AS5server) at (-1,-1) {\pgfuseimage{server}};
  97. \draw [draw=black,thick] (AS2r2) -- (AS5r1);
  98. \draw [draw=black,thick] (AS3r2) -- (AS5r1);
  99. \draw [draw=black,thick] (AS3r4) -- (AS5r2);
  100. \draw [draw=black,thick] (AS5r1) -- (AS5r2);
  101. \draw [draw=black,thick] (AS5r1) -- (AS5server);
  102. \node [inner sep=0pt] (AS6r1) at (4.3,-.3) {\pgfuseimage{router}};
  103. \node [inner sep=0pt] (server) at (6,-1.2) {\pgfuseimage{server}};
  104. \draw [draw=black,thick] (AS6r1) -- (AS4r2);
  105. \draw [draw=black,thick] (AS6r1) -- (server);
  106. }
  107. \begin{document}
  108. \frame[plain]{\titlepage}
  109. \begin{frame}
  110. \frametitle{Introductions}
  111. \begin{itemize}
  112. \item My name is Vecna
  113. \item My pronouns are they/them
  114. \item I'm part of the Cryptography, Security, and Privacy (CrySP)\footnote{\url{https://crysp.org}} group
  115. \item My research focuses on privacy and censorship circumvention
  116. \item \textbf{Please interrupt me if you have questions}
  117. \end{itemize}
  118. \centerline{
  119. \begin{tikzpicture}
  120. \node (crysp) {\pgfuseimage{crysp}};
  121. \end{tikzpicture}
  122. }
  123. \end{frame}
  124. \begin{frame}
  125. \frametitle{Introductions}
  126. \begin{itemize}
  127. \item Introduce yourself
  128. \item Examples of what to say (if you want)
  129. \begin{itemize}
  130. \item Name
  131. \item Pronouns
  132. \item Something you're passionate about/interested in
  133. \item Why you wanted to come to SPARCS
  134. \item If you prefer to work in groups or alone
  135. \begin{itemize}
  136. \item We'll be playing a puzzle game
  137. \item You're welcome to work together or alone
  138. \item If you want a teammate/group, this may be a time to find one
  139. \end{itemize}
  140. \end{itemize}
  141. \end{itemize}
  142. \end{frame}
  143. \begin{frame}
  144. \frametitle{Introductions}
  145. \begin{itemize}
  146. \item Finally, let's introduce our characters...
  147. \vspace{1em}
  148. \begin{columns}
  149. \column{0.5\textwidth}
  150. \large Our friends
  151. \vspace{1em}
  152. \begin{columns}
  153. \column{0.5\textwidth}
  154. \pgfuseimage{alice} \large Alice
  155. \pgfuseimage{carol} \large Carol
  156. \column{0.5\textwidth}
  157. \pgfuseimage{bob} \large Bob
  158. \pgfuseimage{dave} \large Dave
  159. \end{columns}
  160. \column{0.5\textwidth}
  161. \large Our enemies
  162. \vspace{1em}
  163. \pgfuseimage{eve} \large Eve \small (an eavesdropper)
  164. \pgfuseimage{mallory} \large Mallory \small (a malicious attacker)
  165. \end{columns}
  166. \vspace{1em}
  167. \item These characters are common in cryptography/security
  168. \item These drawings are by Simon Oya\footnote{\url{https://simonoya.com/}}
  169. \end{itemize}
  170. \end{frame}
  171. \begin{frame}
  172. \frametitle{Goals}
  173. \begin{itemize}
  174. \item \textit{\textbf{Define}} the foundations of computer networks
  175. \item \textit{\textbf{Define}} security goals
  176. \item \textit{\textbf{Explore}} whether these security goals are accomplished on the Internet
  177. \item \textit{\textbf{Execute}} attacks against a (simulated) network
  178. \item \textit{\textbf{Identify}} real-world implications and defenses
  179. \end{itemize}
  180. \end{frame}
  181. \begin{frame}
  182. \frametitle{Outline}
  183. \begin{itemize}
  184. \item Networking background
  185. \begin{itemize}
  186. \item Introduction to networking/the Internet: \textbf{2 levels}
  187. \item ICMP (ping): \textbf{3 levels}
  188. \end{itemize}
  189. \item Security goals (and how the Internet fails to accomplish them)
  190. \begin{itemize}
  191. \item What are our security goals?
  192. \item Encryption: \textbf{1 level}
  193. \item Attacks: \textbf{6 levels}
  194. \end{itemize}
  195. \item Real-world implications
  196. \end{itemize}
  197. \end{frame}
  198. \begin{frame}
  199. \frametitle{What is a Network?}
  200. \begin{itemize}
  201. \item Computers connected to each other
  202. \end{itemize}
  203. \centerline{
  204. \begin{tikzpicture}
  205. \onenetwork
  206. \end{tikzpicture}
  207. }
  208. \end{frame}
  209. \begin{frame}
  210. \frametitle{What is the Internet?}
  211. \begin{itemize}
  212. \item A network of networks that connects computers across the world
  213. \end{itemize}
  214. \centerline{
  215. \begin{tikzpicture}
  216. \theinternet
  217. \end{tikzpicture}
  218. }
  219. \end{frame}
  220. \begin{frame}
  221. \frametitle{Packets}
  222. \begin{columns}
  223. \column{0.4\textwidth}
  224. \begin{itemize}
  225. \item Computers talk to each other using packets
  226. \item Think of a postcard with
  227. \begin{itemize}
  228. \item \color{\srccolor} Source address
  229. \item \color{\dstcolor} Destination address
  230. \item \color{\msgcolor} Message
  231. \end{itemize}
  232. \end{itemize}
  233. \column{0.6\textwidth}
  234. \centerline{
  235. \begin{tikzpicture}
  236. \node (postcard) {\pgfuseimage{postcard}};
  237. \node at (-2.25,1.5) {\color{\srccolor}\large Alice's PC};
  238. \node at (2.35,0.55) {\color{\dstcolor}\large catpics.com};
  239. \node[text width=4cm] at (-1.85,-.5) {\color{\msgcolor}\large please send cat pics thx};
  240. \end{tikzpicture}
  241. }
  242. \end{columns}
  243. \end{frame}
  244. \begin{frame}
  245. \frametitle{Sending a Packet}
  246. \begin{itemize}
  247. \item Alice sends this packet to catpics.com and gets a response
  248. \end{itemize}
  249. \centerline{
  250. \begin{tikzpicture}
  251. \theinternet
  252. \node [inner sep=0pt] (alice) at (-7.65,-1.25) {\pgfuseimage{alice}};
  253. \draw [draw=red,line width=3pt] (desktop) -- (basestation);
  254. \draw [draw=red,line width=3pt] (basestation) -- (AS1r1);
  255. \draw [draw=red,line width=3pt] (AS1r1) -- (AS2r1);
  256. \draw [draw=red,line width=3pt] (AS2r2) -- (AS2r1);
  257. \draw [draw=red,line width=3pt] (AS2r2) -- (AS3r2);
  258. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r2);
  259. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r5);
  260. \draw [draw=red,line width=3pt] (AS4r1) -- (AS3r5);
  261. \draw [draw=red,line width=3pt] (AS4r1) -- (AS4r2);
  262. \draw [draw=red,line width=3pt] (AS6r1) -- (AS4r2);
  263. \draw [draw=red,line width=3pt] (AS6r1) -- (server);
  264. \end{tikzpicture}
  265. }
  266. \end{frame}
  267. \begin{frame}
  268. \frametitle{Response Packet}
  269. \begin{columns}
  270. \column{0.4\textwidth}
  271. \begin{itemize}
  272. \item Again, think of a postcard with
  273. \begin{itemize}
  274. \item \color{\srccolor} Source address
  275. \item \color{\dstcolor} Destination address
  276. \item \color{\msgcolor} Message
  277. \end{itemize}
  278. \end{itemize}
  279. \column{0.6\textwidth}
  280. \centerline{
  281. \begin{tikzpicture}
  282. \node (postcard) {\pgfuseimage{postcard}};
  283. \node at (-2.25,1.5) {\color{\srccolor}\large catpics.com};
  284. \node at (2.35,0.55) {\color{\dstcolor}\large Alice's PC};
  285. \draw [draw=\msgcolor, line width=3pt] (-3.5,0.5) -- (0,0.5) -- (0,-2) -- (-3.5,-2) -- cycle;
  286. \node at (-1.75,-.75) {\pgfuseimage{cat}};
  287. \end{tikzpicture}
  288. }
  289. \end{columns}
  290. \end{frame}
  291. \begin{frame}
  292. \frametitle{Takeaways}
  293. \begin{itemize}
  294. \item The Internet is just computers across the world talking to each other
  295. \item Computers send information back and forth in the form of packets
  296. \item Packets are like postcards
  297. \begin{itemize}
  298. \item Source address
  299. \item Destination address
  300. \item Message
  301. \item (all visible)
  302. \end{itemize}
  303. \end{itemize}
  304. \end{frame}
  305. \begin{frame}
  306. \frametitle{Netsim}
  307. \begin{itemize}
  308. \item In this session, we will be playing a game called netsim
  309. \item This game provides a (simplified) simulation of a network to help you learn about networking and security
  310. % \item \textbf{Your task: Register and complete levels 1 and 2}
  311. \item \textbf{Your task: Register and complete levels 1 -- 5}
  312. \begin{itemize}
  313. \item Register at \footnotesize\url{https://vvecna.cs.uwaterloo.ca/netsim/}\normalsize
  314. \item (Backup link: \footnotesize\url{https://netsim.erinn.io/}\normalsize)
  315. \item Accounts are not saved long-term (sorry)
  316. \item Feel free to work together or alone
  317. \item Ask if you need help
  318. \end{itemize}
  319. \end{itemize}
  320. \end{frame}
  321. %\begin{frame}
  322. % \frametitle{More About Packets}
  323. % \begin{columns}
  324. % \column{0.4\textwidth}
  325. % \begin{itemize}
  326. % \item Packets actually have multiple layers
  327. % \begin{itemize}
  328. % \item Network layer (IP):
  329. % \begin{itemize}
  330. % \item \color{\srccolor}{Source address}
  331. % \item \color{\dstcolor}{Destination address}
  332. % \end{itemize}
  333. % \item Transport layer: \color{\protocolor}{Type of message}\normalcolor
  334. % \item Application layer: \color{\msgcolor}{Message}
  335. % \end{itemize}
  336. % \end{itemize}
  337. % \column{0.6\textwidth}
  338. % \centerline{
  339. % \begin{tikzpicture}
  340. % \node (postcard) {\pgfuseimage{postcard}};
  341. % \node at (-2.25,1.5) {\color{\srccolor}\large Alice's PC};
  342. % \node at (3.15,1.7) {\color{\protocolor}\footnotesize ICMP};
  343. % \node at (2.35,0.55) {\color{\dstcolor}\large catpics.com};
  344. % \node[text width=4cm] at (-.5,-.5) {\color{\msgcolor}\large PING};
  345. % \end{tikzpicture}
  346. % }
  347. % \end{columns}
  348. %\end{frame}
  349. %
  350. %\begin{frame}
  351. % \frametitle{More About Packets}
  352. % \begin{columns}
  353. % \column{0.4\textwidth}
  354. % \begin{itemize}
  355. % \item Packets actually have multiple layers
  356. % \begin{itemize}
  357. % \item Network layer (IP):
  358. % \begin{itemize}
  359. % \item \color{\srccolor}{Source address}
  360. % \item \color{\dstcolor}{Destination address}
  361. % \end{itemize}
  362. % \item Transport layer: \color{\protocolor}{Type of message}\normalcolor
  363. % \item Application layer: \color{\msgcolor}{Message}
  364. % \end{itemize}
  365. % \end{itemize}
  366. % \column{0.6\textwidth}
  367. % \centerline{
  368. % \begin{tikzpicture}
  369. % \node (postcard) {\pgfuseimage{postcard}};
  370. % \node at (-2.25,1.5) {\color{\srccolor}\large catpics.com};
  371. % \node at (3.15,1.7) {\color{\protocolor}\footnotesize ICMP};
  372. % \node at (2.35,0.55) {\color{\dstcolor}\large Alice's PC};
  373. % \node[text width=4cm] at (-.5,-.5) {\color{\msgcolor}\large PONG};
  374. % \end{tikzpicture}
  375. % }
  376. % \end{columns}
  377. %\end{frame}
  378. %
  379. %\begin{frame}
  380. % \frametitle{Technical Note}
  381. % \begin{itemize}
  382. % \item Internet Control Message Protocol (ICMP) is actually a network-layer protocol, but it's sort of transport-like
  383. % \item The netsim game treats it as a transport-layer protocol
  384. % \item Let's not worry about it too much
  385. % \end{itemize}
  386. %\end{frame}
  387. %
  388. %\begin{frame}
  389. % \frametitle{Let's Do Some More Exercises}
  390. % \begin{itemize}
  391. % \item \textbf{Your task: Complete levels 3, 4, and 5}
  392. % \end{itemize}
  393. %\end{frame}
  394. \begin{frame}
  395. \frametitle{Goals}
  396. \begin{itemize}
  397. \item \sout{\textit{\textbf{Define}} the foundations of computer networks}
  398. \item \textit{\textbf{Define}} security goals
  399. \item \textit{\textbf{Explore}} whether these security goals are accomplished on the Internet
  400. \item \textit{\textbf{Execute}} attacks against a (simulated) network
  401. \item \textit{\textbf{Identify}} real-world implications and defenses
  402. \end{itemize}
  403. \end{frame}
  404. \begin{frame}
  405. \frametitle{Security Goals}
  406. \begin{itemize}
  407. \item Confidentiality
  408. \item Integrity
  409. \item Availability
  410. \item Authentication
  411. \end{itemize}
  412. \end{frame}
  413. \begin{frame}
  414. \frametitle{Failing to Meet Our Security Goals}
  415. \begin{itemize}
  416. \item Suppose Alice sends a message to Bob
  417. \centerline{
  418. \begin{tikzpicture}
  419. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  420. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  421. \draw [-stealth] (alice) -- (bob);
  422. \node [inner sep=0pt] (msg) at (0,0) {\pgfuseimage{scroll}};
  423. \end{tikzpicture}
  424. }
  425. \end{itemize}
  426. \end{frame}
  427. \begin{frame}
  428. \frametitle{Failing to Meet Our Security Goals}
  429. \begin{itemize}
  430. \item Suppose Alice sends a message to Bob
  431. \centerline{
  432. \begin{tikzpicture}
  433. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  434. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  435. \draw [-stealth] (alice) -- (bob);
  436. \node [inner sep=0pt] (msg) at (0,0) {\pgfuseimage{scroll}};
  437. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  438. \end{tikzpicture}
  439. }
  440. \item \textbf{Confidentiality: Protecting data from unauthorized access}
  441. \item Compromise of confidentiality: Eve reads the message
  442. \end{itemize}
  443. \end{frame}
  444. \begin{frame}
  445. \frametitle{Failing to Meet Our Security Goals}
  446. \begin{itemize}
  447. \item Suppose Alice sends a message to Bob
  448. \centerline{
  449. \begin{tikzpicture}
  450. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  451. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  452. \node [inner sep=0pt] (mallory) at (0,0) {\pgfuseimage{mallory}};
  453. \draw [-stealth] (alice) -- (mallory);
  454. \draw [-stealth] (mallory) -- (bob);
  455. \node [inner sep=0pt] (msg) at (-2,0) {\pgfuseimage{scroll}};
  456. \node [inner sep=0pt] (badmsg) at (2,0) {\pgfuseimage{evilscroll}};
  457. \end{tikzpicture}
  458. }
  459. \item \textbf{Integrity: Ensuring data is correct/unchanged}
  460. \item Compromise of integrity: Mallory modifies the message
  461. \end{itemize}
  462. \end{frame}
  463. \begin{frame}
  464. \frametitle{Failing to Meet Our Security Goals}
  465. \begin{itemize}
  466. \item Suppose Alice sends a message to Bob
  467. \centerline{
  468. \begin{tikzpicture}
  469. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  470. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  471. \node [inner sep=0pt] (mallory) at (0,1) {\pgfuseimage{mallory}};
  472. \node [inner sep=0pt] (block) at (0,0) {\pgfuseimage{x}};
  473. \draw [-stealth] (alice) -- (block);
  474. \node [inner sep=0pt] (msg) at (-2,0) {\pgfuseimage{scroll}};
  475. \end{tikzpicture}
  476. }
  477. \item \textbf{Availability: Ensuring data/system can be used correctly}
  478. \item Compromise of availability: Mallory prevents Alice from sending the message to Bob
  479. \end{itemize}
  480. \end{frame}
  481. \begin{frame}
  482. \frametitle{Failing to Meet Our Security Goals}
  483. \begin{itemize}
  484. \item Suppose Mallory sends a message to Bob
  485. \centerline{
  486. \begin{tikzpicture}
  487. \node [inner sep=0pt] (mallory) at (-4,0) {\pgfuseimage{mallory}};
  488. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  489. \draw [-stealth] (mallory) -- (bob);
  490. \node [inner sep=0pt] (msg) at (0,0) {\pgfuseimage{evilscroll}};
  491. \filldraw [fill=red, draw=black, thick] (-4,-0.65) -- (-4.75,-0.65) -- (-4.75,-0.25) -- (-4,-0.25) -- cycle;
  492. \node[text width=2.5cm,color=white] at (-3.425,-0.35) {\tiny \textbf{HELLO}};
  493. \node[text width=1.5cm,color=white] at (-4.12,-0.55) {\fontsize{3}{1} \textbf{MY\hspace{2px}NAME\hspace{2px}IS}};
  494. \filldraw [fill=white, draw=black, thick] (-4,-0.65) -- (-4.75,-0.65) -- (-4.75,-1) -- (-4,-1) -- cycle;
  495. \node[text width=2.5cm,color=black] at (-3.35,-0.85) {\tiny \textit{Alice}};
  496. \end{tikzpicture}
  497. }
  498. \item \textbf{Authentication: Ensuring data \textit{source} is correct}
  499. \item Compromise of authentication: Mallory forges a message from Alice
  500. \end{itemize}
  501. \end{frame}
  502. \begin{frame}
  503. \frametitle{Goals}
  504. \begin{itemize}
  505. \item \sout{\textit{\textbf{Define}} the foundations of computer networks}
  506. \item \sout{\textit{\textbf{Define}} security goals}
  507. \item \textit{\textbf{Explore}} whether these security goals are accomplished on the Internet
  508. \item \textit{\textbf{Execute}} attacks against a (simulated) network
  509. \item \textit{\textbf{Identify}} real-world implications and defenses
  510. \end{itemize}
  511. \end{frame}
  512. \begin{frame}
  513. \frametitle{Security Goals}
  514. \begin{itemize}
  515. \item Confidentiality: Protecting data from unauthorized access
  516. \item Integrity: Ensuring data is correct/unchanged
  517. \item Availability: Ensuring data/system is available
  518. \item Authentication: Ensuring data \textit{source} is correct
  519. \item \textbf{The Internet was not designed with security in mind}
  520. \end{itemize}
  521. \centerline{
  522. \begin{tikzpicture}
  523. \node [inner sep=0pt] (eve-bubble) at (-4.75,1) {\pgfuseimage{bubble}};
  524. \node[text width=2.75cm] at (-5,1) {\small I can break confidentiality.};
  525. \node [inner sep=0pt] (eve) at (-2,0) {\pgfuseimage{eve}};
  526. \node [inner sep=0pt] (mallory-bubble) at (1.25,1) {\pgfuseimage{bubble}};
  527. \node[text width=2.5cm] at (1.25,1) {\small I can break all of these.};
  528. \node [inner sep=0pt] (mallory) at (4,0) {\pgfuseimage{mallory}};
  529. \end{tikzpicture}
  530. }
  531. \end{frame}
  532. \begin{frame}
  533. \frametitle{Attacking Confidentiality}
  534. \begin{itemize}
  535. \item Who can \textbf{read} the message?
  536. \end{itemize}
  537. \centerline{
  538. \begin{tikzpicture}
  539. \theinternet
  540. \node [inner sep=0pt] (alice) at (-7.65,-1.25) {\pgfuseimage{alice}};
  541. \draw [draw=red,line width=3pt] (desktop) -- (basestation);
  542. \draw [draw=red,line width=3pt] (basestation) -- (AS1r1);
  543. \draw [draw=red,line width=3pt] (AS1r1) -- (AS2r1);
  544. \draw [draw=red,line width=3pt] (AS2r2) -- (AS2r1);
  545. \draw [draw=red,line width=3pt] (AS2r2) -- (AS3r2);
  546. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r2);
  547. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r5);
  548. \draw [draw=red,line width=3pt] (AS4r1) -- (AS3r5);
  549. \draw [draw=red,line width=3pt] (AS4r1) -- (AS4r2);
  550. \draw [draw=red,line width=3pt] (AS6r1) -- (AS4r2);
  551. \draw [draw=red,line width=3pt] (AS6r1) -- (server);
  552. \end{tikzpicture}
  553. }
  554. \end{frame}
  555. \begin{frame}
  556. \frametitle{Attacking Confidentiality}
  557. \begin{itemize}
  558. \item Who can \textbf{read} the message?
  559. \end{itemize}
  560. \centerline{
  561. \begin{tikzpicture}
  562. \filldraw [fill=green!20, draw=black, thick] (-5,4) -- (5,4) -- (3,1) -- (-3,1) -- cycle;
  563. \filldraw [fill=blue!20, draw=black, thick] (-3,.5) -- (3,.5) -- (3.5,-2) -- (-3.5,-2) -- cycle;
  564. \filldraw [fill=red!20, draw=black, thick] (-7,4) --(-5.5,4) -- (-3.5,1) -- (-7,1.5);
  565. \filldraw [fill=purple!20, draw=black, thick] (7,4) --(5.5,4) -- (3.5,1) -- (7,0);
  566. \filldraw [fill=orange!20, draw=black, thick] (-7,1) -- (-3.5,.5) -- (-4,-2) -- (-7,-2);
  567. \filldraw [fill=yellow!20, draw=black, thick] (7,-.5) -- (3.5,.5) -- (4,-2) -- (7,-2);
  568. \node [inner sep=0pt] (mobile) at (-5,-1.25) {\pgfuseimage{mobile}};
  569. \node [inner sep=0pt] (desktop) at (-6.5,-1.25) {\pgfuseimage{desktop}};
  570. \node [inner sep=0pt] (basestation) at (-4.25,-.25) {\pgfuseimage{eve}};
  571. \node [inner sep=0pt] (AS1r1) at (-6,0.25) {\pgfuseimage{eve}};
  572. \draw [draw=black,thick] (desktop) -- (basestation);
  573. \draw [draw=black,thick] (basestation) -- (AS1r1);
  574. \node [inner sep=0pt] (AS2r1) at (-6.25,2) {\pgfuseimage{eve}};
  575. \node [inner sep=0pt] (AS2r3) at (-6.25,3.5) {\pgfuseimage{router}};
  576. \node [inner sep=0pt] (AS2r2) at (-4.6,1.6) {\pgfuseimage{eve}};
  577. \draw [draw=black,thick] (AS2r1) -- (AS1r1);
  578. \draw [draw=black,thick] (AS2r2) -- (AS2r1);
  579. \draw [draw=black,thick] (AS2r2) -- (AS2r3);
  580. \draw [draw=black,thick] (AS2r1) -- (AS2r3);
  581. \draw [draw=black,thick] (AS2r1) -- ($(-7,1)!(AS2r1)!(-7,0)$);
  582. \draw [draw=black,thick] (AS2r3) -- ($(-7,1)!(AS2r3)!(-7,0)$);
  583. \node [inner sep=0pt] (AS3r1) at (-3.5,3.5) {\pgfuseimage{router}};
  584. \node [inner sep=0pt] (AS3r2) at (-2.5,1.5) {\pgfuseimage{eve}};
  585. \node [inner sep=0pt] (AS3r3) at (-1,2.5) {\pgfuseimage{eve}};
  586. \node [inner sep=0pt] (AS3r4) at (2,1.5) {\pgfuseimage{router}};
  587. \node [inner sep=0pt] (AS3r5) at (3,3) {\pgfuseimage{eve}};
  588. \draw [draw=black,thick] (AS2r3) -- (AS3r1);
  589. \draw [draw=black,thick] (AS2r2) -- (AS3r2);
  590. \draw [draw=black,thick] (AS3r1) -- (AS3r3);
  591. \draw [draw=black,thick] (AS3r2) -- (AS3r3);
  592. \draw [draw=black,thick] (AS3r4) -- (AS3r3);
  593. \draw [draw=black,thick] (AS3r5) -- (AS3r3);
  594. \draw [draw=black,thick] (AS3r2) -- (AS3r4);
  595. \node [inner sep=0pt] (AS4r1) at (6.25,3.5) {\pgfuseimage{eve}};
  596. \node [inner sep=0pt] (AS4r2) at (4.75,1.25) {\pgfuseimage{eve}};
  597. \node [inner sep=0pt] (AS4basestation) at (6.25,1.2) {\pgfuseimage{basestation}};
  598. \draw [draw=black,thick] (AS4r1) -- (AS4r2);
  599. \draw [draw=black,thick] (AS4basestation) -- (AS4r2);
  600. \draw [draw=black,thick] (AS3r5) -- (AS4r1);
  601. \node [inner sep=0pt] (AS5r1) at (-2.5,0) {\pgfuseimage{router}};
  602. \node [inner sep=0pt] (AS5r2) at (2,0) {\pgfuseimage{router}};
  603. \node [inner sep=0pt] (AS5server) at (-1,-1) {\pgfuseimage{server}};
  604. \draw [draw=black,thick] (AS2r2) -- (AS5r1);
  605. \draw [draw=black,thick] (AS3r2) -- (AS5r1);
  606. \draw [draw=black,thick] (AS3r4) -- (AS5r2);
  607. \draw [draw=black,thick] (AS5r1) -- (AS5r2);
  608. \draw [draw=black,thick] (AS5r1) -- (AS5server);
  609. \node [inner sep=0pt] (AS6r1) at (4.3,-.3) {\pgfuseimage{eve}};
  610. % \node [inner sep=0pt] at (6,-1.7) {\pgfuseimage{server}};
  611. % \node [inner sep=0pt] at (6,-1.45) {\pgfuseimage{server}};
  612. \node [inner sep=0pt] (server) at (6,-1.2) {\pgfuseimage{server}};
  613. \draw [draw=black,thick] (AS6r1) -- (AS4r2);
  614. \draw [draw=black,thick] (AS6r1) -- (server);
  615. \node [inner sep=0pt] (alice) at (-7.65,-1.25) {\pgfuseimage{alice}};
  616. \draw [draw=red,line width=3pt] (desktop) -- (basestation);
  617. \draw [draw=red,line width=3pt] (basestation) -- (AS1r1);
  618. \draw [draw=red,line width=3pt] (AS1r1) -- (AS2r1);
  619. \draw [draw=red,line width=3pt] (AS2r2) -- (AS2r1);
  620. \draw [draw=red,line width=3pt] (AS2r2) -- (AS3r2);
  621. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r2);
  622. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r5);
  623. \draw [draw=red,line width=3pt] (AS4r1) -- (AS3r5);
  624. \draw [draw=red,line width=3pt] (AS4r1) -- (AS4r2);
  625. \draw [draw=red,line width=3pt] (AS6r1) -- (AS4r2);
  626. \draw [draw=red,line width=3pt] (AS6r1) -- (server);
  627. \end{tikzpicture}
  628. }
  629. \end{frame}
  630. \begin{frame}
  631. \frametitle{Cryptography}
  632. \begin{itemize}
  633. \item How can we defend against this?
  634. \item Cryptography!
  635. \begin{itemize}
  636. \item crypto = hidden, secret
  637. \item graphy = field of study
  638. \item Encryption = using math to hide things
  639. \item Cryptography = encryption and related things
  640. \end{itemize}
  641. \end{itemize}
  642. \end{frame}
  643. \begin{frame}
  644. \frametitle{Recall Packets...}
  645. \begin{columns}
  646. \column{0.4\textwidth}
  647. \begin{itemize}
  648. \item Like a \textbf{postcard} with...
  649. \begin{itemize}
  650. \item \color{\srccolor}{Source address}
  651. \item \color{\dstcolor}{Destination address}
  652. % \item \color{\protocolor}{Type of message}
  653. \item \color{\msgcolor}{Message}
  654. \end{itemize}
  655. \end{itemize}
  656. \column{0.6\textwidth}
  657. \centerline{
  658. \begin{tikzpicture}
  659. \node (postcard) {\pgfuseimage{postcard}};
  660. \node at (-2.25,1.5) {\color{\srccolor}\large Alice's PC};
  661. % \node at (3.15,1.7) {\color{\protocolor}\footnotesize TCP};
  662. \node at (2.35,0.55) {\color{\dstcolor}\large Bob's PC};
  663. \node[text width=4cm] at (-.5,-.5) {\color{\msgcolor}\large HI BOB};
  664. \end{tikzpicture}
  665. }
  666. \end{columns}
  667. \end{frame}
  668. \begin{frame}
  669. \frametitle{We Can Encrypt the Message}
  670. \begin{columns}
  671. \column{0.4\textwidth}
  672. \begin{itemize}
  673. \item \color{\srccolor}{Source address}
  674. \item \color{\dstcolor}{Destination address}
  675. % \item \color{\protocolor}{Type of message}
  676. \item \color{\msgcolor}{Encrypted message}
  677. \end{itemize}
  678. \column{0.6\textwidth}
  679. \centerline{
  680. \begin{tikzpicture}
  681. \node (postcard) {\pgfuseimage{postcard}};
  682. \node at (-2.25,1.5) {\color{\srccolor}\large Alice's PC};
  683. % \node at (3.15,1.7) {\color{\protocolor}\footnotesize TCP};
  684. \node at (2.35,0.55) {\color{\dstcolor}\large Bob's PC};
  685. \node[text width=4cm] at (-.5,-.5) {\color{\msgcolor}\large IJCPC};
  686. \end{tikzpicture}
  687. }
  688. \end{columns}
  689. \end{frame}
  690. \begin{frame}
  691. \frametitle{More Like a Letter than a Postcard}
  692. \begin{columns}
  693. \column{0.4\textwidth}
  694. \begin{itemize}
  695. \item \color{\srccolor}{Source address}
  696. \item \color{\dstcolor}{Destination address}
  697. % \item \color{\protocolor}{Type of message}
  698. \item \color{\msgcolor}{Message} \normalcolor (hidden in the sealed envelope)
  699. \end{itemize}
  700. \column{0.6\textwidth}
  701. \centerline{
  702. \hspace{2em}
  703. \begin{tikzpicture}
  704. \node at (0,0) (envelope) {\pgfuseimage{envelope}};
  705. \node at (-2.5,0.25) {\color{\srccolor}\large Alice's PC};
  706. % \node at (2.9,-0.1) {\color{\protocolor}\footnotesize TCP};
  707. \node at (-0.1,-0.5) {\color{\dstcolor}\large Bob's PC};
  708. \node[text width=1cm,rotate=15,align=right] at (2.7,2.5) {\color{\msgcolor} HI BOB};
  709. \end{tikzpicture}
  710. }
  711. \end{columns}
  712. \end{frame}
  713. \begin{frame}
  714. \frametitle{Confidentiality without Encryption}
  715. \centerline{
  716. \begin{tikzpicture}
  717. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  718. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  719. \draw [-stealth] (alice) -- (bob);
  720. \node [inner sep=0pt] (msg) at (0,0) {\pgfuseimage{scroll}};
  721. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  722. \node [inner sep=0pt] (eve-bubble) at (-2.5,3) {\pgfuseimage{bubble}};
  723. \node[text width=2.5cm] at (-2.5,3) {I can read this!};
  724. \end{tikzpicture}
  725. }
  726. \end{frame}
  727. \begin{frame}
  728. \frametitle{Ensuring Confidentiality with Encryption}
  729. \centerline{
  730. \begin{tikzpicture}
  731. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  732. % \node [inner sep=0pt] (alice-lock) at (-3,0) {\pgfuseimage{lock}};
  733. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  734. % \node [inner sep=0pt] (bob-lock) at (3,0) {\pgfuseimage{lock}};
  735. \draw [-stealth] (alice) -- (bob);
  736. \node [inner sep=0pt] (ct) at (0,0) {\pgfuseimage{ciphertext}};
  737. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  738. % \node [inner sep=0pt] (alice-key) at (-6,0) {\pgfuseimage{key}};
  739. % \node [inner sep=0pt] (bob-key) at (6,0) {\pgfuseimage{key}};
  740. \end{tikzpicture}
  741. }
  742. \end{frame}
  743. \begin{frame}
  744. \frametitle{Ensuring Confidentiality with Encryption}
  745. \centerline{
  746. \begin{tikzpicture}
  747. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  748. % \node [inner sep=0pt] (alice-lock) at (-3,0) {\pgfuseimage{lock}};
  749. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  750. % \node [inner sep=0pt] (bob-lock) at (3,0) {\pgfuseimage{lock}};
  751. \draw [-stealth] (alice) -- (bob);
  752. \node [inner sep=0pt] (ct) at (0,0) {\pgfuseimage{ciphertext}};
  753. \node [inner sep=0pt] (eve) at (0,2) {\pgfuseimage{eve}};
  754. \node [inner sep=0pt] (eve-bubble) at (-2.5,3) {\pgfuseimage{bubble}};
  755. \node[text width=2.5cm] at (-2.5,3) {\LARGE \textbf{?????}};
  756. % \node [inner sep=0pt] (alice-key) at (-5,-2) {\pgfuseimage{key}};
  757. % \node [inner sep=0pt] (bob-key) at (5,-2) {\pgfuseimage{key}};
  758. \end{tikzpicture}
  759. }
  760. \end{frame}
  761. \begin{frame}
  762. \frametitle{How Does Encryption Work?}
  763. \begin{itemize}
  764. \item We need a \textbf{key}
  765. \begin{itemize}
  766. \item This is just a random number
  767. \end{itemize}
  768. \item If the key is secure, the encryption should be secure
  769. \begin{itemize}
  770. \item Kerckhoffs's principle: The system should be secure if everything about the system except the key is public knowledge
  771. \item (Or Shannon's maxim: ``The enemy knows the system")
  772. \end{itemize}
  773. \end{itemize}
  774. \end{frame}
  775. % Write the alphabet on the board ahead of time, plan to draw a map based on the key we decide
  776. \begin{frame}
  777. \frametitle{Example: Caesar Cipher}
  778. \begin{itemize}
  779. \item What should our \textbf{key $k$} be?
  780. \item Take the message, and replace each letter with the $k$th next letter in the alphabet
  781. \item For example, if $k = 5$, then NETSIM $\rightarrow$ SJYXNR
  782. \item Let's encrypt the word ``CRYPTOGRAPHY"
  783. \item How do we decrypt?
  784. \end{itemize}
  785. \end{frame}
  786. \begin{frame}
  787. \frametitle{Example: Caesar Cipher}
  788. \begin{itemize}
  789. \item What should our \textbf{key $k$} be? (0--25)
  790. \item Take the message, and replace each letter with the $k$th next letter in the alphabet
  791. \item For example, if $k = 5$, then NETSIM $\rightarrow$ SJYXNR
  792. \item Let's encrypt the word ``CRYPTOGRAPHY"
  793. \item How do we decrypt?
  794. \begin{itemize}
  795. \item \textbf{Also using the key}
  796. \end{itemize}
  797. \end{itemize}
  798. \end{frame}
  799. \begin{frame}
  800. \frametitle{Example: Caesar Cipher}
  801. \begin{itemize}
  802. \item What should our \textbf{key $k$} be? (0--25)
  803. \item Take the message, and replace each letter with the $k$th next letter in the alphabet
  804. \item For example, if $k = 5$, then \texttt{NETSIM} $\rightarrow$ \texttt{SJYXNR}
  805. \item Let's encrypt the word \texttt{CRYPTOGRAPHY}
  806. \item How do we decrypt?
  807. \begin{itemize}
  808. \item \textbf{Also using the key}
  809. \end{itemize}
  810. \item Why isn't this secure?
  811. \end{itemize}
  812. \end{frame}
  813. \begin{frame}
  814. \frametitle{Example: One-Time Pad}
  815. \begin{itemize}
  816. \item What if we used a separate Caesar cipher for each letter?
  817. \item Let's encrypt the word \texttt{NETSIM} with
  818. \begin{itemize}
  819. \item $k_1 = 20$
  820. \item $k_2 = 21$
  821. \item $k_3 = 18$
  822. \item $k_4 = 1$
  823. \item $k_5 = 15$
  824. \item $k_6 = 6$
  825. \end{itemize}
  826. \item \texttt{NETSIM} $\rightarrow$ \texttt{HZLTXS}
  827. \item Is this secure?
  828. \end{itemize}
  829. \end{frame}
  830. \begin{frame}
  831. \frametitle{Example: One-Time Pad}
  832. \begin{itemize}
  833. \item What if we used a separate Caesar cipher for each letter?
  834. \item Let's encrypt the word \texttt{NETSIM} with
  835. \begin{itemize}
  836. \item $k_1 = 20$
  837. \item $k_2 = 21$
  838. \item $k_3 = 18$
  839. \item $k_4 = 1$
  840. \item $k_5 = 15$
  841. \item $k_6 = 6$
  842. \end{itemize}
  843. \item \texttt{NETSIM} $\rightarrow$ \texttt{HZLTXS}
  844. \item Is this secure?
  845. \begin{itemize}
  846. \item \textbf{Only if the key is NEVER reused}
  847. \end{itemize}
  848. \item Is this usable?
  849. \end{itemize}
  850. \end{frame}
  851. \begin{frame}
  852. \frametitle{Key Exchange}
  853. \begin{itemize}
  854. \item We have other (more complicated) cryptography that works if Alice and Bob reuse their key
  855. \begin{itemize}
  856. \item We won't be talking about how it works today
  857. \item Sorry
  858. \end{itemize}
  859. \item How does Alice get the key to Bob?
  860. \item Proposal:
  861. \begin{enumerate}
  862. \item Alice sends the key to Bob
  863. \item Alice and Bob use the key to encrypt future messages
  864. \end{enumerate}
  865. \end{itemize}
  866. \end{frame}
  867. \begin{frame}
  868. \frametitle{Key Exchange Proposal}
  869. \begin{enumerate}
  870. \item Alice sends the key to Bob
  871. \centerline{
  872. \begin{tikzpicture}
  873. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  874. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  875. \draw [-stealth] (alice) -- (bob);
  876. \node [inner sep=0pt] (alice-shares-key) at (0,0) {\pgfuseimage{key}};
  877. % \node [inner sep=0pt] (eve) at (0,1) {\pgfuseimage{eve}};
  878. \end{tikzpicture}
  879. }
  880. \item Alice and Bob use the key to encrypt future messages
  881. \begin{tikzpicture}
  882. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  883. % \node [inner sep=0pt] (alice-lock) at (-3,0) {\pgfuseimage{lock}};
  884. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  885. % \node [inner sep=0pt] (bob-lock) at (3,0) {\pgfuseimage{lock}};
  886. \draw [-stealth] (alice) -- (bob);
  887. \node [inner sep=0pt] (ct) at (0,0) {\pgfuseimage{ciphertext}};
  888. % \node [inner sep=0pt] (eve) at (0,1) {\pgfuseimage{eve}};
  889. \node [inner sep=0pt] (alice-key) at (-6,0) {\pgfuseimage{key}};
  890. \node [inner sep=0pt] (bob-key) at (6,0) {\pgfuseimage{key}};
  891. % \node [inner sep=0pt] (eve-key) at (1.5,1) {\pgfuseimage{key}};
  892. \end{tikzpicture}
  893. \item Why doesn't this work?
  894. \end{enumerate}
  895. \end{frame}
  896. \begin{frame}
  897. \frametitle{Key Exchange Proposal}
  898. \begin{enumerate}
  899. \item Alice sends the key to Bob
  900. \centerline{
  901. \begin{tikzpicture}
  902. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  903. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  904. \draw [-stealth] (alice) -- (bob);
  905. \node [inner sep=0pt] (alice-shares-key) at (0,0) {\pgfuseimage{key}};
  906. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  907. \end{tikzpicture}
  908. }
  909. \item Alice and Bob use the key to encrypt future messages
  910. % \centerline{
  911. \begin{tikzpicture}
  912. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  913. % \node [inner sep=0pt] (alice-lock) at (-3,0) {\pgfuseimage{lock}};
  914. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  915. % \node [inner sep=0pt] (bob-lock) at (3,0) {\pgfuseimage{lock}};
  916. \draw [-stealth] (alice) -- (bob);
  917. \node [inner sep=0pt] (ct) at (0,0) {\pgfuseimage{ciphertext}};
  918. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  919. \node [inner sep=0pt] (alice-key) at (-6,0) {\pgfuseimage{key}};
  920. \node [inner sep=0pt] (bob-key) at (6,0) {\pgfuseimage{key}};
  921. \node [inner sep=0pt] (eve-key) at (1.5,1) {\pgfuseimage{key}};
  922. \end{tikzpicture}
  923. % }
  924. % \item Why doesn't this work?
  925. \end{enumerate}
  926. \end{frame}
  927. \begin{frame}
  928. \frametitle{Public-Key Cryptography}
  929. \begin{itemize}
  930. \item Instead, we have more cryptography!
  931. \item With more keys
  932. \item Alice has...
  933. \begin{itemize}
  934. \item Alice's public key
  935. \item Alice's secret key
  936. \end{itemize}
  937. \item Bob has...
  938. \begin{itemize}
  939. \item Bob's public key
  940. \item Bob's secret key
  941. \end{itemize}
  942. \end{itemize}
  943. \end{frame}
  944. \begin{frame}
  945. \frametitle{Public-Key Cryptography}
  946. \begin{itemize}
  947. \item Instead, we have more cryptography!
  948. \item With more keys
  949. \item Alice has...
  950. \begin{itemize}
  951. \item Alice's public key (for \textbf{encrypting} messages \textbf{for Alice})
  952. \item Alice's secret key (for \textbf{decrypting} messages \textbf{for Alice})
  953. \end{itemize}
  954. \item Bob has...
  955. \begin{itemize}
  956. \item Bob's public key (for \textbf{encrypting} messages \textbf{for Bob})
  957. \item Bob's secret key (for \textbf{decrypting} messages \textbf{for Bob})
  958. \end{itemize}
  959. \end{itemize}
  960. \end{frame}
  961. \begin{frame}
  962. \frametitle{Public-Key Cryptography}
  963. \begin{itemize}
  964. \item Let's see it visually...
  965. \end{itemize}
  966. \centerline{
  967. \begin{tikzpicture}
  968. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  969. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  970. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  971. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  972. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  973. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  974. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  975. \end{tikzpicture}
  976. }
  977. \end{frame}
  978. \begin{frame}
  979. \frametitle{Public-Key Cryptography}
  980. \begin{itemize}
  981. \item Let's see it visually...
  982. \end{itemize}
  983. \centerline{
  984. \begin{tikzpicture}
  985. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  986. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  987. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  988. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  989. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  990. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  991. \draw [-stealth] (alice) -- (bob);
  992. \node [inner sep=0pt] (alice-share-pub) at (0,0) {\pgfuseimage{apub}};
  993. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  994. \end{tikzpicture}
  995. }
  996. \end{frame}
  997. \begin{frame}
  998. \frametitle{Public-Key Cryptography}
  999. \begin{itemize}
  1000. \item Let's see it visually...
  1001. \end{itemize}
  1002. \centerline{
  1003. \begin{tikzpicture}
  1004. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1005. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1006. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1007. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1008. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1009. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1010. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1011. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1012. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1013. \end{tikzpicture}
  1014. }
  1015. \end{frame}
  1016. \begin{frame}
  1017. \frametitle{Public-Key Cryptography}
  1018. \begin{itemize}
  1019. \item Let's see it visually...
  1020. \end{itemize}
  1021. \centerline{
  1022. \begin{tikzpicture}
  1023. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1024. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1025. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1026. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1027. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1028. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1029. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1030. \draw [-stealth] (bob) -- (alice);
  1031. \node [inner sep=0pt] (bob-share-pub) at (0,0) {\pgfuseimage{bpub}};
  1032. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1033. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1034. \end{tikzpicture}
  1035. }
  1036. \end{frame}
  1037. \begin{frame}
  1038. \frametitle{Public-Key Cryptography}
  1039. \begin{itemize}
  1040. \item Let's see it visually...
  1041. \end{itemize}
  1042. \centerline{
  1043. \begin{tikzpicture}
  1044. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1045. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1046. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1047. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1048. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1049. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1050. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1051. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1052. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1053. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1054. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1055. \end{tikzpicture}
  1056. }
  1057. \end{frame}
  1058. \begin{frame}
  1059. \frametitle{Public-Key Cryptography}
  1060. \begin{itemize}
  1061. \item Let's see it visually...
  1062. \end{itemize}
  1063. \centerline{
  1064. \begin{tikzpicture}
  1065. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1066. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1067. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1068. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1069. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1070. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1071. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1072. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1073. \draw [-stealth] (alice) -- (bob);
  1074. \node [inner sep=0pt] (alice-bob-ct) at (0,0) {\pgfuseimage{ciphertext}};
  1075. \node [inner sep=0pt] (alice-bob-ct-bob-key) at (0.95,0.25) {\pgfuseimage{bpub}};
  1076. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1077. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1078. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1079. \end{tikzpicture}
  1080. }
  1081. \end{frame}
  1082. \begin{frame}
  1083. \frametitle{Public-Key Cryptography}
  1084. \begin{itemize}
  1085. \item Let's see it visually...
  1086. \end{itemize}
  1087. \centerline{
  1088. \begin{tikzpicture}
  1089. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1090. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1091. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1092. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1093. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1094. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1095. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1096. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1097. \draw [-stealth] (alice) -- (bob);
  1098. \node [inner sep=0pt] (alice-bob-ct) at (0,0) {\pgfuseimage{ciphertext}};
  1099. \node [inner sep=0pt] (alice-bob-ct-bob-key) at (0.95,0.25) {\pgfuseimage{bpub}};
  1100. \draw [color=red] (0.5,0) ellipse (1.5cm and 1cm);
  1101. \draw [color=red] (bob-pri) ellipse (1cm and 0.5cm);
  1102. \node[text width=4cm] at (5,-1.5) {\footnotesize need this key to decrypt};
  1103. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1104. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1105. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1106. \end{tikzpicture}
  1107. }
  1108. \end{frame}
  1109. \begin{frame}
  1110. \frametitle{Public-Key Cryptography}
  1111. \begin{itemize}
  1112. \item Let's see it visually...
  1113. \end{itemize}
  1114. \centerline{
  1115. \begin{tikzpicture}
  1116. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1117. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1118. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1119. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1120. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1121. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1122. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1123. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1124. \draw [-stealth] (bob) -- (alice);
  1125. \node [inner sep=0pt] (bob-alice-ct) at (0,0) {\pgfuseimage{ciphertext}};
  1126. \node [inner sep=0pt] (bob-alice-ct-alice-key) at (0.95,0.25) {\pgfuseimage{apub}};
  1127. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1128. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1129. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1130. \end{tikzpicture}
  1131. }
  1132. \end{frame}
  1133. \begin{frame}
  1134. \frametitle{Public-Key Cryptography}
  1135. \begin{itemize}
  1136. \item Let's see it visually...
  1137. \end{itemize}
  1138. \centerline{
  1139. \begin{tikzpicture}
  1140. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1141. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1142. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1143. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1144. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1145. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1146. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1147. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1148. \draw [-stealth] (bob) -- (alice);
  1149. \node [inner sep=0pt] (bob-alice-ct) at (0,0) {\pgfuseimage{ciphertext}};
  1150. \node [inner sep=0pt] (bob-alice-ct-alice-key) at (0.95,0.25) {\pgfuseimage{apub}};
  1151. \draw [color=red] (0.5,0) ellipse (1.5cm and 1cm);
  1152. \draw [color=red] (alice-pri) ellipse (1cm and 0.5cm);
  1153. \node[text width=4cm] at (-5,-1.5) {\footnotesize need this key to decrypt};
  1154. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1155. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1156. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1157. \end{tikzpicture}
  1158. }
  1159. \end{frame}
  1160. \begin{frame}
  1161. \frametitle{Public-Key Cryptography Exercise}
  1162. \begin{itemize}
  1163. \item \textbf{Your task: Complete level 6}
  1164. \end{itemize}
  1165. \centerline{
  1166. \begin{tikzpicture}
  1167. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1168. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1169. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1170. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1171. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1172. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1173. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1174. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1175. \draw [-stealth] (alice) -- (bob);
  1176. \node [inner sep=0pt] (alice-bob-ct) at (0,0) {\pgfuseimage{ciphertext}};
  1177. \node [inner sep=0pt] (alice-bob-ct-bob-key) at (0.95,0.25) {\pgfuseimage{bpub}};
  1178. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1179. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1180. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1181. \end{tikzpicture}
  1182. }
  1183. \end{frame}
  1184. \begin{frame}
  1185. \frametitle{Security Goals}
  1186. \begin{itemize}
  1187. \item Confidentiality
  1188. \begin{itemize}
  1189. \item \textbf{Not default, can be accomplished with encryption}
  1190. \end{itemize}
  1191. \item Integrity
  1192. \item Availability
  1193. \item Authentication
  1194. \end{itemize}
  1195. \end{frame}
  1196. \begin{frame}
  1197. \frametitle{No Authentication}
  1198. \begin{itemize}
  1199. \item No check that source is correct
  1200. \end{itemize}
  1201. \vspace{1em}
  1202. \centerline{
  1203. \begin{tikzpicture}
  1204. \node [inner sep=0pt] (mallory) at (-5,0) {\pgfuseimage{mallory}};
  1205. \node (postcard) {\pgfuseimage{postcard}};
  1206. \node at (-2.25,1.5) {\color{\srccolor}\large Alice's PC};
  1207. \node at (3.15,1.7) {\color{\protocolor}\footnotesize ICMP};
  1208. \node at (2.35,0.55) {\color{\dstcolor}\large catpics.com};
  1209. \node[text width=4cm] at (-.5,-.5) {\color{\msgcolor}\large PING};
  1210. \end{tikzpicture}
  1211. }
  1212. \begin{itemize}
  1213. \item \textbf{Your task: Complete levels 7 and 8}
  1214. \end{itemize}
  1215. \end{frame}
  1216. \begin{frame}
  1217. \frametitle{Security Goals}
  1218. \begin{itemize}
  1219. \item Confidentiality
  1220. \begin{itemize}
  1221. \item Not default, can be accomplished with encryption
  1222. \end{itemize}
  1223. \item Integrity
  1224. \item Availability
  1225. \item Authentication
  1226. \begin{itemize}
  1227. \item \textbf{Not default, can be accomplished with cryptography}
  1228. \end{itemize}
  1229. \end{itemize}
  1230. \end{frame}
  1231. \begin{frame}
  1232. \frametitle{Attacking Integrity}
  1233. \begin{itemize}
  1234. \item Who can \textbf{modify} the message?
  1235. \end{itemize}
  1236. \centerline{
  1237. \begin{tikzpicture}
  1238. \theinternet
  1239. \node [inner sep=0pt] (alice) at (-7.65,-1.25) {\pgfuseimage{alice}};
  1240. \draw [draw=red,line width=3pt] (desktop) -- (basestation);
  1241. \draw [draw=red,line width=3pt] (basestation) -- (AS1r1);
  1242. \draw [draw=red,line width=3pt] (AS1r1) -- (AS2r1);
  1243. \draw [draw=red,line width=3pt] (AS2r2) -- (AS2r1);
  1244. \draw [draw=red,line width=3pt] (AS2r2) -- (AS3r2);
  1245. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r2);
  1246. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r5);
  1247. \draw [draw=red,line width=3pt] (AS4r1) -- (AS3r5);
  1248. \draw [draw=red,line width=3pt] (AS4r1) -- (AS4r2);
  1249. \draw [draw=red,line width=3pt] (AS6r1) -- (AS4r2);
  1250. \draw [draw=red,line width=3pt] (AS6r1) -- (server);
  1251. \end{tikzpicture}
  1252. }
  1253. \end{frame}
  1254. \begin{frame}
  1255. \frametitle{Attacking Integrity}
  1256. \begin{itemize}
  1257. \item Who can \textbf{modify} the message?
  1258. \end{itemize}
  1259. \centerline{
  1260. \begin{tikzpicture}
  1261. \filldraw [fill=green!20, draw=black, thick] (-5,4) -- (5,4) -- (3,1) -- (-3,1) -- cycle;
  1262. \filldraw [fill=blue!20, draw=black, thick] (-3,.5) -- (3,.5) -- (3.5,-2) -- (-3.5,-2) -- cycle;
  1263. \filldraw [fill=red!20, draw=black, thick] (-7,4) --(-5.5,4) -- (-3.5,1) -- (-7,1.5);
  1264. \filldraw [fill=purple!20, draw=black, thick] (7,4) --(5.5,4) -- (3.5,1) -- (7,0);
  1265. \filldraw [fill=orange!20, draw=black, thick] (-7,1) -- (-3.5,.5) -- (-4,-2) -- (-7,-2);
  1266. \filldraw [fill=yellow!20, draw=black, thick] (7,-.5) -- (3.5,.5) -- (4,-2) -- (7,-2);
  1267. \node [inner sep=0pt] (mobile) at (-5,-1.25) {\pgfuseimage{mobile}};
  1268. \node [inner sep=0pt] (desktop) at (-6.5,-1.25) {\pgfuseimage{desktop}};
  1269. \node [inner sep=0pt] (basestation) at (-4.25,-.25) {\pgfuseimage{mallory}};
  1270. \node [inner sep=0pt] (AS1r1) at (-6,0.25) {\pgfuseimage{mallory}};
  1271. \draw [draw=black,thick] (desktop) -- (basestation);
  1272. \draw [draw=black,thick] (basestation) -- (AS1r1);
  1273. \node [inner sep=0pt] (AS2r1) at (-6.25,2) {\pgfuseimage{mallory}};
  1274. \node [inner sep=0pt] (AS2r3) at (-6.25,3.5) {\pgfuseimage{router}};
  1275. \node [inner sep=0pt] (AS2r2) at (-4.6,1.6) {\pgfuseimage{mallory}};
  1276. \draw [draw=black,thick] (AS2r1) -- (AS1r1);
  1277. \draw [draw=black,thick] (AS2r2) -- (AS2r1);
  1278. \draw [draw=black,thick] (AS2r2) -- (AS2r3);
  1279. \draw [draw=black,thick] (AS2r1) -- (AS2r3);
  1280. \draw [draw=black,thick] (AS2r1) -- ($(-7,1)!(AS2r1)!(-7,0)$);
  1281. \draw [draw=black,thick] (AS2r3) -- ($(-7,1)!(AS2r3)!(-7,0)$);
  1282. \node [inner sep=0pt] (AS3r1) at (-3.5,3.5) {\pgfuseimage{router}};
  1283. \node [inner sep=0pt] (AS3r2) at (-2.5,1.5) {\pgfuseimage{mallory}};
  1284. \node [inner sep=0pt] (AS3r3) at (-1,2.5) {\pgfuseimage{mallory}};
  1285. \node [inner sep=0pt] (AS3r4) at (2,1.5) {\pgfuseimage{router}};
  1286. \node [inner sep=0pt] (AS3r5) at (3,3) {\pgfuseimage{mallory}};
  1287. \draw [draw=black,thick] (AS2r3) -- (AS3r1);
  1288. \draw [draw=black,thick] (AS2r2) -- (AS3r2);
  1289. \draw [draw=black,thick] (AS3r1) -- (AS3r3);
  1290. \draw [draw=black,thick] (AS3r2) -- (AS3r3);
  1291. \draw [draw=black,thick] (AS3r4) -- (AS3r3);
  1292. \draw [draw=black,thick] (AS3r5) -- (AS3r3);
  1293. \draw [draw=black,thick] (AS3r2) -- (AS3r4);
  1294. \node [inner sep=0pt] (AS4r1) at (6.25,3.5) {\pgfuseimage{mallory}};
  1295. \node [inner sep=0pt] (AS4r2) at (4.75,1.25) {\pgfuseimage{mallory}};
  1296. \node [inner sep=0pt] (AS4basestation) at (6.25,1.2) {\pgfuseimage{basestation}};
  1297. \draw [draw=black,thick] (AS4r1) -- (AS4r2);
  1298. \draw [draw=black,thick] (AS4basestation) -- (AS4r2);
  1299. \draw [draw=black,thick] (AS3r5) -- (AS4r1);
  1300. \node [inner sep=0pt] (AS5r1) at (-2.5,0) {\pgfuseimage{router}};
  1301. \node [inner sep=0pt] (AS5r2) at (2,0) {\pgfuseimage{router}};
  1302. \node [inner sep=0pt] (AS5server) at (-1,-1) {\pgfuseimage{server}};
  1303. \draw [draw=black,thick] (AS2r2) -- (AS5r1);
  1304. \draw [draw=black,thick] (AS3r2) -- (AS5r1);
  1305. \draw [draw=black,thick] (AS3r4) -- (AS5r2);
  1306. \draw [draw=black,thick] (AS5r1) -- (AS5r2);
  1307. \draw [draw=black,thick] (AS5r1) -- (AS5server);
  1308. \node [inner sep=0pt] (AS6r1) at (4.3,-.3) {\pgfuseimage{mallory}};
  1309. % \node [inner sep=0pt] at (6,-1.7) {\pgfuseimage{server}};
  1310. % \node [inner sep=0pt] at (6,-1.45) {\pgfuseimage{server}};
  1311. \node [inner sep=0pt] (server) at (6,-1.2) {\pgfuseimage{server}};
  1312. \draw [draw=black,thick] (AS6r1) -- (AS4r2);
  1313. \draw [draw=black,thick] (AS6r1) -- (server);
  1314. \node [inner sep=0pt] (alice) at (-7.65,-1.25) {\pgfuseimage{alice}};
  1315. \draw [draw=red,line width=3pt] (desktop) -- (basestation);
  1316. \draw [draw=red,line width=3pt] (basestation) -- (AS1r1);
  1317. \draw [draw=red,line width=3pt] (AS1r1) -- (AS2r1);
  1318. \draw [draw=red,line width=3pt] (AS2r2) -- (AS2r1);
  1319. \draw [draw=red,line width=3pt] (AS2r2) -- (AS3r2);
  1320. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r2);
  1321. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r5);
  1322. \draw [draw=red,line width=3pt] (AS4r1) -- (AS3r5);
  1323. \draw [draw=red,line width=3pt] (AS4r1) -- (AS4r2);
  1324. \draw [draw=red,line width=3pt] (AS6r1) -- (AS4r2);
  1325. \draw [draw=red,line width=3pt] (AS6r1) -- (server);
  1326. \end{tikzpicture}
  1327. }
  1328. \end{frame}
  1329. \begin{frame}
  1330. \frametitle{Security Goals}
  1331. \begin{itemize}
  1332. \item Confidentiality
  1333. \begin{itemize}
  1334. \item Not default, can be accomplished with encryption
  1335. \end{itemize}
  1336. \item Integrity
  1337. \begin{itemize}
  1338. \item \textbf{Not default, can be accomplished with cryptography}
  1339. \end{itemize}
  1340. \item Availability
  1341. \item Authentication
  1342. \begin{itemize}
  1343. \item Not default, can be accomplished with cryptography
  1344. \end{itemize}
  1345. \end{itemize}
  1346. \end{frame}
  1347. \begin{frame}
  1348. \frametitle{Attacking Availability}
  1349. \begin{itemize}
  1350. \item Who can \textbf{block} (or drop) the message?
  1351. \end{itemize}
  1352. \centerline{
  1353. \begin{tikzpicture}
  1354. \theinternet
  1355. \node [inner sep=0pt] (alice) at (-7.65,-1.25) {\pgfuseimage{alice}};
  1356. \draw [draw=red,line width=3pt] (desktop) -- (basestation);
  1357. \draw [draw=red,line width=3pt] (basestation) -- (AS1r1);
  1358. \draw [draw=red,line width=3pt] (AS1r1) -- (AS2r1);
  1359. \draw [draw=red,line width=3pt] (AS2r2) -- (AS2r1);
  1360. \draw [draw=red,line width=3pt] (AS2r2) -- (AS3r2);
  1361. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r2);
  1362. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r5);
  1363. \draw [draw=red,line width=3pt] (AS4r1) -- (AS3r5);
  1364. \draw [draw=red,line width=3pt] (AS4r1) -- (AS4r2);
  1365. \draw [draw=red,line width=3pt] (AS6r1) -- (AS4r2);
  1366. \draw [draw=red,line width=3pt] (AS6r1) -- (server);
  1367. \end{tikzpicture}
  1368. }
  1369. \end{frame}
  1370. \begin{frame}
  1371. \frametitle{Attacking Availability}
  1372. \begin{itemize}
  1373. \item Who can \textbf{block} (or drop) the message?
  1374. \end{itemize}
  1375. \centerline{
  1376. \begin{tikzpicture}
  1377. \filldraw [fill=green!20, draw=black, thick] (-5,4) -- (5,4) -- (3,1) -- (-3,1) -- cycle;
  1378. \filldraw [fill=blue!20, draw=black, thick] (-3,.5) -- (3,.5) -- (3.5,-2) -- (-3.5,-2) -- cycle;
  1379. \filldraw [fill=red!20, draw=black, thick] (-7,4) --(-5.5,4) -- (-3.5,1) -- (-7,1.5);
  1380. \filldraw [fill=purple!20, draw=black, thick] (7,4) --(5.5,4) -- (3.5,1) -- (7,0);
  1381. \filldraw [fill=orange!20, draw=black, thick] (-7,1) -- (-3.5,.5) -- (-4,-2) -- (-7,-2);
  1382. \filldraw [fill=yellow!20, draw=black, thick] (7,-.5) -- (3.5,.5) -- (4,-2) -- (7,-2);
  1383. \node [inner sep=0pt] (mobile) at (-5,-1.25) {\pgfuseimage{mobile}};
  1384. \node [inner sep=0pt] (desktop) at (-6.5,-1.25) {\pgfuseimage{desktop}};
  1385. \node [inner sep=0pt] (basestation) at (-4.25,-.25) {\pgfuseimage{mallory}};
  1386. \node [inner sep=0pt] (AS1r1) at (-6,0.25) {\pgfuseimage{mallory}};
  1387. \draw [draw=black,thick] (desktop) -- (basestation);
  1388. \draw [draw=black,thick] (basestation) -- (AS1r1);
  1389. \node [inner sep=0pt] (AS2r1) at (-6.25,2) {\pgfuseimage{mallory}};
  1390. \node [inner sep=0pt] (AS2r3) at (-6.25,3.5) {\pgfuseimage{router}};
  1391. \node [inner sep=0pt] (AS2r2) at (-4.6,1.6) {\pgfuseimage{mallory}};
  1392. \draw [draw=black,thick] (AS2r1) -- (AS1r1);
  1393. \draw [draw=black,thick] (AS2r2) -- (AS2r1);
  1394. \draw [draw=black,thick] (AS2r2) -- (AS2r3);
  1395. \draw [draw=black,thick] (AS2r1) -- (AS2r3);
  1396. \draw [draw=black,thick] (AS2r1) -- ($(-7,1)!(AS2r1)!(-7,0)$);
  1397. \draw [draw=black,thick] (AS2r3) -- ($(-7,1)!(AS2r3)!(-7,0)$);
  1398. \node [inner sep=0pt] (AS3r1) at (-3.5,3.5) {\pgfuseimage{router}};
  1399. \node [inner sep=0pt] (AS3r2) at (-2.5,1.5) {\pgfuseimage{mallory}};
  1400. \node [inner sep=0pt] (AS3r3) at (-1,2.5) {\pgfuseimage{mallory}};
  1401. \node [inner sep=0pt] (AS3r4) at (2,1.5) {\pgfuseimage{router}};
  1402. \node [inner sep=0pt] (AS3r5) at (3,3) {\pgfuseimage{mallory}};
  1403. \draw [draw=black,thick] (AS2r3) -- (AS3r1);
  1404. \draw [draw=black,thick] (AS2r2) -- (AS3r2);
  1405. \draw [draw=black,thick] (AS3r1) -- (AS3r3);
  1406. \draw [draw=black,thick] (AS3r2) -- (AS3r3);
  1407. \draw [draw=black,thick] (AS3r4) -- (AS3r3);
  1408. \draw [draw=black,thick] (AS3r5) -- (AS3r3);
  1409. \draw [draw=black,thick] (AS3r2) -- (AS3r4);
  1410. \node [inner sep=0pt] (AS4r1) at (6.25,3.5) {\pgfuseimage{mallory}};
  1411. \node [inner sep=0pt] (AS4r2) at (4.75,1.25) {\pgfuseimage{mallory}};
  1412. \node [inner sep=0pt] (AS4basestation) at (6.25,1.2) {\pgfuseimage{basestation}};
  1413. \draw [draw=black,thick] (AS4r1) -- (AS4r2);
  1414. \draw [draw=black,thick] (AS4basestation) -- (AS4r2);
  1415. \draw [draw=black,thick] (AS3r5) -- (AS4r1);
  1416. \node [inner sep=0pt] (AS5r1) at (-2.5,0) {\pgfuseimage{router}};
  1417. \node [inner sep=0pt] (AS5r2) at (2,0) {\pgfuseimage{router}};
  1418. \node [inner sep=0pt] (AS5server) at (-1,-1) {\pgfuseimage{server}};
  1419. \draw [draw=black,thick] (AS2r2) -- (AS5r1);
  1420. \draw [draw=black,thick] (AS3r2) -- (AS5r1);
  1421. \draw [draw=black,thick] (AS3r4) -- (AS5r2);
  1422. \draw [draw=black,thick] (AS5r1) -- (AS5r2);
  1423. \draw [draw=black,thick] (AS5r1) -- (AS5server);
  1424. \node [inner sep=0pt] (AS6r1) at (4.3,-.3) {\pgfuseimage{mallory}};
  1425. % \node [inner sep=0pt] at (6,-1.7) {\pgfuseimage{server}};
  1426. % \node [inner sep=0pt] at (6,-1.45) {\pgfuseimage{server}};
  1427. \node [inner sep=0pt] (server) at (6,-1.2) {\pgfuseimage{server}};
  1428. \draw [draw=black,thick] (AS6r1) -- (AS4r2);
  1429. \draw [draw=black,thick] (AS6r1) -- (server);
  1430. \node [inner sep=0pt] (alice) at (-7.65,-1.25) {\pgfuseimage{alice}};
  1431. \draw [draw=red,line width=3pt] (desktop) -- (basestation);
  1432. \draw [draw=red,line width=3pt] (basestation) -- (AS1r1);
  1433. \draw [draw=red,line width=3pt] (AS1r1) -- (AS2r1);
  1434. \draw [draw=red,line width=3pt] (AS2r2) -- (AS2r1);
  1435. \draw [draw=red,line width=3pt] (AS2r2) -- (AS3r2);
  1436. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r2);
  1437. \draw [draw=red,line width=3pt] (AS3r3) -- (AS3r5);
  1438. \draw [draw=red,line width=3pt] (AS4r1) -- (AS3r5);
  1439. \draw [draw=red,line width=3pt] (AS4r1) -- (AS4r2);
  1440. \draw [draw=red,line width=3pt] (AS6r1) -- (AS4r2);
  1441. \draw [draw=red,line width=3pt] (AS6r1) -- (server);
  1442. \end{tikzpicture}
  1443. }
  1444. \end{frame}
  1445. \begin{frame}
  1446. \frametitle{Another Attack on Availability}
  1447. \begin{itemize}
  1448. \item Denial of Service (DoS)
  1449. \end{itemize}
  1450. \centerline{
  1451. \begin{tikzpicture}
  1452. \node [inner sep=0pt] (mallory) at (-5,0) {\pgfuseimage{mallory}};
  1453. \node (postcard) {\pgfuseimage{postcard}};
  1454. \node at (-2.25,1.5) {\color{\srccolor}\large Mallory's PC};
  1455. \node at (3.15,1.7) {\color{\protocolor}\footnotesize ICMP};
  1456. \node at (2.35,0.55) {\color{\dstcolor}\large catpics.com};
  1457. \node[text width=4cm] at (-.5,-.5) {\color{\msgcolor}\large PING};
  1458. \node[text width=2.5cm] at (5.5,-2) {\LARGE x1000};
  1459. \end{tikzpicture}
  1460. }
  1461. \begin{itemize}
  1462. \item \textbf{Your task: Complete levels 9, 10, and 11}
  1463. \end{itemize}
  1464. \end{frame}
  1465. \begin{frame}
  1466. \frametitle{Security Goals}
  1467. \begin{itemize}
  1468. \item Confidentiality
  1469. \begin{itemize}
  1470. \item Not default, can be accomplished with encryption
  1471. \end{itemize}
  1472. \item Integrity
  1473. \begin{itemize}
  1474. \item Not default, can be accomplished with cryptography
  1475. \end{itemize}
  1476. \item Availability
  1477. \begin{itemize}
  1478. \item \textbf{Not default, can be partially accomplished with firewalls}
  1479. \end{itemize}
  1480. \item Authentication
  1481. \begin{itemize}
  1482. \item Not default, can be accomplished with cryptography
  1483. \end{itemize}
  1484. \end{itemize}
  1485. \end{frame}
  1486. \begin{frame}
  1487. \frametitle{Takeaways}
  1488. \begin{itemize}
  1489. \item The Internet was not designed with security in mind
  1490. \item We accomplish \textbf{none} of our security goals by default
  1491. \item We can hack on security sometimes, usually through cryptography
  1492. \end{itemize}
  1493. \end{frame}
  1494. \begin{frame}
  1495. \frametitle{Mallory-in-the-Middle}
  1496. \begin{itemize}
  1497. \item Recall public-key encryption...
  1498. \end{itemize}
  1499. \centerline{
  1500. \begin{tikzpicture}
  1501. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1502. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1503. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1504. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1505. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1506. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1507. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1508. \end{tikzpicture}
  1509. }
  1510. \end{frame}
  1511. \begin{frame}
  1512. \frametitle{Mallory-in-the-Middle}
  1513. \begin{itemize}
  1514. \item Recall public-key encryption...
  1515. \end{itemize}
  1516. \centerline{
  1517. \begin{tikzpicture}
  1518. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1519. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1520. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1521. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1522. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1523. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1524. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1525. \draw [-stealth] (alice) -- (bob);
  1526. \node [inner sep=0pt] (alice-share-pub) at (0,0) {\pgfuseimage{apub}};
  1527. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1528. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1529. \end{tikzpicture}
  1530. }
  1531. \end{frame}
  1532. \begin{frame}
  1533. \frametitle{Mallory-in-the-Middle}
  1534. \begin{itemize}
  1535. \item Recall public-key encryption...
  1536. \end{itemize}
  1537. \centerline{
  1538. \begin{tikzpicture}
  1539. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1540. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1541. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1542. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1543. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1544. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1545. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1546. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1547. \draw [-stealth] (bob) -- (alice);
  1548. \node [inner sep=0pt] (bob-share-pub) at (0,0) {\pgfuseimage{bpub}};
  1549. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1550. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1551. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1552. \end{tikzpicture}
  1553. }
  1554. \end{frame}
  1555. \begin{frame}
  1556. \frametitle{Mallory-in-the-Middle}
  1557. \begin{itemize}
  1558. \item Recall public-key encryption...
  1559. \end{itemize}
  1560. \centerline{
  1561. \begin{tikzpicture}
  1562. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1563. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1564. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1565. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1566. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1567. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1568. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1569. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1570. \draw [-stealth] (alice) -- (bob);
  1571. \node [inner sep=0pt] (alice-bob-ct) at (0,0) {\pgfuseimage{ciphertext}};
  1572. \node [inner sep=0pt] (alice-bob-ct-bob-key) at (0.95,0.25) {\pgfuseimage{bpub}};
  1573. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1574. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1575. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1576. \end{tikzpicture}
  1577. }
  1578. \end{frame}
  1579. \begin{frame}
  1580. \frametitle{Mallory-in-the-Middle}
  1581. \begin{itemize}
  1582. \item Recall public-key encryption...
  1583. \end{itemize}
  1584. \centerline{
  1585. \begin{tikzpicture}
  1586. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1587. \node [inner sep=0pt] (alice-bob-pub) at (-5.5,1.5) {\pgfuseimage{bpub}};
  1588. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1589. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1590. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1591. \node [inner sep=0pt] (bob-alice-pub) at (5.5,1.5) {\pgfuseimage{apub}};
  1592. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1593. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1594. \draw [-stealth] (bob) -- (alice);
  1595. \node [inner sep=0pt] (bob-alice-ct) at (0,0) {\pgfuseimage{ciphertext}};
  1596. \node [inner sep=0pt] (bob-alice-ct-alice-key) at (0.95,0.25) {\pgfuseimage{apub}};
  1597. \node [inner sep=0pt] (eve) at (0,1.5) {\pgfuseimage{eve}};
  1598. \node [inner sep=0pt] (eve-alice-pub) at (-1.5,1.5) {\pgfuseimage{apub}};
  1599. \node [inner sep=0pt] (eve-bob-pub) at (1.5,1.5) {\pgfuseimage{bpub}};
  1600. \end{tikzpicture}
  1601. }
  1602. \end{frame}
  1603. \begin{frame}
  1604. \frametitle{Mallory-in-the-Middle}
  1605. \begin{itemize}
  1606. \item What if our enemy does more than just eavesdrop?
  1607. \end{itemize}
  1608. \centerline{
  1609. \begin{tikzpicture}
  1610. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1611. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1612. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1613. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1614. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1615. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1616. \node [inner sep=0pt] (mallory) at (0,0) {\pgfuseimage{mallory}};
  1617. \node [inner sep=0pt] (mallory-pri) at (-0.75,1) {\pgfuseimage{mpri}};
  1618. \node [inner sep=0pt] (mallory-pub) at (0.75,1) {\pgfuseimage{mpub}};
  1619. \end{tikzpicture}
  1620. }
  1621. \end{frame}
  1622. \begin{frame}
  1623. \frametitle{Mallory-in-the-Middle}
  1624. \begin{itemize}
  1625. \item What if our enemy does more than just eavesdrop?
  1626. \end{itemize}
  1627. \centerline{
  1628. \begin{tikzpicture}
  1629. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1630. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1631. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1632. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1633. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1634. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1635. \node [inner sep=0pt] (mallory) at (0,0) {\pgfuseimage{mallory}};
  1636. \node [inner sep=0pt] (mallory-pri) at (-0.75,1) {\pgfuseimage{mpri}};
  1637. \node [inner sep=0pt] (mallory-pub) at (0.75,1) {\pgfuseimage{mpub}};
  1638. \draw [-stealth] (alice) -- (mallory);
  1639. \node [inner sep=0pt] (alice-share-pub) at (-2,0) {\pgfuseimage{apub}};
  1640. \node [inner sep=0pt] (mallory-alice-pub) at (-0.75,2) {\pgfuseimage{apub}};
  1641. \end{tikzpicture}
  1642. }
  1643. \end{frame}
  1644. \begin{frame}
  1645. \frametitle{Mallory-in-the-Middle}
  1646. \begin{itemize}
  1647. \item What if our enemy does more than just eavesdrop?
  1648. \end{itemize}
  1649. \centerline{
  1650. \begin{tikzpicture}
  1651. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1652. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1653. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1654. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1655. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1656. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1657. \node [inner sep=0pt] (mallory) at (0,0) {\pgfuseimage{mallory}};
  1658. \node [inner sep=0pt] (mallory-pri) at (-0.75,1) {\pgfuseimage{mpri}};
  1659. \node [inner sep=0pt] (mallory-pub) at (0.75,1) {\pgfuseimage{mpub}};
  1660. \draw [-stealth] (alice) -- (mallory);
  1661. \node [inner sep=0pt] (alice-share-pub) at (-2,0) {\pgfuseimage{apub}};
  1662. \node [inner sep=0pt] (mallory-alice-pub) at (-0.75,2) {\pgfuseimage{apub}};
  1663. \draw [-stealth] (mallory) -- (bob);
  1664. \node [inner sep=0pt] (mallory-share-pub) at (2,0) {\pgfuseimage{mpub}};
  1665. \node [text width=4cm] at (2.75,-1) {``from Alice"};
  1666. \node [inner sep=0pt] (bob-mallory-pub) at (5.5,1.5) {\pgfuseimage{mpub}};
  1667. \end{tikzpicture}
  1668. }
  1669. \end{frame}
  1670. \begin{frame}
  1671. \frametitle{Mallory-in-the-Middle}
  1672. \begin{itemize}
  1673. \item What if our enemy does more than just eavesdrop?
  1674. \end{itemize}
  1675. \centerline{
  1676. \begin{tikzpicture}
  1677. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1678. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1679. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1680. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1681. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1682. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1683. \node [inner sep=0pt] (mallory) at (0,0) {\pgfuseimage{mallory}};
  1684. \node [inner sep=0pt] (mallory-pri) at (-0.75,1) {\pgfuseimage{mpri}};
  1685. \node [inner sep=0pt] (mallory-pub) at (0.75,1) {\pgfuseimage{mpub}};
  1686. \draw [-stealth] (bob) -- (mallory);
  1687. \node [inner sep=0pt] (bob-share-pub) at (2,0) {\pgfuseimage{bpub}};
  1688. \node [inner sep=0pt] (mallory-alice-pub) at (-0.75,2) {\pgfuseimage{apub}};
  1689. \node [inner sep=0pt] (mallory-bob-pub) at (0.75,2) {\pgfuseimage{bpub}};
  1690. \draw [-stealth] (mallory) -- (alice);
  1691. \node [inner sep=0pt] (mallory-share-pub) at (-2,0) {\pgfuseimage{mpub}};
  1692. \node [text width=4cm] at (-1.25,-1) {``from Bob"};
  1693. \node [inner sep=0pt] (bob-mallory-pub) at (5.5,1.5) {\pgfuseimage{mpub}};
  1694. \node [inner sep=0pt] (alice-mallory-pub) at (-5.5,1.5) {\pgfuseimage{mpub}};
  1695. \end{tikzpicture}
  1696. }
  1697. \end{frame}
  1698. \begin{frame}
  1699. \frametitle{Mallory-in-the-Middle}
  1700. \begin{itemize}
  1701. \item What if our enemy does more than just eavesdrop?
  1702. \end{itemize}
  1703. \centerline{
  1704. \begin{tikzpicture}
  1705. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1706. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1707. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1708. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1709. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1710. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1711. \node [inner sep=0pt] (mallory) at (0,0) {\pgfuseimage{mallory}};
  1712. \node [inner sep=0pt] (mallory-pri) at (-0.75,1) {\pgfuseimage{mpri}};
  1713. \node [inner sep=0pt] (mallory-pub) at (0.75,1) {\pgfuseimage{mpub}};
  1714. \draw [-stealth] (alice) -- (mallory);
  1715. \node [inner sep=0pt] (alice-mallory-ct) at (-2.5,0) {\pgfuseimage{ciphertext}};
  1716. \node [inner sep=0pt] (alice-mallory-ct-mallory-key) at (-1.55,0.25) {\pgfuseimage{mpub}};
  1717. \node [inner sep=0pt] (mallory-alice-pub) at (-0.75,2) {\pgfuseimage{apub}};
  1718. \node [inner sep=0pt] (mallory-bob-pub) at (0.75,2) {\pgfuseimage{bpub}};
  1719. \node [inner sep=0pt] (bob-mallory-pub) at (5.5,1.5) {\pgfuseimage{mpub}};
  1720. \node [inner sep=0pt] (alice-mallory-pub) at (-5.5,1.5) {\pgfuseimage{mpub}};
  1721. \draw [-stealth] (mallory) -- (bob);
  1722. \node [inner sep=0pt] (mallory-bob-ct) at (1.5,0) {\pgfuseimage{ciphertext}};
  1723. \node [inner sep=0pt] (mallory-bob-ct-mallory-key) at (2.45,0.25) {\pgfuseimage{bpub}};
  1724. \end{tikzpicture}
  1725. }
  1726. \end{frame}
  1727. \begin{frame}
  1728. \frametitle{Mallory-in-the-Middle}
  1729. \begin{itemize}
  1730. \item What if our enemy does more than just eavesdrop?
  1731. \end{itemize}
  1732. \centerline{
  1733. \begin{tikzpicture}
  1734. \node [inner sep=0pt] (alice) at (-4,0) {\pgfuseimage{alice}};
  1735. \node [inner sep=0pt] (alice-pub) at (-5.5,0.5) {\pgfuseimage{apub}};
  1736. \node [inner sep=0pt] (alice-pri) at (-5.5,-0.5) {\pgfuseimage{apri}};
  1737. \node [inner sep=0pt] (bob) at (4,0) {\pgfuseimage{bob}};
  1738. \node [inner sep=0pt] (bob-pub) at (5.5,0.5) {\pgfuseimage{bpub}};
  1739. \node [inner sep=0pt] (bob-pri) at (5.5,-0.5) {\pgfuseimage{bpri}};
  1740. \node [inner sep=0pt] (mallory) at (0,0) {\pgfuseimage{mallory}};
  1741. \node [inner sep=0pt] (mallory-pri) at (-0.75,1) {\pgfuseimage{mpri}};
  1742. \node [inner sep=0pt] (mallory-pub) at (0.75,1) {\pgfuseimage{mpub}};
  1743. \draw [-stealth] (alice) -- (mallory);
  1744. \node [inner sep=0pt] (alice-mallory-ct) at (-2.5,0) {\pgfuseimage{ciphertext}};
  1745. \node [inner sep=0pt] (alice-mallory-ct-mallory-key) at (-1.55,0.25) {\pgfuseimage{mpub}};
  1746. \node [inner sep=0pt] (mallory-alice-pub) at (-0.75,2) {\pgfuseimage{apub}};
  1747. \node [inner sep=0pt] (mallory-bob-pub) at (0.75,2) {\pgfuseimage{bpub}};
  1748. \node [inner sep=0pt] (bob-mallory-pub) at (5.5,1.5) {\pgfuseimage{mpub}};
  1749. \node [inner sep=0pt] (alice-mallory-pub) at (-5.5,1.5) {\pgfuseimage{mpub}};
  1750. \draw [-stealth] (mallory) -- (bob);
  1751. \node [inner sep=0pt] (mallory-bob-ct) at (1.5,0) {\pgfuseimage{ciphertext}};
  1752. \node [inner sep=0pt] (mallory-bob-ct-mallory-key) at (2.45,0.25) {\pgfuseimage{bpub}};
  1753. \end{tikzpicture}
  1754. }
  1755. \begin{itemize}
  1756. \item \textbf{Your task: Complete level 12}
  1757. \end{itemize}
  1758. \end{frame}
  1759. \begin{frame}
  1760. \frametitle{Wrapping Up Cryptography}
  1761. \begin{itemize}
  1762. \item Cryptography lets us do more than just hide things
  1763. \begin{itemize}
  1764. \item We can ensure integrity of data (has it changed?)
  1765. \item We can ensure authenticity of data (who wrote it?)
  1766. \end{itemize}
  1767. \item We won't talk about it more than that right now
  1768. \item But it's very cool!
  1769. \end{itemize}
  1770. \end{frame}
  1771. \begin{frame}
  1772. \frametitle{Goals}
  1773. \begin{itemize}
  1774. \item \sout{\textit{\textbf{Define}} the foundations of computer networks}
  1775. \item \sout{\textit{\textbf{Define}} security goals}
  1776. \item \sout{\textit{\textbf{Explore}} whether these security goals are accomplished on the Internet}
  1777. \item \sout{\textit{\textbf{Execute}} attacks against a (simulated) network}
  1778. \item \textit{\textbf{Identify}} real-world implications and defenses
  1779. \end{itemize}
  1780. \end{frame}
  1781. \begin{frame}
  1782. \frametitle{Real-World Implications}
  1783. \begin{itemize}
  1784. \item These simulated attacks have real-world implications
  1785. \begin{itemize}
  1786. \item The Internet was not designed with security in mind
  1787. \item Security had to be hacked on later
  1788. \item Many parts of the Internet are still insecure by default
  1789. \item Considering security during design can help you later
  1790. \end{itemize}
  1791. \end{itemize}
  1792. \end{frame}
  1793. \begin{frame}
  1794. \frametitle{Real-World Implications}
  1795. \begin{itemize}
  1796. \item But things are getting better!
  1797. \begin{itemize}
  1798. \item Most web traffic is encrypted now with HTTPS
  1799. \begin{itemize}
  1800. \item (and integrity and authentication are guaranteed)
  1801. \end{itemize}
  1802. \item More instant messengers are using encryption
  1803. \end{itemize}
  1804. \item There's still room for improvement
  1805. \begin{itemize}
  1806. \item Protecting metadata:
  1807. \begin{itemize}
  1808. \item Which sites you visit
  1809. \item Which people you talk to
  1810. \end{itemize}
  1811. \item Censorship
  1812. \end{itemize}
  1813. \end{itemize}
  1814. \end{frame}
  1815. \begin{frame}
  1816. \frametitle{Real-World Things You Can Do}
  1817. \begin{itemize}
  1818. \item Encrypt your web traffic
  1819. \begin{itemize}
  1820. \item You can set your web browser settings to use HTTPS everywhere\footnote{\url{https://www.eff.org/deeplinks/2021/09/https-actually-everywhere}}
  1821. \end{itemize}
  1822. \item Encrypt your private messages
  1823. \begin{itemize}
  1824. \item Signal\footnote{\url{https://signal.org/}} is easy to use and offers strong encryption
  1825. \end{itemize}
  1826. \end{itemize}
  1827. \end{frame}
  1828. \begin{frame}
  1829. \frametitle{Real-World Things You Can Do}
  1830. \begin{itemize}
  1831. \item Hide which sites you visit and circumvent censorship
  1832. \begin{itemize}
  1833. \item Tor\footnote{\url{https://torproject.org/}} is better for privacy and anonymity for VPNs
  1834. \item Run the Snowflake\footnote{\url{https://snowflake.torproject.org/}} browser extension to help other people use Tor
  1835. \end{itemize}
  1836. \item Study cryptography, security, and/or privacy and help fix things
  1837. \begin{itemize}
  1838. \item Check out CrySP\footnote{\url{https://crysp.org/}} for the work we do here at UW
  1839. \end{itemize}
  1840. \end{itemize}
  1841. \end{frame}
  1842. \begin{frame}
  1843. \frametitle{Goals}
  1844. \begin{itemize}
  1845. \item \sout{\textit{\textbf{Define}} the foundations of computer networks}
  1846. \item \sout{\textit{\textbf{Define}} security goals}
  1847. \item \sout{\textit{\textbf{Explore}} whether these security goals are accomplished on the Internet}
  1848. \item \sout{\textit{\textbf{Execute}} attacks against a (simulated) network}
  1849. \item \sout{\textit{\textbf{Identify}} real-world implications and defenses}
  1850. \end{itemize}
  1851. \end{frame}
  1852. \begin{frame}
  1853. \frametitle{Closing}
  1854. \begin{itemize}
  1855. \item Congratulations! You have learned some things about networking, the insecurity of the Internet, and hacking
  1856. \item General advice:
  1857. \begin{itemize}
  1858. \item Privacy matters
  1859. \item Don't trust corporations
  1860. \item Please work on making the world better, not worse
  1861. \end{itemize}
  1862. % \item Hacking is about understanding how things work and accomplishing goals in unconventional ways
  1863. % \item By studying cryptography, security, and/or privacy, you can help make things better
  1864. \item This talk is available at \footnotesize \url{https://vvecna.cs.uwaterloo.ca/2024-uw-sparcs-netsim.pdf}
  1865. \end{itemize}
  1866. \end{frame}
  1867. \end{document}