Conceitos básicos

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

Token Web JSON (JWTs)

O JWT (Token Web JSON) é um método RFC7519 padrão aberto usado para transmitir informações com segurança entre as partes como um objeto JSON (JavaScript Object Notation). É possível verificar essas informações e confiar nelas porque elas são assinadas digitalmente. Os JWTs podem ser assinados por meio de um segredo ou um par de chaves pública/privada.

Chave da Web JSON (JWK)

A JWK (Chave da Web JSON) é uma estrutura de dados JSON que representa uma chave de criptografia. Essa especificação também define uma estrutura de dados JSON do Conjunto de JWK que representa um conjunto de JWKs.

Provedor 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 do Atestado do Azure e é implantado por meio do Azure Resource Manager. Cada provedor de atestado respeita uma política específica e detectável. Os provedores de atestado são criados com uma política padrão para cada tipo de atestado (observe que o enclave da VBS não tem nenhuma política padrão). Confira os exemplos de uma política de atestado para obter mais detalhes sobre a política padrão do SGX.

Solicitação de atestado

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

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

O Atestado do Azure valida a "Cotação" fornecida para garantir que o hash SHA256 dos Dados Mantidos pelo 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 evidências de atestado e pode ser configurada pelos clientes. O núcleo do Atestado do Azure é um mecanismo de política, que processa as 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). Dessa forma, a não aprovação em todas as políticas resulta na não emissão de um token JWT.

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 com suporte 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 as declarações em um token de saída.

Consulte exemplos de uma política de atestado.

Benefícios da assinatura de política

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. É fundamental 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. Há suporte para dois modelos : um baseado na autorização do Microsoft Entra e outro com base na posse de chaves criptográficas gerenciadas pelo cliente (conhecidas 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 autenticação confiável em um arquivo. Depois, o administrador poderá 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 com os certificados X.509 reconhecidos por ele.

Confira os exemplos de certificado de signatário de política para obter exemplos.

Token de atestado

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

A API Obter Metadados do OpenID retorna uma resposta de Configuração do OpenID, conforme especificado pelo protocolo de Descoberta do OpenID Connect. A API recupera metadados sobre os certificados de autenticação em uso pelo Atestado do Azure.

Confira Exemplos de um token de atestado.

Criptografia de dados em repouso

Para proteger os dados do cliente, o Atestado do Azure persiste os dados no Armazenamento do Azure. O armazenamento do Azure fornece criptografia de dados inativos à medida que os dados são gravados nos centros de dados e os descriptografa para que os clientes os acessem. Essa criptografia ocorre com 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 ADE (Azure Disk Encryption) para criptografar as VMs de serviço. Para o Atestado do Azure em execução em um enclave nos ambientes de computação confidencial do Azure, atualmente, não há suporte para a extensão do ADE. Nesses cenários, para impedir que os dados sejam armazenados na memória, o arquivo de paginação fica desabilitado.

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

Próximas etapas