Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo descreve os conceitos envolvidos no provisionamento de dispositivos usando o atestado TPM (Trusted Platform Module) no DPS (Serviço de Provisionamento de Dispositivos). Este artigo é relevante para todas as pessoas envolvidas na preparação de um dispositivo para implantação.
Um TPM (Trusted Platform Module) é um tipo de módulo de segurança de hardware (HSM). Este artigo pressupõe que você esteja usando um TPM discreto, firmware ou integrado. Os TPMs emulados por software são adequados para prototipagem ou teste, 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 na produção.
Este artigo só é relevante para dispositivos que usam TPM 2.0 com suporte de chave HMAC e as suas chaves de endosso. O TPM é um padrão ISO para todo o setor do Trusted Computing Group, 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 de dispositivos do Serviço de Aprovisionamento de Dispositivos tratam de tudo o que é descrito neste artigo. Não há necessidade de implementar o suporte a TPM se estiver usando os SDKs em seus dispositivos. Este artigo ajuda-o a compreender conceitualmente o que está a acontecer com o seu chip de segurança TPM, quando o seu dispositivo é configurado e o que torna o TPM tão seguro.
Visão geral
Os TPMs usam algo chamado chave de endosso (EK) como a raiz segura da confiança. O EK é exclusivo do TPM e alterá-lo essencialmente transforma o dispositivo em um novo.
Os TPMs têm outro tipo de chave chamada chave raiz de armazenamento (SRK). 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 a 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 do proprietário do TPM, o SRK pode ser usado para selar dados no próprio TPM para esse proprietário. O SRK fornece um sandbox para o proprietário armazenar as suas chaves e permite a revogação do acesso se o dispositivo ou TPM for vendido. É como mudar-se para uma nova casa: tomar posse é 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).
Uma vez que um dispositivo é configurado, ele tem um EK e um SRK disponíveis para uso.
As etapas específicas envolvidas na apropriação de um TPM variam dependendo do fabricante, do conjunto de ferramentas TPM que estão 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 o teste final e carregar o EK_pub para o serviço de aprovisionamento de modo que o dispositivo seja reconhecido quando estabelecer a conexão com o serviço de aprovisionamento. O Serviço de Provisionamento de Dispositivo 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 Dispositivo ainda reconhece o dispositivo quando ele se conecta ao provisionamento.
Processo de certificação
Quando um dispositivo com um TPM se conecta ao Serviço de Provisionamento de Dispositivo, o serviço primeiro compara o EK_pub fornecido com o EK_pub armazenado na lista de inscrição. Se os EK_pubs não corresponderem, o dispositivo não poderá ser provisionado. Se os EK_pubs coincidirem, o serviço então exige que o dispositivo prove a propriedade do segmento privado do EK por meio de um desafio nonce, que é um teste seguro usado para verificar a identidade. O Serviço de Provisionamento de Dispositivo gera um nonce e criptografa-o, primeiro com o SRK e depois com o EK_pub, ambos fornecidos pelo dispositivo durante a chamada de registro inicial. O TPM sempre mantém a parte privada do EK segura. Essa segurança evita falsificações e garante que os tokens SAS sejam provisionados com segurança para dispositivos autorizados.
Vamos percorrer o processo de certificação em detalhes.
O dispositivo solicita uma atribuição de Hub de IoT
Primeiro, o dispositivo se conecta ao Serviço de Provisionamento de Dispositivo e solicita o provisionamento. Ao fazer isso, o dispositivo fornece ao serviço sua ID de registro, um escopo de ID e os 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 use isso para assinar um token SAS para se conectar novamente e concluir o provisionamento.
Desafio Nonce
O dispositivo obtém o nonce e usa as partes privadas do EK e do SRK para descriptografar o nonce dentro do TPM; a ordem de encriptação do nonce transfere a confiança do EK, que é imutável, para o SRK, que pode mudar se um novo proprietário assumir a propriedade do TPM.
Valide o nonce e receba credenciais
O dispositivo pode então assinar um token SAS usando o nonce descriptografado e restabelecer uma conexão com o Serviço de Provisionamento de Dispositivo usando o token SAS assinado. Com o desafio Nonce concluído, o serviço permite que o dispositivo seja provisionado.