الخلاصة

  • أظهرت مقارنة Jerry Saltzer أن روابط المشاركة في CTSS كانت تسهم في تحديد طريقة الاستخدام، ولذلك كان سحب الحق يتطلب تعديل دليل المستعير، وكان حصر أصحاب الحقوق يقتضي البحث في أدلة النظام كلها.
  • أبقى Multics الرابط عنواناً غير مباشر، ووضع قرار السماح في قائمة التحكم المرتبطة بالمقطع المقصود؛ فصار موضع السلطة أوضح، من دون أن تستعيد القائمة بيانات نُسخت أو تلغي تلقائياً قرارات محفوظة في جلسة أو ذاكرة محلية.

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

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

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

لم يتخلص Multics من الروابط. بل حصر وظيفتها في التسمية والوصول إلى الوجهة. الرابط عنوان غير مباشر، ولا يمنح امتيازاً. وتبقى الإجابة عن سؤال السماح في قائمة التحكم بالوصول التابعة للمقطع المشار إليه.

القرار بجوار المورد

ينظم Multics، كما تصفه ورقة 1974، التخزين في مقاطع مسماة. المقطع وحدة للفهرسة، ووحدة تُربط بالذاكرة الافتراضية للعملية، ووحدة حماية مستقلة. وتحمل كل عملية معرّفاً غير قابل للتزوير للجهة المسؤولة عنها. عند طلب مورد مفهرس، يُقارن ذلك المعرّف بإدخالات قائمة المورد.

ولا تكفي كلمة «وصول» وحدها. للمقاطع أوضاع منفصلة للقراءة والكتابة والتنفيذ. ولطوابير الرسائل صلاحيات للإيداع والسحب، وللأدلة صلاحيات للعرض والتعديل والإضافة. الاسم يجيب عن المورد المقصود؛ والقائمة تجيب عن الجهة والفعل المسموح.

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

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

مرونة يصعب فهمها

تسجل الورقة تجربة تراجع عنها Multics نفسه. في نسخة سابقة، عوملت القائمة الابتدائية للدليل كملحق مشترك لقوائم العناصر داخله. بدا ذلك مفيداً لأن تغييراً واحداً في الأعلى قد يؤثر في عناصر كثيرة. لكن تفاعل الملحق مع الإدخالات الخاصة وترتيبها جعل نتيجة التغيير تختلف من عنصر إلى آخر، فأصبح أثر القرار صعب التوقع.

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

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

عندما يحتفظ النظام بقرار قديم

في الورقة اللاحقة التي شارك Saltzer في كتابتها مع Michael D. Schroeder، يظهر مبدأ الوساطة الكاملة: يجب التحقق من سلطة كل وصول إلى مورد. وتضيف ورقة Multics تنبيهاً عملياً. الأنظمة المستمرة قد تتذكر قراراً لاستخدامه لاحقاً، ولذلك ينبغي أن تشرح كيف يصل تغير السلطة إلى تلك الذاكرة المحلية.

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

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

حدود لا يعبرها الإلغاء

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

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

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

المصادر