Secure Enclave — arquitetura e funcionamento do coprocessador protegido

Autor: IT Sectr Publicado: 2026-03-14 Tempo de leitura: 10 min

Secure Enclave é um coprocessador de hardware dedicado em dispositivos Apple que implementa um ambiente seguro isolado para processar operações criptográficas e armazenar dados confidenciais. O Secure Enclave funciona em seu próprio microprocessador com o microkernel L4 e não tem acesso direto à memória principal ou aos periféricos do dispositivo. De acordo com o Apple Platform Security Guide, o Secure Enclave usa um gerador de números aleatórios de hardware TRNG e um mecanismo AES especializado para fornecer operações criptográficas no nível do chip.

Principais conclusões

  • Secure Enclave — um coprocessador Apple isolado com seu próprio processador, memória e mecanismo AES
  • Touch ID e Face ID usam o Secure Enclave para armazenamento seguro e correspondência de modelos biométricos
  • Chaves criptográficas são geradas dentro do Secure Enclave e nunca o deixam sem criptografia
  • O isolamento de hardware garante que mesmo um kernel iOS comprometido não possa acessar os dados do Secure Enclave
  • O SOC contém um Secure Enclave dedicado a partir do chip A7 (iPhone 5S, 2013), com um separado a partir do A9

O que é Secure Enclave?

Secure Enclave (SEP — Secure Enclave Processor) é um processador RISC de 32 bits dedicado (ARM Cortex-A7/A8 em chips antigos, microkernel L4 proprietário) integrado ao SoC da Apple. Ele funciona como um coprocessador seguro para todas as operações criptográficas e biométricas que exigem isolamento de hardware.

História e gerações

O Secure Enclave apareceu pela primeira vez no chip A7 (iPhone 5S, 2013) junto com o Touch ID. No A7–A8, o Secure Enclave é implementado como parte do processador. A partir do A9 (iPhone 6S, 2015), o Secure Enclave usa uma área separada do chip com alimentação e clock independentes. Desde o A12 (2018), o Secure Enclave tem seu próprio Gerador de Números Aleatórios Verdadeiros (TRNG) e um acelerador de hardware Ed25519.

Cada Secure Enclave tem um identificador único (UID) gravado no estágio de fabricação do chip. O UID é usado como chave raiz para criptografar todas as outras chaves. Nem mesmo a Apple pode extrair ou recuperar este identificador — ele só é acessível dentro do Secure Enclave.

Por que o isolamento é necessário

Os sistemas operacionais móveis modernos são complexos e contêm milhões de linhas de código, tornando-os vulneráveis a explorações. Mesmo que um invasor obtenha controle total do iOS (nível de kernel), o Secure Enclave permanece inacessível — ele está fisicamente separado do SoC principal e não aceita comandos diretos. Apenas solicitações criptografadas através de um canal seguro podem interagir com o SEP.

De acordo com a Apple Platform Security (2025), nenhuma extração bem-sucedida de dados do Secure Enclave em um dispositivo bloqueado foi documentada com as restrições de hardware atuais.

Como funciona o Secure Enclave?

O Secure Enclave funciona como um processador autônomo: após a inicialização do dispositivo, ele é iniciado com seu próprio carregador de boot (SEP ROM), verifica a integridade do microkernel L4 e entra em um estado de espera por solicitações do Processador de Aplicação (AP) através de uma caixa postal segura.

Canal de comunicação AP-SEP

A comunicação entre o Processador de Aplicação (AP) e o Secure Enclave ocorre através de uma caixa postal segura com criptografia usando uma chave de sessão compartilhada. O AP envia uma solicitação criptografada, o SEP a descriptografa, realiza a operação (assinatura, descriptografia, geração de chave) e retorna o resultado criptografado. O SEP nunca aceita comandos não criptografados.

Antes de estabelecer uma chave de sessão, o AP e o SEP realizam um protocolo de autenticação usando uma Chave de Grupo (Group Key) incorporada na ROM do SEP e verificada por um certificado Apple. Este mecanismo garante que apenas um dispositivo Apple genuíno possa interagir com este Secure Enclave.

Geração e proteção de chaves

