كيف يمكن أن يكشف WebRTC عنوان IP الخاص بك؟
يتيح WebRTC للصفحة فتح اتصالات مباشرة، ولذلك يجمع المتصفح مرشّحات ICE — عناوينه المحلية، وعنوانه العام عبر خادم STUN — وتستطيع أي صفحة قراءتها دون استئذان. ويحدث التسريب حين تكشف هذه المرشّحات ما يُفترض أن يخفيه الـ VPN: عنواناً عاماً غير عنوان الـ VPN، أو عنواناً محلياً صريحاً. ويحدد RFC 8828 ما تكشفه المتصفحات افتراضياً، والمتصفحات الحالية تستبدل بالعناوين المحلية أسماء .local عشوائية (mDNS).
كيفية استخدام اختبار تسريب WebRTC
- شغّل الـ VPN إن أردت اختباره، ثم اضغط «شغّل اختبار WebRTC».
- انتظر ثواني بينما يجمع المتصفح مرشّحاته في جولتين.
- اقرأ النتائج أولاً ثم الجدول: الصفوف الموسومة «عنوانك العام (عبر STUN)» هي ما تستطيع أي صفحة معرفته عن اتصالك.
- إن ظهر تسريب ففعّل حماية التسريب في تطبيق الـ VPN أو قيّد WebRTC في المتصفح (راجع «كيف توقف تسريب WebRTC»)، ثم أعد الاختبار.
مزايا اختبار تسريب WebRTC
- يعمل داخل متصفحك عبر واجهة RTCPeerConnection القياسية، بالطريقة نفسها التي تعمل بها صفحات مكالمات الفيديو
- جولتان — مع خادم STUN العام من Cloudflare (stun:stun.cloudflare.com:3478) ودون أي خادم STUN — للفصل بين العناوين العامة والمحلية
- يصنّف كل مرشّح: عنوان محلي، أو اسم .local مخفي (mDNS)، أو عنوان عام عُرف عبر STUN، أو عنوان ربط محلي، أو عنوان مُرحِّل
- يقارن العنوان العام المعروف عبر STUN بالعنوان الذي تخرج منه حركة الويب كما يراه خادم متقن، بما في ذلك الفرق بين IPv4 وIPv6
- يقول صراحةً متى يكون WebRTC غير متاح أو محجوباً، ومتى تعذّر الوصول إلى خادم STUN
- لا يستخدم مُرحِّل TURN أبداً، ولا يرسل المرشّحات إلى أي جهة
المدخلات والمخرجات
المدخلات
- لا شيء تكتبه: اضغط «شغّل اختبار WebRTC». يتصل متصفحك بـ stun:stun.cloudflare.com:3478 مرة واحدة وبخادم متقن مرة واحدة.
- إعدادات WebRTC في متصفحك وإضافاته وحالة الـ VPN — يقرؤها الاختبار كما هي في تلك اللحظة.
المخرجات
- الملخص — عدد المرشّحات المجمّعة، والعناوين العامة الظاهرة عبر WebRTC، والعناوين المحلية المكشوفة، وعنوانك العام كما يراه الخادم.
- المرشّحات — كل مرشّح مع الجولة التي جاء منها ونوعه وعنوانه وبروتوكوله وما يكشفه.
- النتائج — هل يتسرّب عنوان محلي أو عنوان عام مختلف، ولماذا.
- كيف توقف تسريب WebRTC — إعدادات المتصفح والـ VPN التي ينبغي تغييرها.
مثال على اختبار تسريب WebRTC
VPN يلتفّ عليه WebRTC
الإدخال:
VPN on — public IP seen by the Mutqan server: 203.0.113.45النتيجة:
Candidates gathered: 3 · Public addresses seen through WebRTC: 1 · Local addresses exposed: 0
With STUN — srflx — 198.51.100.20 — udp — Your public address (via STUN)
With STUN — host — 4f1c….local — udp — Hidden local address (random .local name)
Without STUN — host — 4f1c….local — udp — Hidden local address (random .local name)
Finding: WebRTC reveals a public address that differs from the one your web traffic uses. With a VPN or proxy on, this is a WebRTC leak: pages can learn the address of your real connection.كيف تقرأ نتائج اختبار تسريب WebRTC
العنوان العام عبر STUN المطابق لعنوانك العام لا يكشف شيئاً جديداً: كل موقع يراه أصلاً.
العنوان العام المختلف عن عنوانك العام مع تشغيل VPN أو وكيل هو تسريب WebRTC: تستطيع الصفحات معرفة عنوان اتصالك الحقيقي.
العنوان المحلي الصريح (192.168.x.x أو 10.x.x.x أو fd00::/8) تسريب أصغر يساعد في بصمة المتصفح؛ وظهور اسم .local مكانه يعني أن المتصفح يخفيه.
ظهور عنوان IPv6 عبر WebRTC بينما تستخدم حركة الويب IPv4، أو العكس، يعني أن الإصدار الآخر مكشوف — وهو تسريب إن كان الـ VPN يحمل إصداراً واحداً فقط.
غياب المرشّحات بعد اكتمال الجمع يعني أن WebRTC مطفأ أو مقيّد: لا شيء يتسرّب عبره. أما إن قال الاختبار إنه تعذّر جمع المرشّحات فتلك نتيجة أخرى لا تثبت شيئاً في أي اتجاه.
متى تستخدم اختبار تسريب WebRTC
- فحص VPN أو وكيل بحثاً عن تسريب WebRTC قبل الاعتماد عليه.
- التحقق من أن إضافة متصفح أو سياسة مؤسسية تقيّد WebRTC تعمل فعلاً.
- إطلاع زميل على ما تستطيع صفحة مكالمات فيديو معرفته عن شبكته دون أن تسأل.
استكشاف الأخطاء وإصلاحها
- «لم يُجب خادم STUN» — جدار حماية أو الشبكة يحجب UDP الصادر على المنفذ 3478، فلم يُعرف عنوان عام عبر WebRTC؛ ولا تستطيع الصفحات معرفته بهذا الطريق أيضاً.
- «WebRTC غير متاح في هذا المتصفح» — WebRTC مطفأ أو أزالته إضافة؛ وهذه نتيجة آمنة.
- «تعذّر على الاختبار جمع أي مرشّحات WebRTC» — فشل إعداد الاتصال أو لم يكتمل في الوقت المحدد، فلم يرَ الاختبار شيئاً في أي اتجاه، وهذا ليس دليلاً على عدم وجود تسريب. أعد الاختبار، وإن تكرّر الفشل فثمة شيء في المتصفح يتدخّل في WebRTC.
- «تعذّر تحميل عنوانك العام» — تُتخطّى المقارنة لكن المرشّحات تُعرض مع ذلك؛ اضغط الزر مجدداً لاحقاً.
- تتغير النتيجة من جولة إلى أخرى — بعد تغيّر الشبكة قد يختار المتصفح واجهة أخرى؛ أعد توصيل الـ VPN وأعد الاختبار.
الأسئلة الشائعة حول اختبار تسريب WebRTC
ما المقصود بتسريب WebRTC؟
تتيح تقنية WebRTC للصفحات إنشاء اتصالات صوت وفيديو وبيانات مباشرة، ولذلك يجمع المتصفح عناوين شبكته («مرشّحات ICE») وتستطيع الصفحة قراءتها دون استئذان. ومع تشغيل VPN يكون التسريب حين تتضمن هذه المرشّحات عنوانك العام الحقيقي أو عنواناً محلياً كان الـ VPN يُفترض أن يخفيه.
هل يكشف واتساب ويب أو Zoom في المتصفح عنواني الحقيقي حتى مع الـ VPN؟
أي صفحة تستخدم WebRTC — ومنها تطبيقات المكالمات في المتصفح — تحصل على المرشّحات نفسها التي يعرضها هذا الاختبار. فإن أظهر الاختبار عنواناً عاماً مختلفاً عن عنوان الـ VPN فتلك الصفحات تستطيع رؤيته أيضاً، وإن أظهر العنوان نفسه أو أسماء .local فقط فلا تسريب من هذا الطريق. وتذكّر أن الصفحة التي تمنحها إذن الكاميرا أو الميكروفون قد تحصل على عناوين محلية أكثر.
بأي خادم يتصل متصفحي أثناء الاختبار؟
بخادم STUN العام من Cloudflare (stun:stun.cloudflare.com:3478) مرة واحدة، فيجيب بالعنوان العام الذي يرى متصفحك قادماً منه. ويُسأل خادم متقن على حدة عن العنوان الذي تخرج منه حركة الويب لديك للمقارنة. ولا يُتصل بأي شيء آخر، ولا يُستخدم مُرحِّل TURN.
ماذا يعني العنوان المنتهي بـ .local؟
هو اسم عشوائي (mDNS) يعرضه المتصفح بدلاً من عنوانك المحلي الحقيقي حتى لا تعرفه الصفحات. فظهور أسماء .local وحدها في المرشّحات المحلية يعني أن هذه الحماية تعمل.
عنوان STUN يختلف عن عنواني العام، هل هذا تسريب دائماً؟
مع تشغيل VPN أو وكيل: نعم، فجواب STUN يبيّن الطريق الذي تسلكه حركة WebRTC وهي تلتفّ على النفق. ومن دونهما قد توجد أسباب عادية، مثل اتصال مزدوج يستخدم IPv6 لأحدهما وIPv4 للآخر، أو وكيل مضبوط في المتصفح وحده.
لماذا لا يجد الاختبار أي مرشّحات؟
إذا أكمل المتصفح الجمع ولم يقدّم شيئاً، فإن WebRTC مطفأ أو مقيّد في متصفحك بإعداد أو إضافة أو سياسة، ولا يستطيع حينها كشف أي عنوان — وهي نتيجة صحيحة وآمنة. أما إذا قال الاختبار إنه تعذّر جمع المرشّحات، فقد فشل إعداد الاتصال أو لم يكتمل في الوقت المحدد، وهذا لا يثبت شيئاً في أي اتجاه، فأعد الاختبار.
ملاحظات تقنية
تُجمع المرشّحات عبر RTCPeerConnection (W3C WebRTC) بآلية إنشاء الاتصال التفاعلي ICE (RFC 8445). مرشّحات host هي عناوين الجهاز نفسه، ومرشّحات server-reflexive (srflx) هي العنوان العام الذي رأى خادم STUN (RFC 8489) الطلب قادماً منه.
تقيّد المتصفحات ما يكشفه WebRTC كما يصف RFC 8828: افتراضياً لا تُعطى مرشّحات إلا لواجهة الشبكة الخاصة بالمسار الافتراضي. وبإجراء منفصل، تتلقى الصفحة التي لا تملك إذن الكاميرا أو الميكروفون عادةً أسماء mDNS عشوائية تنتهي بـ .local بدلاً من العناوين المحلية — وهو إجراء وُصف في مسودة IETF انتهت صلاحيتها عام 2022 دون أن تصبح RFC، لكن المتصفحات الحالية تطبّقه.
يسلك طلب STUN بروتوكول UDP ولا تحكمه سياسة أمان المحتوى في الصفحة (connect-src)، ولهذا تذكر هذه الصفحة اسم خادم STUN الذي تستخدمه. ويتوقف الجمع حين يعلن المتصفح اكتماله أو بعد ثوانٍ قليلة.
الحدود ومنهجية القياس
يرى الاختبار ما تراه هذه الصفحة. والصفحة التي تملك إذن الكاميرا أو الميكروفون قد تتلقى عناوين محلية صريحة حتى لو أظهر هذا الاختبار أسماء .local.
يستخدم خادم STUN واحداً عبر UDP؛ فالتسريب الذي يظهر عبر TCP فقط، أو عبر خادم STUN أو TURN آخر، أو أثناء مكالمة حقيقية فقط، لا يُعاد إنتاجه هنا.
كون العنوان العام المختلف تسريباً يعتمد على إعدادك: فمن دون VPN قد يفسّره اتصال مزدوج IPv4/IPv6 أو وكيل في المتصفح وحده.
الأمان والخصوصية
جزء WebRTC يجري في متصفحك وحده. يتصل متصفحك بخادم STUN العام من Cloudflare (stun:stun.cloudflare.com:3478) مرة واحدة، فيرى ذلك الخادم عنوانك العام كما يراه أي موقع. وتسأل الصفحة أيضاً خادم متقن عن عنوان حركة الويب لديك للمقارنة. تُعرض المرشّحات المجمّعة لك وحدك ولا تُرسل إلى خادم متقن ولا إلى أي جهة أخرى، ولا يُخزَّن شيء.
المراجع
- WebRTC: Real-Time Communication in Browsersواجهة RTCPeerConnection التي تستخدمها الصفحات لجمع مرشّحات ICE وفتح الاتصالات المباشرة، ومنها حدث icecandidate الذي يستمع إليه هذا الاختبار؛ وتشير كذلك إلى مرشّحات mDNS، أي أسماء .local التي تُخفي بها المتصفحات العناوين المحلية.
- RFC 8828: WebRTC IP Address Handling Requirementsأي العناوين يجوز للمتصفح كشفها للصفحة عبر WebRTC: أنماط التعامل الأربعة، والوضع الافتراضي الذي يقصر المرشّحات على واجهة الشبكة الخاصة بالمسار الافتراضي.
- RFC 8489: Session Traversal Utilities for NAT (STUN)طلب STUN وردّه: كيف يعرف العميل العنوان العام والمنفذ اللذين يراه الخادم قادماً منهما.