Propuesta
para la creación de una red segura y anónima
El administrador de
Filetopia no hace partícipes de una propuesta ilusionante y
realizable, una apuesta conjunta, aglutinadora de los elementos más
activos de la red hispana.
En este artículo me gustaría plantear una interesante aplicación del
cifrado fuerte y el P2P. Esta aplicación es especialmente importante
en estos tiempos en los que se avecinan censuras informativas.
Uno de los mayores problemas desde el punto de vista de la privacidad,
a la hora de poner un sitio web, es el hecho de que una web ha de
estar alojada en un servidor concreto, al que es posible censurar y en
algunos casos incluso llegar hasta el autor del contenido. La mera
posibilidad de que esto ocurra hace que muchas personas se lo piensen
dos veces antes de invertir esfuerzos en realizar una web de contenido
crítico o a la hora de publicar ciertos contenidos que pudiesen hacer
peligrar la existencia de su web.
El estado del arte actual en el P2P nos permite hacer cosas realmente
interesantes. Una de ellas es la creación de una “web distribuida”,
una web que no existe en ninguna máquina en concreto, que es tan
sencilla de usar como la web normal y que es extremadamente difícil de
atacar desde el punto de vista técnico o legal.
¿Parece un sueño? Quizás, pero es posible hacerlo realidad
utilizando el conocimiento que tenemos en la actualidad.
La base técnica consiste en la creación de una red P2P totalmente
descentralizada que utiliza un algoritmo basado en tablas de hash
distribuidas (DHT). La peculiaridad de este tipo de algoritmos es que
permiten distribuir cualquier tipo de información de manera uniforme
entre todos los nodos conectados a la red P2P, y no sólo eso, además
permiten buscar cualquier información almacenada en esta red de una
manera muy rápida, eficiente y exhaustiva.
Existen en la actualidad algunos proyectos que persiguen el mismo
objetivo, el más conocido es FREENET. Es un proyecto que lleva años en
desarrollo, por su extrema complejidad nunca ha pasado de fase beta,
es muy difícil de utilizar (incluso para aquellos que nos consideramos
técnicos) y es muy poco eficiente. Eso sí, es muy seguro. Pero no es
fácil que se pueda encontrar nada allí, las herramientas de búsqueda
sirven de poco y no son exhaustivas, además no tiene nada equivalente
a nombres de dominio que sean fáciles de recordar como las URLs de la
web a las que estamos acostumbrados.
El sistema propuesto sería tan fácil de usar como un navegador
convencional, llevaría un google incorporado, un registro de dominios,
y cualquiera podría publicar sus páginas de forma anónima sin
preocuparse de dónde hospedarlas o que sean atacadas.
La red P2P usaría conexiones cifradas, mediante el uso de clave
pública. La información en la base de datos distribuida también
estaría cifrada. Para poder acceder a esta web, un usuario simplemente
se bajaría el programa navegador (que haría las veces de nodo de red)
y establecería cuánto espacio en disco permite como almacenamiento
distribuido y qué ancho de banda permite a la red P2P.
Cada nodo de esta red tiene un identificador único, aleatorio, de 160
bits, obtenido mediante el empleo del algoritmo SHA1 que entre otras
propiedades, se caracteriza por distribuir los resultados de manera
homogénea en el espacio de bits.
Este nodo se conecta a la red a partir de la IP de un nodo cualquiera
(bootstrap) que se podría obtener de sencillas web-caches puestas en
cualquier máquina. A partir de este momento, en cuestión de segundos
ha encontrado su puesto en la red y está preparado para compartir
(replicar) el espacio de base de datos que le corresponde.
Para almacenar información se emplea un sistema de
la clave será cualquier dato que podramos usar después
para recuperar la información: por ejemplo la dirección URL de una
página web dentro de nuestro sistema de dominios. El siguiente paso es
convertir la clave en un número de hash de 160 bits (empleando de
nuevo SHA1). Con este número buscamos los nodos de red que tienen un
identificador más cercano y replicamos la información en ellos (la
razón por la que se replica en varios de estos nodos es para evitar el
caso de que un nodo se desconecte de la red llevándose consigo parte
de la información). Además de almacenar las páginas en sí, asociadas a
su dirección, podemos almacenar también una serie de keywords que nos
ayudasen a encontrar la página después (lo que nos permitiría
implementar un buscador para nuestro sistema de forma sencilla).
La recuperación de la información es un proceso similar, a partir de
una dirección de página obtenemos el hash que luego nos permitirá ir a
uno de los nodos donde existe la información. En caso de no conocer la
dirección, podemos usar el buscador para que a partir de una palabra
clave podamos encontrar la URL de todas las páginas que estén
asociadas a esa palabra.
El sistema de nombres de dominio funcionaría de la siguiente manera:
un editor solicita un nombre de dominio primario al sistema, p.e: “nautopia”,
si el dominio no existe, se asigna en la base de datos distribuida y
se asocia a la firma digital del editor, entre otros valores. A partir
de este momento, el editor tiene la opción de crear subdominios o
realizar otra serie de funciones sobre su propio dominio (entre ellas
borrar el dominio o transferirlo a un tercero), valiéndose siempre de
la firma digital que asoció al dominio en su creación.
Para que la base de datos no crezca indefinidamente, el sistema tiene
una función de “purgado” que posibilita borrar información que no ha
sido accedida en un determinado tiempo. Además, un editor tiene
limitada la cantidad de información que puede publicar en un solo día
(posiblemente este valor estaría asociado al rating del editor, lo
veremos más adelante).
Un sistema como éste escala a millones de usuarios conectados, siendo
las búsquedas logarítmicas, es decir, para buscar de manera exhaustiva
entre un millón de nodos, necesitamos un máximo de 20 saltos, si
fuesen 8 millones de nodos, necesitaríamos como máximo 23 saltos, etc.
Sería posible la creación de pasarelas entre la web convencional y
nuestra web inexistente, pero el empleo de estas pasarelas no promueve
la creación de la red P2P que sustenta la web y además sería más lento
que disponer de nuestro propio navegador.
Por supuesto, todo contenido susceptible de invadir la privacidad:
cookies, java, etc, no estaría permitido. El contenido dinámico:
foros, etc. sería posible realizarlo usando herramientas de desarrollo
propias, totalmente seguras y disponibles para todos. El sistema
podría incluir una serie de lenguajes de script (VB, C++Script,
Javascript, pascalscript) con un motor único que cuide la seguridad.
Ratings: toda página web albergada en el sistema, todos los autores,
etc. pueden ser calificados por otros usuarios, y esas calificaciones
pueden ser consultadas por los demás usuarios para validar la calidad
de los contenidos publicados. Igualmente a la hora de buscar, es
posible filtrar la información basándose en estos criterios.
Las posibilidades son enormes, y la complejidad técnica no es
excesiva, es un proyecto abordable por un pequeño grupo de
desarrolladores.
Dejo aquí esta idea, he intentado omitir los detalles más técnicos
para que pueda ser entendida mejor.
Compartir este articulo : | | | | |
Ver historial completo de
noticias destacadas. |
|