Radio Mamut
Si no escuchan, click acá para escuchar en Media Player o descargan esto para escuchar en winamp    Pincha acá para escuchar en otra ventana

miércoles, 25 de enero de 2012

Enfoque en Tor: por un poco de Privacidad en la red

Enfoque en Tor

“La Libertad significa libertad para decir que dos más dos son cuatro. Si eso se admite, todo lo demás se da por añadidura.”
Winston, 1984


Propiedades

Esta es una lista parcial de las propiedades más importantes de Tor:

Es una red superpuesta sobre Internet

La topología de Tor consiste en una cantidad de Retransmisores Tor (también llamados Enrutadores de cebollas, nodos u OR), administrados por voluntarios, que mantienen conexiones TSL (sobre TCP/IP) permanentemente entre sí, para formar esta red. Los Clientes Tor (proxies de cebollas u OP) los ubican mediante una base de datos semidistribuida, para solicitarles que retransmitan sus flujos TCP y así lograr anonimato.
Los Retransmisores se dividen en varios tipos, relativos al uso circunstancial que le de un cliente (i.e. de entrada, medios, de salida). Primeros en orden de importancia están los nodos de salida (exit nodes), que son los que comunican la red Tor con el exterior. Dado que son la cara visible de todos los usuarios de la red, es frecuente que sean bloqueados por abuso en diferentes sitios. Para reducir el riesgo, Tor permite fijar políticas de salida (e.g. bloquear el puerto 25 para anular el spam, limitar el ancho de banda cedido).

Protege contra ataques de análisis de tráfico

El objetivo de Tor, determinado por su Modelo de amenazas, es proteger contra el análisis de tráfico. Básicamente, Tor dificulta que un atacante actuando como cliente descubra el destino de una conexión, que un atacante actuando como servidor descubra el orígen de una conexión, y que un grupo de Retransmisores vinculen al cliente con los destinatarios de sus conexiones.

Promueve activamente la facilidad de uso

Los desarrolladores de Tor enfatizan la facilidad de uso del sistema como medida de aumentar el conjunto de anonimato, es decir, la base de usuario. Con este fin han creado el controlador visual Vidalia, y los paquetes de aplicaciones preconfiguradas que incluyen en un mismo instalador Tor, Vidalia, Torbutton, Polipo, Firefox, y Pidgin.

Tiene alta visibilidad

Tor tiene un gran apoyo de las comunidades de académicos (que repercute, por ejemplo, en papers y estudios formales sobre su funcionamiento) y hackers (que colaboran, entre otras cosas, en correcciones de bugs, aplicaciones relacionadas, usabilidad). Periódicamente obtiene fondos de organizaciones no gubernamentales (e.g. la EFF), del gobierno, de universidades y de individuos, lo que le permite tener desarrolladores pagos tiempo completo. Esta visibilidad ayuda a aumentar la cantidad de usuarios.

Vive en el espacio del usuario

El software de Tor puede instalarse sin privilegios de administrador, no requiere cambios al kernel (en contraposición a otros enfoques) e incluso existen versiones portables para ser ejecutadas sin instalación.

Es multiplataforma

Existen versiones tanto para los sistemas operativos GNU/Linux, los derivados de BSD, Mac OS X, y Windows (2000, XP, Vista, 7 y las Server Editions). Esta variedad de plataformas soportadas ayuda a que crezca la base de usuarios.

Está ampliamente documentado

Tiene muy buena documentación, actualizada y variada y en diversos idiomas. Los protocoles intervinientes están completamente detallados, y los encargados del proyecto Tor mantienen una biblioteca actualizada de papers sobre anonimato y seguridad.

Es software libre

Tor, y todo el software relacionado con el proyecto, está distribuido bajo licencias libres. Además de la importancia general que tiene el desarrollo de software libre, es específicamente importante en el caso de las redes de anonimato. Que sea libre permite la auditoría por parte del cliente y de los interesados en general, así como la subsistencia al actual grupo de desarrolladores. El hecho de que el funcionamiento interno del programa sea conocido por todos, incluso por los atacantes, no le quita seguridad al mismo, de acuerdo al principio de Kerckhoff (“Un sistema criptográfico debe ser seguro incluso si todo, excepto la clave, es conocido públicamente”) y a la máxima de Shannon (“El enemigo conoce el sistema”).

Tiene una gran base de usuarios

Esto se debe a que los desarrolladores han entendido que el número de usuarios participantes en un sistema de anonimato es tanto o más importante que las características técnicas que protegen la privacidad. Activamente buscan facilitar el ingreso, bajando barreras técnicas, promoviendo a Tor, investigando, haciéndolo portable a distintas plataformas, mejorando su interfaz, etc.

El ecosistema de Tor

Hay una variedad de aplicaciones que trabajan en conjunto para que la red Tor sea funcional, segura y usable. Estas son algunas de ellas:

Tor

Tor, el llamado Proxy de cebollas (OP) es la puerta de entrada a la red. Maneja conexiones entrantes y salientes a través de esta aplicación, y recibe las solicitudes de otras aplicaciones (mediante SOCKS). Cada OP puede ser configurado como Retransmisor (OR), lo que lo convierte en parte de la columna vertebral de red Tor, donde usa parte de su ancho de banda disponible para retransmitir datos de los demás.

Vidalia

Vidalia es una GUI para controlar el servicio Tor, escrita con el framework Qt y multiplataforma (GNU/Linux, Unix, Mac, Windows).

Polipo

Polipo es un proxy HTTP de caché, que maneja SOCKS4a, lo que evita que Firefox envíe las solicitudes de DNS por fuera de la red Tor, poniendo en peligro el anonimato.

Torbutton

Torbutton es una extensión de Firefox que permite habilitar el uso de Tor en el navegador con un simple click. Además, mientras está activado realiza cambios en la configuración para mejorar la seguridad (e.g. desactiva Flash y javascript).

TorDNS

TorDNS es un servidor DNS local, lo que permite que las aplicaciones realicen solicitudes de IPs a través de un nombre de host usando la red Tor.

Modelo de despliegue

Se ha mostrado la tecnología de Tor para la creación de circuitos, las propiedades principales de la red y las diferentes aplicaciones que le dan forman. ¿Pero cómo funciona todo en conjunto?
El componente principal del modelo es Tor en sí. Como ya se ha visto, cada instalación de Tor puede funcionar tanto en forma de cliente (OP) como de retransmisor (OR). Es sólo cuestión de una pequeña configuración. Nada impide a un usuario que quiera acceder a la red Tor como cliente administrar su propio Retransmisor, y de hecho, puede beneficiar su anonimato. El perjuicio es que se comparte el ancho de banda con los demás usuarios de la red, pero como ya se ha probado, un mejor servicio aumenta la seguridad para todos, al aumentar el conjunto de anonimato.
Otra parte fundamental del modelo es algo que anonimizar. Cualquier aplicación que use flujos TCP es plausible de conectarse a Tor, mediante SOCKS. Si una aplicación no utiliza SOCKS o no lo utiliza correctamente, puede interponerse un proxy entre Tor y la aplicación que traduzca dicho protocolo.
Cuando una aplicación necesita a conectarse a la red Tor, primero busca un retransmisor de salida con las políticas adecuadas a la conexión que desea realizar. Esto lo hace mediante las Autoridades de Directorio, que guardan dicha y otra información referida a los Retransmisores. No cualquiera puede convertirse en Autoridad de Directorio; se determina si es posible, para cada administrador de Retransmisor, en base al mérito obtenido en el sistema. Actualmente hay seis de estas Autoridades, que replican la información que manejan en los demás Retransmisores para evitar cuellos de botella en el sistema. Si hay diferencias entre las decisiones de las Autoridades, el cliente decide por la opinión mayoritaria.
El siguiente paso es crear el circuito. Una vez hecho esto, se transmiten los datos encriptados simétricamente, y el nodo de salida puede empezar a transmitir el flujo TCP al destinatario. Esta misma conexión sirve para las respuestas del mismo. Tor permite multiplexar varios flujos TCP por un mismo circuito, para minimizar el impacto del tiempo de creación en el retardo de la conexión.

Servicios ocultos o de ubicación oculta

Ya vimos cómo logra un usuario conectado a Tor ser anónimo para el servicio (Bob) al que accede. Pero, ¿qué pasa si es Bob el que desea permanecer anónimo? Para esto existen los servicios ocultos o de ubicación oculta (location-hidden services). Mediante un servicio oculto, es posible ofrecer un servidor en la red Tor sin una IP que lo identifique, con la desventaja de que es necesario accederlo a través de Tor.

Cómo funcionan, paso a paso

Supongamos que Bob quiere ofrecer un servidor web anónimo. Después de la configuración, Tor genera una par de claves pública/privada que identifican al servicio. Con la clave pública, genera un digest, que forma parte de la dirección del servicio (e.g. l73fuoioj5hzznxc), junto con el pseudo dominio de nivel superior (pseudo TDL) .onion, dando como resultado la dirección por la que se accede al servicio: http://l73fuoioj5hzznxc.onion.
Creación de servicios ocultos en Tor, paso 0
Para lograr la alcanzabilidad del servicio en la red Tor, el primer paso es elegir, aleatoriamente, un grupo de Routers de Cebollas (Onion Routers) para que sirvan de Puntos de Introducción (Introduction Points) y generar circuitos Tor (o sea, de 3 saltos, encriptados) a cada uno de ellos.
Creación de servicios ocultos en Tor, paso 1
El segundo paso es crear un Descriptor del servicio, que incluye: la dirección .onion, el/los puertos por los que se accede al servicio, una descripción textual opcional y la dirección de los Puntos de Introducción, y firmado con la clave privada. Después es enviado a una tabla hash distribuida, una base de datos de donde cualquier nodo o cliente puede obtener el Descriptor.
Creación de servicios ocultos en Tor, paso 2
Ahora un cliente (Alice) desea conectarse al servicio. Asumimos que ya conoce la dirección, tal vez porque la vió en un índice de servicios ocultos o Bob se la dijo. Como tercer paso, Alice descarga el Descriptor del servicio de la base de datos distribuida y obtiene la dirección de los Puntos de Introducción.
Creación de servicios ocultos en Tor, paso 3
Para el cuarto paso Alice ha creado un circuito Tor hasta un nodo cualquiera, pidiendole que actúe como Punto de Encuentro. Para esto, le comunica un secreto de un sólo uso, generado para este encuentro.
Creación de servicios ocultos en Tor, paso 4
Quinto paso: ahora Alice crea un mensaje de Introducción, encriptado con la clave pública del servicio oculto, que incluye la dirección del Punto de Encuentro y el secreto de un sólo uso, y le pide a alguno de los Puntos de Introducción que se lo envíe al servicio oculto.
Creación de servicios ocultos en Tor, paso 5
En el sexto paso el servicio oculto desencripta el mensaje y obtiene la dirección del Punto de Encuentro y el secreto. Crea un circuito Tor hacia dicho Punto de Encuentro y le envía el secreto.
Creación de servicios ocultos en Tor, paso 6
En el séptimo y último paso, el Punto de Encuentro notifica a Alice de la conexión establecida, y ambos pueden empezar a comunicarse a través de sus circuitos Tor de manera normal. El Punto de Encuentro simplemente reenvía los paquetes que le llegan, que están encriptados de punta a punta.
Creación de servicios ocultos en Tor, paso 7
Es importante aclarar que los Puntos de Introducción no son usados en la comunicación final para evitar que un sólo retransmisor sea completamente responsable del servicio oculto.

Problemas conocidos

Como todo software, Tor no está libre de problemas. Algunos ataques caen fuera de su modelo de amenaza, por lo que no protege bien contra ellos. Otros son iniciativas de censores para limitar el uso de Tor. Algunos son problemas inherentes de escalabilidad del diseño actual (aunque no afectarían al sistema en mucho tiempo, y ya se está trabajando para solucionarlos) o por el tipo de uso que se le está dando. Y los más frecuentes, son malas configuraciones o aplicaciones defectuosas en el lado del cliente.

Vulnerabilidad a diversos ataques

Tor es vulnerable si el atacante puede ver los dos extremos de la comunicación. Es posible que un observador que pueda analizar el tráfico de entrada de un usuario y observe algunos (a menos que sea un observador global) destinatarios que estime probables, correlacione el tiempo de entrada y de salida si acertó en el destinatario. De esta manera confirma una sospecha previa.

Bloqueo de las Autoridades de Directorio

En algunos países, se intenta disuadir el uso de Tor, mediante bloqueos a gran escala. Estos ataques son posibles porque las IP de los Retransmisores son conocidas, así como también las Autoridades de Directorio. Para evitar la imposibilidad de conectarse a la red sin acceso a las Autoridades, los desarrolladores de Tor crearon los Retransmisores de Puente, que simplemente son Retransmisores no listados en los Directorios. La manera de descubrir la dirección de un Retransmisor de Puente es visitar la página https://bridges.torproject.org/ o enviar un mail a bridges@torproject.org con la línea “get bridges” en el cuerpo. Vale la pena aclarar que no es posible bloquear estos Retransmisores como los publicados, porque estos servicios sólo devuelven un muy reducido número de Retransmisores, normalmente los más cercanos al cliente que los solicita.

Problemas de escalabilidad

Actualmente, Tor requiere que cada nodo Retransmisor esté conectado con todos los demás. Es evidente que este diseño no es escalable. Se está trabajando para que Tor soporte topologías restringidas, en las que cada nodo se conecta sólo a unos pocos.

Aumento de la relación clientes/retransmisores

Si bien la cantidad de usuarios aumenta permanentemente, la mayor parte de los usuarios elige no ser un Retransmisor. A medida que, comparativamente, más usuarios acceden a la red sólo para usar ancho de banda, y menos ofrecen su ancho de banda, el rendimiento de la red para todos decae. Actualmente se están investigando formas de incorporar incentivos no monetarios en Tor, para que aumente la cantidad de Retransmisores.

Mala configuración local

Se han comprobado ataques basados en abusos de funcionalidades del navegador (e.g. javascript) o plugins externos (e.g. Flash) en donde se ha violado el anonimato del cliente aún cuando usa Tor. Esto es porque los elementos activos insertados en una página web por un servidor malicioso (o comprometido) no son controlados por el usuario. Este tipo de ataques es la razón de ser de Torbutton.

Solicitudes DNS por fuera de Tor

Algunas aplicaciones, como Firefox, realizan conexiones DNS para averiguar la IP del destino y recién entonces se conectan a SOCKS (por lo tanto a Tor). Estas solicitudes, ajenas a Tor, muestran la verdadera identidad del cliente a los adversarios. Se puede usar un servidor DNS local que resuelva las solicitudes por la red Tor (como TorDNS), o, para HTTP, se puede configurar el navegador para que use un proxy que soporte SOCKS4a (usa hostnames en vez de IPs) o para que resuelva búsquedas de DNS remotamente.

Fuente

No hay comentarios:

Publicar un comentario en la entrada