Partilhar via


Hierarquia de criptografia

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

O SQL Server criptografa dados com uma criptografia hierárquica e infraestrutura de gerenciamento de chaves. Cada camada criptografa a camada abaixo dela usando uma combinação de certificados, chaves assimétricas e chaves simétricas. Chaves assimétricas e chaves simétricas podem ser armazenadas fora do SQL Server em um módulo EKM (Gerenciamento Extensível de Chaves).

A ilustração a seguir mostra que cada camada da hierarquia de criptografia criptografa a camada abaixo dela e exibe as configurações de criptografia mais comuns. O acesso ao início da hierarquia é geralmente protegido por uma senha.

Diagrama de combinações de criptografia em uma pilha.

Tenha em mente os seguintes conceitos:

  • Para obter o melhor desempenho, criptografe dados usando chaves simétricas em vez de certificados ou chaves assimétricas.

  • As chaves mestras de banco de dados (DMK) são protegidas pela chave mestra de serviço (SMK). A Chave Mestra de Serviço é criada pela instalação do SQL Server e é criptografada com a API de Proteção de Dados do Windows (DPAPI).

  • Outras hierarquias de criptografia empilhando camadas adicionais são possíveis.

  • Um módulo EKM (Extensible Key Management) contém chaves simétricas ou assimétricas fora do SQL Server.

  • A Criptografia de Dados Transparente (TDE) deve usar uma chave simétrica chamada chave de criptografia de banco de dados, que é protegida por um certificado protegido pelo DMK do banco de master dados ou por uma chave assimétrica armazenada em um EKM.

  • A Chave Mestra de Serviço e todas as Chaves Mestras de Banco de Dados são chaves simétricas.

A ilustração a seguir mostra as mesmas informações de uma maneira alternativa.

Diagrama de combinações de criptografia em uma roda.

Este diagrama ilustra os seguintes conceitos adicionais:

  • Nesta ilustração, as setas indicam hierarquias de criptografia comuns.

  • As chaves simétricas e assimétricas no EKM podem proteger o acesso às chaves simétricas e assimétricas armazenadas no SQL Server. A linha pontilhada associada ao EKM indica que as chaves no EKM podem substituir as chaves simétricas e assimétricas armazenadas no SQL Server.

Background

O SQL do Azure e o SQL Server usam o algoritmo RSA para criptografia assimétrica. O algoritmo RSA não pode ser usado em sua forma "pura", pois não tem segurança semântica e não é seguro contra ataques de texto simples ou ataques de texto cifrado devido à sua natureza determinística. Criptografar a mesma mensagem duas vezes produz o mesmo texto cifrado.

Para obter segurança, as mensagens requerem preenchimento. Atualmente, os dados são criptografados com RSA usando o esquema de preenchimento PKCS #1 v1.5. Uma fraqueza específica do preenchimento PKCS#1 v1.5 é que ele não é muito redundante, com os bytes incorporados sendo aleatórios e sem qualquer valor imposto de forma específica. Uma sequência de bytes aleatórios pode ser "apropriadamente preenchida" com uma pequena probabilidade. Um atacante precisaria de cerca de um milhão de apertos de mão abortados para recuperar o texto simples por força bruta.

As versões mais recentes do PKCS#1 v1.5 descrevem um novo tipo de preenchimento chamado OAEP (Optimal Asymmetric Encryption Padding - Preenchimento de criptografia assimétrica ideal), que usa uma função de hash para adicionar redundância interna significativa, tornando improvável que uma cadeia de caracteres aleatória corresponda ao formato de preenchimento. O OAEP introduz algum hashing entre a encriptação RSA e a verificação de preenchimento. O hashing do OAEP altera significativamente a capacidade do atacante de entender o que vê.

O suporte OAEP-256 para encriptação baseada em RSA foi introduzido no SQL Server 2025 (17.x). A mudança para o modo de preenchimento OAEP é determinada pelo nível de compatibilidade do banco de dados. Esse recurso está disponível para bancos de dados no nível 170 de compatibilidade de banco de dados ou superior.

Mecanismos de encriptação

O SQL Server fornece os seguintes mecanismos de criptografia:

  • Transact-SQL Funções

  • Chaves assimétricas

  • Chaves simétricas

  • Certificates

  • Encriptação de Dados Transparente

Transact-SQL Funções

Itens individuais podem ser criptografados à medida que são inseridos ou atualizados usando Transact-SQL funções. Para obter mais informações, consulte ENCRYPTBYPASSPHRASE e DECRYPTBYPASSPHRASE.

