Partilhar via


Conceitos Básicos

Este artigo define alguns conceitos básicos relacionados ao Atestado do Microsoft Azure.

Token Web JSON (JWTs)

JSON Web Token (JWT) é um método de RFC7519 padrão aberto para transmitir informações com segurança entre as partes como um objeto JSON (JavaScript Object Notation). Essas informações podem ser verificadas e confiáveis porque são assinadas digitalmente. Os JWTs podem ser assinados usando um segredo ou um par de chaves pública/privada.

Chave Web JSON (JWK)

JSON Web Key (JWK) é uma estrutura de dados JSON que representa uma chave criptográfica. Esta especificação também define uma estrutura de dados JSON JWK set que representa um conjunto de JWKs.

Fornecedor de atestado

O provedor de atestado pertence ao provedor de recursos do Azure chamado Microsoft.Attestation. O provedor de recursos é um ponto de extremidade de serviço que fornece o contrato REST de Atestado do Azure e é implantado usando o Gerenciador de Recursos do Azure. Cada provedor de atestado honra uma política específica e detetável. Os provedores de atestado são criados com uma política padrão para cada tipo de atestado (observe que o enclave VBS não tem nenhuma política padrão). Consulte exemplos de uma política de atestado para obter mais detalhes sobre a política padrão para SGX.

Pedido de atestado

A solicitação de atestado é um objeto JSON serializado enviado pelo aplicativo cliente para o provedor de atestado. O objeto request para o enclave SGX tem duas propriedades:

  • "Quote" – O valor da propriedade "Quote" é uma cadeia de caracteres que contém uma representação codificada Base64URL da cotação de atestado.
  • "EnclaveHeldData" – O valor da propriedade "EnclaveHeldData" é uma cadeia de caracteres que contém uma representação codificada Base64URL dos Dados Mantidos do Enclave.

O Atestado do Azure valida a "Cotação" fornecida para garantir que o hash SHA256 dos Dados Mantidos do Enclave fornecidos seja expresso nos primeiros 32 bytes do campo reportData na cotação.

Política de atestado

A política de atestado é usada para processar as provas de atestado e é configurável pelos clientes. O núcleo do Atestado do Azure é um mecanismo de política, que processa declarações que constituem a evidência. As políticas são usadas para determinar se o Atestado do Azure deve emitir um token de atestado com base em evidências (ou não) e, portanto, endossar o Atestado (ou não). Assim, a falha em passar todas as políticas resulta em nenhum token JWT sendo emitido.

Se a política padrão no provedor de atestado não atender às necessidades, os clientes poderão criar políticas personalizadas em qualquer uma das regiões suportadas pelo Atestado do Azure. O gerenciamento de políticas é um recurso importante fornecido aos clientes pelo Atestado do Azure. As políticas são específicas do tipo de atestado e podem ser usadas para identificar enclaves ou adicionar declarações ao token de saída ou modificar declarações em um token de saída.

Veja exemplos de uma política de atestado.

Benefícios da assinatura de apólices

Uma política de atestado é o que, em última análise, determina se um token de atestado é emitido pelo Atestado do Azure. A política também determina as declarações a serem geradas no token de atestado. É crucial que a política avaliada pelo serviço seja a política escrita pelo administrador, e que não tenha sido adulterada ou modificada por entidades externas.

O modelo de confiança define o modelo de autorização do provedor de atestado para definir e atualizar a política. Dois modelos são suportados – um baseado na autorização do Microsoft Entra e outro baseado na posse de chaves criptográficas gerenciadas pelo cliente (conhecido como modelo isolado). O modelo isolado permite que o Atestado do Azure garanta que a política enviada pelo cliente não seja adulterada.

No modelo isolado, o administrador cria um provedor de atestado especificando um conjunto de certificados X.509 de assinatura confiáveis em um arquivo. O administrador pode então adicionar uma política assinada ao provedor de atestado. O Atestado do Azure, ao processar a solicitação de atestado, valida a assinatura da política usando a chave pública representada pelo parâmetro "jwk" ou "x5c" no cabeçalho. O Atestado do Azure verifica se a chave pública no cabeçalho da solicitação está na lista de certificados de assinatura confiáveis associados ao provedor de atestado. Dessa forma, a terceira parte confiável (Atestado do Azure) pode confiar em uma política assinada usando os certificados X.509 que conhece.

Veja exemplos de certificado de signatário de política para exemplos.

Token de certificação

A resposta de Atestado do Azure é uma cadeia de caracteres JSON cujo valor contém JWT. O Atestado do Azure empacota as declarações e gera um JWT assinado. A operação de assinatura é executada usando um certificado autoassinado com nome de entidade correspondente ao elemento AttestUri do provedor de atestado.

A API Get OpenID Metadata retorna uma resposta OpenID Configuration conforme especificado pelo protocolo OpenID Connect Discovery. A API recupera metadados sobre os certificados de assinatura em uso pelo Atestado do Azure.

Veja exemplos de token de atestado.

Encriptação de dados inativos

Para proteger os dados do cliente, o Atestado do Azure persiste seus dados no Armazenamento do Azure. O armazenamento do Azure fornece criptografia de dados em repouso à medida que os dados são gravados em data centers e os descriptografa para que os clientes os acessem. Essa criptografia ocorre usando uma chave de criptografia gerenciada pela Microsoft.

Além de proteger os dados no armazenamento do Azure, o Atestado do Azure também aproveita o Azure Disk Encryption (ADE) para criptografar VMs de serviço. Para o Atestado do Azure em execução em um enclave em ambientes de computação confidenciais do Azure, a extensão ADE não é suportada no momento. Nesses cenários, para evitar que os dados sejam armazenados na memória, o arquivo de paginação é desativado.

Nenhum dado do cliente está sendo persistido nas unidades de disco rígido locais da instância de Atestado do Azure.

Próximos passos