Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
O SQL Server fornece capacidades de encriptação de dados juntamente com a Gestão Extensível de Chaves (EKM), utilizando o fornecedor Microsoft Cryptographic API (MSCAPI) para encriptação e geração de chaves. As chaves de encriptação para dados e a encriptação de chaves são criadas em contentores de chaves transitórios, e deve exportá-las de um fornecedor criptográfico antes de as armazenar na base de dados. Esta abordagem permite ao SQL Server fazer a gestão de chaves, incluindo uma hierarquia de chaves de encriptação e backup de chaves.
Com a crescente procura por conformidade regulatória e a preocupação com a privacidade dos dados, as organizações estão a aproveitar a encriptação como forma de fornecer uma solução de defesa em profundidade. Esta abordagem é frequentemente impraticável utilizando apenas ferramentas de gestão de encriptação de bases de dados. Os fornecedores de hardware fornecem produtos que abordam a gestão de chaves empresariais através da utilização de módulos de segurança de hardware (HSMs). Os dispositivos HSM armazenam chaves de encriptação em módulos de hardware ou software. Esta abordagem é mais segura porque as chaves de encriptação não residem com os dados encriptados.
Vários fornecedores oferecem HSMs tanto para gestão de chaves como para aceleração de encriptação. Os dispositivos HSM utilizam interfaces de hardware com um processo servidor como intermediário entre uma aplicação e um HSM. Os fornecedores também implementam fornecedores MSCAPI nos seus módulos, que podem ser de hardware ou software. O MSCAPI frequentemente oferece apenas um subconjunto da funcionalidade que um HSM oferece. Os fornecedores também podem fornecer software de gestão para HSMs, configuração de chaves e acesso a chaves.
As implementações HSM variam de fornecedor para fornecedor, e usá-las com o SQL Server requer uma interface comum. Embora o MSCAPI forneça esta interface, suporta apenas um subconjunto das funcionalidades HSM. Também apresenta outras limitações, como a incapacidade de persistir nativamente as chaves simétricas e a falta de suporte orientado para sessões.
O SQL Server Extensible Key Management permite que fornecedores terceiros de EKM e HSM registem os seus módulos no SQL Server. Depois de um módulo ser registado, os utilizadores do SQL Server podem usar as chaves de encriptação armazenadas nele. O SQL Server pode então aceder às funcionalidades avançadas de encriptação que estes módulos suportam, como encriptação e desencriptação em massa, e funções de gestão de chaves, como o envelhecimento e a rotação de chaves.
Quando executa o SQL Server numa VM do Azure, o SQL Server pode usar chaves armazenadas no Azure Key Vault. Para mais informações, consulte Gestão de Chaves Extensível usando Azure Key Vault (SQL Server).
Configuração do EKM
A Gestão de Chaves Extensível não está disponível em todas as edições do SQL Server. Para uma lista de funcionalidades suportadas pelas edições do SQL Server, consulte Edições e funcionalidades suportadas do SQL Server 2025.
Por defeito, a Gestão de Chaves Extensível está desativada. Para ativar esta funcionalidade, utilize o procedimento armazenado sp_configure (Transact-SQL) com a seguinte opção e valor:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
Observação
Se usar sp_configure esta opção em edições do SQL Server que não suportam EKM, recebe um erro.
Para desativar a funcionalidade, defina o valor para 0. Para mais informações sobre como definir opções de servidor, consulte sp_configure (Transact-SQL).
Como usar o EKM
O SQL Server Extensible Key Management permite-lhe armazenar as chaves de encriptação que protegem os ficheiros da base de dados num dispositivo off-box, como um cartão inteligente, dispositivo USB ou módulo EKM/HSM. Também protege os dados dos administradores de bases de dados, exceto para os membros da função fixa de servidor sysadmin. Pode encriptar dados usando chaves de encriptação às quais só o utilizador da base de dados pode aceder no módulo EKM/HSM externo.
A Gestão Extensível de Chaves também oferece os seguintes benefícios:
- Uma verificação extra de autorização, que permite a separação de tarefas.
- Maior desempenho para encriptação e desencriptação baseadas em hardware.
- Geração externa de chaves de encriptação.
- Armazenamento externo de chaves de encriptação, que separa fisicamente dados e chaves.
- Recuperação de chaves de encriptação.
- Retenção externa de chaves de encriptação, permitindo a rotação de chaves de encriptação.
- Recuperação de chaves de encriptação mais fácil.
- Distribuição de chaves de encriptação gerível.
- Eliminação segura de chaves de encriptação.
Pode usar a Gestão de Chaves Extensível para uma combinação de nome de utilizador e palavra-passe ou outros métodos definidos pelo driver EKM.
Atenção
Para resolução de problemas, o suporte técnico da Microsoft pode exigir a chave de encriptação do fornecedor EKM. Também poderá precisar de aceder às ferramentas ou processos do fornecedor para ajudar a resolver um problema.
Autenticação com um dispositivo EKM
Um módulo EKM pode suportar mais do que um tipo de autenticação. Cada fornecedor expõe apenas um tipo de autenticação ao SQL Server. Ou seja, se o módulo suportar tanto tipos básicos como outros tipos de autenticação, expõe um ou outro, mas não ambos.
Autenticação básica específica de dispositivo EKM através do uso de um nome de utilizador e palavra-passe
Para módulos EKM que suportam autenticação básica usando um par de nome de utilizador e palavra-passe, o SQL Server fornece autenticação transparente através do uso de credenciais. Para obter mais informações sobre credenciais, consulte Credenciais (Mecanismo de Banco de Dados).
Pode criar uma credencial para um fornecedor EKM e mapeá-la para um login, seja uma conta Windows ou SQL Server, para aceder a um módulo EKM por login. O campo identity da credencial contém o nome de utilizador, e o campo secret contém uma palavra-passe para se ligar a um módulo EKM.
Se não existir credencial mapeada de login para o fornecedor EKM, o SQL Server utiliza a credencial mapeada para a conta do serviço.
Um login pode ter múltiplas credenciais mapeadas, desde que cada uma seja usada por um fornecedor EKM distinto. Deve haver apenas uma credencial mapeada por fornecedor EKM por login. Podes mapear a mesma credencial para outros logins.
Outros tipos de autenticação específica para dispositivos EKM
Para módulos EKM que utilizam autenticação diferente do Windows ou combinações de nome de utilizador e palavra-passe, deve realizar a autenticação de forma independente do SQL Server.
Encriptação e desencriptação por um dispositivo EKM
Utilize as seguintes funções e funcionalidades para encriptar e desencriptar dados utilizando chaves simétricas e assimétricas:
| Função ou característica | Reference |
|---|---|
| Encriptação de chave simétrica | CREATE SYMMETRIC KEY (Transact-SQL) |
| Encriptação por chave assimétrica | CREATE ASYMMETRIC KEY (Transact-SQL) |
EncryptByKey(key_guid, 'cleartext', ...) |
ENCRYPTBYKEY (Transact-SQL) |
DecryptByKey(ciphertext, ...) |
DECRYPTBYKEY (Transact-SQL) |
EncryptByAsmKey(key_guid, 'cleartext') |
ENCRYPTBYASYMKEY (Transact-SQL) |
DecryptByAsmKey(ciphertext) |
DECRYPTBYASYMKEY (Transact-SQL) |
Encriptação das chaves da base de dados por chaves EKM
O SQL Server pode usar chaves EKM para encriptar outras chaves numa base de dados. Pode criar e usar chaves simétricas e assimétricas num dispositivo EKM. Podes encriptar chaves simétricas nativas (não EKM) com chaves assimétricas EKM.
O exemplo seguinte cria uma chave simétrica de base de dados e encripta-a usando uma chave num módulo EKM.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;
Para mais informações sobre chaves de base de dados e de servidor no SQL Server, consulte SQL Server e chaves de encriptação da base de dados (Database Engine).
Observação
Não podes encriptar uma chave EKM com outra chave EKM.
O SQL Server não suporta a assinatura de módulos com chaves assimétricas geradas por um fornecedor EKM.
Conteúdo relacionado
- Opção de configuração de servidor habilitada pelo fornecedor EKM
- Ativar TDE no SQL Server através do EKM
- Gestão de Chaves Extensível usando Azure Key Vault (SQL Server)
- SQL Server e chaves de encriptação de base de dados (Database Engine)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- sys.cryptographic_providers (Transact-SQL)
- sys.dm_cryptographic_provider_sessions (Transact-SQL)
- sys.dm_cryptographic_provider_properties (Transact-SQL)
- sys.dm_cryptographic_provider_algorithms (Transact-SQL)
- sys.dm_cryptographic_provider_keys (Transact-SQL)
- sys.credentials (Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- ALTER ASYMMETRIC KEY (Transact-SQL)
- DROP ASYMMETRIC KEY (Transact-SQL)
- CREATE SYMMETRIC KEY (Transact-SQL)
- ALTER SYMMETRIC KEY (Transact-SQL)
- DROP SYMMETRIC KEY (Transact-SQL)
- OPEN SYMMETRIC KEY (Transact-SQL)
- Fazer backup e restaurar chaves de criptografia do SQL Server Reporting Services (SSRS)
- Eliminar e Recriar Chaves de Encriptação (Gestor de Configuração)
- Adicionar e remover chaves de encriptação para implementação escalonável
- Fazer cópia de segurança de uma chave mestra de serviço
- Restaurar uma chave mestra de serviço
- Criar uma chave mestra de base de dados
- Faça backup de uma chave mestra de base de dados
- Restaurar uma chave mestra de base de dados
- Criar chaves simétricas idênticas em dois servidores