وقتی اتصال VPN برقرار نمیشود: شناخت DPI و مشکلات اتصال
بازرسی عمیق بستهها (DPI) چیست، چگونه ممکن است ترافیک VPN را تشخیص دهد و Reality، Trojan و Hysteria2 چگونه تلاش میکنند اتصال برقرار کنند، همراه با محدودیتهای صادقانه و گامهای عملی. هیچ تضمینی وجود ندارد.
VPN شما دیروز کار میکرد. امروز وصل میشود و قفل میکند، یا اصلاً وصل نمیشود، در حالی که خود اینترنت درست کار میکند. در بسیاری از شبکهها دلیل آن بازرسی عمیق بستهها (DPI) است: تجهیزاتی که فقط نگاه نمیکنند ترافیک به کجا میرود، بلکه بررسی میکنند چه شکلی دارد. این راهنما توضیح میدهد DPI چه چیزی را میتواند ببیند، انتقالهای Colitu چگونه با آن روبهرو میشوند و شما چه کاری میتوانید بکنید، بیآنکه وانمود کنیم پروتکلی نامرئی است.
DPI چیست
مسیریابی معمولی به آدرسها و پورتها نگاه میکند. DPI فراتر میرود: ابتدای هر اتصال، شکل ترافیک و گاهی محتوای بستههای رمزگذارینشده را بررسی میکند، سپس جریان را طبقهبندی میکند و قاعدهای اعمال میکند: عبور دادن، کند کردن یا قطع کردن. اپراتورها از DPI برای مدیریت ترافیک، شرکتها برای امنیت و دولتها برای فیلترینگ استفاده میکنند. در برخی کشورها چنین تجهیزاتی در هر اپراتور بزرگ نصب شدهاند، بنابراین فیلترینگ در سطح شبکه انجام میشود، نه روی سایتهای جداگانه.
DPI به چه چیزی نگاه میکند
- آدرسها. سادهترین روش: فهرستی از آدرسها یا شبکههای IP مسدودشده. اگر خود آدرس سرور مسدود باشد، هیچ پروتکلی کمک نمیکند.
- دستدهیها. بسیاری از پروتکلهای VPN کلاسیک با پیامهای قابلشناسایی شروع میشوند. برای مثال WireGuard از انواع و اندازههای ثابت پیام استفاده میکند و تلاشی برای پنهان کردن آنها نمیکند.
- سلام TLS. در یک اتصال TLS نخستین پیام (ClientHello) نام سایت درخواستی (SNI) را بهصورت متن آشکار حمل میکند و یک «اثر انگشت» متشکل از مجموعه رمزها و افزونهها دارد. کلاینتی که شبیه یک مرورگر رایج نباشد جلب توجه میکند.
- شکل ترافیک. اندازهٔ بستهها و زمانبندی الگوهایی را آشکار میکند، برای مثال ترافیک TLS که درون اتصال TLS دیگری بستهبندی شده است.
- تصادفی بودن. ترافیکی که از همان بایت اول شبیه دادههای کاملاً تصادفی باشد خودش یک نشانه است؛ پژوهشگران سامانههای فیلترینگی را مستند کردهاند که بر همین اساس آن را مسدود میکنند.
- پویش فعال. فیلتر خودش به سرور مشکوک وصل میشود و نحوهٔ پاسخدادن آن را زیر نظر میگیرد.
مسدودسازی DPI چه شکلی دارد
- اتصال در حین دستدهی ناموفق میشود؛
- اتصال باز میشود، کمی داده عبور میدهد و سپس قفل میکند؛
- سرعت به سطح غیرقابلاستفاده افت میکند؛
- در یک شبکه (اینترنت خانه) کار میکند و در شبکهٔ دیگر (یک اپراتور موبایل) ناموفق است.
انتقالهای Colitu چگونه با DPI روبهرو میشوند
هر سرور Colitu پنج انتقال ارائه میکند که بر پایهٔ ایدههای متفاوت ساخته شدهاند:
- VLESS Reality گواهی اختصاصی ندارد. دستدهی TLS 1.3 یک سایت واقعی شخص ثالث را قرض میگیرد، بنابراین پویشی که به سرور وصل شود آن سایت را میبیند. جزئیات: VLESS Reality.
- VLESS XHTTP دادهها را بهصورت جریانی شبیه HTTP از درخواستهای جداگانهٔ آپلود و دانلود روی Reality حمل میکند. جایی مفید است که اتصالات طولانی تکTCP قطع میشوند. جزئیات: VLESS XHTTP.
- Trojan روی TLS واقعی اجرا میشود و شبیه HTTPS است. کلاینتی که رمز عبور اشتباه دارد رفتار یک وبسرور معمولی را میبیند. جزئیات: Trojan.
- Hysteria2 روی QUIC با TLS 1.3 و گواهی واقعی اجرا میشود، بنابراین شبیه HTTP/3 است. به عبور UDP وابسته است. جزئیات: Hysteria2.
- Shadowsocks 2022 از رمزگذاری AEAD با حفاظت در برابر بازپخش استفاده میکند و دستدهی قابلشناسایی ندارد. سبک و سریع است، اما جایی که فیلترها ترافیکِ شبیهبهتصادفی را هدف میگیرند در معرض خطر بیشتری است. جزئیات: Shadowsocks 2022.
| انتقال | ایدهٔ استتار | نقطهضعف اصلی |
|---|---|---|
| VLESS Reality | دستدهی یک سایت واقعی | TCP، در لینکهای دارای افت بسته کندتر |
| VLESS XHTTP | درخواستهای شبیه HTTP روی Reality | TCP، در لینکهای دارای افت بسته کندتر |
| Trojan | HTTPS معمولی | به گواهی TLS خودش وابسته است |
| Hysteria2 | HTTP/3 روی QUIC | شبکههایی که UDP را محدود میکنند |
| Shadowsocks 2022 | بدون الگوی قابلشناسایی | تصادفی بودن میتواند نشانه باشد |
محدودیتهای صادقانه
هیچ انتقالی غیرقابلتشخیص و هیچکدام غیرقابلمسدودسازی نیست. سامانههای فیلترینگ در طول زمان تغییر میکنند و اپراتور شبکه همیشه میتواند آدرس یک سرور را مسدود کند یا فقط فهرستی تأییدشده از سرویسها را مجاز بداند. دقیقاً به همین دلیل Colitu به یک پروتکل «جادویی» تکیه نمیکند: چند انتقال با نقاط قوت متفاوت نگه میدارد و به برنامه اجازه میدهد همانی را انتخاب کند که همین حالا روی شبکهٔ شما کار میکند. ما نمیتوانیم قول بدهیم هیچ انتقالی روی هر شبکهای کار کند.
وقتی DPI اختلال ایجاد میکند، Adaptive Connect چه میکند
Adaptive Connect فقط به یک دستدهی موفق اعتماد نمیکند. یک انتقال تنها وقتی پذیرفته میشود که ترافیک واقعی از یک بررسی عبور کند. این در برابر DPI اهمیت دارد، چون DPI اغلب دستدهی را عبور میدهد و سپس دادهها را قفل میکند. انتقالی که هیچ ترافیکی عبور نداده عقب انداخته میشود، اندروید آخرین انتقال کارآمد را برای هر سرور به خاطر میسپارد و برنامهٔ Windows هر دو ثانیه بررسی میکند که تونل هنوز ترافیک عبور میدهد یا نه و اگر متوقف شود دوباره وصل میشود. برنامهها همچنین بهصورت تجمیعی گزارش میدهند کدام انتقالها کار کردهاند تا پیشفرضها با گذشت زمان بهتر شوند. اندازهگیریهای پشت این موضوع، از جمله یک آزمون یکساعتهٔ تزریق خطا، در گزارش Adaptive Connect 2.0 آمده است.
چه کاری میتوانید بکنید
- برنامه را بهروز نگه دارید.
- بگذارید برنامه اتصال را کامل کند؛ در شبکهٔ فیلترشده اولین اتصال میتواند بیشتر طول بکشد.
- مکان دیگری را امتحان کنید: اگر آدرس یک سرور مسدود باشد، ممکن است سرور دیگری کار کند.
- با شبکهٔ دیگری مقایسه کنید، مثلاً Wi-Fi بهجای دادههای تلفن همراه، تا ببینید مشکل به یک اپراتور وابسته است یا نه.
- با ذکر اپراتور، منطقه و زمان شروع مشکل به پشتیبانی بنویسید؛ این به ما کمک میکند الگوها را ببینیم.
قواعد استفاده از VPN در کشورهای مختلف متفاوت است. شما مسئول رعایت قوانینی هستید که بر شما حاکم است. مطالب مرتبط: مسدود بودن UDP و مشکلات اتصال در مرکز راهنما.
منابع
- RFC 8446: TLS 1.3
- RFC 9000: QUIC
- WireGuard whitepaper
- Project X (Xray) documentation
- REALITY on GitHub
- Trojan protocol description
- Hysteria 2 documentation
- Shadowsocks SIP022: Shadowsocks 2022 edition
- Wu et al., How the Great Firewall of China detects and blocks fully encrypted traffic (USENIX Security 2023)
- OONI: Open Observatory of Network Interference