Secure Enclave — lényeg, architektúra és hogyan működik a védett koprocesszor

Szerző: IT Sectr Megjelenés: 2026-03-14 Olvasási idő: 10 perc

Secure Enclave — egy dedikált hardveres koprocesszor az Apple eszközökben, amely izolált biztonságos környezetet valósít meg kriptográfiai műveletek feldolgozására és bizalmas adatok tárolására. A Secure Enclave saját mikroprocesszorral működik L4 mikrokernelrel, és nincs közvetlen hozzáférése az eszköz főmemóriájához vagy perifériáihoz. Az Apple Platform Security Guide szerint a Secure Enclave hardveres TRNG véletlenszám-generátort és specializált AES-motort használ a kriptográfiai műveletek chip szintű biztosításához.

Főbb pontok

  • Secure Enclave — izolált Apple koprocesszor saját processzorral, memóriával és AES-motorral
  • Touch ID és Face ID a Secure Enclave-t használja a biometrikus sablonok biztonságos tárolására és összehasonlítására
  • Kriptográfiai kulcsok a Secure Enclave belsejében generálódnak, és soha nem hagyják el titkosítatlan formában
  • Hardveres izoláció garantálja, hogy még a feltört iOS kernel sem fér hozzá a Secure Enclave adataihoz
  • SOC az A7 chip (iPhone 5S, 2013) óta tartalmaz Secure Enclave-t, A9-től kezdve külön területként

Mi az a Secure Enclave?

Secure Enclave (SEP — Secure Enclave Processor) — egy dedikált 32 bites RISC processzor (ARM Cortex-A7/A8 a korai chipeken, saját L4 mikrokernel az újabbakon), amely az Apple SoC-ba integrált. Védett koprocesszorként funkcionál minden olyan kriptográfiai és biometrikus művelethez, amely hardveres izolációt igényel.

Történet és generációk

A Secure Enclave először az A7 chipben (iPhone 5S, 2013) jelent meg a Touch ID-val együtt. Az A7–A8-ban a Secure Enclave a processzor részeként volt implementálva. Az A9-től (iPhone 6S, 2015) kezdve a Secure Enclave külön kristályterületet használ független tápellátással és órajellel. Az A12-től (2018) a Secure Enclave saját True Random Number Generator-t (TRNG) és Ed25519 hardveres gyorsítót kapott.

Minden Secure Enclave egyedi azonosítóval (UID) rendelkezik, amely a chip gyártási szakaszában kerül beégetésre. A UID gyökérkulcsként szolgál az összes többi kulcs titkosításához. Még az Apple sem tudja kinyerni vagy helyreállítani ezt az azonosítót — az csak a Secure Enclave belsejében érhető el.

Miért van szükség izolációra

A modern mobil operációs rendszerek összetettek és milliónyi kódsort tartalmaznak, ami sebezhetővé teszi őket az exploitokkal szemben. Még ha a támadó teljes irányítást szerez is az iOS felett (kernel szinten), a Secure Enclave hozzáférhetetlen marad — fizikailag elkülönül a fő SoC-től és nem fogad el közvetlen parancsokat. Csak titkosított kérések egy biztonságos csatornán keresztül kommunikálhatnak a SEP-pel.

Az Apple Platform Security (2025) adatai szerint nem dokumentáltak sikeres adatkinyerést a Secure Enclave-ből egy zárolt eszközön a jelenlegi hardveres korlátozások mellett.

Hogyan működik a Secure Enclave?

A Secure Enclave autonóm processzorként funkcionál: az eszköz indítása után saját bootloaderével (SEP ROM) inicializálódik, ellenőrzi az L4 mikrokernel integritását, majd az Application Processor (AP) kéréseinek várakozási módjába lép egy biztonságos postafiókon (mailbox) keresztül.

AP-SEP kommunikációs csatorna

Az alkalmazásprocesszor (AP) és a Secure Enclave közötti adatcsere egy biztonságos postafiókon keresztül történik, közös munkamenet-kulcson alapuló titkosítással. Az AP titkosított kérést küld, a SEP visszafejti, végrehajtja a műveletet (aláírás, visszafejtés, kulcsgenerálás) és az eredményt titkosított formában adja vissza. A SEP soha nem fogad el titkosítatlan parancsokat.

A munkamenet-kulcs létrehozása előtt az AP és a SEP egy hitelesítési protokollt hajt végre, amely a SEP ROM-ba égetett és Apple tanúsítvánnyal ellenőrzött csoportkulcsot (Group Key) használ. Ez a mechanizmus garantálja, hogy csak egy valódi Apple eszköz kommunikálhat az adott Secure Enclave-val.

Kulcsgenerálás és védelem

