analizando la efectividad de ataques de correlación pasivos en la red de anonimato tor

35
Universidad Wesleyana El Colegio de Honores Analizando la Efectividad de Ataques de Correlación Pasivos en la Red de Anonimato Tor por Sam DeFabbia-Kane Clase del 2011 Traducción hecha por: Juan Eljach y Gustavo Rendón, Exploiter.co Una tesis entregada a la facultad de la Universidad Wesleyana como cumplimiento parcial de los requerimientos para el Diploma de Bachiller de Artes con Honores Departamentales en Ciencias de la Computación 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 año, y quienes han sido mis asesores para esta tesis. Estoy sumamente agradecido

Upload: chema-alonso

Post on 19-Jun-2015

17.457 views

Category:

Technology


1 download

DESCRIPTION

Traducción de la tesis de Sam DeFabbia-Kane en el año 2011. Una tesis entregada a la facultad de la Universidad Wesleyana como cumplimiento parcial de los requerimientos para el Diploma de Bachiller de Artes con Honores Departamentales en Ciencias de la Computación

TRANSCRIPT

Page 1: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Universidad Wesleyana El Colegio de Honores

Analizando la Efectividad de Ataques de Correlación Pasivos en la Red de Anonimato Tor

por

Sam DeFabbia-Kane

Clase del 2011

Traducción hecha por: Juan Eljach y Gustavo Rendón, Exploiter.co

Una tesis entregada a la facultad de la Universidad Wesleyana como cumplimiento parcial de los requerimientos para el Diploma de Bachiller de Artes con Honores Departamentales en Ciencias de la Computación

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 año, y quienes han sido mis asesores para esta tesis. Estoy sumamente agradecido

Page 2: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

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.

También 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 gustaría agradecer especialmente a mis compañeros 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 día.

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 baja-latencia comunicarse anónimamente en línea al enrutar sus conexiones a través de un circuito de tres routers Tor. No obstante, Tor es comúnmente considerado vulnerable a una gran variedad de ataques, que le podrían permitir a operadores

Page 3: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Tor u observadores ajenos comprometer el anonimato de los usuarios de Tor. Uno de estos ataques es el ataque de correlación extremo-a-extremo, por lo cual un atacante controlando el primer y último router en un circuito puede usar la sincronización y otros datos para correlacionar flujos observados en esos routers y por lo tanto violar el anonimato de Tor.

Debido a que la mayoría de pruebas previas de algoritmos de correlación han sido usados bien sea en simulación o con sólo ciertos tipos de tráfico, nuestra meta fue verificar que tan bien funcionan estos algoritmos en la red Tor desplegada. En esta tesis probamos tres algoritmos de correlación. Dos de estos algoritmos son de trabajos previos, y el tercero fue diseñado por nosotros. Su diseño estuvo basado en observaciones y análisis de datos que recolectamos durante el proceso de prueba. Encontramos que mientras los dos algoritmos previamente existentes que testeamos tienen problemas que previenen que sean usados en ciertos casos, nuestro algoritmo funciona plenamente en todo tipo de de datos.

iii

Contenidos

Capítulo 1. Introducción 1.1. Circuitos y Cifrado Onion 1.2. Células de Tor 1.3. Servidores de Directorios 1.4. Contribuciones de esta Tesis

Capítulo 2. Ataques en Tor 2.1. Correlación de Flujo 2.2. Atasco 2.3. Round-Trip Travel Time

Page 4: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Capítulo 3. Métricas para el Tráfico de Tor 3.1. Tráfico En Tor 3.2. Tráfico de Router de Entrada

Capítulo 4. Prueba de Algoritmos de Correlación 4.1. Modelo de ataque 4.2. Definiciones de Algoritmo de Correlación 4.3. Organización del Test 4.4. Resultados

Capítulo 5. Conclusión

Bibliografía

ivCapítulo 1

Introducción

Cada uno de los mensajes que se envían por Internet tienen información 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 anónimos y defensores de derechos humanos podrían querer ser anónimos para evadir la posible represión de gobiernos o corporaciones. Militares y fuerzas del orden podrían querer ser anónimos para poder recolectar información o realizar operaciones de seguimiento y captura sin ser identificados. Personas que viven en países o trabajan en compañías con internet censurado usarían 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 comunicación anónima online.

Page 5: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Estos sistemas de anonimato están típicamente divididos en dos categorías: Los de baja latencia y los de alta latencia. Los de alta latencia - como Babel, Mixmaster y Mixminion- implementan medidas de defensa como mixing, padding, batching, y reordering en un intento de protegerse contra un adversario pasivo global que pueda observar todo el tráfico de la red [4]. Sin embargo, dichos sistemas sólo pueden ser usados con métodos de comunicación de alta latencia como el email, lo cual limita su utilidad al igual que a sus usuarios. Los sistemas de baja latencia por lo general no intentan proteger contra un adversario pasivo global, pero pueden ser usados con una variedad mucho más amplia de aplicaciones, incluyendo navegadores, clientes de chat y streaming de vídeo.

Una red muy popular de anonimato de baja latencia es Tor [4]. Tor funciona enrutando la conexión de un usuario a través de 3 routers onion (onion routers; ORs), los cuales forman un circuito y actúan como una cadena de proxies. Los mensajes enviados a través de la conexión se ponen en capas con cifrado (usando una técnica llamada onion encryption) por tanto cada OR conoce solo su origen y destino inmediato. Los routers onion son puestos por voluntarios alrededor del mundo. Los routers son coordinados y catalogados por un pequeño conjunto de servidores de directorios que proveen información acerca de la red Tor y de routers disponibles para los clientes (quienes son llamados por lo general onion proxies o OPs).

A pesar de que no intenta proteger contra un adversario pasivo global, Tor intenta proteger contra un adversario más limitado que puede observar parte del tráfico que viaja en la red, o que controla routers onion. Esto es importante porque cualquier persona puede correr un router onion, y los usuarios de Tor no tienen garantía de que los operadores de estos routers no son maliciosos. Sin embargo, a pesar de los objetivos en su diseño inicial, se asume comúnmente que Tor es vulnerable a muchas clases de ataques por adversarios no globales. En esta investigación, examinaremos uno de estos tipos de ataques: un ataque de correlación extremo-a-extremo pasivo por el cual un atacante controlando el primer y último router en un circuito puede comprometer el anonimato de la conexión que viaja a través de dicho circuito. Como se asume que Tor es vulnerable a este tipo de ataques, muchos de los trabajos anteriores en este tema han sido realizados en simulación o solo en teoría. Aquí buscamos probar la efectividad de estos ataques en una red Tor desplegada, y determinar si podemos

Page 6: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

