Secure Enclave — essens, arkitektur och hur den säkra koprocessorn fungerar

Författare: IT Sectr Publicerad: 2026-03-14 Lästid: 10 min

Secure Enclave — är en dedikerad hårdvarukoprocessor i Apple-enheter som implementerar en isolerad säker miljö för att bearbeta kryptografiska operationer och lagra konfidentiell data. Secure Enclave körs på sin egen mikroprocessor med L4-mikrokärna och har ingen direkt åtkomst till enhetens huvudminne eller kringutrustning. Enligt Apple Platform Security Guide använder Secure Enclave en hårdvarubaserad slumpgenerator TRNG och en specialiserad AES-motor för att tillhandahålla kryptografiska operationer på chipnivå.

Huvudpunkter

  • Secure Enclave — isolerad Apple-koprocessor med egen processor, minne och AES-motor
  • Touch ID och Face ID använder Secure Enclave för säker lagring och matchning av biometriska mallar
  • Kryptografiska nycklar genereras inuti Secure Enclave och lämnar den aldrig okrypterade
  • Hårdvaruisolering garanterar att även en hackad iOS-kärna inte har åtkomst till Secure Enclave-data
  • SOC innehåller Secure Enclave från och med A7-chippet (iPhone 5S, 2013), från A9 som separat område

Vad är Secure Enclave?

Secure Enclave (SEP — Secure Enclave Processor) — är en dedikerad 32-bitars RISC-processor (ARM Cortex-A7/A8 på tidiga chips, egen L4-mikrokärna på nyare), integrerad i Apple SoC. Den fungerar som en säker koprocessor för alla kryptografiska och biometriska operationer som kräver hårdvaruisolering.

Historia och generationer

Secure Enclave dök först upp i A7-chippet (iPhone 5S, 2013) tillsammans med Touch ID. I A7–A8 implementerades Secure Enclave som en del av processorn. Från och med A9 (iPhone 6S, 2015) använder Secure Enclave ett separat kristallområde med oberoende strömförsörjning och klockning. Från A12 (2018) fick Secure Enclave sin egen True Random Number Generator (TRNG) och Ed25519-hårdvaruaccelerator.

Varje Secure Enclave har en unik identifierare (UID) inbäddad under chipproduktionen. UID används som rotnyckel för att kryptera alla andra nycklar. Inte ens Apple kan extrahera eller återställa denna identifierare — den är endast tillgänglig inuti Secure Enclave.

Varför isolering behövs

Moderna mobila operativsystem är komplexa och innehåller miljontals rader kod, vilket gör dem sårbara för exploits. Även om en angripare får full kontroll över iOS (på kärnnivå) förblir Secure Enclave oåtkomlig — den är fysiskt separerad från huvud-SoC och accepterar inte direkta kommandon. Endast krypterade förfrågningar via en säker kanal kan kommunicera med SEP.

Enligt data från Apple Platform Security (2025) har inget framgångsrikt fall av dataextraktion från Secure Enclave på en låst enhet under nuvarande hårdvarubegränsningar dokumenterats.

Hur fungerar Secure Enclave?

Secure Enclave fungerar som en autonom processor: efter att enheten startats initieras den av sin egen bootloader (SEP ROM), verifierar integriteten hos L4-mikrokärnan och går sedan över i vänteläge för förfrågningar från Application Processor (AP) via en säker mailbox.

AP-SEP kommunikationskanal

Utbytet mellan applikationsprocessorn (AP) och Secure Enclave sker via en säker mailbox med kryptering på en gemensam sessionsnyckel. AP skickar en krypterad förfrågan, SEP dekrypterar den, utför operationen (signatur, dekryptering, nyckelgenerering) och returnerar resultatet krypterat. SEP accepterar aldrig okrypterade kommandon.

Innan etablering av sessionsnyckeln utför AP och SEP ett autentiseringsprotokoll som använder en gruppnyckel (Group Key) inbäddad i SEP ROM och verifierad av ett Apple-certifikat. Denna mekanism garanterar att endast en äkta Apple-enhet kan kommunicera med den specifika Secure Enclave.

