Aunque en esta serie de entradas se ha profundizado principalmente en TOR, I2P y FREENET, existen muchas más soluciones que van por la misma linea y que intentan preservar la privacidad de sus usuarios, no obstante en esta serie de publicaciones se ha optado por explicar las 3 soluciones anteriormente indicadas principalmente por las siguientes razones:

  1. Estabilidad.

  2. Volumen de usuarios

  3. Funcionalidades

  4. Resistencia a la censura.

Actualmente TOR, I2P y FreeNet son las redes que se encuentran en un estado más avanzado en los puntos anteriores, por lo tanto no se puede desestimar ninguna ni pretender que alguna es “superior” a otra, siempre es necesario tener presente que se trata simplemente de herramientas que intentan conseguir el mismo fin: Preservar el anonimato y la privacidad de sus usuarios. Sin embargo, cuando alguien desea que sus “acciones” sean anónimas, necesita conocer muy bien estas soluciones y determinar cual se ajusta a sus necesidades concretas, en algunos casos, los usuarios se decidirán por el uso de TOR dadas sus capacidades de “Outproxy” mientras que otros preferirán I2P o FREENET por sus capacidades de “Inproxy” y VPN, se trata simplemente de una decisión que el usuario debe tomar en un momento determinado dependiendo de lo que quiera hacer. No obstante es importante en este punto resaltar y comparar las principales funcionalidades de estas 3 redes con el fin de proporcionar un “marco de decisión” más amplio al usuario final e identificar cuales son los puntos fuertes y los puntos débiles de cada una de estas soluciones con respecto a las otras.

TOR vs I2P

Como se ha comentado a lo largo de esta serie de entradas, TOR es una solución que utiliza múltiples nodos para su funcionamiento llamados en su conjunto “circuito virtual”. I2P sigue un modelo similar donde existen múltiples nodos que crean canales de comunicación unidireccionales seguros llamados “túneles”. Una de las diferencias entre TOR e I2P, es que el modelo comunicacional es distinto, mientras que TOR utiliza un único “circuito” bidireccional para enviar y recibir peticiones, I2P utiliza dos unidireccionales, uno para el envío de paquetes y otro para recepción. Sin embargo, la diferencia que tiene mayor relevancia y que sin duda alguna es la que más resalta entre estas dos soluciones de anonimato es el contexto de la comunicación propiamente dicho, ya que TOR utiliza un modelo OutProxy mientras que I2P utiliza un modelo InProxy. Un modelo OutProxy esta principalmente enfocado a redes “externas” a la red virtual (circuito virtual) tales como máquinas en Internet, un modelo InProxy es justamente lo contrario, es un modelo de VPN “puro” donde ninguna entidad externa puede participar en la red sin antes unirse a ella, del mismo modo los participantes del InProxy acceden a recursos localizados al interior de la red, los principios que declara el modelo de InProxy son normalmente conocidos como “darknet”. Partiendo de esta diferenciación, se procede a listar una serie de ventajas y desventajas que tiene una solución sobre la otra.

Ventajas de TOR sobre I2P

  1. El número de usuarios y recursos disponibles en la red de TOR es mucho mayor que en I2P.
  2. Se trata de una solución que es mucho más conocida y “visible” en el campo académico y las comunidades de hackers, por esto existen una gran cantidad de recursos informativos, papers, herramientas, librerías y múltiples trabajos de investigación relacionados con TOR.
  3. Dada su trayectoria y soporte, cuenta con soluciones a problemas comunes en redes anónimas (especialmente relacionados con el rendimiento) que I2P aun esta desarrollando, por ejemplo, en TOR el trafico en los “Exit Nodes” se encuentra mucho más optimizado que en I2P con sus “Outbound Tunnels”.
  4. Dado su tamaño, puede ser más resistente a la censura y a diferentes tipos de ataques de DoS que I2P.
  5. Tiene mejoras considerables en términos de consumo de memoria con respecto a I2P, dado que un nodo (cliente o relay) en TOR consume una cuenta limitada de recursos y normalmente no afecta el desempeño general de la máquina donde se ejecuta, en I2P el rendimiento puede verse seriamente afectado dependiendo del número de túneles abiertos, conexiones, trasferencias de ficheros, etc.
  6. TOR maneja un modelo “centralizado” mientras que en I2P el modelo de intercambio de datos es descentralizado, lo que para algunos puede representar una ventaja de TOR sobre I2P.
  7. TOR se encuentra escrito en C, lo que para algunos puede representar una ventaja de TOR sobre I2P (cuestión de gustos).

