%%% Beamer Vorlage, (c) Bernhard Tittelbach
\ifx\mode\undefined  % only include documentclass if beamer not already included via handout_
 \documentclass{beamer}
\fi
\usepackage{cmap}
\usepackage{ngerman}
\usepackage[utf8]{inputenc}

\mode<presentation>{
%%% Layout Themen
 \usetheme{Luebeck}
 %\usetheme{Boadilla}
 %\usetheme{Copenhagen}
 %%% Farb Theme
 %\usecolortheme{crane}
 %\usecolortheme{realraum}

 %\useinnertheme{circles}
 %%% Hier Fußzeile und Subsections konfigureren bzw ausschalten
 \useoutertheme[footline=authorinstitute,subsection=false]{miniframes}
 %\useoutertheme{infolines}
 %\useoutertheme{split}
 %\useoutertheme{shadow}
 %\useoutertheme[hooks]{tree}
 %\useoutertheme{smoothtree}
 %\useoutertheme[hooks]{sidebar}

\setbeamertemplate{footline}
  {%
    \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot}
    \end{beamercolorbox}
    \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{author in head/foot}%
      \leavevmode{\usebeamerfont{author in head/foot}\insertshortauthor}%
      \hfill%
      {\usebeamerfont{institute in head/foot}\usebeamercolor[fg]{institute in head/foot}\insertshortinstitute}%
      \hfill%
      \usebeamercolor[fg]{page number in head/foot}%
      \usebeamerfont{page number in head/foot}%
      \insertframenumber\,/\,\inserttotalframenumber%\kern1em\vskip2pt%
    \end{beamercolorbox}%
    \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot}
    \end{beamercolorbox}
  }


%%% Schriftgröe von Float Captions (Bildunterschriften, Tabellenunterschriften)
\setbeamerfont{caption}{size=\scriptsize}

 %%% Textpos erlaubt die "absolute" positionierung von Elementen
 \usepackage[overlay,absolute]{textpos}
 \TPGrid{ 40 }{ 30 }

 %% Hier die Transparenz von \uncover Elementen einstellen (siehe Beamer Doku)
%\setbeamercovered{transparent=4}
%\setbeamercovered{invisible}
%\setbeamercovered{dynamic}
%\setbeamercovered{highly dynamic}
\setbeamercovered{transparent}

%% Hier auskommentieren um die Navigationsleiste unten auszublenden
\setbeamertemplate{navigation symbols}{}

%%% 16:10 Folien
%\usepackage[orientation=landscape,size=custom,width=16,height=10,scale=0.5]{beamerposter}

\usepackage{multimedia}
}

\mode<article>{
 \usepackage{fullpage}
 \usepackage{hyperref}
 \usepackage{pgf}
 \hypersetup{colorlinks=true,%
            urlcolor=blue,%
            pdftex}
% WARNING this command requires beamer v3.07 (2007)
% it makes subsections from frametitle sin article mode
 \setbeamertemplate{frametitle}{\subsection{\insertframetitle}}
% \setbeamertemplate{frametitle}{}
}

% Needed for PS Tricks Images
%\usepackage{tikz}

%\usepackage{fancyvrb}
\definecolor{Brown}{cmyk}{0,0.81,1,0.60}
\definecolor{OliveGreen}{cmyk}{0.64,0,0.95,0.40}
\definecolor{CadetBlue}{cmyk}{0.62,0.57,0.23,0}
%% Das Listings Package eignet sich zum Anzeigen von Code
%\usepackage{listings}
%\lstset{language=sh}
%\lstset{tabsize=2}
%\lstset{basicstyle=\small,
%  keywordstyle=\ttfamily\color{OliveGreen},
% identifierstyle=\ttfamily\color{CadetBlue}\bfseries,
% commentstyle=\color{Brown},
% stringstyle=\ttfamily,
% showstringspaces=false}

\title{ Anytun - Secure Anycast Tunneling }
\author{Christian Pointner}
\date{\today}
%\institute{sat.mur.at}
%\logo{\pgfimage[height=0.6cm]{logo}}
%\logo{\pgfimage[height=0.6cm]{logo}\hspace{1mm}\pgfimage[height=0.6cm]{mur-logo-dark}}
% \logo{\pgfimage{MURsat-logo}\hspace{1mm}\pgfimage[height=0.6cm]{mur-logo-dark}}
% \logo{\includegraphics[clip=true,trim=0 12.0cm 0 10.0cm,scale=0.1]{MURsat-logo}}
\logo{\includegraphics[height=1cm]{anytun-logo}\hspace{0.2cm}}

\begin{document}
\frame{
\titlepage
}
%-----------------------------------------------
% \frame{
% \frametitle{Outline}
% \tableofcontents
% }

\AtBeginSection[]
{
 \begin{frame}
  \frametitle{Überblick}
  \small
  \tableofcontents[currentsection,hideothersubsections]
  \normalsize
 \end{frame}
}

%===============================================
\section{Open Source VPN}

% welche open source VPN Lösungen gibt es
%  openvpn: viele features, große community, firma mit support,
%           leider ssl
%  tinc:    ähnlich openvpn, meshing, leider ssl
%  IPSec:
%    ipsec-tools:  setkey, racoon -> use linux kernel ipsec implementation
%    strongSwan:   auf linux, ikev1, ikev2!
%    libreSwan:    formerly openswan, ikev1
%  anytun:  !!!


%-----------------------------------------------
\begin{frame}
 \frametitle{OpenVPN}
 \begin{itemize}
   \item<1-> eines der ältesten SSL basierten VPNs
   \item<2-> viele Features
   \item<3-> Multi-Platform
   \item<4-> große Community
   \item<5-> wird von Coverity regelmäßig geprüft
   \item<6-> Firma die Support bietet
 \end{itemize}
\end{frame}
%-----------------------------------------------
\begin{frame}
 \frametitle{tinc}
 \begin{itemize}
   \item<1-> neueres Projekt - weniger Legacy Code
   \item<2-> basiert auf SSL
   \item<3-> unterstützt automatisches Meshing
   \item<4-> kleinere Community
   \item<5-> Multi-Platform (weniger als OpenVPN)
 \end{itemize}
\end{frame}
%-----------------------------------------------
\begin{frame}
 \frametitle{strongSwan}
 \begin{itemize}
   \item<1-> IPsec Implementierung für Linux
   \item<2-> basiert auf freeS/WAN
   \item<3-> unterstützt IKEv1 und IKEv2
   \item<4-> kann mit vielen IPSec Implementierungen arbeiten
 \end{itemize}
\end{frame}
%-----------------------------------------------
\begin{frame}
 \frametitle{ipsec-tools}
 \begin{itemize}
   \item<1-> Key Exchange Daemons für IPsec im Linux Kernel
   \item<2-> raccoon: unterstützt nur IKEv1
   \item<3-> setkey: für statisches keying
 \end{itemize}
\end{frame}
%-----------------------------------------------

%===============================================
\section{Warum Anytun?}

