Habilitar o Always Encrypted com enclaves seguros em colunas criptografadas existentes

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

Este artigo descreve como desbloquear a funcionalidade do Always Encrypted com enclaves seguros e habilitar cálculos de enclave para as colunas criptografadas existentes.

Se você tiver colunas já criptografadas com chaves que não são compatíveis com enclave, poderá fazer com que essas colunas sejam criptografadas com chaves compatíveis com enclave. Essa ação permitirá que você use o enclave seguro em consultas nas colunas.

Habilite os cálculos de enclave para as colunas criptografadas existentes de algumas maneiras diferentes, dependendo do seguinte:

  • Escopo/granularidade: você deseja habilitar a funcionalidade de enclave para um subconjunto de colunas ou para todas as colunas protegidas por uma chave mestra de coluna especificada?
  • Tamanho dos dados: qual é o tamanho das tabelas que contêm as colunas que você deseja habilitar para enclave?
  • Você também deseja alterar o tipo de criptografia de suas colunas? Lembre-se de que somente a criptografia aleatória dá suporte a cálculos avançados (correspondência de padrões, operadores de comparação). Se a coluna for criptografada usando a criptografia determinística, você também precisará criptografá-la novamente com a criptografia aleatória para desbloquear cálculos avançados.

As seções a seguir descrevem as três abordagens usadas para habilitar enclaves nas colunas existentes.

Método 1: Girar a chave mestra de coluna para substituí-la por uma chave mestra de coluna habilitada para enclave

A substituição de uma chave mestra de coluna existente (que não está habilitada para enclave) por uma nova chave mestra de coluna que está habilitada para enclave efetivamente torna todas as chaves de criptografia de coluna (associadas à chave mestra de coluna) também habilitadas para enclave.

  • Vantagens:

    • não envolve criptografar novamente os dados, portanto, normalmente é a abordagem mais rápida. É uma abordagem recomendada para colunas que contêm grandes quantidades de dados, que já estão habilitadas para cálculos avançados e usam a criptografia determinística.
    • Permite habilitar a funcionalidade de enclave para várias colunas em escala. A substituição da chave mestra de coluna pela chave mestra de coluna habilitada para enclave torna todas as chaves de criptografia de coluna e todas as colunas criptografadas associadas à chave mestra de coluna original habilitadas para enclave.
  • Desvantagens:

    • Não dá suporte à alteração do tipo de criptografia de determinística para aleatória. Embora permita a criptografia local para colunas criptografadas com criptografia determinística, não permite computações complexas. Você precisará criptografar novamente as colunas usando a criptografia aleatória.
    • Não permite que você converta seletivamente algumas das colunas associadas a uma chave mestra de coluna especificada.
    • Introduz uma sobrecarga de gerenciamento de chaves. Você precisará criar uma nova chave mestra de coluna e disponibilizá-la para aplicações que consultam as colunas afetadas.

Para obter informações sobre como girar uma chave mestra de coluna, confira Girar chaves habilitadas para enclave.

Método 2: Fazer a rotação da chave mestra de coluna e criptografar as colunas novamente usando criptografia aleatória no local

Esse método envolve a execução do Método 1 como a primeira etapa e, em seguida, a nova criptografia das colunas. As colunas começam usando a criptografia determinística e, em seguida, são criptografadas novamente com a criptografia aleatória para desbloquear consultas avançadas.

  • Vantagens:

    • Recriptografa os dados no próprio local. É um método recomendado se você precisa habilitar consultas avançadas para colunas criptografadas que atualmente usam a criptografia determinística e contêm grandes quantidades de dados. A etapa 1 (rotação da chave mestra de coluna) viabiliza a criptografia in-place para colunas que usam criptografia determinística, e a etapa 2 (recriptografar as colunas) pode ser realizada in-place.
    • Permite habilitar a funcionalidade de enclave para várias colunas em escala.
  • Desvantagens:

    • Não permite que você converta seletivamente algumas das colunas associadas a uma chave mestra de coluna especificada.
    • Introduz uma sobrecarga de gerenciamento de chaves. Você precisará criar uma nova chave mestra de coluna e disponibilizá-la para aplicações que consultam as colunas afetadas.

Para obter informações sobre como girar uma chave mestra de coluna e criptografar novamente uma coluna in-loco para girar uma chave de criptografia de coluna, confira Girar chaves habilitadas para enclave.

Método 3: Criptografar novamente uma coluna selecionada com uma chave de criptografia de coluna habilitada para enclave no lado do cliente

Esse método envolve criptografar novamente uma coluna com uma chave de criptografia de coluna com suporte a enclave, permitindo consultas mais complexas com criptografia aleatória. Como a chave de criptografia de coluna atual não está habilitada para enclave, não é possível criptografar novamente a coluna in-loco. Use o assistente do Always Encrypted ou o cmdlet Set-SqlColumnEncryption para criptografar novamente a coluna do banco de dados.

  • Vantagens:

    • Permite habilitar seletivamente a funcionalidade de enclave (criptografia local e consultas avançadas, se estiver criptografando novamente a coluna com criptografia aleatória) para uma coluna ou um pequeno subconjunto de colunas.
    • Pode habilitar cálculos avançados para colunas em uma só etapa.
  • Desvantagens:

    • Para criptografar novamente os dados, a ferramenta os moverá para fora do banco de dados, o que pode levar muito tempo e está propenso a erros de rede.
    • Introduz uma sobrecarga de gerenciamento de chaves. Você precisará criar uma nova chave mestra de coluna e disponibilizá-la para aplicações que consultam as colunas afetadas.

Para obter mais informações sobre como girar uma criptografia de coluna por meio de uma ferramenta do lado do cliente, confira Girar chaves do Always Encrypted usando o SQL Server Management Studio e Girar chaves do Always Encrypted usando o PowerShell.