Chaves de criptografia do SQL Server e banco de dados (Mecanismo de Banco de Dados)SQL Server and Database Encryption Keys (Database Engine)

SQL ServerSQL 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. uses encryption keys to help secure data, credentials, and connection information that is stored in a server database. SQL ServerSQL Server tem dois tipos de chaves: simétrica e asimétrica. has two kinds of keys: symmetric and asymmetric. As chaves simétricas usam a mesma senha para criptografar e descriptografar dados.Symmetric keys use the same password to encrypt and decrypt data. As chaves assimétricas usam uma senha para criptografar dados (chamada chave pública ) e outra para descriptografar dados (chamada chave privada ).Asymmetric keys use one password to encrypt data (called the public key) and another to decrypt data (called the private key).

No SQL ServerSQL Server, as chaves de criptografia incluem uma combinação de chaves públicas, privadas e assimétricas, usadas para proteger dados confidenciais.In SQL ServerSQL Server, encryption keys include a combination of public, private, and symmetric keys that are used to protect sensitive data. A chave simétrica é criada durante a inicialização do SQL ServerSQL Server quando você inicia pela primeira vez a instância do SQL ServerSQL Server .The symmetric key is created during SQL ServerSQL Server initialization when you first start the SQL ServerSQL Server instance. A chave é usada pelo SQL ServerSQL Server para criptografar dados confidenciais que são armazenados no SQL ServerSQL Server.The key is used by SQL ServerSQL Server to encrypt sensitive data that is stored in SQL ServerSQL Server. As chaves públicas e privadas são criadas pelo sistema operacional e são usadas para proteger a chave simétrica.Public and private keys are created by the operating system and they are used to protect the symmetric key. Um par de chaves pública e privada é criado para cada instância do SQL ServerSQL Server que armazena dados confidenciais em um banco de dados.A public and private key pair is created for each SQL ServerSQL Server instance that stores sensitive data in a database.

Aplicativos para o SQL Server e chaves de banco de dadosApplications for SQL Server and Database Keys

SQL ServerSQL Server tem dois aplicativos principais para chaves: uma SMK (chave mestra de serviço) gerada e para uma instância SQL ServerSQL Server , e uma DMK (chave mestra de banco de dados) usada para um banco de dados. instance, and a database master key (DMK) used for a database.

A SMK é gerada automaticamente na primeira vez que a instância do SQL ServerSQL Server é iniciada, e é usada para criptografar a senha, as credenciais e a chave mestra de banco de dados de um servidor vinculado.The SMK is automatically generated the first time the SQL ServerSQL Server instance is started and is used to encrypt a linked server password, credentials, and the database master key. A SMK é criptografada com a chave do computador local usando a DPAPI (API de proteção de dados do Windows).The SMK is encrypted by using the local computer key using the Windows Data Protection API (DPAPI). A DPAPI usa uma chave derivada das credenciais do Windows da conta de serviço do SQL ServerSQL Server e das credenciais do computador.The DPAPI uses a key that is derived from the Windows credentials of the SQL ServerSQL Server service account and the computer's credentials. 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.The service master key can only be decrypted by the service account under which it was created or by a principal that has access to the machine's credentials.

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.The database master key is a symmetric key that is used to protect the private keys of certificates and asymmetric keys that are present in the database. 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.It can also be used to encrypt data, but it has length limitations that make it less practical for data than using a symmetric key.

Quando é criada, a chave mestra é criptografada com o algoritmo DES Triplo e uma senha fornecida pelo usuário.When it is created, the master key is encrypted by using the Triple DES algorithm and a user-supplied password. Para habilitar a descriptografia automática da chave mestra, uma cópia da chave é criptografada com o uso da SMK.To enable the automatic decryption of the master key, a copy of the key is encrypted by using the SMK. Ela é armazenada no banco de dados em que é usada e no banco de dados master do sistema.It is stored in both the database where it is used and in the master system database.

A cópia da DMK armazenada no banco de dados master do sistema é silenciosamente atualizada sempre que a DMK é alterada.The copy of the DMK stored in the master system database is silently updated whenever the DMK is changed. 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 .However, this default can be changed by using the DROP ENCRYPTION BY SERVICE MASTER KEY option of the ALTER MASTER KEY statement. Uma DMK não criptografada pela chave mestra de serviço deve ser aberta com a instrução OPEN MASTER KEY e uma senha.A DMK that is not encrypted by the service master key must be opened by using the OPEN MASTER KEY statement and a password.

Gerenciando o SQL Server e chaves de banco de dadosManaging SQL Server and Database Keys

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.Managing encryption keys consists of creating new database keys, creating a backup of the server and database keys, and knowing when and how to restore, delete, or change the keys.