Nyckelgenerering och skydd

Alla kryptografiska nycklar genereras inuti Secure Enclave med hårdvaru-TRNG. Varje nyckel är kopplad till enhetens UID och kan inte exporteras. Vid åtkomst till en nyckel anger AP dess handtag (som i Keychain) och SEP utför operationen utan att avslöja själva nyckeln.

objective-c
// Generering av ECDSA-nyckel inuti 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)
}

Arkitektur och komponenter

Secure Enclave är inte bara en programmodul, utan en fullständig autonom dator på en kristall. Den innehåller sin egen processor, RAM, ROM, icke-flyktigt minne och specialiserade kryptografiska acceleratorer.

Processor och minne

Processorn i Secure Enclave — 32-bitars ARM Cortex-A7 (A7-A10) eller egen L4-mikrokärna (A12+). RAM är statiskt allokerat (SRAM) och otillgängligt utifrån. ROM (SEP ROM) innehåller bootloadern och gruppnyckeln. Icke-flyktigt minne lagrar UID, rotcertifikat och permanenta nycklar.

Storleken på Secure Enclave SRAM är begränsad (16-64 KB beroende på generation). Detta är en arkitektonisk begränsning: inuti SEP utförs endast kryptografiska operationer och jämförelse av biometriska mallar. All annan data överförs via en krypterad kanal till AP:s huvudminne.

Kryptografiska acceleratorer

Secure Enclave innehåller dedikerade hårdvarublock: AES-motor (hårdvarukryptering/dekryptering), P256-accelerator (ECDSA, ECDH), SHA-256/SHA-512-modul, TRNG (True Random Number Generator baserad på ringoscillatorer). Detta säkerställer hög prestanda (gigabithastigheter för AES) med minimal strömförbrukning.

KomponentFunktionPrestanda
AES EngineHårdvarukryptering AES-2563.5 GB/s (A12+)
P256 AcceleratorECDSA-signatur/verifiering15000 op/s
TRNGGenerering av slumptal1 Mbit/s
SHA-256Hashning av data2 GB/s
UID (eFuse)Unik chipidentifierare256 bitar

Gruppnyckel och certifikat

Varje batch Secure Enclave-chips får en gruppnyckel (Group Key) inbäddad i SEP ROM. Denna nyckel används för autentisering av SEP inför AP och för att etablera en krypterad kanal. Apple utfärdar certifikat som signerar gruppnycklarna, vilket möjliggör verifiering av SEP:s äkthet på firmware-nivå.

Interaktion med applikationer

iOS-utvecklare har inte direkt åtkomst till Secure Enclave. Interaktion sker via högnivå-API:er: LocalAuthentication (Touch ID, Face ID), Keychain Services (lagring av nycklar i SEP), CryptoKit (kryptografiska operationer med SEP-nycklar).

CryptoKit och Secure Enclave

Ramverket CryptoKit (iOS 13+) ger direkt åtkomst till Secure Enclave för generering av ECDSA-nycklar och signering av data. Nycklar skapade med flaggan secureEnclaveKey finns fysiskt inuti SEP. Vid signering överförs data via en säker kanal, operationen utförs i SEP och signaturen returneras till applikationen.

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 och Secure Enclave

Keychain Services kan använda Secure Enclave för lagring av kryptografiska nycklar. Attributet kSecAttrTokenID = kSecAttrTokenIDSecureEnclave anger för systemet att nyckeln ska skapas och lagras inuti SEP. Nycklar i SEP är alltid av typen EC (secp256r1/P-256) eftersom Secure Enclave inte stöder RSA.

Secure Enclave och biometri

Touch ID och Face ID — viktiga användarfunktioner implementerade via Secure Enclave. SEP lagrar inte bara biometriska mallar utan jämför dem också med inmatade data, vilket utesluter möjligheten att avlyssna fingeravtrycks- eller ansiktsbilder.

Lagring av biometriska data

