Proteção de Dados em dispositivos Apple
Em dispositivos Apple com Proteção de Dados, cada dado é protegido com uma chave exclusiva por arquivo (ou por perímetro). A chave, embalada com o algoritmo de embalagem de chaves NIST AED, é ainda embalada por uma de várias chaves de classe, dependendo de como o arquivo deve ser acessado. A chave por arquivo embalada é então armazenada nos metadados do arquivo.
Dispositivos com o formato APFS podem oferecer suporte à clonagem de arquivos (cópias de custo zero que usam a tecnologia “copiar ao gravar”). Se um arquivo for clonado, cada metade do clone recebe uma nova chave para aceitar gravações e permitir que novos dados sejam gravados na mídia com uma nova chave. Com o passar do tempo, o arquivo pode ser composto de várias extensões (ou fragmentos), cada um sendo mapeado a chaves diferentes. Entretanto, todas as extensões que compõem um arquivo são protegidas pela mesma chave de classe.
Quando um arquivo é aberto, seus metadados são descriptografados com a chave do sistema de arquivos, revelando a chave única por arquivo embalada e uma notação de qual classe o protege. A chave única por arquivo (ou por perímetro) é desembalada pela chave de classe e fornecida ao Mecanismo AES de hardware, o qual descriptografa o arquivo conforme ele é lido do armazenamento flash. O gerenciamento de toda a chave de arquivo embalada ocorre no Secure Enclave; a chave do arquivo nunca é exposta diretamente ao Processador de Aplicativos. Na inicialização, o Secure Enclave negocia uma chave efêmera com o Mecanismo AES. Quando o Secure Enclave desembala as chaves de um arquivo, elas são reembaladas pela chave efêmera e enviadas de volta para o Processador de Aplicativos.
Os metadados de todos os arquivos no sistema de arquivos do volume de dados são criptografados com uma chave de volume aleatória, criada na primeira instalação do sistema operacional ou quando o dispositivo é apagado pelo usuário. Essa chave é criptografada e embalada por uma chave de embalamento de chaves conhecida apenas pelo Secure Enclave para armazenamento de longo prazo. A chave de embalamento de chaves é alterada sempre que o usuário apaga o dispositivo. Nos SoCs A9 (e mais recentes), o Secure Enclave faz uso de entropia, assistida por sistemas antirreprodução, para possibilitar o apagamento e proteger sua chave de embalamento de chaves, entre outros materiais. Para obter mais informações, consulte Armazenamento não volátil seguro.
Assim como chaves únicas por arquivo ou por extensão, a chave de metadados do volume de dados nunca é exposta diretamente ao Processador de Aplicativos; o Secure Enclave fornece uma versão efêmera única por inicialização. Quando armazenada, a chave criptografada do sistema de arquivos é embalada ainda por uma “chave apagável” armazenada no Armazenamento Apagável ou com uma chave de embalamento de chave de mídia, protegida pelo mecanismo antirreprodução do Secure Enclave. Essa chave não oferece confidencialidade de dados adicional. Em vez disso, ela é projetada para ser apagada rapidamente sob demanda (por um usuário, por meio da opção “Apagar Todo o Conteúdo e Ajustes”, ou por um usuário ou administrador ao emitir um comando de apagamento remoto a partir de uma solução de gerenciamento de dispositivos móveis (MDM), Microsoft Exchange ActiveSync ou iCloud). O apagamento de uma chave dessa maneira deixa todos os arquivos criptograficamente inacessíveis.
O conteúdo de um arquivo pode ser criptografado com uma ou mais chaves únicas por arquivo (ou por extensão) que são embaladas com uma chave de classe e armazenadas nos metadados de um arquivo que, por sua vez, é criptografado com a chave do sistema de arquivos. A chave de classe é protegida pelo UID do hardware e, em algumas classes, pelo código do usuário. Essa hierarquia fornece flexibilidade e bom desempenho. Por exemplo, a alteração da classe de um arquivo requer apenas que a chave única por arquivo seja reembalada e a alteração do código reembala somente a chave de classe.