پرش به محتویات

مقاومت در برابر DPI

Teleproxy شامل چندین لایه دفاعی در برابر سیستم‌های بازرسی عمیق بسته (DPI) است که تلاش می‌کنند ترافیک MTProxy را شناسایی و مسدود کنند.

وضعیت فعلی تهدیدات

تا آوریل ۲۰۲۶، سیستم‌های DPI روسیه (TSPU/ASBI) پروتکل MTProxy fake-TLS را به عنوان یک پروتکل مجزا («TELEGRAM_TLS») طبقه‌بندی می‌کنند. شناسایی عمدتاً بر اثر انگشت TLS سمت کلاینت متکی است — ClientHello اپلیکیشن تلگرام ویژگی‌های JA3/JA4 قابل تشخیصی دارد که DPI آن‌ها را با امضاهای شناخته‌شده تطبیق می‌دهد.

مشاهدات کلیدی:

  • اپراتورهای موبایل (MTS، Megafon، Beeline، T2، Yota) بیشتر از ISPهای خانگی تحت تأثیر هستند — سطح استقرار TSPU بر اساس ارائه‌دهنده متفاوت است
  • اتصالات VPN هم از اکتشافی‌های DPI و هم از مسدودسازی در سطح IP عبور می‌کنند
  • ابزارهای تکه‌تکه‌سازی بسته سمت کلاینت (zapret، GoodbyeDPI) اتصال را بازیابی می‌کنند، که تأیید می‌کند DPI الگوها را روی بخش‌های TCP دست‌نخورده تطبیق می‌دهد
  • Telegram Desktop اثر انگشت TLS خود را به‌روزرسانی کرد تا آرتیفکت‌های قابل شناسایی را برطرف کند؛ کلاینت‌های موبایل ممکن است عقب‌تر باشند

Teleproxy چه می‌کند (سمت سرور)

استتار Fake-TLS

تمام ترافیک در رکوردهای TLS 1.3 با ClientHello پروفایل Chrome بسته‌بندی می‌شود. برای راه‌اندازی Fake-TLS را ببینید.

بک‌اند TLS سفارشی (مقاومت در برابر کاوش فعال)

سیستم‌های DPI به طور فعال پروکسی‌های مشکوک را کاوش می‌کنند. هنگام اجرا با بک‌اند TLS واقعی (nginx با گواهی معتبر)، هر اتصال نامعتبر — رمز اشتباه، مهر زمانی منقضی، کاوش DPI — به وب‌سایت واقعی هدایت می‌شود. کاوشگر یک سرور HTTPS معتبر می‌بیند.

این مؤثرترین اقدام سمت سرور است. Fake-TLS: بک‌اند TLS سفارشی را ببینید.

تغییر اندازه رکورد پویا (DRS)

اندازه رکوردهای TLS از الگوی تدریجی مطابق با وب‌سرورهای واقعی (Cloudflare، Caddy) پیروی می‌کند: اندازه MTU در هنگام شروع آهسته، افزایش تا حداکثر. نویز تصادفی به هر رکورد اضافه می‌شود. این کار تحلیل آماری را که ترافیک پروکسی را از طریق اندازه‌های یکنواخت رکورد شناسایی می‌کند، خنثی می‌سازد.

تنوع پاسخ ServerHello

اندازه payload رمزگذاری‌شده ServerHello تا ±۳۲ بایت بین اتصالات تغییر می‌کند و تنوع طبیعی اندازه‌های زنجیره گواهی و تیکت نشست سرورهای TLS واقعی را تقلید می‌کند. ServerHello و ChangeCipherSpec به عنوان بخش‌های TCP جداگانه ارسال می‌شوند تا DPI نتواند پاسخ کامل دست‌تکانی را در یک بسته تطبیق دهد.

تصادفی‌سازی GREASE

هر ClientHello (برای کاوش دامنه بالادست) از مقادیر GREASE تازه طبق RFC 8701 استفاده می‌کند و از تطبیق اثر انگشت ثابت جلوگیری می‌کند.

