الخلاصة
- تألف امتياز Amoeba من منفذ خادم بطول 48 بت، ورقم كائن بطول 24 بت، وخريطة حقوق من 8 بتات، وحقل تحقق بطول 48 بت؛ أي مرجع حامل للسلطة تستطيع عمليات المستخدم تخزينه ونقله.
- قبول الخادم للرمز يثبت توافقه مع قاعدة التحقق الحالية وأن العملية المطلوبة تقع ضمن الحقوق الظاهرة. ولا يثبت اسم الحامل أو التفويض أو الغرض أو اكتمال أثر لاحق أو استمراره.
سلطة لا تحتوي خانة باسم صاحبها
كانت عملية العميل في Amoeba ترسل إلى الخادم سلسلة قصيرة من البتات مع طلب العملية. يوجّه المنفذ الطلب إلى الخدمة، ويختار رقم الكائن مورداً داخل نطاق تلك الخدمة، وتحدّد بتات الحقوق الأفعال التي يمكن للحامل طلبها، فيما يمكّن حقل التحقق الخادم من كشف التعديل غير المشروع أو محاولة توسيع السلطة.
لا توجد في الحقول الأربعة خانة «الشخص».
لم يكن ذلك نقصاً ينتظر إضافة قاعدة هويات. بل كان جزءاً من تصميم موزع يسمح لعمليات المستخدم نفسها بحفظ الامتيازات ونسخها وتمريرها. تسافر السلطة مع المرجع، ويتحقق الخادم من الرمز ومن العملية لا من السيرة الذاتية لمقدمه. لذلك لم يحتج النظام إلى جهة مركزية تسجل بصورة مستمرة من يملك كل امتياز.
أجاب التصميم عن سؤال محدد بدقة: هل يحق لحامل هذا المرجع الصالح أن يطلب هذه العملية على هذا الكائن من هذا الخادم؟ لكنه لم يجب عن هوية الحامل في المؤسسة، ولا عن سبب الاستخدام، ولا عن نية الموافق، ولا عما إذا كانت النتيجة المتوقعة قد تحققت خارج الخادم.
لكل حقل مهمة محدودة
يحدد بحث 1986 المعنون Using Sparse Capabilities in a Distributed Operating System التنسيق صراحة: 48 بت لمنفذ الخادم، و24 بت لرقم الكائن، و8 بتات للحقوق، و48 بت لحقل التحقق، بمجموع 128 بت.
لا يؤدي المنفذ ورقم الكائن الوظيفة نفسها. فالمنفذ يعرّف نقطة الخدمة في نموذج الاستدعاء البعيد في Amoeba، بينما يكتسب رقم الكائن معناه داخل الخادم. ويشبّه تقرير الحالة الصادر عام 1991 رقم كائن خادم الملفات برقم inode. تستطيع النواة استخدام المنفذ للعثور على الخادم، لكنها تمرر إليه بقية الامتياز؛ وهكذا تبقى عملية الوصول إلى الخدمة منفصلة عن تفسير الكائن.
أما بايت الحقوق فليس دستوراً عاماً من ثمانية أوامر. إنه خريطة بتات يحدد معناها واجهُ الخادم ونوع الكائن. قد تعني البتات في ملف القراءة والكتابة والحذف، وقد تعني في كائن عملية التشغيل والإيقاف والفحص. لا تجعل وحدة العرض هذه الأفعال متطابقة، لكنها تمنح كل خدمة سطحاً صغيراً وصريحاً لتحديد سلطة الحامل.
يحمي حقل التحقق هذا التصريح. بما أن العمليات العادية تستطيع حفظ الامتياز ونسخه، فلا يمكن الاعتماد على وسم سري محجوب داخل النواة. يحتفظ الخادم بسر مرتبط بالكائن ويستخدم تحويلاً أحادي الاتجاه ليتحقق من ارتباط رقم الكائن والحقوق الظاهرة بقيمة التحقق المقدمة. يستطيع عميل قلب بت حق في ذاكرته، لكنه لا ينتج بذلك قيمة تحقق صحيحة تناسب التغيير.
لهذا يجب التعامل بحذر مع وصف «مرجع غير قابل للتزوير». صُممت البنية التاريخية لجعل الاصطناع غير عملي ضمن افتراضاتها. وهي لا تمنح حقلاً من 48 بت ضماناً مطلقاً أمام ميزانيات الهجوم الحديثة، ولا تمنع استعمال رمز نُسخ من حامل مخول، ولا تشفّر امتيازاً انكشف على قناة غير آمنة. ويشير تقرير 1991 نفسه إلى احتمال الحاجة إلى التشفير لمنع الانكشاف العرضي في البيئات غير الآمنة.
تقليص السلطة كان طرحاً لا إضافة
بدأ امتياز المالك بكل بتات الحقوق مفعلة. وإذا أراد الحامل منح عملية أخرى سلطة أضيق، أمكنه أن يطلب من الخادم تقييدها بقناع. يتحقق الخادم أولاً من الامتياز الأصلي، ثم يأخذ تقاطع الحقوق الموجودة مع القناع المطلوب، ويصدر للكائن نفسه امتيازاً جديداً بحقوق أقل وحقل تحقق مشتق. ويلخص مثال std_restrict في دليل البرمجة جوهر العملية: rights &= mask.
اتجاه العملية حاسم. يمكن للقناع إزالة السلطة، ولا يمكنه إضافة حق لم يكن موجوداً في الامتياز المقدم. وإذا غيّر المستخدم البتات الظاهرة ليطالب بحقوق أكثر، لم تعد قيمة التحقق متطابقة ورفض الخادم الرمز. كان التوهين نقصاً قابلاً للتحقق، لا مجرد تسمية إدارية لعملية التفويض.
ولا ينبغي دمج طرق الحماية الواردة في المصادر. يستكشف بحث 1986 عدة تصميمات: طريقة تربط قيمة عشوائية محفوظة بالحقوق من خلال دالة أحادية الاتجاه، وطريقة يطلب فيها العميل من الخادم سك امتياز مقيد، واقتراحاً للتوهين المحلي باستخدام عائلة من الدوال الأحادية الاتجاه التبديلية. أما تقرير 1991 فيصف الطريقة المدعومة بالخادم المستخدمة في روايته عن Amoeba. إنها تجارب مترابطة، وليست خوارزمية واحدة بلا فروق.
ينطبق هذا الانضباط على نسبة العمل أيضاً. كتب بحث Using Sparse Capabilities كل من Andrew S. Tanenbaum وSape J. Mullender وRobbert van Renesse. وكتب تقرير The Amoeba Distributed Operating System—A Status Report تانينباوم وM. Frans Kaashoek وفان رينيس وHenri E. Bal. يمثل تانينباوم مدخلاً بشرياً مشروعاً إلى القصة، لكنه لا يلغي الطبيعة الجماعية لتصميم النظام وتنفيذه.
الحيازة منحت سلطة ولم تمنح هوية
يقول بحث 1986 إن الحائز يستطيع إعطاء عملية أخرى نسخة مطابقة بإرسال نمط البتات. ويذكر أيضاً أن النظام لا يحتاج إلى سجل مركزي يبين من يملك أي امتياز. منحت هاتان الخاصيتان الآلية قابلية النقل والشفافية المكانية، وحددتا في الوقت نفسه سقفها الإثباتي.
يعني نجاح التحقق أن الرمز المقدم صالح للكائن المسمى وللحقوق الظاهرة في ظل السر الحالي للخادم. لكنه لا يبين إن كانت العملية قد تلقته مباشرة من منشئ الكائن، أو حصلت عليه عبر دليل، أو أخذته من عملية أخرى، أو نسخته من مكان لم يكن ينبغي أن ينكشف فيه. ولا يربطه بموظف أو دور تعاقدي أو جهة قانونية ما لم توفر آلية أخرى ذلك الربط.
كذلك لا تثبت الصلاحية الغرض. يمكن استخدام الرمز القادر على الكتابة في صيانة اعتيادية، أو استرداد طارئ، أو تجربة غير معتمدة. تقيد الحقوق الأفعال التي سيقبلها الخادم، لكنها لا تسجل المبرر المهني لاختيار الفعل الآن.
وللإلغاء حد مماثل. يمكن لتغيير القيمة العشوائية التي يخزنها الخادم إبطال الامتيازات الحالية لكائن بأكمله. ذلك إعادة ضبط قوية على مستوى الكائن، لكنه ليس معرفة انتقائية بمكان كل نسخة، ولا إسناداً رجعياً لاستخدام سابق، ولا دليلاً على حذف البتات المسربة من كل عملية وأرشيف.
ينتهي الرد عند الحد الدلالي للخادم
لنفترض أن امتيازاً صالحاً يسمح بعملية وأن الخادم أعاد نتيجة نجاح. أقوى عبارة مبررة هي التي تعرفها دلالة عملية الخادم: لقد قبل الخادم التعديل ونفذه وفقاً لتطبيقه. لا يثبت ذلك تلقائياً أن التغيير صمد بعد عطل، أو وصل إلى كل النسخ المتماثلة، أو حرك مشغلاً مادياً، أو أتم دفعة خارجية، أو امتثل لإجراء التغيير المؤسسي.
تلك أسطح ضبط مستقلة. الاستمرار من اختصاص التخزين والاسترداد. والفعل الشبكي أو المادي من اختصاص النظام الذي ينفذه ويراقبه. والتفويض البشري من اختصاص المؤسسة التي تحدد الولاية. قد يفتح رمز صغير عملية واحدة من دون أن يصبح إيصالاً شاملاً لكل ما يفترض أن يقع بعدها.
تكمن القيمة الدائمة لمثال Amoeba في أنه جمع التسمية والحماية بوضوح ثم توقف. ليست هذه الحدود ضعفاً ينبغي إخفاؤه، بل ما يجعل الآلية قابلة للفهم.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
