Шифрование протокола BitTorrent

Шифрование протокола ( PE ), шифрование потока сообщений ( MSE ) или шифрование заголовка протокола ( PHE ) [a] являются связанными функциями некоторых одноранговых клиентов обмена файлами , включая клиенты BitTorrent . Они пытаются повысить конфиденциальность и приватность. Кроме того, они пытаются усложнить идентификацию трафика третьими лицами, включая поставщиков интернет-услуг (ISP). Однако шифрование не защитит вас от уведомлений DMCA за распространение нелегального контента, поскольку вы все еще загружаете материал, а компании по мониторингу могут просто подключиться к рою .

MSE/PE реализован в BitComet , BitTornado, Deluge , Flashget , KTorrent , libtorrent (используется различными клиентами BitTorrent, включая qBittorrent ), Mainline , μTorrent , qBittorrent , rTorrent , Transmission , Tixati и Vuze . PHE был реализован в старых версиях BitComet. Подобная обфускация протокола поддерживается в современных версиях некоторых других (не BitTorrent) систем, включая eMule . [1]

Цель

По состоянию на январь 2005 года трафик BitTorrent составлял более трети от общего домашнего интернет-трафика [2] , хотя к 2009 году этот показатель упал до менее 20%. Некоторые интернет-провайдеры справляются с этим трафиком, увеличивая свою пропускную способность, в то время как другие используют специализированные системы для замедления однорангового трафика с целью сокращения расходов. Обфускация и шифрование затрудняют обнаружение трафика и, следовательно, затрудняют его ограничение. Эти системы изначально были разработаны для обеспечения анонимности или конфиденциальности , но стали обязательными в странах, где интернет-провайдерам было предоставлено право ограничивать пользователей BitTorrent и даже блокировать тех, кто, по их мнению, был виновен в незаконном обмене файлами.

История

Ранний подход

Шифрование заголовка протокола (PHE) было задумано RnySmile и впервые реализовано в BitComet версии 0.60 8 сентября 2005 года. Некоторое программное обеспечение, такое как IPP2P, утверждает, что трафик BitComet можно обнаружить даже с помощью PHE. [3] PHE можно обнаружить, потому что зашифрована только часть потока. Поскольку для этой реализации протокола нет открытых спецификаций, единственной возможностью поддержать его в других клиентах было бы обратное проектирование .

Развитие МСП/ПЭ

В конце января 2006 года разработчики Vuze (тогда известного как Azureus) решили разработать и одновременно реализовать новый метод обфускации открытого протокола, называемый шифрованием потока сообщений (MSE). Он был включен в снимок Azureus CVS 2307-B29 19 января 2006 года. [4]

Этот первый проект подвергся резкой критике, поскольку в нем отсутствовало несколько ключевых функций. После переговоров между различными разработчиками BitTorrent было написано новое предложение, которое затем было реализовано в бета-версиях Azureus и μTorrent в течение нескольких дней. В μTorrent новый протокол назывался протокольным шифрованием (PE).

MSE/PE в версиях клиента BitTorrent

  • aria2 поддерживает MSE/PE, начиная со сборки v1.34, [5], но не применяется по умолчанию.
  • Версия BitComet 0.63 была выпущена 7 марта 2006 года. В ней было удалено старое шифрование заголовков протоколов и реализован новый MSE/PE для совместимости с Azureus и μTorrent. [6]
  • BitTornado поддерживает MSE/PE начиная со сборки T-0.3.18. По состоянию на 5 января 2007 года эта сборка все еще отмечена как «экспериментальная» на странице загрузки. [7]
  • BitTorrent (Mainline) поддерживает MSE/PE с версии 4.9.2-beta от 2 мая 2006 года. [8]
  • Deluge поддерживает MSE/PE, начиная с версии Deluge-0.5.1. [9]
  • KTorrent реализовал MSE/PE в SVN версии 535386 [10] 29 апреля 2006 года. [11]
  • libtorrent [12] реализовал шифрование протокола в версии 0.13 [13], выпущенной 10 декабря 2011 года. [14]
  • rTorrent поддерживает MSE/PE начиная с rTorrent-0.7.0. [15]
  • Transmission поддерживает MSE/PE, начиная с версии Transmission-0.90. [16]
  • Vuze (ранее Azureus) поддерживает финальную спецификацию с 25 января 2006 года (снимок CVS 2307-B33). [17] Версия Azureus 2.4.0.0 была выпущена 10 февраля 2006 года и стала первой стабильной версией клиента, поддерживающей MSE/PE. Однако сбои в реализации Azureus привели к неправильно зашифрованным частям, которые не прошли проверку хэша. Сбои были исправлены в версии 2.4.0.2. [18]
  • μTorrent дебютировал с MSE/PE через 4 дня после Azureus с бета-версией 1.4.1 сборки 407. [19] μTorrent версии 1.5 (сборка 436) был выпущен 7 марта 2006 года; это была первая стабильная версия μTorrent с PE. [20]

