Freenet

Inicialmente, las ubicaciones en Darknet se distribuyen al azar. Esto significa que el enrutamiento de las peticiones es esencialmente aleatorio. En Opennet las conexiones se establecen mediante una solicitud de unión que proporciona una estructura de red optimizada si la red existente ya está optimizada. Por lo tanto, los datos de una Freenet recién iniciada se distribuirán de forma algo aleatoria.

A medida que avanza el intercambio de ubicaciones (en Darknet) y el plegado de rutas (en Opennet), los nodos que están cerca unos de otros tendrán cada vez más ubicaciones cercanas, y los nodos que están lejos tendrán ubicaciones distantes. Los datos con claves similares se almacenarán en el mismo nodo.

El resultado es que la red se autoorganizará en una estructura distribuida y agrupada en la que los nodos tienden a albergar elementos de datos que están cerca en el espacio de claves. Es probable que haya múltiples agrupaciones de este tipo en toda la red, y que cualquier documento se replique varias veces, dependiendo de su uso. Se trata de una especie de «ruptura espontánea de la simetría», en la que un estado inicialmente simétrico (todos los nodos son iguales, con claves iniciales aleatorias para cada uno de ellos) conduce a una situación altamente asimétrica, con nodos que llegan a especializarse en datos que tienen claves estrechamente relacionadas.

Hay fuerzas que tienden a causar la agrupación (los datos de cercanía compartida se extienden por toda la red), y fuerzas que tienden a romper las agrupaciones (el almacenamiento en caché local de los datos de uso común). Estas fuerzas serán diferentes en función de la frecuencia de uso de los datos, de modo que los datos poco utilizados tenderán a estar en unos pocos nodos especializados en proporcionar esos datos, y los elementos de uso frecuente estarán muy repartidos por la red. Este reflejo automático contrarresta los momentos en los que el tráfico de la red se sobrecarga, y debido al enrutamiento inteligente de una red madura, una red de tamaño n debería requerir sólo log(n) de tiempo para recuperar un documento en promedio.

KeysEdit

Las claves son hashes: no hay noción de cercanía semántica cuando se habla de cercanía de claves. Por lo tanto, no habrá correlación entre la cercanía de la clave y la popularidad similar de los datos, como podría haber si las claves exhibieran algún significado semántico, evitando así los cuellos de botella causados por temas populares.

Hay dos variedades principales de claves en uso en Freenet, la Content Hash Key (CHK) y la Signed Subspace Key (SSK). Un subtipo de SSK es la Clave de Subespacio Actualizable (USK), que añade el control de versiones para permitir la actualización segura del contenido.

Una CHK es un hash SHA-256 de un documento (después de la encriptación, que a su vez depende del hash del texto plano) y, por lo tanto, un nodo puede comprobar que el documento devuelto es correcto haciendo un hash y comparando el compendio con la clave. Esta clave contiene la carne de los datos en Freenet. Lleva todos los bloques de construcción de datos binarios para el contenido que se entregará al cliente para su reensamblaje y descifrado. La CHK es única por naturaleza y proporciona un contenido a prueba de manipulaciones. Un nodo hostil que altere los datos bajo un CHK será detectado inmediatamente por el siguiente nodo o el cliente. Los CHK también reducen la redundancia de los datos, ya que los mismos datos tendrán el mismo CHK y cuando varios sitios hacen referencia a los mismos archivos grandes, pueden hacer referencia al mismo CHK.

Los CHK se basan en la criptografía de clave pública. Actualmente Freenet utiliza el algoritmo DSA. Los documentos insertados bajo SSKs son firmados por quien los inserta, y esta firma puede ser verificada por cada nodo para asegurar que los datos no son manipulados. Las SSK pueden utilizarse para establecer una identidad seudónima verificable en Freenet y permiten que una sola persona inserte varios documentos de forma segura. Los archivos insertados con un SSK son efectivamente inmutables, ya que la inserción de un segundo archivo con el mismo nombre puede causar colisiones. Las USK resuelven este problema añadiendo un número de versión a las claves, que también se utiliza para notificar las actualizaciones de las claves registradas como marcadores en la interfaz web. Otro subtipo de la SSK es la clave firmada por palabra clave, o KSK, en la que el par de claves se genera de forma estándar a partir de una simple cadena legible por humanos. Insertar un documento utilizando una KSK permite recuperar y descifrar el documento si y sólo si el solicitante conoce la cadena legible por el ser humano; esto permite que las URIs sean más convenientes (pero menos seguras) para los usuarios.

Leave a Reply