Todas as chaves criptográficas são geradas dentro do Secure Enclave usando TRNG de hardware. Cada chave está vinculada ao UID do dispositivo e não pode ser exportada. Ao acessar uma chave, o AP especifica seu identificador (como no Keychain) e o SEP realiza a operação sem revelar a chave em si.

objective-c
// Geração de chave ECDSA dentro do 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)
}

Arquitetura e componentes

O Secure Enclave não é apenas um módulo de software — é um computador autônomo completo em um chip. Ele contém seu próprio processador, RAM, ROM, memória não volátil e aceleradores criptográficos especializados.

Processador e memória

O processador do Secure Enclave é um ARM Cortex-A7 de 32 bits (A7-A10) ou um microkernel L4 proprietário (A12+). A RAM é alocada estaticamente (SRAM) e inacessível externamente. A ROM (SEP ROM) contém o carregador de boot e a chave de grupo. A memória não volátil armazena o UID, certificados raiz e chaves permanentes.

O tamanho da SRAM do Secure Enclave é limitado (16–64 KB dependendo da geração). Esta é uma limitação arquitetural: apenas operações criptográficas e correspondência de modelos biométricos são realizadas dentro do SEP. Todos os outros dados são transferidos através de um canal criptografado para a memória principal do AP.

Aceleradores criptográficos

O Secure Enclave contém blocos de hardware dedicados: mecanismo AES (criptografia/descriptografia por hardware), acelerador P256 (ECDSA, ECDH), módulo SHA-256/SHA-512, TRNG (Gerador de Números Aleatórios Verdadeiros baseado em osciladores em anel). Isso proporciona alto desempenho (velocidades AES de gigabit) com consumo mínimo de energia.

ComponenteFunçãoDesempenho
Mecanismo AESCriptografia AES-256 por hardware3.5 GB/s (A12+)
Acelerador P256Assinatura/verificação ECDSA15000 op/s
TRNGGeração de números aleatórios1 Mbit/s
SHA-256Hash de dados2 GB/s
UID (eFuse)Identificador único do chip256 bits

Chave de grupo e certificados

Cada lote de chips Secure Enclave recebe uma Chave de Grupo (Group Key) incorporada na ROM do SEP. Esta chave é usada para autenticar o SEP perante o AP e para estabelecer um canal criptografado. A Apple emite certificados que assinam as chaves de grupo, permitindo verificar a autenticidade do SEP no nível do firmware.

Interação com aplicativos

Os desenvolvedores iOS não acessam o Secure Enclave diretamente. A interação ocorre através de APIs de alto nível: LocalAuthentication (Touch ID, Face ID), Keychain Services (armazenamento de chaves no SEP), CryptoKit (operações criptográficas com chaves SEP).

CryptoKit e Secure Enclave

O framework CryptoKit (iOS 13+) fornece acesso direto ao Secure Enclave para gerar chaves ECDSA e assinar dados. As chaves criadas com o sinalizador secureEnclaveKey estão fisicamente localizadas dentro do SEP. Ao assinar, os dados são transmitidos através de um canal seguro, a operação é realizada no SEP e a assinatura é retornada ao aplicativo.

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

O Keychain Services pode usar o Secure Enclave para armazenar chaves criptográficas. O atributo kSecAttrTokenID = kSecAttrTokenIDSecureEnclave informa ao sistema que a chave deve ser criada e armazenada dentro do SEP. As chaves no SEP são sempre do tipo EC (secp256r1/P-256), pois o Secure Enclave não suporta RSA.

Secure Enclave e biometria

Touch ID e Face ID são recursos-chave do usuário implementados através do Secure Enclave. O SEP não apenas armazena modelos biométricos, mas também realiza a correspondência com os dados fornecidos, eliminando a possibilidade de interceptar a imagem da impressão digital ou do rosto.

Armazenamento de dados biométricos

Ao registrar uma impressão digital ou rosto, o sensor transmite a imagem ao Secure Enclave, onde é convertida em um modelo matemático (não uma imagem!) e armazenada na memória criptografada do SEP. A imagem original é destruída. O modelo não pode ser extraído externamente — o SEP só pode comparar um novo modelo com os armazenados.

