طوّر مختبر الأبحاث البحرية للولايات المتحدة الأمريكية بروتوكول التوجيه البَصَلِيّ (The Onion Routing Protocol: Tor) لمشروع اتصالات المخابرات الأمريكية على الإنترنت، ومن المفارقة أنّ تُوْر- Tor شهد استخدامًا من الجميع حتّى المنظّمات التي تحاربها الولايات المتحدة الأمريكية.
قد يكون لديك معرفةً بأنّ Tor هو مسقط رأس الأنشطة غير القانونيّة على الإنترنت، فهو مكانٌ يمكِّنُك شراءَ أيٍّ من الممنوعات ومعظم الأشياء غير القانونية، إنّ Tor أكبر بكثير مما تحاول وسائل الإعلام إظهاره لنا؛ إذ وفقًا لكلية الملك في لندن فإنّ الكثير من أنشطة Tor تكون قانونية.
لا يتحدث هذا المقال عما هو موجود في Tor أو كيفية الوصول إليه؛ وإنما يقدم ملخصًا تقنيًا لكيفية عمل هذه التقنيّة دون تكهنات ومبالغة في تعريف Tor، كُتبت المقال ليقرأَه أيّ شخص بدون أي معرفة مسبقة بالشبكات أو Tor.
المبدأ الأساسي لـ Tor هو تقنية التوجيه البَصَلِيّ (Onion Routing) وهي تقنية للاتصال المجهول والآمن عبر شبكة عامة، تُغلّف رسائل التوجيه البَصَلِيّ في عدة طبقات من التّشفير.
يحتوي البصل على عدّة طبقات، كذلك كلّ رسالة تمر عبر Tor تمر في طبقات تكون كل واحدة منها هي طبقة تشفير؛ فأنت تضيف عدّة طبقات تشفير إلى رسالة Tor، عكس طرائق التّشفير الأخرى التي تكتفي بطبقة واحدة من التّشفير، هذا هو السبب في أنّه يسمى بروتوكول التوجيه البَصَلِيّ؛ لأنّه يضيف عدّة طبقات في كل مرحلة.
تُنقل تلك الرّسائل المشفّرة من خلال سلسلة من الحواسيب في شبكة تُسمّى “أجهزة التوجيه البَصَلِيّ”؛ فتُقشّر مع كل حاسوب طبقةٌ من البصل “طبقات التّشفير”، وتحتوي كل طبقة على الوجهة التالية “جهاز التوجيه التالي الذي يجب أن تُنقل إليه الحزمة” عندما يُفَك تشفير الطّبقة النّهائيّة، تحصل على نصٍ عاديّ (أي رسالة غير مشفّرة).
في بروتوكول التوجيه البَصَلِيّ يبقى المرسل الأصلي مجهولاً؛ لأنّ كل عُقْدة (node) في الشبكة لا تُدرِك إلا العُقْدة السابقة لها واللاّحقة في مسارها، باستثناء العُقْدة الأولى فهي تعرف المُرسل، لكن لا تعرف الوجهة النهائية.
أدى هذا إلى هجمات حيث تشغّل المؤسسات الكبيرة ذات الموارد الموسعة الخوادمَ (servers) لتكونَ العقد الأولى والأخيرة في الشبكة؛ فإنْ كان خادم المؤسسة العقدة الأولى سيعرف المُرسل، وإنْ كان العقدة الأخيرة سيعرف الوجهة الأخيرة ومحتوى الرسالة.
الآن لدينا نظرة عامّة أساسيّة عن Tor، فلنبدأ في استكشاف كيفيّة عمل كل جزء منه.
تمهيد
التوجيه البَصَلِيّ هو شبكة تراكبيّة موزعّة مصمّمَة لإخفاء هويّة التّطبيقات المستندة إلى اتّصالات TCP، مثل: تصفّح الويب (web browsing) والنقل الآمن (secure shell) والمراسلة الفورية أو الدردشة (instant messaging).
يختار العملاء مسارًا ضمن الشبكة وينشِئُون دائرة بحيث يَعرف كل مُوَّجِّه بصليّ المسار السّابق واللّاحق، لكن لا يوجد عُقد أخرى داخل تلك الدائرة.

يظل المُرسل الأصلي (ويُمثل علامة الاستفهام أقصى اليسار) مجهولاً، إلا إنْ كنت أول المسار في العُقْدة حينها سيُعرف من أرسل الرّسالة.

لا أحد يعرف البيانات التي تُرسل حتّى تصل إلى العُقْدة الأخيرة في المسار، يُمكن معرفة البيانات ولكن لا يُعرف من أرسلها، إن العقد من الثانية إلى الأخيرة في المسار لا تعرف ماهية البيانات، فقط العُقْدة الأخيرة في المسار هي من تعرف البيانات.

أدّى هذا إلى هجمات حيث تنشئ المؤسسات ذات الموارد الموسعة خوادم Tor التي تهدف أنْ تكون أجهزة التوجيه البصلي الأولى والأخيرة في المسار، إن قامت المؤسسة بذلك، سيعرفون من أرسل البيانات ومحتواها؛ فعليًّا: اختُرق Tor.

من الصعوبة القيام بهذا الأمر دون أنْ تكون قريبًا من موقع خوادم المؤسسات، وسنتكشف هذا الأمر لاحقًا.
سنستخدم نتفليكس “Netflix” في المقال كخدمة عادية وأمازون برايم فيديو “Amazon Prime Video” كخصم، في العالم الحقيقي، من غير المحتمل أنْ تكون هذه الحال، لسنا هنا للتكهن حول المنظمات التي ترغب بمهاجمة Tor؛ لذلك استخدمنا مثالين غير متوقعين لتجنب الجانب السياسي منه.
تتدفّق كلّ حزمة من البيانات في خلايا ذات حجم ثابت، يجب أنْ تكون هذه الخلايا بنفس الحجم فلا تبدو أي من البيانات التي تمر عبر شبكة Tor كبيرة بشكلٍ مثير للريبة.
يُفَك تشفير هذه الخلايا بواسطة مفتاح متماثل في كلّ جهاز توجيه ثُم تُرحّل الخلية إلى مسارٍ أبعد، لنذهب إلى Tor نفسه.
يحتاج Tor إلى العديد من المستخدمين لإخفاء الهوية، إنْ كان Tor صعبًا للمستخدمين الجدد فلن يعتمدوه بهذه السرعة، ونظرًا لأنّ المستخدمين الجدد لن يعتمدوه، سيصبح Tor أقل إخفاءً للهوية، ومن خلال هذا المنطق يكون من السهل أنْ نرى أنّ سهولة الاستخدام ليست مجرد اختيارِ تصميمٍ لـ Tor بل متطلبَ أمان لجعله أكثر أمانًا.
إنْ لمْ يكن Tor صالحًا للاستخدام أو مصممًا بشكل جيد، لن يستخدمه الكثير من الناس، وبالتالي؛ إنْ لم يستخدمه العديد من الناس فهو أقل إخفاءً للهوية.
كان على Tor القيام ببعض خيارات التصميم التي قد لا تحسن الأمان لكنّها تحسن قابلية الاستخدام على أمل أنّ التحسين في قابلية الاستخدام هو تحسن في الامان.
ما لا يكونه Tor
إن Tor ليس تقنية الند للند (Peer to peer: P2P) اللا مركزية بشكل كلي كما يعتقد الكثيرون، ولو كان كذلك فإنّه لن يكون مفيدًا بشكل كافٍ؛ إذ يتطلب Tor خوادم الدليل (directory servers) التي تُدير وتُحافظ على استقرار الشبكة على مدار الوقت.
إن Tor ليس آمنَا من الهجمات بين الطرفيات، فهجوم الطرفيات يحدث في المكان الذي يتحكم في كلٍّ من العُقدة الأولى والأخيرة من المسار -كما تحدثنا فيما سبق- ولمْ يحلّ خبراء الأمن السيبراني (cyber security) هذه المشكلة حتى الآن.
Tor لا يُخفي هوية المرسل
في فترة الامتحانات النهائية لعام 2013 في هارفارد، حاول طالب تأجيل الامتحان عن طريق إرسال تهديد مزيّف بوجود قنبلة، استخدم الطالب Tor وخدمة جوريلا ميل (Guerrilla Mail؛ وهي خدمة تسمح للناس بإنشاء بريد الكتروني يمكن التخلص منه) لإرسال التهديد بوجود قنبلة إلى مديري المدرسة؛ لكن قُبض على الطالب، رُغم اتخاذه الاحتياطات اللازمة للتأكد من أنّه لنْ يُقبض عليه.
تُرسل خدمة Guerrilla Mail عنوان IP الأصلي مع البريد الإلكتروني المُرسَل حتى يعرف المتلقي من أين جاء البريد الإلكتروني. مع Tor، توقّع الطالب بأنْ يُشفّر عنوان IP، لكن السُّلُطات علمت أنّ البيانات خرجت من عُقْدة Tor (يحتفظ Tor بجميع العُقَد في خدمة الدليل)؛ ببساطة بحثت السلطات عن الأشخاص الذين استخدموا Tor (داخل الجامعة) في وقت إرسال البريد.
ليس Tor بخدمة لإخفاء الهوية، لكنه خدمة تُشفّر حركة مرور البيانات من طرفية “أ” إلى طرفية “ب” (طالما لم يُنفّذ هجوم بين الطرفيات نفسها)، وهو متصفحٌ بطيء للغاية؛ فاستخدامه للمشاهدة على نتفليكس ليست فكرة جيّدة.
ما يكونه Tor | ما لا يكونه Tor |
بروتوكول تشفير بين الطرفيات مصممٌ لأمان الاتصالات.آمن ومفتوح المصدر ويُطوّر ويحافظ عليه من قِبل مجتمع برمجيات مفتوحة المصدر، وهو مجتمع كبير جدًا، من الصعب إخفاء برمجيات خبيثة فيه أو اختراقه من الداخل.لا يُخفي الهوية بشكل كامل (مقاييس إخفاء الهوية تعتمد على عدد الذين يستخدمون شبكة Tor؛ أيّ إنّه كلما زاد عدد المستخدمين زادت درجة الأمان). | خدمة لإخفاء الهوية تمامًا عند استخدامك شبكة الإنترنت.لا مركزي تمامًا. (لا يعتمد على تقنية الند للند تمامًا، يعتمد أيضًا على خوادم الدليل التي تدير وتحافظ على استقرار الشبكة على مدار الوقت.) |
التوجيه البَصَلِيّ (Onion Routing)

بالنظر إلى الشبكة أعلاه، سنُحاكي ما يفعله Tor؛ يقع حاسوبك في أقصى اليسار، ستُرسل طلبًا لمشاهدة مسلسل “Stranger Things” على نتفليكس، هذا المسار من العُقَد (Nodes) يسمى دائرة (circuit)، لاحقًا، سنتطرق إلى كيفية عمل الدوائر وآلية التّشفير، لكن الآن نحاول تعميم كيفية عمل Tor.

نبدأ بالرّسالة (لم نرسلها بعد)، سنُشفّر الرّسالة (N) مرة (حيث N هي عدد العُقَد الموجودة في المسار)، نشفرها باستخدام خوارزمية معيار التّشفير المتقدم (Advanced Encryption Standard: AES) وهي خوارزمية تشفير بالمفتاح المتناظر (symmetric key)، تستخدم هذه تقنية تبادل المفاتيح ديفي-هيلمان (Diffie-Hellman)، لا تقلق، سنناقش كل هذا لاحقًا، هناك أربع عُقد في المسار (بخلاف حاسوبك ونتفليكس)؛ لذلك ستُشفّر الرّسالة أربع مرات.

تحتوي حزمتنا (البصلة) على أربع طبقات هي: الأزرق والبنفسجي والبرتقالي، والشرشيري (أزرق مخضر)، كلّ لون يمثل طبقة من التّشفير.

نُرسل الحزمة إلى العُقْدة الأولى في المسار، ثُمّ تُزيل العُقْدة الأولى الطبقة الأولى من التّشفير.
كلّ عُقْدة في المسار تعرف مفتاح فكّ تشفير طبقتها (من خلال بروتوكول ديفي-هيلمان)، تٌزيل العُقْدة الأولى الطبقة الزرقاء بمفتاحها المتناظر (المتوافق فيما بين العُقدة والطبقة).

تعلم العُقْدة الأولى أنّك أرسلت الرّسالة؛ لكن الرّسالة لا تزال مشفّرة بثلاث طبقات من التّشفير وليس لديها أيّ فكرة عن ماهية الرّسالة.
في أثناء مرورها عبر المسار، تُجرد المزيد من طبقات التّشفير، العُقْدة التالية لا تَعرف من أرسل الرّسالة، كل ما تعرفه هو أنّ العُقْدة الأولى هي من أرسلت الرّسالة وأنّها ستُسلم إلى العُقْدة الثالثة.

الآن؛ تزيل العُقْدة الثالثة طبقة من طبقات التّشفير.

تَعرف العُقْدة الأخيرة ماهية الرّسالة ووجهتها ولا تعرف من أرسلها، كل ما تعرفه أنّ العُقْدة الثالثة هي من أرسلت الرّسالة ولا تعرف أيّ شيءٍ على طول المسار؛ إن واحدة من الخصائص الرئيسة أنّه ما أنْ تقوم عُقدة بِفَك تشفير إحدى الطّبقات لا تعرف هذه الطبقة كم طبقة مُشفرة متبقية، من الممكن أنْ تكون قليلة (طبقة أو اثنتين) ومن الممكن أنْ تكون كبيرة (تصل إلى 200 طبقة).

الآن لا يوجد طريقة لأمازون (بصفته المُخترِق) ليكتشف أنك تُشاهد نتفليكس! يعيد خادم نتفليكس الرّسالة وفيها جزء من المسلسل الذي تشاهده.
كيف يعمل في الاتجاه المعاكس؟

تُضيف العُقْدة الرابعة طبقة التّشفير الخاصة بها الآن، لا تعرف مُقدم الطلب الأصلي، كل ما تعرفه أنّ العُقْدة الثالثة هي من أرسلت الطلب؛ لذلك تُعيد رسالة الاستجابة إلى الطبقة الثالثة.

وهكذا في العُقد اللّاحقة.

الآن يُفك تشفير حزم الاستجابة بشكلٍ كامل.

الآن الحزمة مُشفرة بالكامل، الوحيد الذي يعرف ما تحتويه الرّسالة هي العُقْدة الرابعة والوحيد الذي يعرف المُرسل الأصلي للرسالة هي العُقْدة الأولى، والآن بعد أنْ حصلنا على الاستجابة المشفرة بالكامل، سنستخدم كل المفاتيح التناظرية لفك تشفيرها.

قد تظن أنّ السلاحف أسرع من هذا في سرعة الاستجابة وأنت محقّ في ذلك؛ فهذا البروتوكول لم يُصمم للسرعة، وفي نفس الوقت عليه أنْ يهتم بالسرعة.
من الممكن أنْ تكون الخوارزمية بطيئة بشكل كبير، ولكنها أكثر أمانًا -باستخدام تشفير المفتاح العام (public key) تمامًا بدلاً من تشفير المفتاح المتناظر (symmetric key)- لكن سهولة استخدام النظام مهمة، نعم، إنّه بطيء، لكن ليس بتلك الدرجة من البُطء، وكل هذا عملٌ متوازن.
عادة ما تكون خوازرمية التّشفير المستخدمة هو خوارزمية “AES” مع تقنية ديفي-هيلمان لتبادل المفاتيح.
تُسمى المسارات التي أنشأها Tor بـالدوائر “circuit”، لنستكشف كيفية اختيار العُقد المُراد استخدامها في الدائرة.
كيف تُصمم الدائرة؟
كل جهاز، عندما يريد تصميم دائرة، يختار نقطة الخروج أولاً تتبعها العُقد الأخرى في الدائرة، دائمًا ما تكون دوائر Tor ثلاثة، ولا تؤدي زيادة طول الدائرة إلى زيادة إخفاء الهوية بشكلٍ أفضل، فإذا كان المهاجم يتحكم في العُقْدة الأولى والأخيرة في الشبكة، فحتى لو كان هناك 1500 عُقدة بينهما لن تكون أكثر أمانًا.
- عندما يختار Tor نقطة الخروج، فإنه يتبع الخطوات الأتية:
- هل يحتوي ملف torrc (ملف تكوين أو التهيئة Tor) الخاص بالعميل إعدادات عن أي عقد الخروج التي لا يختارها؟
- يختار Tor مرحّل خروج والذي يسمح لك بالخروج من شبكة Tor، بعض عُقد الخروج تسمح فقط بحركة مرور الويب (HTTP/S port 80)، والذي لن يكون مفيدًا لك إذا ما أرسلت بريدًا (SMTP port 25).
- يجب أنْ تمتلك عُقدة الخروج السعة المتاحة لتلبيتك، يحاول Tor اختيار عُقدة خروج بها موارد كافيّة متاحة تُلبي المطلوب.
تخضع جميع المسارات في الدوائر للقواعد الآتية:
لا نختار نفس المُوَجّه مرّتين لنفس المسار.
إذا اخترت نفس العُقْدة مرّتين، فالمؤكد أنّ العُقْدة ستكون عُقْدة الحراسة (Guard node) وهي عُقْدة الدخول إلى شبكة Tor، أو نقطة الخروج وكلاهما موضعٌ خطر؛ فهناك احتمال 2/3 أنْ تكون كلتا النقطتين (الحراسة والخروج) تشكلان خطرًا من الهجمات، وبالتالي نريد تجنب ذلك.

هذا ليس بمطمئن؛ يتغير لون العُقْدة لتظهر بأنّها هي نفسها.
لا نختار أي موجّه من نفس مجموعة جهاز آخر في نفس المسار، يوجد جهازي توجيه في نفس المجموعة إذا أدرجَ كلّ واحدٌ منهما الآخر في إدخالات “المجموعة” الخاصة بواصفه.
يمكن للمشغلين الذين يديرون أكثر من عُقدة Tor اختيار ما يدل على أنّ عقدهم كـ “مجموعة”، هذا معناه أنّ كلّ العُقَد لديها نفس الأصل (مشغل شبكتهم)، هذا إجراء مضاد لهجمات الدخول والخروج، رغم أنّ المشغلين ليسوا ملزمين بإعلان “المجموعة” إذا ما رغبوا، فإنْ كانوا يرغبون أنْ يكونوا عُقدة حراسة(ستُناقش قريبًا) فالمستحسن إعلان “المجموعة”، رُغم أنها خطوة غير مطلوبة.

لا نختار أكثر من مُوَجّه واحد في شبكة مجزئة ذات /16 بت، أيّ أنّ الشبكة الفرعية لا تتكرر أكثر من مرّة.
تحدد تجزئةُ الشبكة الشبكات، تتكون عناوين IP من أربع مجموعات من “مجموعة ثمانية” حجم الواحدة منهم 8 بت، كمثال: عنوان موقع جوجل بالنظام الثنائي هو: 01000000.11101001.10101001.01101010
أول 16 بت (الشبكة الفرعية / 16) هي 01000000.11101001 والذي يعني أنّ Tor لا يختار أيّ عُقد تبدأ بنفس الـ 16 بت كالموجودة في العنوان أعلاه، مرةً أخرى، هذا إجراءٌ مضاد لهجمات الدخول/ الخروج.

غير مسموح.
إذا بَدَت لك تجزئة الشبكة مُربكة، فهنا في الرابط أدناه كود بلغة بايثون يساعدك على إيجاد الشبكة الفرعية:
https://repl.it/repls/DarkorangePrettyMinimalsystem
لا نختار أي مُوَجّه غير فعّال أو غير صالح إلا لو هيأناه لذلك، افتراضيًا، هُيّأت المُوَجّهات غير الفعالة للسماح بأنْ تكون في الوسط أو موضع التقاء.
غير فعالة تعني أنّ العُقْدة غير متصلة حاليًا بالإنترنت، أنت لا تريد اختيار أشياء غير متصلة بالإنترنت، غير صالحة تعني أنّ بعض الإعدادات في ملف تكوين Tor خاطئة، أنت لا تريد قبول إعدادات غريبة في حالة محاولة أحدهم اختراق أو تخريب شيء ما.
العُقْدة الأولى يجب أن تكون عُقْدة الحراسة.
عُقْدة الحراسة عقد مميزة لأنها من ترى عنوان الـ IP الحقيقي للمستخدم، وأمرٌ مكلف أنْ تصبح عُقْدة حراسة. (تحافظ على وقت تشغيل لأسابيع، وعرض نطاق جيّد)
* عرض النطاق (bandwidth): السعة التي يُسمح بها لنظام ما لكي ينقل البيانات عبر اتصال ما.

هذا ممكن للشركات الكبيرة التي لديها وقت تشغيل يصل إلى 99% (مثل نتفليكس)، ليس لدى Tor طريقة لمنع خصم قوي من تسجيل كمية من عقد الحراسة، في الوقت الحالي، صُمم Tor ليبقى مع نقطة حراسة واحدة كل 12 أسبوع، يعني 4 عُقد حراسة كل سنة.
هذا يعني إنْ كنت تستخدم Tor مرة لمشاهدة أمازون برايم فيديو، نسبيًا، غير محتمل أنْ تكون نتفليكس هي عُقْدة الحراسة الخاصة بك، بالطبع، كلّما زادت نقاط الحراسة التي توفّرها نتفليكس زادت احتمالية أنْ تكون هي عُقْدة الحراسة الخاصة بك، رُغم ذلك، لو علِمتْ نتفليكس أنّك متصل بشبكة Tor لمشاهدة أمازون برايم فيديو فسيتعين عليهم الانتظار أربعة أسابيع لتأكيد شكوكهم حول ذلك، ما لم يهاجموا عُقْدة الحراسة ويسيطروا عليها.
أنْ تصبح نقطة حراسة لمنظمة كبيرة سهلٌ نسيًا لكن أنْ تصبح عُقْدة خروج فإنّه أمرٌ صعبٌ بعض الشيء؛ إلا أنه أمرٌ لا يزال ممكنًا، لنفترض أنّ هذه المنظمة الكبيرة لديها قوة حاسوبيّة غير محدودة ليمكنها من القيام بذلك، هذا حل ليجعل الهجوم مكلف جدًا مع معدل نجاح منخفض.
كلّما زاد عدد مستخدمي Tor المنتظمين زادت صعوبة الهجوم ولو من منظمة كبيرة، في حال كانت نتفليكس تتحكم بنسبة 50/100 في عقد الخروج في الشبكة.

احتمالية اختيارك لعُقْدة خروج من نتفليكس هي 50%.
إذا ما انضمت 50 عُقدة عادية فجأةً، فهذا يُشكل نسبة 50/150، مما يقلل من احتمالية امتلاك نتفليكس لعُقد الحراسة (وبالتالي، هجومٌ محتمل)، ويجعله أكثر كلفةً.

هناك قوة في الأرقام في خدمة Tor.
خدمات Tor المَخفيّة
ربما سمعت هذه الشائعات من فيلم The Hangover 3: هناك مواقع في الويب المظلم (dark weeb) ، على Tor عندما تدخله سترى هناك أشخاص يفعلون أشياء سيّئة، يبيعون أشياء غير قانونية أو ما هو أسوأ.
عند حديث الناس عن هذه المواقع الالكترونية فهم يتحدثون عن خدمات Tor المَخفيّة، وهذه الادعاءات المغلوطة تستحق وبصراحة مدونة كاملة عنها، الخدمات المَخفيّة هي خوادم، مثلها مثل أي حاسوب عادي.

باستثناء الخدمة المَخفيّة “Tor Hidden Service” والتي تسمح بالتواصل بين المستخدم والخادم دون معرفة هوية الآخر.

يعلم الجهاز (المتمثل بعلامة الاستفهام) أنه يريد الوصول إلى خادم نتفليكس، لكنه لا يعرف أي شيء عن الخادم ولا الخادم يعرف شيء عن الجهاز المطلوب الوصول إليه، أمرٌ محير؟ لا تقلق، سنشرحه لاحقًا.
عند إعداد خادم على Tor للعمل كخدمة مَخفيّة، يُرسل الخادم رسالة إلى بعض الموجّهات البَصَلِيّة المحددة تسألهم عما إذا ما كانوا يريدون أنْ يكونوا نقطة مقدمة للخادم، الأمر متروك تمامًا للخادم فيمن اختاره ليكون نقطة المقدمة، رغم أنهم عادة ما يطلبون ثلاثة مُوَجّهات لتكون نقطة مقدمة.

تُعرف نقطة المقدمة (introduction point) بأنّها هي من ستُعرّف النّاس بالخادم.
بعد ذلك سيُنشئ الخادم ما يسمى واصف الخدمة المَخفيّة (hidden service descriptor)، والذي يحتوي على مفتاح عام وعنوان IP لكل نقطة دخول، ثم سيرسل واصف الخدمة المَخفيّة ذلك إلى جدول التجزئة الموزع (distributed hash table) وهذا يعني أنّ كل مُوَجّه بَصَلِيّ (وليس فقط نقطة الالتقاء) سيحتفظ بجزء معلومات الخدمة المَخفيّة.
إذا حاولت البحث عن خدمة مخفيّة، ستستجيب نقطة المقدمة وتعطيك كامل واصف الخدمة المَخفيّة، وعنوان الخدمة المَخفيّة لنقطة المقدمة.
إن المفتاح لجدول التجزئة هو العنوان البَصَلِيّ، والعنوان البَصَلِيّ مشتق من المفتاح العام للخادم.
الفكرة هي أنّ العنوان البَصَلِيّ لم يُنشر عبر شبكة Tor بأكملها، وعوضًا عن ذلك ستجده بطرائق أخرى منها صديقٌ يُخبرك بالعنوان أو عبر الانترنت (العناوين تنتهي بـ .onion).
تقتضي وظيفة جدول التجزئة الموزع أنّ الغالبية العظمى من العُقد لن تعرف الواصف لمفتاح معين.
لذلك -تقريبًا- كل مُوَجّه بَصَلِيّ منفرد سيكون لديه أدنى معرفة بالخدمة المَخفيّة، ما لم يرغبوا حقًا في اكتشافها.

لنفترض أنّ أحدهم أعطاك عنوان بَصَلِيّ، تطلُب الواصف من جدول التجزئة، وسيعود لك بخدمات نقاط المقدمة.
إذا كنت تريد الوصول إلى العنوان البَصَلِيّ، ستطلب أولاً الواصف من جدول التجزئة، والواصف لديه لنقل من 4 إلى 5 عناوين IP لعُقَد التقديم، ستختار واحد عشوائيًا ولنقل أعلاهم.

ستطلُب من نقطة المقدمة تعريفك بالخادم، وبدلاً من إجراء اتصال مباشر بالخادم، تنشئ نقطة التقاء (rendezvous point) عشوائية في الشبكة بواسطة مُوَجّهات بَصَلِيّة محددة.

ثم تنشئ دائرة إلى نقطة الالتقاء تلك ثم ترسل رسالة إلى نقطة الالتقاء تسأل إنْ كان بإمكانها تقديمك إلى الخادم باستخدام نقطة التقديم التي استخدمتها للتو، ثم ترسل نقطة الالتقاء بكلمة مرور مرة واحدة (في هذا المثال، لتكن Labrador).
تُنشئ نقطة الالتقاء دائرة إلى نقطة المقدمة وترسل لها كلمة (Labrador) وعنوان IP.

تُرسل نقطة التقديم الرّسالة إلى الخادم ويختار الخادم قبولها أو رفضها.

إذا قبل الخادم الرّسالة؛ فإنه سينشئ دائرة إلى نقطة الالتقاء.

يرسل الخادم نقطة الالتقاء برسالة، نقطة الالتقاء تنظر في كل من رسائل حاسوبك والخادم، إذا قالت الرّسالة: “حسنًا”، استلمتُ رسالة من هذا الحاسوب والذي يرغب في الاتصال بالخادم، كذلك استلمت رسالة من الخادم يسأل عما إن كان بإمكانه الاتصال بحاسوبك؛ لذلك يجب عليها التحدث كلاً منهما للآخر.
ستعمل نقطة الالتقاء كقفزة أخرى في الدائرة ثمّ تتصل بها.

باختصار؛ تعمل الخدمة المَخفيّة كالآتي:
- تحتسب الخدمة المَخفيّة زوج المفاتيح (الخاص والعام؛ اللامتناظر).
- ثم تختار الخدمة المَخفيّة بعض المرحلات كنقاط مقدمة.
- ثم يذيع المفتاح العام لنقاط المقدمة عبر Tor.
- بعد ذلك تنشئ الخدمة المَخفيّة واصفًا للخدمة المَخفيّة، يحتوي على المفتاح العام ونقاط التقديم.
- تُذيع الخدمة المخفية واصف الخدمة المخفية بخصوصية.
- ثمّ يحمل واصف الخدمة المَخفيّة إلى جدول التجزئة الموزع (DHT).
- يفهم العميل أن عنوان .onion من خدمة مخفية خارج النطاق، (كموقع ويب عام) (عنوان $hash.onion اسم مكون من 16 حرف مشتق من المفتاح العام للخدمة).
- بعد استرداد عنوان .onion يتصل العميل بجدول التجزئة الموزع ويسأله عن $hash.
- في حال وجوده، يتعرف العميل إلى المفتاح العام للخدمة المَخفيّة ونقاط التقديم.
- يختار العميل مرحلاً عشوائيًا لبناء دائرة عليه، ليخبره بسرّ لمرة واحدة (one-time secret)؛ يعمل المرحل المُختار كنقطة التقاء.
- ينشئ العميل رسالة تعريف، يحتوي على عنوان نقطة الالتقاء والسر لمرة واحدة، قبل تشفير الرّسالة باستخدام المفتاح العام للخدمة المَخفيّة.
- يرسل العميل الرّسالة عبر دائرة Tor إلى إحدى نقاط المقدمة، مطالبًا بإعادة توجيهها إلى الخدمة المَخفيّة.
- تقوم الخدمة المَخفيّة بفك تشفير الرّسالة المقدمة لها بمفتاحها الخاص للتعرف إلى نقطة الالتقاء والسر لمرة واحدة.
- تُنشئ الخدمة المَخفيّة رسالة التقاء، تحتوي على السر لمرة واحدة وترسلها عبر دائرة إلى نقطة الالتقاء.
- تُخبر نقطة الالتقاء العميل بأنه أنشئ اتصال.
- يتحدث العميل (client) والخدمة المَخفيّة عبر نقطة الالتقاء هذه، كل حركة البيانات تُشفّر بطريقة “تشفير بين الطرفيات end-to-end”، وتنقل نقطة الالتقاء البيانات ذهابًا وإيابًا، لاحظ أنّ كلاً من العميل والخدمة المَخفيّة يبني دائرة إلى نقطة الالتقاء، ثلاث قفزات لكل دائرة، بإجمالي ست قفزات.
- ترجمة: أكرم عبود.
- مراجعة: نور عبدو.