755 lines
24 KiB
TeX
755 lines
24 KiB
TeX
|
|
%\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}
|