مدونة FireAI للأمان

بقلم FireAI Security & Research Team · نُشر في

شرح خدمات onion: عناوين الإصدار 3 وRFC 7686 والوصول الآمن

شرح خدمات onion: عناوين الإصدار 3 وRFC 7686 والوصول الآمن

خدمة onion خادمٌ لا يمكن الوصول إليه إلا عبر شبكة Tor، على عنوان ينتهي بـ .onion. تشرح هذه المذكرة، استنادًا إلى مواصفات Tor والمعيار الصادر عن IETF الذي يحجز هذا الاسم ووثائق مشروع Tor، ثلاثة أمور كثيرًا ما يُخلط بينها: مِمّ يتكوّن عنوان onion من الإصدار 3، ولماذا تُبقى أسماء .onion عمدًا خارج نظام DNS العادي، وما يعنيه ذلك للوصول إلى خدمات onion من جهاز Mac. والفكرة المحورية أن عنوان الإصدار 3 ليس اسمًا يُبحث عنه في دليل، بل هو المفتاح العام للخدمة، مما يجعل العنوان نفسه دليلًا على هوية من تتحدث إليه، شريطة ألّا يغادر الطلب شبكة Tor أبدًا.

الخلفية

يصف مشروع Tor خدمات onion بأنها «لا يمكن الوصول إليها إلا عبر شبكة Tor»، وبأن الحركة بين مستخدمي Tor وخدمات onion «مشفّرة من طرف إلى طرف» [5]. ويُخفى موقع الخدمة كما يُخفى موقع العميل: إذ يبني كلٌّ من العميل والخدمة دوائر إلى نقاط التقاء، هي نقاط التقديم ونقطة الموعد، فلا يعرف أيٌّ منهما عنوان IP الخاص بالآخر، و«يتألّف الاتصال الكامل بين العميل وخدمة Onion من 6 مُرحِّلات» [6]. ويمنح التصميم نفسه الخدمةَ القدرة على اختراق NAT، فيمكن تشغيلها خلف موجّه منزلي دون فتح منفذ [6].

النتائج

عنوان الإصدار 3 مفتاح عام

تعرّف مواصفات Tor العنوان بأنه base32(PUBKEY | CHECKSUM | VERSION) متبوعًا بـ «.onion»، حيث PUBKEY هو المفتاح العام الرئيسي للخدمة من نوع ed25519 بطول 32 بايت، وVERSION هو البايت 3، وCHECKSUM هو أول بايتين من SHA3-256 مطبَّقًا على السلسلة «.onion checksum» والمفتاح العام والإصدار [3]. ومجموع ذلك 35 بايت، يرمّزها base32 في 56 حرفًا. وحين يتصل Tor، يستخدم المفتاح الموجود في العنوان للتحقق من أن الخدمة على الطرف الآخر تملك المفتاح الخاص المطابق؛ ويشير مشروع Tor إلى أن العنوان يتيح لـ Tor التأكد من أنه يتصل بالموقع الصحيح [5]. فلا سلطة شهادات ولا مسجّل نطاقات بينك وبين الخدمة: من يملك المفتاح هو الخدمة، والعنوان المكتوب خطأً يُخفق عادةً في فحص المجموع ويُرفض.

عناوين الإصدار 2 انتهت

كانت عناوين onion السابقة من 16 حرفًا. وفي عام 2020 أعلن مشروع Tor إزالتها، واصفًا أساس الإصدار 2 بأنه «هشّ، وغير آمن في هذه المرحلة»، ووضع جدولًا زمنيًا: تحذيرات ابتداءً من 15 سبتمبر 2020، وإزالة من الشيفرة المصدرية في 15 يوليو 2021، وتعطيل الإصدار 2 في الإصدارات المستقرة ابتداءً من 15 أكتوبر 2021 [4]. وتشير التدوينة نفسها إلى أن عناوين الإصدار 3، بأحرفها الـ 56، هي «حرفيًا المفتاح العام التشفيري الكامل (مفتاح ed25519)» [4]. فأي عنوان .onion من 16 حرفًا يُصادَف اليوم عنوانٌ متقادم.

RFC 7686 يُبقي .onion خارج DNS

