Classes de Proteção de Dados

Quando um novo arquivo é criado em um dispositivo compatível com a Proteção de Dados, o app que o criou atribui uma classe ao arquivo. Cada classe usa políticas diferentes para determinar quando os dados podem ser acessados. As classes e políticas básicas são descritas nas seções a seguir. Computadores Mac baseados em Apple Silicon não são compatíveis com Classe D: Sem Proteção e um limite de segurança é estabelecido ao redor do início e término da sessão (e não ao bloquear ou desbloquear, como no iPad e iPhone).

Classe

Tipo de proteção

Classe A: Proteção Completa

NSFileProtectionComplete

Classe B: Protegido Exceto se Aberto

NSFileProtectionCompleteUnlessOpen

Classe C: Protegido Até a Primeira Autenticação do Usuário

Nota: o macOS usa uma chave de volume para recriar as características de proteção do FileVault.

NSFileProtectionCompleteUntilFirstUserAuthentication

Classe D: Sem Proteção

Nota: incompatível com o macOS.

NSFileProtectionNone

Proteção Completa

NSFileProtectionComplete

A chave de classe é protegida por uma chave derivada do código ou senha do usuário e do UID do dispositivo. Logo depois do usuário bloquear um dispositivo (10 segundos, se o ajuste em Exigir Senha for Imediatamente), a chave de classe descriptografada é descartada, deixando todos os dados nesta classe inacessíveis até que o usuário digite o código novamente ou use o Optic ID, Face ID ou Touch ID para desbloquear (iniciar a sessão) no dispositivo.

Em dispositivos com macOS, logo depois que o último usuário finaliza a sessão, a chave de classe descriptografada é descartada, deixando todos os dados nesta classe inacessíveis até que um usuário digite a senha novamente ou use o Touch ID para iniciar a sessão no dispositivo.

Protegido Exceto se Aberto

NSFileProtectionCompleteUnlessOpen

talvez seja necessário gravar alguns arquivos enquanto o dispositivo estiver bloqueado ou o usuário não tiver uma sessão iniciada. Um bom exemplo disso é o download em segundo plano de um anexo de e-mail. Esse comportamento é atingido por meio do uso da criptografia assimétrica de curva elíptica (ECDH) sobre Curve25519. A chave única por arquivo habitual é protegida por uma chave derivada que usa o Acordo de Chaves Diffie-Hellman de Um Passo, como descrito no NIST SP 800-56A.

A chave pública transitória do Acordo é armazenada em conjunto com a chave única por arquivo embalada. A KDF é a Função de Derivação da Chave de Concatenação (Alternativa Aprovada 1), como descrita em 5.8.1 do NIST SP 800-56A. O AlgorithmID é omitido. PartyUInfo é uma chave pública transitória e PartyVInfo é uma chave pública estática. SHA‑256 é usado como a função de hash. Assim que o arquivo é fechado, a chave única por arquivo é apagada da memória. Para abri-lo novamente, o segredo compartilhado é recriado usando a chave privada da classe Protegido Exceto se Aberto e a chave pública transitória do arquivo, que são usadas para desembalar a chave única por arquivo, que por sua vez, é usada para descriptografar o arquivo.

Em dispositivos com macOS, a parte privada de NSFileProtectionCompleteUnlessOpen fica acessível desde que qualquer usuário no sistema tenha iniciado uma sessão ou esteja autenticado.

Protegido Até a Primeira Autenticação do Usuário

NSFileProtectionCompleteUntilFirstUserAuthentication

essa classe se comporta da mesma maneira que a Proteção Completa, exceto pelo fato de que a chave de classe descriptografada não é removida da memória quando o dispositivo é bloqueado ou o usuário finaliza a sessão. A proteção desta classe tem propriedades semelhantes à criptografia de volume completo em computadores de mesa e protege os dados de ataques que envolvem reinicialização. Essa é a classe padrão de todos os dados de apps de terceiros que não tiverem sido atribuídos a uma classe de Proteção de Dados.

Em computadores Mac, essa classe usa uma chave de volume (que fica acessível desde que o volume esteja montado) e age da mesma forma que o FileVault.

Sem Proteção

NSFileProtectionNone

essa chave de classe é protegida apenas pelo UID e é mantida no Armazenamento Apagável. Como todas as chaves necessárias para descriptografar os arquivos dessa classe são armazenadas no dispositivo, a criptografia oferece apenas o benefício do apagamento remoto rápido. Se um arquivo não for atribuído a uma classe de Proteção de Dados, ele ainda será armazenado criptografado (assim como todos os dados em um iPad, iPhone e Apple Vision Pro). Isso não é compatível com o macOS.

Nota: em dispositivos com macOS, em volumes que não correspondem a um sistema operacional inicializado, todas as classes de proteção de dados são acessíveis desde que o volume esteja montado. A classe de proteção de dados padrão é NSFileProtectionCompleteUntilFirstUserAuthentication. A funcionalidade de chave por extensão está disponível tanto a apps Rosetta 2 quanto a apps nativos.

Data de Publicação: 19 de dezembro de 2024
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Ajudou?
Limite de caracteres: 250
O número máximo de caracteres é 250.
Agradecemos seu comentário.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.