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.
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.
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.
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.
Introdução conceitual à residência e soberania de dados e visão geral das opções fornecidas pelo Azure para agências públicas protegerem seus dados na nuvem.
Demonstrar conhecimento fundamental dos conceitos de nuvem e dos principais serviços do Azure, além de recursos e ferramentas de gerenciamento e governança do Azure.