Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 30874|Відповідь: 1

[Мережевий протокол] Різниця між ShadowsocksR і Shadowsocks

[Копіювати посилання]
Опубліковано 10.11.2017 12:41:35 | | |

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% без багів чи на 100% стійкість, а забезпечити легке та швидке з'єднання, при цьому роблячи масові методи атаки надто дорогими для реалізації.





Попередній:.net/c# реалізує вихідний код DNS-захоплення
Наступний:[VS2017] Налаштуйте агента Nuget
Опубліковано 09.08.2019 08:32:59 |
Навчився! Дякую!
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com