DPI چگونه VPNها را مسدود میکند
شبکهای که VPN را مسدود میکند بهندرت فقط یک کار انجام میدهد. چندین روش تشخیص را همزمان اجرا میکند که هرکدام آنقدر ارزان هستند که بتوان روی هر اتصالی اعمالشان کرد، و یک تونل باید از همهٔ آنها جان سالم به در ببرد تا قابلاستفاده بماند. هرکدام چه میکنند؟
مسدودسازی لایهلایه است، نه یگانه
کمک میکند اگر یک استقرار فیلترینگ را بهجای یک دیوار، مجموعهای از دروازهها ببینید. یک اتصال ابتدا با فهرست نشانیها سنجیده میشود، سپس پروتکلش دستهبندی میشود، بعد فرادادهاش با قواعد تطبیق داده میشود، و سپس — چهبسا ساعتها بعد — نقطهٔ پایانیاش کاوش میشود تا معلوم شود آنجا چه در جریان بوده است. شکستدادن یک دروازه وقتی دروازهٔ بعدی شما را بگیرد، بیمعناست.
این همچنین تجربهای را توضیح میدهد که بسیاری گیجکننده مییابند: تونلی که هفتهها بینقص کار میکند و بعد بدون هیچ تغییری از سمت شما از کار میافتد. هیچچیز دربارهٔ ترافیک شما تغییر نکرده است. نقطهٔ پایانی خارج از مسیر شناسایی و به فهرستی افزوده شده است.
دروازهٔ یک: اثرانگشت پروتکل
قدیمیترین و ارزانترین روش، شناختن یک پروتکل VPN از روی دستدادن خودش است. بیشتر پروتکلهای VPN زمانی طراحی شدند که مدل تهدید یک شنودگر بود نه یک دستهبند، و خود را بهروشنی روی سیم اعلام میکنند.
| پروتکل | چه چیزی لو میدهد | دشواری تشخیص |
|---|---|---|
| PPTP / L2TP | شمارههای پروتکل اختصاصی و درگاههای ثابت؛ دستدادن آن خطاناپذیر است. | بسیار ساده |
| IPsec / IKEv2 | روی UDP ۵۰۰ و ۴۵۰۰، با تبادل متمایز IKE. | بسیار ساده |
| WireGuard | نخستین پیام دستدادن، اندازهٔ ثابت و یک بایت نوع ثابت در جایگاهی مشخص دارد، روی UDP. | بسیار ساده |
| OpenVPN | ساختار قابلتشخیص کدهای عملیاتی در کانال کنترلیاش، حتی در حالت TCP روی درگاه ۴۴۳. | آسان |
| Shadowsocks (نسخهٔ اولیه) | اصلاً دستدادنی ندارد، که خودش غیرعادی است؛ نسخههای نخستین در برابر کاوش فعال هم آسیبپذیر بودند. | متوسط |
| تونلهای پوشیده در TLS | کاملاً به وفاداری تقلید TLS بستگی دارد؛ ناهماهنگی اثرانگشت دستدادن نشانهٔ معمول است. | متوسط تا دشوار |
دروازهٔ دو: نام میزبان درون دستدادن
برای هر چیزی که خود را TLS معرفی میکند، بررسی بعدی میدان Server Name Indication است — نام میزبانی که کلاینت درخواست میکند و پیش از آغاز رمزگذاری بهصورت آشکار فرستاده میشود. این میدان وجود دارد تا یک نشانی بتواند میزبان سایتهای بسیاری باشد، و عملاً هر سامانهٔ فیلترینگی آن را میخواند.
- فهرست سیاه: اگر نام میزبان در فهرستی باشد، اتصال انداخته میشود. بیشتر مسدودسازیهای سطح سایت همینگونه کار میکنند.
- فهرست سفید: اگر نام میزبان در فهرستی نباشد، اتصال انداخته میشود. بسیار تهاجمیتر است، در برخی شبکههای سازمانی و ملی به کار میرود، و دور زدنش بهمراتب دشوارتر است.
- بررسی سازگاری: نام میزبان با نشانیای که به آن ترجمه میشود، یا با گواهیای که سرور ارائه میدهد، مقایسه میشود. ناهماهنگی مشکوک تلقی میشود.
Encrypted Client Hello راهحل استانداردشدهٔ این مشکل است: نام میزبان را رمزگذاری میکند تا ناظر نتواند آن را بخواند. پذیرش آن جزئی است، به رکوردهای DNS وابسته است که شبکه ممکن است آنها را هم در اختیار داشته باشد، و در برخی شبکهها خودِ استفاده از آن یک نشانه است. وضعیت را بهتر میکند؛ دروازه را نمیبندد.
دروازهٔ سه: آیا این TLS شبیه یک مرورگر واقعی است؟
پیچیدن یک تونل در TLS کافی نیست اگر خودِ TLS نادرست به نظر برسد. پیام آغازین کلاینت فهرستی مرتب از مجموعهرمزها، گروههای پشتیبانیشده، الگوریتمهای امضا و افزونهها را حمل میکند. ترکیب دقیق آن میان پیادهسازیها تفاوت دارد — یک برنامهٔ Go، یک برنامهٔ OpenSSL و Chrome هر سه Client Hello های بهروشنی متفاوتی تولید میکنند — و میتوان آن را به یک اثرانگشت کوتاه درهمسازی کرد.
اگر اتصالی ادعا کند مرورگری است که با یک وبسرور حرف میزند اما اثرانگشت TLS یک کتابخانهٔ شبکهٔ Go را داشته باشد، همین ناهماهنگی بهتنهایی برای دستهبندی آن کافی است. به همین دلیل پیادهسازیهای جدی صرفاً از TLS استفاده نمیکنند: دستدادن یک مرورگر مشخص را بایتبهبایت بازتولید میکنند و باید همگام با تغییر مرورگرها این کار را ادامه دهند.
دروازهٔ چهار: کاوش فعال
بادوامترین روش تشخیص اصلاً ترافیک شما را دستهبندی نمیکند. سامانه متوجه میشود که شما به نشانی ناآشنایی وصل شدهاید و سپس خودش به آن نشانی وصل میشود و وانمود میکند کلاینت است. آنچه بازمیگردد، حکم را صادر میکند.
مشاهده
جریانی به نشانیای بدون اعتبار، بدون سابقهٔ DNS متناظر و با نمایهٔ ترافیکی غیرعادی، برای پیگیری ثبت میشود.
کاوش
سامانه اتصال خودش را به آن نشانی باز میکند، گاهی بایتهایی را که از نشست شما ضبط کرده بازپخش میکند و گاهی عامدانه دادههای بیمعنا میفرستد.
داوری
یک وبسرور عادی با پاسخی عادی یا با یک هشدار TLS جواب میدهد و هر چه به آن بفرستید یکسان رفتار میکند. یک پروکسی سادهلوح متفاوت پاسخ میدهد — ممکن است معلق بماند، بیدرنگ ببندد، یا به شیوهای پاسخ دهد که هیچ وبسروری نمیدهد.
اقدام
اگر پاسخ ناهنجار باشد، نشانی به فهرست سیاه میرود و آن درگاه برای همهٔ کسانی که از آن استفاده میکنند از کار میافتد.
دفاع این است که سرور برای هر کسی که اعتبارنامهٔ معتبر ندارد، حتی در برابر ورودی خصمانه، واقعاً از یک سایت عادی غیرقابلتشخیص باشد. پروتکلهای این خانواده با هدایت اتصالهای بدون احراز هویت به یک وبسرور واقعی و واگذاری پاسخ به آن سرور به این هدف میرسند — پس کاوشگر یک سایت واقعی دریافت میکند، چون واقعاً به یکی رسیده است.
دروازهٔ پنج: اعتبار نشانی
مستقل از هر چیزی که روی سیم میگذرد، خودِ نشانیها اعتبار دارند. محدودههای متعلق به ارائهدهندگان شناختهشدهٔ میزبانی بهطور گسترده بهعنوان فضای مرکز داده برچسب میخورند، و برخی شبکهها آنها را بهصورت پیشفرض محدود یا به چالش میکشند. نشانیهایی که در فهرستی عمومی منتشر شدهاند — از سوی ارائهدهنده، در توضیحات یک فروشگاه اپلیکیشن، یا در یک انجمن — میتوانند بدون هیچ بازرسیای مسدود شوند.
هیچ طراحی پروتکلی این را چاره نمیکند. این ویژگیِ نشانی است، نه ترافیک. دلیل وجود چرخش نقاط پایانی همین است، و نیز دلیل آنکه یک نقطهٔ پایانی عمومیِ پرمخاطب عمر کاری کوتاهتری از یک نقطهٔ پایانی با توزیع محدود دارد.
دروازهٔ شش: تضعیف بهجای مسدودسازی
مسدودسازی آشکار است و شکایت برمیانگیزد. کندکردن ترافیک چنین نیست. جریانی که احتمالاً-تونل دستهبندی شده میتواند تا چند صد کیلوبیت شکل داده شود، که پیامرسانی را قابلاستفاده و ویدیو را ناممکن میکند و دقیقاً شبیه یک شبکهٔ شلوغ به نظر میرسد.
از سمت کلاینت، امضای آن اتصالی است که عادی برقرار میشود، انفجاری با سرعت کامل منتقل میکند و سپس روی نرخی پایین و بهطور مشکوکی پایدار مینشیند — پایداری همان نشانه است، چون ازدحام واقعی نوسان دارد. راه تأیید آن، اندازهگیری در برابر یک اتصال شاهد به مقصدی نامرتبط در همان لحظه است.
طراحی پروتکل چه چیزی را میتواند و چه چیزی را نمیتواند چاره کند
| روش | آیا طراحی پروتکل میتواند چارهاش کند؟ |
|---|---|
| اثرانگشت دستدادن پروتکل | بله — با نداشتن آن، یا با ارائهٔ اثرانگشت یک مرورگر. |
| ناهماهنگی اثرانگشت TLS | بله — با بازتولید دقیق دستدادن یک کلاینت واقعی. |
| نام میزبان درون دستدادن | تا حدی — با قرضگرفتن نامی موجه، یا رمزگذاری آن در جایی که پشتیبانی شود. |
| کاوش فعال | بله — با پاسخدادن دقیقاً همانگونه که یک سرور عادی پاسخ میدهد. |
| فهرست سیاه نشانیها | خیر — این دربارهٔ نشانی است، نه ترافیک. |
| تحلیل آماری ترافیک | تا حدی — لایهگذاری و تنظیم ریتم هزینه را بالا میبرند، به قیمت گذردهی. |
| فهرست سفید با رد پیشفرض | خیر — هیچچیز از شبکهای که فقط مقصدهای نامبرده را مجاز میداند عبور نمیکند. |
خلاصهٔ صادقانه این است که طراحی پروتکل چهار مورد نخست را خوب مدیریت میکند، دربارهٔ مورد پنجم هیچ کاری نمیتواند بکند، و تنها هزینهٔ دو مورد آخر را بالا میبرد. هر ادعایی مبنی بر اینکه یک تونل غیرقابلتشخیص است، سامانهای را توصیف میکند که هنوز با یک گردانندهٔ مصمم روبهرو نشده است.
پرسشهای پرتکرار
چرا VPN من ماهها کار کرد و بعد ناگهان از کار افتاد؟
اغلب بهجای تغییر چیزی در ترافیک شما، نشانی نقطهٔ پایانی شناسایی و به فهرست سیاه افزوده شده است. این شناسایی میتواند از راه کاوش فعال، ظاهرشدن نشانی در فهرستی عمومی، یا صرفاً حجم رخ دهد — یک نشانی واحد که حجم غیرعادی از ترافیک بلندمدت حمل میکند توجه جلب میکند.
آیا WireGuard توسط DPI مسدود میشود؟
یکی از سادهترین پروتکلها برای شناسایی است، چون نخستین پیام دستدادنش اندازهٔ ثابت و یک بایت نوع ثابت در جایگاهی مشخص دارد. در شبکههایی که بر اساس اثرانگشت پروتکل فیلتر میکنند معمولاً زود مسدود میشود. این چیزی دربارهٔ کیفیت آن بهعنوان پروتکل روی شبکهای بدون فیلتر نمیگوید، جایی که عالی است.
آیا استفاده از درگاه ۴۴۳ یک VPN را غیرقابلتشخیص میکند؟
خیر. درگاه ۴۴۳ از زمانی که بازرسی رایج شد دیگر مخفیگاه نیست؛ آنچه اهمیت دارد این است که ترافیک روی آن شبیه HTTPSیی باشد که آنجا جایش است. یک پروتکل VPN که بدون تغییر روی ۴۴۳ اجرا شود، اگر چیزی باشد، آشکارتر است، چون ادعا میکند چیزی است که بهروشنی نیست.
آیا یک شبکه میتواند همهٔ VPNها را مسدود کند؟
شبکهای که فقط فهرست مشخصی از مقصدهای تأییدشده را مجاز میداند میتواند، به قیمت از کار انداختن بخش بزرگی از کاربردهای عادی. بیشتر شبکهها تا آنجا پیش نمیروند چون خسارت جانبیاش پذیرفتنی نیست، و همین است که برای ترافیکی که شبیه ترافیک مجاز است جا باز میکند.