Desenvolver aplicativos usando o Always Encrypted com enclaves seguros

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores – Somente Windows Banco de Dados SQL do Azure

O Always Encrypted com enclaves seguros estende o Always Encrypted para habilitar uma funcionalidade mais rica das consultas de aplicativo em colunas de banco de dados confidenciais criptografadas. Ele aproveita as tecnologias de enclave seguro para permitir que o executor de consulta no Mecanismo de Banco de Dados delegue computações em colunas criptografadas a um enclave seguro dentro do processo do Mecanismo de Banco de Dados.

Pré-requisitos

Seu ambiente precisa atender aos requisitos a seguir para dar suporte aos Always Encrypted com enclaves seguros.

  • A instância do SQL Server ou o servidor de banco de dados do banco de dados SQL do Azure precisam ser configurados corretamente para dar suporte aos enclaves e ao atestado, se for o caso ou se for necessário. Para obter mais informações, confira Configurar o atestado e enclave seguro.
  • Certifique-se de que o aplicativo:
    • Usa uma versão de driver cliente que dá suporte a Always Encrypted com enclaves seguros.

    • Habilita o Always Encrypted ao se conectar ao banco de dados.

    • Configura um protocolo de atestado que determina se o driver cliente deverá atestar o enclave antes de enviar consultas de enclave e, nesse caso, qual serviço de atestado deverá usar. As versões de driver mais recentes dão suporte a estes protocolos de atestado:

      • Atestado do Microsoft Azure: impõe o atestado usando o Atestado do Microsoft Azure.
      • Serviço Guardião de Host: impõe o atestado usando o Serviço Guardião de Host.
      • Nenhum: permite o uso de enclaves sem atestado.

      A tabela abaixo especifica protocolos de atestado válidos para produtos SQL e tecnologias de enclave:

      Product Tecnologia de enclave Protocolos de atestado com suporte
      SQL Server 2019 (15.x) e posterior Enclaves SBV Serviço Guardião de Host, nenhum
      Banco de Dados SQL do Azure Enclaves SGX (em bases de dados da série DC) Atestado do Microsoft Azure
      Banco de Dados SQL do Azure Enclaves SBV Nenhum
    • Configura um URL de atestado válido para o ambiente, se você estiver usando atestado.

Drivers de cliente do Always Encrypted com enclaves seguros

Para desenvolver aplicativos usando o Always Encrypted com enclaves seguros, você precisa de uma versão do driver de cliente do SQL que dê suporte a enclaves seguros. O driver de cliente desempenha a seguinte função importante:

  • Antes de enviar uma consulta que usa um enclave seguro ao SQL Server ou o banco de dados SQL do Azure para execução, o driver inicia o atestado do enclave para verificar se o enclave seguro é confiável e pode ser usado com segurança para processar dados confidenciais. Para obter mais informações sobre o atestado, confira Atestado de enclave seguro.
  • O driver de cliente estabelecerá uma sessão segura com o enclave negociando um segredo compartilhado.
  • O driver usa o segredo compartilhado para criptografar as chaves de criptografia de coluna necessárias para o enclave processar a consulta e envia as chaves ao SQL Server, que as encaminha ao enclave seguro que descriptografa as chaves.
  • Por fim, o driver envia a consulta para execução, i que dispara cálculos dentro do enclave seguro.

Os drivers de cliente a seguir são suporte ao Always Encrypted com enclaves seguros:

Confira também