Az összes kriptográfiai kulcs a Secure Enclave belsejében generálódik hardveres TRNG használatával. Minden kulcs az eszköz UID-jához van kötve és nem exportálható. A kulcs elérésekor az AP megadja annak handle-jét (mint a Keychain-ben), és a SEP végrehajtja a műveletet anélkül, hogy felfedné magát a kulcsot.

objective-c
// ECDSA kulcs generálása a Secure Enclave belsejében
@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)
}

Architektúra és komponensek

A Secure Enclave nem csupán egy szoftvermodul, hanem egy teljes autonóm számítógép a kristályon. Saját processzorral, RAM-mal, ROM-mal, nem felejtő memóriával és specializált kriptográfiai gyorsítókkal rendelkezik.

Processzor és memória

A Secure Enclave processzora — 32 bites ARM Cortex-A7 (A7-A10) vagy saját L4 mikrokernel (A12+). A RAM statikusan van lefoglalva (SRAM) és kívülről nem hozzáférhető. A ROM (SEP ROM) tartalmazza a bootloadert és a csoportkulcsot. A nem felejtő memória tárolja a UID-t, a gyökértanúsítványokat és az állandó kulcsokat.

A Secure Enclave SRAM mérete korlátozott (16-64 KB generációtól függően). Ez egy architekturális korlátozás: a SEP belsejében csak kriptográfiai műveletek és biometrikus sablonok összehasonlítása történik. Minden más adat titkosított csatornán keresztül kerül továbbításra az AP főmemóriájába.

Kriptográfiai gyorsítók

A Secure Enclave dedikált hardverblokkokat tartalmaz: AES-motor (hardveres titkosítás/visszafejtés), P256-gyorsító (ECDSA, ECDH), SHA-256/SHA-512 modul, TRNG (True Random Number Generator gyűrűs oszcillátorok alapján). Ez nagy teljesítményt (gigabites AES-sebesség) biztosít minimális energiafogyasztás mellett.

KomponensFunkcióTeljesítmény
AES EngineHardveres AES-256 titkosítás3.5 GB/s (A12+)
P256 AcceleratorECDSA aláírás/ellenőrzés15000 műv/s
TRNGVéletlenszám-generálás1 Mbit/s
SHA-256Adatok hash-elése2 GB/s
UID (eFuse)Chip egyedi azonosítója256 bit

Csoportkulcs és tanúsítványok

Minden Secure Enclave chip köteg kap egy csoportkulcsot (Group Key), amely a SEP ROM-ba van égetve. Ezt a kulcsot használják a SEP hitelesítésére az AP előtt és a titkosított csatorna létrehozására. Az Apple olyan tanúsítványokat bocsát ki, amelyek aláírják a csoportkulcsokat, lehetővé téve a SEP hitelességének ellenőrzését firmware szinten.

Interakció az alkalmazásokkal

Az iOS fejlesztők nem férnek hozzá közvetlenül a Secure Enclave-hoz. Az interakció magas szintű API-kon keresztül történik: LocalAuthentication (Touch ID, Face ID), Keychain Services (kulcsok tárolása a SEP-ben), CryptoKit (kriptográfiai műveletek SEP kulcsokkal).

CryptoKit és Secure Enclave

A CryptoKit keretrendszer (iOS 13+) közvetlen hozzáférést biztosít a Secure Enclave-hoz ECDSA kulcsok generálásához és adatok aláírásához. A secureEnclaveKey jelzővel létrehozott kulcsok fizikailag a SEP belsejében helyezkednek el. Aláíráskor az adatok egy biztonságos csatornán keresztül kerülnek továbbításra, a művelet a SEP-ben történik, és az aláírás visszakerül az alkalmazáshoz.

swift
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 és Secure Enclave

A Keychain Services használhatja a Secure Enclave-t kriptográfiai kulcsok tárolására. A kSecAttrTokenID = kSecAttrTokenIDSecureEnclave attribútum jelzi a rendszernek, hogy a kulcsot a SEP belsejében kell létrehozni és tárolni. A SEP-ben lévő kulcsok mindig EC típusúak (secp256r1/P-256), mivel a Secure Enclave nem támogatja az RSA-t.

Secure Enclave és biometria

Touch ID és Face ID — kulcsfontosságú felhasználói funkciók, amelyek a Secure Enclave-n keresztül valósulnak meg. A SEP nemcsak tárolja a biometrikus sablonokat, hanem összehasonlítja azokat a bemenő adatokkal, ami kizárja az ujjlenyomat vagy arc képének elfogását.

Biometrikus adatok tárolása

Az ujjlenyomat vagy arc regisztrálásakor az érzékelő továbbítja a képet a Secure Enclave-nak, ahol az matematikai sablonná (nem képpé!) alakul és a SEP titkosított memóriájában tárolódik. Az eredeti kép megsemmisül. A sablon nem nyerhető ki kifelé — a SEP csak egy új sablont tud összehasonlítani a tároltakkal.

