Chaves de criptografia do SQL Server e banco de dados (Mecanismo de Banco de Dados)

Aplica-se a: SQL Server

O SQL Server usa chaves de criptografia para ajudar a proteger as credenciais de dados e informações de conexão que são armazenadas em um banco de dados do servidor. O SQL Server tem dois tipos de chaves: simétricas e assimétricas. As chaves simétricas usam a mesma senha para criptografar e descriptografar dados. As chaves assimétricas usam uma senha para criptografar dados (chamada chave pública ) e outra para descriptografar dados (chamada chave privada ).

No SQL Server, as chaves de criptografia incluem uma combinação de chaves públicas, privadas e assimétricas, usadas para proteger dados confidenciais. A chave simétrica é criada durante a inicialização do SQL Server quando você inicia pela primeira vez a instância do SQL Server. A chave é usada pelo SQL Server para criptografar dados confidenciais que são armazenados no SQL Server. As chaves públicas e privadas são criadas pelo sistema operacional e são usadas para proteger a chave simétrica. Um par de chaves pública e privada é criado para cada instância do SQL Server que armazena dados confidenciais em um banco de dados.

Aplicativos para o SQL Server e chaves de banco de dados

O SQL Server tem dois aplicativos principais para chaves: uma chave mestra de serviço (SMK) gerada em e para uma instância do SQL Server, e uma chave mestra de banco de dados (DMK) usada para um banco de dados.

Chave mestra de serviço

A Chave Mestra de Serviço é a raiz da hierarquia de criptografia do SQL Server. A SMK é gerada automaticamente na primeira vez que a instância do SQL Server é iniciada e é usada para criptografar a senha, as credenciais e a chave mestra de banco de dados de um servidor vinculado em cada banco de dados. A SMK é criptografada com a chave do computador local usando a DPAPI (API de Proteção de Dados do Windows). A DPAPI usa uma chave derivada das credenciais do Windows da conta de serviço do SQL Server e das credenciais do computador. A chave mestra de serviço só pode ser descriptografada pela conta de serviço sob a qual foi criada ou por um principal que tenha acesso às credenciais da máquina.

A chave mestra de serviço só pode ser aberta pela conta de serviço do Windows na qual ela foi criada ou por uma entidade que tenha acesso ao nome e à senha da conta de serviço.

SQL Server usa o algoritmo de criptografia AES para proteger a SMK (chave mestra de serviço) e a DMK (chave mestra de banco de dados). O AES é um algoritmo de criptografia mais novo que o 3DES usado em versões anteriores. Depois de atualizar uma instância do Mecanismo de Banco de Dados para SQL Server, o SMK e o DMK devem ser regenerados para atualizar as chave mestras para AES. Para obter mais informações sobre como regenerar a SMK, veja ALTER SERVICE MASTER KEY (Transact-SQL) e ALTER MASTER KEY (Transact-SQL).

Chave mestra do banco de dados

A chave mestra de banco de dados é uma chave simétrica usada para proteger as chaves privadas dos certificados e as chaves assimétricas presentes no banco de dados. Ela também pode ser usada para criptografar dados, mas tem limitações de comprimento que a tornam pouco prática para os dados do que usar uma chave assimétrica. Para habilitar a descriptografia automática da chave mestra do banco de dados, uma cópia da chave é criptografada com o uso da SMK. Ela é armazenada no banco de dados em que é usada e no banco de dados master do sistema.

A cópia da DMK armazenada no banco de dados master do sistema é silenciosamente atualizada sempre que a DMK é alterada. No entanto, esse padrão pode ser alterado com o uso da opção DROP ENCRYPTION BY SERVICE MASTER KEY da instrução ALTER MASTER KEY . Uma DMK não criptografada pela chave mestra de serviço deve ser aberta com a instrução OPEN MASTER KEY e uma senha.

Gerenciando o SQL Server e chaves de banco de dados

O gerenciamento de chaves de criptografia consiste na criação de novas chaves de banco de dados, na criação de um backup das chaves de servidor e de banco de dados, além de saber quando e como restaurar, excluir ou alterar as chaves.

Para gerenciar chaves simétricas, você pode usar as ferramentas incluídas no SQL Server para fazer o seguinte:

  • Fazer backup de uma cópia das chaves de servidor e de banco de dados para poder usá-las para recuperar uma instalação de servidor, ou como parte de uma migração planejada.

  • Restaurar uma chave salva anteriormente em um banco de dados. Isso permite que uma nova instância de servidor acesse dados existentes que ela não criptografou originalmente.

  • Excluir os dados criptografados em um banco de dados no evento improvável que você não possa mais acessar dados criptografados.

  • Recriar chaves e criptografar novamente os dados no evento improvável que a chave seja comprometida. Como prática recomendável de segurança, você deve recriar as chaves periodicamente (por exemplo, a cada poucos meses) para proteger o servidor contra ataques que tentem decifrar as chaves.

  • Adicionar ou remover uma instância do servidor de uma implantação em expansão do servidor em que vários servidores compartilham um único banco de dados e a chave que fornece criptografia reversível para esse banco de dados.

Informações importantes sobre segurança

O acesso a objetos protegidos pela chave mestra de serviço requer ou a conta de Serviço do SQL Server que foi usada para criar a chave, ou a conta do computador (máquina). Ou seja, a conta de computador que está ligada ao sistema em que a chave foi criada. Você pode alterar a conta de Serviço do SQL Server ou a conta de computador, sem perder o acesso à chave. Porém, se alterar ambos, você perderá o acesso à chave mestra de serviço. Se perder o acesso a essa chave sem um desses dois elementos, você não poderá descriptografar dados e objetos criptografados com o uso da chave original.

As conexões protegidas com a chave mestra de serviço não podem ser restauradas sem essa chave.

O acesso aos objetos e dados protegidos com a chave mestra de banco de dados requer apenas a senha usada para ajudar a proteger a chave.

Cuidado

Se você perder todo o acesso às chaves descritas anteriormente, perderá o acesso a objetos, conexões e dados protegidos por essas chaves. É possível restaurar a chave mestra de serviço, conforme descrito nos links aqui mostrados, ou você pode voltar ao sistema de criptografia original para recuperar o acesso. Não há nenhuma "porta dos fundos" para recuperar o acesso.

Nesta seção

Chave mestra de serviço
Fornece uma breve explicação da chave mestra de serviço e suas práticas recomendadas.

EKM (Gerenciamento extensível de chaves)
Explica como usar sistemas de gerenciamento de chaves de terceiros com o SQL Server.

Fazer backup da chave mestra de serviço

Restaurar a chave mestra de serviço

Criar uma chave mestra de banco de dados

Fazer backup da chave mestra de um banco de dados

Restaurar uma chave mestra de banco de dados

Criar chaves simétricas idênticas em dois servidores

Habilitar TDE no SQL Server usando EKM

Gerenciamento extensível de chaves Usando o Azure Key Vault (SQL Server)

Criptografar uma coluna de dados

CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)

Restaurar uma chave mestra de banco de dados

Confira também

Fazer backup e restaurar as chave de criptografia do Reporting Services
Excluir e recriar chaves de criptografia (Configuration Manager do SSRS)
Adicionar e remover chaves de criptografia para implantação em expansão (Configuration Manager do SSRS)
TDE (Transparent Data Encryption)