حافظات المفاتيح لحماية البيانات
تُجمَّع المفاتيح الخاصة بكل من فئات حماية البيانات في الملفات وسلسلة المفاتيح في حافظات المفاتيح وتُدار على iOS و iPadOS و tvOS و watchOS. تستخدم أنظمة التشغيل حافظات المفاتيح التالية: المستخدم والجهاز والنسخ الاحتياطي والضمان ونسخ iCloud الاحتياطي.
حافظة مفاتيح المستخدم
حافظة مفاتيح المستخدم هي المكان الذي يتم فيه تخزين مفاتيح الفئات المغلفة المستخدمة في التشغيل العادي للجهاز. على سبيل المثال، عند إدخال رمز دخول، يتم تحميل NSFileProtectionComplete من حافظة مفاتيح المستخدم ويتم تغليفها. إنه ملف قائمة خصائص ثنائية (.plist) مخزّن في الفئة "بلا حماية".
بالنسبة للأجهزة التي تحتوي على SoCs أقدم من A9، يتم تشفير محتويات ملف .plist بمفتاح محفوظ في التخزين القابل للمسح. لتوفير الأمن لحافظات المفاتيح، يتم مسح هذا المفتاح ومنحه من جديد في كل مرة يغيّر فيها المستخدم رمز الدخول الخاص به.
بالنسبة إلى الأجهزة المزودة بـ SoCs من فئة A9 أو أحدث، يتضمن ملف .plist مفتاحًا يشير إلى تخزين حافظة المفاتيح في خزانة محمية بواسطة قيمة غير قابلة لإعادة التشغيل – تتحكم فيها Secure Enclave.
تدير Secure Enclave حافظة مفاتيح المستخدم ويمكن الاستعلام عنها فيما يتعلق بحالة قفل الجهاز. وتشير إلى أنه لم يتم فتح قفل الجهاز إلا إذا كان يمكن الوصول إلى جميع مفاتيح الفئات الموجودة في حافظة مفاتيح المستخدم وتم فك تغليفها بنجاح.
حافظة مفاتيح الجهاز
تُستخدم حافظة مفاتيح الجهاز لتخزين مفاتيح الفئات المُغلفة المستخدمة في العمليات التي تتضمن بيانات خاصة بالجهاز. وتحتاج أجهزة iPadOS التي تم تكوينها للاستخدام المشترك في بعض الأحيان إلى الوصول إلى بيانات الاعتماد قبل قيام أي مستخدم بتسجيل الدخول؛ ولذلك، يلزم وجود حافظة مفاتيح غير محمية برمز دخول المستخدم.
لا يدعم iOS و iPadOS الفصل المشفر لمحتوى نظام الملفات لكل مستخدم، مما يعني أن النظام يستخدم مفاتيح الفئات من حافظة مفاتيح الجهاز لتغليف المفاتيح لكل ملف. ومع ذلك، فإن سلسلة المفاتيح تستخدم مفاتيح الفئات من حافظة مفاتيح المستخدم لحماية العناصر الموجودة في سلسلة مفاتيح المستخدم. في أجهزة iPhone و iPad التي تم تكوينها للاستخدام من قِبل مستخدم واحد (التكوين الافتراضي)، تصبح حافظة مفاتيح الجهاز وحافظة مفاتيح المستخدم واحدة ومتماثلة ومحمية بواسطة رمز دخول المستخدم.
حافظة مفاتيح النسخ الاحتياطي
يتم إنشاء حافظة مفاتيح النسخ الاحتياطي عند عمل نسخة احتياطية مشفرة بواسطة iTunes (في macOS 10.15 أو أقدم) أو فايندر (في macOS 10.14 أو أحدث) وتخزينها على الكمبيوتر الذي تم عمل نسخة احتياطية من الجهاز عليه. ويتم إنشاء حافظة مفاتيح جديدة بها مجموعة جديدة من المفاتيح، وتتم إعادة تشفير البيانات المنسوخة احتياطيًا لهذه المفاتيح الجديدة. كما هو موضح سابقًا، تظل عناصر سلسلة المفاتيح غير المرتحلة مغلّفةً بالمفتاح المشتق من UID، مما يسمح باستعادتها إلى الجهاز الذي تم نسخها احتياطيًا منه في الأصل ولكن يتم جعلها غير قابلة للوصول إليها على جهاز مختلف.
يتم تشغيل حافظة المفاتيح - المحمية بمجموعة كلمات السر - من خلال 10 ملايين تكرار من وظيفة اشتقاق المفتاح PBKDF2. وعلى الرغم من هذا العدد الكبير من التكرارات، لا يوجد رابط بجهاز معين، وبالتالي يمكن نظريًا شن هجوم القوة الغاشمة بشكل متوازٍ عبر العديد من أجهزة الكمبيوتر على حافظة المفاتيح المنسوخة احتياطيًا. يمكن التخفيف من شدة هذا التهديد بكلمة سر قوية بما فيه الكفاية.
إذا اختار المستخدم عدم تشفير النسخة الاحتياطية، فلا يتم تشفير الملفات بغض النظر عن فئة حماية البيانات الخاصة بها ولكن تبقى سلسلة المفاتيح محمية بمفتاح مشتق من UID. وهذا هو السبب في أن عناصر سلسلة المفاتيح لا تنتقل إلى جهاز جديد إلا إذا تم تعيين كلمة سر للنسخة الاحتياطية.
حافظة مفاتيح الضمان
يتم استخدام حافظة مفاتيح الضمان للمزامنة مع فايندر (في macOS 10.15 أو أحدث) أو iTunes (في macOS 10.14 أو أقدم) عبر USB وإدارة جهاز الجوال (MDM). وتتيح حافظة المفاتيح هذه لكل من فايندر أو iTunes إجراء النسخ الاحتياطي والمزامنة دون مطالبة المستخدم بإدخال رمز دخول، كما تتيح لحل MDM مسح رمز دخول المستخدم عن بُعد. ويتم تخزينها على الكمبيوتر الذي يُستخدم للمزامنة مع فايندر أو iTunes أو على حل MDM الذي يدير الجهاز عن بُعد.
تعمل حافظة مفاتيح الضمان على تحسين تجربة المستخدم أثناء مزامنة الجهاز، مما قد يتطلب الوصول إلى جميع فئات البيانات. عند توصيل جهاز مقفل برمز الدخول بفايندر أو iTunes لأول مرة، تتم مطالبة المستخدم بإدخال رمز دخول. ويُنشئ الجهاز بعد ذلك حافظة مفاتيح ضمان تحتوي على نفس مفاتيح الفئات المستخدمة على الجهاز، وتكون محمية بمفتاح تم إنشاؤه حديثًا. يتم تقسيم حافظة مفاتيح الضمان والمفتاح الذي يحميها بين الجهاز والمضيف أو الخادم، مع تخزين البيانات على الجهاز في الفئة "محمية حتى أول مصادقة من المستخدم". لهذا السبب يجب إدخال رمز دخول الجهاز قبل قيام المستخدم بالنسخ الاحتياطي باستخدام فايندر أو iTunes لأول مرة بعد إعادة التمهيد.
في حالة تحديث البرامج عبر الأثير (OTA)، تتم مطالبة المستخدم برمز الدخول عند بدء التحديث. ويُستخدم ذلك لإنشاء رمز فتح القفل لمرة واحدة بشكل آمن، والذي يفتح قفل حافظة مفاتيح المستخدم بعد التحديث. لا يمكن إنشاء هذا الرمز دون إدخال رمز دخول المستخدم، ويتم إبطال أي رمز تم إنشاؤه سابقًا في حالة تغيير رمز دخول المستخدم.
إن رموز فتح القفل لمرة واحدة مخصصة إما للتثبيت المراقب أو غير المراقب لتحديث البرامج. ويتم تشفيرها باستخدام مفتاح مشتق من القيمة الحالية لعدّاد رتيب في Secure Enclave ومعرف UUID الخاص بحافظة المفاتيح ومعرف UID الخاص بـ Secure Enclave.
على SoCs في A9 (أو أحدث)، لم يعد رمز فتح القفل لمرة واحدة يعتمد على العدّادات أو التخزين القابل للمسح. بدلاً من ذلك، يكون محميًا بواسطة قيمة غير قابلة لإعادة التشغيل تتحكم فيها Secure Enclave.
تنتهي صلاحية رمز فتح القفل لمرة واحدة لتحديثات البرامج المراقبة بعد 20 دقيقة. في iOS 13 و iPadOS 13.1 أو أحدث، يُخزَّن الرمز في خزانة محمية بواسطة Secure Enclave. قبل iOS 13، كان يتم تصدير هذا الرمز من Secure Enclave وتتم كتابته على التخزين القابل للمسح أو يكون محميًا بواسطة آلية Secure Enclave غير القابلة لإعادة التشغيل. ويزيد مؤقت السياسة من قيمة العداد في حالة عدم إعادة تمهيد الجهاز في غضون 20 دقيقة.
تجري تحديثات البرامج غير المراقبة عندما يكتشف النظام وجود تحديث متوفر وعندما يكون أي مما يلي صحيحًا:
تكوين تحديثات تلقائية في iOS 12 أو أحدث.
اختيار المستخدم "تثبيت لاحقًا" عند إخطاره بالتحديث.
بعد أن يُدخل المستخدم رمز الدخول، يتم إنشاء رمز فتح القفل لمرة واحدة ويمكن أن يظل صالحًا في Secure Enclave لمدة تصل إلى 8 ساعات. إذا لم يكن قد تم التحديث بعد، يتم إتلاف رمز فتح القفل لمرة واحدة مع كل قفل ويُعاد إنشاؤه مع كل فتح قفل لاحق. ومع كل فتح قفل يبدأ الإطار الزمني الذي مدته 8 ساعات من جديد. بعد 8 ساعات، يقوم مؤقت السياسة بإبطال رمز فتح القفل لمرة واحدة.
حافظة مفاتيح نسخ iCloud الاحتياطي
تشبه حافظة مفاتيح نسخ iCloud الاحتياطي حافظة مفاتيح النسخ الاحتياطي. تكون جميع مفاتيح الفئات في حافظة المفاتيح هذه غير متماثلة (باستخدام Curve25519، مثل فئة حماية البيانات "محمية ما لم تُفتح"). تُستخدَم حافظة المفاتيح غير المتماثلة كذلك لحماية سلسلة المفاتيح المنسوخة احتياطيًا لاسترداد سلسلة مفاتيح iCloud.