Ventajas de I2P sobre TOR.

  1. I2P cuenta con un modelo de servicios al interior de la red mucho más extenso, eficiente y robusto que TOR, dado que soporta diversas aplicaciones como BitTorrents (la cual no es soportada en TOR). Los servicios internos en I2P son mucho más eficientes que los Hidden Services en TOR, esto principalmente debido a que TOR esta enfocado en el anonimato “básico” para poder navegar y acceder a sitios en internet, pero no esta optimizado para compartir ficheros . Esta es una ventaja considerable e importante para muchos usuarios que quieren hacer mucho más que simplemente navegar por internet, ya que con I2P se pueden crear EEPSITES, compartir ficheros, enviar mensajes de correo electrónico, chatear, etc. De una forma mucho más optima que con TOR.
  2. I2P es una red completamente distribuida y auto-gestionada, dado que cada uno de los nodos seleccionados para la creación de un túnel determinado en una instancia de I2P, se toma como base un “ranking” sobre el desempeño de los nodos en lugar de un modelo de “confianza” sobre dicha información como es en TOR con sus directorios autoritativos.
  3. No existe un directorio autoritativo central, por lo tanto los ataques dirigidos son mucho más difíciles de llevar a cabo, dado que cada usuario en I2P, es en si mismo, un nodo que participa en la red para componer los túneles de otros usuarios. Esta claro que atacar a unos pocos directorios autoritativos en TOR, es mucho más factible que atacar miles de nodos en I2P.
  4. Dado que a la fecha de escribir este articulo, aun no cuenta con la difusión ni tamaño que tienen otras soluciones como TOR, no han habido tantos ataques de denegación de servicio o problemas relacionados con la censura como ha ocurrido con TOR.
  5. El uso de túneles uni-direccionales en I2P supone una ventaja con respecto a TOR en el sentido de que un atacante debe “doblar” el número de nodos por instancia que debe comprometer para obtener la misma información.
  6. Los túneles en I2P normalmente duran poco tiempo y con bastante frecuencia se reconstruyen con nuevos peers, a diferencia de TOR donde los circuitos son de “larga duración” y su renovación depende de los directorios autoritativos.
  7. Soporta UDP, TCP e ICMP a diferencia de TOR que solamente soporta TCP.
  8. I2P se encuentra escrito en Java, lo que para algunos puede representar una ventaja de I2P sobre TOR. Ademas de contar con varias API (Streaming Library, BOB SAM) para desarrollo de aplicaciones utilizando I2P (cuestión de gustos).

FREENET vs TOR

Del mismo modo que ocurre con I2P y TOR, las principales diferencias entre FreeNet y TOR radican en el modelo de comunicación empleado, ya que FreeNet es también una red “InProxy” o “DarkNet” (si, existen muchos términos que se designan a los mismos conceptos prácticos…) mientras que TOR como se ha indicado anteriormente es una red “OutProxy” que brinda la posibilidad de acceder a internet por medio de TOR. Para aclarar un poco más estos conceptos antes de continuar, es necesario comprender que el principal objetivo de las redes “InProxy” o “Darknet” es el de facilitar la comunicación anónima entre dos o más entidades (personas) utilizando un medio de comunicación seguro, por esta razón se trata de un modelo de comunicación cerrado donde no pueden intervenir otros nodos que se encuentran localizados en internet sin antes “entrar” en la red. De hecho, para navegar a cualquier FreeSite en FreeNet es necesario contar con su correspondiente clave y posteriormente utilizar una herramienta como FProxy, con TOR solamente es necesario utilizar un proxy HTTP/HTTPS/SOCKS y configurarlo para que funcione con TOR, con esto es suficiente para acceder a Internet utilizado el correspondiente circuito virtual de TOR. Ademas de lo anterior, FreeNet es en realidad, un repositorio de almacenamiento descentralizado, puede verse perfectamente como una base de datos que se encuentra replicada en los “datastore” de los nodos que participan activamente en la red (por participar, se refiere a una acción tan simple, como acceder a una clave FreeNet desde TCMI o FProxy). Dado el modelo que sigue FreeNet y TOR, puede hablarse de algunas ventajas y desventajas entre dichas redes.

Ventajas de TOR sobre Freenet

  1. Cantidad de usuarios desarrollando y usando el software, número de routers participando en la red, cantidad de aplicaciones, recursos, etc.
  2. Maneja mucho mejor la privacidad de los usuarios dado que no almacena ningún fichero en el sistema de archivos local sin previa autorización por parte del usuario. Freenet por otro lado, almacena ficheros e información de otros usuarios en el sistema de ficheros local en una zona conocida como “DataStore” sobre la cual se tiene muy poco control de lo que se almacena y se consulta.
  3. Freenet es una red lenta, TOR presta un servicio mucho más eficiente y tiene mejor entropia que Freenet.
  4. TOR puede ser utilizado de muchas maneras, desde un navegador web o desde una aplicación externa simplemente “enrutando” todas las peticiones por medio de TOR, con FreeNet, existen solamente 3 mecanismos posibles, utilizando FProxy, TCMI o empleando la API disponible para crear “manualmente” aplicaciones que accedan a la red.

