VLESS Reality
VLESS Reality اتصال VPN را درون دستدهی TLS 1.3 یک وبسایت واقعی پنهان میکند، بنابراین پویشگرها همان سایت را میبینند. چگونه کار میکند، محدودیتهایش چیست و Colitu چگونه از آن استفاده میکند.
VLESS Reality دومین حالتی است که Adaptive Connect در Colitu روی Android و iOS امتحان میکند و در Windows و Linux یکی از حالتهای TCP است که بر اساس زمان اتصال رتبهبندی میشوند. VLESS، یک پروتکل پروکسی سبک، را با Reality، یک لایهٔ استتار TLS، ترکیب میکند و برای شبکههایی که از بازرسی عمیق بستهها (DPI) استفاده میکنند طراحی شده است.
چیست
هر دو بخش از Project X (Xray)، یک جعبهابزار شبکهٔ متنباز، و تیم XTLS آن میآیند.
- VLESS یک پروتکل پروکسی حداقلی و بدون حالت است. یک درخواست نسخه، شناسهٔ کاربر (یک UUID)، یک دستور و آدرس مقصد را حمل میکند. VLESS خودش چیزی را رمزگذاری نمیکند؛ به لایهٔ زیرین تکیه دارد.
- Reality همان لایه است: پیادهسازی TLS 1.3 که به گواهی اختصاصی نیاز ندارد. در طول دستدهی، سرور خود را بهعنوان یک وبسایت واقعی شخص ثالث معرفی میکند.
- XTLS Vision یک حالت جریان است که Colitu برای VLESS Reality فعال میکند. با الگوی «TLS درون TLS» که در ادامه توضیح داده میشود سروکار دارد.
چگونه کار میکند
- راهاندازی. سرور با یک وبسایت واقعی بهعنوان هدف، یک جفتکلید X25519 و شناسههای کوتاه پیکربندی میشود. برنامه کلید عمومی، یک شناسهٔ کوتاه و نام هدف را از طریق کانال رمزگذاریشده از پنل Colitu دریافت میکند.
- ClientHello. برنامه یک دستدهی TLS 1.3 را طوری شروع میکند که گویی مرورگری از سایت هدف بازدید میکند: فیلد SNI نام آن سایت را حمل میکند و اثر انگشت TLS از طریق کتابخانهٔ uTLS Chrome را تقلید میکند.
- احراز هویت پنهان. برنامه یک راز مشترک از سهم کلید موقت X25519 خود و کلید عمومی سرور مشتق میکند. با آن، یک بلوک احراز هویت کوچک، شامل شناسهٔ کوتاه و یک مهر زمانی، را درون فیلد session ID در ClientHello رمزگذاری میکند، فیلدی که معمولاً بایتهای تصادفی دارد.
- سرور تصمیم میگیرد. اگر بلوک معتبر باشد، سرور خودش دستدهی TLS 1.3 را با یک گواهی موقت پیوندخورده به راز مشترک تکمیل میکند که برنامه میتواند آن را بررسی کند. اگر معتبر نباشد، سرور اتصال را بایتبهبایت به وبسایت هدف واقعی رله میکند.
- تونل. پس از دستدهی، درخواستهای VLESS با جریان Vision درون نشست TLS 1.3 حرکت میکنند.
بهخاطر گام 4، هر که بدون کلید وصل شود، از جمله یک پویش فعال، با وبسایت واقعی صحبت میکند، گواهی واقعی آن را میگیرد و صفحههای واقعی آن را میبیند.
XTLS Vision و «TLS درون TLS»
بیشتر کارهایی که آنلاین انجام میدهید از قبل HTTPS است، بنابراین درون تونل VPN معمولاً نشست TLS دومی وجود دارد. TLS تودرتو الگوهای قابلشناسایی در اندازهٔ بستهها و زمانبندی ایجاد میکند، بهویژه در دستدهی درونی. Vision ترافیک TLS درونی را تشخیص میدهد، بستههای اولیه را padding میدهد تا آن الگو محو شود و سپس دادههای درونیِ از قبل رمزگذاریشده را بدون رمزگذاری دوباره عبور میدهد. این کار هم اثر انگشت و هم بار CPU را کاهش میدهد. Vision به جریان خام TCP نیاز دارد، به همین دلیل Colitu آن را برای VLESS Reality به کار میبرد اما برای VLESS XHTTP نه.
چرا Colitu از آن استفاده میکند
استتار کلاسیک TLS به دامنه و گواهی اختصاصی VPN نیاز دارد که میتوان آن را فهرست کرد و بر اساس نام مسدود کرد، و به سروری که هنگام پویش ممکن است خودش را لو بدهد. Reality هر دو نقطهضعف را برمیدارد: گواهی اختصاصیای برای مسدود کردن وجود ندارد و پویشگر یک سایت واقعی میبیند. در شبکههایی که DPI فعالانه دنبال ترافیک VPN میگردد، این VLESS Reality را به یکی از دشوارترین حالتها برای تشخیص از HTTPS عادی تبدیل میکند.
کجا قوی است
- شبکههای فیلترشده با DPI: اثر انگشت شبیه مرورگر، دستدهی واقعی شخص ثالث و بدون گواهی اختصاصی.
- شبکههایی که UDP را مسدود میکنند: روی TCP اجرا میشود، پس جایی کار میکند که Hysteria2 نمیتواند.
- پویش فعال: پویشها به وبسایت واقعی رله میشوند.
- اتصالهای پایدار سیمی و Wi-Fi: با افت بستهٔ کم TCP عملکرد خوبی دارد و Vision سربار را کم نگه میدارد.
محدودیتها و زمانی که بهترین انتخاب نیست
- TCP روی لینکهای دارای افت. روی دادههای تلفن همراه یا Wi-Fi ضعیف با افت زیاد مانند هر پروتکل TCP کند میشود؛ Hysteria2 معمولاً آنجا سریعتر است.
- اتصالهای طولانی تکی. برخی شبکهها اتصالهای TCP طولانیمدت را قطع میکنند یا پس از مدتی کند میکنند. VLESS XHTTP دقیقاً برای همین حالت وجود دارد.
- ناهمخوانیها ممکن است دیده شوند. SNI نام یک وبسایت را میگوید در حالی که آدرس IP به شبکهای دیگر تعلق دارد. فیلترهایی که این دو را مقایسه میکنند یا بر اساس آدرس IP مسدود میکنند همچنان میتوانند روی اتصال اقدام کنند.
- بدون تضمین دائمی. سامانههای فیلترینگ تکامل مییابند و فنی که امروز کار میکند ممکن است بعداً شناسایی شود. به همین دلیل Colitu چهار حالت دیگر را آماده نگه میدارد.
Adaptive Connect چگونه از آن استفاده میکند
در Android و iOS، VLESS Reality دوم است، درست پس از Hysteria2: وقتی معلوم شود UDP مسدود یا غیرقابلاستفاده است، انتخاب اول است. در Windows و Linux بر اساس زمان اتصال اندازهگیریشده با حالتهای TCP دیگر رقابت میکند. اگر دستدهیاش ناموفق باشد، یا تونل در طول بررسی ترافیکی حمل نکند، برنامه ادامه میدهد (در موبایل به VLESS XHTTP، سپس Trojan و Shadowsocks 2022) و تلاش ناموفق را عقب میاندازد.
امنیت و رمزگذاری
- رمزگذاری: دستدهی TLS 1.3 با تبادل کلید X25519؛ ترافیک با رمزهای AEAD در TLS 1.3 محافظت میشود.
- احراز هویت سرور: برنامه سرور را فقط وقتی میپذیرد که دستدهی دانستن کلید خصوصیِ پشت کلید عمومی Reality آن را ثابت کند. مهاجم میانی بدون آن کلید نمیتواند خود را جای سرور جا بزند.
- احراز هویت کلاینت: دو لایه، بلوک احراز هویت Reality (کلید و شناسهٔ کوتاه) و شناسهٔ کاربر VLESS که بخشی از اطلاعات حساب شما برای آن سرور است.
- مدیریت کلید: کلیدها، شناسههای کوتاه و هدف بهصورت رمزگذاریشده به برنامه تحویل داده میشوند و هرگز منتشر نمیشوند. در سرورهای Colitu هر حالت VLESS جفتکلید Reality مخصوص خود را دارد، بنابراین این دو را میتوان مستقل از هم تعویض کرد.
- بدون گزارش دسترسی: صفحهٔ امنیت را ببینید.
منابع
امتحانش کنید
VLESS Reality در هر برنامهٔ Colitu آماده است؛ برنامه وقتی شبکه نیاز داشته باشد آن را برمیگزیند. Colitu را دانلود کنید یا مکانهای سرور را مرور کنید.