crear un mejor ataque examinando las métricas del tráfico Tor. Este capítulo describe cómo funciona Tor y cuales son los objetivos de esta investigación.

1.1. Circuitos y Cifrado Onion

Los usuarios que desean usar Tor enrutan su tráfico a través de un proxy onion (OP), el cual maneja transparentemente la creación y cifrado del circuito. El objetivo de Tor es el anonimato. Tor no provee cifrado extremo-a-extremo porque no puede cifrar el paso entre el router de salida y el servidor al que el cliente se está conectando. Para hacer eso requeriría la cooperación de el servidor, lo que significa que Tor no sería un proxy transparente. Tor, por lo tanto, no es un reemplazo para otras tecnologías de cifrado. Sin embargo, Tor usa cifrado porcapas internamente, lo cual logra dos efectos. Primero, asegura que cada router onion (OR) conoce sólo a los nodos adyacentes del circuito. Segundo, previene que los atacantes puedan directamente comparar el tráfico en cualquier conjunto de dos puntos del circuito, debido a que el tráfico es cifrado de forma diferente (Por tanto se ve diferente) en cada punto. El proxy onion (OP) hace este cifrado negociando una clave simétrica con cada uno de los routers en el circuito y cifrando cada mensaje con cada llave simétrica, como se describe a continuación.

Supongamos que son router en un circuito de tamaño n y que es una clave simétrica negociada entre el OP de Alice y . Las claves para son negociadas a través de los routers previos en el circuito . Cuando se envía un mensaje M, el cliente lo cifra con la llave , luego , etc., hasta llegar a . Consideremos el caso donde Alice está enviando un mensaje a Bob en un circuito de tamaño-3 → → . Digamos que denota el mensaje M cifrado con la clave simétrica y denota el mensaje M cifrado primero con , luego , posteriormente . El OP de Alice primero cifrará ese mensaje con la clave , luego y luego , y entonces el mensaje que envíe el OP de Alice será .

Como el mensaje pase a través del circuito, cada router descifra el mensaje que recibe con su propia llave . Puede entonces pasar al siguiente router en el circuito (o a Bob, si este router es el último en el circuito). Así que mientras M vaya a través del circuito, se ve así:

Page 7: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Cuando Bob quiera regresar un mensaje M’, envía M’ a , que lo encripta con , y luego lo devuelve al circuito. Cada router lo encripta con su llave , y así el camino de vuelta de M’ es muy similar al camino de ida de M. Debido a que sólo Alice conoce las 3 claves , , y ,únicamente Alice puede descifrar el mensaje y leer M’.

1.2. Células de Tor

TOR se comunica sobre TCP para asegurar la entrega en orden. Toda la comunicación entre proxies y routers TOR se da en un protocolo a nivel de aplicación usando mensajes llamados Tor Cells (células TOR). El protocolo está especificado en el documento principal de las especificaciones de Tor, tor-spec.txt [3]. Hay dos versiones del protocolo. A día de hoy todos los procesos de TOR usan siempre la versión 2 de la especificación, y eso es lo que discutiremos aquí.

CircId Command Payload (0-padded) 2 bytes 1 byte PAYLOAD_LEN bytes

FIGURA 1.1. Formato de las Células de Tor

Las células TOR son de 512 bytes. El formato es el presentado en la Figura 1.1. El campo Command define el tipo y propósito de la célula. Los valores comunes para Command incluyen:

● CREATE● CREATED● RELAY● RELAY_EARLY● DESTROY

Page 8: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Las células CREATE son usadas para iniciar una conexión entre dos procesos Tor. Son enviadas por los proxies onion para crear el primer tramo en un circuito y también por los routers onion para extender el circuito un tramo. Las células CREATED son la respuesta a un CREATE exitoso. Las células RELAY y RELAY_EARLY son empaquetadores que contiene cada mensaje enviado sobre un circuito establecido. Serán discutidas en detalle en un momento. Las células DESTROY son enviadas a nodos adyacentes para destruir un circuito. El campo PAYLOAD es la parte de la célula que es cifrada.

Relay Command ‘Recognized’ StreamID Digest Length Data 1 byte 2 bytes 2 bytes 4 bytes 2 bytes 498 bytes

FIGURA 1.2. Formato del Payload de una Célula RELAY

Las células RELAY tienen una cabecera relay adicional incluida en su payload. El formato del payload de una célula RELAY se ilustra en la Figura 1.2. En el campo Relay command se define el propósito de la célula. Las células con relay command BEGIN, END, y CONNECTED son usadas para levantar y tumbar flujos TCP en un circuito. Con DATA son usadas para enviar datos a través de un flujo TCP. EXTEND y EXTENDED son usadas para construir un nuevo circuito y TRUNCATE y TRUNCATED son usadas para tumbar un circuito. Otros tipos de célula tratan con la comunicación del servidor directorio, DNS lookup, y control de congestión.

