سرور پروکسی outline-ss-server 1.4 با استفاده از پروتکل Shadowsocks برای پنهان کردن ماهیت ترافیک، دور زدن فایروال ها و فریب دادن سیستم های بازرسی بسته منتشر شده است. این سرور توسط پروژه Outline در حال توسعه است، که علاوه بر این چارچوبی از برنامه های مشتری و یک رابط کنترلی را ارائه می دهد که به شما امکان می دهد به سرعت سرورهای Shadowsocks چند کاربره را بر اساس outline-ss-server در محیط های ابری عمومی یا تجهیزات شخصی خود مستقر کنید. آنها را از طریق یک رابط وب مدیریت کنید و دسترسی کاربر را با کلیدها سازماندهی کنید. این کد توسط Jigsaw، یک بخش در Google که برای توسعه ابزارهایی برای دور زدن سانسور و سازماندهی تبادل آزاد اطلاعات ایجاد شده است، توسعه و نگهداری می شود.
Outline-ss-server در Go نوشته شده و تحت مجوز Apache 2.0 توزیع شده است. کد مورد استفاده به عنوان پایه، سرور پروکسی go-shadowsocks2 است که توسط جامعه توسعه دهندگان Shadowsocks ایجاد شده است. اخیراً فعالیت اصلی پروژه Shadowsocks بر روی توسعه یک سرور جدید به زبان Rust متمرکز شده است و پیاده سازی آن در زبان Go بیش از یک سال است که به روز نشده و به طرز محسوسی از نظر عملکرد عقب مانده است.
تفاوت بین outline-ss-server و go-shadowsocks2 به پشتیبانی از اتصال چندین کاربر از طریق یک پورت شبکه، توانایی باز کردن چندین پورت شبکه برای دریافت اتصالات، پشتیبانی از راهاندازی مجدد داغ و بهروزرسانیهای پیکربندی بدون قطع اتصالات، داخلی است. ابزارهای نظارت و اصلاح ترافیک بر اساس پلتفرم prometheus .io.
outline-ss-server همچنین محافظت در برابر درخواست probe و حملات پخش مجدد ترافیک را اضافه می کند. حمله از طریق درخواست های آزمایشی با هدف تعیین حضور یک پروکسی انجام می شود؛ به عنوان مثال، یک مهاجم می تواند مجموعه داده هایی با اندازه های مختلف را به سرور Shadowsocks هدف ارسال کند و قبل از تشخیص خطا و بستن اتصال، تجزیه و تحلیل کند که سرور چه مقدار داده را می خواند. حمله بازپخش ترافیک مبتنی بر رهگیری یک جلسه بین مشتری و سرور و سپس تلاش برای ارسال مجدد داده های رهگیری شده برای تعیین وجود یک پروکسی است.
برای محافظت در برابر حملات از طریق درخواست های آزمایشی، سرور outline-ss-server، زمانی که داده های نادرست وارد می شود، اتصال را قطع نمی کند و خطایی را نمایش نمی دهد، اما به دریافت اطلاعات ادامه می دهد و به عنوان نوعی سیاه چاله عمل می کند. برای محافظت در برابر پخش مجدد، دادههای دریافتی از مشتری علاوه بر این با استفاده از جمعهای چک ذخیره شده برای چند هزار دنباله دست دادن اخیر (حداکثر 40 هزار، اندازه زمانی که سرور شروع به کار میکند و 20 بایت حافظه در هر دنباله مصرف میکند) برای تکرار بررسی میشود. برای مسدود کردن پاسخهای مکرر از سرور، تمام توالیهای دست دادن سرور از کدهای احراز هویت HMAC با برچسبهای 32 بیتی استفاده میکنند.
از نظر سطح پنهان سازی ترافیک، پروتکل Shadowsocks در اجرای outline-ss-server نزدیک به انتقال پلاگین Obfs4 در شبکه ناشناس Tor است. این پروتکل برای دور زدن سیستم سانسور ترافیک در چین ("دیوار آتش بزرگ چین") ایجاد شده است و به شما امکان می دهد تا ترافیک ارسال شده از طریق سرور دیگری را به طور موثر پنهان کنید (تشخیص ترافیک به دلیل پیوستن یک دانه تصادفی و شبیه سازی مشکل است. یک جریان پیوسته).
SOCKS5 به عنوان یک پروتکل برای درخواست های پروکسی استفاده می شود - یک پروکسی با پشتیبانی SOCKS5 در سیستم محلی راه اندازی می شود که ترافیک را به یک سرور راه دور که درخواست ها از آن واقعاً اجرا می شوند تونل می کند. ترافیک بین کلاینت و سرور در یک تونل رمزگذاری شده قرار می گیرد (رمزگذاری تأیید شده AEAD_CHACHA20_POLY1305، AEAD_AES_128_GCM و AEAD_AES_256_GCM پشتیبانی می شود)، پنهان کردن واقعیت ایجاد آن وظیفه اصلی Shadowsocks است. سازماندهی تونلهای TCP و UDP و همچنین ایجاد تونلهای دلخواه که توسط SOCKS5 محدود نشدهاند از طریق استفاده از پلاگینهایی که یادآور انتقالهای پلاگین در Tor هستند، پشتیبانی میشود.
منبع: opennet.ru