A Secure Enclave legfeljebb 5 ujjlenyomatot vagy arcot tárol. Az összes sablont az eszköz UID-ja védi. Az eszköz újraindításakor a SEP blokkolja a sablonokhoz való hozzáférést az első kódbevitelig (zárolási kód, nem biometria).

Hitelesítési folyamat

Amikor a felhasználó az ujját a Touch ID-ra helyezi, az érzékelő leképezi a képet és (az iOS illesztőprogramján keresztül) továbbítja a Secure Enclave-nak egy biztonságos csatornán. A SEP összehasonlítja a sablont a tároltakkal. Egyezés esetén a SEP visszaadja a sikeres státuszt + egy ideiglenes kulcsot a Keychain feloldásához. A sikertelen próbálkozások nyomon követése után egy meghatározott számot követően (beállítható) a SEP blokkolja az összes biometrikus kérést a kód megadásáig.

swift
import LocalAuthentication

func authenticateUser() {
    let context = LAContext()
    var error: NSError?

    guard context.canEvaluatePolicy(
        .deviceOwnerAuthenticationWithBiometrics,
        error: &error
    ) else { return }

    context.evaluatePolicy(
        .deviceOwnerAuthenticationWithBiometrics,
        localizedReason: "Erősítse meg személyazonosságát"
    ) { success, error in
        if success {
            // A SEP megerősítette a biometria egyezést
        }
    }
}

Biztonság eszközvesztés esetén

Eszköz elvesztése esetén a biometrikus adatok több szinten védettek: a sablonok UID-vel vannak titkosítva (a SEP-en kívül olvashatatlanok), a SEP minden újraindításkor, 48 óra inaktivitás után, 5 sikertelen biometrikus próbálkozás után kéri az eszközkódot. A Lost Mode a Find My alkalmazáson keresztül tovább blokkolja a SEP-et.

Gyakran ismételt kérdések

Hozzáférhetek a Secure Enclave adataihoz?

Zárolt eszközön — nem. A Secure Enclave úgy van tervezve, hogy az adatok ne legyenek hozzáférhetők felhasználói hitelesítés nélkül. Az ismert támadások (checkm8 az A5-A11-en) nem tudnak adatokat kinyerni a SEP-ből — kompromittálják az AP-t, de nem a Secure Enclave-t.

Milyen algoritmusokat támogat a Secure Enclave?

ECDSA (secp256r1/P-256) — aláíráshoz és ellenőrzéshez. ECDH — kulcsmegállapodáshoz. AES-256 — szimmetrikus titkosításhoz. SHA-256 — hash-eléshez. Az RSA nem támogatott. Minden művelet hardveresen történik.

Különbözik-e a Secure Enclave a Mac Apple Silicon-nel?

Az Apple Silicon-ban (M1, M2, M3) a Secure Enclave hasonlóan van implementálva, mint az A chipekben, de nagyobb erőforrásokkal. Több egyidejű kulcsot támogat, gyorsabb P256 műveleteket és kiterjesztett használati eseteket (FileVault, automatikus kitöltés, Safari) kínál.

Mi az a Secure Enclave UID?

UID (Unique ID) — egy 256 bites véletlen azonosító, amely a Secure Enclave-ba van égetve a chip gyártása során. A UID gyökérkulcsként szolgál az eszköz összes többi kulcsának titkosításához. Egyetlen komponens sem olvashatja, beleértve magát a SEP-et sem.

Hogyan lehet visszaállítani a Secure Enclave-t?

A teljes visszaállítás a firmware Recovery Mode-on (DFU) keresztüli helyreállításakor történik. A Secure Enclave újraépíti a kulcshierarchiát. Az összes Keychain adat és biometrikus sablon törlődik helyreállítási lehetőség nélkül — ez egy visszafordíthatatlan folyamat.

Összefoglalás

  • Secure Enclave — izolált hardveres Apple koprocesszor saját processzorral, memóriával és kriptográfiai gyorsítókkal
  • A Touch ID és Face ID biometrikus sablonjai kizárólag a SEP-ben tárolódnak és dolgozódnak fel, az AP nem fér hozzájuk
  • Kriptográfiai kulcsokat a Secure Enclave generálja hardveres TRNG segítségével, és nem exportálhatók
  • CryptoKit és Keychain lehetővé teszik az alkalmazások számára a Secure Enclave használatát a kSecAttrTokenIDSecureEnclave-en keresztül
  • SEP AES-motort (3.5 GB/s), P256 gyorsítót (15000 aláírás/s) és dedikált SHA-256 blokkot tartalmaz
  • Hardveres izoláció garantálja az adatok védelmét még az iOS kernel teljes kompromittálása esetén is
  • Használja a Secure Enclave-t a CryptoKit-en keresztül privát aláírási kulcsok tárolására iOS alkalmazásokban

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is