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