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

Aplica-se: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. O SQL Server usa a chave para criptografar dados sensíveis armazenados no SQL Server. O sistema operacional cria as chaves pública e privada, e elas protegem 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.

Aplicações 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 SQL Server gera o SMK na primeira vez que a instância inicia e o usa para criptografar senhas de servidores vinculados, credenciais e a chave mestra do banco de dados em cada banco de dados.

O SMK é criptografado usando a chave local da máquina ou a API de Proteção de Dados do Windows (DPAPI). O DPAPI utiliza uma chave derivada das credenciais do Windows da conta de serviço do SQL Server. Como a chave é protegida de ambas as formas, a chave mestra de serviço pode ser aberta pela conta de serviço sob a qual foi criada ou por um principal que tenha acesso às credenciais da máquina.

O SQL Server utiliza o algoritmo de criptografia AES para proteger a chave mestra do serviço e a chave mestra do banco de dados. O AES substituiu o algoritmo 3DES usado em versões anteriores ao SQL Server 2012 (11.x). Depois de atualizar uma instância do Mecanismo de Banco de Dados de uma dessas versões anteriores, regenere o SMK e o DMK para atualizar as chaves mestras para AES. Para obter mais informações sobre como regenerar o SMK, consulte ALTER SERVICEALTER 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 que protege as chaves privadas dos certificados e as chaves assimétricas presentes no banco de dados. Isso também pode criptografar dados, mas possui limitações de comprimento que o tornam menos prático para criptografar dados do que usar uma chave assimétrica. Para permitir a descriptografia automática da chave mestra do banco de dados, uma cópia da chave é criptografada usando o SMK. O SQL Server armazena essa cópia tanto no banco de dados onde a chave é usada quanto no master banco de dados do sistema.

A cópia do DMK armazenada no master banco de dados do sistema é atualizada silenciosamente sempre que o DMK muda. Você pode alterar esse padrão usando a opção DROP ENCRYPTION BY SERVICE MASTER KEY de ALTER MASTER KEY (Transact-SQL). Um DMK que não é criptografado pela chave mestra de serviço deve ser aberto usando OPEN MASTER KEYOPEN MASTER KEY (Transact-SQL) e uma senha.

Gerenciando chaves do SQL Server e do banco de dados

Gerenciar chaves de criptografia envolve criar novas chaves de banco de dados, fazer backup das chaves do servidor e do banco de dados, e saber quando e como restaurar, excluir ou alterar as chaves.

Para gerenciar chaves simétricas, use as ferramentas incluídas no SQL Server para realizar as seguintes tarefas:

  • Faça backup das chaves do servidor e do banco de dados para que você possa 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. Restaurar a chave 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.
  • Recrie chaves e recriptografe os dados no improvável caso de a chave ser comprometida. Como boa prática de segurança, recrie as chaves periodicamente, como a cada poucos meses, para proteger o servidor de ataques que tentem decifrar as chaves.
  • Adicionar ou remover uma instância de servidor de uma implantação de expansão horizontal de servidores na qual 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 de segurança

Para acessar objetos protegidos pela chave mestra de serviço, você precisa ou da conta de serviço do SQL Server que você usou para criar a chave ou da conta do computador (máquina) vinculada ao sistema onde criou a chave. Você pode mudar a conta do serviço SQL Server ou a conta do computador sem perder o acesso à chave. No entanto, se você alterar as duas contas, perde o acesso à chave mestra de serviço. Se você perder o acesso à chave mestra de serviço sem um desses dois elementos, não pode descriptografar dados e objetos que a chave original criptografou.

Você não pode restaurar conexões protegidas com a chave mestra de serviço a menos que tenha essa chave.

Para acessar objetos e dados protegidos com a chave mestra do banco de dados, você só precisa da senha que ajuda a proteger a chave.

Cuidado

Se você perder todo o acesso às chaves descritas neste artigo, perde o acesso aos objetos, conexões e dados protegidos por essas chaves. Você pode restaurar a chave mestra de serviço conforme descrito em Restaurar a chave mestra de serviço, ou pode voltar ao sistema original de criptografia para recuperar o acesso. Não há uma forma alternativa de recuperar o acesso.