Ventajas de FreeNet sobre TOR

  1. Como se ha comentado anteriormente, TOR se encuentra bastante limitado en términos de servicios prestados, esto principalmente a causa de que solamente soporta protocolo TCP y no es una solución optima ni segura para compartir ficheros sobre la red. En este aspecto FreeNet tiene una amplia ventaja, ya que esta red se encuentra diseñada e implementada sobre el principio de ser una “base de datos distribuida” donde cada nodo en la red almacena información de otros usuarios.
  2. Se trata de una solución que puede ser más segura que TOR en el sentido de que existen menos vectores de ataque (dado que es menos popular) y que no cuenta con un modelo de amenazas tan extenso como TOR, especialmente con los problemas de seguridad que puede acarrear un nodo de salida comprometido o malicioso.
  3. Todas las ventajas que proporciona un sistema distribuido sobre uno centralizado, especialmente relacionadas con el modelo de amenazas, ya que no es igual atacar una cantidad fija y pequeña de sistemas (en el caso de TOR, los directorios autoritativos) que una cantidad en constante aumento (en el caso de FreeNet).
  4. Cuenta con un conjunto de servicios anónimos mucho más rico que TOR, con aplicaciones y plugins para desplegar sitios web anónimos (conocidos como FreeSites), chat anónimo, compartir ficheros, participar en foros, etc.
  5. Soporta UDP, ICMP y TCP, mientras que TOR solamente soporta TCP.

I2P vs FREENET

I2P y FreeNet son soluciones siguen un modelo bastante similar, dado que ambas utilizan mecanismos de cifrado fuertes para la creación de conexiones entre dos o mas nodos, como se ha mencionado anteriormente, se trata de soluciones “InProxy” que permiten la creación de redes privadas, donde es posible conocer cuales son los participantes de la misma (nodos), pero la información que viaja entre cada participante y los puntos finales (emisores y receptores) solamente es conocida por el destinatario en cada uno de los casos. Una de las características que hacen que estas soluciones tengan similitud con TOR, es el concepto de “Onion Routing” donde cada nodo implementa una “capa” de cifrado a nivel de transporte, de tal forma que cuando un nodo recibe un paquete, sabe cual es el próximo destino (el siguiente nodo al que debe dirigir el paquete recibido, que evidentemente también se encuentra cifrado) pero no tiene información sobre los nodos por los que ha pasado anteriormente el paquete así como tampoco sabe cuantos nodos falta por recorrer antes de que este llegue a su correspondiente destino. Cada vez que un mensaje (paquete) viaja por un nodo, se descubre una capa de cifrado, de tal forma que en la medida que el paquete se encuentra más cerca de su destino final, existirán menos capas por descifrar (ningún nodo sabe cuantas capas se han “removido” ni cuantas faltan por “remover”). Cuando el mensaje llega finalmente a su destino solamente queda el paquete propiamente dicho que puede ser descifrado por el destinatario en la capa de aplicación. Aunque existen bastantes similitudes, aun existen algunas ventajas y desventajas de una solución sobre otra. Algunas de estas son:

Ventajas de I2P sobre FreeNet

  1. Facilidades a la hora de crear cualquier tipo de túnel desde la aplicación I2PTunnel lo que permite que otras aplicaciones puedan integrarse y/o usar fácilmente I2P.
  2. Dado que I2P requiere la construcción de dos túneles separados (inbound y outbound) para la comunicación con otros nodos, los ataques se hacen cada vez más complejos y su tasa de éxito es menor.
  3. I2P tiene un rendimiento mucho más óptimo que Freenet. El hecho de que FreeNet sea más lento que I2P es debido a que la velocidad de conexión puede verse afectada por la cantidad de “peers” a los que se conecta un nodo de Freenet, entre más peers, mejor será el rendimiento, sin embargo, en casos donde un nodo tiene configurado un nivel de seguridad alto “solamente se permite la conexión con nodos conocidos, comúnmente nombrados como Friends”.
  4. I2P esta más “orientado al servicio” que FreeNet, ya que tiene la capacidad de exponer casi cualquier servicio de un nodo I2P en la red como por ejemplo SSH, Telnet, servidores web, etc.
  5. Implementación mucho más estable y con menos problemas en términos de arquitectura (software).
  6. Esta “ventaja” es bastante subjetiva, sin embargo considero oportuno mencionarla: La documentación existente sobre I2P es mucho más completa que la que existe sobre Freenet, además de que el movimiento de los canales IRC y los foros de I2P en la actualidad parece ser que tienen mucha más actividad que los medios de comunicación de Freenet, por lo tanto la resolución de problemas puede ser mucho más dinámica que con Freenet.

