Chaves de criptografia do SQL Server e banco de dados (Mecanismo de Banco de Dados)
SQL Server usa chaves de criptografia para ajudar a proteger dados, credenciais e informações de conexão armazenadas em um banco de dados do servidor. SQL Server tem dois tipos de chaves: simétrica e assimétrica. 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 ).
Em SQL Server, as chaves de criptografia incluem uma combinação de chaves públicas, privadas e simétricas usadas para proteger dados confidenciais. A chave simétrica é criada durante SQL Server inicialização quando você inicia a instância de SQL Server pela primeira vez. A chave é usada por SQL Server para criptografar dados confidenciais armazenados em 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 SQL Server que armazena dados confidenciais em um banco de dados.
Aplicativos para o SQL Server e chaves de banco de dados
SQL Server tem dois aplicativos primários para chaves: um SMK (chave de master de serviço) gerado em e para uma instância de SQL Server e um banco de dados master chave (DMK) usado para um banco de dados.
O SMK é gerado automaticamente na primeira vez que a instância de SQL Server é iniciada e é usada para criptografar uma senha de servidor vinculada, credenciais e o banco de dados master chave. A SMK é criptografada com a chave do computador local usando a DPAPI (API de proteção de dados do Windows). O DPAPI usa uma chave derivada das credenciais do Windows da conta de serviço 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 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 simétrica.
Quando é criada, a chave mestra é criptografada com o algoritmo DES Triplo e uma senha fornecida pelo usuário. Para habilitar a descriptografia automática da chave mestra, 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
Acessar objetos protegidos pelo serviço master chave requer a conta de serviço SQL Server que foi usada para criar a chave ou a conta do computador (computador). Ou seja, o computador está ligado 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 SQL Server.
Related Tasks
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
Gerenciamento extensível de chaves Usando o Azure Key Vault (SQL Server)
Conteúdo relacionado
CREATE MASTER KEY (Transact-SQL)
ALTER SERVICE MASTER KEY (Transact-SQL)
Restaurar uma chave mestra de banco de dados
Consulte Também
Fazer backup e restaurar as chaves de criptografia do Reporting Services
Excluir e recriar chaves de criptografia (SSRS Configuration Manager)
Adicionar e remover chaves de criptografia para implantação em expansão (Configuration Manager do SSRS)
TDE (Transparent Data Encryption)