Шифрование протокола ( 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).
Метод 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]