Ventajas de FreeNet sobre I2P

  1. Freenet cuenta con unas considerables ventajas sobre I2P, una de las principales es el modelo de datos distribuidos que se ha conseguido gracias de los DataStores de FreeNet, este mecanismo es una medida contra la censura de los contenidos publicados, ya que en función de la popularidad de la información que se almacene, será mucho más difícil restringir el acceso a un contenido determinado.
  2. Sistema de resolución de nombres mucho más completo (y posiblemente más seguro) que el existente en Freenet ya que mientras que en I2P se utilizan dominios con extensión *.i2p, en Freenet todos los contenidos son claves que resuelven internamente cualquier consulta sobre un determinado recurso al interior de la red
  3. Permite la segmentación de grupos de “Friends” en el interior de la red, lo que permite crear pequeñas “darknets” al interior de la red, con lo cual se controla mucho mejor los peers con los que interactua la instancia de Freenet. En I2P este nivel de control no es tan fino, ya que se puede decidir cuales nodos restringir, pero no se cuenta con unos niveles de seguridad en la conexión con otros nodos tan granular como los que permite Freenet.
  4. Dado que todos los nodos en Freenet almacenan información de otros servicios en sus correspondientes “DataStores”, un nodo de FreeNet puede ser “apagado” y aun así el servicio se encontrará disponible en algún punto de la red.

CONCLUSIONES

Para finalizar esta serie de publicaciones, (lo que no significa que posteriormente no se editen más publicaciones sobre anonimato y privacidad en este blog), es importante que los usuarios de estas herramientas entiendan que son soluciones que pueden ser perfectamente complementarias y que no tiene sentido enfrentarlas como si se tratará de productos comerciales que rivalizan para «captar» una cuota de clientes. Este comentario viene porque es muy frecuente ver que muchas personas tienden a “rivalizar” herramientas libres unas con otras, lo que desde un punto de vista personal carece de sentido. Luego también es necesario comprender que estas soluciones son “optimas” o no dependiendo de lo que se quiera hacer, por ejemplo si lo que se desea es tener un sitio web anónimo donde publicar cualquier tipo de contenido, probablemente utilizar I2P o Freenet sea una solución que mejor se adapte que TOR en términos de rendimiento y disponibilidad, sin embargo, si lo que se desea es realizar algún tipo de prueba de penetración contra un servidor ubicado en Internet, sin duda la solución que mejor se adapta es TOR. Por otro lado la intención de esta serie de “tutoriales” (si os apetece llamarlos así) es simplemente informar y dar a conocer estas herramientas, que existen y están ahí para que cualquiera las utilice, no se trata de “el lado oscuro” como muchos pretenden denominar a este tipo de tecnologías, son HERRAMIENTAS que tienen un alto nivel de seguridad y un alto nivel técnico que han sido desarrolladas por hackers con conocimientos avanzados y que cualquier persona con la intensión de ser uno, debería estar interesado en aprender. Ahora bien, muchas personas asocian a TOR, I2P o Freenet como una zona “malvada” llena de terroristas y delincuentes, pero no es así, en Freenet e I2P existen sitios anónimos destinados a investigación en muchas áreas del conocimiento humano y que con el fin de preservar y hacer públicos estos avances, deciden «liberar» sus documentos en este tipo de redes, simplemente con el fin de que se mantengan como un recurso de todos y para todos, minimizando el riesgo de censura o limitación (lo cual es muy común en regímenes totalitarios o estados represores). Por este motivo, insisto en que es importante y merece la pena aportar a estas soluciones, que no necesariamente tienen que ser aportes económicos, simplemente usarlas, probarlas, documentarlas, estudiarlas y crear relays (caso de TOR) o dejar levantado el servicio en una máquina (como en Freenet o I2P) ya es un aporte significativo.

Otra razón por la cual se ha creado esta serie de publicaciones es la necesidad de tener más información sobre tópicos avanzados en este tipo de redes, ya que la documentación existente en castellano, en muchas ocasiones es insuficiente y solamente cubre un 1% de lo que hay que saber sobre privacidad y anonimato cuando se utilizan estas herramientas. A los hispano-hablantes nos hace falta estudiar, aprender y compartir conocimientos sobre este tipo de tecnologías, por este motivo, animo a todo el que este interesado en compartir los documentos que se han escrito en este blog, estudiarlos y ampliarlos por medio de comentarios y/o contactando conmigo directamente.

Esta es la última publicación de esta (larga) serie de publicaciones relacionadas con el anonimato, pero se escribirán más con un nivel cada vez más avanzado. Espero que os hayan sido útiles y que las compartáis, así como también espero que las próximas series que se vayan publicando en este blog sobre hacking os sean útiles.

42 Publicaciones.

«El sentido de la vida, el universo y todo lo demás: 42

The Hitchhiker’s Guide to the Galaxy

Saludos!