Configurar o atestado para Always Encrypted usando o Atestado do Azure

Aplica-se a:Banco de Dados SQL do Azure

O Microsoft Azure Attestation é uma solução para atestar ambientes de execução confiáveis (TEEs), incluindo enclaves Intel Software Guard Extensions (Intel SGX).

Para usar o Atestado do Azure para atestar enclaves Intel SGX usados para Always Encrypted com enclaves seguros no Banco de Dados SQL do Azure, você precisa:

  1. Crie um provedor de atestado e configure-o com a política de atestado recomendada.

  2. Determine a URL do atestado e compartilhe-a com os administradores do aplicativo.

Importante

Com os enclaves Intel SGX no Banco de Dados SQL do Azure, o atestado é obrigatório e requer o Atestado do Microsoft Azure. Os enclaves VBS no Banco de Dados SQL do Azure não oferecem suporte a atestado. Este artigo aplica-se apenas aos enclaves Intel SGX.

Nota

A configuração do atestado é de responsabilidade do administrador do atestado. Consulte Funções e responsabilidades ao configurar enclaves e atestados Intel SGX.

Criar e configurar um provedor de atestado

Um provedor de atestado é um recurso no Azure Attestation que avalia solicitações de atestado em relação a políticas de atestado e emite tokens de atestado.

As políticas de atestado são especificadas usando a gramática da regra de declaração.

Importante

Um provedor de atestado é criado com a política padrão para enclaves Intel SGX, que não valida o código em execução dentro do enclave. A Microsoft recomenda que você defina a política recomendada usada na saída a seguir e não use a política padrão para Always Encrypted com enclaves seguros.

A Microsoft recomenda a seguinte política para atestar os enclaves Intel SGX usados para Always Encrypted no Banco de dados SQL do Azure:

version= 1.0;
authorizationrules 
{
       [ type=="x-ms-sgx-is-debuggable", value==false ]
        && [ type=="x-ms-sgx-product-id", value==4639 ]
        && [ type=="x-ms-sgx-svn", value>= 2 ]
        && [ type=="x-ms-sgx-mrsigner", value=="e31c9e505f37a58de09335075fc8591254313eb20bb1a27e5443cc450b6e33e5"] 
    => permit();
};

A política verifica:

  • O enclave dentro do Banco de Dados SQL do Azure não oferece suporte à depuração.

    Os enclaves podem ser carregados com a depuração desativada ou ativada. O suporte à depuração foi projetado para permitir que os desenvolvedores solucionem problemas do código em execução em um enclave. Em um sistema de produção, a depuração poderia permitir que um administrador examinasse o conteúdo do enclave, o que reduziria o nível de proteção que o enclave oferece. A política recomendada desabilita a depuração para garantir que, se um administrador mal-intencionado tentar ativar o suporte à depuração assumindo o controle da máquina de enclave, o atestado falhará.

  • A ID do produto do enclave corresponde à ID do produto atribuída ao Always Encrypted com enclaves seguros.

    Cada enclave tem um ID de produto único que o diferencia de outros enclaves. O ID do produto atribuído ao enclave Always Encrypted é 4639.

  • O número de versão de segurança (SVN) da biblioteca é maior ou igual a 2.

    O SVN permite que a Microsoft responda a possíveis bugs de segurança identificados no código do enclave. Caso um problema de segurança seja descoberto e corrigido, a Microsoft implantará uma nova versão do enclave com um novo SVN (incrementado). A política recomendada é atualizada para refletir o novo SVN. Ao atualizar sua política para corresponder à política recomendada, você pode garantir que, se um administrador mal-intencionado tentar carregar um enclave mais antigo e inseguro, o atestado falhará.

  • A biblioteca no enclave foi assinada com a chave de assinatura da Microsoft (o valor da afirmação x-ms-sgx-mrsigner é o hash da chave de assinatura).

    Um dos principais objetivos do atestado é convencer os clientes de que o binário em execução no enclave é o binário que deve ser executado. As políticas de certificação fornecem dois mecanismos para este fim. Uma é a reivindicação mrenclave, que é o hash do binário que supostamente é executado em um enclave . O problema com o mrenclave é que o hash de binário muda mesmo com alterações triviais ao código, o que dificulta rever o código em execução no enclave. Desta forma, recomendamos a utilização do mrsigner, que é um hash de uma chave utilizada para iniciar sessão no binário do enclave. Quando a Microsoft gira o enclave, o mrsigner permanece o mesmo, desde que a chave de assinatura não seja alterada. Dessa forma, torna-se viável implantar binários atualizados sem interromper os aplicativos dos clientes.

Importante

A Microsoft pode precisar girar a chave usada para assinar o binário do enclave Always Encrypted, o que deve ser um evento raro. Antes que uma nova versão do binário do enclave, assinada com uma nova chave, seja implantada no Banco de Dados SQL do Azure, este artigo será atualizado para fornecer uma nova política de atestado recomendada e instruções sobre como você deve atualizar a política em seus provedores de atestado para garantir que seus aplicativos continuem a funcionar ininterruptamente.

Para obter instruções sobre como criar um provedor de atestado e configurar com uma política de atestado usando:

Determinar o URL de atestado para sua política de atestado

Depois de configurar uma política de atestado, você precisa compartilhar a URL de atestado com administradores de aplicativos que usam Always Encrypted com enclaves seguros no Banco de Dados SQL do Azure. O URL de atestado é o Attest URI do provedor de atestado que contém a política de atestado, que tem esta aparência: https://MyAttestationProvider.wus.attest.azure.net.

Usar o portal do Azure para determinar a URL de atestado

No painel Visão geral do provedor de atestado, copie o valor da propriedade para a Attest URI área de transferência.

Usar o PowerShell para determinar a URL de atestado

Use o Get-AzAttestation cmdlet para recuperar as propriedades do provedor de atestado, incluindo AttestURI.

Get-AzAttestation -Name $attestationProviderName -ResourceGroupName $attestationResourceGroupName

Para obter mais informações, consulte Criar e gerenciar um provedor de atestado.

Próximos passos

Consulte também