Articulo de referencia

Cifrado del protocolo BitTorrent

El cifrado de protocolo ( PE ), el cifrado de flujo de mensajes ( MSE ) o el cifrado de encabezado de protocolo ( PHE ) [ a ] son ​​características relacionadas de algunos clien...

El cifrado de protocolo ( PE ), el cifrado de flujo de mensajes ( MSE ) o el cifrado de encabezado de protocolo ( PHE ) [ a ] son ​​características relacionadas de algunos clientes de intercambio de archivos peer-to-peer , incluidos los clientes de BitTorrent . Intentan mejorar la privacidad y la confidencialidad. Además, intentan dificultar la identificación del tráfico por parte de terceros, incluidos los proveedores de servicios de Internet (ISP). Sin embargo, el cifrado no protege de las notificaciones de la DMCA por compartir contenido ilegal, ya que se sigue subiendo material y las empresas de monitoreo simplemente pueden conectarse al enjambre .

MSE/PE está implementado en BitComet , BitTornado, Deluge , Flashget , KTorrent , libtorrent (utilizado por varios clientes BitTorrent, incluido qBittorrent ), Mainline , μTorrent , qBittorrent , rTorrent , Transmission , Tixati y Vuze . PHE se implementó en versiones antiguas de BitComet. Se admite una ofuscación de protocolo similar en versiones actualizadas de algunos otros sistemas (que no son BitTorrent), incluido eMule . [ 1 ]

Objetivo

En enero de 2005, el tráfico de BitTorrent representaba más de un tercio del tráfico total de internet residencial, [ 2 ] aunque esta cifra se redujo a menos del 20% en 2009. [ 3 ] Algunos ISP gestionan este tráfico aumentando su capacidad, mientras que otros utilizan sistemas especializados para ralentizar el tráfico peer-to-peer y así reducir costes. La ofuscación y el cifrado dificultan la detección del tráfico y, por lo tanto, su limitación. Estos sistemas se diseñaron inicialmente para proporcionar anonimato o confidencialidad , pero se volvieron obligatorios en países donde los ISP obtuvieron la potestad de limitar el acceso de los usuarios de BitTorrent e incluso prohibir el acceso a aquellos que consideraban culpables de compartir archivos ilegalmente.

Historia

Enfoque temprano

El cifrado de encabezado de protocolo (PHE) fue concebido por RnySmile y se implementó por primera vez en BitComet versión 0.60 el 8 de septiembre de 2005. Algunos programas como IPP2P afirman que el tráfico de BitComet es detectable incluso con PHE. [ 4 ] PHE es detectable porque solo una parte del flujo está cifrada. Dado que no existen especificaciones abiertas para esta implementación de protocolo, la única posibilidad de admitirlo en otros clientes habría sido mediante ingeniería inversa .

Desarrollo de MSE/PE

A finales de enero de 2006, los desarrolladores de Vuze (entonces conocido como Azureus) decidieron diseñar e implementar simultáneamente un nuevo método de ofuscación de protocolo abierto, llamado cifrado de flujo de mensajes (MSE). Se incluyó en la instantánea CVS 2307-B29 de Azureus el 19 de enero de 2006. [ 5 ]

Este primer borrador fue duramente criticado por carecer de varias características clave. Tras negociaciones entre distintos desarrolladores de BitTorrent, se redactó una nueva propuesta que se implementó en las versiones beta de Azureus y μTorrent en cuestión de días. En μTorrent, el nuevo protocolo se denominó cifrado de protocolo (PE).

