viernes, 13 de abril de 2012

Tor, el Router Cebolla

Aunque su nombre suena como el vástago de Odín, ni su origen es divino ni nació en las frías montañas noŕdicas; su origen es bastante más prosaico.

Un poco de historia
Tor, es conocido como el acrónimo de The Onion Router (El Router Cebolla), aunque el actual Proyecto Tor, no lo considera un acrónimo, sino un nombre propio, por eso no lo escriben en mayúsculas.

Tor, aunque no recibe este nombre hasta 2004, tiene su origen en 1995, cuando la ONR ( Office of Naval Research ) comienza la especificación del "Onion Routing", con el objetivo de proteger los canales de comunicación militares de escuchas no autorizadas y análisis del tráfico, para conseguir una comunicación privada y anónima.

El desarrollo del proyecto, hasta la segunda generación, es inicialmente financiado con fondos de la ONR y DARPA ( Defense Advanced Research Projects Agency ) hasta finales de 2004, y el NRL ( U.S. Naval Research Laboratory ) y la EFF (Electronic Frontier Foundation ) hasta finales de 2005.

Desde 2006, se convierte en un proyecto open source, como la tercera generación del proyecto inicial "Onion Routing" y es desarrollado por The Tor Project, Inc., una organización sin ánimo de lucro, que se financia en base a aportaciones de diferentes organismos, instituciones, empresas privadas (incluso Google a donado fondos al proyecto) y donaciones voluntarias de ciudadanos anónimos.

¿Que es Tor?
Tor es un software, que permite establecer una comunicación anónima entre dos puntos, a la vez que protege el contenido de la información en tránsito, aplicando diferentes capas de encriptación (de ahí lo de la cebolla). Para ello se basa en una red de nodos (The Tor Network), que se comunican a través de túneles virtuales y a través de los cuales viaja la información cifrada, eligiendo caminos distintos en cada comunicación, de forma que el receptor, percibe la comunicación como si hubiera sido originada en el último de los nodos utilizado en cada caso.

La red Tor está formada por nodos de voluntarios, que ponen sus equipos a disposición de la red, compartiendo parte de su capacidad de proceso y ancho de banda, haciendo de puentes entre el usuario inicial y su destino.

Los diferentes nodos de la red, solamente conocen quien les envía un paquete y a quien se lo tienen que reenviar, desconocen por tanto la ruta completa y el contenido del paquete. 

El software Tor, se encuentra disponible para Windows, OSX y Linux. Aunque existen diversas aplicaciones: browsers como xB Browser o Torpark, basados en Firefox, extensiones de Firefox como Torbutton, mensajería instantánea como ScatterChat, etc. que hacen uso o se basan en Tor. Desde la web del Proyecto Tor, se pueden descargar diversos complementos que resultan muy útiles, incluso un paquete que incluye varios de estos complementos y que facilita su uso sin necesidad de instalación, pudiéndose ejecutar desde un pendrive.

¿Como funciona?
En una comunicación usando Tor, intervienen:

- El cliente Tor: es el equipo del usuario, este debe tener instalado y configurado el software Tor y las aplicaciones que se hacen uso de este.

- Los Servidores de Directorio: son una especie de DNS, que mantienen información de los nodos de la red (Routers), accesible desde los clientes y que permiten a este, establecer un camino desde el origen hasta el destino, pasando por una serie de nodos intermedios.

- Los Nodos: son los equipos de voluntarios (Routers) que forman la red y que reciben una petición y la enrutan hasta el siguiente punto.

- El servidor de destino: es un servidor cualquiera, que no tiene por que pertenecer a la red Tor, ni tener el software instalado.

Los pasos que seguiría la comunicación, son los siguientes:
- El cliente Tor consulta al Servidor de Directorio para determinar cuantos y cuales serán los nodos a utilizar como saltos intermedios hasta llegar al servidor de destino.

- Por cada uno de los nodos y secuencialmente, en orden inverso al sentido de la comunicación, el cliente negocia dos claves (una de ida y otra de vuelta) con cada uno de los nodos y cifra con esa clave el paquete de ida en forma de capas, de forma que la capa más interna se corresponde con la del último nodo por la que finalmente se establecerá la comunicación con el servidor de destino, añadiendo en cada capa la información del siguiente salto.

- El cliente envía el paquete cifrado en varias capas al primero de los nodos de la ruta.

- El nodo que recibe el paquete, le quita la capa de cifrado con la clave negociada inicialmente con el cliente e identifica el siguiente salto del paquete, al que se lo reenvía.
En este punto, el nodo que hace de Relay, solamente conoce de quién le ha llegado el paquete; no sabe si es el inicial o uno intermedio; y a quién se lo tiene que reenviar, desconociendo también si este es el destino final u otro salto intermedio.

Este proceso se repite por cada uno de los nodos intermedios.