Операция

Метод BitComet PHE, используемый в версиях 0.60–0.62, не опубликован и несовместим с MSE/PE.

MSE/PE использует обмен ключами в сочетании с инфохешем торрента для установления ключа шифрования RC4 . Обмен ключами помогает минимизировать риск пассивных слушателей, а инфохеш помогает избежать атак типа «человек посередине» . RC4 выбран из-за его скорости. Первый кибибайт (1024 байта) вывода отбрасывается для предотвращения атаки Флюрера, Мантина и Шамира .

Спецификация позволяет пользователям выбирать между шифрованием только заголовков или полного соединения. Шифрование полного соединения обеспечивает большую обфускацию, но использует больше процессорного времени.

Чтобы обеспечить совместимость с другими клиентами, которые не поддерживают эту спецификацию, пользователи также могут выбрать, будут ли разрешены незашифрованные входящие или исходящие соединения.

Поддерживаемые клиенты распространяют информацию о том, что у них включен MSE/PE, через PEX и DHT .

Безопасность

Расчетная стойкость шифрования соответствует примерно 60–80 битам для обычных симметричных шифров. [21] С точки зрения криптографии эта эффективная длина ключа довольно мала, но уместна, поскольку протокол не был разработан как безопасный транспортный протокол, а скорее как быстрый и эффективный метод обфускации. AES был предложен в качестве метода шифрования, но не принят, поскольку он потреблял слишком много процессорного времени. Требуемые ключи Диффи–Хеллмана для достижения безопасности, равной AES, были бы намного больше или потребовали бы эллиптической кривой криптографии , что сделало бы рукопожатие более дорогим с точки зрения используемого процессорного времени.

Эффективность

Анализ шифрования протокола BitTorrent (он же MSE) показал, что статистические измерения размеров пакетов и направлений первых 100 пакетов в сеансе TCP могут быть использованы для идентификации зашифрованного протокола с точностью более 96%. [22]

Критика

Брэм Коэн , изобретатель BitTorrent , выступил против добавления шифрования в протокол BitTorrent. Коэн заявил, что он обеспокоен тем, что шифрование может создать несовместимость между клиентами. Он также подчеркнул, что большинство интернет-провайдеров не блокируют протокол torrent. В 2006 году Коэн написал: «Я скорее подозреваю, что какой-то разработчик получил ограничение скорости от своего интернет-провайдера и больше заинтересован в попытках обойти ограничения своего интернет-провайдера, чем в производительности Интернета в целом». [23] Многие пользователи сообщества BitTorrent решительно отреагировали на обвинения Коэна. [24] Позже Коэн добавил зашифрованные соединения в свой клиент Mainline [25] с возможностью получать, но не создавать их. [ необходима цитата ] Примечательно, что когда μTorrent был куплен BitTorrent, Inc. и затем стал следующим выпуском mainline, возможность создавать зашифрованные соединения была сохранена, но по умолчанию она была отключена. В интервью в 2007 году Коэн заявил: «Так называемое «шифрование» трафика BitTorrent на самом деле не является шифрованием, это запутывание. Оно не обеспечивает никакой анонимности и лишь временно обходит формирование трафика». [26]

Примечания

  1. ^ Обычно это называется более правильным шифрованием заголовка протокола .

