\begin{frame}{Toward Anonymous Communications} \tikzsetnextfilename{anonintro2} \begin{tikzpicture}[scale=1] \node (cp1) at (0,0) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below = 0cm of cp1] (cp1t) {Alice}; \node (np1) at (2.4,0) {\includegraphics[scale=1]{img/network-provider.pdf}}; \node[below = 0.1cm of np1, text width = 2cm,align=center] (cp1t) {Network Provider}; \draw[<->, solid, black, line width=1mm] (cp1) edge (np1); %\only<1> { % \node (sp) at (4.75,0) {\includegraphics[scale=1]{img/service-provider.pdf}}; % \node[above=-1.2cm of sp] (ssp) {\includegraphics[scale=0.10]{img/eye.pdf}}; % \node[below = 0.1cm of sp, text width = 2cm,align=center] (spt) {Service Provider}; % \draw[<->, solid, black, line width=1mm] (np1) edge (sp); % \draw[<->, solid, black, line width=1mm] (sp) edge (np2); %} %\only<1,2> { % \node[above=-1.2cm of np1] (ssp1) {\includegraphics[scale=0.10]{img/eye.pdf}}; % %\node[above=-1.2cm of np2] (ssp2) {\includegraphics[scale=0.10]{img/eye.pdf}}; % \node (np2) at (7.1,0) {\includegraphics[scale=1]{img/network-provider.pdf}}; % \node[below = 0.1cm of np2, text width = 2cm,align=center] (spt) {Network Provider}; % \node (cp2) at (9.5,0) {\includegraphics[scale=0.26]{img/computer.pdf}}; % \node[below = 0cm of cp2] (cp2t) {Bob}; % \draw[<->, solid, black, line width=1mm] (np2) edge (cp2); % \node[above=-1.2cm of np2] (ssp2) {\includegraphics[scale=0.10]{img/eye.pdf}}; %} %\only<2> { % \draw[<->, solid, black, line width=1mm] (np1) edge (np2); %} %\only<3> { \node (anet) at (4.75,0) {\includegraphics[scale=1]{img/anet.pdf}}; \draw[<->, solid, black, line width=1mm] (np1) edge (anet); \node[below = 0cm of anet, text width = 2cm,align=center] (anett) {Anonymization\\Network}; \node (qs) at (9.5,0) {\includegraphics[scale=1.3]{img/question.pdf}}; \draw[<->, solid, black, line width=1mm] (anet) edge (qs); \node[below = 0cm of qs, text width = 2cm,align=center] (qst) {Unknown\\Destination}; \node[above=-1.4cm of np1] (cloud1) {\includegraphics[scale=0.8]{img/cloud.pdf}}; %} \end{tikzpicture} \begin{center} %\only<1> { % \Large All Providers eavesdrop\\on communications %} %\only<2> { % \Large Network Providers can still eavesdrop\\on direct communications %} %\only<3> { \emph{"[A] system to hide who a participant communicates with [...] in spite of an \underline{unsecured telecommunication system}"}~\footnotemark[4] \footnotetext[4]{\fullcite{chaum1981untraceable}} %} \end{center} \end{frame} \begin{frame}[t]{Preliminary Definitions} \tikzsetnextfilename{onsch} \begin{tikzpicture}[scale=1] \node (anet) {\includegraphics[scale=2]{img/anet.pdf}}; \node[right = 0cm of anet,text width=9cm,align=left] (anett) {\Large \underline{Onion Routing} is a type of\\anonymization network \\ \normalsize It favors \underline{performances}\\over \underline{resistance} to global attackers}; \node[below=0cm of anet] (reli) {\includegraphics[scale=2]{img/arelay.pdf}}; \node[right = 0cm of reli, text width=9cm] (relit) {\Large \underline{Relays} constitutes the network \\ \normalsize Relays are \underline{generic} servers executing a \underline{daemon}. They are often run by \underline{volunteers}.}; \node[below = 0cm of reli] (tor) {\includegraphics[scale=0.3]{img/tor.pdf}}; \node[right = 0cm of tor,text width=9cm,align=left] (tort) {\Large \underline{Tor} is an onion routing software \\ \normalsize Tor counts \underline{6k relays} to serve \underline{2M+ users}\\(values are approximations)}; \end{tikzpicture} \end{frame} \begin{frame}[t]{Circuits: Transporting Data in the Network} \tikzsetnextfilename{circuits} \begin{tikzpicture}[scale=1] \node (arel1) at (3.3,3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel3) at (3.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel4) at (3,7.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel5) at (5.3,3.3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel6) at (4.9,4.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel8) at (5,6.8) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel10) at (7.6,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel11) at (6.8,5.5) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel12) at (7.3,7.0) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel2) at (3.1,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel7) at (5.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel9) at (7.1,2.9) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of alice] (alicet) {Alice}; \node (q) at (10,5) {\includegraphics[scale=1]{img/question.pdf}}; \node[below=0cm of q] (qt) {Destination}; \node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of q] (j4) {}; \only<1> { \node[circle,fill=red,minimum size=1mm] (j1) at (3.1,4.2) {}; \node[circle,fill=red,minimum size=1mm] (j2) at (5.8,5.6) {}; \node[circle,fill=red,minimum size=1mm] (j3) at (7.1,2.9) {}; \draw[-, solid, red, line width=1mm] (j0) edge (j1); \draw[-, solid, red, line width=1mm] (j1) edge (j2); \draw[-, solid, red, line width=1mm] (j2) edge (j3); \draw[-, dashed, black, line width=1mm] (j3) edge (j4); \node (circd) at (5.5,1.7) {\Large Data is carried through \textcolor{red}{\underline{Circuits}}}; \node[below=0cm of circd, text width=10cm,align=center] (circdd) {Circuits are \underline{3-relay-long} over Tor\\Relays are chosen by \underline{Alice}: this is Alice's circuit}; } \only<2> { \node[circle,fill=blue,minimum size=1mm] (j1) at (3.1,4.2) {}; \node[circle,fill=green,minimum size=1mm] (j2) at (5.8,5.6) {}; \node[circle,fill=magenta,minimum size=1mm] (j3) at (7.1,2.9) {}; \draw[-, solid, red] (j0) edge (j1); \draw[-, solid, red] (j1) edge (j2); \draw[-, solid, red] (j2) edge (j3); \draw[-, dashed, black] (j3) edge (j4); \draw[->, solid, blue,line width=1mm] (j1) edge[bend right] (j0); \draw[->, solid, blue,line width=1mm] (j1) edge[bend left] (j2); \draw[->, solid, green,line width=1mm] (j2) edge[bend left] (j1); \draw[->, solid, green,line width=1mm] (j2) edge[bend right] (j3); \draw[->, solid, magenta,line width=1mm] (j3) edge[bend right] (j2); \draw[->, solid, magenta,line width=1mm] (j3) edge[bend left] (j4); \node[text width=10cm,align=center] (circd) at (5.5,1.3) {\Large Relays know only their \underline{neighbors} \\ \normalsize \textcolor{blue}{Relay} \tikz\node[circle,fill=blue,minimum size=1mm] (j1) at (0,0) {}; knows Alice but not the destination \\ \textcolor{magenta}{Relay} \tikz\node[circle,fill=magenta,minimum size=1mm] (j1) at (0,0) {}; knows the destination but not Alice }; } \end{tikzpicture} \end{frame} \begin{frame}[t]{Exit Mode} \tikzsetnextfilename{exitmode} \begin{tikzpicture}[scale=1] \node (arel1) at (3.3,3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel3) at (3.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel4) at (3,7.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel5) at (5.3,3.3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel6) at (4.9,4.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel8) at (5,6.8) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel10) at (7.6,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel11) at (6.8,5.5) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel12) at (7.3,7.0) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel2) at (3.1,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel7) at (5.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel9) at (7.1,2.9) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of alice] (alicet) {Alice}; \node (wiki) at (10,5) {\includegraphics[scale=1]{img/service-provider.pdf}}; \node[below = 0.1cm of wiki, text width = 2cm,align=center] (spt) {Service Provider}; \node[circle,fill=red,minimum size=1mm] (j1) at (3.1,4.2) {}; \node[circle,fill=red,minimum size=1mm] (j2) at (5.8,5.6) {}; \node[circle,fill=red,minimum size=1mm] (j3) at (7.1,2.9) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of wiki] (j4) {}; \only<1> { \node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node (circd) at (5.5,1.7) {\Large Alice connects \underline{directly} her circuit to her target}; \node[below=0cm of circd, text width=10cm,align=center] (circdd) {This is Tor's default mode, we name it \underline{Exit Mode}}; \draw[-, solid, red, line width=1mm] (j0) edge (j1); \draw[-, solid, red, line width=1mm] (j1) edge (j2); \draw[-, solid, red, line width=1mm] (j2) edge (j3); \draw[-, solid, black, line width=1mm] (j3) edge (j4); } \only<2> { \node[circle,fill=blue,minimum size=1mm,right=0cm of alice] (j0) {}; \draw[-, solid, red] (j0) edge (j1); \draw[-, solid, red] (j1) edge (j2); \draw[-, solid, red] (j2) edge (j3); \draw[-, solid, black] (j3) edge (j4); \draw[->, solid, blue, line width=1mm] (j0) edge[bend left=60] (j4); \draw[->, solid, blue, line width=1mm] (j0) edge[bend right] (j1); \draw[->, solid, blue, line width=1mm] (j0) edge[bend left] (j2); \draw[->, solid, blue, line width=1mm] (j0) edge[bend right=60] (j3); \node (circd) at (5.5,1.7) {\Large Alice knows all the relays and her target}; \node[below=0cm of circd, text width=10cm,align=center] (circdd) { Only Alice is anonymous: \underline{1-way anonymity}}; } \end{tikzpicture} \end{frame} \begin{frame}[t]{Onion Service Mode} \tikzsetnextfilename{osmode} \begin{tikzpicture}[scale=1] \node (arel1) at (3.3,3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel3) at (3.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel4) at (3,7.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel5) at (5.3,3.3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel6) at (4.9,4.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel8) at (5,6.8) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel10) at (7.6,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel11) at (6.8,5.5) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel12) at (7.3,7.0) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel2) at (3.1,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel7) at (5.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel9) at (7.1,2.9) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of alice] (alicet) {Alice}; \node (bob) at (10,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of bob] (bobt) {Bob}; \node[below=0cm of arel5] (rdv) {RDV}; \node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=red,minimum size=1mm] (j1) at (3.1,4.2) {}; \node[circle,fill=red,minimum size=1mm] (j2) at (5.8,5.6) {}; \node[circle,fill=red,minimum size=1mm] (j3) at (7.1,2.9) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of bob] (j4) {}; \node[circle,fill=orange,minimum size=1mm] (j5) at (7.3,7.0) {}; \node[circle,fill=orange,minimum size=1mm] (j6) at (3,7.2) {}; \node[circle,fill=orange,minimum size=1mm] (j7) at (5.3,3.3) {}; \draw[-, solid, red, line width=1mm] (j0) edge (j1); \draw[-, solid, red, line width=1mm] (j1) edge (j2); \draw[-, solid, red, line width=1mm] (j2) edge (j3); \draw[-, solid, red, line width=1mm] (j3) edge (j7); \draw[-, solid, orange, line width=1mm] (j7) edge (j6); \draw[-, solid, orange, line width=1mm] (j6) edge (j5); \draw[-, solid, orange, line width=1mm] (j5) edge (j4); \node (circd) at (5.5,1.7) {\Large Alice connects her circuit to Bob's one}; \node[below=0cm of circd, text width=10cm,align=center] (circdd) {This feature is named \underline{Onion Service Mode} \\ Both Alice and Bob are anonymous: \underline{2-way anonymity}}; \end{tikzpicture} \end{frame} \begin{frame}[t]{Sending Cells over Circuits} \tikzsetnextfilename{cells} \begin{tikzpicture}[scale=1] \only<1> { \node (arel1) at (3.3,3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel3) at (3.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel4) at (3,7.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel5) at (5.3,3.3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel6) at (4.9,4.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel8) at (5,6.8) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel10) at (7.6,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel11) at (6.8,5.5) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel12) at (7.3,7.0) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel2) at (3.1,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel7) at (5.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel9) at (7.1,2.9) {\includegraphics[scale=1]{img/arelay.pdf}}; } \node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of alice] (alicet) {Alice}; \node (wiki) at (10,5) {\includegraphics[scale=1]{img/service-provider.pdf}}; \node[below = 0.1cm of wiki, text width = 2cm,align=center] (spt) {Service Provider}; \node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of wiki] (j4) {}; \node[circle,fill=red,minimum size=1mm] (j1) at (3.1,4.2) {}; \node[circle,fill=red,minimum size=1mm] (j2) at (5.8,5.6) {}; \node[circle,fill=red,minimum size=1mm] (j3) at (7.1,2.9) {}; \draw[-, solid, red, line width=1mm] (j0) edge (j1); \draw[-, solid, red, line width=1mm] (j1) edge (j2); \draw[-, solid, red, line width=1mm] (j2) edge (j3); \draw[-, solid, black, line width=1mm] (j3) edge (j4); \only<2-17> { \node (kr) at (0.5,6.2) {\includegraphics[scale=0.03]{img/key-red.pdf} $K_{1,2,3}$}; \node (kr2) at (3.1,3.5) {\includegraphics[scale=0.03]{img/key-red.pdf} $K_1$}; \node (kg2) at (5.8,6.1) {\includegraphics[scale=0.03]{img/key-red.pdf} $K_2$}; \node (kb2) at (7.1,2.2) {\includegraphics[scale=0.03]{img/key-red.pdf} $K_3$}; } \only<2-5> { \node (doc) at (1.2,0) {\includegraphics[scale=1]{img/document.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm,right=0cm of alice] (j0) {}; } \only<3-5> { \draw[color=black!30!blue] let \p1 = (doc.north east) in (doc.south west) rectangle ($(\x1,\y1) + (0.3,0)$); \path let \p1 = (doc.north east) in node (kb3) at ($(\x1,0) + (0.2,0)$) {\includegraphics[scale=0.03]{img/key-blue.pdf}}; } \only<4-5> { \draw[color=black!30!green] let \p1 = (doc.north east), \p2 = (doc.south west) in ($(\x2,\y2) - (0.2,0.2)$) rectangle ($(\x1,\y1) + (1,0.2)$); \path let \p1 = (doc.north east) in node (kg3) at ($(\x1,0) + (1,0)$) {\includegraphics[scale=0.03]{img/key-green.pdf}}; } \only<5> { \draw[color=black!30!red] let \p1 = (doc.north east), \p2 = (doc.south west) in ($(\x2,\y2) - (0.4,0.4)$) rectangle ($(\x1,\y1) + (1.8,0.4)$); \path let \p1 = (doc.north east) in node (kr3) at ($(\x1,0) + (1.8,0)$) {\includegraphics[scale=0.03]{img/key-red.pdf}}; } \only<6> { \node (doc) at (3.1,0) {\includegraphics[scale=1]{img/document.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm] (j1) at (3.1,4.2) {}; \draw[color=black!30!blue] let \p1 = (doc.north east) in (doc.south west) rectangle ($(\x1,\y1) + (0.3,0)$); \path let \p1 = (doc.north east) in node (kb3) at ($(\x1,0) + (0.2,0)$) {\includegraphics[scale=0.03]{img/key-blue.pdf}}; \draw[color=black!30!green] let \p1 = (doc.north east), \p2 = (doc.south west) in ($(\x2,\y2) - (0.2,0.2)$) rectangle ($(\x1,\y1) + (1,0.2)$); \path let \p1 = (doc.north east) in node (kg3) at ($(\x1,0) + (1,0)$) {\includegraphics[scale=0.03]{img/key-green.pdf}}; } \only<7> { \node (doc) at (5.8,0) {\includegraphics[scale=1]{img/document.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm] (j2) at (5.8,5.6) {}; \draw[color=black!30!blue] let \p1 = (doc.north east) in (doc.south west) rectangle ($(\x1,\y1) + (0.3,0)$); \path let \p1 = (doc.north east) in node (kb3) at ($(\x1,0) + (0.2,0)$) {\includegraphics[scale=0.03]{img/key-blue.pdf}}; } \only<8> { \node (doc) at (7.1,0) {\includegraphics[scale=1]{img/document.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm] (j3) at (7.1,2.9) {}; } \only<9> { \node (doc) at (10,0) {\includegraphics[scale=1]{img/document.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm,left=0cm of wiki] (j4) {}; } \only<10> { \node (doc) at (10,0) {\includegraphics[scale=1]{img/ok.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm,left=0cm of wiki] (j4) {}; } \only<11> { \node (doc) at (7.1,0) {\includegraphics[scale=1]{img/ok.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm] (j3) at (7.1,2.9) {}; \draw[color=black!30!blue] let \p1 = (doc.north east) in (doc.south west) rectangle ($(\x1,\y1) + (0.3,0)$); \path let \p1 = (doc.north east) in node (kb3) at ($(\x1,0) + (0.2,0)$) {\includegraphics[scale=0.03]{img/key-blue.pdf}}; } \only<12> { \node (doc) at (5.8,0) {\includegraphics[scale=1]{img/ok.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm] (j2) at (5.8,5.6) {}; \draw[color=black!30!blue] let \p1 = (doc.north east) in (doc.south west) rectangle ($(\x1,\y1) + (0.3,0)$); \path let \p1 = (doc.north east) in node (kb3) at ($(\x1,0) + (0.2,0)$) {\includegraphics[scale=0.03]{img/key-blue.pdf}}; \draw[color=black!30!green] let \p1 = (doc.north east), \p2 = (doc.south west) in ($(\x2,\y2) - (0.2,0.2)$) rectangle ($(\x1,\y1) + (1,0.2)$); \path let \p1 = (doc.north east) in node (kg3) at ($(\x1,0) + (1,0)$) {\includegraphics[scale=0.03]{img/key-green.pdf}}; } \only<13> { \node (doc) at (3.1,0) {\includegraphics[scale=1]{img/ok.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm] (j1) at (3.1,4.2) {}; \draw[color=black!30!blue] let \p1 = (doc.north east) in (doc.south west) rectangle ($(\x1,\y1) + (0.3,0)$); \path let \p1 = (doc.north east) in node (kb3) at ($(\x1,0) + (0.2,0)$) {\includegraphics[scale=0.03]{img/key-blue.pdf}}; \draw[color=black!30!green] let \p1 = (doc.north east), \p2 = (doc.south west) in ($(\x2,\y2) - (0.2,0.2)$) rectangle ($(\x1,\y1) + (1,0.2)$); \path let \p1 = (doc.north east) in node (kg3) at ($(\x1,0) + (1,0)$) {\includegraphics[scale=0.03]{img/key-green.pdf}}; \draw[color=black!30!red] let \p1 = (doc.north east), \p2 = (doc.south west) in ($(\x2,\y2) - (0.4,0.4)$) rectangle ($(\x1,\y1) + (1.8,0.4)$); \path let \p1 = (doc.north east) in node (kr3) at ($(\x1,0) + (1.8,0)$) {\includegraphics[scale=0.03]{img/key-red.pdf}}; } \only<14-17> { \node (doc) at (1.2,0) {\includegraphics[scale=1]{img/ok.pdf}}; \node[circle,fill=cyan,minimum size=1.2mm,right=0cm of alice] (j0) {}; } \only<14-16> { \draw[color=black!30!blue] let \p1 = (doc.north east) in (doc.south west) rectangle ($(\x1,\y1) + (0.3,0)$); \path let \p1 = (doc.north east) in node (kb3) at ($(\x1,0) + (0.2,0)$) {\includegraphics[scale=0.03]{img/key-blue.pdf}}; } \only<14-15> { \draw[color=black!30!green] let \p1 = (doc.north east), \p2 = (doc.south west) in ($(\x2,\y2) - (0.2,0.2)$) rectangle ($(\x1,\y1) + (1,0.2)$); \path let \p1 = (doc.north east) in node (kg3) at ($(\x1,0) + (1,0)$) {\includegraphics[scale=0.03]{img/key-green.pdf}}; } \only<14> { \draw[color=black!30!red] let \p1 = (doc.north east), \p2 = (doc.south west) in ($(\x2,\y2) - (0.4,0.4)$) rectangle ($(\x1,\y1) + (1.8,0.4)$); \path let \p1 = (doc.north east) in node (kr3) at ($(\x1,0) + (1.8,0)$) {\includegraphics[scale=0.03]{img/key-red.pdf}}; } \end{tikzpicture} \end{frame} \begin{frame}[t]{Telescoping Circuit Building} \begin{figure} \tikzsetnextfilename{telescope} \begin{tikzpicture}[scale=1] \node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of alice] (alicet) {Alice}; \node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=red,minimum size=1mm] (j1) at (4,5) {}; \node[circle,draw=red,minimum size=1mm] (j2) at (7,5) {}; \node[circle,draw=red,minimum size=1mm] (j3) at (10,5) {}; \draw[-, solid, red, line width=1mm] (j0) edge (j1); \draw[-, solid, magenta, line width=1mm] (j1) edge (j2); \node[above=0cm of j1] (j1t) {\includegraphics[height=0.5cm]{img/key-blue.pdf} $(sk_A, pk_A)$}; \node[above=0cm of j2] (j2t) {\includegraphics[height=0.5cm]{img/key-blue.pdf} $(sk_B, pk_B)$}; \node[above=0cm of j3] (j3t) {\includegraphics[height=0.5cm]{img/key-blue.pdf} $(sk_C, pk_C)$}; \node[above=0cm of j1t] (j1tt) {\includegraphics[height=0.5cm]{img/key-red.pdf} $K_1$}; \node[above=0cm of alice] (kl) {\includegraphics[height=0.5cm]{img/key-red.pdf} $K_1$}; \node (alpt) at (2,4.5) {}; \node (rpt) at (7,4.5) {}; \only<1> { \node[text width=10cm,align=center] (expl) at (5.5, 2) { \Large Tor circuits provide \underline{Perfect Forward Secrecy} \\ \normalsize Its \underline{Telescoping} protocol builds circuits one relay at a time\\ For each relay, it runs the \underline{Tor Authentication Protocol} }; } \only<2> { \node[above=0cm of kl] (kl2) {\includegraphics[height=0.5cm]{img/business.pdf} \color{magenta}$a$}; \draw[->, solid, magenta, line width=0.4mm] (alpt) edge node[sloped,anchor=north]{$Enc(pk_{B},g^a)$} (rpt); \node[text width=10cm,align=center] (expl) at (5.5, 2) { \Large Based on a Diffie-Hellman Key Exchange \\ \normalsize Alice and relays agreed on a base $g$\\ Alice generates $a$\\ Alice sends $g^a$ to the configured relay }; } \only<3> { \node[above=0cm of kl] (kl2) {\includegraphics[height=0.5cm]{img/business.pdf} a}; \node[above=0cm of j2t] (j2tt) {\includegraphics[height=0.5cm]{img/business.pdf} \color{magenta}$g^a, b$}; \draw[<-, solid, magenta, line width=0.4mm] (alpt) edge node[sloped,anchor=north]{$g^b$} (rpt); \node[text width=10cm,align=center] (expl) at (5.5, 2) { \Large Based on a Diffie-Hellman Key Exchange \\ \normalsize Relay generates $b$\\ Relay sends $g^b$ to Alice }; } \only<4> { \node[above=0cm of kl,text width=2cm] (kl2) {\includegraphics[height=0.5cm]{img/business.pdf}$a,$ \color{magenta}$g^b$ \\ $\implies g^{ba}$}; \node[above=0cm of j2t,text width=2cm] (j2tt) {\includegraphics[height=0.5cm]{img/business.pdf} $g^a, b$ \\ \color{magenta}$\implies g^{ab}$}; \node[text width=10cm,align=center] (expl) at (5.5, 2) { \Large Based on a Diffie-Hellman Key Exchange \\ \normalsize Alice and Bob have a shared secret $g^{ab} = g^{ba}$\\ The secret has not been sent on wire }; } \only<5> { \draw[-, solid, red, line width=1mm] (j1) edge (j2); \draw[-, solid, magenta, line width=1mm] (j2) edge (j3); \node[circle,fill=red,minimum size=1mm] (j2) at (7,5) {}; \node[above=0cm of j2t] (j2tt) {\includegraphics[height=0.5cm]{img/key-red.pdf} $K_2$}; \node[above=0cm of kl] (kl2) {\includegraphics[height=0.5cm]{img/key-red.pdf} $K_2$}; \node[text width=10cm,align=center] (expl) at (5.5, 2) { \Large The $2^{nd}$ relay has been configured \\ \normalsize The $3^{rd}$ can now be configured }; } \end{tikzpicture} \end{figure} \end{frame} \begin{frame}[t]{Correlation Attacks} \tikzsetnextfilename{coratt} \begin{tikzpicture}[scale=1] \only<1> { \node (arel1) at (3.3,3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel3) at (3.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel4) at (3,7.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel5) at (5.3,3.3) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel6) at (4.9,4.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel8) at (5,6.8) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel10) at (7.6,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel11) at (6.8,5.5) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel12) at (7.3,7.0) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel2) at (3.1,4.2) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel7) at (5.8,5.6) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (arel9) at (7.1,2.9) {\includegraphics[scale=1]{img/arelay.pdf}}; \node (desc) at (5.5,1.5) {\Large Anyone can run relays without prior authorization}; } \only<2-4> { \node (arel1) at (3.3,3) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel3) at (3.8,5.6) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel4) at (3,7.2) {\includegraphics[scale=0.8]{img/bad.pdf}}; \node (arel5) at (5.3,3.3) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel6) at (4.9,4 .6) {\includegraphics[scale=0.8]{img/bad.pdf}}; \node (arel8) at (5,6.8) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel10) at (7.6,4.2) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel11) at (6.8,5.5) {\includegraphics[scale=0.8]{img/bad.pdf}}; \node (arel12) at (7.3,7.0) {\includegraphics[scale=0.8]{img/bad.pdf}}; \node (arel2) at (3.1,4.2) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel7) at (5.8,5.6) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel9) at (7.1,2.9) {\includegraphics[scale=0.8]{img/good.pdf}}; } \node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of alice] (alicet) {Alice}; \node (wiki) at (10,5) {\includegraphics[scale=1]{img/service-provider.pdf}}; \node[below = 0.1cm of wiki, text width = 2cm,align=center] (spt) {Service Provider}; \node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of wiki] (j4) {}; \only<1-2> { \node[circle,fill=red,minimum size=1mm] (j1) at (3.1,4.2) {}; \node[circle,fill=red,minimum size=1mm] (j2) at (5.8,5.6) {}; \node[circle,fill=red,minimum size=1mm] (j3) at (7.1,2.9) {}; \draw[-, solid, red, line width=1mm] (j0) edge (j1); \draw[-, solid, red, line width=1mm] (j1) edge (j2); \draw[-, solid, red, line width=1mm] (j2) edge (j3); \draw[-, solid, black, line width=1mm] (j3) edge (j4); } \only<2> { \node[text width=10cm,align=center] (desc) at (5.5,1.5) {\Large Attacker run multiple relays \\ \normalsize and make them \underline{collude} to de-anonymize Alice }; } \only<3> { \node[circle,fill=red,minimum size=1mm] (j1) at (arel4.center) {}; \node[circle,fill=red,minimum size=1mm] (j2) at (arel6.center) {}; \node[circle,fill=red,minimum size=1mm] (j3) at (arel11.center) {}; \draw[-, solid, red, line width=1mm] (j0) edge (j1); \draw[-, solid, red, line width=1mm] (j1) edge (j2); \draw[-, solid, red, line width=1mm] (j2) edge (j3); \draw[-, solid, black, line width=1mm] (j3) edge (j4); \node (dea) at (5.5,1.5) {\color{red} \Large Alice is de-anonymized}; \node[left=0cm of dea] (dead) {\includegraphics{img/fail.pdf}}; } \only<4> { \node[circle,fill=red,minimum size=1mm] (j1) at (arel6.center) {}; \node[circle,fill=red,minimum size=1mm] (j2) at (arel8.center) {}; \node[circle,fill=red,minimum size=1mm] (j3) at (arel12.center) {}; \draw[-, solid, red, line width=1mm] (j0) edge (j1); \draw[-, solid, red, line width=1mm] (j1) edge (j2); \draw[-, solid, red, line width=1mm] (j2) edge (j3); \draw[-, solid, black, line width=1mm] (j3) edge (j4); \node[text width=7cm,align=center] (dea) at (5.5,1.5) {\Large \color{red} Alice is still de-anonymized \\ \normalsize It suffices to corrupt the first and last relay }; \node[left=0cm of dea] (dead) {\includegraphics{img/fail.pdf}}; } \end{tikzpicture} \end{frame} \begin{frame}[t]{The Need for Guards} \tikzsetnextfilename{guards} \begin{tikzpicture}[scale=1] \node (arel1) at (3.3,3) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel3) at (3.8,5.6) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel4) at (3,7.2) {\includegraphics[scale=0.8]{img/bad.pdf}}; \node (arel5) at (5.3,3.3) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel6) at (4.9,4 .6) {\includegraphics[scale=0.8]{img/bad.pdf}}; \node (arel8) at (5,6.8) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel10) at (7.6,4.2) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel11) at (6.8,5.5) {\includegraphics[scale=0.8]{img/bad.pdf}}; \node (arel12) at (7.3,7.0) {\includegraphics[scale=0.8]{img/bad.pdf}}; \node (arel2) at (3.1,4.2) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel7) at (5.8,5.6) {\includegraphics[scale=0.8]{img/good.pdf}}; \node (arel9) at (7.1,2.9) {\includegraphics[scale=0.8]{img/good.pdf}}; \coordinate (c1) at (3.3,3); \coordinate (c3) at (3.8,5.6); \coordinate (c4) at (3,7.2) ; \coordinate (c5) at (5.3,3.3); \coordinate (c6) at (4.9,4.6) ; \coordinate (c8) at (5,6.8) ; \coordinate (c10) at (7.6,4.2); \coordinate (c11) at (6.8,5.5) ; \coordinate (c12) at (7.3,7.0) ; \coordinate (c2) at (3.1,4.2) ; \coordinate (c7) at (5.8,5.6) ; \coordinate (c9) at (7.1,2.9) ; \node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of alice] (alicet) {Alice}; \node (wiki) at (10,5) {\includegraphics[scale=1]{img/service-provider.pdf}}; \node[below = 0.1cm of wiki, text width = 2cm,align=center] (spt) {Service Provider}; \only<1> { \node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of wiki] (j4) {}; \draw[-, solid, magenta,line width=1mm] (j0) -- (c1) -- (c8) -- (c9) -- (j4); \draw[-, solid, cyan,line width=1mm] (j0) -- (c4) -- (c6) -- (c12) -- (j4); \draw[-, solid, green,line width=1mm] (j0) -- (c6) -- (c9) -- (c11) -- (j4); \draw[-, solid, orange,line width=1mm] (j0) -- (c3) -- (c5) -- (c10) -- (j4); \node[text width=9cm,align=center] (desc) at (6.5,1.1) {\Large \color{red} \underline{Over a long time}, Alice will inevitably\\end up de-anonymized}; \node[left=0cm of desc] (illu) {\includegraphics{img/stop.pdf}}; } \only<2> { \node[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of wiki] (j4) {}; \draw[-, solid, magenta,line width=1mm] (j0) to [bend left=10] (c1) -- (c8) -- (c9) -- (j4); \draw[-, solid, cyan,line width=1mm] (j0) to [bend left=10] (c3) -- (c6) -- (c12) -- (j4); \draw[-, solid, green,line width=1mm] (j0) to [bend right=10] (c1) -- (c9) -- (c11) -- (j4); \draw[-, solid, orange,line width=1mm] (j0) to [bend right=10] (c3) -- (c5) -- (c10) -- (j4); \node[below=0.5cm of c1] (g1) {\textcolor{blue}{Guard 1}}; \node[above=0.5cm of c3] (g2) {\textcolor{blue}{Guard 2}}; \node[text width=10cm,align=center] (desc) at (5.5,1.1) {\Large Alice always picks the same two first relays\\They are her \textcolor{blue}{\underline{Guards}}}; } \end{tikzpicture} \end{frame} \iffalse \only<5-9> { \node (alice) at (1,5) {\includegraphics[scale=0.26]{img/computer.pdf}}; \node[below=0cm of alice] (alicet) {Alice}; \node (wiki) at (10,5) {\includegraphics[scale=0.5]{img/wiki.pdf}}; } \only<5> { \node (aliwiki) at (5.5,1.5) {\Large \underline{1 way anonymity}: only Alice is anonymous}; \node[below=0cm of aliwiki] (aliwikid) {Alice wants to post an article \includegraphics[scale=0.3]{img/document.pdf} on Wikipedia}; } \only<6> { \node[below=-1.6cm of arel2] (arel2s) {\includegraphics[scale=1]{img/sel.pdf}}; \node (alisel) at (5.5,1) {\Large Alice selects 3 relays randomly}; \node[below=0cm of alisel] (aliseld) {Some constraints apply on the selection}; } \only<6-7> { \node[below=-1.6cm of arel7] (arel7s) {\includegraphics[scale=1]{img/sel.pdf}}; } \only<6-8> { \node[below=-1.6cm of arel9] (arel9s) {\includegraphics[scale=1]{img/sel.pdf}}; } \only<7> { \node (alico1) at (5.5,1) {\Large Alice connects to the 1st one}; } \fi