% Copyright 2012 by NORDUnet A/S <info@nordu.net>
% Author: Linus Nordberg <linus@nordu.net> 
%
% This presentation is based on the conference-ornate-20min template
% by Till Tantau <tantau@users.sourceforge.net>.  You may redistribute
% and/or modify it under the terms of the GNU Public License, version
% 2.
%
% To produce a PDF from this document, do something like
%
%   pdflatex FILE.tex
%
% You might want to have packages like tetex, latex-beamer and
% ghostscript installed.

\documentclass{beamer}
\mode<presentation>
{
  \usetheme{Warsaw}
  \setbeamercovered{transparent}
}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage[T1]{fontenc}
\usepackage{url}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{Tor för IT-forensiker}
\subtitle{}
\author{Linus Nordberg, NORDUnet}
\date[2012-05-24]{IT-forensiska seminariet 2012}
\pgfdeclareimage[height=0.3cm]{ndn-logo}{../images/NORDUnet-New-Logo-Final-Small}
\logo{\pgfuseimage{ndn-logo}}
%
\AtBeginSection[]
{
  \begin{frame}<beamer>{Innehåll}
    \tableofcontents[currentsection,currentsubsection]
  \end{frame}
}

% Enable this to make items appear one at a time.
%\beamerdefaultoverlayspecification{<+->}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{frame}
  \titlepage
\end{frame}
%\begin{frame}{outline}
%  \tableofcontents
%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Presentation}
\begin{frame}{Presentation}
\begin{itemize}
\item Yrke programmerare
\pause \item Anställd av NORDUnet
\pause \item Tor-relaterat arbete inkluderar föreläsningar, drift av
  mättjänster och relän, utveckling (Tor på IPv6)
\pause \item Kontakt linus@nordu.net 0x23291265 \\
  \tiny 8C4C D511 095E 982E B0EF  BFA2 1E8B F349 2329 1265
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Vad är Tor}

\begin{frame}{Ett protokoll och ett program}
\begin{itemize}
\item Ett nätverksprotokoll
\pause \item Ett program -- fri programvara, BSD-licensierad
\pause \item Öppna epostlistor, källkods-arkiv med specifikationer,
  förändringsförslag och kod, ``bug tracker'', chatrum
\pause \item Teknik och urpsrunglig kod från NRL (U.S. Naval Research
  Laboratory)
\pause ==> ``onion routing'' 1996
\pause ==> Tor 2002  
\end{itemize}
\end{frame}

\begin{frame}{Tre funktioner}
\begin{itemize}
\item Anonym och skyddad åtkomst till internet
\pause \item Kringgå blockering
\pause \item Anonym och skyddad publicering
\end{itemize}
\end{frame}

\begin{frame}{Ett ekosystem av applikationer}
\begin{itemize}
\item Browsern Aurora -- Firefox + Torbutton
\pause \item Vidalia -- en kontrollpanel
\pause \item Metrics -- analysverktyg och information om nätet
\pause \item TBB (Tor Browser Bundle) -- Vidalia + FF + Torbutton
\pause \item Tails -- en live-CD/USB med TBB
\pause \item Orbot -- Tor för Android
\end{itemize}
\end{frame}

\begin{frame}{Vidalia -- en kontrollpanel}
\parbox{3.5cm}{\sloppy \includegraphics[width=3cm]{../images/vidalia-control-panel}}
\parbox{7cm}{\sloppy \includegraphics[width=7cm]{../images/vidalia-network-map}}
\end{frame}

