Proteção de Chave Selada (SKP)
Em dispositivos Apple compatíveis com a Proteção de Dados, a chave de criptografia de chaves (KEK) é protegida (ou selada) com medidas do software no sistema, além de ser atrelada ao UID disponível somente a partir do Secure Enclave. Em um Mac com Apple Silicon, a proteção da KEK é reforçada ainda mais ao incorporar informações sobre a política de segurança no sistema, dado que o macOS oferece suporte a mudanças de política de segurança críticas (desativação da inicialização segura ou SIP, por exemplo), o que não acontece em outras plataformas. Em um Mac com Apple Silicon, essa proteção abrange as chaves do FileVault, já que o FileVault usa a Proteção de Dados (Classe C) para ser implementado.
A chave que resulta do trançamento da senha do usuário, chave SKP de longo prazo e chave 1 de Hardware (o UID do Secure Enclave) é camada de chave derivada da senha. Essa chave é usada para proteger a keybag do usuário (em todas as plataformas compatíveis) e a KEK (somente no macOS), e então ativar o desbloqueio biométrico ou o desbloqueio automático com outros dispositivos, como o Apple Watch.
A ROM de Inicialização do Secure Enclave captura a medida do OS do Secure Enclave que está carregado. Quando a ROM de Inicialização do Processador de Aplicativos mede o manifesto Image4 anexado ao LLB, esse manifesto contém uma medida de todos os outros firmwares emparelhados ao sistema que também se encontram carregados. A LocalPolicy contém as configurações de segurança elementares para o macOS que são carregadas. A LocalPolicy também contém o campo nsih
, o qual é um hash do manifesto Image4 do macOS. O manifesto Image4 do macOS contém medidas de todos os firmwares emparelhados com o macOS e objetos de inicialização elementares do macOS, como a Coleção do Kernel de Inicialização ou o hash raiz do volume de sistema assinado (SSV).
Se um invasor puder alterar inesperadamente qualquer um dos componentes medidos de firmware, software ou configuração de segurança mencionados acima, ele modifica as medidas armazenadas nos registros de hardware. A modificação das medidas faz com que a chave raiz da medida do sistema (SMRK) derivada do hardware de criptografia derive um valor diferente, efetivamente rompendo o selo na hierarquia de chaves. Isso faz com que a chave de medida do sistema do dispositivo (SMDK) fique inacessível, a qual, por sua vez, faz com que a KEK, e portanto, os dados, fiquem inacessíveis.
Entretanto, quando o sistema não se encontra sob ataque, ele precisa acomodar atualizações de software legítimas que alteram as medidas do firmware e do campo nsih
na LocalPolicy para que apontem para novas medidas do macOS. Em outros sistemas que tentam incorporar medidas de firmware, mas que não têm uma fonte de confiança conhecida, o usuário é requisitado a desativar a segurança, atualizar o firmware e depois reativar, para que uma nova linha base de medida possa ser capturada. Isso aumenta significativamente o risco de um invasor adulterar o firmware durante uma atualização de software. O sistema é auxiliado pelo fato do manifesto Image4 conter todas as medidas necessárias. O hardware que descriptografa a SMDK com a SMRK quando as medidas coincidem durante uma inicialização normal, também pode criptografar a SMDK para uma futura SMRK proposta. Ao especificar as medidas que são esperadas após uma atualização de software, o hardware pode criptografar uma SMDK que esteja acessível em um sistema operacional atual para que ela permaneça acessível em um sistema operacional futuro. De maneira semelhante, quando um cliente altera legitimamente seus ajustes de segurança na LocalPolicy, a SMDK deve ser criptografada para a SMRK futura com base na medida da LocalPolicy, que o LLB calcula na reinicialização seguinte.