Secure Enclave, Apple cihazlarında kriptografik işlemleri işlemek ve gizli verileri depolamak için izole edilmiş güvenli bir ortam uygulayan özel bir donanım eşişlemcisidir. Secure Enclave, L4 mikrokerneli ile kendi mikroişlemcisinde çalışır ve cihazın ana belleğine veya çevre birimlerine doğrudan erişimi yoktur. Apple Platform Güvenlik Kılavuzu'na göre Secure Enclave, çip düzeyinde kriptografik işlemler sağlamak için donanım TRNG ve özel bir AES motoru kullanır.
Önemli noktalar
Secure Enclave (SEP — Secure Enclave Processor), Apple'ın SoC'sine entegre edilmiş özel bir 32 bit RISC işlemcidir (eski çiplerde ARM Cortex-A7/A8, özel L4 mikrokernel). Donanım izolasyonu gerektiren tüm kriptografik ve biyometrik işlemler için güvenli bir eşişlemci olarak işlev görür.
Secure Enclave ilk olarak A7 çipinde (iPhone 5S, 2013) Touch ID ile birlikte ortaya çıktı. A7–A8'de Secure Enclave, işlemcinin bir parçası olarak uygulanır. A9'dan (iPhone 6S, 2015) itibaren Secure Enclave, bağımsız güç ve saatlemeye sahip çipin ayrı bir alanını kullanır. A12'den (2018) itibaren Secure Enclave, kendi Gerçek Rastgele Sayı Üreticisine (TRNG) ve bir donanım Ed25519 hızlandırıcısına sahiptir.
Her Secure Enclave, çip üretim aşamasında gömülü benzersiz bir tanımlayıcıya (UID) sahiptir. UID, diğer tüm anahtarları şifrelemek için kök anahtar olarak kullanılır. Apple bile bu tanımlayıcıyı çıkaramaz veya kurtaramaz — yalnızca Secure Enclave içinde erişilebilir.
Modern mobil işletim sistemleri karmaşıktır ve milyonlarca satır kod içerir, bu da onları istismarlara karşı savunmasız hale getirir. Bir saldırgan iOS üzerinde (çekirdek düzeyinde) tam kontrol sağlasa bile, Secure Enclave erişilemez durumda kalır — ana SoC'den fiziksel olarak ayrılmıştır ve doğrudan komutları kabul etmez. Yalnızca güvenli bir kanal üzerinden şifrelenmiş istekler SEP ile etkileşime girebilir.
Apple Platform Güvenliği (2025)'ne göre, mevcut donanım kısıtlamalarıyla kilitli bir cihazda Secure Enclave'den başarılı bir veri çıkarma belgelenmemiştir.
Secure Enclave bağımsız bir işlemci olarak çalışır: cihaz önyüklemesinden sonra, kendi önyükleyicisi (SEP ROM) ile başlatılır, L4 mikrokernelinin bütünlüğünü doğrular ve ardından güvenli bir posta kutusu aracılığıyla Uygulama İşlemcisinden (AP) gelen istekleri bekleme durumuna geçer.
Uygulama İşlemcisi (AP) ile Secure Enclave arasındaki iletişim, paylaşılan bir oturum anahtarıyla şifrelenmiş güvenli bir posta kutusu aracılığıyla gerçekleşir. AP şifrelenmiş bir istek gönderir, SEP şifresini çözer, işlemi (imzalama, şifre çözme, anahtar oluşturma) gerçekleştirir ve sonucu şifrelenmiş biçimde döndürür. SEP asla şifrelenmemiş komutları kabul etmez.
Bir oturum anahtarı oluşturmadan önce, AP ve SEP, SEP ROM'una gömülü ve bir Apple sertifikasıyla doğrulanan bir Grup Anahtarı (Group Key) kullanan bir kimlik doğrulama protokolü gerçekleştirir. Bu mekanizma, yalnızca gerçek bir Apple cihazının bu Secure Enclave ile etkileşime girebilmesini garanti eder.
Tüm kriptografik anahtarlar, donanım TRNG kullanılarak Secure Enclave içinde oluşturulur. Her anahtar cihazın UID'sine bağlıdır ve dışa aktarılamaz. Bir anahtara erişirken, AP onun tutamacını (Keychain'deki gibi) belirtir ve SEP anahtarın kendisini ifşa etmeden işlemi gerçekleştirir.
// Secure Enclave içinde ECDSA anahtarı oluşturma
@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 yalnızca bir yazılım modülü değildir — bir çip üzerinde tam teşekküllü bağımsız bir bilgisayardır. Kendi işlemcisini, RAM'ini, ROM'unu, kalıcı olmayan belleğini ve özel kriptografik hızlandırıcıları içerir.
Secure Enclave işlemcisi, 32 bit ARM Cortex-A7 (A7-A10) veya özel bir L4 mikrokernelidir (A12+). RAM statik olarak tahsis edilir (SRAM) ve dışardan erişilemez. ROM (SEP ROM), önyükleyiciyi ve grup anahtarını içerir. Kalıcı olmayan bellek, UID'yi, kök sertifikaları ve kalıcı anahtarları saklar.
Secure Enclave'in SRAM boyutu sınırlıdır (nesile bağlı olarak 16–64 KB). Bu mimari bir kısıtlamadır: SEP içinde yalnızca kriptografik işlemler ve biyometrik şablon eşleştirmesi gerçekleştirilir. Diğer tüm veriler şifrelenmiş bir kanal aracılığıyla AP'nin ana belleğine aktarılır.
Secure Enclave, özel donanım blokları içerir: AES motoru (donanım şifreleme/şifre çözme), P256 hızlandırıcısı (ECDSA, ECDH), SHA-256/SHA-512 modülü, TRNG (halka osilatörlerine dayalı Gerçek Rastgele Sayı Üretici). Bu, minimum güç tüketimiyle yüksek performans (gigabit AES hızları) sağlar.
| Bileşen | İşlev | Performans |
|---|---|---|
| AES Motoru | Donanım AES-256 şifreleme | 3.5 GB/s (A12+) |
| P256 Hızlandırıcı | ECDSA imzalama/doğrulama | 15000 işlem/s |
| TRNG | Rastgele sayı üretimi | 1 Mbit/s |
| SHA-256 | Veri karmalama | 2 GB/s |
| UID (eFuse) | Benzersiz çip tanımlayıcısı | 256 bit |
Secure Enclave çiplerinin her partisi, SEP ROM'una gömülü bir Grup Anahtarı (Group Key) alır. Bu anahtar, SEP'in AP'ye kimlik doğrulaması ve şifrelenmiş bir kanal oluşturulması için kullanılır. Apple, grup anahtarlarını imzalayan sertifikalar yayınlayarak SEP'in gerçekliğinin ürün yazılımı düzeyinde doğrulanmasını sağlar.
iOS geliştiricileri Secure Enclave'e doğrudan erişmez. Etkileşim üst düzey API'ler aracılığıyla gerçekleşir: LocalAuthentication (Touch ID, Face ID), Keychain Services (SEP'te anahtar depolama), CryptoKit (SEP anahtarlarıyla kriptografik işlemler).
CryptoKit çerçevesi (iOS 13+), ECDSA anahtarları oluşturmak ve verileri imzalamak için Secure Enclave'e doğrudan erişim sağlar. secureEnclaveKey işaretiyle oluşturulan anahtarlar fiziksel olarak SEP içinde bulunur. İmzalama sırasında, veriler güvenli bir kanal üzerinden iletilir, işlem SEP'te gerçekleştirilir ve imza uygulamaya geri döndürü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, kriptografik anahtarları depolamak için Secure Enclave'i kullanabilir. kSecAttrTokenID = kSecAttrTokenIDSecureEnclave özelliği, anahtarın SEP içinde oluşturulması ve saklanması gerektiğini sisteme bildirir. SEP'teki anahtarlar her zaman EC türündedir (secp256r1/P-256), çünkü Secure Enclave RSA'yı desteklemez.
Touch ID ve Face ID, Secure Enclave aracılığıyla uygulanan temel kullanıcı özellikleridir. SEP yalnızca biyometrik şablonları depolamakla kalmaz, aynı zamanda sağlanan verilerle eşleştirme yaparak parmak izi veya yüz görüntüsünün ele geçirilme olasılığını ortadan kaldırır.
Bir parmak izi veya yüz kaydedilirken, sensör görüntüyü Secure Enclave'e iletir, burada matematiksel bir şablona (görüntü değil!) dönüştürülür ve SEP'in şifrelenmiş belleğinde saklanır. Orijinal görüntü yok edilir. Şablon harici olarak çıkarılamaz — SEP yalnızca yeni bir şablonu depolananlarla karşılaştırabilir.
Secure Enclave en fazla 5 parmak izi veya yüz depolayabilir. Tüm şablonlar cihazın UID'si tarafından korunur. Cihaz yeniden başlatıldığında, ilk kez parola (kilit kodu, biyometri değil) girilene kadar SEP şablonlara erişimi engeller.
Bir kullanıcı parmağını Touch ID'ye koyduğunda, sensör görüntüyü yakalar ve (iOS sürücüsü aracılığıyla) güvenli bir kanal üzerinden Secure Enclave'e iletir. SEP, şablonu depolananlarla karşılaştırır. Eşleşme durumunda, SEP AP'ye başarı durumu ve Keychain'in kilidini açmak için geçici bir anahtar döndürür. Başarısız denemeler izlenir ve yapılandırılabilir sayıda başarısızlıktan sonra, parola girilene kadar SEP tüm biyometrik istekleri engeller.
import LocalAuthentication
func authenticateUser() {
let context = LAContext()
var error: NSError?
guard context.canEvaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
error: &error
) else { return }
context.evaluatePolicy(
.deviceOwnerAuthenticationWithBiometrics,
localizedReason: "Kimlik doğrula"
) { success, error in
if success {
// SEP biyometrik eşleşmeyi onayladı
}
}
}
Cihazın kaybedilmesi durumunda, biyometrik veriler birden çok düzeyde korunur: şablonlar UID ile şifrelenir (SEP dışında okunamaz), SEP her yeniden başlatmada, 48 saat hareketsizlikten sonra veya 5 başarısız biyometrik denemeden sonra cihaz şifresini gerektirir. Find My aracılığıyla Kayıp Modu, SEP'i ek olarak engeller.
Sıkça Sorulan Sorular
Kilitli bir cihazda — hayır. Secure Enclave, kullanıcı kimlik doğrulaması olmadan verilere erişilemeyecek şekilde tasarlanmıştır. Bilinen saldırılar (A5-A11'de checkm8), SEP'ten veri çıkaramaz — AP'yi tehlikeye atarlar ancak Secure Enclave'i etkilemezler.
ECDSA (secp256r1/P-256) — imzalama ve doğrulama için. ECDH — anahtar anlaşması için. AES-256 — simetrik şifreleme için. SHA-256 — karmalama için. RSA desteklenmez. Tüm işlemler donanım tarafından gerçekleştirilir.
Apple Silicon (M1, M2, M3) üzerinde Secure Enclave, A çiplerine benzer şekilde ancak artırılmış kaynaklarla uygulanır. Daha fazla eşzamanlı anahtarı, daha hızlı P256 işlemlerini destekler ve genişletilmiş bir kullanım durumu kümesine (FileVault, otomatik doldurma, Safari) sahiptir.
UID (Benzersiz Kimlik), çip üretimi sırasında Secure Enclave'e gömülen 256 bitlik rastgele bir tanımlayıcıdır. UID, cihazdaki diğer tüm anahtarları şifrelemek için kök anahtar olarak kullanılır. SEP'in kendisi de dahil olmak üzere hiçbir bileşen bunu okuyamaz.
Tam sıfırlama, Kurtarma Modu (DFU) aracılığıyla ürün yazılımı geri yüklenirken gerçekleşir. Secure Enclave anahtar hiyerarşisini yeniden oluşturur. Tüm Keychain verileri ve biyometrik şablonlar, kurtarma imkanı olmaksızın kalıcı olarak silinir — bu geri döndürülemez bir işlemdir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun