Para romper el sistema de anonimato de tor, que yo sepa, hay cuatro grandes caminos que puedes tomar: inyectar código, analizar la red tor, explotar fallos de seguridad del navegador y explotar vulnerabilidades de la red tor.

Inyectar código:
Tor protege al cliente con los servidores intermedios, pero no hay nada que proteja el servidor destino o la puerta de salida. Imaginemos que hay una persona que quiere averiguar las identidades de las personas que visitan una página. Lo primero que hará será buscar el servidor que aloja la página y controlarlo activa o pasivamente. En definitiva, saber en todo momento lo que ocurre en el servidor para monitorear las peticiones y analizarlas posteriormente. Ahora supongamos que el espía se encuentra con que el servidor es visitado por numerosos clientes tor. No sabe la identidad de los clientes ya que no son ellos los que visitan la página. Pero puede hacer una cosa para delatarlos. Controla el servidor, por lo que puede alterar el funcionamiento del mismo e introducir un trozo de código en todos los paquetes TCP. Ahora supongamos que introduce algún tipo de malware; todas las personas que visiten la página se infectarán. Por último, es fácil de suponer que el malware puede acceder a tu dirección física, al funcionamiento de tu equipo, a tu ubicación… Es decir, que el atacante puede identificarte cómodamente. Tan solo tiene que inyectar código en los paquetes TCP para introducir en tu sistema un malware que te identifique entre la masa de ordenadores que forman internet.

Analizar la red tor:
Cuando te conectas a tor, te conectas a una red de ordenadores formada por clientes y retransmisores. A través de esta red te conectas al servidor que almacena la página web. Sin embargo, la mayor virtud de tor es su mayor carencia. Tor es una red relativamente pequeña de sistemas interconectados, lo que  erróneamente proporciona mayor confianza a los clientes. Ahora supongamos que alguien analiza todo el tráfico de la red tor, y que en base a estudios estadísticos puede determinar que un cliente se ha conectado a un servidor externo por medio de una puerta de salida. ¿Es posible? Sí ¿En serio? Sí, numerosos países y operadoras de telefonía actualmente lo hacen. Se necesita una potencia de cálculo inmensa, aunque es menor si solo se estudian clientes tor concretos, es decir, aquellos que accedan a unos servidores externos determinados o que pertenezcan a un país determinado. Lo que se hace con este método es controlar la red tor, monitorear todas las peticiones de todos los retransmisores y clientes para analizarlas posteriormente con herramientas estadísticas y determinar qué clientes han accedido a qué páginas. Como he dicho antes, se necesita una capacidad de cálculo brutal, pero es posible que empresas gigantes, que manejan miles de millones de dólares al año, acudan a esta técnica para revelar la identidad de ciertas personas. La única forma de luchar con éste método desemboca en un peligro mayor: aumentar la red tor. Pero si aumento la red tor para dificultar las tareas de cálculo, mayor número de retransmisores no serán de confiar.

Explotar vulnerabilidades del navegador:
Supongamos que tienes tor instalado en un navegador. Pero en el navegador también tienes instalado flash player, java, real media, quicktime, windows media, shockwave o cualquier otro plugin. El hecho de que tor funcione bien, de que sea seguro no implica que el navegador sea seguro. Si tienes habilitada tecnología flash, puedes darte por fastidiado. El propio proyecto tor pone especial interés en dejar claro que para utilizar tor no se pueden tener habilitados plugins que puedan comprometer la seguridad del navegador. Los plugins en los que tor hace especial hincapié son los que he mencionado anteriormente. A través de este tipo de tecnologías, el atacante puede explotar las vulnerabilidades que presentan e identificarte cómodamente. Repito: no habilites estos plugins cuando uses tor, porque no eres anónimo. Simplemente configura el navegador para que esté lo más limpio posible. No conozco las técnicas para explotar este tipo de vulnerabilidades, ya que hay que tener conceptos de programación avanzados, pero puedes visitar diferentes estudios que así lo demuestran.

Explotar vulnerabilidades de la red tor:
En este apartado me refiero a atacar la propia red tor explotando vulnerabilidades que presenten y que no he reflejado en los tres anteriores apartados. Por ejemplo se pueden bloquear las autoridades de directorio, bloquear las puertas de salida, introducir falsos retransmisores, realizar ataques de denegación de servicio, ataques de predecesor, ataques Sybil y un preocupante etcétera. Algunos están solucionados, pero es viablemente imposible poder controlarlos todos, más aún cuando son Gobiernos y agencias de inteligencia los que desarrollan técnicas para explotarlos.

