Secure Enclave — Apple cihazlarında kriptoqrafik əməliyyatların emalı və məxfi məlumatların saxlanması üçün izolə edilmiş təhlükəsiz mühiti təmin edən xüsusi aparat koprosessorudur. Secure Enclave öz mikrokontrollerində L4 mikronüvəsi ilə işləyir və cihazın əsas yaddaşına və ya periferiyasına birbaşa çıxışı yoxdur. Apple Platform Security Guide-a əsasən, Secure Enclave çip səviyyəsində kriptoqrafik əməliyyatları təmin etmək üçün aparat TRNG təsadüfi ədəd generatoru və xüsusi AES mühərrikindən istifadə edir.
Başlıca məqamlar
Secure Enclave (SEP — Secure Enclave Processor) — Apple SoC-yə inteqrasiya edilmiş xüsusi 32-bit RISC prosessordur (erkən çiplərdə ARM Cortex-A7/A8, daha yeni versiyalarda öz L4 mikronüvəsi). Bütün kriptoqrafik və biometrik əməliyyatlar üçün aparat izolyasiyası tələb edən qorunan koprosessor funksiyasını yerinə yetirir.
Secure Enclave ilk dəfə A7 çipində (iPhone 5S, 2013) Touch ID ilə birlikdə peyda oldu. A7–A8-də Secure Enclave prosessorun bir hissəsi kimi reallaşdırılmışdı. A9-dan (iPhone 6S, 2015) başlayaraq Secure Enclave müstəqil enerji təchizatı və saatlaşdırması olan ayrıca kristal sahəsindən istifadə edir. A12-dən (2018) etibarən Secure Enclave öz True Random Number Generator (TRNG) və Ed25519 aparat sürətləndiricisini aldı.
Hər Secure Enclave çip istehsalı mərhələsində yazılmış unikal identifikatora (UID) malikdir. UID bütün digər açarların şifrələnməsi üçün kök açar kimi istifadə olunur. Hətta Apple bu identifikatoru çıxara və ya bərpa edə bilməz — o, yalnız Secure Enclave daxilində mövcuddur.
Müasir mobil əməliyyat sistemləri mürəkkəbdir və milyonlarla sətir kodu ehtiva edir, bu da onları eksploytlara qarşı həssas edir. Hətta təcavüzkar iOS üzərində tam nəzarət əldə etsə belə (kernel-level), Secure Enclave əlçatmaz qalır — o, əsas SoC-dən fiziki olaraq ayrılmışdır və birbaşa əmrlər qəbul etmir. Yalnız şifrələnmiş kanal vasitəsilə qorunan sorğular SEP ilə əlaqə qura bilər.
Apple Platform Security (2025) məlumatlarına görə, mövcud aparat məhdudiyyətləri altında bloklanmış cihazda Secure Enclave-dən məlumatların uğurlu çıxarılması halları sənədləşdirilməmişdir.
Secure Enclave avtonom prosessor kimi fəaliyyət göstərir: cihaz yükləndikdən sonra öz yükləyicisi (SEP ROM) ilə işə düşür, L4 mikronüvəsinin bütövlüyünü yoxlayır və sonra qorunan poçt qutusu (mailbox) vasitəsilə Application Processor (AP) sorğularını gözləmə rejiminə keçir.
Tətbiq prosessoru (AP) ilə Secure Enclave arasında məlumat mübadiləsi ümumi sessiya açarında şifrələmə ilə qorunan poçt qutusu vasitəsilə baş verir. AP şifrələnmiş sorğu göndərir, SEP onu deşifrə edir, əməliyyatı yerinə yetirir (imza, deşifrə, açar yaratma) və nəticəni şifrələnmiş formada qaytarır. SEP heç vaxt şifrələnməmiş əmrləri qəbul etmir.
Sessiya açarı qurulmazdan əvvəl AP və SEP SEP ROM-a yazılmış və Apple sertifikatı ilə təsdiqlənmiş qrup açarından (Group Key) istifadə edən autentifikasiya protokolunu yerinə yetirir. Bu mexanizm yalnız orijinal Apple cihazının müəyyən Secure Enclave ilə əlaqə qura biləcəyinə zəmanət verir.
Bütün kriptoqrafik açarlar Secure Enclave daxilində aparat TRNG istifadə edərək yaradılır. Hər bir açar cihazın UID-si ilə əlaqələndirilir və ixrac edilə bilməz. Açara müraciət edərkən AP onun tutacağını (Keychain-də olduğu kimi) göstərir, SEP isə açarı açıqlamadan əməliyyatı yerinə yetirir.
// ECDSA açarının Secure Enclave daxilində generasiyası
@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 sadəcə proqram modulu deyil, kristal üzərində tam avtonom kompüterdir. O, öz prosessoruna, operativ yaddaşa, ROM-a, qeyri-uçucu yaddaşa və xüsusi kriptoqrafik sürətləndiricilərə malikdir.
Secure Enclave prosessoru — 32-bit ARM Cortex-A7 (A7-A10) və ya öz L4 mikronüvəsi (A12+). Operativ yaddaş statik olaraq ayrılmışdır (SRAM) və kənardan əlçatmazdır. ROM (SEP ROM) yükləyici və qrup açarını ehtiva edir. Qeyri-uçucu yaddaş UID, kök sertifikatlar və daimi açarları saxlayır.
Secure Enclave SRAM-ının ölçüsü məhduddur (nəsildən asılı olaraq 16-64 KB). Bu arxitektural məhdudiyyətdir: SEP daxilində yalnız kriptoqrafik əməliyyatlar və biometrik şablonların müqayisəsi yerinə yetirilir. Bütün digər məlumatlar şifrələnmiş kanal vasitəsilə AP-nin əsas yaddaşına ötürülür.
Secure Enclave xüsusi aparat bloklarını ehtiva edir: AES mühərriki (aparat şifrələmə/deşifrə), P256 sürətləndiricisi (ECDSA, ECDH), SHA-256/SHA-512 modulu, TRNG (halqa osillyatorlarına əsaslanan True Random Number Generator). Bu, minimal enerji sərfiyyatı ilə yüksək performans (gigabit AES sürətləri) təmin edir.
| Komponent | Funksiya | Performans |
|---|---|---|
| AES Engine | Aparat AES-256 şifrələməsi | 3.5 GB/s (A12+) |
| P256 Accelerator | ECDSA imza/doğrulama | 15000 əm/s |
| TRNG | Təsadüfi ədədlərin generasiyası | 1 Mbit/s |
| SHA-256 | Məlumatların heşlənməsi | 2 GB/s |
| UID (eFuse) | Çipin unikal identifikatoru | 256 bit |
Hər Secure Enclave çip partiyası SEP ROM-a yazılmış qrup açarı (Group Key) alır. Bu açar SEP-in AP qarşısında autentifikasiyası və şifrələnmiş kanalın qurulması üçün istifadə olunur. Apple qrup açarlarını imzalayan sertifikatlar buraxır ki, bu da proqram təminatı səviyyəsində SEP-in həqiqiliyini yoxlamağa imkan verir.
iOS tərtibatçıları Secure Enclave-ə birbaşa müraciət etmirlər. Qarşılıqlı əlaqə yüksək səviyyəli API-lər vasitəsilə baş verir: LocalAuthentication (Touch ID, Face ID), Keychain Services (açarların SEP-də saxlanması), CryptoKit (SEP açarları ilə kriptoqrafik əməliyyatlar).
CryptoKit framework-u (iOS 13+) ECDSA açarlarının yaradılması və məlumatların imzalanması üçün Secure Enclave-ə birbaşa çıxış təmin edir. secureEnclaveKey bayrağı ilə yaradılmış açarlar fiziki olaraq SEP daxilində yerləşir. İmzalama zamanı məlumatlar qorunan kanal vasitəsilə ötürülür, əməliyyat SEP-də yerinə yetirilir, imza tətbiqə qaytarılır.
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 kriptoqrafik açarların saxlanması üçün Secure Enclave-dən istifadə edə bilər. kSecAttrTokenID = kSecAttrTokenIDSecureEnclave atributu sistemə açarın SEP daxilində yaradılması və saxlanması lazım olduğunu göstərir. SEP-də açarlar həmişə EC tipindədir (secp256r1/P-256), çünki Secure Enclave RSA-nı dəstəkləmir.
Touch ID və Face ID — Secure Enclave vasitəsilə reallaşdırılan əsas istifadəçi funksiyalarıdır. SEP təkcə biometrik şablonları saxlamır, həm də onları daxil edilmiş məlumatlarla müqayisə edir ki, bu da barmaq izi və ya üz təsvirinin ələ keçirilməsi ehtimalını istisna edir.
Barmaq izi və ya üzün qeydiyyatı zamanı sensor təsviri Secure Enclave-ə ötürür, burada o, riyazi şablona (təsvir deyil!) çevrilir və SEP-in şifrələnmiş yaddaşında saxlanılır. Orijinal təsvir məhv edilir. Şablon kənara çıxarıla bilməz — SEP yalnız yeni şablonu saxlanılanlarla müqayisə edə bilər.
Secure Enclave 5-ə qədər barmaq izi və ya üz saxlayır. Bütün şablonlar cihazın UID-si ilə qorunur. Cihaz yenidən başladıqda SEP kod daxil edilənə qədər (bloklama kodu, biometriya deyil) şablonlara girişi bloklayır.
İstifadəçi barmağını Touch ID-yə yerləşdirdikdə, sensor təsviri götürür və (iOS-dakı drayver vasitəsilə) qorunan kanal üzərindən Secure Enclave-ə ötürür. SEP şablonu saxlanılanlarla müqayisə edir. Uyğunluq halında SEP AP-yə uğur statusu + Keychain-in blokdan çıxarılması üçün efemer açar qaytarır. Uğursuz cəhdlər izlənilir və müəyyən saydan sonra (konfiqurasiya edilə bilər) SEP kod daxil edilənə qədər bütün biometrik sorğuları bloklayır.
import LocalAuthentication
func authenticateUser() {
let context = LAContext()
var error: NSError?
guard context.canEvaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
error: &error
) else { return }
context.evaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
localizedReason: "Şəxsiyyəti təsdiqləyin"
) { success, error in
if success {
// SEP biometriya uyğunluğunu təsdiqlədi
}
}
}
Cihaz itirildikdə biometrik məlumatlar bir neçə səviyyədə qorunur: şablonlar UID ilə şifrələnir (SEP-dən kənarda oxuna bilməz), SEP hər yenidən yükləmədə, 48 saat hərəkətsizlikdən sonra, 5 uğursuz biometrik cəhddən sonra cihaz kodunu tələb edir. Find My vasitəsilə Lost Mode əlavə olaraq SEP-i bloklayır.
Tez-tez verilən suallar
Bloklanmış cihazda — yox. Secure Enclave elə dizayn edilmişdir ki, məlumatlar istifadəçi autentifikasiyası olmadan əlçatmazdır. Məlum hücumlar (checkm8 A5-A11-də) SEP-dən məlumat çıxara bilməz — onlar AP-ni kompromat edir, lakin Secure Enclave-i yox.
ECDSA (secp256r1/P-256) — imza və doğrulama üçün. ECDH — açarların uzlaşdırılması üçün. AES-256 — simmetrik şifrələmə üçün. SHA-256 — heşləmə üçün. RSA dəstəklənmir. Bütün əməliyyatlar aparat səviyyəsində yerinə yetirilir.
Apple Silicon-da (M1, M2, M3) Secure Enclave A çiplərinə bənzər şəkildə reallaşdırılıb, lakin artırılmış resurslarla. Daha çox eyni vaxtda açar dəstəkləyir, daha sürətli P256 əməliyyatları və genişləndirilmiş istifadə ssenariləri dəsti (FileVault, avtomatik doldurma, Safari) var.
UID (Unique ID) — çip istehsalı zamanı Secure Enclave-ə yazılmış 256-bit təsadüfi identifikatordur. UID cihazdakı bütün digər açarların şifrələnməsi üçün kök açar kimi istifadə olunur. O, heç bir komponent, o cümlədən SEP-in özü tərəfindən oxuna bilməz.
Tam sıfırlama Recovery Mode (DFU) vasitəsilə proqram təminatının bərpası zamanı baş verir. Secure Enclave açar iyerarxiyasını yenidən yaradır. Bütün Keychain məlumatları və biometrik şablonlar bərpa imkanı olmadan silinir — bu dönməz bir prosesdir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun