domingo, 24 de marzo de 2019

Pluggable Transports en Tor

Las técnicas DPI (Deep Paket Inspector) se han vuelto cada vez más comunes en aquellos países en los que el nivel de censura es alto y consisten en el análisis de un conjunto de paquetes de datos para posteriormente clasificarlos partiendo de patrones conocidos. De esta forma, con DPI es posible determinar que un conjunto de paquetes se encuentran transmitiendo datos de Tor aunque la dirección IP de destino no se encuentre bloqueada, como el caso de las direcciones IP de los puentes Tor.
La especificación de PT ("Pluggable Transports") en Tor se definen como una tecnología que tiene la capacidad de convertir flujos de tráfico entre el cliente y un puente de flujos admitivos y no reconocidos por técnicas DPI.
Los objetivos de los PT en Tor es de esfuscar el tráfico entre el cliente y los puentes. Para ello, se utiliza componente de software adicional tanto en el cliente como como en la instancia que se encarga de manipular las peticiones y transformarla adecuadamente. Dichos componentes siguen una serie de reglas para poder ofucar el tráfico en el cliente y posteriormente, desofuscarlo en el servidor (puente).


La especificación de PT está diseñada para que sea independiente de cualquier solución de anonimato y enseña las directrices que debe seguir cualquier implementación de PTs. En el caso de Tor, existen varias implementaciones de dicha especificación, las cuales se pueden utilizar muy fácilente en cualquier instancia de Tor. Los PT de uso común en Tor son Meek y ObsProxy ya que son las más soportadas y en consecuencia recomendadas.
ObsProxy es un Framework escrito en Python que implementa la especificación de PT, el cual utiliza Twisted para todas las operaciones de red y la librería pyptlib, creada por el equipo de Tor específicamente para soportar las características de la especificación. Es una librería especificamente interesante para aquellas aplicaciones que se encargan de transformar o ofuscar tráfico TCP y que requieren enviar dichos flujos de paquetes a un destino determinado utilizando un circuito de Tor.
Para utilizar ObsProxy en el lado del cliente se puede utilizar Tor Browser, el cual contiene las implementaciones de los principales PTs se encuentran incluidas en el directorio "<TOR_BROWSER_DIR>/Browser/TorBrowser/Tor/PluggableTransports". Dichas implementaciones pueden utilizarse en modo cliente cuando se arranca Tor Browser y se configuración es prácticamente automática por medio de un asistente muy simple, el cual se inicia al abrir la configuración de Tor Browser.


Como se puede apreciar la imagen anterior, existen dos posibles escenarios, o bien el cliente se encuentra en un entorno censurado y sus peticiones son filtradas o el cliente cuenta con una conexión directa a internet, con lo cual no tendrá mayores inconvenientes a la hora de conectarse a la red de Tor.
En el primer caso, el asistente de Tor Browser le permite al cliente  especificar cúal tipo de PT desea utilizar y a continuación, se encarga de configurar la instancia don el PT seleccionado.


Despúes de seleccionar el tipo de PT la conexión de la red de Tor se hará por medio de los puentes que se vienen por defecto de Tor Browser y además, todas las peticiones se harán a un servidor OBSProxy por medio de un cliente obfs3 local que se ha indicado. En el caso de que no sea posible realizar la conexión de la red Tor utilizando los puentes de obfs3 por defecto, Tor Browser indicará que hay un censor que se encuentra bloqueando las peticiones a dichas máquinas y en tal caso, se debe solicitar un conjunto de puentes nuevo tal como se ha explicado en párrafos anteriores.

por Daniel Echeverri Montoya.

No hay comentarios.: