A inclusão do Always Encrypted with Secure Enclaves aprimora os recursos de computação confidencial desse recurso. Ele permite criptografia local e oferece opções mais robustas para conduzir consultas confidenciais. O Always Encrypted com enclaves seguros tem suporte no SQL Server 2019 (15.x) e versões posteriores, bem como no Banco de Dados SQL do Azure.
O Always Encrypted, que foi introduzido pela primeira vez no Banco de Dados SQL do Azure em 2015 e posteriormente no SQL Server 2016 (13.x), protege dados confidenciais contra malware e usuários não autorizados com altos privilégios, como administradores de banco de dados (DBAs), administradores de computador, administradores de nuvem , ou quaisquer outros indivíduos que tenham acesso legítimo a instâncias de servidor, hardware, etc., mas não devam ter acesso a dados específicos ou a todos os dados.
Always Encrypted, conforme discutido aqui, fornece proteção de dados criptografando no lado do cliente e garantindo que nem os dados nem as chaves criptográficas sejam expostos em texto simples no Mecanismo de Banco de Dados. Conseqüentemente, os recursos para trabalhar com colunas criptografadas no banco de dados são significativamente limitados. O Mecanismo de Banco de Dados só é capaz de realizar comparações de igualdade em dados criptografados, e isso só é possível com criptografia determinística. Quaisquer outras operações, como operações criptográficas (como criptografia inicial de dados ou rotação de chaves) e consultas mais complexas (como correspondência de padrões), não são suportadas no banco de dados. Para realizar essas operações, os usuários devem transferir seus dados para fora do banco de dados e realizá-los no lado do cliente.

As limitações associadas à criptografia de dados são resolvidas de forma eficaz pela implementação do Always Encrypted com enclaves seguros. Esta abordagem permite que certos cálculos sejam realizados em dados de texto simples dentro de um enclave seguro localizado no lado do servidor. O enclave seguro, que existe como uma área protegida de memória dentro do processo do Mecanismo de Banco de Dados, é completamente isolado do restante do Mecanismo de Banco de Dados e de outros processos na máquina host. Funciona como uma caixa impenetrável, impermeável à inspeção externa ou a tentativas de depuração. Consequentemente, o enclave seguro serve como um ambiente de execução confiável que pode acessar com segurança dados confidenciais e chaves criptográficas em texto simples, ao mesmo tempo que mantém o nível máximo de confidencialidade dos dados.
O diagrama abaixo demonstra a utilização de enclaves seguros na implementação do Always Encrypted.
Ao examinar uma instrução Transact-SQL fornecida por um aplicativo, o Mecanismo de Banco de Dados avalia se a instrução inclui quaisquer ações executadas em dados criptografados que exijam a utilização do enclave seguro. No caso de tais declarações:
Para garantir a execução segura, o driver cliente transmite com segurança as chaves de criptografia de coluna necessárias para o enclave seguro e envia a instrução para execução.
O enclave seguro é responsável por manipular operações criptográficas e cálculos em colunas criptografadas quando o Mecanismo de Banco de Dados processa a instrução. Nos casos em que a descriptografia é necessária, o enclave descriptografa os dados e realiza cálculos no texto simples.
No processo de processamento de instruções, o Mecanismo de Banco de Dados garante que nem os dados nem as chaves de criptografia de coluna sejam expostos em texto simples fora do enclave seguro.