lunes, 11 de enero de 2010

P2P distribuido y seguro

Buena parte de los protocolos P2P más utilizados a día de hoy mantienen un enfoque centralizado, bien impuesto por el propio protocolo, bien por iniciativas de la propia comunidad a la hora de recomendar y optimizar la compartición de contenidos. La nueva hornada de aplicaciones P2P apuestan por la descentralización y los filtros de recomendaciones.

Pongamos como ejemplo BitTorrent. El cliente requiere descargarse un fichero .torrent que contiene información sobre el contenido solicitado y el servidor centralizado que está coordinando la descarga del mismo. Una vez procesado el fichero .torrent, el cliente va solicitando al servidor la información sobre el resto de usuarios que están compartiendo y descargando ese mismo contenido, dando comienzo la compartición entre pares.

La compartición del fichero se realiza en trozos según una división del contenido original. El cliente irá descargando trozos del fichero desde unos usuarios y a su vez pone a disposición los trozos descargados para enviarlos al resto de usuarios. La integridad de todas estas operaciones está garantizada mediante el uso de hashes (SHA-1), evitando compartir trozos del fichero corruptos (voluntaria o involuntariamente).

El enfoque centralizado de BitTorrent viene dado por:

* necesita un servidor que coordine la descarga de contenidos (tracker)

* es necesario un archivo .torrent para iniciar la descarga, normalmente disponible a través de "páginas de descargas" que mantienen un índice de contenidos, aunque podría y es publicado y distribuido a través de otros métodos (e-mail, etc)

* a mayor número de usuarios descargando un mismo fichero coordinado desde un mismo servidor, más recursos compartiendo y potencial velocidad de descarga, y más garantías de que se podrá completar la descarga (no dependencia de una única fuente o semilla)

* el protocolo no ofrece al usuario final ninguna garantía o método sencillo de comprobación sobre el contenido compartido en un .torrent (más allá de los hashes correspondientes y el título del fichero que puede ser falso, conocido como "fake"), por ello las páginas de descargas o foros de intercambio actúan como filtros de recomendación y control de calidad (que el contenido se ajusta al título, características del mismo, etc), evitando así contenidos inadecuados, en mal estado, o peligrosos (malware).

Para evitar este tipo de dependencias las nuevas aplicaciones P2P están enfocando en el soporte y popularización de unas tecnologías ya existentes y conocidas:

* la información que antes se mantenía en un servidor central se distribuye y gestiona entre los clientes participantes en la red. No es una tecnología nueva, redes muy conocidas como Kad (e-mule), o los propios trackers distribuidos de torrents, hacen uso efectivo de las tablas de hashes distribuidas (DHT) o el Peer Exchange (PEX), permitiendo la comunicación y coordinación entre clientes sin la necesidad de un servidor centralizado.

* no será necesario las páginas web de descarga que hospedan los archivos .torrent, se utiliza en su lugar los "magnet links". Básicamente se trata de un enlace que hace referencia al contenido (mediante un hash) en vez de a la localización, es decir, el enlace no apunta a una dirección o servidor concreto, sino que tiene información sobre el fichero a localizar en la nube (en la red P2P). A través de un "magnet link" se puede descargar el archivo .torrent sin saber de antemano la dirección donde está hospedado, lo proporcionará cualquier cliente de la red P2P que lo tenga. También se abre la puerta al soporte de búsqueda de contenidos en redes distribuidas P2P mediante los buscadores tradicionales, sin necesidad de pasar por un servidor intermedio o página web que actúe como contenedor del enlace.

* el uso de DHT y PEX permite comunicarse y participar en la compartición de archivos a usuarios que hayan descargado el archivo .torrent sobre un mismo contenido desde diferentes localizaciones. Un servidor no coordina la descarga por grupos, sino que participa toda la red dotando al sistema de mayor garantía y disponibilidad.

* se están implementando sistemas de recomendación basados en algoritmos de filtrado colaborativo e indicadores de reputación. Al estilo de Spotify o Amazon, el cliente P2P realiza recomendaciones basándose en el historial de descargas, además permite compartir el historial o dar mayor relevancia a las opiniones de una red de contactos confiables (al estilo de las redes sociales). Adicionalmente se establecen indicadores de reputación y valoraciones, de forma que penaliza a aquellos contenidos que no se ajusten a lo esperado y a los clientes que fomenten la introducción de "fakes" o malware. Este es uno de los puntos más dependientes de las actuales páginas de índices y foros de descargas, el control de calidad, y está por ver si finalmente la comunidad logra autogestionarse en este sentido.

Todo esta tecnología se está implantando de forma paulatina en clientes P2P ya conocidos, de hecho habrá usuarios que estén utilizando de forma parcial alguna de estas técnicas sin ser conscientes de ello. También están naciendo clientes P2P adaptados a este nuevas premisas, por ejemplo el caso de www.tribler.org, si bien aun no disponen de una masa crítica de usuarios como para obtener resultados similares al de otros clientes de mayor uso.


Bernardo Quintero
bernardo@hispasec.com


Más información:

Protocolo BitTorrent
http://en.wikipedia.org/wiki/BitTorrent_(protocol)

Distributed hash table (DHT)
http://en.wikipedia.org/wiki/Distributed_hash_table

Peer Exchange (PEX)
http://en.wikipedia.org/wiki/Peer_exchange

Magnet URI scheme
http://en.wikipedia.org/wiki/Magnet_URI_scheme

Tribler
http://www.tribler.org

Freenet
http://en.wikipedia.org/wiki/Freenet

No hay comentarios:

Publicar un comentario en la entrada