Compartilhar via


Atestado de TPM

Este artigo descreve os conceitos envolvidos ao provisionar dispositivos usando o atestado TPM (Trusted Platform Module) no DPS (Serviço de Provisionamento de Dispositivos). Este artigo é relevante para todas as personas envolvidas na preparação de um dispositivo para implantação.

Um TPM (Trusted Platform Module) é um tipo de HSM (módulo de segurança de hardware). Este artigo pressupõe que você esteja usando um TPM discreto, firmware ou integrado. Os TPMs emulados por software são adequados para protótipos ou testes, mas não fornecem o mesmo nível de segurança que TPMs discretos, firmware ou integrados. Não recomendamos o uso de TPMs de software em produção.

Este artigo só é relevante para dispositivos que usam o TPM 2.0 com suporte de chave HMAC (código de autenticação de mensagem baseado em hash) e suas chaves de endosso. O TPM é um padrão ISO de todo o setor do Grupo de Computação Confiável e você pode ler mais sobre o TPM na especificação completa do TPM 2.0 ou na especificação ISO/IEC 11889. Este artigo também pressupõe que você esteja familiarizado com pares de chaves públicas e privadas e como eles são usados para criptografia.

Os SDKs do Serviço de Provisionamento de Dispositivos lidam com tudo descrito neste artigo para você. Não é necessário implementar o suporte ao TPM se você estiver usando os SDKs em seus dispositivos. Este artigo ajuda a entender conceitualmente o que está acontecendo com seu chip de segurança do TPM quando seu dispositivo é provisionado e por que ele é tão seguro.

Visão geral

Os TPMs usam algo chamado EK (chave de endosso) como a raiz segura da confiança. A EK é exclusiva do TPM e sua alteração altera essencialmente o dispositivo para um novo.

Os TPMs têm outro tipo de chave chamada SRK (chave raiz de armazenamento). O proprietário do TPM pode gerar um SRK depois de assumir a propriedade do TPM. Assumir a propriedade do TPM é a maneira específica do TPM de dizer "alguém define uma senha no HSM". Se um dispositivo TPM for vendido para um novo proprietário, o novo proprietário poderá assumir a propriedade do TPM para gerar um novo SRK. A nova geração SRK garante que o proprietário anterior não possa usar o TPM. Como o SRK é exclusivo para o proprietário do TPM, o SRK pode ser usado para selar dados no próprio TPM para esse proprietário. O SRK oferece um sandbox para o proprietário armazenar suas chaves e possibilita a opção de revogação de acesso se o dispositivo ou TPM for vendido. É como se mudar para uma nova casa: assumir a propriedade é mudar as fechaduras das portas e destruir todos os móveis deixados pelos proprietários anteriores (SRK), mas você não pode mudar o endereço da casa (EK).

Depois que um dispositivo é configurado, ele tem um EK e um SRK disponíveis para uso.

Diagrama que demonstra como assumir controle de um TPM.

As etapas específicas envolvidas na tomada de propriedade de um TPM variam dependendo do fabricante, do conjunto de ferramentas TPM sendo usadas e do sistema operacional do dispositivo.

O Serviço de Provisionamento de Dispositivos usa a parte pública do EK (EK_pub) para identificar e registrar dispositivos. O fornecedor do dispositivo pode ler o EK_pub durante a fabricação ou teste final e carregar o EK_pub no serviço de provisionamento de modo que o dispositivo seja reconhecido quando se conectar ao serviço de provisionamento. O Serviço de Provisionamento de Dispositivos não verifica o SRK ou o proprietário, portanto, "limpar" o TPM apaga os dados do cliente, mas o EK (e outros dados do fornecedor) é preservado e o Serviço de Provisionamento de Dispositivos ainda reconhece o dispositivo quando ele se conecta ao provisionamento.

Processo de atestado

Quando um dispositivo com um TPM se conecta ao Serviço de Provisionamento de Dispositivos, primeiro, o serviço verifica o EK_pub fornecido com relação ao EK_pub armazenado na lista de registro. Se os EK_pubs não coincidirem, o dispositivo não poderá ser provisionado. Se os EK_pubs não coincidirem, o serviço exigirá que o dispositivo prove a propriedade da parte privada da EK por meio de um desafio nonce, que é um desafio seguro usado para provar a identidade. O Serviço de Provisionamento de Dispositivos gera um nonce e, em seguida, o criptografa com a SRK e o EK_pub, fornecidos pelo dispositivo durante a chamada de registro inicial. O TPM sempre mantém a parte privada do EK segura. Essa segurança impede a falsificação e garante que os tokens SAS sejam provisionados com segurança para dispositivos autorizados.

Vamos percorrer o processo de atestado em detalhes.

O dispositivo solicita uma atribuição do Hub IoT

Primeiro, o dispositivo se conecta ao Serviço de Provisionamento de Dispositivos e solicita o provisionamento. Ao fazer isso, o dispositivo fornece o serviço com sua ID de registro, um escopo da ID e o EK_pub e SRK_pub do TPM. O serviço passa o nonce criptografado de volta para o dispositivo e pede que o dispositivo descriptografe o nonce e o use para assinar um token SAS para reconectar e terminar o provisionamento.

Diagrama que mostra como um dispositivo solicita provisionamento.

Desafio de nonce

O dispositivo usa o nonce e as partes privadas da EK e da SRK para descriptografar o nonce para o TPM; a ordem da criptografia do nonce delega confiança da EK, que é imutável, para a SRK, que poderá ser alterada se um novo propriedade assumir a propriedade do TPM.

Diagrama que mostra como um nonce é decifrado.

Validar o nonce e receber credenciais

Em seguida, o dispositivo pode assinar um token SAS usando o nonce descriptografado e restabelecer uma conexão com o Serviço de Provisionamento de Dispositivos usando o token SAS assinado. Com o desafio nonce concluído, o serviço permite que o dispositivo provisione.

Diagrama que mostra como um dispositivo restabelece a conexão com o Serviço de Provisionamento de Dispositivos para validar a propriedade do EK.