
Segurança do processo de atestado
Segurança do processo de atestado
Quando a configuração ACME especifica uma chave associada ao hardware ou quando o serviço de gerenciamento de dispositivos pede um atestado DeviceInformation, o dispositivo usa os seguintes passos:
O sistema operacional pede uma chave associada ao hardware ao Secure Enclave, chamada de chave de atestado. Em atestados ACME, essa chave faz parte da identidade do certificado emitido. Em atestados
DeviceInformation, a chave é gerada pelo sistema operacional e reusada em todos os atestadosDeviceInformationposteriores pelo tempo que o registro durar.O sistema operacional pede um atestado de hardware ao Secure Enclave. Ele especifica a chave do atestado, o código de frescor e quais propriedades ele quer atestar.
O Secure Enclave gera e retorna um novo atestado de hardware.
O sistema operacional envia o atestado de hardware para os servidores de atestado da Apple.
Os servidores de atestado validam o pedido e se recusam a emitir o atestado de certificação ou geram um atestado que contém apenas as propriedades e os valores que ele pôde confirmar. A chave pública do certificado de atestado é igual à chave atestada.
O sistema operacional fornece o certificado de atestado resultante ao serviço de gerenciamento de dispositivos ou à solução ACME.
Para obter mais informações sobre a validação de certificados de atestado, consulte Validação de um atestado de dispositivo gerenciado (em inglês) no site Apple Developer.
Sobre o atestado de hardware
Quando o Secure Enclave gera um atestado de hardware, ele inclui os seguintes elementos, entre outros:
Os identificadores da placa lógica principal.
A chave pública da chave atestada.
Os hashes dos seguintes componentes de software, que são calculados durante o processo de inicialização e armazenados nos registros de hardware (similar à Proteção de Chave Selada):
O firmware do Secure Enclave firmware (sepOS).
O manifesto Image4 anexado ao LLB, que também contém uma medida de todos os outros firmwares emparelhados com o sistema.
O manifesto Image4 do sistema, que contém as medidas de todos os firmwares emparelhados com o sistema.
Outros valores específicos do dispositivo, como ECID e ChipID.
Em computadores Mac, os detalhes da LocalPolicy.
O código de frescor.
Se o Secure Enclave não puder desembalar a chave de atestado, ele se recusa a gerar um atestado de hardware. Isso garante que a chave atestada esteja associada a esse Secure Enclave e que todas as outras propriedades do atestado estejam associadas a essa chave.
Todos esses elementos são compilados em uma estrutura de binário personalizada e assinadas com a UIK. Isso associa o atestado de hardware a uma identidade específica que os atestados da Apple podem verificar, o que os permite associar o pedido a um registro de ativação específico e, portanto, a um registro de fabricação específico.
Geração do certificado de atestado
Quando os servidores de atestado da Apple recebem um pedido de atestado, eles:
Validam a assinatura de Chave de Identidade do Usuário (UIK) do atestado de hardware. Sem uma assinatura válida, o atestado não é gerado.
Procuram o
ucrtque corresponde à chave pública da UIK nos registros de ativação da Apple. Sem umucrtcorrespondente, o atestado não é gerado.Procuram o
scrtque corresponde aoucrtdo dispositivo. Oscrté um certificado emitido pelos servidores da Apple durante a fabricação, baseado na Chave de Identidade do Silício (SIK). A SIK é gerada pelo Secure Enclave e sua chave pública é coletada do dispositivo durante a fabricação. A SIK é usada durante a ativação para verificar se o Secure Enclave do dispositivo em questão está em posse da chave privada. A SIK persiste durante o tempo de vida de um dispositivo e age como um identificador exclusivo. O registro de fabricação do dispositivo é obtido peloscrt. Sem um registro, o atestado não é gerado.Verificam se os identificadores dos componentes de hardware são iguais aos dos registros de fabricação. Se os identificadores dos componentes não forem iguais aos dos registros de fabricação, o atestado não será gerado.
Copiam o código de frescor para o atestado, se presente.
Caso pedido pelo atestado:
Comparam os hashes calculados dos componentes do software aos hashes conhecidos dos registros da compilação. Em caso de correspondência, o número da versão oficial é inserido no atestado; caso contrário, o OID é omitido ou tem valor em branco.
Quando as imagens do LLB, Secure Enclave ou sistema operacional principal são compiladas, os hashes são calculados e gravados em um banco de dados de registros de compilação, junto com os números das versões oficiais dessas imagens.
Calculam o UDID do ECID e ChipID.
Copiam os valores dos OIDs solicitados da LocalPolicy para o atestado se o dispositivo for um Mac.
O resultado prático dessas validações é que nenhum atestado será gerado se os servidores atestados não reconhecerem um dispositivo como um hardware genuíno da Apple. Cada propriedade no certificado de atestado será incluída apenas se os servidores de atestado puderem verificar seus valores, com exceção do código de frescor, que é incluído sem nenhuma validação.