Redes anónimas: más allá de Tor

La red anónima más conocida, con diferencia, es la red Tor. Como causa, y probablemente consecuencia, su comunidad de usuarios, desarrolladores e investigadores es también la mayor. Esta atención también ha resultado en un mayor número de ataques y vulnerabilidades encontradas en Tor (prácticamente resueltas o mitigadas en la medida de lo posible). No obstante, esto también ha causado que la comunidad empiece a prestar atención a otras alternativas, para conocer si son más o menos robustas.
En cualquier caso, son pocas las opciones que ofrecen al mismo tiempo sencillez de uso, robustez y cuentan con una comunidad suficientemente grande que ayude al desarrollo y evolución del software asociado. Esto es debido a que son sistemas altamente complejos, debiendo proporcionar al mismo tiempo una alta seguridad y una baja latencia (si pretenden servir para uso común), y que requieren un gran esfuerzo para su mantenimiento.
A continuación, resumimos dos de las principales alternativas, I2P y Freenet y terminamos mencionando varios sistemas adicionales a los que aún les falta un poco de madurez o que dejaron de mantenerse hace tiempo.
I2P: The Invisible Internet Project
A raíz de las noticias que han venido apareciendo recientemente acerca de posibles ataques y compromisos de la red Tor, I2P ha recibido creciente atención. No obstante, como los propios desarrolladores de I2P reconocen, Tor está respaldada por una comunidad de usuarios, desarrolladores e investigadores mucho mayor que I2P. Esto, en parte, explica por qué en Tor se han producido más ataques (y encontrado más vulnerabilidades), aunque I2P tampoco ha pasado totalmente desapercibida.
I2P es una red de anonimato de baja latencia basada en mixes (como Tor). Evoluciona el concepto de onion routing en lo que llaman garlic routing. En esta variante, quien envía un mensaje puede cifrarlo con la clave pública del destinatario y, además, encapsularlo junto con otros mensajes cifrados bajo la misma clave.
Por otro lado, en I2P todos los nodos tienen el mismo rol, formando una red totalmente descentralizada, poniéndose el foco en la navegación hacia «sitios eep» (el equivalente a lo que en Tor se conoce como servicios ocultos), con los que es posible establecer una conexión cifrada punto a punto y formando lo que se conoce como la Darknet de I2P. Esta aproximación difiere de Tor, donde hay nodos con distintos roles (nodos de entrada, nodos de salida, nodos intermedios, directorios, etc.), que también está diseñada para acceder a sitios web normales (no ocultos).
Aunque es posible salir fuera de esta Darknet a través de los «outproxies» de la red, no es el objetivo inicial del sistema (ver Sección III.H de “I2P Data Communication System”):
I2P is not meant for anonymous Internet browsing, but for anonymous P2P communication.
El hecho de que I2P esté diseñado para sitios eep (servicios ocultos) hace que la navegación sea más eficiente en comparación con los servicios ocultos de Tor. Por otro lado, en I2P es posible utilizar tanto TCP como UDP a nivel de transporte.
Como primitivas criptográficas, I2P utiliza ElGamal de 2048 bits y AES de 256 bits para cifrado, DSA (aunque están migrando a otros algoritmos, como ECDSA) para firmado y SHA-256 para hashing. Las claves públicas se incluyen en la base de datos distribuida de I2P, en entradas conocidas como «routerInfo» (para routers) y «leaseset» (para nodos finales), que cada nodo tendrá que consultar para establecer conexiones.
En cuanto a las conexiones que se establecen, I2P utiliza por defecto dos túneles (unidireccionales) de salida y dos túneles (unidireccionales) de entrada, que cambian cada 10 minutos. Para que un nodo A conecte con un nodo B, el nodo A debe «enganchar» uno de sus túneles de salida con uno de los túneles de entrada de B (anunciado en su leaseSet). El número máximo de saltos para cada túnel es 7.
También se categorizan los nodos en 4 tipos, dependiendo de su disponibilidad y ancho de banda, utilizándose esta clasificación para establecer túneles dependiendo del uso que se les quiera dar.
- Túneles establecidos en conexiones I2P (Fuente: web de I2P) -
I2P está implementado en Java, y está disponible para Windows, Mac, distribuciones de Linux (Debian, Ubuntu), BSD, Solaris y Android, además de ser código abierto. También hay distribuciones de Linux orientadas a la privacidad que lo incorporan de forma nativa, como Tails (a partir de la versión 0.7), IprediaOS y Liberté.
- Página principal de I2P -
Freenet
En «Freenet: A Distributed Anonymous Information Storage and Retrieval System» se describe Freenet, un sistema P2P para la publicación, replicación y recuperación de información destinado a proteger la identidad de lectores y autores a través del anonimato. Es decir, a diferencia de Tor e I2P, más que para anonimizar las comunicaciones, Freenet está pensada para anonimizar el almacenamiento de información y distribuirla entre los equipos que componen la red. De esta forma, se garantiza la disponibilidad, protegiendo también a quienes acceden a la información, ya que ni siquiera el equipo donde se almacena tiene acceso a los contenidos de la misma.
Cuando un usuario sube un fichero al sistema le asigna una etiqueta. Esta etiqueta se utiliza (junto con el namespace del usuario) para derivar una clave de cifrado y un par de claves asimétricas (conocido como SSK). La clave de cifrado simétrica se utiliza para cifrar el propio fichero, y la clave privada de la asimétrica para firmarlo.
Además, se calcula una etiqueta adicional (conocida como CHK) como un hash del contenido del fichero. El usuario comparte el fichero, su firma y el CHK con el resto de nodos de Freenet. Por separado, publica la etiqueta junto con el CHK y la clave de descifrado de alguna forma (existen repositorios web para ello, parecidos a la Hidden Wiki para sitios .onion).
Un usuario que quiera recuperar un fichero de Freenet, debe conseguir la etiqueta, el CHK y la clave de descifrado (por ejemplo, a través de los repositorios mencionados), que puede usar para solicitar el archivo. Una ventaja de Freenet es que, debido a su algoritmo de enrutamiento interno, tienden a crearse clusters de nodos que contienen ficheros con claves de búsqueda similares. De esta forma, se optimiza el número de saltos que debe dar un cliente para localizar un fichero determinado.
Una vez recuperado el fichero desde alguno de los nodos que lo almacenan, se descifra el fichero y se verifica su firma utilizando las claves correspondientes.
- En «Freenet: A Distributed Anonymous Information Storage and Retrieval System» se especifica el flujo de información tras una petición. -
Este sistema ha sido implementado en Java como open source por el Freenet project como una aplicación para navegadores web. Entre sus principales usos, destaca por la protección frente a censura, ya que es robusto ante denegaciones de servicio (p.e., intentar eliminar un fichero de la red), y al almacenarse cifrada la información por separado de la clave de cifrado, los propios nodos que la contengan pueden afirmar no saber qué están almacenando (como pasa con Mega, por ejemplo). No obstante, esto lleva de la mano que se utilice también para almacenar contenido ilegal, como se indica en la propia aplicación.
- Directorio de sitios web en Freenet -
Otros
Como ya se dijo al principio, Tor, I2P y Freenet no son las únicas alternativas, aunque sí sean probablemente los sistemas más maduros y activos en la actualidad. Otras propuestas como Mixminion o Mixmaster también son relevantes, aunque parecen no tener soporte activo, o estar incluso abandonados. Free Haven también parece no estar activo en cuanto a desarrollo, aunque sí se sigue utilizando, por ejemplo, para almacenar publicaciones académicas relativas a sistemas de anonimato. En la web de I2P también se indican muchas otras alternativas. Y, por último, Dissent, para comunicación anónima entre grupos, que aún se encuentra dando sus primeros pasos también es un sistema a tener en mente.