يحجز RFC 7686، الذي نشرته IETF في أكتوبر 2015، النطاق .onion بوصفه اسم نطاق للاستخدام الخاص، وتدرجه IANA في سجلّها لهذه الأسماء [1] [2]. ويضع قواعد لكل طبقة قد ترى اسم .onion: «ينبغي (SHOULD) للتطبيقات التي لا تطبّق بروتوكول Tor أن تولّد خطأً عند استخدام .onion، ولا ينبغي (SHOULD NOT) لها أن تجري استعلام DNS». ويجب (MUST) على خوادم التخزين المؤقت «توليد NXDOMAIN لجميع هذه الاستعلامات»، ويجب (MUST) على الخوادم الموثوقة «الردّ على استعلامات .onion بـ NXDOMAIN». و«يُتوقّع من المستخدمين البشر أن يدركوا أن لأسماء .onion خصائص أمنية مختلفة، وأنها لا تتاح إلا عبر برامج تدرك أسماء .onion» [1]. والسبب هو الخصوصية: فاسم .onion المرسَل إلى محلِّل عادي لا يمكن الإجابة عنه، لكنه يُخبر ذلك المحلِّل بخدمة onion التي كنت تحاول الوصول إليها.

المتصفحات العادية ترفض .onion عن قصد

تلتزم المتصفحات التي لا تتضمن Tor بهذه القاعدة. فمتصفح Firefox، على سبيل المثال، طبّق RFC 7686 في الإصدار 45: إذ أضاف بلاغ Mozilla «Implement RFC 7686 (fail dns for .onion)» التفضيلَ network.dns.blockDotOnion، الذي يحجب استعلامات .onion افتراضيًا [8]. ووضع متصفح كهذا خلف Tor لا يجعله وحده يفتح مواقع onion؛ فالمتصفح يظل يرفض الاسم قبل إجراء أي اتصال. أما متصفح Tor فمبنيّ للتعامل مع أسماء .onion، والمواقع التي تشغّل أيضًا خدمة onion تستطيع الإعلان عنها بترويسة HTTP أو وسم meta باسم Onion-Location، يعرضها متصفح Tor على هيئة شارة بنفسجية [7].

كيف تصل التطبيقات الأخرى إلى خدمات onion

لا يستطيع تطبيق غير متصفح Tor الوصول إلى خدمة onion إلا إذا وصل الاسم إلى tor. فبعض التطبيقات تمرّر الاسم مباشرة عبر SOCKS. أما التطبيقات التي تحلّ الاسم أولًا ثم تتصل، فالخيار AutomapHostsOnResolve في tor «مفيد لجعل عناوين “.onion” تعمل مع التطبيقات التي تحلّ العنوان ثم تتصل به»: إذ يجيب tor عن الاستعلام بعنوان بديل من نطاق خاص، يقترح الدليل له 10.192.0.0/10، ويعيد ربط الاتصالات بذلك العنوان بخدمة onion [9].

ما يحدث لاسم .onion، بحسب البرنامج
البرنامجالسلوكالمصدر
تطبيق لا يدعم Torينبغي أن يُظهر خطأً، ولا ينبغي أن يستعلم عنه في DNSRFC 7686
خادم DNS للتخزين المؤقت أو خادم موثوقيجب أن يجيب بـ NXDOMAINRFC 7686
Firefox (منذ الإصدار 45)يحجب استعلامات .onion افتراضيًابلاغ Mozilla رقم 1228457
متصفح Torيفتح خدمات onion ويعرض Onion-Locationمشروع Tor
تطبيقات أخرى عبر torتعمل إذا وصل الاسم إلى tor، عبر SOCKS أو الربط التلقائيدليل tor

الآثار على مستخدمي Mac

يترتب على ذلك أمران. الأول أن العنوان هو مرتكز الثقة، لذا فإن طريقة حصولك عليه أهمّ مما هي على الويب العادي: فالعنوان الحقيقي للخدمة سلسلة طويلة من الحروف والأرقام لا يستطيع إلا قلّة التحقق منها بالعين، ورابط من صفحة غير موثوقة قد يشير إلى مفتاح مختلف. والثاني أن اسم .onion المكتوب في البرنامج الخطأ لا يُخفق بصمت على نحو غير ضارّ: فما لم يرفضه البرنامج، كما يطلب RFC 7686، فقد يُرسَل الاسم إلى محلِّل الشبكة، فيعرف خدمة onion التي كنت تبحث عنها رغم عجزه عن الإجابة. وتنطبق هنا نصيحة مشروع Tor العامة بقوة خاصة: «لا يحمي Tor إلا التطبيقات المهيّأة تهيئة صحيحة لإرسال حركتها على الإنترنت عبر Tor» [10].