Ссылки

  1. ^ "Обфускация протокола eMule (шифрование)". emule-project.net. 2006-09-16. Архивировано из оригинала 2009-09-25 . Получено 2010-03-11 .
  2. ^ "The Bittorrent Effect". Wired . 2007-05-30. Архивировано из оригинала 2006-03-26 . Получено 2017-03-05 .
  3. ^ "Новости". IPP2P.org. 2006-01-04. Архивировано из оригинала 2013-05-20 . Получено 2006-01-29 .
  4. ^ "[Azureus-commitlog] CVS Snapshot Azureus2307-B29.jar выпущен!". Sourceforge.net. 2006-01-19. Архивировано из оригинала 2019-09-24 . Получено 2013-04-08 .
  5. ^ "aria2c(1) — документация aria2 1.34.0". aria2.github.io . Получено 29-05-2019 .
  6. ^ "BitComet Client Release Notes". Bitcomet.com. 2006-03-07. Архивировано из оригинала 2010-12-17 . Получено 2006-03-07 .
  7. ^ "BitTornado T-0.3.18". Форум Degreez.net. 2007-01-05. Архивировано из оригинала 2017-03-25 . Получено 2007-01-06 .
  8. ^ "Version Notes". BitTorrent.com. 2006-05-02. Архивировано из оригинала 2006-06-13.
  9. ^ "Changelog: Deluge 0.5.1 (11 июня 2007 г.)". Deluge-torrent.org. 2007-06-11. Архивировано из оригинала 2008-04-01.
  10. ^ Сервер SVN . KDE.org. 2006-04-29. Требуется клиент Subversion .
  11. ^ "Добавлено шифрование!". Форум KTorrent.pwsp.net. 2006-04-29. Архивировано из оригинала 2007-06-05.
  12. ^ Норберг, Арвид. "www.libtorrent.org/reference-Settings.html". www.libtorrent.org . Архивировано из оригинала 2017-02-17 . Получено 2017-02-16 .
  13. ^ "libtorrent/ChangeLog at master · arvidn/libtorrent · GitHub". github.com . Архивировано из оригинала 2017-05-10 . Получено 2017-02-16 .
  14. ^ "Gmane -- Mail To News And Back Again". permalink.gmane.org . Архивировано из оригинала 2017-02-17 . Получено 2017-02-16 .
  15. ^ "[Libtorrent-devel] LibTorrent 0.11.0 и rTorrent 0.7.0 выпущены". Архив почты Rakshasa.no. 2006-12-13. Архивировано из оригинала 2007-05-02 . Получено 2007-06-10 .
  16. ^ "Transmission 0.90 Released!". Форум Transmission.m0k.org. 2007-10-24. Архивировано из оригинала 2007-10-27.
  17. ^ "[Azureus-commitlog] CVS Snapshot Azureus2307-B33.jar выпущен!". Sourceforge.net. 2006-01-25. Архивировано из оригинала 2019-09-24 . Получено 2013-04-08 .
  18. ^ "Azureus: Java BitTorrent Client - Changelog". Azureus.sourceforge.net. Архивировано из оригинала 2006-03-20 . Получено 2006-03-20 .
  19. ^ "μTorrent 1.4.2 beta 435". Анонсы uTorrent. 2006-01-29. Архивировано из оригинала 2006-05-14.
  20. ^ "μTorrent 1.5 выпущен" Архивировано 29.05.2013 на Wayback Machine . Анонсы uTorrent. 07.03.2006.
  21. ^ "RFC 3526 глава 8". IETF.org. Архивировано из оригинала 2017-01-18 . Получено 2007-08-26 .
  22. ^ Hjelmvik, Erik; John, Wolfgang (2010-07-27). "Breaking and Improving Protocol Obfuscation" (PDF) . Технический отчет . Кафедра компьютерных наук и инженерии, Технологический университет Чалмерса . ISSN  1652-926X. Архивировано (PDF) из оригинала 2020-11-11 . Получено 2010-08-17 .
  23. ^ Коэн, Брэм (29.01.2006). "Запутывание BitTorrent". Блог Брэма Коэна. Архивировано из оригинала 07.02.2006.
  24. ^ "Дебаты о шифровании протокола". Форум uTorrent.com. 2006-02-04. Архивировано из оригинала 2007-10-22.
  25. ^ "История версий BitTorrent Mainline". BitTorrent.com. 2006-10-15. Архивировано из оригинала 2007-02-25.
  26. ^ «Интервью с Брэмом Коэном, изобретателем BitTorrent». Архивировано 15 июля 2013 г. на Wayback Machine . TorrentFreak. 17 января 2007 г. Получено 7 апреля 2013 г.
  • «Шифрование потока сообщений». Vuze.
  • «Интернет-провайдеры, формирующие BitTorrent». Vuze.
  • «Сквозное шифрование BitTorrent и регулирование пропускной способности. Часть I» с разработчиками μTorrent. Новости Slyck.
  • «Сквозное шифрование BitTorrent и регулирование пропускной способности. Часть II» с разработчиками Azureus Slyck News.
  • «BitTorrent и сквозное шифрование». Slashdot.
  • «Обфускация пиров-трекеров». BitTorrent.org.
  • «Идентификация протокола шифрования потока сообщений (MSE)» для статистической идентификации протокола. SourceForge.
  • «Блокировка P2P-трафика на маршрутизаторе Cisco IOS с помощью NBAR». Cisco.
  • «Учебник по VPN/прокси Aria2c». GoTux.
Получено с "https://en.wikipedia.org/w/index.php?title=BitTorrent_protocol_encryption&oldid=1226100843"