Para gerenciar chaves simétricas, você pode usar as ferramentas incluídas no SQL ServerSQL Server para fazer o seguinte:To manage symmetric keys, you can use the tools included in SQL ServerSQL Server to do the following:

  • 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.Back up a copy of the server and database keys so that you can use them to recover a server installation, or as part of a planned migration.

  • Restaurar uma chave salva anteriormente em um banco de dados.Restore a previously saved key to a database. Isso permite que uma nova instância de servidor acesse dados existentes que ela não criptografou originalmente.This enables a new server instance to access existing data that it did not originally encrypt.

  • Excluir os dados criptografados em um banco de dados no evento improvável que você não possa mais acessar dados criptografados.Delete the encrypted data in a database in the unlikely event that you can no longer access encrypted data.

  • Recriar chaves e criptografar novamente os dados no evento improvável que a chave seja comprometida.Re-create keys and re-encrypt data in the unlikely event that the key is compromised. 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.As a security best practice, you should re-create the keys periodically (for example, every few months) to protect the server from attacks that try to decipher the keys.

  • 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.Add or remove a server instance from a server scale-out deployment where multiple servers share both a single database and the key that provides reversible encryption for that database.

Informações importantes sobre segurançaImportant Security Information

O acesso a objetos protegidos pela chave mestra de serviço requer ou a conta de Serviço do SQL ServerSQL Server que foi usada para criar a chave, ou a conta do computador (máquina).Accessing objects secured by the service master key requires either the SQL ServerSQL Server Service account that was used to create the key or the computer (machine) account. Ou seja, o computador está ligado ao sistema em que a chave foi criada.That is, the computer is tied to the system where the key was created. Você pode alterar a conta de Serviço do SQL ServerSQL Server ou a conta do computador, sem perder o acesso à chave.You can change the SQL ServerSQL Server Service account or the computer account without losing access to the key. Porém, se alterar ambos, você perderá o acesso à chave mestra de serviço.However, if you change both, you will lose access to the service master key. 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.If you lose access to the service master key without one of these two elements, you be unable to decrypt data and objects encrypted by using the original key.

As conexões protegidas com a chave mestra de serviço não podem ser restauradas sem essa chave.Connections secured with the service master key cannot be restored without the service master key.

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.Access to objects and data secured with the database master key require only the password that is used to help secure the key.

Cuidado

Se você perder todo o acesso às chaves descritas anteriormente, perderá o acesso a objetos, conexões e dados protegidos por essas chaves.If you lose all access to the keys described earlier, you will lose access to the objects, connections, and data secured by those keys. É 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.You can restore the service master key, as described in the links that are shown here, or you can go back to the original encrypting system to recover the access. Não há nenhuma "porta dos fundos" para recuperar o acesso.There is no "back-door" to recover the access.

Nesta seçãoIn This Section

Service Master KeyService Master Key
Fornece uma breve explicação da chave mestra de serviço e suas práticas recomendadas.Provides a brief explanation for the service master key and its best practices.

Gerenciamento Extensível de Chaves (EKM)Extensible Key Management (EKM)
Explica como usar sistemas de gerenciamento de chaves de terceiros com o SQL ServerSQL Server.Explains how to use third-party key management systems with SQL ServerSQL Server.

Tarefas relacionadasRelated Tasks

Fazer backup da chave mestra de serviçoBack Up the Service Master Key

Restaurar a chave mestra de serviçoRestore the Service Master Key

Criar uma chave mestra de banco de dadosCreate a Database Master Key

Fazer backup da chave mestra de um banco de dadosBack Up a Database Master Key

Restaurar uma chave mestra de banco de dadosRestore a Database Master Key

Criar chaves simétricas idênticas em dois servidoresCreate Identical Symmetric Keys on Two Servers

Habilitar TDE no SQL Server usando EKMEnable TDE on SQL Server Using EKM

Gerenciamento extensível de chaves usando o Cofre de Chaves do Azure (SQL Server)Extensible Key Management Using Azure Key Vault (SQL Server)

Criptografar uma coluna de dadosEncrypt a Column of Data

Conteúdo relacionadoRelated Content

CREATE MASTER KEY (Transact-SQL)CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY (Transact-SQL)ALTER SERVICE MASTER KEY (Transact-SQL)

Restaurar uma chave mestra de banco de dadosRestore a Database Master Key

Consulte tambémSee Also

Fazer backup e restaurar as chave de criptografia do Reporting Services Back Up and Restore Reporting Services Encryption Keys
Excluir e recriar chaves de criptografia (SSRS Configuration Manager) Delete and Re-create Encryption Keys (SSRS Configuration Manager)
Adicionar e remover chaves de criptografia para implantação escalável (Gerenciador de Configurações do SSRS) Add and Remove Encryption Keys for Scale-Out Deployment (SSRS Configuration Manager)
TDE (Transparent Data Encryption) Transparent Data Encryption (TDE)