Partilhar via


Política de atestado versão 1.0

Os proprietários de instâncias podem usar a política de Atestado do Azure para definir o que deve ser validado durante o fluxo de atestado. Este artigo apresenta o funcionamento do serviço de atestado e do mecanismo de política. Cada tipo de atestado tem sua própria política de atestado. A gramática e o processamento suportados são basicamente os mesmos.

Política versão 1.0

A versão mínima da política suportada pelo serviço é a versão 1.0.

Um diagrama que mostra o Atestado do Azure usando a versão de política 1.0.

O fluxo do serviço de atestado é o seguinte:

  • A plataforma envia as provas de atestado na chamada de atestado para o serviço de atestado.
  • O serviço de atestado analisa as provas e cria uma lista de alegações que é usada na avaliação do atestado. Essas declarações são logicamente categorizadas como conjuntos de declarações de entrada.
  • A política de atestado carregada é usada para avaliar as evidências sobre as regras criadas na política de atestado.

A versão 1.0 da política tem três segmentos:

  • version: A versão é o número da versão da gramática que é seguida.
  • authorizationrules: uma coleção de regras de sinistro que são verificadas primeiro para determinar se o atestado deve prosseguir para as regras de emissão. Use esta seção para filtrar chamadas que não exigem que as regras de emissão sejam aplicadas. Nenhuma declaração pode ser emitida desta seção para o token de resposta. Estas regras podem ser usadas para falhar o atestado.
  • regras de emissão: uma coleção de regras de declaração que são avaliadas para adicionar informações ao resultado do atestado, conforme definido na política. As regras de reclamação aplicam-se pela ordem em que são definidas. Eles também são opcionais. Essas regras podem ser usadas para adicionar ao conjunto de declarações de saída e ao token de resposta. Essas regras não podem ser usadas para falhar no atestado.

As declarações a seguir são suportadas pela política versão 1.0 como parte das declarações de entrada.

Atestado de TPM

Use estas declarações para definir regras de autorização em uma política de atestado TPM (Trusted Platform Module):

  • aikValidated: O valor booleano que contém informações se o certificado da chave de identidade do atestado (AIK) foi validado ou não.
  • aikPubHash: A cadeia de caracteres que contém a chave pública AIK base64 (SHA256) no formato DER.
  • tpmVersion: O valor inteiro que contém a versão principal do TPM.
  • secureBootEnabled: O valor booleano que indica se a inicialização segura está habilitada.
  • iommuEnabled:O valor booleano que indica se a unidade de gerenciamento de memória de entrada-saída está habilitada.
  • bootDebuggingDisabled: O valor booleano que indica se a depuração de inicialização está desabilitada.
  • notSafeMode: O valor booleano que indica se o Windows não está sendo executado no modo de segurança.
  • notWinPE: O valor booleano que indica se o Windows não está sendo executado no modo WinPE.
  • vbsEnabled: O valor booleano que indica se a segurança baseada em virtualização (VBS) está habilitada.
  • vbsReportPresent: O valor booleano que indica se um relatório de enclave VBS está disponível.

Atestado VBS

Use as seguintes declarações para definir regras de autorização em uma política de atestado VBS:

  • enclaveAuthorId: O valor da cadeia de caracteres que contém o valor codificado Base64Url da ID do autor do enclave. É o identificador de autor do módulo primário para o enclave.
  • enclaveImageId: O valor da cadeia de caracteres que contém o valor codificado Base64Url do ID da imagem do enclave. É o identificador de imagem do módulo primário para o enclave.
  • enclaveOwnerId: O valor da cadeia de caracteres que contém o valor codificado Base64Url do ID do proprietário do enclave. É o identificador do proprietário do enclave.
  • enclaveFamilyId: O valor da cadeia de caracteres que contém o valor codificado Base64Url da ID da família enclave. É o identificador de família do módulo primário para o enclave.
  • enclaveSvn: O valor inteiro que contém o número da versão de segurança do módulo primário para o enclave.
  • enclavePlatformSvn: O valor inteiro que contém o número da versão de segurança da plataforma que hospeda o enclave.
  • enclaveFlags: A declaração enclaveFlags é um valor inteiro que contém sinalizadores que descrevem a política de tempo de execução para o enclave.

Políticas de exemplo para vários tipos de atestado

Exemplo de política para TPM:

version=1.0;

authorizationrules { 
    => permit();
};


issuancerules
{
[type=="aikValidated", value==true]&& 
[type=="secureBootEnabled", value==true] &&
[type=="bootDebuggingDisabled", value==true] && 
[type=="notSafeMode", value==true] => issue(type="PlatformAttested", value=true);
};