Partilhar via


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

Aplica-se a:SQL Server

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 do servidor. O 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 de chave pública ) e outra para descriptografar dados (chamada de chave privada ).

No SQL Server, as chaves de criptografia incluem uma combinação de chaves públicas, privadas e simétricas que são usadas para proteger dados confidenciais. A chave simétrica é criada durante a inicialização do SQL Server quando você inicia a instância do SQL Server pela primeira vez. A chave é usada pelo SQL Server para criptografar dados confidenciais armazenados no SQL Server. As chaves pública e privada 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 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. O SMK é gerado automaticamente na primeira vez que a instância do SQL Server é iniciada e é usado para criptografar uma senha de servidor vinculado, credenciais e a chave mestra do banco de dados em cada banco de dados. O SMK é criptografado usando a chave do computador local usando a API de Proteção de Dados do Windows (DPAPI). O 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 uma entidade de segurança 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 sob a qual foi criada ou por uma entidade de segurança com acesso ao nome da conta de serviço e à sua palavra-passe.

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

Chave mestra do banco de dados

A chave mestra do banco de dados é uma chave simétrica usada para proteger as chaves privadas de certificados e chaves assimétricas presentes no banco de dados. Ele também pode ser usado para criptografar dados, mas tem limitações de comprimento que o tornam menos prático para 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 usando o SMK. Ele é armazenado no banco de dados onde é usado e no banco de dados do sistema mestre .

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

Gerenciando chaves do SQL Server e do banco de dados

O gerenciamento de chaves de criptografia consiste em criar novas chaves de banco de dados, criar um backup do servidor e das chaves de banco de dados e 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:

  • Faça backup de uma cópia das chaves do servidor e do banco de dados para que você possa usá-las para recuperar uma instalação do servidor ou como parte de uma migração planejada.

  • Restaure uma chave salva anteriormente em um banco de dados. Isso permite que uma nova instância do servidor acesse dados existentes que não foram originalmente criptografados.

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

  • Recrie chaves e criptografe novamente os dados no caso improvável de a chave ser comprometida. Como prática recomendada de segurança, você deve recriar as chaves periodicamente (por exemplo, a cada poucos meses) para proteger o servidor contra ataques que tentam decifrar as chaves.

  • Adicione ou remova uma instância de servidor de uma implantação em expansão de 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 de Segurança Importantes

O acesso a objetos protegidos pela chave mestra de serviço requer 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á vinculada ao sistema onde 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. No entanto, se você alterar ambos, perderá o acesso à chave mestra de serviço. Se você perder o acesso à chave mestra de serviço sem um desses dois elementos, não será possível descriptografar dados e objetos criptografados usando a chave original.

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

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

Atenção

Se você perder todo o acesso às chaves descritas anteriormente, perderá o acesso aos objetos, conexões e dados protegidos por essas chaves. Você pode restaurar a chave mestra de serviço, conforme descrito nos links mostrados aqui, ou pode voltar ao sistema de criptografia original para recuperar o acesso. Não há "back-door" para recuperar o acesso.

Na presente seção

Gerenciamento extensível de chaves (EKM)
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 de uma chave mestra de 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

CRIAR CHAVE MESTRA (Transact-SQL)

ALTER CHAVE MESTRA DE SERVIÇO (Transact-SQL)

Restaurar uma chave mestra de banco de dados

Ver também

Fazer backup e restaurar chaves de criptografia do Reporting Services
Excluir e recriar chaves de criptografia (SSRS Configuration Manager)
Adicionar e remover chaves de criptografia para implantação de Scale-Out (SSRS Configuration Manager)
Criptografia de dados transparente (TDE)