در «خاموشی دیجیتال ایران» چه کسانی میتوانند فیلترشکن بسازند؟
در میان بحثهای داغ درباره ابزارهای دور زدن فیلترینگ و کانفیگهای مختلف، کمتر به ساختار زیربنایی این فناوریها توجه میشود. آن هم در شرایطی که کمتر کسی به اینترنت بینالملل دسترسی دارد. در گفتوگو با...
تینا مزدکی- در روزهای انزوای کامل شبکه، تنها کسانی به اینترنت متصل میمانند که فیلترشکنشان از طریق یک «سرور واسطه داخلی» به اینترنت آزاد (سفید، سازمانی یا ماهوارهای) پل میزند. آرین اقبال، کارشناس شبکه، در این گفتوگو با خبرگزاری خبرآنلاین، مکانیزمهای پیچیده عبور از سد فیلترینگ و اقتصاد پشتپرده این محدودیتها را کالبدشکافی کرده است.
چه کسانی میتوانند اینترنت آزاد را در اختیار کاربران ایرانی قرار دهند؟
کسانی متصل میشوند که به اینترنت آزاد دسترسی دارند. این کارشناس در پاسخ به این پرسش که اکنون که شرایط کاملا متفاوت است این فرایند به چه صورتی انجام میشود توضیح داد: «با قطع شدن اینترنت، شرایط کاملاً متفاوت میشود و دیگر دسترسی مستقیم به سرورهای خارجی امکانپذیر نیست، به همین دلیل اتصالات مستقیم به خارج مسدود میشوند. در چنین وضعیتی، تمامی فیلترشکنهایی که فعال هستند، از یک سرور واسطه در داخل کشور استفاده میکنند که به اینترنت آزاد دسترسی دارد.»
به گفته این کارشناس روشهای دسترسی این سرورها به اینترنت آزاد به شرح زیر است:
-
دیتاسنترها: بخشی از این سرورها در دیتاسنترهایی مستقر هستند که به اینترنت سفید (بدون فیلتر) دسترسی دارند.
-
اینترنتهای سازمانی: برخی سازمانها به دلیل ماهیت فعالیت خود در ساعات کاری، از طریق تونلسازی (Tunneling) به شبکههای بینالمللی متصل میشوند که این بستر برای ایجاد فیلترشکن مورد استفاده قرار میگیرد.
-
استارلینک (Starlink): در این روش، طرف ارائهدهنده با ترکیب یک سرور داخلی و یک ترمینال استارلینک، ترافیک کاربران را از طریق اینترنت ماهوارهای مسیریابی میکند.
-
اینترنتهای مرزی: استفاده از سیمکارتها یا تجهیزات شبکه در مناطق مرزی برای دریافت اینترنت و اشتراکگذاری آن از طریق سرور داخلی.
-
آیپی استاتیک (IP Static): استفاده از اینترنتهای معمولی دارای آیپی استاتیک در سطح کاربری به عنوان سرور، برای ارائه خدمات فیلترشکن.
-
اشتراکگذاری از طریق مودمهای سیمکارتی: استفاده از سیمکارتهای اینترنت سفید یا پرو روی مودمهای سیمکارتی و تبدیل آنها به یک نقطه اتصال (Bridge) برای ارائه ویپیان از طریق سرورهای داخل ایران.
آنطور که این کارشناس توضیح میدهد: «بهرهگیری از تکنیکهایی مانند «لودبالانس» (Load Balancing) روی تعداد زیادی از سیمکارتها یا سرویسهای اینترنت سفید، یکی از روشهای مقیاسپذیر برای تأمین این زیرساختهاست. گردش مالی بالای این حوزه، که در برخی موارد از طریق تراکنشهای شفاف کریپتوکارنسی نیز قابل ردیابی است، امکان تأمین هزینههای بالای این زیرساختها را از روشهای مختلف از جمله خرید سیمکارتهای خاص یا سایر ابزارهای اقتصادی فراهم میکند.»
از مفهوم تونلینگ تا واقعیت VPN
اگر برای اتصال به اینترنت جهانی با مشکل روبهرو باشید اولین گزینهای که به ذهن شما میآید، VPN است اما اگر در شرایطی باشید که اینترنت کاملا ایزوله شده و راهی با خارج از مرزها ندارد؛ آن وقت سراغ بازار داغ به اصطلاح کانفیگها میروید. آرین اقبال کارشناس شبکه در ادامه میگوید در واقع کلمهای که کاربران به عنوان «کانفیگ» از آن یاد میکنند، فقط یک فایل تنظیمات برای کلاینتِ یک ابزارِ خاص است. بنابراین، کانفیگ به خودی خود چیز اورجینال یا خارقالعادهای نیست. اگر بخواهیم دقیقتر نگاه کنیم، ما باید از مفهوم گستردهتری به نام «تونلینگ» شروع کنیم. در واقع، تونلینگ یک واژه کلی است و VPNها یکی از مدلهای اجرای تونلینگ هستند و فیلترشکنها نیز در شاخههای خاصی از همین مفهوم قرار میگیرند.
به گفته این کارشناس، تونلینگ بسته به نیاز، در لایههای مختلف مدل شبکه (OSI) اتفاق میافتد. به صورت کلی، اکثر روشهای تونلینگ در یکی از سه لایه اصلی زیر رخ میدهند:
-
لایه دو (Data Link Layer)
-
لایه سه (Network Layer)
-
لایه اپلیکیشن (Application Layer / Layer ۷)
آنطور که این کارشناس شبکه میگوید تونلینگ در لایه دو (Data Link)، به دلیل ماهیتش، برای کاربردهای فنیتری در شبکه استفاده میشود. به عنوان مثال، در شبکههای دیتاسنتر (Data Centers) یا شبکههای توزیع محتوا (CDNs) که نیاز به یکپارچگی خاصی در شبکه دارند، از این لایه استفاده میشود. پروتکلهای قدیمی بسیاری هم در این لایه وجود دارند که اگرچه پایه و اساس کار هستند، اما در حال حاضر خارج از دایره بحثهای عمومی درباره ابزارهای دور زدن فیلترینگ قرار میگیرند.»
آرین اقبال، کارشناس امنیت شبکه، در ادامه گفت:« تونلینگ در لایه سه شبکه، دقیقاً همان مفهومی است که ما به عنوان «VPN واقعی» میشناسیم؛ پروتکلهایی نظیر OpenVPN، WireGuard و OpenConnect همگی در این دسته جای میگیرند. در این سطح، ما با مسیریابی مستقیم پکتهای IP سر و کار داریم. در واقع، هدف غایی و اصلی یک VPN، ایجاد یک شبکه خصوصی بر بستر شبکههای عمومیتر است؛ این شبکه عمومی میتواند اینترنت باشد، یا شبکههای گستردهتری مانند زیرساختهای اپراتورهای موبایل، ماهوارهای یا حتی شبکه ملی اطلاعات. هدف بنیادین VPN در این لایه، پیش از هر چیز، تأمین امنیت و خصوصیسازی دادههای در حال تبادل است.»
آرین اقبال میگوید: «اهمیت این لایه در محیطهای سازمانی و خدماتی به وضوح نمایان میشود؛ به عنوان مثال، یک بانک که نیاز دارد دادههای حساس مالی خود را از طریق شبکههای عمومی اپراتورها منتقل کند، یا شرکتی که قصد دارد اطلاعات مالی میان دو دفتر دورافتاده را به صورت ایمن به اشتراک بگذارد تا کارمندان بدون نگرانی به آن دسترسی داشته باشند، همگی متکی به تونلینگ لایه سه هستند. همینطور در حوزههای حساسی مانند ارائه خدمات احراز هویت یا APIهای ثبتاحوال برای استعلام اطلاعات افراد، استفاده از یک تونل امن برای جلوگیری از افشای دادهها ضروری است. اگر این ارتباطات بدون پروتکلهای لایه سه و تنها بر بستر خام اینترنت برقرار شوند، با مخاطرات جدی نظیر انواع حملات سایبری، شناسایی باگهای «روز صفر» (Zero-day) و آسیبپذیریهای امنیتی متعدد مواجه خواهند شد که میتواند کل زنجیره انتقال داده را در معرض نفوذ قرار دهد.»
آرین اقبال، کارشناس امنیت شبکه، در ادامه گفت:« نتیجه منطقی قرار دادن سرویسهای حیاتی مانند سیستمهای بانکی، صرافیها، کیفپولهای دیجیتال یا سامانههای حساس دولتی مانند ثبت احوال بر بستر اینترنت یا شبکه ملی اطلاعات، بدون هیچگونه لایه حفاظتی، قرار دادن آنها در معرض تهدیدات دائمی است. وقتی این سرورها بدون واسطه در دسترس هر کاربری که به شبکه اپراتور موبایل یا اینترنت عمومی دسترسی دارد قرار میگیرند، ریسک امنیتی به شدت افزایش مییابد؛ چرا که کافی است تنها یک آسیبپذیری ناشناخته (Zero-day) در سرویس کشف شود تا کل داراییها یا اطلاعات کاربران در خطر جدی قرار گیرد.»
چرا نباید هر تونلی را VPN نامید؟
حال این پرسش پیش میآید که استقرار یک سیستم در لایههای پایینتر شبکه (لایه دو و سه) چه مزیت فنی نسبت به لایههای بالاتر دارد، اقبال در پاسخ به این پرسش میگوید:«بهترین حالت برای عملکرد صحیح و بهینه VPNها این است که در لایه دو یا سه شبکه قرار بگیرند تا تمام فرآیند مسیریابی در درون آنها مدیریت شود. مزیت بزرگ این رویکرد در دو نکته نهفته است: نخست اینکه اپلیکیشنها اصلاً نیازی ندارند از وجود VPN مطلع باشند؛ آنها روند عادی فعالیت خود را پیش میگیرند و لایه امنیتی در زیرساخت شبکه، این مسیر را امنتر میکند. دوم اینکه استکِ شبکه (Network Stack) و ساختار کلی آن نیازی به تغییر یا دستکاری برای هماهنگی با نرمافزارها ندارد. در واقع، VPN یک بستر شفاف و مستقل برای اپلیکیشن فراهم میکند.»
او همچنین در پاسخ به این پرسش که چه زمانی با مفهوم «پروکسی» مواجه هستیم و تفاوت آن با VPN در چیست، نیز میگوید: «ما دستهای از روشهای تونلزنی داریم که به جای لایههای مسیریابی (لایه ۳) یا دیتالینک (لایه ۲)، در «لایه اپلیکیشن» مستقر میشوند؛ به این ابزارها دیگر VPN یا تونل نمیگوییم، بلکه «پروکسی» نامیده میشوند. تفاوت اصلی در این است که برای استفاده از پروکسی، خودِ اپلیکیشن باید آن را شناسایی و پشتیبانی کند. به عبارت دیگر، نرمافزار باید آگاه باشد که قرار است از طریق یک پروکسی با شبکه ارتباط برقرار کند. نمونههای بارز آن، پروتکل MTProto در تلگرام یا پروتکل معروف Socks۵ هستند. در اینجا برخلاف VPN که در لایه شبکه به صورت عمومی عمل میکند، پروکسی نیازمند همکاری مستقیم و پشتیبانی نرمافزارِ مقصد است تا بتواند بستههای داده را جابهجا کند.»
به گفته این کارشناس در لایه اپلیکیشن، برخلاف VPN، روال عادی ارسال دادهها تغییر میکند. اپلیکیشن در اینجا بسته داده اصلی خود را درون پروتکلی که پروکسی آن را میفهمد بستهبندی کرده و به سرور پروکسی ارسال میکند. سپس سرورِ پروکسی، بسته را باز کرده و از طرف اپلیکیشنِ مبدأ، درخواست را به سمت مقصد میفرستد. در نهایت، پاسخِ دریافتی مجدداً با همان پروتکل به سمت کلاینت بازگردانده میشود. به همین دلیل است که برای استفاده از پروکسی، حتماً اپلیکیشن باید آن را به صورت داخلی پشتیبانی کند؛ برخلاف VPN که در سطح شبکه مستقل عمل میکند.
به گفته اقبال برای کاهش دشواری پشتیبانی تکتک اپلیکیشنها از پروکسی، راهکار هوشمندانهای طراحی شده است: برخی نرمافزارها پروکسی را به عنوان ورودی دریافت کرده و خروجی آن را در قالب یک «VPN مجازی» به سیستمعامل ارائه میدهند. در این حالت، یک پروکسیِ لایه اپلیکیشن به یک VPN لایه سه تبدیل شده است. نمونه بارز آن در ویندوز، نرمافزار Proxifier است و در اندروید نیز تقریباً تمام ابزارهایی که با نام «کانفیگ» میشناسیم، از همین منطق پیروی میکنند؛ یعنی یک اتصال پروکسی ایجاد کرده و آن را در قالب یک VPN به سایر اپلیکیشنهای گوشی «تحمیل» میکنند تا دیگر نیازی به تنظیمات اختصاصی برای هر نرمافزار نباشد.
چرا حجم مصرف داده جهش کرده است؟
آرین اقبال، کارشناس امنیت شبکه، در ادامه گفت:« بزرگترین چالش در اینجا، افزایش «سربار» (Overhead) ترافیک شبکه است. وقتی بستهها درون بستههای دیگر قرار میگیرند (Encapsulation)، عملاً چندین لایه بستهبندی روی هم سوار میشوند که باعث میشود حجم ترافیک و پردازشِ لازم برای هر بسته به شدت بالا برود. اگرچه این کار باعث میشود رفتار شبکه برای سیستمعامل بسیار شبیه به یک VPN لایه سه واقعی باشد و راحتی کاربر افزایش یابد، اما از نظر فنی با افت کارایی به دلیل سربارِ سنگینِ بستهبندیهای تودرتو روبهرو خواهیم شد. در این صورت، برای رسیدن به سهولت کاربری، هزینه فنی بالاتری از بابت مصرف منابع و پهنای باند پرداخت میشود.»
کانفیگ (Config) دقیقاً چیست؟
این کارشناس در پاسخ به این پرسش که چرا واژه «کانفیگ» (Config) برای توصیف فیلترشکنها و ابزارهای دور زدن فیلترینگ، اصطلاح دقیقی نیست، میگوید: «باید بین «ابزار» و «تنظیمات» تفکیک قائل شویم. وقتی شما یک اپلیکیشن کلاینت (مانند V۲RayNG) را روی اندروید نصب میکنید، در واقع در حال استفاده از نرمافزاری هستید که با تکنیکهای پیچیده، یک پروکسی یا پروتکل خاص را به یک «VPN لایه سه» تبدیل میکند تا سیستمعامل بتواند آن را درک و مدیریت کند. در این میان، آنچه کاربران به عنوان «کانفیگ» میشناسند، صرفاً یک «فایل تنظیمات» (Configuration File) ساده برای همان نرمافزار کلاینت است.»
او ادامه توضیح میدهد: «این فایلها در واقع «شناسنامه اتصال» هستند. نرمافزارِ کلاینت برای برقراری ارتباط با سرورِ مقصد، نیاز به اطلاعاتی حیاتی دارد: آدرس سرور (IP)، شماره پورت، نوع پروتکل مورد استفاده، رمز عبور و سایر پارامترهای امنیتی؛ فایل کانفیگ صرفاً بستهای است که این دادهها را برای نرمافزار ترجمه میکند. بنابراین، کانفیگ خود «VPN» یا «پروتکل جادویی» نیست؛ بلکه صرفاً مشخصات فنی یک نقطه اتصال است که به نرمافزار میگوید چگونه باید با سرور مقصد صحبت کند.»
آرین اقبال، کارشناس امنیت شبکه، در ادامه گفت:«پلتفرمهایی مثل اندروید و آیفون به دلیل ساختار ایزوله (Sandbox) که برای اپلیکیشنها دارند، به شما اجازه میدهند تعیین کنید که ترافیک هر اپلیکیشن خاص از داخل VPN عبور کند یا خیر. در مقابل، پلتفرمهای دسکتاپ مثل ویندوز، لینوکس و مک، اگرچه پیادهسازی آن پیچیدهتر است، اما در سطح کلانتری عمل میکنند. در آنها شما میتوانید ترافیک کل شبکه را از داخل یک تونل VPN عبور دهید؛ تونلی که میتواند یک «VPN لایه سه واقعی» باشد یا یک «پروکسی لایه هفت» که با تکنیکهای جانبی به یک VPN لایه سه تبدیل شده است.»
انواع تونلها برای اتصال کاربر
به گفته این کارشناس یک سری از این تونلها، تونلهای اصطلاحاً پوینت تو پوینت (Point-to-Point) هستند که به آنها تونلهای پیتوپی (P۲P) گفته میشود و یک سری از این تونلها به صورت کلاینت سرور کار میکنند. کلاینت که زیاد هویتش از نظر قرارگیری در شبکه مهم نیست، سرور را میشناسد، به سرور ریکوئست میزند، سرور احراز هویتش میکند و اتصال انجام میشود؛ یعنی فقط سرور است که شناختهشده است و کلاینتها در آن فقط اکانت دارند. مدل پوینت تو پوینت به این شکل است که دو طرف باید همدیگر را بشناسند به لحاظ شبکه؛ یعنی دو طرف باید از طریق شبکه همدیگر را بتوانند مستقیماً ببینند، که اصطلاحاً به آن ریچبل (Reachable) میگویند؛ یعنی آیپیشان اگر داخل اینترنت است، آیپی پابلیک باشد و اگر در شبکه خصوصی است، آیپیهایشان همدیگر را بشناسند.
آرین اقبال، کارشناس امنیت شبکه، در ادامه گفت:«معمولاً تونلهای پوینت تو پوینت برای کارهای فنی شبکه استفاده میشود؛ تونل ویاکسلن (VXLAN) و تونل جیآرای (GRE) از این دست تونلها هستند که برای سیدیانها (CDN) و برای دیتاسنترها استفاده میشود، برای اینکه سایتهای مختلف را به همدیگر وصل کنند، چون دو طرف میدانند آیپی همدیگر چیست و هدف این است که این دو تا به لحاظ لایه دو، در یک نتورک قرار بگیرند.»
او در ادامه گفت:«تونلهای کلاینت سروری تونلهایی هستند که معمولاً ما به عنوان ویپیان (VPN) یا فیلترشکن استفاده میکنیم که انواع خیلی زیادی دارند و بر اساس پروتکلشان شناخته میشوند. به عنوان مثال، وایرگارد (WireGuard)، اوپن ویپیان (OpenVPN)، اوپن کانکت (OpenConnect) و اساسال ویپیان (SSL VPN) همگی پروتکلهایی هستند که در این دسته قرار میگیرند. این پروتکلها اغلب در لایه سه شبکه فعالیت میکنند و تفاوت آنها در نحوه مذاکره (Negotiation) اولیه، شکل پکتها، سربار (Overhead) و نوع رمزنگاری آنهاست.»
آنطور که اقبال توضیح میدهد، اوپن ویپیان (OpenVPN) یک مقدار پیچیدگی بالاتری دارد و به تبع آن، سربار (Overhead) بالاتری نیز ایجاد میکند؛ با این وجود پروتکل بسیار معروفی است. در مقابل، اساسال ویپیان (SSL VPN) بهگونهای است که ساختار ترافیک آن شباهت زیادی به ترافیک اساسال (SSL) و اچتیتیپیاس (HTTPS) سایتها دارد. او میگوید: «در واقع هر کدام از اینها با هدف مشخصی ساخته شدهاند. برای مثال، هدف اولیه از طراحی اساسال ویپیان این بود که بتوانند همزمان سایت و ویپیان را روی یک نقطه ارائه کنند. بعدها استفاده از آن به عنوان فیلترشکن به این دلیل رواج یافت که هندشیک (Handshake) اولیه آن شباهت زیادی به ترافیک اچتیتیپیاس دارد و همین موضوع شناسایی آن را برای سیستمهای فیلترینگ سختتر میکند. اما مثلاً پروتکلی مثل وایرگارد (WireGuard) بسیار ساده است؛ بهطوری که حتی با داشتن یک پکت هم میتوان تشخیص داد که وایرگارد است.»
این کارشناس در پاسخ به اینکه آنچه کانفیگ خطاب میشود دقیقا چیست؟ توضیح میدهد: «هر پروتکل ویپیان (VPN) که استفاده بکنید، به یک سری تنظیماتی برای کلاینتش نیاز دارید که بتوانید به آن وصل بشوید؛ مثلاً آیپی سرور، دامین سرور، یوزرنیم، پسورد، نوع رمزنگاری و غیره؛ این پارامترها را «کانفیگوریشن» (Configuration) یا «کانفیگ» مینامیم.»
دور زدن سد فیلترینگ و اقتصاد پشت پرده
با توجه به گفته این کارشناس امنیت شبکه، تمام این تکنیکها وجود دارند تا کاربر از آن استفاده کند و از سد سیستم فیلترینگ عبور کند؛ افرادی که «فیلترشکن» ارائه میکنند، اکستنشنهای مختلفی را به هم وصل میکنند؛ مثلاً «ویلس» به اضافه «رِیلیتی». در نتیجه وقتی گفته میشود که افراد کانفیگ میسازند، در واقع سرور فیلترشکنی را ستاپ میکنند و کانفیگوریشن مورد نیاز آن را به کاربر ارائه میکنند.
او در مورد اینکه چه کسی میتواند فیلترشکن بسازد توضیح میدهد: «در شرایط عادی، هر کسی میتواند سروری تهیه کند و برای خودش فیلترشکن بسازد. به دو دلیل ممکن است افراد سرور ایران را هم تهیه کنند؛ دلیل اول تفاوت رفتار اپراتورها و دلیل دوم استیبلتر کردن سیستم از طریق تونلزنی بین سرور داخلی و خارجی است. همچنین برای رفع مشکل «ایراناکسس»، سرور ایران به عنوان یک مسیریاب هوشمند عمل میکند تا کاربر همزمان به سایتهای داخلی و خارجی دسترسی داشته باشد.»
۲۲۷۲۲۷