Aplicaciones P2P BitTorrent
Sitio: | Facultad de Ingeniería U.Na.M. |
Curso: | Redes II - IC421 |
Libro: | Aplicaciones P2P BitTorrent |
Imprimido por: | Invitado |
Día: | miércoles, 4 de diciembre de 2024, 23:43 |
1. Introducción
El término P2P (Peer To Peer) para el español sería: "red entre pares o red de igual a igual".
La tecnología Peer to Peer o P2P, permite que las personas compartan archivos a través de una red en Internet. La tecnología P2P sería lo opuesto a la basada en Servidor.
Son aplicaciones y corren en capa 5, sobre la Capa 4 de Transporte, por eso usan puertos, cualquiera entre el 1024 y el 65535.
Se suele elegir 2 al azar (uno TCP y otro UDP) para cada equipo.
NO se debe confundir P2P con PPP (Point to Point Protocol) que es un protocolo del nivel de enlace de datos (Capa 2) utilizado para establecer una conexión directa entre dos nodos de una red.
¿Qué es una conexión P2P y por qué se utiliza para la piratería?
Las redes P2P se pueden utilizar para muchos propósitos. La más habitual es la opción de compartir archivos de cualquier tipo como: audio, vídeo, imágenes o software variado, como ficheros distribuidos, para hacer cálculos científicos o para hacer transacciones mediante dinero virtual (Bitcoin), entre otras cosas.
Podemos ver que en este intercambio de información, se puede poner en riesgo los derechos de autor, es por eso que este tipo de Tecnología, se suele asociar principalmente con la piratería.
La mayoría de las personas ahora usan lo que se conoce como la segunda generación de P2P, lo que en un inicio (1era. Generación) fue conocido como Napster.
Napster empezó en 1999 como una idea en la cabeza de un joven, con la aparición del formato MP3, pensó que compartir la música con otros. Este programa pionero del peer-to-peer, llegó a tener 85 millones de usuarios en todo el planeta, tenía un catálogo de millones de canciones y registraba mil millones de búsquedas al día. Pero SONY y el grupo Metallica empezó una guerra que contó con el apoyo de la RIAA, la todopoderosa patronal de la industria discográfica de Estados Unidos.
Esto redefinió Internet, la industria de la música y la manera en que todos pensamos sobre la propiedad intelectual.
Napster actualmente está en el mercado como un sitio para descargarse música de forma legal. Napster hoy compite con Spotify, pero desde muy atrás, su base de temas disponibles y usuarios es mucho menor que Spotify.
No es la misión de este artículo decir lo que debemos o no hacer, sino hablar de uno de los fenómenos de los que más se ha hablado en el mundo del Peer-To-Peer.
Hay dos generaciones de P2P, actualmente esta operativa la 2da versión.
2. Funcionamiento
Cómo funciona la red Peer-to-Peer
La descarga de archivos a través del sistema P2P es bastante sencilla, pues la operación requiere únicamente de usuarios, máquinas conectadas y archivos digitales que viajan por la web.
Recuerda que cada usuario solicita y envía simultáneamente, es decir, cada máquina conectada a la red funciona como un nodo (es cliente y servidor).
P2P y medios
Imagine su computadora como parte de una red de computadoras que desempeñan simultáneamente los roles de servidor y cliente y circulan datos a alta velocidad.
Esto explica la reputación del sistema, donde el intercambio de datos se realiza mediante fragmentos aleatorios muy pequeños hasta que se logra obtener el archivo completo.
El archivo final se ensambla a partir de los miles de fragmentos recibidos.
Al no depender de una fuente de distribución, si no de tener miles de fuentes de distribución, las descargas, además de ser más rápidas, no generan cola, ya que todos comparten partes del archivo entre sí. Por lo tanto, cuantas más personas descarguen el mismo archivo, más ancho de banda estará disponible, lo que evitará bloqueos y demoras.
Cuanto más se use, más ancho de banda voy a tener!!
Varias aplicaciones utilizan el sistema P2P para descargar archivos multimedia como:
- BitTorrent
- µTorrent
- AresGalaxy
- qBitorrent
- BitComet
etc.... entre otros.
El servidor P2P se preocupa de enviar paquetes “Keep Alive” con frecuencia para que nuestro equipo mantenga la conexión UDP abierta.
3. Tipos de P2P
Los sistemas P2P se clasifican en:
P2P Estructurados o Centralizados
- Los nodos se organizan siguiendo una estructura de datos distribuida.
- Todas las comunicaciones se realizan a través de un servidor central.
- Existe una base centralizada que mantiene información de los nodos.
- Es lento por el "cuello botella" en el servidor.
Viéndose así acorralados, desde el portal empezaron a promocionar su dominio .onion. (TOR) para acceder, basta con descargar Tor Browser para Windows, macOS o Linux. Este navegador utiliza Firefox como base para darnos acceso a la Deep Web y a la Dark Web. La dirección en la Dark Web de The Pirate Bay era, hasta ahora, uj3wazyk5u4hnvtk.onion.
Sin embargo, desde el portal son conscientes de lo difícil que es recordar algo así salvo que lo guardemos en marcadores o lo tengamos copiado en algún lugar. Por esa razón, han decido abrir un nuevo dominio en la Dark Web y esta vez es mucho más sencillo. Para acceder a The Pirate Bay bastará con escribir
P2P No estructurados o No Centralizados.
La segunda generación P2P no tiene un servidor centralizado, lo que le da robustez, ya que no hay una computadora, si no que es un sistema distribuido. Por otro lado NO hay solo un responsable, si no miles, lo cual diluyen las responsabilidades, en miles de usuarios/países.
- Los nodos seleccionan aleatoriamente a sus vecinos.
- Los vecinos poseen vistas parciales de la red que permiten localizar recursos.
- Es importante mantener las vistas actualizada.
- Robusto.
- Rápido, ya que no tiene cuello de botella.
P2P Híbridos.
- Algunos nodos poseen funciones especiales (cliente servidor y P2P).
- Posee un servidor central del cual se descarga la información de pares (NO del archivo a descartar!!).
- La información reside en los nodos (NO en el Servidor ).
- Comienza como una P2P Centralizado y luego sigue como un P2P Descentralizado.
3.1. Nota
La Deep Web es una red con muchos sitios y representa a los sitios que NO están indexados.
Como no hay información cierta, una parte de esa Deep Web es la Dark Web, se habla que cerca del 95% de sitios Web están en la Deep Web, o sea que nosotros navegamos solamente por el 5% de la Web!!
Ejemplo de Sitios NO indexados Deep Web
- Bancos en línea: Tus cuentas bancarias personales.
- Intranets corporativas o gubernamentales: Sistemas internos de empresas u organizaciones.
- Bases de datos académicas: Artículos científicos en plataformas de acceso restringido.
Ejemplo de Sitios en Dark Web, solos accesibles desde TOR.
Mercados anónimos ilegales como Silk Road (ya no existe) o AlphaBay (cerrado por el FBI en 2017). Estos eran mercados de la Dark Web donde se compraban y vendían drogas, armas y otros bienes o servicios ilegales.
4. Aplicaciones
Swarn. (Enjambre).
Incluye todas las estructuras y usuarios de la red Torrent, con diseño y funcionamiento similar a un enjambre de abejas y de ahí su denominación
BitTorrent
Veamos como funciona BitTorrent de manera superficial.
Tracker. (Rastreador).
Servidor especial que identifica el enjambre y ayuda al cliente a compartir las partes de un fichero con otros ordenadores y usuarios. Un tracker o rastreador de BitTorrent es un servidor especial que contiene la información necesaria para que los Peers se conecten con otros Peers asistiendo la comunicación entre ellos usando el protocolo BitTorrent.
Notar que el SERVIDOR NO tiene el archivo que se quiere obtener, ni sabe sobre el contenido del mismo, solamente tiene la DIRECCIÓN de los equipos (peers) que sí tienen el archivo o algunas partes del archivo.
Los peers (pares) son los nodos o clientes o equipos que forman parte de la red P2P y que contiene el archivo o algunas partes del archivo.
Leecher (sanguijuela)
Un Leecher, es un usuario que está descargando un archivo desde la red P2P.
Independientemente de que estemos subiendo o descargando un archivo, tendremos esta categoría de Leech.
La función del Leecher es la de descargar las partes de los archivos que aún no están presentes en su ordenador. En algunos casos de redes P2P el término Leecher puede tener una connotación negativa y se refiere a usuarios que descargan pero NO comparten, recordemos que si todos colaboran el sistema se vuelve mas efectivo.
En algunos lugares este comportamiento es castigado y se elimina al usuario de la red P2P.
Seeders (sembradores)
En cuanto a los Seeders, (Seeds o semillas) podemos decir que son todos aquellos usuarios que están compartiendo un archivo completo dentro la red Torrent tras haber finalizado su descarga.
Estos usuarios son los deseados de una red P2P.
Cuando se tiene el 100% nos convertimos en sembradores y empezamos a compartirlo con otros usuarios para que puedan seguir descargándolo.
Una particularidad que los diferencia de los Leechers, es que comparten el archivo con sus pares pero no descargan ninguna parte del archivo de otros.
Archivo Torrent.
Un archivo Torrent es un contenedor de metadatos acerca de carpetas y ficheros que se van a distribuir y que serán utilizados por un cliente BitTorrent.
Es decir, un archivo Torrent contiene la información acerca de la localización de un archivo específico, sin tener información del archivo como tal.
Metadatos: se refiere a aquellos datos que hablan de los datos, es decir, describen el contenido de los archivos o la información de los mismos (ver nota al final).
NOTA: El archivo torrent NO tiene información del archivo a descargar, si no información sobre donde descargar!!!.
Piezas y Hashes
El protocolo BitTorrent divide los archivos que se están compartiendo en piezas pequeñas para facilitar la descarga.
Contenido del Torrent.
El archivo .torrent contiene:
- Tamaño de las piezas: La longitud de cada pieza en la que se divide el archivo.
- Hashes de las piezas: Cada pieza tiene un hash (generalmente SHA-1) que se utiliza para verificar que se haya descargado correctamente y no esté corrompida.
Esto indica que si queremos compartir un archivo de gran tamaño sería un camino a considerar, sin esperar a que se compartan entre muchos, si no mas bien pensando en la distribución de pequeños fragmentos.
Cada una de estas partes es localizada en un host o equipo distinto.
Información Adicional.
Algunos archivos .torrent pueden contener datos adicionales, como:
- Comentarios: Texto añadido por el creador del torrent que puede incluir información sobre el contenido.
- URL de web seeds: Algunas veces, se incluyen URLs de servidores HTTP o FTP que alojan partes del archivo como respaldo.
- Metadatos de la creación: Información sobre la fecha de creación del archivo .torrent y el cliente utilizado para crearlo.
El archivo Torrent consta de la información de localización de cada una de estas partes. Mediante esta información, el cliente puede descargar cada una de estas partes por separado y después unirlas para conformar el fichero original.
Es imprescindible que la descarga finalice para que las partes de ficheros puedan ser ensambladas.
Este método acelera la descarga de ficheros grandes, por esta razón es que es un mecanismo bastante usado.
El uso de ficheros Torrents para descargar contenido de internet es una vía más. Desde algún servidor descargamos el Archivo .torrent, que contiene la información de localización de las partes del archivo que queremos descargar.
Este archivo .torrent es abierto por una aplicación P2P que permite contactar a los Seeders, Seeds o semillas que contienen el archivo y comienza a descargar pequeños pedazos del archivo.
Si un equipo es Seeder o semilla y muchos Leechers están descargando el archivo, el ancho de banda subida (salida del equipo) podría ser elevado para ese Seeder (usuario).
En realidad hay varios clientes que caen bajo esta sombrilla, como son:
- ABC
- BitComet
- BitSpirit
- BitTornado
- BitTorrent.Net
- G3 Torrent
- mlMac
- MLdonkey
- MXIE
- QTorrent
- Shareaza
- µTorrent
- Vuz
Resumiendo:
Magnet Link.
Compartir archivos torrent es bastante sencillo.
Los Magnet Links son: son sólo enlaces !! no archivos.
Un Magnet Link contienen la misma información que los archivos .Torrent, pero en formato de enlace. Contiene un identificador único, varios parámetros según la naturaleza exacta del torrente y lo que es más importante, un HASH criptográfico de los archivos del torrent.
Esto es útil para los torrents porque puede aplicar HASH a dos torrents cualquiera y, si apuntan exactamente a los mismos archivos, tendrán HASHES idénticos.
Entonces, para que su cliente de torrent sepa quién más es parte de un torrent determinado, simplemente tiene que comparar el HASH en el enlace magnet con los hash de los torrents que se comparten. Filtrar solo aquellos con HASHES coincidentes reconstruye rápidamente el enjambre de pares en la red.
En una red BitTorrent, cada enlace magnético hace referencia a un torrent específico. Por tanto, al tener este HASH, es como si tuviéramos el archivo torrent en sí.
En los sitios creados para compartir torrent, los enlaces magnéticos y los ficheros .torrent son enumerados e indexados. Un archivo torrent puede ser compartido a través de correos electrónicos o sms.
Recordemos que el fichero .torrent o el enlace hash solo contienen las instrucciones necesarias para que el cliente BitTorrent sepa de donde obtener los datos.
Notar que NO sabemos mas allá del nombre sobre un archivo que descargamos. Si alguien pusiera un virus en ese archivo. El archivo original y el fraudulento NO tendrían el mismo hash!, pero NO podemos saber cual es el "bueno" o el "malo".
Otras aplicaciones.
eMule (utiliza la red eDonkey)
LimeWire (red Gnutella)
Kazaa (red FastTrack)
Morpheus (red FastTrack)
iMesh (red Gnutella)
BearShare (red Gnutella)
WinMx (redes OpenNap y WPNP)
Metadato Información Complementaria:
Un metadato es la mínima información indispensable para identificar un recurso, como puede ser un archivo en tu ordenador, una información extra sobre un tipo de dato
Otra forma de explicar qué son estos metadatos, también llamados metadata, es que son los datos que se usan para describir el contenido o información de otros datos.
Los metadatos son muy importantes en el entorno digital (aunque no solo los encontramos en él), pues ayudan a mejorar la estructuración de la información, puesto que describen y catalogan esta, además de mejorar su recuperación, ya que nos sirven para identificar la relevancia de aquello que estamos buscando.
Toda información, sea cual sea su soporte, contiene metadatos, por ejemplo, para un libro serían el nombre del autor, la fecha de publicación, la editorial o la cantidad de páginas, Fotos, archivos de Word, PDF, Música, etc.
Entre los diferentes tipos de información que ofrecen los metadatos podemos encontrar:
- Información del contenido.
- Información sobre aspectos formales (tamaño, fecha, tipo, idioma, etc.).
- Información de derechos de autor o copyright.
- Información de la autenticidad del documento o recurso.
- Información sobre el contexto (calidad, condiciones de acceso, uso, etc.).
Funciones de un Metadato:
- Búsqueda: Los metadatos deben proporcionar la información suficiente para determinar si existen datos de interés dentro del recurso o colección de recursos o, simplemente, para saber que existen esos datos.
- Recuperación: La información que proporcionen los metadatos debe servir a los usuarios para adquirir el recurso que están buscando y que les resulte de interés.
- Transferencia: Los metadatos deben facilitar la información necesarias para que los usuarios puedan usar los recursos recuperados en sus dispositivos (incluye información sobre el tamaño del recurso, su estructura lógica y física y los propios metadatos).
- Evaluación: Los metadatos deben evaluar la información para determinar si el recurso será útil para el usuario.
- Archivo y conservación: Los metadatos sirven también para garantizar que los recursos de información se documenten, se definan sus responsables y sigan siendo accesibles en el futuro.
- Interporeabilidad: Los metadatos deben facilitar la interoperalidad, para lo que se han creado y definido estándares y protocolos que permiten el intercambio de esta información. Ejemplos de estos protocolos y estándares serían el protocolo Z39.50 o la norma ISO 15836-2003.
Tipos de Metadato:
- Descriptivos: Son los metadatos que describen e identifican los recursos, permitiendo a los usuarios su búsqueda y recuperación.
- Estructurales: Estos metadatos proporcionan información sobre la estructura interna de los recursos y la relación entre ellos. Su objetivo es facilitar la navegación y la presentación de estos recursos.
- Administrativos: Los metadatos destinados a facilitar la gestión del conjunto de recursos, incluyendo los derechos y el control de acceso y uso. Dentro de este tipo de metadatos tenemos metadatos:
- Técnicos: Sirven para decodificar y representar archivos.
- De preservación: Para la gestión a largo plazo de archivos.
- De derechos: Los derechos de propiedad intelectual adjuntos al contenido.
5. Cálculo de Torrent
El Torrent usa un mecanismo de verificación de suma para asegurarse que NADIE cambie algo en los archivos que tiene almacenado en sus equipos, recordemos que estos "trozos" de archivos son enviado al destinatario. Se podría plantear la pregunta: ¿Puede alguien modificar de manera intencional un archivo y poner algo como ser por ejemplo un malware o virus?
En caso de modificarse la modificación sería detectada.
Vamos intentar mostrar con un EJEMPLO.
Para ello creamos dos archivos, uno original y otro con una pequeña modificación.
Empezamos con crear un archivo con el resultado del factorial de 10000.
Ese archivo tiene una cantidad de 36709 caracteres numéricos.
La primer línea es:
Vamos a crear una copia fraudulenta del archivo, con el mismo nombre, pero con un pequeño cambio, el primer 2 lo reemplazamos por una letra A.
Ahora vamos a crear primero un Hash y luego un torrent para cada uno de estos archivos, (con el Transmission creamos los archivos) : factorial.txt.torrent.
Vamos a demostrar que el pequeño cambio de una letra A en el archivo genera dos torrents distintos.. esto demostraría que cualquier modificación en un archivo Torrent se puede detectar.
Creamos un Hash y comparamos...
ya podemos ver que los códigos de Hash son distintos... veamos con el Torrent,
Si creamos un Torrent de cada uno de los archivos, el fraudulento y el original tenemos:
Podemos ver que NO son iguales los Torrents!!
Información Complementaria:
MD5 (Message Digest Algorithm 5, Algoritmo de Ordenación de Mensajes 5) es un algoritmo seguro desarrollado por RSA Data Security, Inc. MD5 es una función hash de 128 bits, que toma como entrada un mensaje de tamaño arbitrario y produce como salida un resumen del mensaje de 128 bits.