شما چه می‌توانید انجام دهید (راه‌اندازی سرور)

از پورت 443 استفاده کنید

ترافیک TLS روی پورت‌های غیراستاندارد (8443، 6443) مشکوک است. همیشه Teleproxy را روی پورت 443 اجرا کنید:

./teleproxy -H 443 -S <secret> -D example.com ...

یک دامنه پرترافیک انتخاب کنید

یک دامنه محبوب با پشتیبانی CDN برای SNI انتخاب کنید (مثلاً www.google.com، cloudflare.com). دامنه باید از TLS 1.3 پشتیبانی کند. Teleproxy دامنه را هنگام راه‌اندازی کاوش می‌کند تا ویژگی‌های ServerHello آن را بیاموزد و تقلید کند.

بک‌اند TLS سفارشی راه‌اندازی کنید

اگر دامنه سرور را کنترل می‌کنید، nginx با گواهی TLS معتبر را پشت Teleproxy راه‌اندازی کنید. این کار سرور را هنگام کاوش فعال از یک وب‌سایت HTTPS معمولی غیرقابل تشخیص می‌سازد. Fake-TLS: بک‌اند TLS سفارشی را ببینید.

از padding تصادفی استفاده کنید (حالت DD)

برای ISPهایی که MTProto را از طریق اندازه بسته‌ها شناسایی می‌کنند، padding تصادفی را با افزودن پیشوند dd به رمز کلاینت فعال کنید.

کاربران چه می‌توانند انجام دهند (سمت کلاینت)

عامل اصلی شناسایی، اثر انگشت TLS کلاینت تلگرام است که از سمت سرور قابل رفع نیست. کاربران در شبکه‌های تحت تأثیر باید از ابزارهای دور زدن DPI سمت کلاینت استفاده کنند که بخش‌های TCP را تکه‌تکه می‌کنند:

ابزار پلتفرم روش
zapret Linux، Android (root) تکه‌تکه‌سازی TCP، بسته‌های جعلی
zapret2 Linux، Android (root) فورک به‌روزشده
GoodbyeDPI Windows تکه‌تکه‌سازی TCP، ترفندهای TTL
NoDPI Android (بدون root) VPN محلی با تکه‌تکه‌سازی
SpoofDPI macOS، Linux پروکسی تقسیم HTTP/TLS

این ابزارها کار می‌کنند زیرا DPI روسیه الگوها را روی بخش‌های TCP دست‌نخورده تطبیق می‌دهد. تکه‌تکه‌سازی ClientHello در چندین بخش، تطبیق‌دهنده الگو را شکست می‌دهد.

تلگرام را به‌روز نگه دارید

Telegram Desktop چندین آرتیفکت اثر انگشت TLS را برطرف کرد که DPI از آن‌ها سوءاستفاده می‌کرد. کلاینت‌های موبایل (Android/iOS) معمولاً این اصلاحات را در به‌روزرسانی‌های بعدی دریافت می‌کنند. همیشه از آخرین نسخه استفاده کنید.

آنچه از سمت سرور قابل رفع نیست

  • اثر انگشت TLS کلاینت: اپلیکیشن تلگرام محتوای ClientHello را کنترل می‌کند. کد پروکسی سمت سرور نمی‌تواند آنچه کلاینت ارسال می‌کند را تغییر دهد.
  • مسدودسازی IP/L3: وقتی DPI محدوده‌های IP تلگرام را در لایه شبکه مسدود می‌کند، فقط VPN یا رله واسطه می‌تواند کمک کند.
  • استقرار TSPU: اینکه آیا DPI ارائه‌دهنده ترافیک را شناسایی می‌کند به نسخه سخت‌افزار/نرم‌افزار TSPU بستگی دارد — این از اپراتوری به اپراتور دیگر و از منطقه‌ای به منطقه دیگر متفاوت است.