Secure Enclave هو معالج مساعد مخصص للأجهزة في أجهزة Apple ينفذ بيئة آمنة معزولة لمعالجة العمليات المشفرة وتخزين البيانات السرية. يعمل Secure Enclave على معالج دقيق خاص به مع النواة الصغرية L4 وليس له وصول مباشر إلى الذاكرة الرئيسية أو الأجهزة الطرفية للجهاز. وفقًا لدليل أمان منصة Apple، يستخدم Secure Enclave مولد أرقام عشوائية للأجهزة TRNG ومحرك AES متخصص لتوفير العمليات المشفرة على مستوى الرقاقة.
الخلاصة
Secure Enclave (SEP — معالج Secure Enclave) هو معالج RISC مخصص 32 بت (ARM Cortex-A7/A8 على الرقاقات القديمة، نواة L4 صغرية خاصة) مدمج في SoC من Apple. يعمل كمعالج مساعد آمن لجميع العمليات المشفرة والبيومترية التي تتطلب عزلًا ماديًا.
ظهر Secure Enclave لأول مرة في شريحة A7 (iPhone 5S، 2013) مع Touch ID. في A7–A8، تم تنفيذ Secure Enclave كجزء من المعالج. بدءًا من A9 (iPhone 6S، 2015)، يستخدم Secure Enclave منطقة منفصلة من الرقاقة مع طاقة وساعة مستقلتين. منذ A12 (2018)، أصبح لدى Secure Enclave مولد أرقام عشوائية (TRNG) خاص به ومسرع أجهزة Ed25519.
كل Secure Enclave له معرف فريد (UID) مدمج في مرحلة تصنيع الرقاقة. يُستخدم UID كمفتاح جذر لتشفير جميع المفاتيح الأخرى. حتى Apple لا يمكنها استخراج أو استعادة هذا المعرف — فهو متاح فقط داخل Secure Enclave.
أنظمة التشغيل المحمولة الحديثة معقدة وتحتوي على ملايين الأسطر من التعليمات البرمجية، مما يجعلها عرضة للاستغلال. حتى إذا حصل المهاجم على السيطرة الكاملة على iOS (على مستوى النواة)، يظل Secure Enclave غير قابل للوصول — فهو منفصل ماديًا عن SoC الرئيسي ولا يقبل الأوامر المباشرة. فقط الطلبات المشفرة عبر قناة آمنة يمكنها التفاعل مع SEP.
وفقًا لأمان منصة Apple (2025)، لم يتم توثيق أي استخراج ناجح للبيانات من Secure Enclave على جهاز مقفل في ظل القيود الحالية للأجهزة.
يعمل Secure Enclave كمعالج مستقل: بعد تشغيل الجهاز، يقوم بتهيئته بمحمل الإقلاع الخاص به (SEP ROM)، ويتحقق من سلامة النواة الصغرية L4، ثم يدخل في حالة انتظار للطلبات من معالج التطبيقات (AP) عبر صندوق بريد آمن.
يتم الاتصال بين معالج التطبيقات (AP) وSecure Enclave عبر صندوق بريد آمن مع تشفير باستخدام مفتاح جلسة مشترك. يرسل AP طلبًا مشفرًا، يقوم SEP بفك تشفيره، وينفذ العملية (توقيع، فك تشفير، توليد مفتاح)، ويعيد النتيجة بشكل مشفر. لا يقبل SEP أبدًا أوامر غير مشفرة.
قبل إنشاء مفتاح جلسة، يقوم AP و SEP بتنفيذ بروتوكول مصادقة يستخدم مفتاحًا جماعيًا (Group Key) مضمنًا في SEP ROM وموثقًا بشهادة Apple. تضمن هذه الآلية أن جهاز Apple الأصلي فقط يمكنه التفاعل مع Secure Enclave هذه.
جميع المفاتيح المشفرة تُنشأ داخل Secure Enclave باستخدام TRNG للأجهزة. كل مفتاح مرتبط بـ UID للجهاز ولا يمكن تصديره. عند الوصول إلى مفتاح، يحدد AP مقبضه (كما في Keychain)، ويقوم SEP بتنفيذ العملية دون كشف المفتاح نفسه.
// توليد مفتاح ECDSA داخل Secure Enclave
@interface AppDelegate ()
- (SecKeyRef)generateSEKey;
@end
- (SecKeyRef)generateSEKey {
let attributes: [String: Any] = [
kSecAttrKeyType as String: kSecAttrKeyTypeECSECPrimeRandom,
kSecAttrKeySizeInBits as String: 256,
kSecAttrTokenID as String: kSecAttrTokenIDSecureEnclave,
kSecPrivateKeyAttrs as String: [
kSecAttrIsPermanent as String: true,
kSecAttrLabel as String: "com.app.key"
]
]
var error: Unmanaged<CFError?>?
return SecKeyCreateRandomKey(attributes as CFDictionary, &error)
}
Secure Enclave ليس مجرد وحدة برمجية — إنه كمبيوتر مستقل كامل على رقاقة. يحتوي على معالج وذاكرة RAM وذاكرة ROM وذاكرة غير متطايرة ومسرعات تشفير متخصصة خاصة به.
معالج Secure Enclave هو ARM Cortex-A7 32 بت (A7-A10) أو نواة L4 صغرية خاصة (A12+). يتم تخصيص ذاكرة RAM بشكل ثابت (SRAM) ولا يمكن الوصول إليها من الخارج. تحتوي ROM (SEP ROM) على محمل الإقلاع والمفتاح الجماعي. تخزن الذاكرة غير المتطايرة UID والشهادات الجذرية والمفاتيح الدائمة.
حجم SRAM لـ Secure Enclave محدود (16–64 كيلوبايت حسب الجيل). هذا قيد معماري: فقط العمليات المشفرة ومطابقة القوالب البيومترية تُنفذ داخل SEP. يتم نقل جميع البيانات الأخرى عبر قناة مشفرة إلى الذاكرة الرئيسية لـ AP.
يحتوي Secure Enclave على كتل أجهزة مخصصة: محرك AES (تشفير/فك تشفير للأجهزة)، مسرع P256 (ECDSA، ECDH)، وحدة SHA-256/SHA-512، TRNG (مولد أرقام عشوائية حقيقي يعتمد على مذبذبات حلقية). هذا يوفر أداءً عاليًا (سرعات AES بالغيغابت) مع استهلاك طاقة ضئيل.
| المكون | الوظيفة | الأداء |
|---|---|---|
| محرك AES | تشفير AES-256 للأجهزة | 3.5 جيجابايت/ث (A12+) |
| مسرع P256 | توقيع/تحقق ECDSA | 15000 عملية/ث |
| TRNG | توليد أرقام عشوائية | 1 ميجابت/ث |
| SHA-256 | تجزئة البيانات | 2 جيجابايت/ث |
| UID (eFuse) | معرف الرقاقة الفريد | 256 بت |
كل دفعة من رقاقات Secure Enclave تتلقى مفتاحًا جماعيًا (Group Key) مضمنًا في SEP ROM. يُستخدم هذا المفتاح لمصادقة SEP أمام AP ولإنشاء قناة مشفرة. تصدر Apple شهادات توقع على المفاتيح الجماعية، مما يسمح بالتحقق من أصالة SEP على مستوى البرامج الثابتة.
لا يصل مطورو iOS إلى Secure Enclave مباشرة. يتم التفاعل من خلال واجهات برمجة تطبيقات عالية المستوى: LocalAuthentication (Touch ID، Face ID)، Keychain Services (تخزين المفاتيح في SEP)، CryptoKit (العمليات المشفرة بمفاتيح SEP).
إطار العمل CryptoKit (iOS 13+) يوفر وصولاً مباشرًا إلى Secure Enclave لتوليد مفاتيح ECDSA وتوقيع البيانات. المفاتيح التي تم إنشاؤها مع علامة secureEnclaveKey موجودة فعليًا داخل SEP. عند التوقيع، تُنقل البيانات عبر قناة آمنة، ويتم تنفيذ العملية في SEP، ويتم إرجاع التوقيع إلى التطبيق.
import CryptoKit
import LocalAuthentication
func signWithSecureEnclave() throws -> Data {
let context = LAContext()
let accessControl = try SecAccessControl(
protection: kSecAttrAccessibleWhenUnlockedThisDeviceOnly,
flags: .userPresence
)
let key = try SecureEnclave.P256.SigningKey(
accessControl: accessControl
)
let dataToSign = "authenticate".data(using: .utf8)!
return try key.signature(for: dataToSign)
}
يمكن Keychain Services استخدام Secure Enclave لتخزين المفاتيح المشفرة. تشير السمة kSecAttrTokenID = kSecAttrTokenIDSecureEnclave إلى النظام بأنه يجب إنشاء المفتاح وتخزينه داخل SEP. المفاتيح في SEP هي دائمًا من نوع EC (secp256r1/P-256)، لأن Secure Enclave لا يدعم RSA.
Touch ID و Face ID هما وظيفتان رئيسيتان للمستخدم تم تنفيذهما عبر Secure Enclave. لا يخزن SEP القوالب البيومترية فحسب، بل يقوم أيضًا بمطابقتها مع البيانات المقدمة، مما يستبعد إمكانية اعتراض صورة بصمة الإصبع أو الوجه.
عند تسجيل بصمة إصبع أو وجه، ينقل المستشعر الصورة إلى Secure Enclave، حيث يتم تحويلها إلى قالب رياضي (وليس صورة!) وتخزينها في ذاكرة SEP المشفرة. يتم تدمير الصورة الأصلية. لا يمكن استخراج القالب خارجيًا — يمكن لـ SEP فقط مقارنة قالب جديد مع القوالب المخزنة.
يمكن لـ Secure Enclave تخزين ما يصل إلى 5 بصمات أصابع أو وجوه. جميع القوالب محمية بواسطة UID للجهاز. عند إعادة تشغيل الجهاز، يحظر SEP الوصول إلى القوالب حتى يتم إدخال رمز المرور (رمز القفل، وليس القياسات الحيوية) لأول مرة.
عندما يضع المستخدم إصبعه على Touch ID، يلتقط المستشعر الصورة وينقلها (عبر برنامج تشغيل iOS) إلى Secure Enclave عبر قناة آمنة. يقارن SEP القالب مع القوالب المخزنة. في حالة التطابق، يعيد SEP حالة نجاح إلى AP بالإضافة إلى مفتاح مؤقت لفتح Keychain. يتم تتبع المحاولات الفاشلة، وبعد عدد قابل للتكوين من الإخفاقات، يحظر SEP جميع الطلبات البيومترية حتى يتم إدخال رمز المرور.
import LocalAuthentication
func authenticateUser() {
let context = LAContext()
var error: NSError?
guard context.canEvaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
error: &error
) else { return }
context.evaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
localizedReason: "المصادقة"
) { success, error in
if success {
// SEP أكد تطابق القياسات الحيوية
}
}
}
في حالة فقدان الجهاز، تتم حماية البيانات البيومترية على عدة مستويات: القوالب مشفرة بـ UID (غير قابلة للقراءة خارج SEP)، يتطلب SEP رمز مرور الجهاز عند كل إعادة تشغيل، بعد 48 ساعة من عدم النشاط، أو بعد 5 محاولات بيومترية فاشلة. يقوم وضع Lost Mode عبر Find My بحظر SEP بشكل إضافي.
الأسئلة الشائعة
على جهاز مقفل — لا. تم تصميم Secure Enclave بحيث تكون البيانات غير قابلة للوصول بدون مصادقة المستخدم. الهجمات المعروفة (checkm8 على A5-A11) لا يمكنها استخراج البيانات من SEP — فهي تخترق AP وليس Secure Enclave.
ECDSA (secp256r1/P-256) — للتوقيع والتحقق. ECDH — لاتفاق المفاتيح. AES-256 — للتشفير المتماثل. SHA-256 — للتجزئة. RSA غير مدعوم. جميع العمليات تُنفذ بواسطة الأجهزة.
في Apple Silicon (M1، M2، M3)، تم تنفيذ Secure Enclave بشكل مشابه لرقاقات A ولكن مع موارد متزايدة. يدعم المزيد من المفاتيح المتزامنة، وعمليات P256 أسرع، ولديه مجموعة موسعة من حالات الاستخدام (FileVault، الإكمال التلقائي، Safari).
UID (المعرف الفريد) هو معرف عشوائي 256 بت مدمج في Secure Enclave أثناء تصنيع الرقاقة. يُستخدم UID كمفتاح جذر لتشفير جميع المفاتيح الأخرى على الجهاز. لا يمكن قراءته بواسطة أي مكون، بما في ذلك SEP نفسه.
تتم إعادة التعيين الكاملة عند استعادة البرامج الثابتة عبر وضع الاسترداد (DFU). يعيد Secure Enclave إنشاء التسلسل الهرمي للمفاتيح. يتم حذف جميع بيانات Keychain والقوالب البيومترية بشكل دائم دون إمكانية الاسترداد — هذه عملية لا رجعة فيها.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا