Trojan
Trojan ترافیک VPN را درون یک اتصال استاندارد TLS (نسخهٔ 1.2 یا 1.3) با گواهی واقعی پنهان میکند، بنابراین شبیه HTTPS است. چگونه کار میکند، محدودیتهایش چیست و نقشش در Colitu کدام است.
Trojan چهارمین حالتی است که Adaptive Connect در Colitu روی Android و iOS امتحان میکند و در Windows و Linux یکی از حالتهای TCP است که بر اساس زمان اتصال رتبهبندی میشوند. ایدهٔ آن ساده است: بهجای ابداع استتاری جدید، از خود چیز واقعی استفاده کن. سرور Trojan یک سرور TLS با گواهی معتبر است و ترافیک Trojan همان TLS معمولی است.
چیست
پروتکل Trojan را پروژهٔ متنباز trojan-gfw معرفی کرد که مستندات آن بهطور کامل آن را شرح میدهد. امروز پیادهسازیهای مستقل بسیاری وجود دارد؛ سرورهای Colitu، Trojan را با sing-box، یک پلتفرم پروکسی جهانی متنباز، اجرا میکنند. Trojan بر TLS بنا شده و فقط یک قالب درخواست بسیار کوچک روی آن اضافه میکند. سرورهای Trojan در Colitu فعلاً TLS 1.2 یا TLS 1.3 (RFC 8446) را میپذیرند؛ هنوز 1.3 را الزامی نمیکنند.
چگونه کار میکند
- برنامه یک اتصال TCP باز میکند و با نام دامنهٔ سرور یک دستدهی استاندارد TLS انجام میدهد. گواهی واقعی سرور را، همان که Hysteria2 استفاده میکند و از طریق ACME صادر میشود، بررسی میکند.
- در نخستین دادهها درون TLS، برنامه هش SHA-224 رمز عبور خود را بهصورت هگزادسیمال، یک خط جدید و یک درخواست کوتاه میفرستد: دستور (باز کردن اتصال TCP یا رله کردن UDP)، آدرس و پورت مقصد، و دوباره یک خط جدید.
- اگر هش متعلق به کاربری شناختهشده باشد، سرور اتصال درخواستی را باز میکند و دادهها را در هر دو جهت رله میکند.
- اگر نباشد، پروتکل طوری طراحی شده که سرور خود را آشکار نکند. پیادهسازی اصلی trojan-gfw چنین اتصالهایی را به یک وبسرور معمولی میسپارد، پس پویشگر همان چیزی را میگیرد که هر سایت HTTPS نشان میدهد.
- ترافیک UDP بهصورت بستههای قاببندیشده درون همان جریان TLS حمل میشود.
چرا Colitu از آن استفاده میکند
- شیوهای متفاوت برای پنهان شدن. Reality یک وبسایت شخص ثالث را قرض میگیرد؛ Trojan از دامنهٔ خود سرور و گواهی واقعی استفاده میکند. فیلتری که دستدهیهای سبک Reality را هدف میگیرد، مثلاً نام یک سایت شناختهشده روی آدرس IP نامرتبط، اینجا چیزی برای تطبیق ندارد.
- مسیر پشتیبان TLS جایی که UDP مسدود است. وقتی Hysteria2 نمیتواند وصل شود و حالتهای مبتنی بر Reality جدا شدهاند، Trojan مسیر دیگری روی TLS ساده ارائه میکند.
- ساده و بالغ. پروتکل کوچک است، خوب شناخته شده و بهطور گسترده پیادهسازی شده است.
کجا قوی است
- شبکههایی که UDP را مسدود میکنند، مانند برخی شبکههای هتل، اداره و دانشگاه: Trojan فقط به TCP نیاز دارد.
- شبکههایی که Reality را جدا میکنند: دستدهی آن یک دستدهی عادی TLS برای نام خود سرور با گواهی از یک مرجع عمومی است.
- TLS ساده و استاندارد: پیش از جلسهٔ TLS یا اطراف آن هیچ قاببندی غیرعادیای وجود ندارد.
محدودیتها و زمانی که بهترین انتخاب نیست
- نام و آدرس خودش. دامنه و گواهی به سرور تعلق دارند. پس از شناسایی، میتوان آنها را بر اساس نام یا آدرس IP مسدود کرد، که با Reality دشوارتر است.
- «TLS درون TLS». Trojan معادل XTLS Vision ندارد، بنابراین الگوهای دستدهیهای تودرتوی TLS میتوانند برای DPI پیشرفته قابلمشاهده بمانند.
- اثر انگشت TLS کلاینت. پروتکل Trojan اثر انگشتی شبیه مرورگر تعریف نمیکند؛ ظاهر دستدهی به پیادهسازی بستگی دارد و برخی فیلترها دقیقاً همان را بررسی میکنند.
- TCP روی لینکهای دارای افت. روی دادههای تلفن همراه یا Wi-Fi ضعیف مانند هر پروتکل TCP کند میشود؛ Hysteria2 معمولاً آنجا سریعتر است.
- UDP روی TCP. تماسها و بازیهایی که درون جریان TCP حمل میشوند هنگام افت بسته آسیب میبینند، چون بستههای بعدی منتظر بستهٔ ازدسترفته میمانند.
Adaptive Connect چگونه از آن استفاده میکند
در Android و iOS، Trojan چهارم است، پس از Hysteria2، VLESS Reality و VLESS XHTTP. وقتی UDP مسدود است و هر دو حالت مبتنی بر Reality نتوانند وصل شوند یا بررسی ترافیک را نگذرانند، استفاده میشود. پس از Trojan فقط Shadowsocks 2022 میماند. در Windows و Linux، Trojan با سایر حالتهای TCP بر اساس زمان اتصال اندازهگیریشده رتبهبندی میشود، بنابراین در برخی شبکهها بلافاصله پس از Hysteria2 امتحان میشود.
امنیت و رمزگذاری
- رمزگذاری: TLS (نسخهٔ 1.2 یا 1.3؛ سرور هنوز 1.3 را اجباری نمیکند) کل نشست را، از جمله هش رمز عبور و آدرس مقصد، محافظت میکند.
- احراز هویت سرور: گواهی واقعی از یک مرجع گواهی عمومی که بهطور خودکار از طریق ACME دریافت و تمدید میشود و برنامه آن را بررسی میکند. بدون آن، مهاجم میانی نمیتواند خود را جای سرور جا بزند.
- احراز هویت کلاینت: رمز عبور بخشی از اطلاعات اتصال حساب شما برای آن سرور است و هرگز آشکار ارسال نمیشود، فقط بهصورت هش درون TLS.
- مدیریت کلید: اطلاعات اتصال بهصورت رمزگذاریشده به برنامه تحویل داده میشود و هرگز منتشر نمیشود.
- بدون گزارش دسترسی: صفحهٔ امنیت را ببینید.
منابع
امتحانش کنید
Trojan در هر برنامهٔ Colitu بهعنوان یکی از پنج حالت آماده است و از سمت شما به هیچ تنظیمی نیاز ندارد. Colitu را دانلود کنید یا مکانهای سرور را ببینید.