MSE/PE en versiones de clientes BitTorrent

  • aria2 admite MSE/PE desde la compilación v1.34, [ 6 ] pero no se aplica por defecto.
  • BitComet versión 0.63 se lanzó el 7 de marzo de 2006. Eliminó el antiguo cifrado de encabezado de protocolo e implementó el nuevo MSE/PE para ser compatible con Azureus y μTorrent. [ 7 ]
  • BitTornado admite MSE/PE desde la compilación T-0.3.18. Al 5 de enero de 2007, esta compilación todavía aparece marcada como "experimental" en la página de descargas. [ 8 ]
  • BitTorrent (Mainline) admite MSE/PE desde la versión 4.9.2-beta del 2 de mayo de 2006. [ 9 ]
  • Deluge admite MSE/PE desde Deluge-0.5.1. [ 10 ]
  • KTorrent implementó MSE/PE en la versión SVN 535386 [ 11 ] el 29 de abril de 2006. [ 12 ]
  • libtorrent [ 13 ] implementó el cifrado de protocolo en v0.13 [ 14 ] publicado el 10 de diciembre de 2011. [ 15 ]
  • rTorrent admite MSE/PE desde la versión rTorrent-0.7.0. [ 16 ]
  • Transmission admite MSE/PE a partir de Transmission-0.90. [ 17 ]
  • Vuze (anteriormente Azureus) admite la especificación final desde el 25 de enero de 2006 (instantánea CVS 2307-B33). [ 18 ] La versión 2.4.0.0 de Azureus se lanzó el 10 de febrero de 2006 y fue la primera versión estable de un cliente que admitía MSE/PE. Sin embargo, fallos en la implementación de Azureus dieron como resultado fragmentos cifrados incorrectamente que no superaban la comprobación de hash. Los fallos se corrigieron a partir de la versión 2.4.0.2. [ 19 ]
  • μTorrent estrenó MSE/PE 4 días después de Azureus con la beta 1.4.1 build 407. [ 20 ] La versión 1.5 de μTorrent (build 436) se lanzó el 7 de marzo de 2006; fue la primera versión estable de μTorrent con PE. [ 21 ]

Operación

El método BitComet PHE utilizado en las versiones 0.60 a 0.62 no está publicado ni es compatible con MSE/PE.

MSE/PE utiliza el intercambio de claves combinado con el infohash del torrent para establecer una clave de cifrado RC4 . El intercambio de claves ayuda a minimizar el riesgo de escuchas pasivas, y el infohash ayuda a evitar ataques de intermediario (man-in-the-middle) . Se elige RC4 por su velocidad. El primer kibibyte (1024 bytes) de la salida se descarta para prevenir el ataque Fluhrer, Mantin y Shamir .

La especificación permite a los usuarios elegir entre cifrar solo las cabeceras o la conexión completa. Cifrar la conexión completa proporciona mayor ofuscación, pero consume más tiempo de CPU.

Para garantizar la compatibilidad con otros clientes que no admiten esta especificación, los usuarios también pueden elegir si se permiten o no las conexiones entrantes o salientes sin cifrar.

Los clientes compatibles comunican a través de PEX y DHT que tienen MSE/PE habilitado .

Seguridad

La fuerza estimada del cifrado corresponde a unos 60-80 bits para cifrados simétricos comunes. [ 22 ] Criptográficamente, esta longitud de clave efectiva es bastante baja, pero apropiada dado que el protocolo no fue diseñado como un protocolo de transporte seguro, sino como un método de ofuscación rápido y eficiente. Se propuso AES como método de cifrado, pero no se adoptó porque consumía demasiado tiempo de CPU. Las claves Diffie-Hellman necesarias para lograr una seguridad igual a la de AES habrían sido mucho mayores o habrían requerido criptografía de curva elíptica , lo que habría encarecido el protocolo de enlace en términos de tiempo de CPU utilizado.

Eficacia

El análisis del cifrado del protocolo BitTorrent (también conocido como MSE) ha demostrado que las mediciones estadísticas de los tamaños y direcciones de los paquetes de los primeros 100 paquetes en una sesión TCP pueden utilizarse para identificar el protocolo ofuscado con una precisión superior al 96 %. [ 23 ]

La aplicación Sandvine utiliza un enfoque diferente para interrumpir el tráfico de BitTorrent al imposibilitar la siembra. Sandvine intercepta la comunicación peer-to-tracker para identificar pares basándose en la dirección IP y los números de puerto en la lista de pares devuelta por el tracker. Cuando Sandvine posteriormente ve conexiones a pares en las listas de pares interceptadas, puede (según la política) romper estas conexiones enviando reinicios TCP falsificados. [ 24 ] Existen varias soluciones para protegerse contra el ataque de Sandvine, incluyendo el cifrado tanto de la comunicación peer-to-tracker como peer-to-peer, el uso de Teredo de Microsoft para que las conexiones TCP se tunelicen dentro de paquetes UDP, el filtrado de reinicios TCP antes de que lleguen a la capa TCP en el host final, o el cambio completo de un transporte basado en TCP a un transporte basado en UDP. Cada solución tiene sus ventajas y desventajas. Filtrar los reinicios TCP generalmente requiere acceso al kernel y la participación del par remoto, ya que Sandvine envía el paquete de reinicio a los pares locales y remotos.