Los campos ‘Recognized’ y Digest en la cabecera le permiten a un router determinar si la célula está o no completamente descifrada. Una célula es considerada completamente descifrada si el campo Recognized está en cero y Digest es los primeros cuatro bytes, del digest que está corriendo, de todos los destinados u originados en este tramo del circuito. Si la célula no se considera completamente descifrada es pasada al siguiente tramo del circuito. El campo StreamID es establecido por el OP y le permite tanto al OP como al router de salida distinguir entre múltiples flujos en un circuito. El campo "Length" es el número de bytes del campo "Data" que contienen información real. (La información restante es NUL-padded [revisar http://en.wikipedia.org/wiki/Padding_(cryptography)#Hash_functions Sección Zero padding]).

Page 9: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Las células RELAY_EARLY son un tipo especial de célula RELAY usada para creación de circuitos. Los clientes que se comunican con la versión 2 del protocolo de enlace envían células relay de tipo EXTENDED en vez de células RELAY_EARLY. Un OR que recibe más de 8 células RELAY_EARLY cierra el circuito. Esto limita el tamaño máximo de cada circuito, lo cual ayuda a protegerse contra ciertos tipos de ataques, tal como el ataque de spinning packets (paquetes insertados en un router que aumentan tanto el flujo que el router deja de ser un nodo de entrada o salida funcional) de Pappas et al. [9].

1.2.1. Creación de un Circuito. En la Figura 1.3, presentamos un esquema para la creación del circuito. En este diagrama Alice ejecuta un OP y crea el circuito → → . (Con las claves simétricas, , y negociadas durante la creación del circuito.)

FIGURA 1.3. Flujo de Trabajo de la Creación de un Circuito

Page 10: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

1.3 Servidores de directorios

Tor no es un servidor completamente distribuido. Un pequeño número de servidores de directorios llevan una lista -llamada documento de censo- de todos los routers en la red. Cada hora los servidores de directorios combinan su información y votan para crear un documento de censo actualizado. Los clientes y routers que corren en la red extraen un censo actualizado de un servidor de directorio una vez cada hora. El documento de censo -junto con los descriptores de routers publicados por cada router- proveen información suficiente para que los clientes se conecten y verifiquen la identidad de los routers en la red.

1.4 Contribuciones de esta tesis

Tor es comúnmente considerado vulnerable a los ataques de correlación extremo-a-extremo. Mientras el cifrado onion realizado por Tor previene una comparación directa de contenidos de paquetes, un atacante controlando el primer y último router tiene acceso a otra información, tal como la sincronización de paquetes, y esta información es comúnmente considerada suficiente para romper el anonimato de Tor. Sin embargo, los trabajos previos acerca del tema presentan dos problemas. Primero, la mayor parte del trabajo ha sido hecho sólo en teoría o en simulaciones, y estas últimas no necesariamente toman en cuenta todos los factores introducidos por Tor que pueden afectar un algoritmo de correlación dado. Segundo, el trabajo existente que ha sido hecho usando datos reales se enfoca en flujos con una gran cantidad de paquetes enviados, lo cual significa que un usuario de Tor podría ser capaz de evadir a un atacante sólo al enviar pequeñas cantidades de datos a la vez.

Este trabajo busca responder dos preguntas. Primero, buscamos determinar si factores adicionales (tal como la latencia) introducidos por Tor, previenen que un ataque de correlación extremo-a-extremo pasivo funcione. Y segundo, si la correlación es factible, buscamos determinar si dichos ataques pueden funcionar incluso cuando los clientes transfieren sólo cantidades pequeñas de datos.

Page 11: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

El Capítulo 2 provee un repaso del trabajo previo relacionado con la sincronización de correlación y otros ataques relacionados contra Tor. Esta información nos permitirá determinar por qué ciertos algoritmos funcionan o fracasan. El Capítulo 4 describe nuestro experimento y resultados por realizar una correlación sobre Tor. Incluye descripciones detalladas de dos algoritmos de correlación existentes y un nuevo y sencillo algoritmo de correlación, el diseño está basado en la información que examinamos en el Capítulo 3. Finalmente, el Capítulo 5 resume todo nuestro trabajo y sugiere áreas potenciales para futura investigación.

Capítulo 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 capítulo es una breve inspección a algunos de esos ataques. Dos de ellos serán estudiados detalladamente

Page 12: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

y puestos a prueba en el Capítulo 4.

2.1. Correlación de Flujo

En ataques de correlación de flujo, un atacante que puede observar dos flujos de paquetes intenta verificar que pertenecen al mismo flujo en diferentes flujos de la red de anonimato. Ya que los flujos en Tor tienen cifrado onion (onion encryption), no pueden ser comparados directamente y el atacante debe intentar correlacionarlos usando otra información disponible.

2.1.1. Conteo de Paquetes. El conteo de paquetes es una forma sencilla de la correlación de flujos. Tal como es propuesto por Back et. al [1], un atacante que puede observar routers onion cuenta el número de paquetes que entran y salen del primer router para determinar el siguiente nodo en el circuito. El procedimiento es posteriormente repetido en otros routers en el circuito hasta que se determina el destinatario. Aunque esta manera de contar paquetes es relativamente sencilla, requiere que el atacante sea capaz de observar una gran cantidad en la red, y asume que nunca hay una variación en el número de paquetes entrantes y salientes de un router en un flujo dado. Como tal, el conteo de paquetes ha sido opacado por técnicas más sofisticadas de correlación de flujos basadas en la sincronización de paquetes.

2.1.2. Análisis de Sincronización. La sincronización de paquetes es otra parte de los datos que puede ser usada para correlacionar flujos de redes. Una forma sencilla de utilizar los datos de sincronización de paquetes es usar algún tipo de función de correlación para intentar correlacionar flujos basados en su retardo entre-paquetes – el tiempo entre la llegada de paquetes adyacentes al flujo. Sin embargo, este método puede tener problemas con paquetes caídos. Levine et al. [6] propusieron un algoritmo de correlación usando las series de tiempo construidas desde la información de sincronización de packing. Una serie de tiempo es una manera de mirar los datos de sincronización de paquetes. Para crear la serie de tiempo, establecemos una constante de tiempo W, dividimos el flujo de paquetes en ventanas de tamaño W y contamos cuántos paquetes entran en cada ventana. La función de correlación es un producto de vector normalizado. Ellos simularon

Page 13: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

su algoritmo de correlación con cuatro tipos de tráfico usuario (tráfico generado por el estudio de 1996 de Berkeley HomeIP, tráfico aleatorio, tráfico constante y tráfico constante con paquetes caídos aleatorios) y mostraron que podían realizar exitosamente correlaciones en una mayoría de situaciones con un mínimo de falsos positivos.

La debilidad de la mayor parte de ataques de sincronización es que depende en que el atacante controle los routers Tor, y requieren que los atacantes controlen una gran porción de la red Tor para que sean ampliamente efectivos [6]. Aunque ha habido mejoras propuestas (tal como la negación de Barisov et al. del servicio de ataque por lo cual atacar routers mata los circuitos que no pueden controlar [2]), también hay ataques de sincronización que no dependen en el control de routers individuales Tor. Murdoch y Zieliński [8] propusieron un ataque, donde los adversarios controlan los Intercambios de Internet y así pueden observar el tráfico que entra y sale de los países. Mostraron que podían hacer correlación (usando un algoritmo derivado de la fórmula de Bayes) incluso cuando habían rastreado un solo paquete de dos mil en un flujo dado.

2.1.3. Correlación Activa de Sincronización. Los ataques de correlación activa son un esfuerzo por hacer las correlaciones basadas en el tiempo mucho más fáciles y efectivas. Funcionan al tener un router atacante alterando la señal de retraso de un paquete de una conexión al soltar o retrasar paquetes en un flujo. Fueron propuestos, pero no puestos a prueba, por Levine et al [6].

Wang et al. [10] demostró que los ataques activos de sincronización son factibles y efectivos contra protocolos altamente interactivos como VoIP, incluso cuando está protegido por servicio de anonimato de findnot.com. Realizaron ataques activos de sincronización en llamadas Skype punto-a-punto al crear e inyectar una marca de agua única al flujo. Encontraron que, si los parámetros correctos fuesen escogidos, podrían identificar correctamente 99% de los flujos con marcas de agua con una tasa de falsos positivos de 0%. Incrementar la tasa de identificación al 100% venía con el costo de tan sólo una tasa de 0,1% de falsos positivos.

2.2. Atasco.

Page 14: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Murdoch y Danezis [7] presentaron un ataque de atasco, donde tomaron ventaja del hecho de que una conexión a través de n router tiene un efecto en las otras conexiones a través del mismo router. El atacante debe controlar un router Tor y ser capaz de observar una conexión en algún punto entre la salida del router Tor y su destino final. Usando el router Tor involucrado, el atacante puede crear circuitos de tamaño-uno en todos los demás routers Tor uno por uno para ver si esto incrementa la latencia de la conexión que el observador percibe o no. Si lo hace, entonces el router está en el circuito. Murdoch y Danezis probaron su ataque en la naciente red Tor y encontraron que el ataque funcionó contra 11 de los 13 router de la red de aquél entonces. Sin embargo, ya que ahora hay casi 2.500 routers trabajando, este ataque no necesariamente es viable.

2.3. Round-Trip Travel Time

Hopper et al. [5] presenta dos ataques que dependían del tiempo de ida-vuelta (Round-Trip Travel Time (RTT)) de los clientes a los servidores. En el primer ataque, el atacante está en control de dos servidores que están recibiendo conexiones del mismo router de salida. El objetivo del atacante es determinar si las conexiones vienen del mismo circuito. Utilizando uno de los muchos métodos (forzar el navegador del usuario a descargar miles de pequeñas imágenes secuencialmente, forzando al navegador del usuario por medio de unas series de redirecciones HTTP, o el uso de un protocolo interactivo como el IRC), ambos servidores obtienen un gran número de tiempos de ida y vuelta del cliente al cual están investigando. Es entonces cuando ellos comparan la frecuencia de distribuciones del RTTs. Si la frecuencia de distribución es similar, entonces las conexiones son probablemente del mismo circuito.

Page 15: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Capítulo 3

Métricas para el Tráfico de Tor

Nuestro objetivo final es evaluar la efectividad de la sincronización de los ataques de correlación extremo-a-extremo en la red Tor desplegada. No obstante, la mayoría de los algoritmos de correlación de los que hablaremos dependen de distintos factores para realizar la correlación, y por lo tanto antes de poner a prueba los algoritmos de correlación primero los aislaremos y examinaremos algunos de estos factores individualmente. Esto nos permitirá porque algunos funcionan o fracasan así como también proveerá la justificación para un nuevo algoritmo de correlación que presentamos en el Capítulo 4. Ya que estamos testeando la efectividad de estos algoritmos contra un atacante que controle routers Tor, el atacante tiene acceso a cualquier información a la que los routers tengan acceso, esto significa que el atacante puede usar células de datos Tor en vez de los paquetes de datos TCP.

3.1. Tráfico en Tor

Primero examinaremos el efecto que tiene Tor sobre nuestro tráfico de red. Tendremos en cuenta dos factores usados por los algoritmos de correlación:

Page 16: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

la latencia entre la células de Tor, y la intensidad general del flujo. En una red ideal, esperaríamos 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 conexión diferentes, así que asumir que Tor es siquiera similar a una red ideal en estos aspectos supondría un problema.

3.1.1. Arreglo del Test. Nuestra meta es probar si la correlación 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: sólo los routers intermedios cambiarán.

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 tráfico que vaya a través de este router no será objeto de latencia, pues la conexión no estará en una red. Y ya que que no habrá otro tráfico viajando por el mismo router, no supondrá una carga significativa, por lo tanto las condiciones serán tan ideales como sea posible.

Para nuestro primer grupo experimental, el router intermedio será un router público 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 tráfico Tor, por lo que tiene carga, Este test nos permitirá determinar si la carga de los routers Tor afecta las métricas.

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 métricas.

Para cada grupo, realizaremos pruebas con dos tipos de tráfico. El primero es un cliente ping que envía un ping y recibe una respuesta cada 200ms durante 30 segundos. Este tipo será usado para medir la efecto de Tor en la latencia entre-células. El segundo tipo de tráfico es la descarga de un archivo de 1MiB, que será utilizado para verificar si la intensidad promedio del flujo varia.

Nuestra recolección de información consiste en la obtención de la marca de tiempo de cada célula RELAY enviada o recibida por los routers de entrada o salida. Recolectamos estos datos modificando el código fuente de Tor para usar el

Page 17: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

sistema existente de logging de Tor para registrar los datos de la célula Tor en un archivo.

3.1.2. Resultados. Debido a que los dos tipos de tráfico que estamos estudiando son muy diferentes, usaremos diferentes métricas para evaluar el efecto que tuvieron al pasar a través de Tor. Para el tráfico 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 células 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 próximo a ello) en nuestro grupo de control, y que variará en ambos grupos experimentales. Realizamos rondas de recolección de datos con el grupo de control y ambos grupos experimentales. Las distribuciones de retraso entre-células de los tres se presentan en la Figura 3.1.

FIGURA 3.1. Distribuciones de Retraso del Tráfico Ping Entre-Células

Para el archivo de descarga, observamos diferentes métricas: la cantidad de tiempo que tomó enviar el archivo desde la salida de vuelta al router intermedio, y el tiempo tomado en recibir el archivo en el router de entrada desde el router intermedio. Los resultados para esto se ilustran en la Figura 3.2.

Page 18: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

FIGURA 3.2. Incremento en el Tiempo Requerido para Recibir un Archivo en Tor

3.1.3. Conclusiones. Como podemos apreciar en la Figura 3.1(a), el retraso entre-paquetes del tráfico ping llendo a través de routers locales, sin carga en nuestro grupo de control se mantiene casi exactamente igual entre los routers de entrada y salida. Los resultados para el primer grupo experimental -presentados en la Figura 3.1(b)- varian mucho más que los del grupo de control, con una desviación estándar de más del doble. De todas formas, el retraso se mantiene dentro de los 5ms de los esperados 200ms en el 80% del tiempo. Lo mismo no aplica para los resultados de nuestro segundo grupo experimental -presentados en la Figura 3.1(c)- donde la desviación estándar es incluso mayor, y la variación está en 5ms en menos del 50% del tiempo. Esto significa que incluso pequeñas cantidades de tráfico pueden ser susceptibles a latencias cambiantes cuando viajan por un circuito Tor, lo cual podría ser un problema para métodos de correlación que dependen en que el retraso se mantenga relativamente constante.

La Figura 3.2 nos indica que el tiempo requerido para recibir datos en Tor es significativamente más grande que el tiempo que tomó enviarlos, que el incremento del tiempo varía y no puede ser predecido, y también que al menos parte de este incremento ocurre incluso en redes con condiciones ideales, como fue el caso de nuestro primer grupo experimental. Esto sugiere que los métodos de correlación que comparan vectores de información de sincronización directamente -tal como el método presentado en Levine et al. [6]- podrían no funcionar tan bien en la práctica como lo hacen en la teoría, pues los dos flujos tendrán magnitudes muy diferentes.

Page 19: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

3.2. Tráfico de Router de Entrada

Ahora tenemos alguna idea de qué le ocurre al tráfico cuando viaja por Tor. La información adicional sobre el tráfico de Tor también es útil, pues nos permite determinar factores que muy probablemente son únicos. Ya que hemos establecido que el tráfico en Tor tiene una latencia y una magnitud promedio no-constante ( y. por lo tanto, que estos pueden ser factores problemáticos en los que basar la métrica de la correlación), estudiaremos ahora otros dos factores: el tiempo de creación de un circuito, y el número total de células RELAY Tor en cada flujo observado.

3.2.1. Arreglo del Test. Para este test, recolectaremos datos desde nuestro router público Tor. Prestaremos atención a la información acerca de los circuitos usando nuestro router como router de entrada o intermedio. Suponemos cual somos al verificar si el proceso Tor anterior al nuestro en el circuito está en conclusión o no. Si lo está, decimos que somos el router intermedio. De lo contrario, decimos que somos el router de entrada. Excluimos circuitos donde menos de 3 células sean registradas. Se requieren 2 células para la creación del circuito cuando se están usando circuitos Tor estándar de longitud-3. Se hicieron circuitos con menos de 3 células pero nunca fueron usados para enviar o recibir información, así que intentar correlacionarlos no le daría al atacante información provechosa.

3.2.2. Resultados. Los resultados están basados en aproximadamente 800 creaciones de circuitos de entrada y otras 20.000 creaciones recogidas durante múltiples pruebas. Los resultados para el tiempo de distribución de la creación de nuevos circuitos son presentados en la Figura 3.3. Los resultados para la distribución del conteo de células inward-bound (inward-bound cells) de circuitos en nuestro router Tor se ilustran en la Figura 3.4.

Page 20: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

FIGURA 3.3. Distribución del tiempo entre la creación consecutiva de circuitos en nuestro router Tor

FIGURA 3.4. Distribución del conteo de células inward-bound

3.2.3. Conclusiones. Como podemos observar en la Figura 3.3, la forma de las distribuciones de tiempo es muy similar para la creación de circuitos tanto de

Page 21: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

entrada como de no-entrada, pero los valores son muy diferentes. Sin embargo, nuestros datos contenían muchas más 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 proporción de creación entre circuitos de entrada y de no-entrada fue 4 : 100 también, así que las distribuciones se ven similares. Esto significa que la razón de que los valores sean significativamente diferentes es la tasa de creación de circuito, nada fundamentalmente distinto sobre los diferentes tipos de circuitos. Esto tiene sentido, debido a que la creación de circuito de no-entrada en nuestro router corresponde a la creación de circuito de entrada en un router Tor completamente diferente.

Asimismo, los datos del tiempo de distribución nos indican que el tiempo de creación de un circuito puede tener una buena métrica 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 distribución de conteo -presentados en la Figura 3.4- nos muestran que la mayoría de circuitos son cortos: 50 - 60% de los circuitos tienen 100 o menos devueltas al OP. Esto implica que un algoritmo de correlación efectivo necesita ser capaz de correlacionar circuitos tanto cortos como largos. En tanto a la información del tiempo de inicio del circuito, la forma de las distribuciones para los conteos de entrada y no-entrada son muy similares.

Capítulo 4

Prueba de Algoritmos de Correlación

Page 22: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Habiendo establecido los efectos que tiene el tráfico de red en Tor, regresamos a nuestro objetivo original: Poner a prueba métodos de correlación de sincronización en un tráfico real de Tor.

4.1. Modelo de Ataque

Para todas las siguientes definiciones, diremos que y son el primer y último router en un circuito, los cuales son controlados por un atacante cuya meta es violar el anonimato de Tor para un subconjunto de usuarios. Diremos que son flujos de células Tor observados en , y que son flujos de células Tor observados en , el router de entrada. Para cada , la meta del atacante es determinar si existe un tal que y sean el mismo flujo. Debido a que todos los algoritmos de correlación trabajan únicamente en dos flujos registrados al mismo tiempo, nos referiremos a los flujos a considerar como x y y por cuestiones de simplicidad.

4.2. Definiciones de Algoritmo de Correlación

Consideramos dos métodos existentes de correlación -escogidos porque están bien definidos y trabajan de forma distinta- y un método de correlación que desarrollamos. Primero consideramos el método de correlación de Levine et al. [6], el cual es un producto de vector normalizado que tiene en cuenta datos de sincronización de todas la células Tor observadas, y que fue originalmente puesto a prueba en una simulación. Posteriormente consideramos el método propuesto por Murdoch y Zieliński [8], que funciona sin valorar los datos de sincronización de células individuales, y que originalmente fue testeado en datos reales. Finalmente, proponemos un nuevo y simplificado algoritmo de correlación que también funciona sin considerar información de células individuales, y que es significativamente menos intensivo computacionalmente que cualquiera de los otros dos métodos.

4.2.1. Correlación de Levine et al. El método propuesto por Levine et al. utiliza datos de sincronización de todas las células Tor observadas. Mientras algunos ataques publicados previamente intentaban usar la sincronización entre

Page 23: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

células adyacentes como vectores de correlación, Levine et al. observaron que ese método es frágil porque es sensible a paquetes caídos. Su método es un producto de vector normalizado en una serie de tiempo generado a partir de los datos de sincronización observados, en vez de hacerlo directamente en los datos de sincronización.

Para construir una serie de tiempo , escogemos un margen de tamaño w, dividimos el flujo de paquetes z entre márgenes no-superpuestos de tamaño w (Con padding-cero (Zero-padded) para que la serie de tiempo inicie y termine al mismo tiempo), y contamos el número de paquetes en cada margen. El vector de conteo de paquetes es la serie de tiempo.

Definen la correlación-cruzada con el retardo d de la serie de tiempo de los flujos x y y como

con siendo el elemento i-ario () de la serie de tiempo , y siendo el promedio entre todos los en . Para sus análisis, Levine et al. usaron un retraso de 0 y un margen de tamaño 10 segundos.

Aquí, consideramos dos vectores y . La fórmula de correlación es el producto de de vector normalizado de estos dos vectores. El producto normalizado de dos vectores es más grande cuanto más cerca de ser vectores paralelos, por lo que un resultado grande indica que los dos vectores ( y, por lo tanto, los dos flujos de paquetes) están mucho más correlacionados. No obstante, el valor del producto de vectores estándar variará dependiendo de la magnitud de los vectores que se comparen, así que es útil normalizar los valores. Esto puede ser hecho tomando ventaja de la relación entre el valor del vector normalizado y el ángulo entre los dos vectores.

Donde, a y b son vectores, es el producto de los vectores a y b, y es la magnitud del vector a . Para aislar y obtener el ángulo, podemos reescribir la fórmula de la siguiente manera:

Page 24: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Debido a que el dominio de arccos es (y ya que conocemos que el argumento es válido por la desigualdad de Cauchy-Schwarz), conocemos que el argumento también está en el rango . Puesto que arccos cambia y decrece constantemente de en ese intervalo, los dos vectores son paralelos cuando el argumento es 1, y antiparalelos cuando el valor es -1. El argumento para arccos en la fórmula anterior es el equivalente a la función de correlación, ya que el numerador en la fraction corresponde a la definición de producto de vectores, y el denominador es el producto de las magnitudes, calculadas usando el caso n-dimensional del teorema de Pitágoras.

Un problema con el método de correlación de Levine et al. es que el resultado no está definido en ciertos casos. Ya que el algoritmo sustrae el valor promedio de una serie de tiempo de cada index antes de hacer la correlación, una serie de tiempo con el mismo número en cada index terminará teniendo ceros, resultando en una indeterminación por dividir entre cero. Cuando eso ocurre, retornamos una correlación de -1, que significa que en efecto no tenemos en cuenta ese resultado. Asimismo, sólo consideraremos correlaciones con un retraso d de 0, ya que eso fue lo que Levine et al. descubrieron era efectivo.

4.2.2. Correlación de Murdoch y Zieliński. El método propuesto por Murdoch y Zieliński es una derivación de la fórmula de Bayes. Ellos modelan cada flujo p como un proceso Poisson con un tiempo inicial s, duración l, y una tasa r (paquetes promedio por segundo). Ya que el flujo real p no es observable, consideran entonces dos flujos x y y. Ambos pueden ser directamente observados por el atacante, y son modelados como procesos Poisson independientes desde los parámetros de p. Ellos pueden entonces derivar la probabilidad de que x y sean del mismo flujo usando la fórmula de Bayes:

Debido a que sólo desean probabilidades relativas (más que absolutas), ignoran todos los factores independientes de k, lo que les permite derivar la probabilidad final:

Page 25: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

∏(n) = (n - 1)!, es el número total de paquetes en y, , es la magnitud observada de x , y , es la magnitud total observada de x y y.

La fórmula tiene tres partes, las cuales se multiplican entre sí para encontrar la probabilidad. La primera parte está basada en la tasa de paquetes observados en x y y, la segunda es un factor de corrección para la tasa, y la tercera parte es dependiente de la magnitud, lo cual ayuda a asegurar que sólo los flujos que ocurrieron casi al mismo tiempo y que duraron casi lo mismo son considerados.

Este método de correlación fue originalmente propuesto para ser usado por un adversario que controla los intercambios de Internet, fuera de la red Tor, y que pudiese observar únicamente muestras pequeñas (cerca de 1 de cada 2000 paquetes para cada flujo) de tráfico para un flujo dado. Sin embargo, este método de correlación puede ser usado dentro de la red Tor por un atacante que controle routers Tor, el cual es nuestro modelo de ataque. Un problema al usar este método de correlación en nuestro modelo es que sus probabilidades son estrictamente relativas y no normalizadas, así que no podemos establecer un punto de referencia que consideremos “suficientemente bueno” para que dos flujos se consideren correlacionados. Esto es problemático en casos donde quizá no necesariamente estemos viendo todas los flujos en la red, y por lo tanto no seamos capaces de correlacionar correctamente un x dado con un y observable.

El resultado final del cálculo de ésta correlación muchas veces tiene un exponente extremadamente pequeño (usualmente de miles negativos o decenas de miles). Ya que ésta fórmula sólo calcula probabilidades relativas, podemos tomar su logaritmo sin perder información. Tomamos ventaja de este hecho y usamos una aproximación de Stirling para factoriales grandes que puedan acelerar de forma significativa el cálculo de la correlación.

4.2.2. Correlación Simplificada. En el capítulo 3, cuantificamos los efectos de Tor en el tráfico de red, y descubrimos dos cosas al respecto. Primero, aprendimos que la latencia de células individuales viajando a través de Tor es variable, incluso dentro de un circuito dado. Segundo, aprendimos que el tiempo total que le toma a un flujo de paquetes entrar a Tor por un extremo es usualmente

Page 26: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

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 correlación que dependan en la sincronización de paquetes individuales (como el algoritmo presentado por Levine et al.), y el segundo de estos factores puede afectar algoritmos de correlación que dependan de la sincronización general del circuito, como el presentado por Murdoch y Zieliński.

En un intento por contrarrestar ambos problemas, presentamos y probamos nuestro propio algoritmo de correlación. Este algoritmo tiene en cuenta dos factores: el tiempo inicial del circuito, y el número total de células Tor enviadas por el circuito. Para nuestro algoritmo de correlación, definimos la correlación c como

En el capítulo 3 observamos que el tiempo inicial del circuito es relativamente único, y por eso lo usamos como la primera parte de nuestra correlación. Nuestra correlación. Nuestra correlación se enfoca en la diferencia de tiempo inicial entre x y y, y toma en cuenta la diferencia como un porcentaje de un tiempo fijado. Ya que nuestras medidas de tiempo están en milisegundos, y debido a que, como vimos en el capítulo 3, 20 segundos es muchísimo más tiempo que cualquier retraso que se pueda presentar en un circuito, usamos 20 segundos (o 20.000 milisegundos) como nuestro tiempo fijado T. Cuando la diferencia de tiempo es pequeña, el primer factor será muy cercano a 1. A medida que la diferencia entre tiempos incrementa, esta se vuelve negativa, así que se localiza en el rango .

También sabemos que Tor garantiza la entrega de células de Tor, así que el número de células Tor en x y y debería ser el mismo después de tomar en cuenta cualquier célula usada para comunicarse con el router intermedio. (El proceso por el que se hace esto se explica en la siguiente sección). Por ende, usamos el conteo de células Tor (el número de células en el flujo x se denota ). Puesto que este factor es un porcentaje inverso del total de número de células enviadas en ambos flujos, su rango es [0,1].

Cuando se multiplican, los resultados varían en un rango de , Sin embargo, debido a que los resultados negativos significan que los circuitos tuvieron tiempos iniciales muy distintos, en realidad sólo necesitamos considerar resultados en un

Page 27: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

rango de [0,1]. Esto implica que los valores de correlación positivos son absolutos en vez de ser relativos, y que pueden ser comparados directamente durante múltiples tests del algoritmo, en vez de relativamente en una ejecución dada.

Además de ser más simple y usar menos información que los otros dos métodos previos, nuestro método de correlación simplificado también es significativamente más veloz al computar, pues depende únicamente en operaciones aritméticas básicas, y opera sólo con números que entran en la clase estándar int, haciéndolo una operación O(1) para realizar una única correlación de dos flujos. A diferencia de la correlación de Levine et al., que es O(n) en el número de paquetes observados para realizar una sola correlación porque necesita calcular un producto de vectores. La correlación de Murdoch y Zieliński es O(1) también cuando se usa la aproximación de Stirling, pero sigue siendo significativamente más lenta que nuestro método de correlación en la práctica.

4.3. Organización del Test

Controlamos un único router Tor abierto al público, el cual usaremos para recolectar datos para el test. Nuestro router es estable y un guardia, esto significa que algunos clientes lo usarán como su router de entrada. Lo usaremos para recoger información 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 células RELAY enviadas y recibidas, junto con las direcciones y las identificaciones (ids) de circuito asociadas a cada célula. Puesto que no deseamos comprometer el anonimato de las personas utilizando nuestro router Tor, reemplazaremos cada dirección IP (que es la única información que registramos) con un string aleatorio único.

Crearemos flujos con nuestro router público como la entrada, un router intermedio aleatorio, y nuestra salida privada. Realizaremos una correlación mucho-a-uno, correlacionando todos los datos observados (llamados anteriormente ) en nuestro router público de entrada con cada flujo individual (un dado) en nuestro router privado de salida.

La correlación para un flujo dado registrado en nuestro router privado de salida (y un algoritmo de correlación dado) será considerada parcialmente exitosa cuando el algoritmo de correlación sea capaz de identificar correctamente el flujo

Page 28: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

correspondiente al router de entrada. No obstante, esta información sólo le es útil a un atacante cuando saben que existe un tal que y provienen del mismo flujo, y así la correlación sólo será considerada totalmente exitosa cuando el valor incorrecto más elevado de correlación sea menor que todos los valores correctos de correlación (para todo ) en una ejecución dada. Si el algoritmo es completamente exitoso de manera consistente entonces el atacante puede establecer una marca para la correlación, lo que les permite determinar si existe o no un que provino del mismo flujo que , además de determinar qué flujo es.

Realizaremos tests con tres tipos de tráfico. Los primeros dos son el archivo de descarga de 1MiB y cliente ping discutidos en el capítulo 3, y el tercero es un archivo de descarga de 10KiB, que nos permite testear si la correlación puede ser hecha de forma exitosa en flujos muy pequeños.

4.4. Resultados

FIGURA 4.1. Resultados de correlación sólo con circuitos de entrada

Los resultados de los test de algoritmos de correlación en 3 tipos de tráfico se presentan en la Figura 4.1 y la Figura 4.2. Aunque un atacante en realidad correlacionaría flujos que estén en el primer router del circuito, mostramos en el Capítulo 3 que los flujos de no-entrada no son esencialmente diferentes, así que presentamos los resultados combinados también para que podamos observar el desempeño de los algoritmos cuando se correlaciona un número mucho mayor de circuitos al mismo tiempo.

Page 29: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

FIGURA 4.2. Resultados de correlación de todos los circuitos

4.4.1. Resultados de la Correlación de Levine et al. Como podemos observar la correlación de Levine et al. sólo es efectiva para tráfico ping y las variaciones de margen de tiempo no son suficiente para hacerlo competitivo frente a los otro dos algoritmos de correlación para otros tipos de tráfico. Es muy probable que sea porque la correlación de Levine et al. depende en la sincronización de paquetes individuales, y, como ilustramos en el capítulo 3, la latencia del tráfico en Tor es altamente variable, incluso dentro del flujo de un paquete dado.

4.4.2. Resultados de la Correlación de Murdoch y Zieliński. El algoritmo Bayesiano tiene una tasa alta de éxito parcial, pero una tasa baja de éxito total. Esto implica que un atacante que utiliza el algoritmo Bayesiano habría tenido que correlacionar flujos correctamente casi todo el tiempo mientras el atacante posea información de todos (o casi todos) los flujos de paquetes posibles. Sin embargo, ya que el atacante controla routers Tor directamente en nuestro modelo de ataque, un atacante necesitaría controlar la mayor parte de la red Tor para que esto sea factible, por lo tanto es improbable que el algoritmo Bayesiano sea efectivo para un atacante que controla un pequeño número de routers si le importa prevenir falsos positivos. Debido a que el algoritmo Bayesiano solo ofrece correlaciones relativas, este resultado no es sorprendente: el algoritmo no está diseñado para manejar posibles falsos positivos, porque es mucho menos probable que ocurran en el caso de uso original. Esto se debe a que el algoritmo Bayesiano fue

Page 30: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

originalmente propuesto para el uso por un atacante que controle los intercambios de Internet que sirvan como nodos de conexión entre países. Dicho atacante sería capaz de observar cantidades de tráfico mayores a la vez que aquellos controlando un pequeño número de routers Tor.

4.4.3. Resultados de la Correlación Simplificada. Nuestro algoritmo presenta el mejor desempeño. Tiene una tasa casi perfecta de éxito parcial para todos los tipos de tráfico, esto significa que si un atacante es capaz de observar tanto el flujo de entrada como de salida, muy probablemente podrá realizar la correlación. Así mismo, presenta una alta tasa de éxito total, por lo tanto un atacante usando el algoritmo simplificado será capaz de identificar la mayoría 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 correlación absoluto que puede ser comparado de manera significativa entre flujos. Esto hace de nuestro algoritmo simplificado la mejor opción para el modelo de ataque especificado, pues le permite a los atacantes que controlen un pequeño número de routers algún grado de protección contra falsos positivos. Además los resultados de nuestro algoritmo simplificado son consistentes entre los tres tipos de tráfico que pusimos a prueba, indicando que la correlación de sincronización puede ser realizada en Tor incluso en casos donde hay tan poca información siendo enviada por un circuito. Los usuarios no pueden evadir atacantes que usen el algoritmo simplificado de correlación enviando menos tráfico.

4.4.4. Aplicación de los Resultados. Un problema con nuestros resultados es que están basados en un único router público. Nuestros resultados no necesariamente se generalizan a atacantes ejecutando muchos routers, porque estarán observando significativamente mayor tráfico. Nuestro algoritmo simplificado depende de dos factores -el tiempo inicial de flujo y el número de células del flujo- que son relativamente únicos para la cantidad de datos que fuimos capaces de poner a prueba. Estos dos factores dejarán de ser tan únicos cuanta mayor información tengamos, y por lo tanto suponemos que nuestro método de correlación simplificado no se desempeñará tan bien.

Consideremos nuestro arreglo del test con un único router Tor. Basados en el número de circuitos creados a través de nuestro router en un período de tiempo t, el ancho de banda de nuestro router b, el total de ancho de banda de la red B,

Page 31: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

podemos estimar aproximadamente el número de circuitos en todo Tor en este tiempo: . (Dividimos entre 3 porque los circuitos Tor estándar tienen 3 routers de longitud, indicando que la creación de circuito tuvo que ocurrir en 3 routers para que un solo router fuese creado.) En nuestro caso, durante el test nuestro router tuvo un ancho de banda de aproximadamente 1MB/s, y el total de ancho de banda de la red fue aproximadamente 900MB/s. Esto significa que un atacante potencialmente tendría que correlacionar 300 veces los flujos que correlacionamos en el mismo margen de tiempo.

No obstante, nuestros modelos de ataque controlan directamente routers Tor, y pueden reunir información adicional para tener esto en cuenta. Más importante aún, tanto el router de entrada como el router de salida conocen la identidad del router intermedio para cualquier tráfico que envíen o reciban. Esto implica que el atacante sólo requiere intentar correlacionar tráficos de flujo que tengan el mismo router intermedio, lo cual reduce drásticamente el número de flujos que necesitan ser correlacionados. Incluso si excluimos los routers de salida completamente (y el mecanismo de selección de ruta de Tor no lo hace), bien hay más de 1.000 routers que puedan ser usados como router intermedio. Si pudiesemos asumir que cada uno de los 1.000 routers fueron escogidos equitativamente, eso significaría que tendríamos que ser capaces de reducir el número de flujos a correlacionar por un factor de 1.000, lo cual niega de sobremanera el hecho de que hay 300 veces tantos flujos promedio como observa nuestro router. Mientras algunos serán usados con mayor frecuencia que otros pues la selección de ruta de Tor se basa en el ancho de banda (junto con otros factores), aún habrá una reducción significativa en el número de flujos que necesitamos correlacionar.

Igualmente, un atacante puede tomar ventaja del control de un router Tor lo que le permite asociar flujos yendo en direcciones opuestas en el mismo circuito. Los algoritmos de correlación anteriormente mencionados toman en cuenta únicamente flujos que viajan en la misma dirección, y el par (conteo de células inward, conteo de células outward) será más distintivo que el conteo de células viajando en una dirección, que también ayudará a contrarrestar el incremento en la cantidad de información.

Por lo tanto, es improbable que un atacante controlando cientos o incluso miles de routers necesite correlacionar un número significativamente mayor de flujos de los que hemos hecho nosotros mismo con nuestro router, implicando que los factores que son lo suficientemente únicos para realizar la correlación de

Page 32: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

nuestros datos permanecerán así para realizar la correlación cuando un atacante controle más routers.

Capítulo 5

Conclusión

En este trabajo, nuestra meta fue determinar si era factible o no realizar ataque de correlación pasivos en Tor, también si era posible para los usuarios evadir atacantes que usen dichos ataques al enviar únicamente pequeñas cantidades de datos.

Para ese fin, probamos dos algoritmos de correlación y descubrimos que ambos tienen debilidades. La correlación del producto de punto propuesto por Levine et al. es consistentemente exitosa en sólo uno de los tres tipos de tráfico que pusimos a prueba, y la correlación Bayesiana propuesta por Murdoch y Zieliński no tiene una manera confiable de evadir falsos positivos a menos que el atacante controle toda o casi toda la red. Asimismo diseñamos y probamos un nuevo y

Page 33: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

simple algoritmo de correlación, que puede correlacionar confiablemente los tres tipos de tráfico, y el cual puede ser mucho más eficiente computacionalmente que cualquiera de los otros dos métodos. Aunque nuestros resultados sólo están basados en los datos recolectados por un único router, también explicamos como nuestro algoritmo puede escalar a atacantes controlando muchos más routers.

Con nuestro nuevo y simple algoritmo de correlación, somos capaces de responder ambas de nuestras preguntas originales con un ‘Sí’. Es posible y factible realizar ataques de correlación pasivos en Tor usando nuestro algoritmo, y nuestro algoritmo es capaz de realizar la correlación incluso cuando pequeñas cantidades de información están siendo enviadas por Tor.

Actualmente, sin embargo, nuestro trabajo requiere que el atacante controle de forma directa routers Tor, porque esto les da acceso a información mucho más precisa y les permite trabajar con células Tor en vez de paquetes TCP. Esto es un problema porque un atacante necesitaría controlar muchos routers para poder comprometer una cantidad significativa de tráfico en Tor. Un área de futura investigación sería en la que se observe si esta limitación puede superarse: ¿Observar todo el tráfico TCP entrando y saliendo de un router es tan poderoso como controlar el router directamente? Si lo es, esto le permitiría a un ISP comprometer efectivamente cualquiera de los routers Tor a los que le provee el servicio de internet, lo cual, en cambio, posibilitaría a un gobierno la habilidad de comprometer exitosamente todos los routers dentro de las fronteras del país.

Page 34: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

Bibliografía

[1] Adam Back, Ulf Möller, 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), páginas 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, páginas 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), páginas 251-265. Springer-Verlag. LNCS 3110, Febrero 2004.