% openvpn, tinc etc -> ssl based :(
% ipsec: kein anycast -> replay protection
% satp
% warum anycast:  wer mit anycast umgehen kann kann jede adressierungsform
%                 gratis load balancing

%-----------------------------------------------
\begin{frame}
\frametitle{Warum Anytun}
\begin{itemize}
  \item<1-> OpenVPN und tinc basieren auf SSL
  \begin{itemize}
    \item<1-> Angriffe gegen SSL treffen eventuell auch das VPN
    \item<1-> kein standardisiertes Protokoll
  \end{itemize}
  \item<2-> IPSec kann nicht mit Anycast umgehen (keine Replay Protection oder hoher Synchronisationsaufwand)
  \item<2-> NAT Transversal ist in IPSec umständlich und schwierig
  \item<3-> Anycast bietet viele Vorteile bei Load Balancing und Redundanz
  \item<3-> ein Protokoll das Anycast unterstüzt kann in vielen Szenarien eingesetzt werden.
\end{itemize}
\end{frame}

%===============================================
\section{SATP und (u)Anytun}

% SATP -> secure anycast tunneling protocol
%         adds sender-id -> replay protection
% anytun   full-featured implementation C++/Boost
% uanytun  small implementation (no sync) C

%-----------------------------------------------
\begin{frame}
\frametitle{SATP}
\begin{itemize}
  \item<1-> Name des Protokolls: Secure Anycast Tunneling Protocol
  \item<2-> dokumentiert als Internet Draft
  \item<3-> spezifiziert nur die Payload Kommunikation und NAT Transversal
  \item<4-> agnostisch gegenüber dem Key Exchange Protokoll
\end{itemize}
\end{frame}
%-----------------------------------------------
\begin{frame}
\frametitle{SATP Details}
\begin{itemize}
  \item<1-> Ähnlich zu IPSec ESP und GRE
  \item<2-> geringer Overhead (10 Byte + MAC)
  \item<3-> über UDP oder direkt auf IP
  \item<4-> unterstützt jedes Ethertype Protocol als Payload (Ethernet, IPv4, IPv6, ...)
  \item<5-> verschiedene Anycast Sender können identifiziert werden somit funktioniert die Replay Protection auch ohne viel Synchronisationsaufwand
  \item<6-> Crypto basiert auf sRTP
\end{itemize}
\end{frame}
%-----------------------------------------------
\begin{frame}
\frametitle{Anytun}
\begin{itemize}
  \item<1-> erste Implementierung von SATP
  \item<2-> unterstützt Cluster Synchronisation
  \item<3-> geschrieben in C++ / Boost (Multi-Threaded)
  \item<4-> läuft unter Linux, Windows, FreeBSD
\end{itemize}
\end{frame}
%-----------------------------------------------
\begin{frame}
\frametitle{uAnytun}
\begin{itemize}
  \item<1-> kleine Implementierung von SATP
  \item<2-> keine Cluster Synchronisation
  \item<3-> geschrieben in C mit wenig Library Abhängigkeiten (nur Crypto)
  \item<4-> läuft unter Linux, FreeBSD und OpenBSD
\end{itemize}
\end{frame}
%-----------------------------------------------

%===============================================
\section{Verwendungs-Szenarien}

% anytun usage scenarios:
%   anycast VPN server cluster
%   securing anycast service
%   mutli path interconnect

%-----------------------------------------------
\begin{frame}
\frametitle{Anycast VPN Cluster}
\includegraphics[width=0.9\textwidth]{usage-anycast-cluster}\\
\end{frame}
%-----------------------------------------------
\begin{frame}
\frametitle{Secure Anycast Service/Application}
\includegraphics[width=0.9\textwidth]{usage-anycast-service}\\
\end{frame}
%-----------------------------------------------
\begin{frame}
\frametitle{Mulit-Path Interconnect}
\includegraphics[width=0.9\textwidth]{usage-interconnect}\\
\end{frame}
%-----------------------------------------------

%===============================================
\section{Zukunft}

% anytun future:
%   RAIL
%   Key Exchange
%     ike2, inbound, interface zu key store
%   anytun multi threading
%   RFC für SATP

%-----------------------------------------------
\begin{frame}
\frametitle{RAIL}
\begin{itemize}
  \item<1-> Redundant Array of Inexpensive Links
  \item<2-> SATP Pakete werden mehrmals über verschiedene Pfade gesendet
  \item<3-> Empfänger verwirft alle doppelten Pakete
  \item<4-> Redudanz und oder gesteigerte Bandbreite
  \item<5-> erste Test Implementierung in uAnytun funktioniert
  \item<6-> ohne Key Exchange sehr umständlich zu verwenden :(
\end{itemize}
\end{frame}
%-----------------------------------------------
\begin{frame}
\frametitle{Key-Exchange, RFC, ...}
\begin{itemize}
  \item<1-> Zurzeit untstützt Anytun und uAnytun nur statische Keys :(
  \item<2-> Interface für externes Keyexchange um Inbound Daten schicken zu können
  \item<3-> Interface um Keys im Daemon zu installieren
  \item<4-> Update der Crypto Primitives in SATP
  \item<5-> RFC für SATP
  \item<6-> Threading Modell von Anytun
\end{itemize}
\end{frame}
%-----------------------------------------------

%===============================================
% \section{Bibliography}
%-----------------------------------------------
% \frame[allowframebreaks]{
% \mode<presentation>{\frametitle{Bibliography}}
%
% \bibliographystyle{ieeetr}
% \bibliography{}
% }
%-----------------------------------------------
\end{document}
