دامین فرانتینگ (DOMAIN FRONTING) به زبان ساده
برای آشنایی با اصطلاح دامین فرانتینگ و نحوهی استفاده از آن در اپلیکیشنهای پیامرسان و یا فیلترشکنها، ابتدا باید با نحوهی تعامل اپلیکیشنها و سرورها و همینطور با شیوهی عملکرد سیستم فیلترینگ آشنا شویم.
دامین فرانتینگ به کاربر این امکان را میدهد تا با استفاده از رمزگذاری SSL/TLS و در پوششِ اتصال به یک سایت معروف مانند گوگل، دادههای سایت یا سرویس دیگری را دریافت کند.
۱. بازدید از سایت بدون استفاده از HTTPS
برای بازدید از سایتها و سرویسهایی که از رمزگذاری استفاده نمیکنند، اپلیکیشن یا مرورگر ابتدا باید آدرسِ دامنه را به آیپی (IP) تبدیل کند و برای این کار یک درخواست DNS به سرویسهای نام دامنه (مانند سرویس نام دامنه راهاندازی شده توسط گوگل، سرویس OpenDNS و یا حتی سرویسهای مشابه که سرویسدهندههای اینترنت به کاربران خود ارائه میکنند) ارسال میشود. فرض کنید که قصد مشاهدهی سایت 9gag.com را داریم، برای این منظور ابتدا از سرویسهای DNS میپرسیم که آیپی متناظر با این دامنه چیست. پس از دریافتِ آدرس آیپی (که در این مثال 151.101.194.133 است) اپلیکیشن و یا مرورگر، درخواستِ دریافتِ اطلاعات را به این آیپی میفرستد و بازدید از سایت و استفاده از آن انجام میشود.
سیستم فیلترینگ ایران از روشهای مختلف برای ایجاد محدودیت استفاده میکند. در یکی از این روشها، فیلترینگ در سطح DNS انجام میشود و در ابتدای روند، فیلترینگ با شنودِ درخواستِ آدرس آیپی از سرویسهای DNS، متوجه میشود که کاربر قصد بازدید از چه سایتی را دارد و به این طریق میتواند جلوی درخواست آدرس آیپی را بگیرد و یا اینکه جواب اشتباه به کاربر برگرداند. در نتیجه کاربر یا آدرسِ آیپی دریافت نخواهد کرد و یا اینکه آیپی سرورهای فیلترینگ (مثلا 10.10.34.3) را به جای آدرس اصلی دریافت میکند و صفحهی معروف فیلترینگ به جای سایت اصلی به او نمایش داده خواهد شد.
در روش بعدی، سیستم فیلترینگ ایران قادر است تا همهی درخواستها به یک آیپی خاص را مسدود کند که در این صورت همه سایتهایی که از این آیپی مشترک استفاده میکنند، فیلتر خواهند شد. این روش منجر به فیلتر شدن بی دلیلِ شمار زیادی از سایتها و نارضایتی کاربران اینترنت خواهد شد.
همچنین در صورت عدمِ رمزگذاری اطلاعات رفت و برگشتی، سیستم فیلترینگ امکان دسترسی به محتوای سایت را نیز دارد و بدون اینکه همهی سایت فیلتر باشد قادر است تا فقط صفحههای خاصی از یک سایت را فیلتر کند، و یا اینکه یک سایت خاص بر روی یک آیپی را فیلتر کند، بدون اینکه سایتهای دیگر روی همان آیپی از دسترس خارج شوند.
۲. بازدید از سایت با HTTPS
در نمونه سایتها و سرویسهایی که از HTTPS استفاده میکنند، کاربر همچنان نیاز دارد که درخواست DNS ارسال کند و آدرس آیپی سرور را دریافت کند. از این مرحله به بعد، اتصال کاربر و سرور رمزگذاری شده خواهد بود و سیستم فیلترینگ در حالت عادی امکانِ مشاهدهی اطلاعات و محتوای درخواستها را نخواهد داشت.
اپلیکیشن یا مرورگر، پس از دریافت آیپی، به آن متصل شده و ارتباط رمزگذاری شده را شروع میکند. در این ارتباط آدرسِ صفحههای مشاهده شده توسط کاربر، قابل شنود نیست و سیستم فیلترینگ فقط متوجه رفت و برگشت اطلاعات از سمت کاربر به یک آیپی خاص است. برای مثال تصویرها و صفحههایی که کاربر در اینستاگرام مشاهده میکند قابل شنود نیست و سیستم فیلترینگ فقط متوجه رفت و برگشت اطلاعات بین سرورهای اینستاگرام و کاربر است.
بنابراین سرویس فیلترینگ در این نوع ارتباط رمزگذاری شده، دو راه دارد. یا شنود و دستکاری درخواستهای DNS بر اساس سایتی که کاربر درخواست داده و یا مسدود کردنِ دسترسی به آیپی موردنظر که اطلاعات با آن در حال رد و بدل است. همچنین در این حالت با توجه به رمزگذاری اطلاعات، امکان فیلتر کردن یک صفحه یا محتوای خاص از یک سایت امکانپذیر نیست.
۳. دامین فرانتینگ
در اتصالهایی که با HTTPS انجام میشود، آدرسِ سایت مورد نظرِ کاربر در دو بخش مختلف به سرور اطلاع داده می شود. در این حالت، سرور میتواند سایتهای مختلفی را تنها با یک گواهینامه (Certificate) رمزگذاری شده پشتیبانی کند. با استفاده از این روش، سایتها و سرویسهای بزرگ به راحتی قادر به پشتیبانی سایتهای جانبی خواهند بود.
در سرویسهای بزرگی مانند گوگل که سایتها و دامنههای مختلفی برای بخشهای گوناگون خود دارند، به منظور استفادهی آسان و همچنین متمرکز کردن اتصالها، این امکان وجود دارد که آیپی آدرس google.com را درخواست کرد و به آن درخواستِ شروعِ اتصال رمزگذاری شده را فرستاد و بعد درخواست کرد تا آدرس youtube.com نمایش داده شود.
این روش و قابلیت دامین فرانتینگ نامیده میشود و فقط محدود به گوگل نیست، بلکه در حال حاضر سرویسهای بزرگ دیگری چون آمازون و مایکروسافت هم دامین فرانتینگ را فعال کردهاند. نکتهی مهم این است که این شرکتها، سرورهای ابری برای ارائه به عموم هم دارند. در واقع اگر یک اپلیکیشن از سرورهای گوگل و یا آمازون استفاده کند، این امکان را دارد که علاوه بر اتصال به آدرس خود، در ظاهر به آدرس گوگل هم متصل شود و پس از برقراری اتصالِ رمزگذاری شده، اطلاعات سایت خود را فراخوانی کند.
در ابتدای این نوشته سایت 9gag.com را مثال زدیم. با توجه به اینکه این سایت از سرویس آمازون استفاده میکند، شما با آدرسِ https://d3dsacqprgcsqh.cloudfront.net/ هم قابلیت دسترسی به اطلاعات 9gag را خواهید داشت.
با علم به فعال بودن دامین فرانتینگ، میتوان اتصالِ رمزگذاری شده را به اسم 9gag شروع کرد و سپس درخواست را برای هر سایت دیگری که از این زیرساخت استفاده میکند فرستاد. فیلترشکنها هم قادرند تا برای رسیدن به سرورهای خود و عبور از فیلترینگ از این قابلیت استفاده کنند. در نتیجه سیستم فیلترینگ قادر به تشخیص اینکه درخواست به آیپی فیلترشکن میرود نخواهد بود.
تعداد زیادی از اپلیکیشنها برای مخفی کردنِ مقصدِ نهایی اطلاعات رد و بد شده از دامین فرانتینگ استفاده میکنند. با این پنهانسازی میتوان به آسانی از سدِ سیستمهای فیلترینگ عبور کرد به این دلیل که در ظاهر به نظر میرسد کاربر در حالِ استفاده از جستجوی گوگل است و یا اطلاعاتی عادی از سایتی در زیرساخت آمازون را میخواند اما در عمل اطلاعات دیگری و به مقصد سایت دیگری روی این زیرساختها ارسال شده است.
اپلیکیشنهایی مانند تور، سایفون، سیگنال، لنترن و به تازگی تلگرام از دامین فرانتینگ برای عبور از فیلترینگ در کشورهایی مانند چین، ایران و روسیه استفاده میکنند.
*پینوشت: در این نوشته منظور از آدرس آیپی همان آدرس سرور است و وصل شدن به یک آیپی به معنای وصل شدن به آن سرور است. به منظور ساده کردن نوشته، آیپی و سرور را به یک معنا به کار بردهایم.