Page 35: Analizando la efectividad de ataques de correlación pasivos en la red de anonimato TOR

[7] Steven J. Murdoch y George Danezis. Low-cost traffic analysis of Tor. En Proceedings of the 2005 IEEE Symposium on Security and Privacy, páginas 183-195. IEEE CS, Mayo 2005.[8] Steven J. Murdoch y Piotr Zieliński. Sampled traffic analysis by internet-exchange-level adversaries. En Nikita Borisov y Philippe Golle, editores, Proceedings of the Seventh Workshop on Privacy Enhancing Technologies (PET 2007), páginas 92-102, Ottawa, Canadá, Junio 2007. Springer.

[9] Vasilis Pappas, Elias Athanasopoulos, Sotiris Ioannidis, y Evangelo P. Markatos. Compromising anonymity using packet spinning. En T.-C. Wu, C.-L. Lei, V. Rijmen, y D.-T. Lee, editores, Information Security: Proceedings of the 11th International Conference, ISC 2008 (Taipei, Taiwan), volumen 5222 de Lecture Notes in Computer Science, páginas 161-174. Springer-Verlag, 2008.

[10] Xinyuan Wang, Shiping Chen, y Sushil Jajodia. Tracking anonymous peer-to-peer voip calls on the internet. En Proceedings of the ACM Conference on Computer and Communications Security, páginas 81-91, Noviembre 2005.