domingo, 20 de agosto de 2017

Proyecto redes: PeerBlock y funcionamiento de redes P2P

Hoy he leido un post de alguien que preguntaba como funciona un programa llamado PeerBlock y por las respuestas me parece que es un programa que la gente no conoce y da una falsa sensación de seguridad. Por eso quiero explicar como funcionan las redes P2P centralizadas y descentralizadas y en cuales el sistema de PeerBlock funciona y en cuales no.

Peerblock es basicamente un firewall basado en listas. Si un equipo (servidor, PC o lo que sea) está en una de esas listas se bloquea la conexion.

Pero antes que nada debeis comprender una cosa: que no es lo mismo los datos de los archivos que se transmiten (que SIEMPRE se transmiten de un equipo a otro) y los "metadatos". Los metadatos son información sobre los archivos que se van a transmitir. Lo que os explico aqui es la forma de manejar esos metadatos.

Lo primero, vamos a ver la red eMule.

En la red eMule, la conexion es centralizada, es decir, que los metadatos pasan por un servidor, que genera una lista de archivos disponibles. Veamos un ejemplo.

Imaginemos que tenemos un servidor de eMule y un PC que quiere compartir. Ese PC se conecta al servidor y le dice la lista de archivos que tiene disponibles. El servidor anota esos archivos en una base de datos interna y espera a que haya mas solicitudes. Entonces otro PC puede preguntar si hay disponibles archivos con un determinado nombre y el servidor revisa su base de datos diciendo los archivos que hay y quienes los tienen. Hecho esto, el segundo PC puede solicitar a los demás que lo tengan que le pasen ese archivo.

¿Cómo actua Peerblock en este caso? En primer lugar, Peerblock podría bloquear las conexiones con servidores espia. Jamás se conectaría el equipo a uno de esos servidores. En segundo lugar, podría bloquear la comunicación con otros peers, lo que evitaría que le enviasen datos corruptos. Sin embargo, no podría evitar que el equipo que buscaba ese archivo supiera quien lo estaba compartiendo. Peerblock protege el equipo de sabotajes, pero no protege el anonimato ni evita que se sepa que se tiene tal o cual archivo.

Ahora, veamos la red Torrent.

En una red torrent no se informa de los archivos que se comparten "de golpe". Se informa de manera selectiva sobre cada archivo, y no es posible realizar busquedas.

Cuando alguien quiere compartir un archivo (o conjunto de archivos) obtiene un archivo con metadatos, con la información sobre lo que se quiere compartir. Después, se conecta con un servidor (tracker) que sabe quienes lo están compartiendo. Veamos lo que sucede. Un PC se conecta con el tracker y le dice "estoy compartiendo el archivo XXXXXX". Cuando hay algun otro equipo interesado pregunta especificamente por ese mismo archivo. El tracker no sabe que archivo es, solo un codigo, y le envia al interesado una lista de equipos que lo estan compartiendo.

En este caso, Peerblock hace lo mismo que antes. Evita los trackers falsos y bloquea las transferencias corruptas, pero no evita que se sepa que tiene ese archivo.

Ahora una red descentralizada.

En una red descentralizada los servidores solo sirven para conectar a los peers. En una red descentralizada existen lo que se llaman "peers" y "hubs" (tambien llamados "ultrapeers"). Un equipo que quiere conectarse consulta una lista de hubs (a estas se les llama "servicios de descubrimiento") y se conecta a dos o tres hubs a la vez. Cada hub puede estar conectado facilmente a cincuenta o doscientos peers y a otros cinco o seis hubs. Entonces, cuando un equipo quiere descargar algo pregunta a sus hubs, que a su vez les piden la información a los peers que conocen y a los siguientes hubs. Los peers deciden si quieren que sepan que tienen ese archivo o no. Peerblock permite bloquear esas peticiones, con lo que no pueden saber si se tiene ese archivo o no.

Ahi es 100% efectivo.

Un saludo.

No hay comentarios:

Publicar un comentario