Certificates

Um certificado de chave pública, geralmente chamado apenas de certificado, é uma declaração assinada digitalmente que vincula o valor de uma chave pública à identidade da pessoa, dispositivo ou serviço que detém a chave privada correspondente. Os certificados são emitidos e assinados por uma autoridade de certificação (CA). A entidade que recebe um certificado de uma autoridade de certificação é o titular desse certificado. Normalmente, os certificados contêm as seguintes informações.

  • A chave pública do assunto.

  • As informações de identificação do assunto, como o nome e o endereço de e-mail.

  • O período de validade. Este é o período de tempo durante o qual o certificado é considerado válido.

    Um certificado só é válido durante o período de tempo nele especificado; cada certificado contém as datas Válido De e Válido Até . Estas datas estabelecem os limites do período de validade. Quando o período de validade de um certificado tiver passado, um novo certificado deve ser solicitado pelo assunto do certificado agora expirado.

  • Informações do identificador do emissor.

  • A assinatura digital do emitente.

    Esta assinatura atesta a validade da ligação entre a chave pública e as informações de identificação do assunto. (O processo de assinatura digital de informações envolve transformar as informações, bem como algumas informações secretas mantidas pelo remetente, em uma tag chamada assinatura.)

Um dos principais benefícios dos certificados é que eles aliviam os hosts da necessidade de manter um conjunto de senhas para assuntos individuais. Em vez disso, o host apenas estabelece confiança em um emissor de certificado, que pode assinar um número ilimitado de certificados.

Quando um host, como um servidor Web seguro, designa um emissor como uma autoridade raiz confiável, o host confia implicitamente nas políticas que o emissor usou para estabelecer as associações de certificados que emite. Na verdade, o host confia que o emissor verificou a identidade do assunto do certificado. Um host designa um emissor como uma autoridade raiz confiável colocando o certificado autoassinado do emissor, que contém a chave pública do emissor, no armazenamento de certificados da autoridade de certificação raiz confiável do computador host. As autoridades de certificação intermediárias ou subordinadas são confiáveis somente se tiverem um caminho de certificação válido de uma autoridade de certificação raiz confiável.

O emissor pode revogar um certificado antes que ele expire. A revogação cancela a associação de uma chave pública a uma identidade declarada no certificado. Cada emissor mantém uma lista de revogação de certificados que pode ser usada por programas quando eles estão verificando a validade de um determinado certificado.

Os certificados autoassinados criados pelo SQL Server seguem o padrão X.509 e suportam os campos X.509 v1.

Chaves assimétricas

Uma chave assimétrica é composta por uma chave privada e a chave pública correspondente. Cada chave pode desencriptar dados encriptados pela outra. A encriptação assimétrica e a desencriptação são relativamente intensivas em recursos, mas fornecem um nível mais elevado de segurança do que a encriptação simétrica. Uma chave assimétrica pode ser usada para criptografar uma chave simétrica para armazenamento em um banco de dados.

Chaves simétricas

Uma chave simétrica é uma chave que é usada para encriptação e desencriptação. A encriptação e desencriptação utilizando uma chave simétrica é rápida e adequada para utilização de rotina com dados sensíveis na base de dados. Para proteger o material da chave simétrica, o SQL Server armazena o material da chave de forma criptografada que usa criptografia RSA assimétrica. Historicamente, essa criptografia utilizava o modo de preenchimento PKCS#1 v1.5; começando com o nível de compatibilidade do banco de dados 170, a criptografia usa o modo de preenchimento OAEP-256.

Encriptação de Dados Transparente

A Criptografia de Dados Transparente (TDE) é um caso especial de criptografia usando uma chave simétrica. A TDE criptografa um banco de dados inteiro usando essa chave simétrica chamada chave de criptografia do banco de dados. A chave de criptografia do banco de dados é protegida por outras chaves ou certificados que são protegidos pelo DMK ou por uma chave assimétrica armazenada em um módulo EKM. Para obter mais informações, consulte Transparent data encryption (TDE).

Banco de dados SQL de malha

Na base de dados SQL no Microsoft Fabric, Always Encrypted, EKM e TDE não são atualmente suportados. Na base de dados SQL no Microsoft Fabric, o Microsoft Entra ID para utilizadores de base de dados é o único método de autenticação suportado. Para obter mais informações, consulte Autorização no banco de dados SQL no Microsoft Fabric e comparação de recursos.