Tor
Desarrollador
The Tor Project1
www.torproject.org
Información general
Lanzamiento 20 de septiembre de 20022
Última versión estable 0.2.2.34-1
Septiembre de 2011
Género Onion routing, Anonymity, Cultura libre, Comunidad
Programado en C
Sistema operativo Multiplataforma
Licencia licencia BSD
En español
Tor (The Onion Router) es una implementación libre de un sistema de encaminamiento llamado onion routing que permite a sus usuarios comunicarse en Internet de manera anónima. Originado en el US Naval Research Laboratory y hasta noviembre de 2005 patrocinado por la Electronic Frontier Foundation, Tor es desarrollado por Roger Dingledine y Nick Mathewson junto con otros desarrolladores Gv. SyrinX anonimato.3
Tor provee un canal de comunicación anónimo y está diseñado para ser resistente a ataques de análisis de tráfico (traffic analysis). Por lo tanto, usando Tor es posible realizar una conexión a un equipo sin que éste o ningún otro tenga posibilidad de conocer el número de IP de origen de la conexión.
Tor es usualmente combinado con Privoxy para acceder a páginas web de forma anónima y segura. Privoxy es un proxy HTTP diseñado para proteger la privacidad en la navegación Internet. La interfaz de Tor es un proxy SOCKS (usualmente en el puerto 9050).
Es importante saber que Tor no es 100% fiable en lo que se refiere al cifrado de la información. Su función principal es asegurar el anonimato del usuario, de forma que no se pueda rastrear la información que envía para llegar hasta él. La red Tor cifra la información a su entrada y la descifra a la salida de dicha red, con lo cual es imposible saber quién envió la información. Sin embargo, el propietario de un servidor de salida puede ver toda la información cuando es descifrada antes de llegar a Internet, por lo que aunque no pueda conocer el emisor sí que puede acceder a la información.
Esto quedó de sobra demostrado por Dan Egerstad, un sueco experto en seguridad informática. Consciente de esa debilidad de Tor, creó un servidor en la red Tor y controló toda la información que salía por el mismo hacia los destinos correspondientes en Internet, y de esta forma pudo conseguir contraseñas de importantes empresas, embajadas de todo el mundo y otras instituciones, ya que éstas usaban la red Tor sin cifrar la información en la entrada. Efectivamente, Egerstad no pudo conocer la identidad del emisor, pero sí el contenido del mensaje y su destino.
Para conseguir el anonimato en Internet y, además, la seguridad de que nadie accede a la información que se está enviando, es recomendable utilizar también algún sistema de cifrado como SSL. Además de ésto, los desarrolladores de Tor recomiendan bloquear las cookies y los plugins Java, ya que pueden averiguar la dirección IP del emisor. Otra buena opción es deshabilitar el registro (historial) de webs visitadas, para tener mayor seguridad en el ámbito de atacantes con acceso físico a la máquina, como, por ejemplo, otra persona del mismo edificio.
Contenido [ocultar]
1 Funcionamiento básico
1.1 Componentes
1.2 El protocolo
2 Servicios ocultos
3 Referencias
4 Véase también
5 Enlaces externos
Funcionamiento básico
[editar]Componentes
La red está formada por una serie de nodos que se comunican mediante el protocolo TLS sobre TCP/IP manteniendo así secreta e íntegra (no modificaciones externas) la información desde un nodo a otro. Hay 2 tipos de entidades:
Nodos TOR ( vamos a llamar OR de Onion Router) que funcionan como encaminadores y en algunos casos además como servidores de directorio (DNS) de una especie de servicio de mantenimiento. Los nodos OR mantienen una conexión TLS con cada uno de los otros OR.
El servicio de directorio publica una base de datos que asocia a cada OR una serie de información (router descriptor). Esta información es accesible a todos los OR y a todos los usuarios finales y la usan para tener un conocimiento de la red. Si se tienen pocos servidores de directorio se corre el riesgo tener un punto cuyo fallo puede ocasionar el fallo del sistema completo. Por motivos de backup y de latencia los OR que dan el servicio de directorio mantienen duplicada la información pasándosela de unos a otros. Hay una serie de OR principales (autoridades de directorio) y luego hay otros secundarios que hacen de caches y backup (directory caches). Una lista de algunos servidores de directorio son distribuidos con TOR para facilitar la suscripción a la red (bootstrapping). Los servidores de directorio son en realidad un grupo establecido de ORs confiables. En el servicio de directorio las entradas son protegidas criptográficamente con firmas y sólo la información que proviene de ORs aprobados será publicada en la base de datos, para evitar ataques donde alguien añada muchos nodos no confiables. No hay sistema automático para aprobar OR's; Los administradores del servidor de directorio lo hace manualmente.
Cuando un OR se arranca, recolecta un conjunto de datos que lo describen a él , a su modo de funcionamiento y capacidades. Ejemplos de este tipo de atributos son la dirección IP, nombre amigable para el usuario, versión del software TOR, sistema operativo, clave pública, exit policies (restricciones a como puede funcionar el nodo si es el último nodo de un circuito de datos Ej: definir una lista de direcciones IP y número de puertos a los cuales está dispuesto llevar el tráfico. Observar que usando esto se puede hacer que un nodo no pueda actuar como último nodo de un circuito nunca). Toda esta información se publica a través del servicio de directorio
Los usuarios finales ejecutan un software local al que vamos a llamar onion proxy (OP) que obtiene información del directorio, establece circuitos aleatorios a través de la red y maneja conexiones de aplicaciones del usuario. Los OP aceptan flujos TCP del aplicaciones de usuarios y las multiplexa a través de la red OR's
[editar]El protocolo
El funcionamiento a grandes rasgos es el siguiente:
A partir de la información obtenida de su configuración y del servicio de directorio el OP decide un circuito por el que van a circular los paquetes. Por defecto el circuito tienen 3 nodos OR
El OP negocia las claves de cifrado necesarias con cada OR del circuito para proteger sus datos en todo el camino antes de realizar transmisión alguna. La obtención de las claves simétricas (AES-128), una para cada sentido de comunicación (Kf<- forward key, Kb<-backward key), se realiza a partir del protocolo de establecimiento de claves Diffie-Hellman para obtener una clave compartida y a partir de ella derivar las dos claves simétricas El circuito es construido desde el punto de entrada (usuario) de la siguiente forma: Los mensajes para negociar las claves de la comunicación entre ORn y ORn+1 se realizadas a petición del OP y retransmitiendo paquetes a través de los nodos OR1,... Orn. En cada paso los mensajes son cifrados con las claves de sesión negociadas, o cuando no lo están, con la clave de cebolla del host que recibe el dato
A continuación cifra el paquete que contiene la clave para el último OR del circuito,
A continuación hace lo propio del penúltimo
Hace lo mismo con todos los nodos hasta hacer lo propio con el paquete para el primer nodo.
Envía el paquete resultante al primer nodo del circuito . Observar que el paquete construido con este proceso se puede considerar como un paquete envuelto en varias capas de cifrado. Por eso la metáfora de la cebolla es apropiada para describir esta técnica.
El primer OR quita 'su' capa de la cebolla y envía el paquete al siguiente nodo
Según va llegando el paquete a cada OR éste pela la capa externa. De esta forma ningún OR puede hacerse con la imagen completa del circuito ya que sólo conoce los OR/OP anterior y posterior.
Como terminología se llama 'exit server' o 'exit node' al último servidor del circuito (y por tanto el único que se comunica con el destino), el primer OR se le llama 'entry node' (único que se comunica con el origen de la comunicación) y al resto de nodos se les llama middle-node
Servicios ocultos
Aunque la característica más popular del Tor es facilitar anonimato a máquinas cliente finales, puede también proporcionar anonimato a servidores. Usando la red Tor, es posible a los servidores anfitrión ocultarse para que su localización y quienes los usen sean desconocidas.
Estos servicios usan una dirección .onion en vez de otro TLD existente. A pesar de que no existe un seguimiento de estos sitios, algunos servidores proporcionan direcciones útiles.