Desenvolver aplicativos usando o Always Encrypted com enclaves seguros
Aplica-se a: SQL Server 2019 (15.x) e versões posteriores (somente para 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.
- Se você estiver usando o SQL Server e o HGS (Serviço Guardião de Host), confira Determinar e compartilhar a URL de atestado do HGS.
- Se você estiver usando o banco de dados SQL do Azure com enclaves Intel SGX e o Atestado do Microsoft Azure, confira Determinar a URL de atestado para sua política de 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:
Provedor de Dados do Microsoft .NET para SQL Server no .NET Framework 4.6 ou superior e no .NET Core 2.1 ou superior. Para usar enclaves SBV sem atestado, é necessária a versão 4.1 ou posteriores, que é compatível com o .NET Framework 4.6.1 ou posteriores e o .NET Core 3.1.
- Para obter mais informações, confira Como usar o Always Encrypted com o Provedor de Dados do Microsoft .NET para SQL Server.
- Para obter um tutorial passo a passo, confira Tutorial: como desenvolver um aplicativo .NET usando o Always Encrypted com enclaves seguros.
- Confira também Exemplo que demonstra o uso do provedor do Azure Key Vault e o Always Encrypted com enclaves seguros.
Microsoft ODBC Driver for SQL Server, versão 17.4 ou acima. Para usar enclaves SBV sem atestado, é necessária a versão 18.1 ou superior.
- Para obter mais informações, veja Como usar Always Encrypted com o driver ODBC do Windows.
- Para obter informações sobre como habilitar computações de enclave para uma conexão de banco de dados usando o ODBC, confira a seção Como habilitar o Always Encrypted com enclaves seguros.
Microsoft ODBC Driver para SQL Server, versão 8.2 ou superior. Para usar enclaves SBV sem atestado, é necessária a versão 12.2 ou superior.
- Para obter mais informações, confira Como usar o Always Encrypted com enclaves seguros com o driver ODBC
Provedor de Dados do .NET Framework para SQL Server no .NET Framework 4.7.2 ou acima.
- Para obter mais informações, confira Usando o Always Encrypted com o Provedor de Dados .NET Framework para SQL Server.
- Para obter um tutorial detalhado, confira Tutorial: Desenvolver um aplicativo .NET Framework usando o Always Encrypted com enclaves seguros
Observação
Usar o provedor de dados .NET Framework para SQL Server (System.Data.SqlClient) não é recomendado para novos desenvolvimentos. Veja mais informações em System.Data.SqlClient.