%\section{Tor performances \\ \& VoIP requirements} \begin{frame}{Our system requirements} \Large Preliminary definitions\\ \normalsize \textbf{Interactive call:} $99^{th}$-perc delay $<$ 360 ms \\ \textbf{Call duration:} 5 min avg, up to 90 min \\ \vspace{0.5cm} \Large System requirements \\ \normalsize \textbf{Interactivity:} \textcolor{blue}{interactive calls $>$ 80\%}\\ \textbf{Stability:} \textcolor{blue}{dropped calls $<$ 2\%} \\ \textbf{Anonymity:} \textcolor{blue}{both caller and callee} \\ %\small Alice is anonymous to Bob,\\Bob is anonymous to Alice \begin{center} \Large \includegraphics[scale=0.6]{img/question.pdf} \color{blue} Can Tor satisfy these requirements? \end{center} \end{frame} \begin{frame}[t]{Which Tor configuration should we use?} \small \underline{For 2-way anonymity: Onion Services} \vspace{0.2cm} \tikzsetnextfilename{os1ss} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5,5) circle(1mm); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \draw[fill=black] (7.5,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}}; \node (lt) at (2,4.5) {\emph{Security-first}}; \node (aaa) at (6.25,4.5) {\emph{6 relays, 3-hop circuits}}; \end{tikzpicture} \vspace{0.2cm} \small \underline{To reduce latency: Reduce circuits length} 2-hops circuits have been discussed as a possible optimization\footnotemark[2] \vspace{0.2cm} \tikzsetnextfilename{os2ss} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \node (aaa) at (6.25,4.5) {\emph{4 relays, 2-hop circuits}}; \node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}}; \node (lt) at (2,4.5) {\emph{Performance-first}}; \end{tikzpicture} \vspace{0.2cm} \footnotetext[2]{\fullcite{bauer_optimal_nodate}} \end{frame} \begin{frame}[t]{How do we test Tor?} \normalsize \underline{2 Tor Configurations} \tikzsetnextfilename{os3ss} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5,5) circle(1mm); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \draw[fill=black] (7.5,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}}; \end{tikzpicture} \tikzsetnextfilename{os4ss} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}}; \end{tikzpicture} \underline{Simulated Calls}\\ 5-minute and 90-minute calls\\ Each configuration is repeated 64 times\\ \underline{Questions}\\ Do Onion Service meet latency requirements?\\ Do Onion Service are stable enough?\\ \end{frame} \begin{frame}{Do onion services meet latency requirements?} \tikzsetnextfilename{petitschema1} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5,5) circle(1mm); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \draw[fill=black] (7.5,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}}; \end{tikzpicture} \begin{columns} \begin{column}{0.5\textwidth} \includegraphics[width=0.8\textwidth]{img/x1.pdf} \end{column} \begin{column}{0.5\textwidth} \vspace{0.5cm} \normalsize \underline{Interactive call definition}\\$99^{th}$-perc delay $<$ 360 ms \vspace{0.5cm} \normalsize \underline{System interactivity}\\ \Large \textcolor{blue}{$>$ 80\%} \normalsize goal, of interactive calls\\ \Large \textcolor{red}{9\%} \normalsize for 5-minute calls\\ \Large \textcolor{red}{3\%} \normalsize for 90-minute calls \end{column} \end{columns} \begin{center} \Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Calls are not interactive \end{center} \end{frame} \begin{frame}{And what if we use 2-hop circuits?} \tikzsetnextfilename{petitschema2} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}}; \end{tikzpicture} \begin{columns} \begin{column}{0.5\textwidth} \includegraphics[width=0.8\textwidth]{img/x2.pdf} \end{column} \begin{column}{0.5\textwidth} \vspace{0.5cm} \normalsize \underline{Interactive call definition}\\$99^{th}$-perc delay $<$ 360 ms \vspace{0.5cm} \normalsize \underline{System interactivity}\\ \Large \textcolor{blue}{$>$ 80\%} \normalsize goal, interactive calls\\ \Large \textcolor{red}{44\%} \normalsize for 5-minute calls\\ \Large \textcolor{red}{23\%} \normalsize for 90-minute calls\end{column} \end{columns} \begin{center} \Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Calls are \underline{still} not interactive \end{center} \end{frame} \begin{frame}{Are onion services stable enough for calls?} \tikzsetnextfilename{os3ss} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5,5) circle(1mm); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \draw[fill=black] (7.5,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}}; \end{tikzpicture} \tikzsetnextfilename{os4ss} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}}; \end{tikzpicture} \begin{columns} \begin{column}{0.45\textwidth} \includegraphics[width=0.8\textwidth]{img/x3.pdf} \end{column} \begin{column}{0.5\textwidth} \vspace{0.3cm} \normalsize \underline{System stability}\\ \Large \textcolor{blue}{$<$ 2\%} \normalsize goal, dropped calls \\ \Large \textcolor{red}{5\%} \normalsize for 2 hops, 5-minute calls \\ \Large \textcolor{red}{10\%} \normalsize for 3 hops, 5-minute calls \\ \Large \textcolor{red}{10\%} \normalsize for 2 hops, 90-minute calls \\ \Large \textcolor{red}{17\%} \normalsize for 3 hops, 90-minute calls \end{column} \end{columns} \begin{center} \Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Calls are not stable \end{center} \end{frame} \iffalse \begin{frame}{Understanding Latency Spike Properties} \includegraphics[width=0.7\textwidth]{img/circuit.pdf} For most circuits,\\ \Large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} the $99^{th}$ latency is too high, \\ \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} the median latency is acceptable,\\ \includegraphics[scale=0.6]{img/question.pdf} \color{blue} Tor is able to deliver \underline{only some} packets on time \end{frame} \fi \section{Our contribution: Donar} \begin{frame}{Our goal} \Large Building a communication \underline{abstraction} \Large to provide \underline{stable low-latency} packet delivery \Large over the \underline{existing} Tor network %by leveraging on link diversity, scheduling and redundancy. \end{frame} \begin{frame}{Donar Overview} \Large Donar is a \textbf{multipath} proxy\\ made of 2 components: \\ \underline{Link Selection} and \underline{Scheduling Policies} \vspace{0.7cm} \includegraphics[width=0.8\textwidth]{img/proxy.png} %We make 2 flavors with them: %\vspace{0.5cm} % \begin{columns} % \begin{column}{0.45\textwidth} %\normalsize %\underline{Anticipate Failures} % %\Large Donar Alternate % %\Large Donar Double Send % \end{column} % \begin{column}{0.45\textwidth} %\normalsize %\underline{React to Failures} % %\Large + Path Ranking % %\Large + Path Ranking % \end{column} % \end{columns} \end{frame} \begin{frame}[t]{Link Selection} \tikzsetnextfilename{scheduling} \begin{tikzpicture}[scale=1] \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[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of bob] (j4) {}; \coordinate (a1) at (3,6.5) {}; \coordinate (a2) at (3,5.5) {}; \coordinate (a3) at (3,4.5) {}; \coordinate (a4) at (3,3.5) {}; \coordinate (b1) at (8,6.5) {}; \coordinate (b2) at (8,5.5) {}; \coordinate (b3) at (8,4.5) {}; \coordinate (b4) at (8,3.5) {}; \draw[-, dashed, black] (j0) -- (a1) -- (b1) -- (j4); \draw[-, dashed, black] (j0) -- (a2) -- (b2) -- (j4); \draw[-, dashed, black] (j0) -- (a3) -- (b3) -- (j4); \draw[-, dashed, black] (j0) -- (a4) -- (b4) -- (j4); \coordinate (a5) at (3,2.5) {}; \coordinate (a6) at (3,7.5) {}; \coordinate (b5) at (8,2.5) {}; \coordinate (b6) at (8,7.5) {}; \draw[-, dashed, black] (j0) -- (a5) -- (b5) -- (j4); \draw[-, dashed, black] (j0) -- (a6) -- (b6) -- (j4); \node[below=0cm of a6] (a6t) {~A}; \node[below=0cm of a1] (a1t) {~B}; \node[below=0cm of a2] (a2t) {~C}; \node[below=0cm of a3] (a3t) {~D}; \node[below=0cm of a4] (a4t) {~E}; \node[below=0cm of a5] (a5t) {~F}; \only<1> { \draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a2) -- (b2) -- (j4); \draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a3) -- (b3) -- (j4); \draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a1) -- (b1) -- (j4); \draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a6) -- (b6) -- (j4); \iffalse \node[rectangle,draw=black,fill=white,minimum width=5mm] (p11) at (5.8,5.5) {1}; \node[rectangle,draw=black,fill=black,minimum width=5mm] (p11p) at (5.3,5.5) {\color{black}1}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p13) at (4.1,5.5) {3}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p13p) at (3.6,5.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p22) at (6.3,4.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p22p) at (5.8,4.5) {1}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p31) at (6.5,7.5) {1}; \node[rectangle,draw=black,fill=black,minimum width=5mm] (p31p) at (6,7.5) {\color{black}1}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p33) at (4.6,7.5) {3}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p33p) at (4.1,7.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p42) at (7,6.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p42p) at (6.5,6.5) {1}; \fi \node[text width=10cm,align=left] (expl) at (5.5, 1.2) {\Large \Large \includegraphics[scale=0.6]{img/question.pdf} \color{blue} We want to schedule only on fastest links \\ }; } \only<2> { \draw[-, solid, black!50!red, line width = 0.4mm] (j0) -- (a2) -- (b2) -- (j4); \draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a3) -- (b3) -- (j4); \draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a1) -- (b1) -- (j4); \draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a6) -- (b6) -- (j4); \node[below=0cm of bobt, text width=3cm] (bobr) { \textbf{Path Ranking}\\ \textcolor{black!50!green}{1. B}\\ \textcolor{black!50!green}{2. D}\\ \textcolor{black!50!green}{3. A}\\ \textcolor{black!50!red}{4. C} }; \node[text width=8cm,align=center] (expl) at (4, 1.2) {\Large Bob ranks paths and informs Alice that stops using the slowest ones }; } \only<3> { \draw[-, solid, black!30!cyan, line width = 0.4mm] (j0) -- (a5) -- (b5) -- (j4); \draw[-, solid, black] (j0) -- (a3) -- (b3) -- (j4); \draw[-, solid, black] (j0) -- (a1) -- (b1) -- (j4); \draw[-, solid, black] (j0) -- (a6) -- (b6) -- (j4); \node[below=0cm of bobt, text width=3cm] (bobr) { \textbf{Path Ranking}\\ 1. ...\\ 2. ...\\ 3. ...\\ 4. ... }; \node[text width=8cm,align=center] (expl) at (4, 1.2) {\Large Alice selects a new path }; } \only<4> { \draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a5) -- (b5) -- (j4); \draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a3) -- (b3) -- (j4); \draw[-, solid, black!50!red, line width = 0.4mm] (j0) -- (a1) -- (b1) -- (j4); \draw[-, solid, black!50!green, line width = 0.4mm] (j0) -- (a6) -- (b6) -- (j4); \node[below=0cm of bobt, text width=3cm] (bobr) { \textbf{Path Ranking}\\ \textcolor{black!50!green}{1. F}\\ \textcolor{black!50!green}{2. A}\\ \textcolor{black!50!green}{3. D}\\ \textcolor{black!50!red}{4. B} }; \node[text width=8cm,align=center] (expl) at (4, 1.2) {\Large Ranking is re-computed regularly }; } \end{tikzpicture} \end{frame} \begin{frame}[t]{Scheduling Policy: Alternate} \tikzsetnextfilename{padding} \begin{tikzpicture}[scale=1] \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[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of bob] (j4) {}; \coordinate (a1) at (3,6.5) {}; \coordinate (a2) at (3,5.5) {}; \coordinate (a3) at (3,4.5) {}; \coordinate (a4) at (3,3.5) {}; \coordinate (b1) at (8,6.5) {}; \coordinate (b2) at (8,5.5) {}; \coordinate (b3) at (8,4.5) {}; \coordinate (b4) at (8,3.5) {}; \coordinate (a5) at (3,2.5) {}; \coordinate (a6) at (3,7.5) {}; \coordinate (b5) at (8,2.5) {}; \coordinate (b6) at (8,7.5) {}; \draw[-, solid, black] (j0) -- (a1) -- (b1) -- (j4); \draw[-, solid, black] (j0) -- (a2) -- (b2) -- (j4); \draw[-, solid, black] (j0) -- (a3) -- (b3) -- (j4); \draw[-, solid, black] (j0) -- (a4) -- (b4) -- (j4); \draw[-, solid, black] (j0) -- (a5) -- (b5) -- (j4); \draw[-, solid, black] (j0) -- (a6) -- (b6) -- (j4); \node[rectangle,draw=black,fill=white,minimum width=5mm] (p11) at (7,5.5) {1}; \node[rectangle,draw=black,fill=black,minimum width=5mm] (p11p) at (6.5,5.5) {\color{black}1}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p13) at (4.6,3.5) {3}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p13p) at (4.1,3.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p22) at (5.8,4.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p22p) at (5.3,4.5) {1}; \node[text width=10cm,align=center] (expl) at (5.5, 1.0) {\Large \textbf{Alternate} schedule packets across links and leverages Tor's padding }; \end{tikzpicture} \end{frame} \begin{frame}[t]{Scheduling Policy: Double Send} \tikzsetnextfilename{doublesend} \begin{tikzpicture}[scale=1] \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[circle,fill=black,minimum size=1mm,right=0cm of alice] (j0) {}; \node[circle,fill=black,minimum size=1mm,left=0cm of bob] (j4) {}; \coordinate (a1) at (3,6.5) {}; \coordinate (a2) at (3,5.5) {}; \coordinate (a3) at (3,4.5) {}; \coordinate (a4) at (3,3.5) {}; \coordinate (b1) at (8,6.5) {}; \coordinate (b2) at (8,5.5) {}; \coordinate (b3) at (8,4.5) {}; \coordinate (b4) at (8,3.5) {}; \coordinate (a5) at (3,2.5) {}; \coordinate (a6) at (3,7.5) {}; \coordinate (b5) at (8,2.5) {}; \coordinate (b6) at (8,7.5) {}; \draw[-, solid, black] (j0) -- (a1) -- (b1) -- (j4); \draw[-, solid, black] (j0) -- (a2) -- (b2) -- (j4); \draw[-, solid, black] (j0) -- (a3) -- (b3) -- (j4); \draw[-, solid, black] (j0) -- (a4) -- (b4) -- (j4); \draw[-, solid, black] (j0) -- (a5) -- (b5) -- (j4); \draw[-, solid, black] (j0) -- (a6) -- (b6) -- (j4); \node[rectangle,draw=black,fill=white,minimum width=5mm] (p11) at (7,5.5) {1}; \node[rectangle,draw=black,fill=black,minimum width=5mm] (p11p) at (6.5,5.5) {\color{black}1}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p13) at (4.6,3.5) {3}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p13p) at (4.1,3.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p22) at (5.8,4.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p22p) at (5.3,4.5) {1}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p31) at (7,7.5) {1}; \node[rectangle,draw=black,fill=black,minimum width=5mm] (p31p) at (6.5,7.5) {\color{black}1}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p33) at (4.6,2.5) {3}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p33p) at (4.1,2.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p42) at (5.8,6.5) {2}; \node[rectangle,draw=black,fill=white,minimum width=5mm] (p42p) at (5.3,6.5) {1}; \node[text width=10cm,align=center] (expl) at (5.5, 1.0) {\Large \textbf{Double Send} extends Alternate by adding on-wire duplication \normalsize }; \end{tikzpicture} \end{frame} \begin{frame}{Security} Multiple paths = less security? \vspace{0.5cm} \includegraphics[width=0.8\textwidth]{img/donar-tor-diagram.pdf} Guards = Fixed relays = Decouple path opening from de-anonimization \end{frame} \section{Evaluation} \begin{frame}[t]{Evaluation Setup} \underline{Configurations \& Goals:}\\Same as our preliminary analysis \underline{Our 2 Variants} \normalsize \textbf{Donar Alternate}\\ Scheduling policy: Alternate (use less bandwidth) \textbf{Donar Double Send}\\ Sechduling policy: Double Send (better stability) \scriptsize Implemented in \texttt{C}, notable API/lib: \texttt{epoll}, \texttt{gstreamer}, \texttt{glib}\\ \normalsize \underline{Baselines} \textbf{Simple:} Baseline introduced in the preliminary analysis \\ %Same data consumption as Donar Alternate \textbf{Torfone:} Duplicates packets on 2 paths \\ %Same data consumption as Donar Double Send \end{frame} \begin{frame}{Donar on 2-hop circuits} \tikzsetnextfilename{petitschema4} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[width=0.5cm]{img/gauge.pdf}}; \end{tikzpicture} \begin{columns} \begin{column}{0.5\textwidth} \includegraphics[width=0.8\textwidth]{img/x5.pdf} \end{column} \begin{column}{0.5\textwidth} \vspace{1cm} \normalsize \underline{System interactivity}\\ \large \textcolor{blue}{$>$ 80\%} \normalsize goal, interactive calls \\ \large \textcolor{black!50!green}{87\%} \normalsize for Donar Alternate\\ \large \textcolor{black!50!green}{95\%} \normalsize for Donar Double Send\\ \large \textcolor{red}{25\%} \normalsize for Torfone\\ \large \textcolor{red}{23\%} \normalsize for Simple (our baseline)\\ \vspace{0.5cm} \large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Alternate \\ \large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Double Send \end{column} \end{columns} \end{frame} \begin{frame}{Donar on regular circuits} \tikzsetnextfilename{petitschema33} \begin{tikzpicture} \node (j0) at (4,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[left=0cm of j0] (j0t) {Alice}; \node (j4) at (8.5,5) {\includegraphics[scale=0.1]{img/computer.pdf}}; \node[right=0cm of j4] (j4t) {Bob}; \draw[-, solid, black, line width=0.2mm] (j0) edge (j4); \draw[fill=black] (5,5) circle(1mm); \draw[fill=black] (5.5,5) circle(1mm); \draw[fill=black] (6,5) circle(1mm); \draw[fill=black] (6.5,5) circle(1mm); \draw[fill=black] (7,5) circle(1mm); \draw[fill=black] (7.5,5) circle(1mm); \node (lock) at (2,5) {\includegraphics[scale=0.4]{img/shield.pdf}};\end{tikzpicture} \begin{columns} \begin{column}{0.5\textwidth} \includegraphics[width=0.8\textwidth]{img/x4.pdf} \end{column} \begin{column}{0.5\textwidth} \vspace{1cm} \normalsize \underline{System interactivity}\\ \large \textcolor{blue}{$>$ 80\%} \normalsize goal, interactive calls \\ \large \textcolor{red}{58\%} \normalsize for Donar Alternate\\ \large \textcolor{black!50!green}{87\%} \normalsize for Donar Double Send\\ \large \textcolor{red}{31\%} \normalsize for Torfone\\ \large \textcolor{red}{3\%} \normalsize for Simple (our baseline)\\ \vspace{0.5cm} \large \includegraphics[scale=0.4]{img/stop.pdf} \color{red} Donar Alternate\\ \large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Double Send \end{column} \end{columns} \end{frame} \begin{frame}{Does Donar maintain calls over time?} \vspace{1cm} \includegraphics[width=0.8\textwidth]{img/call_drop.pdf} \begin{columns} \begin{column}{0.5\textwidth} \normalsize \underline{System stability}\\ \large \textcolor{blue}{$<$ 2\%} \normalsize goal, dropped calls \\ \large \textcolor{black!50!green}{0\%} \normalsize Donar Alternate, 2 hops\\ \large \textcolor{black!50!green}{0\%} \normalsize Donar Double Send, 2 hops + default\\ \end{column} \begin{column}{0.5\textwidth} \large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Alternate \\ \large \includegraphics[scale=0.4]{img/ok.pdf} \color{black!50!green} Donar Double Send \end{column} \end{columns} \end{frame} \section{Conclusion} \iffalse \begin{frame}{Future Work} \underline{We plan to evaluate} \Large QoE\\ \normalsize Large scale experiment to collect users feedback \Large A white box approach\\ \normalsize Use information from the daemon to enrich scheduling \Large Sending noise\\ \normalsize To make traffic correlation harder \end{frame} \fi \begin{frame}{Conclusion} \underline{We contributed} \Large Foundations \\ \normalsize to build a Tor softphone with stable latency \\ over the existing Tor network \\ \scriptsize Source code: github.com/CloudLargeScale-UCLouvain/Donar \Large Insights \\ \normalsize to understand delays on Tor from a real-time perspective \end{frame} \begin{frame}{The end} Thanks to the audience for attending this talk. Our email addresses: \begin{itemize} \item david.bromberg@irisa.fr \item \underline{quentin@deuxfleurs.fr} \item davide.frey@inria.fr \item etienne.riviere@uclouvain.be \end{itemize} \normalsize Source code: github.com/CloudLargeScale-UCLouvain/Donar \Large Time for questions! \end{frame}