Professional Documents
Culture Documents
El Colegio de Honores
Middletown, Connecticut
Abril 2011
Agradecimientos
Primero quiero agradecer a Norman Danner y a Danny Krizane, quienes me han
permitido trabajar con ellos en proyectos relacionados con Tor desde mi segundo
ao, y quienes han sido mis asesores para esta tesis. Estoy sumamente agradecido
por su tiempo, consejo y paciencia. He sido capaz de haber pasado mucho tiempo
en Wesleyan trabajando en un tema que encuentro extremadamente interesante, y
me considero muy afortunado de haber tenido dicha oportunidad.
Tambin quisiera agradecer a mis amigos, quienes me apoyaron durante este
proceso y durante todo mi tiempo en Wesleyan. He aprendido tanto de ellos como
lo he hecho de las clases que he tomado aqu. Me gustara agradecer especialmente
a mis compaeros de piso. Andrew, Dan, Dave, Ryan, Jess y Lindsey han sido
pacientes conmigo estas ltimas semanas a pesar de que estuviese cansado,
estresado, e irritable, y han sido maravillosos amigos todo el tiempo desde que los
conozco en Wesleyan.
Finalmente, quisiera agradecer a mis padres. Siempre han apoyado y
animado mi curiosidad e intereses, y es ese apoyo el que me ha convertido en la
persona que soy hoy da.
ii
Resumen
Tor es un sistema de anonimato de baja-latencia ampliamente usado. Permite a
los usuarios de navegadores web, clientes de un chat y otras aplicaciones de bajalatencia comunicarse annimamente en lnea al enrutar sus conexiones a travs
de un circuito de tres routers Tor. No obstante, Tor es comnmente considerado
vulnerable a una gran variedad de ataques, que le podran permitir a operadores
iii
Contenidos
Captulo 1. Introduccin
1.1. Circuitos y Cifrado Onion
1.2. Clulas de Tor
1.3. Servidores de Directorios
1.4. Contribuciones de esta Tesis
Captulo 2. Ataques en Tor
2.1. Correlacin de Flujo
2.2. Atasco
2.3. Round-Trip Travel Time
iv
Captulo 1
Introduccin
Cada uno de los mensajes que se envan por Internet tienen informacin de
enrutamiento que puede ser usada para identificar el remitente y el destinatario del
mensaje. Para muchos usuarios de Internet, esto supone un problema. Activistas,
denunciantes annimos y defensores de derechos humanos podran querer ser
annimos para evadir la posible represin de gobiernos o corporaciones. Militares
y fuerzas del orden podran querer ser annimos para poder recolectar informacin
o realizar operaciones de seguimiento y captura sin ser identificados. Personas
que viven en pases o trabajan en compaas con internet censurado usaran el
anonimato como una forma de burlar las medidas de censura. Hasta este punto,
muchos sistemas de anonimato han sido desarrollados con el objetivo de facilitar la
comunicacin annima online.
crear un mejor ataque examinando las mtricas del trfico Tor. Este captulo
describe cmo funciona Tor y cuales son los objetivos de esta investigacin.
Clulas
Tor
CircId
Command
Payload (0-padded)
2 bytes
1 byte
PAYLOAD_LEN bytes
Las clulas CREATE son usadas para iniciar una conexin entre dos
procesos Tor. Son enviadas por los proxies onion para crear el primer tramo en
un circuito y tambin por los routers onion para extender el circuito un tramo. Las
clulas CREATED son la respuesta a un CREATE exitoso. Las clulas RELAY y
RELAY_EARLY son empaquetadores que contiene cada mensaje enviado sobre
un circuito establecido. Sern discutidas en detalle en un momento. Las clulas
DESTROY son enviadas a nodos adyacentes para destruir un circuito. El campo
PAYLOAD es la parte de la clula que es cifrada.
Relay Command
Recognized
StreamID
1 byte
2 bytes
2 bytes
Digest
4 bytes
Length
2 bytes
Data
498 bytes
Captulo 2
Ataques en Tor
Diferentes tipos de ataques han sido propuestos para que funcionen en
redes de baja-latencia en general y en Tor en particular. Este captulo es una breve
inspeccin a algunos de esos ataques. Dos de ellos sern estudiados detalladamente
Captulo 3
la latencia entre la clulas de Tor, y la intensidad general del flujo. En una red
ideal, esperaramos que la latencia se mantenga constante, y que el flujo tarde
exactamente lo mismo enviando y recibiendo. Sin embargo, los routers Tor tienen
velocidades y cualidades de conexin diferentes, as que asumir que Tor es siquiera
similar a una red ideal en estos aspectos supondra un problema.
3.1.1. Arreglo del Test. Nuestra meta es probar si la correlacin funciona
cuando el atacante controla el router tanto de entrada como de salida, para esto
usaremos routers privados de entrada y salida trabajando en el mismo computador
para estos tests: slo los routers intermedios cambiarn.
Para nuestro grupo de control, utilizaremos otro router privado como el
router intermedio. Ser ejecutado en el mismo computador como la entrada y la
salida. El trfico que vaya a travs de este router no ser objeto de latencia, pues la
conexin no estar en una red. Y ya que que no habr otro trfico viajando por el
mismo router, no supondr una carga significativa, por lo tanto las condiciones
sern tan ideales como sea posible.
Para nuestro primer grupo experimental, el router intermedio ser un router
pblico que controlemos. Este router es ejecutado desde un computador diferente,
pero est en la misma red de rea local que el computador corriendo los routers
privados de entrada y salida, y as la latencia es baja y considerablemente
constante. Durante el tiempo del test, nuestro router estuvo enrutando cerca de
1Mbit/s del trfico Tor, por lo que tiene carga, Este test nos permitir determinar si
la carga de los routers Tor afecta las mtricas.
Nuestro segundo grupo experimental utilizar una gran variedad de routers
intermedios, para cada prueba, usaremos un router al azar de los disponibles en la
red para que sea el router intermedio. Este grupo tendr latencias y cargas de
router variadas, y nos posibilitar observar su efecto combinado en las mtricas.
Para cada grupo, realizaremos pruebas con dos tipos de trfico. El primero
es un cliente ping que enva un ping y recibe una respuesta cada 200ms durante 30
segundos. Este tipo ser usado para medir la efecto de Tor en la latencia entreclulas. El segundo tipo de trfico es la descarga de un archivo de 1MiB, que ser
utilizado para verificar si la intensidad promedio del flujo varia.
Nuestra recoleccin de informacin consiste en la obtencin de la marca de
tiempo de cada clula RELAY enviada o recibida por los routers de entrada o
salida. Recolectamos estos datos modificando el cdigo fuente de Tor para usar el
sistema existente de logging de Tor para registrar los datos de la clula Tor en un
archivo.
3.1.2. Resultados. Debido a que los dos tipos de trfico que estamos
estudiando son muy diferentes, usaremos diferentes mtricas para evaluar el efecto
que tuvieron al pasar a travs de Tor. Para el trfico de tasa-constante intermitente
(ping), miraremos las distribuciones de retrasos entre paquetes consecutivos. Ya
que el cliente est enviando los pings, esperamos que el retraso entre las clulas
en el primer router sean casi constantes a 200 milisegundos (ms) (o muy cercano
a eso). Suponemos que el retraso se mantendr constante (o muy prximo a ello)
en nuestro grupo de control, y que variar en ambos grupos experimentales.
Realizamos rondas de recoleccin de datos con el grupo de control y ambos grupos
experimentales. Las distribuciones de retraso entre-clulas de los tres se presentan
en la Figura 3.1.
entrada como de no-entrada, pero los valores son muy diferentes. Sin embargo,
nuestros datos contenan muchas ms creaciones de circuitos de no-entrada que
de circuitos de entrada, y as estas variaciones en los valores tienen sentido. La
Figura 3(b) tiene su eje-x a escala para que los valores sean 4% de los valores en la
Figura 3(a), La proporcin de creacin entre circuitos de entrada y de no-entrada
fue 4 : 100 tambin, as que las distribuciones se ven similares. Esto significa
que la razn de que los valores sean significativamente diferentes es la tasa de
creacin de circuito, nada fundamentalmente distinto sobre los diferentes tipos de
circuitos. Esto tiene sentido, debido a que la creacin de circuito de no-entrada en
nuestro router corresponde a la creacin de circuito de entrada en un router Tor
completamente diferente.
Asimismo, los datos del tiempo de distribucin nos indican que el tiempo
de creacin de un circuito puede tener una buena mtrica por diferenciarse entre
circuitos: incluso al considerar la gran cantidad de circuitos de no-entrada, menos
del 30% de los circuitos tuvieron tiempos iniciales dentro de un tercio de segundo
de otro circuito.
Los datos de distribucin de conteo -presentados en la Figura 3.4- nos
muestran que la mayora de circuitos son cortos: 50 - 60% de los circuitos tienen
100 o menos devueltas al OP. Esto implica que un algoritmo de correlacin
efectivo necesita ser capaz de correlacionar circuitos tanto cortos como largos. En
tanto a la informacin del tiempo de inicio del circuito, la forma de las
distribuciones para los conteos de entrada y no-entrada son muy similares.
Captulo 4
clulas adyacentes como vectores de correlacin, Levine et al. observaron que ese
mtodo es frgil porque es sensible a paquetes cados. Su mtodo es un producto
de vector normalizado en una serie de tiempo generado a partir de los datos
de sincronizacin observados, en vez de hacerlo directamente en los datos de
sincronizacin.
Para construir una serie de tiempo , escogemos un margen de tamao w,
dividimos el flujo de paquetes z entre mrgenes no-superpuestos de tamao w (Con
padding-cero (Zero-padded) para que la serie de tiempo inicie y termine al mismo
tiempo), y contamos el nmero de paquetes en cada margen. El vector de conteo de
paquetes es la serie de tiempo.
Definen la correlacin-cruzada con el retardo d de la serie de tiempo de los
flujos x y y como
Debido a que slo desean probabilidades relativas (ms que absolutas), ignoran
todos los factores independientes de k, lo que les permite derivar la probabilidad
final:
menor que el que le toma a dicho flujo salir completamente de Tor por el otro
extremo. El primero de estos factores puede afectar a los algoritmos de correlacin
que dependan en la sincronizacin de paquetes individuales (como el algoritmo
presentado por Levine et al.), y el segundo de estos factores puede afectar
algoritmos de correlacin que dependan de la sincronizacin general del circuito,
como el presentado por Murdoch y Zieliski.
En un intento por contrarrestar ambos problemas, presentamos y probamos
nuestro propio algoritmo de correlacin. Este algoritmo tiene en cuenta dos
factores: el tiempo inicial del circuito, y el nmero total de clulas Tor enviadas
por el circuito. Para nuestro algoritmo de correlacin, definimos la correlacin c
como
rango de [0,1]. Esto implica que los valores de correlacin positivos son absolutos
en vez de ser relativos, y que pueden ser comparados directamente durante
mltiples tests del algoritmo, en vez de relativamente en una ejecucin dada.
Adems de ser ms simple y usar menos informacin que los otros dos
mtodos previos, nuestro mtodo de correlacin simplificado tambin es
significativamente ms veloz al computar, pues depende nicamente en
operaciones aritmticas bsicas, y opera slo con nmeros que entran en la clase
estndar int, hacindolo una operacin O(1) para realizar una nica correlacin de
dos flujos. A diferencia de la correlacin de Levine et al., que es O(n) en el
nmero de paquetes observados para realizar una sola correlacin porque necesita
calcular un producto de vectores. La correlacin de Murdoch y Zieliski es O(1)
tambin cuando se usa la aproximacin de Stirling, pero sigue siendo
significativamente ms lenta que nuestro mtodo de correlacin en la prctica.
4.3. Organizacin del Test
Controlamos un nico router Tor abierto al pblico, el cual usaremos para
recolectar datos para el test. Nuestro router es estable y un guardia, esto significa
que algunos clientes lo usarn como su router de entrada. Lo usaremos para
recoger informacin mientras ste sea el router de entrada o el router intermedio de
un circuito. As mismo, reuniremos datos de un router privado de salida usado
exclusivamente por nosotros. Los datos agrupados consisten de las marcas de
tiempo de las clulas RELAY enviadas y recibidas, junto con las direcciones y las
identificaciones (ids) de circuito asociadas a cada clula. Puesto que no deseamos
comprometer el anonimato de las personas utilizando nuestro router Tor,
reemplazaremos cada direccin IP (que es la nica informacin que registramos)
con un string aleatorio nico.
Crearemos flujos con nuestro router pblico como la entrada, un router
intermedio aleatorio, y nuestra salida privada. Realizaremos una correlacin
mucho-a-uno, correlacionando todos los datos observados (llamados anteriormente
) en nuestro router pblico de entrada con cada flujo individual (un dado) en
nuestro router privado de salida.
La correlacin para un flujo dado registrado en nuestro router privado de
salida (y un algoritmo de correlacin dado) ser considerada parcialmente exitosa
cuando el algoritmo de correlacin sea capaz de identificar correctamente el flujo
originalmente propuesto para el uso por un atacante que controle los intercambios
de Internet que sirvan como nodos de conexin entre pases. Dicho atacante sera
capaz de observar cantidades de trfico mayores a la vez que aquellos controlando
un pequeo nmero de routers Tor.
4.4.3. Resultados de la Correlacin Simplificada. Nuestro algoritmo
presenta el mejor desempeo. Tiene una tasa casi perfecta de xito parcial para
todos los tipos de trfico, esto significa que si un atacante es capaz de observar
tanto el flujo de entrada como de salida, muy probablemente podr realizar la
correlacin. As mismo, presenta una alta tasa de xito total, por lo tanto un
atacante usando el algoritmo simplificado ser capaz de identificar la mayora
de casos en los que intente correlacionar un flujo del cual no conoce el otro
extremo. Tiene sentido, ya que nuestro algoritmo simplificado produce un valor
de correlacin absoluto que puede ser comparado de manera significativa entre
flujos. Esto hace de nuestro algoritmo simplificado la mejor opcin para el modelo
de ataque especificado, pues le permite a los atacantes que controlen un pequeo
nmero de routers algn grado de proteccin contra falsos positivos. Adems los
resultados de nuestro algoritmo simplificado son consistentes entre los tres tipos
de trfico que pusimos a prueba, indicando que la correlacin de sincronizacin
puede ser realizada en Tor incluso en casos donde hay tan poca informacin siendo
enviada por un circuito. Los usuarios no pueden evadir atacantes que usen el
algoritmo simplificado de correlacin enviando menos trfico.
4.4.4. Aplicacin de los Resultados. Un problema con nuestros resultados
es que estn basados en un nico router pblico. Nuestros resultados no
necesariamente se generalizan a atacantes ejecutando muchos routers, porque
estarn observando significativamente mayor trfico. Nuestro algoritmo
simplificado depende de dos factores -el tiempo inicial de flujo y el nmero de
clulas del flujo- que son relativamente nicos para la cantidad de datos que
fuimos capaces de poner a prueba. Estos dos factores dejarn de ser tan nicos
cuanta mayor informacin tengamos, y por lo tanto suponemos que nuestro mtodo
de correlacin simplificado no se desempear tan bien.
Consideremos nuestro arreglo del test con un nico router Tor. Basados en
el nmero de circuitos creados a travs de nuestro router en un perodo de tiempo
t, el ancho de banda de nuestro router b, el total de ancho de banda de la red B,
Captulo 5
Conclusin
En este trabajo, nuestra meta fue determinar si era factible o no realizar
ataque de correlacin pasivos en Tor, tambin si era posible para los usuarios
evadir atacantes que usen dichos ataques al enviar nicamente pequeas cantidades
de datos.
Para ese fin, probamos dos algoritmos de correlacin y descubrimos que
ambos tienen debilidades. La correlacin del producto de punto propuesto por
Levine et al. es consistentemente exitosa en slo uno de los tres tipos de trfico que
pusimos a prueba, y la correlacin Bayesiana propuesta por Murdoch y Zieliski
no tiene una manera confiable de evadir falsos positivos a menos que el atacante
controle toda o casi toda la red. Asimismo diseamos y probamos un nuevo y
Bibliografa
[1] Adam Back, Ulf Mller, y Anton Stiglic. Traffic analysis attacks and
trade-offs in anonymity providing systems. En Ira S. Moskowitz, editor,
Proceedings of Information Hiding Workshop (IH 2001), pginas 245-257.
Springer-Verlag, LNCS 2137, Abril 2001.
[2] Nikita Borisov, George Danezis, Prateek Mittal, y Parisa Tabriz.
Denial of service or denial of security? How attacks on reliability can
compromise anonymity. En Proceedings of CCS 2007, Octubre 2007.
[3] Roger Dingledine y Nick Mathewson. tor-spec.txt. https://
gitweb.torproject.org/torspec.git/blob_plain/
3b5b8804f64a4db7ec7fc0185ea1afb7a2713797:/tor-spec.txt,
Marzo 2011.
[4] Roger Dingledine, Nick Mathewson, y Paul Syverson. Tor: The
second-generation onion router. En Proceedings of the 19th USENIX
Security Symposium, pginas 303-320, Agosto 2004.
[5] Nicholas Hopper, Eugene Y. Vasserman, y Eric Chan-Tin. How much
anonymity does network latency leak? ACM Transactions on Information
and System Security, 13(2), Febrero 2010.
[6] Brian N. Levine, Michael K. Reiter, Chenxi Wang, y Matthew K.
Wright. Timing attacks in low-latency mix-based systems. En Ari Juels,
editor, Proceedings of Financial Cryptography (FC 04), pginas 251-265.
Springer-Verlag. LNCS 3110, Febrero 2004.