التوصيات

  1. افتح مواقع onion في متصفح Tor؛ فهو يتعامل مع أسماء .onion ويعرض Onion-Location حين يوفّره الموقع.
  2. احصل على عناوين onion من مصدر تثق به مسبقًا، كموقع المؤسسة نفسها عبر HTTPS من خلال Onion-Location، واحفظها في المفضّلة.
  3. اعتبر أي عنوان .onion من 16 حرفًا متقادمًا: فقد عُطّلت خدمات الإصدار 2 عام 2021.
  4. لا تحاول فتح أسماء .onion في متصفح أو تطبيق لا يمرّ عبر Tor؛ ففي أحسن الأحوال يرفضها، وفي أسوئها يصل الاسم إلى محلِّل شبكتك.
  5. في التطبيقات الأخرى، تحقّق من أن الأسماء تصل إلى tor، عبر SOCKS أو الربط التلقائي، قبل الاعتماد عليها.
  6. تذكّر أن خدمة onion نفسها ترى ما ترسله إليها: تسجيل الدخول يكشف هويتك لها.

صلة ذلك بـ TorAi

TorAi تطبيق من HisnLabs لنظام macOS، وقد صدر الإصدار 0.1.0، وهو أول إصدار عام له. وتقول صفحته إن عناوين .onion قابلة للوصول من أي تطبيق موجّه يقبلها. وهذا الشرط مهمّ: فالمتصفح الذي يحجب .onion عن قصد، كما يفعل Firefox، يظل يرفض الاسم حين يوجّهه TorAi، ولتصفح مواقع onion توصي صفحة TorAi نفسها بمتصفح Tor. وثمة حدّ آخر في نسخ التطوير من TorAi أُصلح في الإصدار 0.1.0. ففي تلك النسخ، وفي وضع «تطبيقات مختارة»، كان اسم .onion الذي يستعلم عنه تطبيق موجّه عبر محلِّل النظام في macOS يُرسَل إلى محلِّل الشبكة أيضًا؛ وكان الاتصال يمرّ عبر Tor، لكن المحلِّل المحلي كان يرى الاسم. أما في الإصدار 0.1.0 فكل استعلام .onion، وكل استعلام يجريه تطبيق موجّه، يذهب إلى منفذ DNS في tor ولا يذهب إلى أي محلِّل آخر، في حين لا تذهب استعلامات التطبيقات الأخرى إلى Tor أبدًا. التفاصيل في صفحة TorAi.

القيود

تصف هذه المذكرة تصميم خدمات onion ومعاييرها كما هي موثّقة؛ ولا تدقّق في خدمات onion بعينها، ولا تقيس كيف تتعامل متصفحات غير Firefox مع أسماء .onion، ولا تدّعي شيئًا عنها. ومواصفات Tor تتغيّر مع الوقت، وصيغة العنوان الموصوفة هي صيغة الإصدار 3. وقد يتغيّر سلوك المتصفحات بين إصداراتها. ووصف سلوك TorAi مأخوذ من ملاحظات إصداره ومن اختبارات HisnLabs نفسها، لا من تدقيق مستقل، وHisnLabs هي التي تصنع TorAi، وهذا ما ينبغي للقارئ أن يضعه في الحسبان. للاستزادة: درسا جامعة FireAI عن حقيقة الويب المظلم وما الذي يفعله DNS، والمقالان ما الذي يخفيه Tor وما الذي لا يخفيه وتوجيه كل تطبيق عبر Tor على macOS.

دور FireAI وHisnLabs

لا يفتح FireAI خدمات onion؛ بل يُظهر كل اتصال تجريه تطبيقات جهاز Mac، ومنها الاتصالات بمُرحِّلات Tor، ويتيح لك أن تقرّر أيّها يمرّ.

FireAI هو منتج HisnLabs نفسها: جدار حماية بذكاء اصطناعي يعمل على جهاز Mac مباشرة. يعرض بلغة واضحة كل اتصال تجريه تطبيقاتك، ويترك لك القرار فيما يخرج من جهازك — ذكاؤه الاصطناعي يعمل محليًا، فلا يُرسَل ترافيكك إلينا ولا إلى أي جهة أخرى أبدًا. فريق أبحاث الأمن في HisnLabs هو من يحافظ على دقة هذه القرارات: يصنّف النطاقات بين قياس عن بُعد عادي وخدمة حقيقية، ويتتبّع بلد وشبكة كل اتصال، ويدرّب النموذج المحلي (ميزة FireAI Pilot) على حركة اتصال حقيقية، دون أن يغادر أي شيء جهاز Mac.

يمكنك الاطلاع على القرارات التقنية وراء ذلك، أو تجربة FireAI لمدة 17 يومًا، على FireAI من HisnLabs.

المصادر