%%% 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{ %%% 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
{ \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{\frametitle{Bibliography}} % % \bibliographystyle{ieeetr} % \bibliography{} % } %----------------------------------------------- \end{document}