XTLS Vision چیست؟
اجرای یک نشست HTTPS درون یک تونل TLS یعنی رمزگذاری دوبارهٔ همان بایتها. این پردازنده را هدر میدهد و — کمتر آشکار — الگویی از طول بستهها بر جای میگذارد که یک دستهبند میتواند بشناسدش. XTLS Vision سازوکاری است که به هر دو میپردازد.
مشکل TLS تودرتو
در نظر بگیرید وقتی یک صفحهٔ معمولی HTTPS را از طریق یک تونل مبتنی بر TLS بارگذاری میکنید چه میگذرد. مرورگر شما درخواستش را برای آن سایت رمزگذاری میکند. سپس کلاینت تونل همان دادهٔ رمزگذاریشده را دوباره برای انتقال رمزگذاری میکند. سرور لایهٔ بیرونی را رمزگشایی میکند و لایهٔ درونی را، همچنان رمزگذاریشده، به مقصدش میفرستد.
رمزگذاری بیرونی از دادهای محافظت کرد که پیشاپیش محافظتشده بود. هزینهٔ آن در دو جا خود را نشان میدهد.
- پردازش. هر بایت در مسیر رفت دوبار رمزگذاری و در مسیر برگشت دوبار رمزگشایی میشود. روی یک گوشی این یعنی باتری؛ روی یک سرور پرمشغله یعنی گذردهی.
- قابلیت تشخیص. رکوردهای TLS سرآیند طول دارند. پیچیدن جریانی از رکوردهای TLS درون جریان TLS دیگر، رابطهٔ مشخصی میان طول رکوردهای درونی و بیرونی تولید میکند — الگویی که در ترافیک عادی رخ نمیدهد و در پژوهشهای منتشرشده برای شناسایی TLS تودرتو با اطمینان بالا به کار رفته است.
Vision بهجای آن چه میکند
مشاهدهای که پشت XTLS است این است که دادهٔ درونی پیشاپیش توسط برنامه بهدرستی رمزگذاری شده است. اگر تونل بتواند اتصال را احراز هویت کند و سپس تشخیص دهد آنچه حمل میکند خودش TLS است، میتواند آن رکوردها را مستقیماً بفرستد بهجای آنکه دوباره بپیچدشان.
احراز هویت عادی
نشست بهصورت یک اتصال معمولی TLS آغاز میشود، با دستدادن کامل و همهٔ محافظتهایی که این در بر دارد. در این مرحله هیچچیز از قلم نمیافتد.
تشخیص اینکه محتوا TLS است
وقتی داده جاری شد، پیادهسازی تشخیص میدهد که جریان درونی خودش TLS است — نه متن دلخواهی که به محافظت خود تونل نیاز داشته باشد.
عبوردادن رکوردها
از آن نقطه به بعد رکوردهای درونی بدون لایهٔ دوم رمزگذاری بازپخش میشوند. آنها هرگز برای تونل یا برای هیچکس در مسیر خوانا نبودند، پس چیزی که پیشاپیش محافظتنشده باشد فاش نمیشود.
شکلدادن الگوی قابلمشاهده
Vision به بخش ابتدایی نشست لایهگذاری میافزاید، جایی که رابطهٔ طول در TLS تودرتو پررنگترین و برای یک دستهبند سودمندترین است.
نام، نسلها را از هم جدا میکند. حالتهای جریان XTLS پیشین به عبوردادن میرسیدند اما معلوم شد ویژگیهای قابلتشخیص خودشان را بر جای میگذارند؛ Vision بازنگریای است که به آنها میپردازد، عمدتاً از راه راهبرد لایهگذاریاش، و همان است که اکنون به کار میرود.
آیا حذف یک لایه چیزی را تضعیف میکند؟
این پرسش درستی است، و پاسخش به این بستگی دارد که لایهٔ حذفشده از چه چیزی محافظت میکرد.
عبوردادن تنها وقتی اعمال میشود که محتوای درونی پیشاپیش TLS باشد — یعنی برنامه رمزگذاری سرتاسری خودش را تا مقصد خودش دارد که تونل در هر حال نمیتوانست بخواندش. لایهٔ بیرونی محرمانگیای فراهم میکرد که لایهٔ درونی پیشاپیش فراهم کرده بود. برداشتن یک پوشش زائد با برداشتن محافظت یکی نیست.
ترافیکی که پیشاپیش سرتاسری رمزگذاری نشده باشد واجد شرایط عبوردادن نیست و طبق روال درون رمزگذاری خود تونل حمل میشود. این تمایز برای هر اتصال جداگانه انجام میشود، نه یکبار برای کل نشست.
آنچه تغییر میکند فرادادهای است که برای ناظری در مسیر قابلمشاهده است: مرزهای رکوردهای درونی به مرزهای رکوردهای بیرونی تبدیل میشوند. دقیقاً به همین دلیل است که لایهگذاری وجود دارد، و این یک معاوضهٔ واقعی است نه بردی رایگان — همین دلیل آن است که Vision جایگزین حالتهای جریان پیشین شد بهجای آنکه صرفاً گسترششان دهد.
در عمل چه معنایی دارد
- هزینهٔ پردازندهٔ کمتر در هر دو سر، که بهصورت عمر باتری بهتر روی موبایل و ظرفیت بالاتر بهازای هر سرور خود را نشان میدهد.
- گذردهی بالاتر روی اتصالهایی که HTTPS بر آنها غالب است، که امروز تقریباً همهٔ اتصالها هستند.
- حذف پرارجاعترین امضای طول برای TLS تودرتو، که فایدهٔ آن در سمت تشخیص است.
- بدون بار پیکربندی برای کسی که از آن استفاده میکند: ویژگی نمایهٔ اتصال است، نه چیزی که باید تنظیمش کنید.
Vision معمولاً در کنار REALITY بحث میشود چون به دو نیمهٔ متفاوت از یک مسئله میپردازند. REALITY برقراری اتصال را عادی جلوه میدهد؛ Vision آنچه را پس از آن رخ میدهد عادی جلوه میدهد. هرکدام بهتنهایی شکافی باقی میگذارند که دیگری پوششش میدهد.
پرسشهای پرتکرار
آیا XTLS از TLS ساده کمامنتر است؟
برای ترافیکی که به آن اعمال میشود، نه. عبوردادن فقط جایی به کار میرود که محتوا پیشاپیش توسط برنامه سرتاسری رمزگذاری شده باشد، پس لایهای که کنار گذاشته میشود از دادهای محافظت میکرد که در هر حال برای تونل خوانا نبود. ترافیک بدون رمزگذاری خودش، رمزگذاری تونل را حفظ میکند.
تفاوت XTLS Vision با حالتهای قدیمیتر XTLS چیست؟
حالتهای جریان پیشین به عبوردادن میرسیدند اما معلوم شد ویژگیهای قابلتشخیص خودشان را دارند. Vision بازنگریای است که به آنها میپردازد، عمدتاً با لایهگذاری بخش ابتدایی نشست، جایی که الگوی طول TLS تودرتو بیش از همه قابلمشاهده است.
آیا به هر دوی REALITY و Vision نیاز دارم؟
آنها مسائل متفاوتی را حل میکنند: REALITY به نحوهٔ برقراری اتصال و پاسخ نقطهٔ پایانی به یک غریبه میپردازد، Vision به شکل ترافیک پس از جاریشدن. معمولاً با هم به کار میروند چون هرکدام شکافی باقی میگذارد که دیگری پوششش میدهد.