[en] Tor is a general-purpose anonymous communication network. It is low-latency to support a wide variety of applications, including web browsing, at a low bandwidth overhead. Nevertheless, this makes Tor vulnerable to traffic correlation attacks. Passive attackers can link communication partners by observing traffic entering and exiting the Tor network. Based on a review of the literature, there are two main solutions for this issue: either introduce significant delays to destroy timing patterns or add a large amount of cover traffic to hide real communications. These solutions, however, either require the deployment of new infrastructure, or impose a high overhead on the users and the network. This thesis focuses on the problem of traffic correlation attacks and proposes LoopTor. LoopTor is a medium-latency communication scheme built on top of Tor that covers user data by establishing a loopback connection between the Tor client and an onion service set up by the client itself. This connection is used to send padding traffic together with the real data so that the observable pattern remains a constant rate, regardless of whether the user has active communications or not. Different implementations of LoopTor are proposed and compared. To test the performance, a Tor network is simulated and traffic is captured both with and without real data being sent. Machine learning classifiers try to distinguish both situations. Experimental results for the classification task show that the implementations of LoopTor that set a limit for the rate at which data is sent to the Tor network make it impossible for some classifiers to identify communications. Nevertheless, other classifiers are still capable of detecting patterns. Further research is needed to identify other factors that could strengthen the effectiveness of LoopTor and whether the conclusions of the performed simulations apply to the live Tor network.

[es] Tor es una red de comunicaciones anónimas multipropósito. Es de baja latencia para dar soporte a una amplia variedad de aplicaciones, incluida la navegación web, introduciendo un bajo sobrecoste de ancho de banda. Sin embargo, esto hace que Tor sea vulnerable a ataques por correlación de tráfico. Un atacante pasivo puede relacionar los dos integrantes de una comunicación observando el tráfico que entra y sale de la red Tor. Según la literatura consultada, hay dos soluciones habituales para este problema: introducir retrasos significativos para destruir los patrones temporales o añadir una gran cantidad de tráfico de cobertura para ocultar las comunicaciones reales. Sin embargo, estas soluciones, o bien requieren el despliegue de nueva infraestructura o suponen una sobrecarga elevada a los usuarios y la red. Esta tesis se centra en el problema de los ataques por correlación de tráfico y propone LoopTor. LoopTor es un sistema de comunicaciones de latencia media sobrepuesto a Tor que busca ocultar las comunicaciones mediante el establecimiento de una conexión bucle entre el cliente Tor y un servicio oculto ofrecido por el propio usuario. Esta conexión se utiliza para enviar tráfico de relleno junto con los datos reales de manera que el patrón observable sea siempre un ritmo constante, independientemente de si el usuario tiene o no comunicaciones activas. Se proponen y se comparan diferentes implementaciones de LoopTor. Para evaluar el funcionamiento, se simula una red Tor y se captura tráfico con y sin que se envíen datos reales. Diversos clasificadores de aprendizaje automático intentan distinguir ambas situaciones. Los resultados experimentales en la tarea de clasificación muestran que las implementaciones de LoopTor que establecen un límite para la velocidad con que se envían los datos a la red Tor hacen imposible que algunos clasificadores detecten comunicaciones. Sin embargo, otros clasificadores todavía son capaces de detectar patrones. Es necesaria más investigación para identificar otros factores que puedan reforzar la eficacia de LoopTor y si las conclusiones de las simulaciones realizadas aplican a la red Tor real.