
Atestado de Dispositivo Gerenciado em dispositivos Apple
O atestado de dispositivo gerenciado está disponível no iOS 16, iPadOS 16, macOS 14, tvOS 16, visionOS 1.1 e watchOS 9 ou posteriores. Ele usa o Secure Enclave para fornecer garantias criptográficas sobre a identidade de um dispositivo e sua postura de segurança. Dispositivos iPad, iPhone e Apple TV requerem o chip A11 Bionic ou posterior, e apenas computadores Mac com Apple Silicon são compatíveis. O Atestado de Dispositivo Gerenciado ajuda a proteger contra as seguintes ameaças:
Um dispositivo comprometido que minta sobre suas propriedades
Um dispositivo comprometido que forneça um atestado desatualizado
Um dispositivo comprometido que envie identificadores de um dispositivo diferente
Extração de chave privada para uso em um dispositivo comprometido
Ataque de sequestro de pedido de certificado para enganar a autoridade de certificação (AC) a emitir um certificado para o invasor
Com o atestado de dispositivo gerenciado, um dispositivo pode pedir um atestado dos servidores de atestado da Apple, que retornam um vetor de dados que consiste em uma folha e um certificado intermediário que têm como raiz a AC Raiz de Atestado Empresarial da Apple. Dependendo do tipo do dispositivo, o certificado folha pode conter propriedades específicas conforme a tabela a seguir.
OID e valor | Versões dos sistemas operacionais mínimos compatíveis | Descrição | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
1.2.840.113635.100.8.9.1 Número de série | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Representa o número de série do dispositivo e pode ser usado para identificar um dispositivo. Para ajudar a proteger a privacidade do usuário, o valor não é incluído quando o Atestado de Dispositivo Gerenciado é usado com o Registro de Usuário. | |||||||||
1.2.840.113635.100.8.9.2 UDID | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Representa o ID de hardware exclusivo e pode ser usado para identificar um dispositivo. Em um Mac, o UDID é igual ao UDID de provisão do dispositivo. Para ajudar a proteger a privacidade do usuário, o valor não é incluído quando o Atestado de Dispositivo Gerenciado é usado com o Registro de Usuário. | |||||||||
1.2.840.113635.100.8.10.2 Versão do sepOS | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Representa a versão do firmware do Secure Enclave. | |||||||||
1.2.840.113635.100.8.11.1 Código de frescor | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Um código único e não previsível que identifica um atestado em particular. Isso indica que o atestado foi gerado depois que o código foi criado. | |||||||||
1.2.840.113635.100.8.13.1 Estado da SIP | macOS 14 | Representa o estado de ativação da SIP em um Mac com Apple Silicon. | |||||||||
1.2.840.113635.100.8.13.2 Estado da inicialização segura | macOS 14 | Representa a configuração da inicialização segura selecionada em um Mac com Apple Silicon. | |||||||||
1.2.840.113635.100.8.13.3 Extensões de kernel de terceiros permitidas | macOS 14 | Representa se extensões de kernel de terceiros são ou não permitidas em um Mac com Apple Silicon. | |||||||||
1.2.840.113635.100.8.10.3 Versão do LLB | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Representa a versão do Gerenciador de Inicialização de Baixo Nível. | |||||||||
1.2.840.113635.100.8.10.1 Versão do sistema operacional | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Representa a versão do sistema operacional e do iBoot. | |||||||||
1.2.840.113635.100.8.9.4 ID do dispositivo para atualização de software | iOS 16 iPadOS 16 macOS 14 tvOS 16 visionOS 1.1 watchOS 9 | Atesta o | |||||||||
Um pedido de atestado é iniciado por um pedido DeviceInformation enviado pelo serviço de gerenciamento de dispositivos ou pela instalação de uma configuração ACME. Nos dois casos, o dispositivo recebe um código de frescor do serviço de gerenciamento de dispositivos ou da solução ACME. Com o atestado DeviceInformation, o código de frescor é o valor de DeviceAttestationNonce especificado no pedido. Com o atestado ACME, o código de frescor é o hash SHA‑256 do token do dispositivo, do desafio device‑attest‑01. O valor resultante é incluído como propriedade no certificado de folha e permite que o serviço de gerenciamento de dispositivos ou a solução ACME verifique que o atestado é igual ao pedido.
Ao receber o atestado, um serviço de back‑end precisa realizar verificações de validação. Essas verificações incluem: garantir a emissão do certificado folha pela AC Raiz de Atestado Empresarial da Apple, comparar o hash do código de frescor com o valor esperado e examinar outras propriedades no atestado.
Dependendo do modelo de implementação da organização, o Atestado de Dispositivo Gerenciado pode ser uma fundação importante de uma implementação moderna e segura, usada de diversas maneiras:
Usar um certificado emitido por ACME para autenticar a conexão do cliente com o serviço de gerenciamento de dispositivos e usar o atestado
DeviceInformationpara verificar as propriedades de um dispositivo de maneira contínua.Verificar a identidade de um dispositivo e sua postura de segurança, além de fazer com que a solução ACME realize uma avaliação de confiança antes de emitir um certificado. Dessa maneira, apenas os dispositivos que atendem aos padrões exigidos recebem um certificado.
Integrar as propriedades do dispositivo do atestado em um certificado ACME e realizar a avaliação de confiança nas partes dependentes.
Chaves associadas ao hardware
Como parte da emissão de um certificado que usa o protocolo ACME, pode‑se exigir que um dispositivo forneça um atestado que também faça com que o par de chaves associado seja protegido pelo Secure Enclave para que ele se beneficie das proteções robustas do hardware e ajude a impedir a exportação da chave privada.
Para criar uma chave associada ao hardware, a configuração ACME precisa usar o algoritmo ECSECPrimeRandom com um tamanho de chave de 256 ou 384 bits. Isso especifica um par de chaves nas curvas P‑256 ou P‑384 conforme definido no NIST SP 800‑186.
Para gerar a chave privada, o Secure Enclave usa o seguinte para criar um segredo criptográfico embalado:
Uma combinação do Gerador de Números Aleatórios Verdadeiro (TRNG) de hardware
Entropia armazenada no armazenamento não volátil seguro do Secure Enclave
Uma chave de Proteção de Dados
O sistema operacional armazena o segredo embalado. No entanto, ele não serve para nada quando isolado. Para derivar a chave privada, o Secure Enclave precisa usar o mesmo segredo, a mesma entropia armazenada e a mesma chave de Proteção de Dados. Pelo fato da entropia armazenada e da Chave de Proteção serem exclusivas a um Secure Enclave específico, apenas ele pode gerar a chave privada que vincula efetivamente a chave associada ao hardware ao Secure Enclave.
Quando o dispositivo é apagado, o Secure Enclave elimina a entropia armazenada. Por esse motivo, não é possível gerar novamente as chaves associadas ao hardware após um backup e restauração, mesmo ao restaurar para o mesmo dispositivo.
Qualquer configuração que contenha um payload ACME com uma chave associada ao hardware é removida quando restaurada. Se uma chave associada ao hardware for usada como identidade do cliente no serviço de gerenciamento de dispositivos, o registro do dispositivo será cancelado. Nesse cenário, se o dispositivo tiver sido registrado pelo Registro Automático de Dispositivo, ele obterá seu perfil de registro e se registrará novamente.