Alternativas

Voy a analizar dos alternativas, aunque existen varias, como GNUnet, Rodi, Omemo, Nodezilla, Bunzilla o Calypso. Aunque la gran mayoría no son sustitutos de tor, por eso en la introducción he entrecomillado la palabra alternativa. Casi todos se basan en clientes P2P anónimos, como FreeNet; la única que realmente puede sustituir a tor es I2P.

FreeNet:
Según el propio proyecto, FreeNet es:

Un proyecto de software libre que te permite compartir archivos anónimamente, navegar y publicar sitios libres (a los que accedes a través de FreeNet) y chatear en foros, sin el miedo de la censura. FreeNet está descentralizado para hacerlo menos vulnerablea a ataques y si es usado en el modo “darknet”, donde los usuarios solo pueden conectarse con sus amigos, es muy difícil de detectarlos.

250px Freenet logo.svg

Es decir, FreeNet es una iniciativa que proporciona una red en la que poder navegar sin ser descubiertos. Pero siempre tienes que navegar dentro de la red,  no existen proxies de salida para acceder a internet. Es extremadamente útil para crear redes anónimas, como la que actualmente utiliza WikiLeaks. Una vez que ya sabemos lo que es, voy a comentar muy rapidito el funcionamiento para que nos hagamos una idea.

Cuando accedes a la red, te conviertes en un nodo de la red. Cada nodo tiene que contribuir con un ancho de banda y un espacio en disco determinado. Funciona exactamente igual que un programa de P2P. Sin embargo, la diferencia es que está totalmente descentralizado, no se depende de trackers y nadie sabe la identidad de nadie (relativamente, luego ahondaré un poquito más). Simplemente se acceden a recursos. Como es obvio, el ancho de banda que proporcionas se utiliza para que la gente pueda descargarse los paquetes que quieran, pero ¿el espacio reservado en el disco duro? Pues en este espacio almacenas los recursos de la red.

Al igual que en un programa P2P, todos contribuyen con todos; cuando me descargo un archivo, me lo descargo de varios ordenadores, no de uno solo y de varios archivos, no de uno solo. FreeNet funciona de forma parecida. Primero, un nodo sube un archivo a la red, la red lo divide en partes, y envía cada parte a varios nodos (para replicar la información y que siempre esté disponible). Así , si hay alguien que quiere descargarse el archivo que ha colgado el usuario, se lo descargará bajándose todas las partes de diferentes nodos. Además, todos los paquetes están cifrados, de manera que los nodos no pueden acceder al contenido que almacenan y alterarlo. También se deja claro que ninguna persona es responsable de lo que almacene, por lo que si estoy almacenando un plano balístico de un proyectil nuclear, legalmente no es mi culpa (aunque no impide que siga estando muy intranquilo).

Por último, puedes conectarte a un nodo de dos formas: mediante Opennet o Darknet. Lo normal es que cuando quieres acceder a un archivo, te conectes a la red FreeNet y preguntes a un nodo por el recurso. La red se encarga de buscar los nodos que tienen el archivo, estableces una conexión y te lo bajas. Este tipo de funcionamiento es la Opennet:

740px Freenet Request Sequence ZP.svg

Sin embargo, si por ejemplo sabes que un nodo tiene el archivo, quieres hablar con un amigo a través de FreeNet o quieres acceder a un servidor interno, lo más normal es que le digas a la red FreeNet que quieres establecer una conexión con el nodo X. Es decir, que estableces una conexión directamente, sin preguntar a los diferentes nodos. Este método de conexión es el DarkNet. Es muchísimo más seguro que el OpenNet, ya que el nodo se supone que es de confianza, pero solo lo puedes utilizar en determinados casos.

Por último, me gustaría destacar que este proyecto no sustituye a Tor, aunque puede ser un complemento buenísimo, como así lo ha demostrado WikiLeaks. También es necesario destacar que no es escalable, en el momento en el que haya muchos nodos, simplemente no funciona, ya que para encontrar un nodo que contenga el archivo pueden pasar desde horas a milisegundos. Vuelvo a repetir que FreeNet y cualquier servicio de P2P anónimo no es un sustituto de tor, sino que más bien es un complemento.

I2P (Invisible Internet Protocol):
Como en el caso anterior, os presento la definición del proyecto:

