Tor (red de anonimato)

Por este motivo se dice que esta tecnología pertenece a la llamada darknet o red oscura, que no se debe confundir con la deep web o web profunda.

Para la consecución de estos objetivos se ha desarrollado un software libre específico.

El sistema está diseñado con la flexibilidad necesaria para que pueda implementar mejoras, se despliegue en el mundo real y pueda resistir diferentes tipos de ataque.

Actualmente el proyecto Tor está en manos de The Tor Project una organización sin fines de lucro orientada a la investigación y la educación, radicada en Massachusetts y que ha sido financiada por distintas organizaciones.

Sin estar especialmente diseñado para ello, pronto se descubrió que Tor también hace más difícil la labor de programas que intentan censurar o vigilar el acceso a cierto tipo de contenidos.

Todo esto ha provocado que Tor sea muy usado en entornos en los que los comunicantes están especialmente motivados en proteger su identidad y el contenido de sus comunicaciones (por ejemplo, conflictos políticos, restricciones en la difusión y acceso a ciertos tipos de contenido, comunicación de información confidencial, etc.).

Esto se debe a que los protocolos de nivel superior pueden transmitir información sobre la identidad.

Por ejemplo, un servicio web puede usar cookies o simplemente pedir que nos identifiquemos.

Cuando queremos un anonimato a nivel de aplicación es bueno configurar el cliente adecuadamente y protegernos usando proxys que modifican los contenidos en este sentido.

Por ejemplo, para conseguir más privacidad cuando navegamos por la web es recomendable configurar el navegador adecuadamente (por ejemplo, deshabilitando cookies, no permitiendo plugins Java, Flash o ActiveX, o deshabilitando el historial) y redirigir el tráfico hacia un proxy web intermedio (ej., privoxy o pólipo) que nos filtre contenido que puede ser aprovechado para violar nuestra privacidad (por ejemplo, cookies o cabeceras HTTP que puedan ser usadas para identificar).

Por ejemplo, Dan Egerstad, un sueco experto en seguridad informática, creó un servidor en la red Tor y controlando toda la información que salía por él hacia Internet, pudo conseguir contraseñas de importantes empresas, embajadas de todo el mundo y otras instituciones.

Las aplicaciones acceden a la red Tor a través de la interfaz SOCKS lo cual significa que toda aplicación con soporte SOCKS puede usar Tor para realizar comunicaciones anónimas sin necesidad de modificaciones adicionales.

Por ejemplo, si tuviéramos un navegador que no permitiera el tráfico HTTP y DNS, vía SOCKS podría usar privoxy para realizar esta tarea (y podríamos aprovechar para filtrar las peticiones HTTP).

Si tenemos una aplicación genérica que no soporta SOCKS y queremos que su tráfico TCP se convierta a formato SOCKS para luego pasarlo al cliente Tor, es necesario utilizar una aplicación adicional.

Toda esta información se publica a través del servicio de directorio.

Cada extremo de la comunicación envía sus mensajes a ese punto de encuentro y desde ahí son enviados a donde corresponda usando circuitos que esconden la localización del destino.

Por ejemplo podríamos usar este sistema para conectarnos a un servidor de chat IRC.

A los routers con esta función se les llama puntos de introducción, en inglés introduction point.

Si determina que quiere conectarse con él, entonces se conecta al punto de encuentro y le indica a este el identificador del cliente con el que quiere conectarse (la rendezvous cookie), la segunda parte del Diffie-Hellman (the second half of the DH handshake) y un hash de la clave que comparten.

Comandos que tienen estas células: Las células de transmisión (en inglés relay cell) son usadas para la comunicación entre el OP y cualquiera de los OR del circuito, normalmente el exit node.

Si una celda no está completamente descifrada se pasa al siguiente salto del circuito.

Observar que el campo Recognized permite, de una forma muy rápida, descartar ciertas células como candidatas a estar completamente descifradas.

El campo streamID vale 0 porque este tipo de células relay sirven para control.

Esto mejora la protección y evita que un atacante vincule tráficos antiguos con los nuevos.

Esta característica es necesaria para soportar muchos protocolos como SSH, los cuales son incapaces de mantener una sesión si se cambian los circuitos y, por tanto, el exit node, durante la sesión.

Los pasos para encapsular el tráfico TCP son los siguientes: Si un OP quiere cerrar un stream TCP anonimizado, envía una célula RELAY_END a lo largo del circuito y los nodos van cerrando ese stream para su circuito.

Por el camino se van cerrando los streams de circuito asociados a stream TCP.

Por otra parte, si el OR no es exit node, entonces cifra o descifra la carga útil del stream usando la clave kb o kf correspondiente con el OP.

El OR decide si reconoce la célula que está completamente descifrada.

Se procede con los siguientes pasos: Cuando un error irrecuperable ocurre a lo largo de la conexión de un circuito, el OR debería, si está habilitado para ello, enviar al OP una célula RELAY_TRUNCATED; el nodo más lejano basta con enviar una célula DESTROY para cerrar el circuito.

Diagrama de una conexión a través de la red Tor
Esquema de funcionamiento de TOR
Esquema de funcionamiento de TOR
Formato de célula de Tor
Formato de célula relay en Tor
Intercambio de mensajes para establecimiento de circuito
Célula CREATE inicial en el establecimiento del circuito
Célula CREATED inicial en el establecimiento del circuito
Célula RELAY_EXTEND inicial en el establecimiento del circuito
Célula RELAY_EXTENDED inicial en el establecimiento del circuito
Conexión HTTP a través de un circuito en Tor
Destrucción o truncamiento de circuito en Tor