Шифрование протокола ( 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] реализовал шифрование протокола в v0.13 [13], выпущенном 10 декабря 2011 года. [14]
- rTorrent поддерживает MSE / PE начиная с rTorrent-0.7.0. [15]
- Передача поддерживает MSE / PE с Transmission-0.90. [16]
- Vuze (ранее Azureus) поддерживает окончательную спецификацию с 25 января 2006 г. (снимок CVS 2307-B33). [17] Версия 2.4.0.0 Azureus была выпущена 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. Коэн заявил, что его беспокоит, что шифрование может создать несовместимость между клиентами. Он также подчеркнул, что большинство интернет-провайдеров не блокируют торрент-протокол. В 2006 году Коэн написал: «Я скорее подозреваю, что некоторый разработчик ограничил скорость своего интернет-провайдера и больше заинтересован в попытках обойти ограничения своего интернет-провайдера, чем в производительности Интернета в целом». [23] Многие пользователи сообщества BitTorrent решительно ответили на обвинения Коэна. [24] Позже Коэн добавил зашифрованные соединения к своему клиенту Mainline [25] с возможностью получать, но не создавать их. [ необходима цитата ] Примечательно, что когда μTorrent был приобретен BitTorrent, Inc. и затем стал следующим основным выпуском, возможность создавать зашифрованные соединения была сохранена, но по умолчанию она была отключена. В интервью 2007 года Коэн заявил: «Так называемое« шифрование »трафика BitTorrent на самом деле не является шифрованием, это обфускация. Оно не обеспечивает никакой анонимности и лишь временно позволяет избежать формирования трафика». [26]
Заметки
- ^ Обычно называется более правильным шифрованием заголовка протокола .
Рекомендации
- ^ "Обфускация (шифрование) протокола eMule" . emule-project.net. 2006-09-16 . Проверено 11 марта 2010 .
- ^ «Эффект Bittorrent» . Проводной. 30 мая 2007 г.
- ^ «Новости» . IPP2P.org. 2006-01-04.
- ^ «[Azureus-commitlog] Выпущен моментальный снимок CVS Azureus2307-B29.jar!» . Sourceforge.net. 2006-01-19.
- ^ «aria2c (1) - документация по aria2 1.34.0» . aria2.github.io . Проверено 29 мая 2019 .
- ^ «Примечания к выпуску клиента BitComet» . Bitcomet.com. 2006-03-07.
- ^ «БитТорнадо Т-0.3.18» . Форум Degreez.net. 2007-01-05.
- ^ «Примечания к версии» . BitTorrent.com. 2006-05-02. Архивировано из оригинала на 2006-06-13.
- ^ «Список изменений: Потоп 0.5.1 (11 июня 2007 г.)» . Deluge-torrent.org. 2007-06-11. Архивировано из оригинала на 2008-04-01.
- ^ Сервер SVN . KDE.org. 2006-04-29. Требуется клиент Subversion .
- ^ "Шифрование добавлено!" . Форум KTorrent.pwsp.net. 2006-04-29. Архивировано из оригинала на 2007-06-05.
- ^ [email protected], Арвид Норберг. «www.libtorrent.org/reference-Settings.html» . www.libtorrent.org . Проверено 16 февраля 2017 .
- ^ "libtorrent / ChangeLog на главном · arvidn / libtorrent · GitHub" . github.com . Проверено 16 февраля 2017 .
- ^ «Гмане - почта к новостям и обратно» . permalink.gmane.org . Архивировано из оригинала на 2017-02-17 . Проверено 16 февраля 2017 .
- ^ «[Libtorrent-devel] Выпущены LibTorrent 0.11.0 и rTorrent 0.7.0» . Почтовый архив Rakshasa.no. 2006-12-13. Архивировано из оригинала на 2007-05-02 . Проверено 10 июня 2007 .
- ^ "Трансмиссия 0.90 вышла!" . Форум Transmission.m0k.org. 2007-10-24. Архивировано из оригинала на 2007-10-27.
- ^ «[Azureus-commitlog] Выпущен моментальный снимок CVS Azureus2307-B33.jar!» . Sourceforge.net. 2006-01-25.
- ^ «Azureus: Java BitTorrent Client - Список изменений» . Azureus.sourceforge.net.
- ^ «μTorrent 1.4.2 beta 435» . Анонсы uTorrent. 2006-01-29. Архивировано из оригинала на 2006-05-14.
- ^ «µTorrent 1.5 выпущен». Архивировано 29 мая 2013 г. на Wayback Machine . Анонсы uTorrent. 2006-03-07.
- ^ «RFC 3526, глава 8» . IETF.org.
- ^ Ельмвик, Эрик; Джон, Вольфганг (27.07.2010). «Взлом и улучшение обфускации протокола» (PDF) . Департамент компьютерных наук и инженерии, Технологический университет Чалмерса . ISSN 1652-926X .
- ^ Коэн, Брэм (29 января 2006 г.). «Запутывание BitTorrent» . Блог Брэма Коэна. Архивировано из оригинала на 2006-02-07.
- ^ «Дебаты по поводу шифрования протокола» . Форум uTorrent.com. 2006-02-04. Архивировано из оригинала на 2007-10-22.
- ^ «История версий BitTorrent Mainline» . BitTorrent.com. 2006-10-15. Архивировано из оригинала на 2007-02-25.
- ^ «Интервью с Брэмом Коэном, изобретателем BitTorrent» . TorrentFreak. 2007-01-17. Проверено 7 апреля 2013.
Внешние ссылки
- «Шифрование потока сообщений» . Вузе.
- «Интернет-провайдеры, которые формируют BitTorrent» . Вузе.
- «Сквозное шифрование BitTorrent и регулирование полосы пропускания - Часть I» с разработчиками µTorrent . Slyck News.
- «BitTorrent End to End Encryption and Bandwidth Throttling - Part II» с разработчиками Azureus Slyck News.
- «BitTorrent и сквозное шифрование» . Slashdot.
- «Обфускация трекера Peer» . BitTorrent.org.
- «Идентификация протокола шифрования потока сообщений (MSE)» для идентификации статистического протокола . Sourceforge.
- «Блокировать P2P-трафик на маршрутизаторе Cisco IOS с помощью NBAR» . Cisco.
- "Aria2c VPN / Proxy Tutorial" . GoTux.