Vid registrering av fingeravtryck eller ansikte överför sensorn bilden till Secure Enclave, där den omvandlas till en matematisk mall (inte en bild!) och lagras i SEP:s krypterade minne. Originalbilden förstörs. Mallen kan inte extraheras utåt — SEP kan endast jämföra en ny mall med lagrade mallar.

Secure Enclave lagrar upp till 5 fingeravtryck eller ansikten. Alla mallar skyddas av enhetens UID. Vid omstart av enheten blockerar SEP åtkomst till mallarna tills första kodangivelsen (låskod, inte biometri).

Autentiseringsprocess

När användaren placerar fingret på Touch ID, fångar sensorn bilden och (via drivrutinen i iOS) överför den till Secure Enclave via en säker kanal. SEP jämför mallen med lagrade mallar. Vid matchning returnerar SEP en framgångsstatus + en ephemeral nyckel för upplåsning av Keychain. Misslyckade försök spåras och efter ett visst antal (konfigurerbart) blockerar SEP alla biometriska förfrågningar tills kod anges.

swift
import LocalAuthentication

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

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

    context.evaluatePolicy(
        .deviceOwnerAuthenticationWithBiometrics,
        localizedReason: "Bekräfta din identitet"
    ) { success, error in
        if success {
            // SEP bekräftade biometriöverensstämmelse
        }
    }
}

Säkerhet vid förlust av enhet

Vid förlust av enheten skyddas biometriska data på flera nivåer: mallarna är krypterade med UID (oläsliga utanför SEP), SEP kräver enhetskoden vid varje omstart, efter 48 timmars inaktivitet, efter 5 misslyckade biometriska försök. Lost Mode via Find My blockerar SEP ytterligare.

Vanliga frågor

Kan jag få åtkomst till Secure Enclave-data?

På en låst enhet — nej. Secure Enclave är utformad så att data inte är tillgänglig utan användarautentisering. Kända attacker (checkm8 på A5-A11) kan inte extrahera data från SEP — de komprometterar AP men inte Secure Enclave.

Vilka algoritmer stöder Secure Enclave?

ECDSA (secp256r1/P-256) — för signatur och verifiering. ECDH — för nyckelöverenskommelse. AES-256 — för symmetrisk kryptering. SHA-256 — för hashning. RSA stöds inte. Alla operationer utförs i hårdvara.

Skiljer sig Secure Enclave på Mac med Apple Silicon?

I Apple Silicon (M1, M2, M3) är Secure Enclave implementerad på liknande sätt som i A-chips, men med ökade resurser. Den stöder fler samtidiga nycklar, snabbare P256-operationer och har en utökad uppsättning användningsscenarier (FileVault, autofyll, Safari).

Vad är Secure Enclave UID?

UID (Unique ID) — är en 256-bitars slumpmässig identifierare inbäddad i Secure Enclave under chipproduktion. UID används som rotnyckel för att kryptera alla andra nycklar på enheten. Den kan inte läsas av någon komponent, inklusive SEP själv.

Hur återställer jag Secure Enclave?

Fullständig återställning sker vid återställning av firmware via Recovery Mode (DFU). Secure Enclave återuppbygger nyckelhierarkin. All Keychain-data och biometriska mallar raderas utan möjlighet till återställning — detta är en oåterkallelig process.

Sammanfattning

  • Secure Enclave — isolerad hårdvaru Apple-koprocessor med egen processor, minne och kryptografiska acceleratorer
  • Biometriska mallar för Touch ID och Face ID lagras och bearbetas uteslutande inuti SEP, AP har inte åtkomst till dem
  • Kryptografiska nycklar genereras av Secure Enclave med hårdvaru-TRNG och kan inte exporteras
  • CryptoKit och Keychain gör det möjligt för applikationer att använda Secure Enclave via kSecAttrTokenIDSecureEnclave
  • SEP inkluderar AES-motor (3.5 GB/s), P256-accelerator (15000 signaturer/s) och dedikerat SHA-256-block
  • Hårdvaruisolering garanterar dataskydd även vid fullständig kompromettering av iOS-kärnan
  • Använd Secure Enclave via CryptoKit för lagring av privata signeringsnycklar i iOS-applikationer

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också