Crítica

Bram Cohen , el inventor de BitTorrent , se opuso a añadir cifrado al protocolo BitTorrent. Cohen afirmó que le preocupaba que el cifrado pudiera crear incompatibilidad entre clientes. También recalcó que la mayoría de los ISP no bloquean el protocolo torrent. En 2006, Cohen escribió: «Sospecho que algún desarrollador ha sido limitado por su ISP y está más interesado en intentar sortear las limitaciones de su ISP que en el rendimiento de internet en general». [ 25 ] Muchos usuarios de la comunidad BitTorrent respondieron enérgicamente a las acusaciones de Cohen. [ 26 ] Posteriormente, Cohen añadió conexiones cifradas a su cliente Mainline [ 27 ] con la capacidad de recibirlas, pero no de originarlas. Cabe destacar que, cuando μTorrent fue adquirido por BitTorrent, Inc. y se convirtió en la siguiente versión principal, se mantuvo la capacidad de originar conexiones cifradas, pero se desactivó por defecto. En una entrevista en 2007, Cohen afirmó: "El llamado 'encriptación' del tráfico de BitTorrent no es realmente encriptación, sino ofuscación. No proporciona ningún tipo de anonimato y solo evade temporalmente la gestión del tráfico". [ 28 ]

Notas

  1. Generalmente se le denomina cifrado de encabezado de protocolo, un término más apropiado .

Referencias

  1. "Ofuscación del protocolo eMule (cifrado)" . emule-project.net. 16 de septiembre de 2006. Archivado del original el 25 de septiembre de 2009. Consultado el 11 de marzo de 2010 .
  2. "El efecto BitTorrent" . Wired . 30 de mayo de 2007. Archivado del original el 26 de marzo de 2006. Consultado el 5 de marzo de 2017 .
  3. "Fenómenos globales de banda ancha de 2009" (PDF) . Sandvine.com. 16 de noviembre de 2009. Archivado del original (PDF) el 22 de noviembre de 2009.
  4. "Noticias" . IPP2P.org. 4 de enero de 2006. Archivado del original el 20 de mayo de 2013. Consultado el 29 de enero de 2006 .
  5. " [ Azureus-commitlog ] ¡Se ha publicado la instantánea CVS Azureus2307-B29.jar !" . Sourceforge.net. 19 de enero de 2006. Archivado del original el 24 de septiembre de 2019. Consultado el 8 de abril de 2013 . 
  6. "aria2c(1) — documentación de aria2 1.34.0" . aria2.github.io . Consultado el 29 de mayo de 2019 .
  7. "Notas de la versión del cliente BitComet" . Bitcomet.com. 7 de marzo de 2006. Archivado del original el 17 de diciembre de 2010. Consultado el 7 de marzo de 2006 .
  8. "BitTornado T-0.3.18" . Foro Degreez.net. 5 de enero de 2007. Archivado del original el 25 de marzo de 2017. Consultado el 6 de enero de 2007 .
  9. "Notas de la versión" . BitTorrent.com. 2 de mayo de 2006. Archivado del original el 13 de junio de 2006.
  10. "Registro de cambios: Deluge 0.5.1 (11 de junio de 2007)" . Deluge-torrent.org. 11 de junio de 2007. Archivado del original el 1 de abril de 2008.
  11. Servidor SVN . KDE.org. 29/04/2006. Se requiere cliente Subversion .
  12. "¡Se ha añadido cifrado !" . Foro KTorrent.pwsp.net. 29/04/2006. Archivado del original el 05/06/2007. 
  13. Norberg, Arvid. "www.libtorrent.org/reference-Settings.html" . www.libtorrent.org . Archivado del original el 17 de febrero de 2017. Consultado el 16 de febrero de 2017 .
  14. "libtorrent/ChangeLog en master · arvidn/libtorrent · GitHub" . github.com . Archivado del original el 10-05-2017 . Recuperado el 16-02-2017 .
  15. "Gmane -- Correo electrónico a noticias y viceversa" . permalink.gmane.org . Archivado del original el 17 de febrero de 2017. Consultado el 16 de febrero de 2017 .
  16. " [ Libtorrent-devel ] LibTorrent 0.11.0 y rTorrent 0.7.0 publicados" . Archivo de correo de Rakshasa.no. 13 de diciembre de 2006. Archivado del original el 2 de mayo de 2007. Consultado el 10 de junio de 2007 .
  17. "¡Transmission 0.90 lanzado!" . Foro Transmission.m0k.org. 24/10/2007. Archivado del original el 27/10/2007.
  18. " [ Azureus-commitlog ] ¡Se ha publicado la instantánea CVS Azureus2307-B33.jar !" . Sourceforge.net. 25-01-2006. Archivado del original el 24-09-2019 . Recuperado el 08-04-2013 . 
  19. "Azureus : Java BitTorrent Client - Changelog" . Azureus.sourceforge.net. Archivado del original el 20 de marzo de 2006. Consultado el 20 de marzo de 2006 . 
  20. "μTorrent 1.4.2 beta 435" . Anuncios de uTorrent. 29/01/2006. Archivado del original el 14/05/2006.
  21. "μTorrent 1.5 lanzado" Archivado el 29/05/2013 en Wayback Machine . Anuncios de uTorrent. 07/03/2006.
  22. "RFC 3526 capítulo 8" . IETF.org. Archivado del original el 18 de enero de 2017. Consultado el 26 de agosto de 2007 .
  23. Hjelmvik, Erik; John, Wolfgang (27 de julio de 2010). "Rompiendo y mejorando la ofuscación de protocolos" (PDF) . Informe técnico . Departamento de Ciencias de la Computación e Ingeniería, Universidad Tecnológica de Chalmers . ISSN 1652-926X . Archivado (PDF) del original el 11 de noviembre de 2020. Recuperado el 17 de agosto de 2010 . 
  24. Nicholas Weaver; R. Sommer; Vern Paxson (9 de febrero de 2009). Detección de paquetes de reinicio TCP falsificados (PDF) . Simposio NDSS 2009.
  25. Cohen, Bram (29 de enero de 2006). "Obfuscando BitTorrent" . Blog de Bram Cohen. Archivado del original el 7 de febrero de 2006.
  26. "Debate sobre el cifrado de protocolo" . Foro de uTorrent.com. 4 de febrero de 2006. Archivado del original el 22 de octubre de 2007.
  27. "Historial de versiones principales de BitTorrent" . BitTorrent.com. 15 de octubre de 2006. Archivado del original el 25 de febrero de 2007.
  28. "Entrevista con Bram Cohen, el inventor de BitTorrent". Archivado el 15 de julio de 2013 en Wayback Machine . TorrentFreak. 17 de enero de 2007. Consultado el 7 de abril de 2013.
  • "Cifrado de flujo de mensajes" Archivado el 31/12/2016 en Wayback Machine . Vuze.
  • "Proveedores de servicios de Internet que dan forma a BitTorrent" Archivado el 26/11/2016 en Wayback Machine . Vuze.
  • "Cifrado de extremo a extremo y limitación de ancho de banda en BitTorrent - Parte I" con los desarrolladores de μTorrent . Slyck News.
  • "Cifrado de extremo a extremo y limitación de ancho de banda en BitTorrent - Parte II" con los desarrolladores de Azureus en Slyck News.
  • "BitTorrent y cifrado de extremo a extremo" . Slashdot.
  • "Ofuscación de pares de rastreadores" . BitTorrent.org.
  • "Identificación del protocolo de cifrado de flujo de mensajes (MSE)" para la identificación estadística de protocolos . SourceForge.
  • "Bloquear el tráfico P2P en un router Cisco IOS usando NBAR" . Cisco.
  • "Tutorial de VPN/Proxy Aria2c" . GoTux.