Secure Enclave «یہ Apple آلات میں ایک علیحدہ ہارڈویئر کا پروسیسر ہے جو خفیہ ڈیٹا پر کارروائی کرنے اور حساس معلومات کو ذخیرہ کرنے کے لیے ایک الگ تھلگ محفوظ ماحول فراہم کرتا ہے۔ Secure Enclave L4 مائیکرو کرنل کے ساتھ اپنے مائیکرو پروسیسر پر چلتا ہے اور اسے ڈیوائس کی مرکزی میموری یا پیری فیرلز تک براہ راست رسائی حاصل نہیں ہے۔ اس کے مطابق Apple Platform Security Guide، Secure Enclave چپ کی سطح پر خفیہ کارروائیوں کو یقینی بنانے کے لیے ہارڈویئر رینڈم نمبر جنریٹر TRNG اور ایک خصوصی AES انجن استعمال کرتا ہے۔
اہم نکات
Secure Enclave (SEP «Secure Enclave Processor) ایک علیحدہ 32-بٹ RISC پروسیسر (ابتدائی چپس پر ARM Cortex-A7/A8، اپنا L4 مائیکرو کرنل) ہے جو Apple کے SoC میں ضم ہے۔ یہ تمام خفیہ اور بائیو میٹرک کارروائیوں کے لیے ایک محفوظ کا پروسیسر کے طور پر کام کرتا ہے جنہیں ہارڈویئر تنہائی کی ضرورت ہوتی ہے۔
Secure Enclave پہلی بار A7 چپ (iPhone 5S, 2013) میں Touch ID کے ساتھ ظاہر ہوا۔ A7–A8 میں Secure Enclave پروسیسر کے حصے کے طور پر نافذ کیا گیا تھا۔ A9 (iPhone 6S, 2015) سے شروع ہو کر، Secure Enclave آزاد بجلی اور کلاکنگ کے ساتھ چپ کے علیحدہ علاقے کا استعمال کرتا ہے۔ A12 (2018) سے Secure Enclave کو اپنا True Random Number Generator (TRNG) اور Ed25519 ہارڈویئر ایکسلریٹر ملا۔
ہر Secure Enclave کا ایک منفرد شناخت کنندہ (UID) ہے جو چپ کی تیاری کے مرحلے پر لگایا جاتا ہے۔ UID کو تمام دیگر کلیدوں کو خفیہ کرنے کے لیے روٹ کلید کے طور پر استعمال کیا جاتا ہے۔ یہاں تک کہ Apple بھی اس شناخت کنندہ کو نکال یا بحال نہیں کر سکتا «یہ صرف Secure Enclave کے اندر ہی قابل رسائی ہے۔
جدید موبائل آپریٹنگ سسٹمز پیچیدہ ہیں اور لاکھوں کوڈ کی سطروں پر مشتمل ہیں، جو انہیں استحصال کے لیے کمزور بناتے ہیں۔ یہاں تک کہ اگر حملہ آور iOS پر مکمل کنٹرول حاصل کر لے (کرنل لیول)، Secure Enclave ناقابل رسائی رہتا ہے «یہ جسمانی طور پر مرکزی SoC سے الگ ہے اور براہ راست کمانڈز قبول نہیں کرتا۔ صرف ایک محفوظ چینل کے ذریعے خفیہ کردہ درخواستیں SEP کے ساتھ تعامل کر سکتی ہیں۔
Apple Platform Security (2025) کے مطابق، موجودہ ہارڈویئر حدود کے تحت مقفل ڈیوائس سے Secure Enclave کے ڈیٹا کے کامیاب نکالنے کی کوئی دستاویز کردہ مثال موجود نہیں ہے۔
Secure Enclave ایک خود مختار پروسیسر کے طور پر کام کرتا ہے: ڈیوائس کے آن ہونے کے بعد، یہ اپنے بوٹ لوڈر (SEP ROM) سے شروع ہوتا ہے، L4 مائیکرو کرنل کی سالمیت کی تصدیق کرتا ہے، اور پھر ایک محفوظ میل باکس کے ذریعے Application Processor (AP) سے درخواستوں کے انتظار کے موڈ میں چلا جاتا ہے۔
ایپلیکیشن پروسیسر (AP) اور Secure Enclave کے درمیان تبادلہ ایک محفوظ میل باکس کے ذریعے مشترکہ سیشن کلید کے ساتھ خفیہ کاری کے ساتھ ہوتا ہے۔ AP ایک خفیہ کردہ درخواست بھیجتا ہے، SEP اسے ڈکرپٹ کرتا ہے، آپریشن انجام دیتا ہے (دستخط، ڈکرپشن، کلید کی تخلیق) اور نتیجہ خفیہ کردہ شکل میں واپس کرتا ہے۔ SEP کبھی بھی غیر خفیہ کردہ کمانڈز قبول نہیں کرتا۔
سیشن کلید قائم کرنے سے پہلے، AP اور SEP ایک تصدیقی پروٹوکول انجام دیتے ہیں جو گروپ کلید (Group Key) کا استعمال کرتا ہے، جو SEP ROM میں لگی ہوتی ہے اور Apple کے سرٹیفکیٹ سے تصدیق شدہ ہوتی ہے۔ یہ طریقہ کار اس بات کی ضمانت دیتا ہے کہ صرف ایک حقیقی Apple ڈیوائس ہی اس Secure Enclave کے ساتھ تعامل کر سکتی ہے۔
تمام خفیہ کلیدیں ہارڈویئر TRNG کا استعمال کرتے ہوئے Secure Enclave کے اندر تخلیق ہوتی ہیں۔ ہر کلید ڈیوائس کے UID سے منسلک ہوتی ہے اور اسے برآمد نہیں کیا جا سکتا۔ کلید تک رسائی کے وقت، AP اس کا ہینڈل بتاتا ہے (جیسے Keychain میں)، اور SEP خود کلید کو ظاہر کیے بغیر آپریشن انجام دیتا ہے۔
// Secure Enclave کے اندر ECDSA کلید کی تخلیق
@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 کا پروسیسر «32-بٹ ARM Cortex-A7 (A7-A10) یا اپنا L4 مائیکرو کرنل (A12+)۔ RAM جامد طور پر مختص کی گئی ہے (SRAM) اور باہر سے ناقابل رسائی ہے۔ ROM (SEP ROM) میں بوٹ لوڈر اور گروپ کلید ہے۔ نان وولیٹائل میموری میں UID، روٹ سرٹیفکیٹ اور مستقل کلیدیں محفوظ ہیں۔
Secure Enclave کی SRAM کا سائز محدود ہے (نسل کے لحاظ سے 16-64 KB)۔ یہ ایک آرکیٹیکچرل حد ہے: SEP کے اندر صرف خفیہ کارروائیاں اور بائیو میٹرک پیٹرن کا موازنہ کیا جاتا ہے۔ باقی تمام ڈیٹا ایک خفیہ کردہ چینل کے ذریعے AP کی مرکزی میموری میں منتقل کیا جاتا ہے۔
Secure Enclave میں علیحدہ ہارڈویئر بلاک ہیں: AES انجن (ہارڈویئر خفیہ کاری/ڈکرپشن)، P256 ایکسلریٹر (ECDSA, ECDH)، SHA-256/SHA-512 ماڈیول، TRNG (True Random Number Generator رنگ آسکیلیٹر پر مبنی)۔ یہ کم سے کم بجلی کی کھپت پر اعلی کارکردگی (گیگابٹ AES رفتار) فراہم کرتا ہے۔
| جزو | فعل | کارکردگی |
|---|---|---|
| AES Engine | ہارڈویئر AES-256 خفیہ کاری | 3.5 GB/s (A12+) |
| P256 Accelerator | ECDSA دستخط/تصدیق | 15000 آپریشن/سیکنڈ |
| TRNG | بے ترتیب نمبروں کی تخلیق | 1 Mbit/s |
| SHA-256 | ڈیٹا ہیشنگ | 2 GB/s |
| UID (eFuse) | چپ کا منفرد شناخت کنندہ | 256 بٹ |
Secure Enclave چپس کے ہر بیچ کو ایک گروپ کلید (Group Key) ملتی ہے جو SEP ROM میں لگی ہوتی ہے۔ یہ کلید AP کے سامنے SEP کی تصدیق اور خفیہ کردہ چینل قائم کرنے کے لیے استعمال ہوتی ہے۔ Apple گروپ کلیدوں پر دستخط کرنے والے سرٹیفکیٹ جاری کرتا ہے، جو فرم ویئر کی سطح پر SEP کی صداقت کی جانچ کی اجازت دیتا ہے۔
iOS ڈیولپرز Secure Enclave سے براہ راست رابطہ نہیں کرتے۔ تعامل اعلیٰ سطحی APIs کے ذریعے ہوتا ہے: LocalAuthentication (Touch ID, Face ID)، Keychain Services (SEP میں کلیدوں کا ذخیرہ)، CryptoKit (SEP کلیدوں کے ساتھ خفیہ کارروائیاں)۔
CryptoKit فریم ورک (iOS 13+) ECDSA کلیدوں کی تخلیق اور ڈیٹا پر دستخط کے لیے Secure Enclave تک براہ راست رسائی فراہم کرتا ہے۔ 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 ناکام بائیو میٹرک کوششوں پر۔ Find My کے ذریعے Lost Mode اضافی طور پر SEP کو مسدود کرتا ہے۔
اکثر پوچھے جانے والے سوالات
مقفل ڈیوائس پر «نہیں۔ Secure Enclave اس طرح ڈیزائن کیا گیا ہے کہ ڈیٹا صارف کی تصدیق کے بغیر ناقابل رسائی ہے۔ معروف حملے (A5-A11 پر checkm8) 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 (Unique ID) «ایک 256-بٹ بے ترتیب شناخت کنندہ ہے جو Secure Enclave میں چپ کی تیاری کے وقت لگایا جاتا ہے۔ UID کو ڈیوائس پر تمام دیگر کلیدوں کو خفیہ کرنے کے لیے روٹ کلید کے طور پر استعمال کیا جاتا ہے۔ یہ کسی بھی جزو کے ذریعے پڑھنے کے قابل نہیں ہے، بشمول خود SEP۔
مکمل ری سیٹ Recovery Mode (DFU) کے ذریعے فرم ویئر بحال کرنے پر ہوتا ہے۔ Secure Enclave کلیدی درجہ بندی کو دوبارہ تخلیق کرتا ہے۔ اس عمل میں تمام Keychain ڈیٹا اور بائیو میٹرک پیٹرن بغیر بحالی کے امکان کے حذف ہو جاتے ہیں «یہ ایک ناقابل واپسی عمل ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں