WebRTC چیست و چه کاربردی دارد؟!

در مطلب قبلی اشاره کوتاهی به فناوری WebRTC و گفته شد یک واسط برنامه نویسی محبوب برای ارسال داده‌ها و ارتباط مستقیم بین مروگرهاست. WebRTC شامل تماس‌های صوتی و تصویری، ویدیو کنفرانس، اشتراک گذاری فایل‌ها و ... میشود و خیلی از سایت‌‌های شناخته شده از آن استفاده میکنند. این فناوری توسط مروگرهایی مثل کروم و فایرفاکس پشتیبانی میشود اما خب چه ربطی به کاربران VPN دارد؟!


قبل از جواب دادن به این سوال بهتر است کمی بیشتر درباره این تکنولوژی بدانیم:


 WebRTC چیست؟!

GIPS، یک شرکت نرم افزاری فعال در زمینه VoIP (پروتکل انتقال صدا بر بستر اینترنت) بود که در سال 2010 با مبلغ هنگفتی توسط شرکت گوگل خریداری شد. شرکت GIPS توانسته بود بسیاری از اجزای مورد نیاز Real Time Communications یا همان RTS را فراهم کند. گوگل این تحقیقات را تکمیل و یکسال بعد از یک فناوری به اسم WebRTC رونمایی کرد که هدفش ارتباط زنده صوتی و تصویری بدون واسطه بود.

بطور خلاصه، WebRTC یک فناوری گسترده Open source (منبع باز) است که امکان ارتباطات آنی و در لحظه (Real-Time Web) را بدون نیاز به هیچ پلاگین و نرم افزار جانبی فراهم میکند. 

برای تکمیل تعریف بالا، WebRTC فقط یک واسط برنامه نویسی نیست و شامل چندین API میشود که با بکار گیری آنها میتوان داده‌ها را در لحظه بین مروگر‌های دسکتاپ و گوشی‌های موبایل منتقل کرد! تعداد APIهای WebRTC کم نیست و هر کدام وظیفه تکمیل یک بخش را دارند. از مهمترین آنها میتوان به موارد زیر اشاره کرد:

GetUserMedia: دسترسی به دوربین و میکروفون کاربران

PeerConnection: امکان ارسال و دریافت مستقیم فایل‌های رسانه‌ای

DataChannels: انتقال داده‌های دلخواه بین طرفین در مروگر‌ها

چه مرورگرهایی از WebRTC پشتیانی میکنند؟

با وجود APIهای مختلف، امکان پشتیبانی از همه آنها در مروگرها و سیستم عامل‌های مختلف وجود ندارد. البته گوگل و فایرفاکس نسبت به بقیه پشتیبانی بیشتری را به عمل آورده اند و خب در زمینه‌هایی هم ناقص کار میکنند. بطور کلی امکان استفاده از WebRTC در این مروگر‌ها وجود دارد:

ارتباط بین WebRTC و کاربران VPN

در WebRTC بصورت مستقیم بین مرورگر و برنامه‌های موبایل به انتقال اطلاعات پرداخته میشود. اینکار باعث نادیده گرفته شدن تنظیمات شبکه و در نتیجه موجب افشا سازی IP واقعی حتی در صورت استفاده از VPN میشود! اتفاقی که به آن WebRTC Leak میگویند، از طریق نشت IP ناشی از WebRTC بوجود می‌آید. این یعنی وبسایت‌ها میتوانند آدرس IP واقعی ما را درخواست کنند و به آن دسترسی داشته باشند.

اکثر فیلترشکن‌های رایگان یا حتی مطرح فقط آدرس IP ما را مخفی میکنند و نمیتوانند جلوی این نشت را بگیرند. از آنجایی که بحث حریم خصوصی در میان است، برای جلوگیری از این مسئله باید WebRTC یا کد‌های جاوا اسکریپت در مرورگر  را غیرفعال کرد.

غیرفعال کردن WebRTC در مرورگرها

برای فایرفاکس مراحل زیر را دنبال کنید:

۱. در نوار سرچ، آدرس about:config را وارد و اینتر بزنید.

۲. در صفحه ای که باز میشود، دکمه Accept the Risk and Continue را انتخاب کنید.

۳. در بخش جستجوی پنجره جدید، عبارت media.peerconnection.enabled را تایپ کنید، حالا با فشردن دکمه Toggle در سمت راست، باید مقدار ستون از "Value" به "false" تغییر پیدا کند، تمام :)

در گوگل کروم تنظیماتی وجود ندارد و باید از افزونه‌ها استفاده کرد. با وجود گستردگی پلاگین‌ها در این زمینه، دو افزونه خوب که خودم هم از آنها استفاده کرده‌ام، معرفی میکنم :)

۱. پلاگین NoScript

216 SMART KPI database 2020 | Excel-versie | leansixsigmatools.nl لینک دانلود: فایرفاکس __ گوگل کروم

این افزونه تنظیمات زیادی دارد و در مروگر تور بصورت پیشفرض فعال است، در کل یک پلاگین عالی با امکان تغییر مقادیر و اعمال تنظیمات دلخواه برای هر وب‌سایت :)

۲. پلاگین WebRTC Leak Shield

216 SMART KPI database 2020 | Excel-versie | leansixsigmatools.nl لینک دانلود: فایرفاکس __ گوگل کروم

بعد از نصب تنها با یک کلیک از نشت IP جلوگیری میکند، یک پلاگین خوب برای کسانی که حوصله بالا پایین کردن تنظیمات مختلف را ندارند :)

در مروگر‌های سافاری و اینترنت اکسپلورر هنوز به طور کامل این فناوری پیاده نشده است + هنوز کسی از Internet Explorer استفاده میکند؟!! :/

آزمون WebRTC Leak Test چیست؟

این تست مشخص میکند چه اطلاعاتی از طریق پورت WebRTC مثل نوع دستگاه، موقعیت مکانی و ... درز پیدا میکند. با کمک این آزمون‌ها متوجه میشویم که آیا نیازی به غیرفعال WebRTC است یا خیر؟ در ادامه لینک دو وبسایت برای اینکار معرفی میشود که فقط کافیست وارد آنها بشوید:

بعد از وارد شدن، نتیجه آزمون به همراه آدرس IP و اطلاعات اضافه نمایش داده میشود، برای اینکه متوجه شوید که در خطر نشت IP هستید، نباید پنجره زیر را در ابتدای ورود مشاهده کنید:

البته با فعال کردن پلاگین‌های گفته شده، پنجره Warning دیگر دیده نمیشود :)

برای رفتن به این لینک باید از VPN استفاده کرد. در بخش WebRTC IP Address Detection و کنار گزینه Public IP Address نباید IP واقعی نوشته شده باشد.

 اگر مراحل گفته شده را انجام داده باشید، اینبار عبارت n/a دیده میشود.

جمع بندی

نوشتن این مطب نیازمند مدت زمان قابل توجه‌ای بوده است. WebRTC یک مبحث گسترده و در عین حال سعی شده مختصر و مفید اما کاربردی در موردش صحبت شود. در ضمن با فاش شدن آدرس IP عمومی شما، اطلاعات کلی مثل محدوده تقریبی، نوع اینترنت و نام ISP قابل دریافت است. با داشتن یک فایروال، آنتی ویروس و سیستم عامل مطمئن جای زیادی برای نگرانی نیست. اگر موقع بازدید از وبسایت‌ها با VPN اهمیت زیادی به حریم خصوصی میدهید، پس از غیرفعال بودن WebRTC مطمئن شوید :)