Visão geral da Proteção de Dados
A Apple usa uma tecnologia chamada Proteção de Dados para proteger os dados guardados no armazenamento flash de dispositivos com um SoC da Apple, como um iPhone, iPad, Apple Watch, Apple TV e um Mac com Apple Silicon. Com a Proteção de Dados, um dispositivo pode responder a eventos comuns, como ligações telefônicas, sem deixar de oferecer um alto nível de criptografia nos dados de usuário. Certos apps do sistema (como Mensagens, Mail, Calendário, Contatos e Fotos) e valores de dados de Saúde usam a Proteção de Dados por padrão. Apps de terceiros recebem essa proteção automaticamente.
Implementação
A Proteção de Dados é implementada pela construção e gerenciamento de uma hierarquia de chaves, aproveitando as tecnologias de criptografia de hardware integradas a dispositivos Apple. A Proteção de Dados é controlada por arquivo, atribuindo uma classe a cada um deles; a acessibilidade é determinada de acordo com a constatação do desbloqueio das chaves de classe. O Apple File System (APFS) permite que o sistema de arquivos subdivida ainda mais as chaves de acordo com um padrão por perímetro (onde partes de um arquivo podem ter chaves diferentes).
Sempre que um arquivo é criado no volume de dados, a Proteção de Dados cria uma nova chave de 256 bits (a chave única por arquivo) e a fornece ao Mecanismo AES de hardware, que usa a chave para criptografar o arquivo conforme ele é gravado no armazenamento flash. Em dispositivos com A14 até A17 e M1 até M3, a criptografia usa AES-256 no modo XTS, onde a chave única por arquivo de 256 bits passa por uma Função de Derivação de Chaves (Publicação Especial NIST 800-108) para derivar chaves de ajuste e cifra de 256 bits cada. Nos dispositivos com A9 até A13 e S5 até S9, a criptografia usa AES-128 no modo XTS, onde a chave única por arquivo de 256 bits é dividida para fornecer chaves de ajuste e cifra de 128 bits cada.
Em um Mac com Apple Silicon, a Proteção de Dados usa a Classe C por padrão (consulte Classes de Proteção de Dados) mas utiliza uma chave de volume em vez de uma chave por perímetro ou por arquivo, o que recria eficientemente o modelo de segurança do FileVault para os dados de usuário. Usuários ainda devem optar por usar o FileVault para receber toda a proteção do trançamento da hierarquia das chaves de criptografia com suas senhas. Desenvolvedores também podem optar por usar uma classe de proteção mais alta que use uma chave por arquivo ou por perímetro.