- En el último nodo (llamados exit node), cuando llegue el paquete, ya se habrán quitado todas las capas excepto la que le corresponde a él, de esta forma, al quitar la última capa, el contenido del paquete estará sin cifrar y le llegará al servidor de destino tal y como le hubiera llegado si la comunicación se hubiera establecido directamente entre el cliente y el servidor final.

Desde el punto de vista del servidor final y a todos los efectos, es el último nodo el que está realizando la comunicación, ocultando de esta forma la identidad del cliente original.

Queda patente que una comunicación de este tipo, conlleva una penalización en el rendimiento muy importante, no solamente por las acciones adicionales que se realizan sobre los paquetes, sino porque el tráfico discurre a través de nodos, que limitan su ancho de banda para este propósito.

¿Quien usa Tor? y ¿Por que?
Aunque en sus inicios, el propósito era para uso exclusivamente militar, a partir de su apertura a la comunidad, es una herramienta muy utilizada y de gran aceptación en general.

Actualmente, Tor es usado por una gran variedad de colectivos: usuarios domésticos, militares, servicios de inteligencia, cuerpos de seguridad, periodistas, empresas, activistas de todo tipo, profesionales TIC, hackers, etc.

Cada uno de los colectivos que usan Tor tiene una motivación particular, pero en todos los casos, se utiliza para ocultar la identidad y proteger las comunicaciones.

Tor es una herramienta ampliamente utilizada por activistas y oposición, en regímenes en los que están restringidos los derechos de comunicación y de libre expresión.

Evidentemente, de la misma forma que es utilizado para fines totalmente respetables, es una herramienta de uso muy común entre los que desean ocultar su identidad en la comisión de actos delictivos o reprobables.

Otro de los usos de Tor, es lo que se han llamado los Servicios Ocultos, que permiten ofrecer servicios; como servidores  web o de mensajería instantánea, por ejemplo; y ocultar su localización, de forma que solamente los usuarios de la red Tor, son capaces de acceder a estos servicios. De esta forma se oculta el que ofrece el servicio y quien accede a él.

Los Servicios Ocultos, suelen utilizar nombres de dominio .onion, que no son reconocidos por los DNS habituales ya que este no es un nombre de dominio válido en Internet, pero si por los Servidores de Directorio de la red Tor. Algunos, han dado en llamar a este tipo de servicios, la Deep Web.

¿Es seguro?
Como todos sabemos; y por definición; la seguridad total no existe, pero se podría decir que Tor es suficientemente seguro, siempre y cuando se utilice de la forma correcta, en combinación con el software adecuado y se sigan una serie de pautas o precauciones.

Tor no se utiliza solo, normalmente se usa en combinación con otra serie de elementos, como son un Proxy web (Privoxy y Polipo son comúnmente utilizados), para asegurar que todas las comunicaciones son gestionadas por Tor.

Si un equipo que tiene Tor instalado, inicia comunicaciones (de cualquier tipo) que no son controladas por este, no será efectivo el uso de Tor, ya que estas comunicaciones directas podrán revelar la identidad del emisor.

Hay una serie de recomendaciones que se hacen para evitar comunicaciones no controladas, como deshabilitar la mayoría de los plugins y codecs para navegadores como Flash, Quicktime, controles ActiveX, etc., que podrían iniciar comunicaciones sin pasar por el filtro de Tor.

Se recomienda también, no abrir ficheros descargados que sean susceptibles de abrir comunicaciones de forma automática a través de los enlaces que puedan incluir. En este caso, se recomienda abrir los ficheros en un equipo sin conexión a Internet, una máquina virtual sin conexión o algo equivalente.

Por otro lado, se recomienda el uso de un protocolo seguro (ssl, tls, https,  ssh, etc.) en las comunicaciones, ya que el último salto de la comunicación, desde el último nodo hasta el servidor de destino, se hace sin el cifrado adicional de Tor. Por tanto, es posible en este punto, interceptar la comunicación y conocer el contenido del paquete, aunque no su emisor original.

Este punto débil, en el último paso, es lo que aprovecho un sueco apodado Egerstad, para obtener un importante número de usuarios y contraseñas de importantes instituciones de varios países, entre ellos, las de muchos embajadores. Para conseguir su objetivo, se dedicó a instalar nodos Tor y con un analizador de tráfico, ponerse a "escuchar" lo que pasaba por estos nodos cuando estos se utilizaban como último salto en la comunicación.

En resumen, Tor es seguro solamente cuando se utiliza de forma adecuada y se mantienen las precauciones pertinentes.

Hay mucha gente que utiliza Tor sin tener un conocimiento mínimo de como funciona y cuales deben ser las precauciones que se deben seguir para su uso. En estos casos, los usuarios están realmente más inseguros ya que la confianza que les da el sentirse seguros, les anima a hacer cosas o enviar información, que en otras circunstancias no harían.

No hay comentarios: