الخلاصة

  • استبدلت RFC 3090 الحالات المختلفة لكل خوارزمية وعبارة «آمنة تجريبياً» بثلاث صفات: آمنة عالمياً، وآمنة محلياً، وغير آمنة.
  • بقي على كل محلّل أن يحوّل تلك الصفات إلى قرار ثنائي اعتماداً على مراسيه وخوارزمياته ودليل التفويض والمسار الذي استطاع التحقق منه.

توقيع المنطقة لم يكن كافياً لتغيير كل المراقبين

لم ينتشر DNSSEC المبكر في شجرة متصلة من الجذر. استطاعت منطقة أن توقّع سجلاتها قبل أن يربطها الأب بسلسلة ثقة. واستطاعت مجموعة اختبار أن تثبّت مفتاح المنطقة مباشرة في محلّلاتها، بينما لم تملك بقية المحلّلات نقطة البدء تلك. لذلك كان وصف المنطقة بأنها «آمنة» يخفي الفرق بين ما نشره المشغّل وما يستطيع المراقب إثباته.

فصلت RFC 3090 أربعة أدوار. يحدد مدير المنطقة ما يُنشر، ويحافظ خادم التحديث الديناميكي على حالة التوقيع، ويعبّر الأب عن الانتقال إلى الابن، ويقرر المحلّل إن كانت المواد المتاحة له تكفي للتحقق. توقيع الابن وإشارة الأب وإعداد الثقة المحلي ضوابط مختلفة لا يحل أحدها محل الآخر.

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

الجزيرة لا تظهر إلا لمن يعرف جذرها الصحيح

أمكن لمجموعة متصلة من المناطق الموقعة تحت أب غير آمن أن تكوّن جزيرة أمن. فإذا ضُبط مفتاح قمة الجزيرة كمرساة ثقة، استطاع المحلّل التحقق نزولاً داخلها من دون سلسلة موثوقة تبدأ من جذر DNS.

وهكذا أمكن لمحلّلين سليمين أن يصفا البيانات نفسها بطريقتين مختلفتين. من يملك المرساة والمسار المقبول يراها آمنة محلياً؛ ومن لا يملك نقطة بدء موثوقة يراها غير آمنة. لم تتغير ملفات المنطقة، بل تغيرت حالة جهة التحقق.

ومع تعدد المراسي وجب اختيار الأقرب. عرّفت RFC 3090 أقرب جذر أمني بأنه الجذر المضبوط ذو أطول تطابق مرتب للتسميات من يمين الاسم المطلوب. البدء من جذر أبعد قد يصطدم بمفتاح NULL ويؤدي إلى حكم بعدم الأمان، مع أن جزيرة أقرب مضبوطة بالفعل. لذلك كانت الجزر المتداخلة مسألة تنفيذ وإعداد، لا رسماً نظرياً فقط.

لا يكفي توقيع ظاهر في التقاط الحزم لإثبات الحكم. يلزم سجل المراسي الفعالة ومنطق اختيار نقطة البدء والخوارزميات المدعومة والمواد المسترجعة والوقت والسياسة المحلية. نجاح التحقق حدث ناتج عن هذا التركيب، لا صفة أبدية مطبوعة على المنطقة.

كان الأب يقول «آمن» أحياناً بالصمت

حملت بنية RFC 2535 قاعدة تخالف الحدس عند حد الأب والابن. في أب آمن، قد يدل غياب KEY للابن على أن الابن آمن، بينما يدل مفتاح NULL الموقّع على أن الابن غير آمن. أمكن للحالة الإيجابية أن تظهر كغياب، وللحالة السلبية أن تترك جسماً موقعاً.

وصفت RFC 3090 ذلك بأنه غير بديهي ومزعج تشغيلياً. لم تستبدل الآلية، بل أوضحت القراءة الصحيحة. لذا لا يصبح غياب سجل دليلاً عاماً. يجب أولاً إثبات أمن الأب وأن الغياب جزء من سياق موثق وأن قواعد ذلك الجيل من البروتوكول هي المطبقة.

قدمت RFC 3658 لاحقاً سجل DS، ثم بنت RFC 4033 و4034 و4035 البنية الحديثة من DNSKEY وRRSIG وNSEC وDS بدلاً من KEY وSIG وNXT. تشرح هذه النصوص التطور، لكنها لا تبيح إعادة تسمية أدلة عام 2001 بأشياء لم تكن موجودة آنذاك.

«عالمياً» كانت فئة صارمة وليست شهادة حصانة

احتاجت المنطقة الآمنة عالمياً إلى الخوارزميات الإلزامية وسلسلة توقيعات أبوية داخل الشجرة ومفاتيح توقيع مناسبة عند القمة وتغطية NXT وتوقيعات مجموعات السجلات المطلوبة. واستطاعت المنطقة الآمنة محلياً استعمال خوارزميات أخرى أو مسار تحقق مضبوط خارج الشجرة مع الاحتفاظ بخصائص المنطقة الموقعة. وما عدا ذلك كان غير آمن.

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

ولم تمنع أقوى فئة السلوك الخاطئ. قد يقبل محلّل معطوب بيانات فاسدة، وقد يعطل أب مخترق الخدمة. لم تصنع RFC 3090 علامة خضراء مطلقة؛ بل أعادت توزيع الدليل بين محتوى الابن وبيان الأب وإعداد المحلّل وقواعد تركيبها.

المصادر

  1. https://www.rfc-editor.org/info/rfc3090
  2. https://www.rfc-editor.org/rfc/rfc3090.html
  3. https://www.rfc-editor.org/rfc/rfc3090.txt
  4. https://datatracker.ietf.org/doc/rfc3090/
  5. https://www.rfc-editor.org/errata/rfc3090
  6. https://www.rfc-editor.org/rfc/rfc2535.html
  7. https://www.rfc-editor.org/rfc/rfc3007.html
  8. https://www.rfc-editor.org/rfc/rfc3008.html
  9. https://www.rfc-editor.org/rfc/rfc3658.html
  10. https://www.rfc-editor.org/rfc/rfc4033.html
  11. https://www.rfc-editor.org/rfc/rfc4034.html
  12. https://www.rfc-editor.org/rfc/rfc4035.html
  13. https://www.rfc-editor.org/rfc/rfc5011.html