\begin{frame}{En ``non-profit org''}
\parbox{4.5cm}{\sloppy 
\setbeamercolor{background}[\includegraphics[width=3.8cm]{../images/2009-tor-logo}}
\parbox{6cm}{\sloppy
\begin{itemize}
\item 501(c)(3) -- non-profit (ideell org) för forskning och
  utveckling av teknologi för anonymitet och skyddande av personlig
  integritet på nätet (2006)
\item Historia -- NRL, Electronic Frontier Foundation (EFF)
\end{itemize}
}
\end{frame}

\begin{frame}{En ``non-profit org''}
\parbox{4.5cm}{\sloppy 
\setbeamercolor{background}[\includegraphics[width=3.8cm]{../images/2009-tor-logo}}
\parbox{6cm}{\sloppy
\begin{itemize}
\item Finansiering -- BBG, Sida, Internews, NSF, NLnet, NRL,
  individuals, Google, HRW (EFF, DARPa, Bell)
\item Tor Project Inc (2011) -- Kommersialisering för att hitta
  privata sponsorer
\end{itemize}
}
\end{frame}

\begin{frame}{Community}
\begin{itemize}
\item{Forskare} \\ Drexel, Univ of Waterloo, Georgia Tech, Princeton,
  Boston University, University College London, Univ of Minnesota,
  MIT, National Science Foundation, Naval Research Labs, Cambridge
  (UK), Bamberg (Tyskland) \pause
\item{Programutvecklare} \\ Ca 5 heltid + ca 20 deltid (betalda och
  obetalda) + 6 GSOC-studenter + många tillfälliga bugrapportörer,
  mindre patchar mm.
\end{itemize}
\end{frame}

\begin{frame}{Community}
\begin{itemize}
\item{Relä-operatörer} \\ 2000-3000, framför allt i USA och Europa \pause
\item{Användare} \\ Ca 400,000 dagliga användare \\ 
  \tiny \url{https://metrics.torproject.org/users.html}
\end{itemize}
\end{frame}

\begin{frame}{Infrastruktur}
Ett frivillignätverk bestående av ca 3000 relän
\begin{overlayarea}{8cm}{5cm}
\begin{center}
\includegraphics[scale=0.35]{../images/networksize-2009-01-01-300-2012-05-23}
\end{center}
\end{overlayarea}
\end{frame}

%%%%
\section{Vad är anonymitet}

\begin{frame}{Enbart kryptering ger inte anonymitet}
\parbox{6cm}{\sloppy
\setbeamercolor{background}[\includegraphics[width=5.9cm]{../images/cryptography-trafficanalysis}}
\parbox{4cm}{\sloppy
\begin{itemize}
\item Krypto skyddar data vid överföring \pause
\item Man kan fortfarande se vem som pratar med vem, hur ofta och hur
  mycket
\end{itemize}
}
\end{frame}

\begin{frame}{Steganografi ger inte anonymitet}
\parbox{4cm}{\sloppy 
\includegraphics[scale=0.40]{../images/StenographyOriginal} \\
\includegraphics[scale=0.40]{../images/StenographyRecovered}
}
\parbox{5.5cm}{\sloppy 
\begin{itemize}
\item Stego döljer datat \pause
\item Man kan fortfarande se att Alice pratar med någon, hur ofta och
  hur mycket
\end{itemize}
}
\end{frame}

\begin{frame}{Önsketänkande ger inte anonymitet}
\begin{itemize}
\item ``Du kan inte bevisa att det var jag''
\item ``Lova att inte titta''
\item ``Lova att inte lagra''
\item ``Lova att inte berätta för någon''
\end{itemize}
\end{frame}

\begin{frame}{Önsketänkande ger inte anonymitet}
\begin{itemize}
\item Bevis -- Behövs inte, statistisk analys räcker långt \pause
\item Löften -- Kommer de hållas? Finns incitament och kompetens?
  Databaser läcker. \pause
\item ==> ``Privacy by design, not privacy by policy''
\end{itemize}
\end{frame}

\begin{frame}{Blanda sig med mängden}
\begin{itemize}
\item Användaren måste gömmas i en massa \pause
\item Ett system för detta måste få användaren att se ut som alla
  andra \pause
\item Dölja vem som pratar med vem \pause
\item Även för operatörer av systemet
\end{itemize}
\end{frame}

\begin{frame}{Vem använder Tor}
\begin{itemize}
\item{Vanliga människor} \\ Reklamnätverk, sökmotorer, kringgå censur. \pause
\item{Polisen} \\ Undersökning utan uniformen på, skydd av privatliv. \pause
\item{Nätaktivister} \\ Blogga, personlig säkerhet, åtkomst till
  blockerade sidor. \pause
\item{Militären} \\ I fält, separera privatliv och tjänstgöring. \pause
\item{Personer med skyddad identitet} \\ Offer för kvinnofridsbrott
  behöver också internet, t.ex. för kontakt med andra.
\end{itemize}
\end{frame}

%\begin{frame}{Egypten}
%\includegraphics[height=6cm]{../images/direct-users-off-2010-06-01-on-300-2011-05-01-eg}
%\end{frame}

%%%%
\section{Hur fungerar Tor}

\begin{frame}{Enhopps-proxy}
\begin{overlayarea}{9cm}{6cm}
\only<1>{\includegraphics[height=6cm]{../images/single_hop_relay}}
\only<2>{\includegraphics[height=6cm]{../images/evil_single_hop_relay}}
\only<3>{\includegraphics[height=6cm]{../images/data_snooping_single_hop_relay}}
\end{overlayarea}
\end{frame}

\begin{frame}{Tor gör tre hopp}
\begin{center}
\begin{overlayarea}{8cm}{5.5cm}
\only<1>{\includegraphics[height=5.3cm]{../images/tor-network}}
\only<2>{\includegraphics[height=5.3cm]{../images/tor-safe-selection}}
\only<3>{\includegraphics[height=5.3cm]{../images/tor-safe-path}}
\end{overlayarea}
\flushright
\tiny Diagram: Robert Watson
\end{center}
\end{frame}

\begin{frame}{Tor gör tre hopp}
\begin{itemize}
\item Ett komprometterat första hopp kan se att Alice pratar men inte
  med vem \pause
\item Ett komprometterat sista hopp kan se att någon pratar med Bob
  men inte vem
\end{itemize}
\end{frame}

\begin{frame}{Tre lager av kryptering}
\begin{itemize}
\item Alice väljer tre relän ur nätverkslistan (konsensus) \pause
\item Exit-policyn hos sista relät tillåter uppkoppling till Bobs
  adress och port \pause
\item Alice förhandlar fram nycklar med det första relät (128-bits
  AES-CTR mha D-H) och sätter upp en ``circuit'' dit (CREATE/CREATED)
  \pause
\item Hoppar vidare till andra relät (EXTEND/EXTENDED -->
  CREATE/CREATED) \pause
\item Hoppar vidare till tredje och sista relät \pause
\item Sista relät sätter upp TCP-koppel till Bobs tjänst
\end{itemize}
\end{frame}

\begin{frame}{Tre lager av kryptering}
\begin{center}
\begin{overlayarea}{8cm}{5.5cm}
\includegraphics[width=7cm]{../images/tor-keys1}
\end{overlayarea}
\end{center}
\end{frame}

\begin{frame}{Kryptering av transportlager}
\begin{itemize}
\item TLS/SSLv3 för kryptering och autenticering \pause
\item Tre versioner av handskakning förhandlar fram version \pause
\item v2 och v3: NETINFO, VERSIONS \pause
\item v3: CERTS AUTH\_CHALLLENGE, AUTHENTICATE
\end{itemize}
\end{frame}

\begin{frame}{Nycklar och certifikat}
\begin{itemize}
\item Varje relä har en ``long term identity key'' som signerar
  TLS-cert och ``network documents (``server descriptors'' och
  konsensus) \pause
\item En ``medium term onion key'' för dekryptering av EXTEND-celler \pause
\item En ``short term connection key'' för TLS-koppel
\end{itemize}
\end{frame}

\begin{frame}{Server descriptors}
\begin{itemize}
\item Ett reläs beskrivning av sig självt \pause
\item Innehåller nickname, annonserad kapacitet, timestamp, publik del
  av identity key, IP-adress och port(ar), onion key (publika delen),
  exit policy, family, m.m. \pause
\item Signeras med identity key \pause
\item Laddas upp till ``directory authorities'' \pause
\item Bakas ihop till ``konsensus'' -- listan över de reläer som utgör
  Tor-nätverket för en timme framöver
\end{itemize}
\end{frame}

\begin{frame}{Directory authorities}
\begin{itemize}
\item Åtta stycken i fem länder (plus en för bryggor) \pause
\item Röstar fram en s.k. konsensus varje timme \pause
\item Konsensus utgör nätverkskartan \pause
\item Signeras med ``long term key'' \pause
\item Klienter laddar ner konsensus och väljer relän ur denna för att
  bygga circuits \pause
\item Listan på directory authorities och deras long term keys finns
  inkompilerad i klienten (och relän)
\end{itemize}
\end{frame}

\begin{frame}{Bryggor}
\begin{itemize}
\item Bryggor är ``semipublika'' relän \pause
\item Fungerar som bryggor mellan internet och Tor-nätet för användare
  som inte kan nå publika relän p.g.a. blockering \pause
\item Tor-nätet har en ``bridge authority'' dit en brygga kan ladda
  upp sin deskriptor \pause
\item Bryggor sprids sedan av Tor-projektet via e-post, web, IM,
  kontakter\pause
\item Privata bryggor laddar inte upp deskriptorer utan operatören
  sprider själv bryggans address och port
\end{itemize}
\end{frame}

\begin{frame}{Hidden services}
\begin{itemize}
\item 2004, för anti-DoS och fysisk säkerhet \pause
\item Lasse Øverlier, FFI (Forsvarets forskningsinstitutt)
\end{itemize}
\end{frame}

\begin{frame}{Svagheter}
\begin{itemize}
\item End-to-end timing correlation \pause
\item Applikationslagret -- browsers läcker som såll \pause
\item Bittorent läcker -- se bl.a. papper från NRIA 2010 \\
  \tiny \url{https://blog.torproject.org/blog/bittorrent-over-tor-isnt-good-idea}
\end{itemize}
\end{frame}

%%%%
\section{Verktyg}

\begin{frame}{Metrics -- mätdata, statistik, grafer}
\begin{itemize}
\item Nätstatus -- konsensus, söka på reläer \pause
\item Grafer -- statistik för nät, användare, nedladdningar, prestanda \pause
\item Mätdata som ligger till grund för graferna \pause
\item Forskningspapper och tekniska rapporter \pause
\item Verktyg -- TorDNSEL och ExoneraTor
\end{itemize}
\end{frame}

\begin{frame}{TorDNSEL}
\begin{itemize}
\item DNS-baserad lista av exitrelän \pause
\item Svarar snabbt på frågan ``Är den här IP-addressen ett exitrelä
  just nu?'' \pause
\item Används i applikationer för att t.ex. kräva autenticering eller
  en CAPTCHA \pause
\item Använd Tor-projektets tjänst eller kör den själv
\end{itemize}
\end{frame}

\begin{frame}{ExoneraTor}
\begin{itemize}
\item Svarar på frågan ``Agerade den här IP-adressen och porten
  Tor-exitrelä vid den här tidpunkten?'' \pause
\item Ladda ner verktyg och databas och ställ lokala frågor \pause
\item Tjänst tillhandahållen av Tor-projektet:
  \small \url{https://metrics.torproject.org/exonerator.html}
\end{itemize}
\end{frame}

%%%%
\section{Avslutning}
\begin{frame}{Källor, tillerkännanden}
\begin{itemize}
\item Krypto skyddar data vid överföring (Alice, Bob och ondskan): Ilja Hallberg
\item Trädet med katten i: GFDL
  \tiny \url{https://commons.wikimedia.org/wiki/GNU_Free_Documentation_License}
\item Katten (utan träd): GFDL
  \tiny \url{https://commons.wikimedia.org/wiki/GNU_Free_Documentation_License}
\end{itemize}
\end{frame}

\begin{frame}{Frågor}
\begin{center}
Frågor?
\end{center}
\end{frame}

%%%%
\end{document}