I2P es una red anónima que ofrece una simple capa para que ciertas aplicaciones que manejan información sensible puedan usarla para comunicarse de una forma segura. Todos los datos son envueltos en distintas capas de codificación, además la red es distribuida y dinámica, sin que haya que confiar en una tercera parte.

i2plogo

Es decir, que es igual que FreeNet (nació de ese proyecto) pero dispone de proxies para poder comunicarse con el exterior. A través de I2P podré usar clientes P2P, chats, canales IRC o servidores de correo electrónico. Pero también podré usar la red para conectarme a un proxy que realice la petición a un servidor externo. Sin embargo, el funcionamiento es diferente al que presenta Tor. I2P es sensiblemente más complejo, pero aparentemente más seguro. En la definición que he escrito arriba pone que I2P proporciona una capa. Pero, ¿qué capa? Lo voy a explicar muy resumido, obviando varios detalles para que se comprenda mejor, por este motivo hay tantas palabras entrecomilladas XD.

Para el funcionamiento de internet, existen diversos protocolos que actúan en diferentes capas. Estas capas tienen una función “determinada” por el modelo OSI (capa física, capa de datos, capa de red, capa de transporte, capa de sesión, capa de presentación y capa de aplicación). Así por ejemplo, el protocolo IP se “encuentra” en la capa de red. Lo que I2P hace es generar una capa de más alto nivel que “utilizan” las aplicaciones, y que se encuentra “encima” del protocolo IP cuya misión es no revelar la identidad de los participantes en una conexión. Así mismo, esta capa asigna una clave cifrada que identifica a cada nodo, maneja las diferentes claves para poner en contacto a los dos participantes de la conexión y establece un flujo UDP entunelado entre los dos participantes. Es decir, que cuando yo me conecto a I2P y realizo una petición de conexión a un nodo, la aplicación lo identifica con la clave cifrada que le proporciona I2P, establece la conexión con esas claves y a partir de entonces se genera una conexión protegida del protocolo UDP (un protocolo para transmitir paquetes parecido al TCP).

Al igual que en tor existían las autoridades de directorio, en I2P existen las Network Databases. La diferencia es que son muchísimo más seguras que las autoridades de directorio, están bastante más replicadas y el acceso a la información es más seguro. Estas bases de datos tienen dos tipos de archivos: los que se refieren a los nodos de la red (RouterInfos) y los que se refieren a un servidor interno (LeaseSets). Es decir, que si quiero acceder a un servidor externo, preguntaré por diversos RouterInfos, pero si quiero acceder a un servidor interno solo preguntaré por los LeaseSets. La consecuencia de este procedimiento es una total separación entre la actividad que muestra más peligro (acceder a internet a través de I2P) y las que se supone que es más confiable (acceder a un nodo interno para compartir un archivo, para hablar con un amigo…), por lo que la seguridad del sistema aumenta considerablemente.

Ahora las consecuencias de este planteamiento. Es bastante más complejo que tor (solo con leer los dos párrafos anteriores queda reflejado), pero el hecho de que toda la conexión esté entunelada bajo un protocolo que no permite identificar a los participantes de la conexión hace del sistema bastante más seguro y anónimo que tor. También hay que decir que I2P es mucho menos escalable que tor, tiene una comunidad mucho más pequeña, su desarrollo es más lento, la complejidad del proyecto hace que haya menos aplicaciones dedicadas y puede caer a ataques a los que tor es inmune.

Con este párrafo se acaban los cuatro artículos que pretenden explicar el funcionamiento de tor. Quería agradecer especialmente a Joe Di Castro, lector de PillateUnLinux, la aclaración que realizó en la primera entrega y que ha posibilitado que éste último capítulo se haya escrito. Tal y como comentó Debish en otro comentario,voy a pasar a un documento los cuatro artículos para que los podáis leer con más tranquilidad. Colocaré al final de este artículo un enlace para descargarlo cuando tenga algo de tiempo (en unos días, supongo que para el sábado estará).

Conclusión:
Como dicen los desarrolladores de I2P, el anonimato es el incremento de tiempo y dinero que tiene que realizar una organización para dar con tu identidad. No creo que exista el anonimato en internet, siempre se puede llegar a identificar a una persona. Sin embargo, con el uso de varias tecnologías, se puede llegar a ser bastante anónimo. Wikileaks así lo demuestra.

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock