Chaves de criptografia do SQL Server e banco de dados (Mecanismo de Banco de Dados)
O SQL Server usa chaves de criptografia para ajudar a proteger dados, credenciais e informações de conexão armazenados em um banco de dados de servidor. O SQL Server tem dois tipos de chave: 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).
No SQL Server, as chaves de criptografia abrangem uma combinação de chaves públicas, privadas e simé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 SMK (chave mestra de serviço ) gerada no SQL Server para uma instância do mesmo, e uma DMK (chave mestra de banco de dados) usada para um banco de dados.
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. 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 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
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, o computador está ligado ao sistema em que a chave foi criada. Você pode alterar a conta de Serviço do SQL Serverou a conta do 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.Compreendendo o EKM (Gerenciador de Chave Extensível)
Explica como usar sistemas de gerenciamento de chaves de terceiros com o SQL Server.Tópicos de instruções sobre chaves de criptografia do SQL Server e banco de dados
Mostra instruções passo a passo para trabalhar com o SQL Server e chaves de criptografia de banco de dados.
Consulte também