SS — это оригинал, SSR — сторонняя версия, созданная на основе оригинала, совместимая с оригинальным протоколом и обладающая большим количеством функций маскировки (протокол и путаницу), чем оригинал.
В Интернете также ведётся много обсуждений о SSR — как за, так и против, но для обычных пользователей. Будь то SS или SSR, сейчас он помогает вам нормально перелезть через стену.
Что касается версии клиента, которую вы скачиваете, всё зависит от того, установлен ли SS или SSR на сервере купленного вами аккаунта SS. Самую оригинальную функцию SS можно использовать независимо от того, какой клиент скачан, но если вы хотите использовать функции SSR (протокол и путаницу), нужно скачать SSR-клиент.
Но не волнуйтесь, все узлы, которые мы предоставляем, поддерживают совместимость SS и SSR. Рекомендуется использовать SSR. Быстрее, чтобы не быть гармонизированным! Некоторое время назад вокруг Shadowsocks было много разговоров, и недавно стало ясно, что большое количество новичков привлекает так называемый «Shadowsocks Enhanced» (ShadowsocksR). Как любитель-разработчик реализации Shadowsocks на C++/Qt, я хотел бы кратко выразить своё мнение об этих двух жареных курицах.
ShadowsocksR
Я не знаю, есть ли у разработчика опыт или команда, но я точно знаю, что автор действительно закрыл исходный код клиента Shadowsocks C# для вторичной разработки, нарушая GPL. Мы не будем говорить о других факторах, факт в том, что GPL очень чётко чёрно-белый: нарушение — это нарушение. Однако автор затем открыл кодовую базу, что можно считать завершением инцидента, и нет необходимости продолжать это дело.
Всё изменилось после того, как Clowwindy опустошил свой магазин кодов Shadowsocks. Ниже приведен лишь список фактов:
Автор ShadowsocksR заявил, что хочет начать с нуля и написать новый прокси-инструмент, не связанный с shadowsocks, и больше не будет обновлять ShadowsocksR Через два-три дня ShadowSocks было приказано удалить, и оригинальный проект Shadowsocks фактически исчез Автор ShadowsocksR сказал, что оригинальный протокол Shadowsocks был несовершенен (обсуждается в следующем разделе) и вернулся к сфокусировке Автор ShadowsocksR создал группу Google+ и обновил код, связанный с ShadowsocksR Безопасность Shadowsocks
Теперь начнём с описания утверждения автора ShadowsocksR о том, что недостаток протокола Shadowsocks заключается в том, что длина IV в большинстве случаев составляет 16 байт. Вторая половина верна, многие алгоритмы шифрования используют IV длиной 16 байт (особенно популярные AES и RC4-MD5), и что с того? Это не вводит так называемых «дефектов» по следующим причинам:
IV каждого TCP-соединения на этапе рукопожатия генерируется случайным образом, а не по паролю, поэтому IV непредсказуем. Без ключа, даже если эта часть IV перехвачен, шифротекст нельзя расшифровать. И каждое новое TCP-соединение использует случайно сгенерированный IV, то есть данные, перехваченные с разных TCP-соединений, имеют мало общего. Расшифровка шифротекста требует как правильного IV, так и самого шифра, и любое соединение не имеет характеристик шифра. Большинство IV имеют длину 16 байт, что является возможной комбинацией 256 к степени 16, и невозможно перебором взломаться, когда все IV одинаковы, не говоря уже о добавлении второй пункта. Согласно подходу ShadowsocksR, бесполезно добавлять так называемый заголовок обфускации перед первым соединением, его собственные характеристики очевидны, и он никак не меняет суть позднего IV или фиксированной длины. Поскольку четвёртый байт показывает длину случайно заполненных данных, если вы пропускаете предыдущую стопку при так называемом «зондировании», вы всё равно можете перехватить IV. И, как я уже говорил несколько пунктов назад, это бесполезно, если у тебя этот случайный капельница. Если он используется для обнаружения, фиксированная первая версия логотипа — это обнажённая функция, отправляемая для идентификации. Автор ShadowsocksR в настоящее время предоставляет скрипт активного обнаружения, который позволяет определить, работает ли сервер с shadowsocks, и согласно текущим онлайн-тестам, процент успеха не низок (но не 100%). В этом отношении Clowwindy уже предложил решение для автобана в оригинальной версии, автоматически блокируя эти вредоносные IP. Я только что добавил патч в libQtShadowsocks, и этот патч блокирует обнаружение этого метода, который возвращает случайные строки случайной длины в зависимости от вероятности. Однако это не значит, что протокол Shadowsocks идеален, а «решение» ShadowsocksR криво, потому что его фокус крив. Моя личная идея — использовать публичные и приватные ключи для повышения безопасности, хотя это не очень удобно для новичков, но безопасность улучшится, характеристики уменьшатся (не нужно отправлять IV на этапе рукопожатия), и протокол shadowsocks должен развиваться в сторону безопасности CCA.
Обновлено 05 сентября 2015
После обнаружения ошибки заголовка (которую невозможно решить), неправильный IV и IP добавляются в список неудачных IV и IP, если IV уже существует в списке неудачных IV или IP уже в списке неисправных IP, IP, отправивший запрос на соединение, будет добавлен в черный список, и IP из черного списка напрямую отклонит соединение. Для получения последних подробностей по антидетекции обратитесь к этому выпуску, и эта статья не будет обновлять меры противодействия обнаружению.
Обновлено 06 сентября 2015 года
В этой статье стоит сказать, что не стоит слишком беспокоиться о безопасности Shadowsocks: текущий протокол пока не имел серьёзных уязвимостей, а серверы основных портов также обновляются для устранения потенциальных угроз. Я также хорошо общался с автором ShadowsocksR, и до появления белого списка пройдет немало времени.
Обновлено 24 сентября 2015 года
Безопасность Shadowsocks, упомянутая в этой статье, больше связана с безопасностью сервера, и текущий протокол несёт риск подвергнуть сервер перебору и затем быть заблокирован файрволами (хотя стоимость обнаружения очень высока). Безопасность передаваемого контента не вызывает беспокойства, все они являются промышленными высокопрочными алгоритмами шифрования (за исключением RC4 и TABLE), и взломать передаваемый контент практически невозможно.
Обновлено 18 ноября 2015 года
Shadowsocks улучшил свою защиту от CCA, добавив одну проверку, и крупные порты уже завершили свою поддержку. Важно подчеркнуть, что цель Shadowsocks — не быть полностью безошибочным или 100% пуленепробиваемым, а обеспечить лёгкое и быстрое соединение, делая при этом слишком дорогими для реализации основных методов атаки.
|