إنشاء مفتاح توقيع LocalPolicy وإدارته
الإنشاء
عند تثبيت macOS لأول مرة في المصنع، أو عند إجراء تثبيت-محو مُقيّد، يقوم الـ Mac بتشغيل التعليمات البرمجية من قرص RAM للاستعادة المؤقتة لتهيئة الحالة الافتراضية. أثناء هذه العملية، تنشئ بيئة الاستعادة زوجًا جديدًا من المفاتيح العامة والخاصة يتم الاحتفاظ بها في Secure Enclave. ويُشار إلى المفتاح الخاص باسم مفتاح هوية المالك (OIK). في حالة وجود أي OIK بالفعل، يتم إتلافه كجزء من هذه العملية. تعمل بيئة الاستعادة أيضًا على تهيئة المفتاح المستخدم لقفل التنشيط؛ مفتاح هوية المستخدم (UIK). يوجد جزء من هذه العملية يكون فريدًا لأجهزة كمبيوتر Mac المزودة بسيليكون Apple، وهو أنه عندما تُطلب شهادة UIK لقفل التنشيط، يتم تضمين مجموعة من القيود المطلوبة التي سيتم فرضها في وقت التحقق في LocalPolicy. وإذا لم يتمكن الجهاز من الحصول على UIK مُعتمدة لقفل التنشيط (على سبيل المثال، نظرًا لأن الجهاز مرتبط حاليًا بحساب "العثور على الـ Mac" وتم الإبلاغ عن فقدانه)، فلن يتمكن من المضي قدمًا لإنشاء سياسة محلية. إذا تم إصدار شهادة هوية مستخدم (ucrt) لجهاز ما، فإن هذه الشهادة تحتوي على قيود السياسة المفروضة على الخادم وقيود السياسة التي يطلبها المستخدم بامتداد X.509 v3.
عندما يتم استرداد قفل تنشيط/ucrt
بنجاح، يتم تخزينه في قاعدة بيانات على جانب الخادم وإعادته كذلك إلى الجهاز. وبعد أن يحتوي الجهاز على ucrt، يتم إرسال طلب شهادة للمفتاح العام الذي يتوافق مع OIK إلى خادم مرجع التوثيق الأساسي (BAA). ويتحقق BAA من طلب شهادة OIK باستخدام المفتاح العام من شهادة ucrt المخزنة في قاعدة بيانات BAA التي يمكن الوصول إليها. إذا تمكّن BAA من التحقق من الشهادة، فإنه يصادق على المفتاح العام، ويُعيد شهادة هوية المالك (OIC) الموقَّعة من قِبل BAA وتحتوي على القيود المخزنة في ucrt. ويتم إرسال OIC مرة أخرى إلى Secure Enclave. منذ ذلك الحين، كلما وقّع Secure Enclave على LocalPolicy جديدة، فإنه يربط OIC بـ Image4. تحتوي LLB على ثقة مضمنة في شهادة BAA الجذرية، مما يجعلها تثق في OIC، مما يجعلها تثق في توقيع LocalPolicy العام.
قيود RemotePolicy
تحتوي جميع ملفات Image4، وليست السياسات المحلية فقط، على قيود على تقييم ملف بيانات Image4. وهذه القيود يتم ترميزها باستخدام معرفات كائنات خاصة (OID) في شهادة الطرف. تبحث مكتبة التحقق من Image4 عن OID الخاص بقيد الشهادة الخاصة من شهادة أثناء تقييم التوقيع، ومن ثم تعمل على تقييم القيود المحددة فيه آليًا. وتكون القيود على الأشكال التالية:
يجب وجود X
يجب عدم وجود X
يجب أن يحتوي X قيمة معينة
لذلك، على سبيل المثال، بالنسبة للتوقيعات "الشخصية"، ستحتوي قيود الشهادة على القيد "يجب وجود ECID"؛ وبالنسبة للتوقيعات "العامة"، ستحتوي على القيد "يجب عدم وجود ECID". تم تصميم هذه القيود لتضمن أن تكون جميع ملفات Image4 المُوقّعة بواسطة مفتاح معين متوافقة مع متطلبات معينة لتجنب إنشاء ملف بيانات Image4 مُوقّع بشكل خاطئ.
في سياق كل LocalPolicy، يُشار إلى قيود شهادة Image4 هذه باسم RemotePolicy. يمكن أن توجد RemotePolicy مختلفة لسياسات LocalPolicies في بيئات التمهيد المختلفة. وتُستخدم RemotePolicy لتقييد LocalPolicy على recoveryOS بحيث عند تمهيد recoveryOS يمكن أن تتصرف فقط كما لو كانت تقوم بالتمهيد وفقًا لسياسة التأمين الكامل. ويؤدي ذلك إلى زيادة الثقة في سلامة بيئة تمهيد recoveryOS كمكان يمكن تغيير السياسة منه. تقوم RemotePolicy بتقييد LocalPolicy لاحتواء ECID الخاص بـ Mac الذي تم إنشاء LocalPolicy عليه، والتجزئة العشوائية للسياسة البعيدة (rpnh
) المحددة المخزنة في مكون التخزين الآمن على هذا الـ Mac. يتغير rpnh
، وبالتالي RemotePolicy، فقط عند اتخاذ إجراءات لميزة العثور على الـ Mac وقفل التنشيط، مثل التسجيل وإلغاء التسجيل والقفل عن بُعد والمسح عن بُعد. يتم تحديد قيود السياسة البعيدة وتخصيصها في وقت اعتماد شهادة مفتاح هوية المستخدم (UIK) ويتم تسجيلها في شهادة هوية المستخدم الصادرة (ucrt). ويتم تحديد بعض قيود السياسة البعيدة، مثل ECID و ChipID و BoardID، بواسطة الخادم. وقد تم تصميم ذلك لمنع جهاز واحد من توقيع ملفات LocalPolicy لجهاز آخر. قد يتم تحديد قيود السياسة البعيدة الأخرى بواسطة الجهاز لمنع خفض المستوى الأمني للسياسة المحلية دون توفير كل من المصادقة المحلية المطلوبة للوصول إلى OIK الحالي والمصادقة عن بُعد للحساب الذي تم قفل تنشيط الجهاز له.