REALITY چیست؟
تونلهایی که درون TLS پنهان میشوند یک ضعف تکرارشونده دارند: گواهی و نام دامنهای که ارائه میکنند. REALITY طراحیای است که این ضعف را با نداشتنِ اصلاً گواهی از آنِ خود، حذف میکند.
مشکلی که REALITY به آن میپردازد
یک تونل متعارف پوشیده در TLS به یک دامنه و یک گواهی نیاز دارد. همین نیاز زنجیرهای از نشانههای کوچک میسازد که هیچکدام بهتنهایی مرگبار نیستند اما در کنار هم نقطهٔ پایانی را قابلشناسایی میکنند.
- دامنه ثبت شده است، و ثبت یک سابقهٔ عمومی با تاریخ، یک ثبتکننده و اغلب الگویی مشترک با دامنههای دیگری است که برای همان هدف ساخته شدهاند.
- گواهیهای مورد اعتماد عمومی در گزارشهای Certificate Transparency منتشر میشوند که هر کسی میتواند در آنها جستوجو کند. تاریخچهٔ گواهی یک دامنه خصوصی نیست.
- دامنه باید به نشانی نقطهٔ پایانی ترجمه شود، پس آن دو برای همیشه در DNS به هم گره خوردهاند.
- نام میزبان بهصورت آشکار در دستدادن اعلام میشود، پس میتوان آن را با فهرستی تطبیق داد.
- از همه تعیینکنندهتر: اگر سامانهای بدون اعتبارنامهٔ معتبر خودش به نقطهٔ پایانی وصل شود، یک سرور سادهلوح طوری رفتار میکند که هیچ وبسرور عادیای نمیکند.
هرکدام از اینها را میتوان تخفیف داد — از دامنهای قدیمی استفاده کرد، از مرجع صدور گواهی با نظارت کمتر، دامنه را از فهرستهای عمومی دور نگه داشت. هیچکدام را نمیتوان حذف کرد، چون سروری که گواهی خودش را برای دامنهٔ خودش نگه میدارد، بنا به تعریف، چیزی متمایز است که میتوان یافتش.
ایدهٔ اصلی
REALITY مسئله را وارونه میکند. بهجای گرفتن گواهیای که بعد باید بیآزار جلوه داده شود، هویت یک وبسایت حقیقی، نامرتبط و پرمخاطب را قرض میگیرد — و وقتی کسی بدون اعتبارنامهٔ معتبر وصل میشود، همان وبسایت حقیقی را به او تحویل میدهد.
کلاینت یک سایت واقعی را اعلام میکند
دستدادن TLS را با نامبردن دامنهٔ پرمخاطب و قانونیای که گرداننده انتخاب کرده آغاز میکند. برای ناظر، این بازدیدی عادی از یک سایت عادی است.
سرور به آن سایت واقعی بازپخش میکند
نقطهٔ پایانی دستدادن را به مقصد حقیقی میفرستد، پس گواهیای که بازمیگردد گواهی واقعی همان سایت است، بهدرستی امضاشده و با تاریخچهٔ واقعی در Certificate Transparency. هیچ گواهیای هرگز برای تونل صادر نشده است.
کلاینت مجاز خود را درون دستدادن اثبات میکند
کلاینتی که کلید گرداننده را دارد یک مقدار احراز هویت را درون میدانهایی که دستدادن پیشاپیش حمل میکند جاسازی میکند. نه پیام اضافهای هست و نه رفتوبرگشت اضافی؛ ناظر فقط تبادل عادی را میبیند.
مسیرها از هم جدا میشوند
سرور با شناختن یک کلاینت معتبر، نشست را به دست میگیرد و تونل را حمل میکند. با دیدن هر چیز دیگری — یک مرورگر، یک پویشگر، یک کاوشگر — بازپخش را ادامه میدهد و بازدیدکننده صرفاً به وبسایت واقعی میرسد.
این چه چیزی را حذف میکند
| نشانه | نتیجه |
|---|---|
| جستوجو در Certificate Transparency | چیزی برای یافتن نیست — هیچ گواهیای صادر نشده. |
| تاریخچهٔ ثبت دامنه | متعلق به سایت قرضگرفتهشده است، نه به گرداننده. |
| نام میزبان درون دستدادن | سایتی پرمخاطب را نام میبرد که فهرستسیاهکردنش گران است. |
| بررسی اعتبار گواهی | قبول میشود — گواهی واقعیِ یک سایت واقعی است. |
| کاوش فعال | کاوشگر به سایت واقعی میرسد و چیز غیرعادیای نمیبیند. |
| اعتبار نشانی نقطهٔ پایانی | بدون تغییر. REALITY به این نمیپردازد. |
| تحلیل حجم و زمانبندی ترافیک | بدون تغییر. یک جریان بزرگ و پیوسته به یک نشانی همچنان یک جریان بزرگ و پیوسته است. |
دو سطر آخر مهماند. REALITY پاسخ قدرتمندی به شناسایی از راه دستدادن و کاوش است. دربارهٔ نشانیای که به دلایل دیگر در فهرست سیاه قرار گرفته کاری نمیکند، و دربارهٔ تحلیل آماری اینکه چه حجمی به کجا میرود هم همینطور. هر توصیفی که آن را راهحلی کامل جلوه دهد، اغراق کرده است.
محدودیتها و ملاحظات صادقانه
- انتخاب سایت قرضگرفتهشده اهمیت زیادی دارد. باید آنقدر پرمخاطب باشد که ترافیک به سمتش عادی جلوه کند، از دید آن شبکه مقصدی موجه باشد، و از نقطهٔ پایانی در دسترس باشد. انتخاب بد خودش یک نشانه است.
- یک بُعد اخلاقی هم دارد: نام سایت قرضگرفتهشده بدون دخالت خودش استفاده میشود. آن سایت فراتر از دستدادنهایی که پیشاپیش آمادهٔ پاسخدادن به آنها بوده ترافیکی از طرف شما حمل نمیکند، اما ارزش دارد روشن باشد که طراحی همین کار را میکند.
- در برابر گردانندهای که سایت قرضگرفتهشده را یکسره مسدود کند، یا شبکهای که فقط فهرست مشخصی از مقصدها را مجاز بداند، محافظتی نمیدهد.
- مانند همهٔ چنین طراحیهایی، پاسخی به دستهبندهایی است که اکنون وجود دارند. پژوهش تشخیص متوقف نمیشود، و پاسخ به آن هم همینطور.
راه معقول اندیشیدن به REALITY این است که آن را افزایشی چشمگیر در هزینهٔ شناسایی یک نقطهٔ پایانی بدانیم، نه نامرئیشدن. مسیرهای گواهی و کاوش را بهطور متقاعدکننده میبندد. مسیرهایی که نمیبندد همچنان باز میمانند.
پرسشهای پرتکرار
آیا REALITY به نام دامنهٔ اختصاصی نیاز دارد؟
خیر، و نکته همین است. دستدادن خود را در برابر یک سایت حقیقی شخص ثالث تکمیل میکند و گواهی واقعی همان سایت را ارائه میدهد، پس نه دامنهای برای ثبت هست و نه گواهیای که در گزارش شفافیت پیدا شود.
آیا REALITY همان domain fronting است؟
خیر. domain fronting از ناهماهنگی میان نام میزبان در دستدادن TLS و نام میزبان در درخواست HTTP درون آن استفاده میکرد، که ارائهدهندگان بزرگ بعداً جلویش را گرفتند. در REALITY چنین ناهماهنگیای وجود ندارد: دستدادن واقعاً به سایت نامبرده میرود و بازدیدکنندگان بدون احراز هویت واقعاً به آن میرسند.
آیا REALITY قابلتشخیص است؟
مسیرهای مبتنی بر گواهی و مبتنی بر کاوش را حذف میکند، که همانهایی هستند که بیشتر سامانههای فیلترینگ به آنها تکیه میکنند. اعتبار نشانی و تحلیل آماری ترافیک را حذف نمیکند، پس هزینهٔ تشخیص را بالا میبرد بهجای آنکه امکانش را از میان بردارد.