أمن Linux / متقدم: التصميم المقيد والتغيير المتحقق / الدرس 15
فصل التشفير والتحكم بالوصول والتعافي
تحديد التهديد ودورة البيانات المخزنة والوصول بعد الفتح ونسخ الاحتياط وأدلة الاستعادة.
في هذه الصفحة
أهداف الدرس
- شرح أن تشفير التخزين لا يستبدل صلاحية التشغيل.
- فحص ادعاء الاحتياط بالمحتوى والأذونات وسلوك التطبيق لا الوجود وحده.
اختيار ادعاء الحماية قبل الآلية
تختلف حدود البيانات المخزنة والمستخدمة والنقل والاحتياط والمفاتيح. يوفر dm-crypt تشفير جهاز كتل وفق الإعداد المختار، ولا يحدد ذلك إدارة مفاتيح أو صلاحية تطبيق كاملة. حدد سيناريو الفقد والكشف والفاعلين الذين يحتفظون بالوصول. تختلف معالجة الجداول العامة والاتصال الخاص. لا يهيئ المساق تشفيرا أو يفتح وحدة أو يولد مفتاحا أو يقرأ جهازا أو يجري عملية تخزين أو تشفير؛ فالأمثلة حقائق سياسة معلنة.
فصل الوصول التشغيلي عن الوسيط المشفر
عندما يفتح نظام معتمد التخزين تستطيع العملية المخولة قراءة النص عبر المسار العادي. لا يجعل التشفير كل عملية مأمونة أو يمنع الكشف بمخرج مسموح. ينمذج البرنامج الفرق بقيم وقراءة مخولة معلنة دون فك. يراجع الواقع الاعتماد والمفتاح والذاكرة والصلاحية وعمر الفتح. لا تدع الحماية من تشغيل مخترق لوجود التشفير. حدد حيازة المفتاح وسلطة التعافي والفشل بعمليات منصة مدعومة لا شفرة تشفير تدريبية.
facts = {"volumeEncrypted":True, "volumeUnlocked":True, "processMayRead":True}
plaintext_available_in_model = facts["volumeUnlocked"] and facts["processMayRead"]
assert facts["volumeEncrypted"] is True
assert plaintext_available_in_model is True
assert not (facts["volumeEncrypted"] and not plaintext_available_in_model)
print("declared encrypted storage can coexist with authorized plaintext access")
declared encrypted storage can coexist with authorized plaintext access
يقيم البرنامج الكامل ثلاث حقائق دون تشفير أو فك أو استرجاع مفتاح أو تركيب أو قراءة. يثبت فرقا منطقيا لا أمن أو حالة وحدة حقيقية.
معاملة الاحتياط كنسخة أخرى تحتاج حماية
قد يحفظ الاحتياط التوفر ويفتح كشفا آخر. حدد البيانات والبيانات الوصفية والقراءة والاستعادة واسترجاع المفاتيح والاحتفاظ والحذف لكل نسخة. لا يثبت نجاح المهمة الاستعادة أو الأذونات أو حالة التطبيق. يسمي البرنامج مراحل تحقق منتظرة في سجل خيالي دون احتياط أو استعادة. تستخدم الاختبارات المستقلة موارد مؤقتة مملوكة ومصرحا بها، ولا بيانات إنتاج خاصة لواقعية التعليم.
required = {"content-restored", "permissions-restored", "application-behavior-verified"}
observed = {"content-restored"}
pending = sorted(required - observed)
assert pending == ["application-behavior-verified", "permissions-restored"]
assert not required <= observed
print("restoration evidence remains incomplete beyond content")
restoration evidence remains incomplete beyond content
يقارن البرنامج الكامل مجموعات مختلقة دون أرشيف أو قراءة نسخة أو استعادة أو تغيير ملكية أو إذن. البنود متطلبات لا نتائج فعلية.
مراجعة توافق حالة التعافي وأمنها
قد تعيد نسخة أو ملف قديم ضعفا مصححا أو تخالف صيغة البيانات. يحفظ التعافي خصائص الأمن ولا يعيد عملية للعمل فقط. راجع الأسرار والسلطة والحزم والسياسة واستمرارية التدقيق مع البيانات. قد يجعل فقد المفتاح النسخة غير قابلة للاستخدام، ويكشفها وصول تعاف واسع. تجنب وصفة عامة للمفاتيح والحذف، واتبع البنية المسؤولة وافحص المسار المحدد. لا ينفذ المساق تمرينا أو مفتاحا أو خدمة أو جهازا.
الإبلاغ عما تثبته كل طبقة مستقلة
افصل نية التشفير ومعالجة المفتاح المتحققة ووصول التشغيل وحماية الاحتياط والاستعادة المرصودة؛ فلا تستبدلها تسمية مشفر. سجل البيئة والطريقة والمخرج والقيد والخطوة المسؤولة. تثبت الأمثلة علاقة منطقية وبنود تحقق ناقصة فقط، لا الاستعادة أو سرية جهاز أو المحو الآمن أو الجاهزية. يوجه وضوح التهديد والحياة لدليل مفيد بدلا من ضمان عام بآلية واحدة.
الأخطاء الشائعة وإصلاحها
يعني المشفر عجز كل عملية عن القراءة
- لماذا يحدث؟
- تخلط الحماية المخزنة والوصول المفتوح.
- كيف تصلحه؟
- راجع المسارات والسلطة مستقلة.
- كيف تتجنب تكراره؟
- حدد تهديد كل طبقة.
يثبت نجاح الاحتياط قابلية التعافي
- لماذا يحدث؟
- يخلط الإنشاء والاستعادة المتحققة.
- كيف تصلحه؟
- افحص المحتوى والبيانات الوصفية والأذونات والتطبيق.
- كيف تتجنب تكراره؟
- وضح دليل الاستعادة والمفتاح.
يعيد التعافي ضعفا معلوما
- لماذا يحدث؟
- تهمل الحالة الأمنية.
- كيف تصلحه؟
- راجع ملفات مصححة متوافقة وحمايتها.
- كيف تتجنب تكراره؟
- أدرج السلطة والسياسة في الافتراض.
اختبر فهمك
1. الوحدة مشفرة ومفتوحة و processMayRead=true. ماذا يظهر؟
اعرض الحل المشروح
يظهر توفر النص المخول المعلن رغم التشفير المخزن، دون عملية تشفير أو تقييم وحدة. يقيد الدفاع الحقيقي سلطة التشغيل والمخرج مستقلا ولا يفترض منع كل كشف.
2. فحص المحتوى المستعاد فقط. لماذا ينقص الدليل؟
اعرض الحل المشروح
قد تخطئ الملكية والوضع و ACL والسياسة والأسرار والعلاقات. حدد فحوص البيانات والسلوك المناسبة ببيئة معتمدة مستقلة. يحفظ المثال المنتظر ولا يدعي استعادة فعلية.
أهم ما تعلمته
- يعالج التشفير تهديدا محددا لا كل وصول.
- يضيف الاحتياط قدرة ومسؤولية كشف.
- تحتاج الاستعادة دليل البيانات والسلطة والسلوك.