O Secure Enclave pode armazenar até 5 impressões digitais ou rostos. Todos os modelos são protegidos pelo UID do dispositivo. Quando o dispositivo é reiniciado, o SEP bloqueia o acesso aos modelos até que o código de acesso (código de bloqueio, não biometria) seja inserido pela primeira vez.

Processo de autenticação

Quando um usuário coloca o dedo no Touch ID, o sensor captura a imagem e (através do driver iOS) a transmite ao Secure Enclave por um canal seguro. O SEP compara o modelo com os armazenados. Em caso de correspondência, o SEP retorna um status de sucesso ao AP junto com uma chave efêmera para desbloquear o Keychain. As tentativas falhas são rastreadas e, após um número configurável de falhas, o SEP bloqueia todas as solicitações biométricas até que o código seja inserido.

swift
import LocalAuthentication

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

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

    context.evaluatePolicy(
        .deviceOwnerAuthenticationWithBiometrics,
        localizedReason: "Autenticar"
    ) { success, error in
        if success {
            // SEP confirmou correspondência biométrica
        }
    }
}

Segurança em caso de perda do dispositivo

Em caso de perda do dispositivo, os dados biométricos são protegidos em vários níveis: os modelos são criptografados com UID (ilegíveis fora do SEP), o SEP exige o código do dispositivo em cada reinicialização, após 48 horas de inatividade ou após 5 tentativas biométricas falhas. O Modo Perdido através do Find My bloqueia adicionalmente o SEP.

Perguntas frequentes

É possível acessar os dados do Secure Enclave?

Em um dispositivo bloqueado — não. O Secure Enclave é projetado para que os dados fiquem inacessíveis sem autenticação do usuário. Ataques conhecidos (checkm8 em A5-A11) não podem extrair dados do SEP — eles comprometem o AP, mas não o Secure Enclave.

Quais algoritmos o Secure Enclave suporta?

ECDSA (secp256r1/P-256) — para assinatura e verificação. ECDH — para acordo de chaves. AES-256 — para criptografia simétrica. SHA-256 — para hash. RSA não é suportado. Todas as operações são realizadas por hardware.

O Secure Enclave é diferente no Mac com Apple Silicon?

No Apple Silicon (M1, M2, M3), o Secure Enclave é implementado de forma semelhante aos chips A, mas com recursos ampliados. Suporta mais chaves simultâneas, operações P256 mais rápidas e tem um conjunto expandido de casos de uso (FileVault, preenchimento automático, Safari).

O que é o UID do Secure Enclave?

O UID (Identificador Único) é um identificador aleatório de 256 bits gravado no Secure Enclave durante a fabricação do chip. O UID é usado como chave raiz para criptografar todas as outras chaves no dispositivo. Nenhum componente, incluindo o próprio SEP, pode lê-lo.

Como redefinir o Secure Enclave?

Uma redefinição completa ocorre ao restaurar o firmware através do Modo de Recuperação (DFU). O Secure Enclave recria a hierarquia de chaves. Todos os dados do Keychain e modelos biométricos são excluídos permanentemente sem possibilidade de recuperação — este é um processo irreversível.

Resumo

  • Secure Enclave — um coprocessador de hardware Apple isolado com seu próprio processador, memória e aceleradores criptográficos
  • Os modelos biométricos do Touch ID e Face ID são armazenados e processados exclusivamente dentro do SEP; o AP não tem acesso a eles
  • As chaves criptográficas são geradas pelo Secure Enclave usando TRNG de hardware e não podem ser exportadas
  • CryptoKit e Keychain permitem que aplicativos usem o Secure Enclave através de kSecAttrTokenIDSecureEnclave
  • O SEP inclui um mecanismo AES (3.5 GB/s), acelerador P256 (15000 assinaturas/s) e um bloco SHA-256 dedicado
  • O isolamento de hardware garante proteção de dados mesmo com comprometimento total do kernel iOS
  • Use o Secure Enclave através do CryptoKit para armazenar chaves de assinatura privadas em aplicativos iOS

Vamos desenvolver um aplicativo móvel chave na mão

A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.

Discutir o projeto

Leia também