Obter o atestado do NitroTPM - Amazon Elastic Compute Cloud

Obter o atestado do NitroTPM

O atestado é um componente essencial do processo de atestação do NitroTPM. Ele contém uma série de medidas criptográficas que podem ser usadas para verificar a identidade da instância e provar que ela está executando somente software confiável. Você pode usar o atestado com o AWS KMS, que tem compatibilidade integrada com a atestação do NitroTPM, ou criar seus próprios mecanismos criptográficos de atestação.

O utilitário nitro-tpm-attest permite que você recupere um atestado assinado do NitroTPM para uma instância do Amazon EC2 durante o runtime

O exemplo de descrição de imagem do Amazon Linux 2023 instala automaticamente o utilitário na imagem compilada no diretório /usr/bin/. Isso garante que o utilitário seja pré-instalado nas instâncias iniciadas usando a AMI. Não é necessário instalar o utilitário manualmente. Para obter mais informações, consulte Criar o exemplo de descrição de imagem do Amazon Linux 2023.

Instalar o utilitário nitro-tpm-attest

Se você estiver usando o Amazon Linux 2023, poderá instalar o utilitário nitro-tpm-attest a partir do repositório Amazon Linux como se segue.

sudo yum install aws-nitro-tpm-tools

Usar o utilitário nitro-tpm-attest

O utilitário fornece um único comando, nitro-tpm-attest, para recuperar o atestado. O comando retorna o atestado codificado em Concise Binary Object Representation (CBOR) e assinado usando CBOR Object Signing and Encryption (COSE).

Ao executar o comando, você pode especificar os seguintes parâmetros opcionais:

  • public-key: uma chave pública que pode ser usada pelo AWS KMS ou por um serviço externo para criptografar dados de resposta antes de serem retornados. Isso garante que somente o destinatário pretendido, que possui a chave privada, possa descriptografar os dados. Por exemplo, se você estiver atestando com o AWS KMS, o serviço criptografa os dados de texto simples com a chave pública no atestado e retorna o texto cifrado resultante no campo CiphertextForRecipient da resposta. Compatível somente com chaves RSA.

  • user-data: os dados do usuário podem ser usados para entregar dados assinados adicionais a um serviço externo. Esses dados do usuário podem ser usados para concluir um protocolo acordado entre a instância solicitante e o serviço externo. Não usado para atestação com o AWS KMS.

  • nonce: o nonce pode ser usado para configurar a autenticação de desafio-resposta entre a instância e o serviço externo para ajudar a evitar ataques de falsificação de identidade. Usar um nonce permite que o serviço externo verifique se está interagindo com uma instância ao vivo e não com um impostor que está reutilizando um atestado antigo. Não usado para atestação com o AWS KMS.

Para recuperar o atestado

Use o seguinte comando e os seguintes parâmetros opcionais:

/usr/bin/nitro-tpm-attest \ --public-key rsa_public_key \ --user-data user_data \ --nonce nonce

Para ver um exemplo completo que mostra como gerar um par de chaves RSA e como solicitar um atestado com a chave pública, consulte o repositório nitro-tpm-attest do GitHub.