EKM (Gerenciamento extensível de chaves)

Aplica-se a: SQL Server

O SQL Server oferece funcionalidades de criptografia de dados com o EKM (Gerenciador Extensível de Chaves), usando o provedor Microsoft Cryptographic API (MSCAPI) para criptografia e geração de chave. As chaves de criptografia de dados e a criptografia da chave são criadas em contêineres chaves e devem ser exportadas por um provedor antes de serem armazenadas no banco de dados. Essa abordagem habilita o gerenciamento de chave, que inclui uma hierarquia de chave de criptografia e backup da chave, para ser tratado pelo SQL Server.

Com a crescente demanda de conformidade reguladora e referente à privacidade dos dados, as organizações estão tirando vantagem da criptografia como meio de oferecer uma solução de "defesa aprofundada". Essa abordagem geralmente não é muito prática se usar só as ferramentas de gerenciamento de criptografia do banco de dados. Os fornecedores de hardware fornecem produtos que corrigem o gerenciamento de chave empresarial, usando o HSM (módulos de segurança do hardware). Os dispositivos HSM armazenam chaves de criptografia em módulos de software ou hardware. É uma solução mais segura porque as chaves de criptografia não estão com dados de criptografia.

Vários fornecedores oferecem HSM para gerenciamento de chave e aceleração de criptografia. Os dispositivos de HSM usam interfaces de hardware com um processo de servidor como um intermediário entre um aplicativo e um HSM. Os fornecedores também implementam provedores de MSCAPI nos seus módulos, que podem ser hardware ou software. O MSCAPI oferece frequentemente só um subconjunto da funcionalidade que é oferecida por um HSM. Os fornecedores também podem prover software de gerenciamento para HSM, configuração fundamental e acesso fundamental.

As implementações HSM variam conforme o fornecedor e usá-los com o SQL Server requer uma interface comum. Embora o MSCAPI ofereça esta interface, ele dá suporte apenas a um subconjunto das características do HSM. Também existem outras limitações, como incapacidade de persistir chaves simétricas, e uma falta de suporte orientado por sessão.

O Gerenciador Extensível de Chaves do SQL Server permite que os fornecedores do EKM/HSM de terceiros registrem os seus módulos no SQL Server. Quando registrado, os usuários do SQL Server podem usar as chaves de criptografia armazenadas em módulos EKM. Isso permite ao SQL Server acessar os recursos avançados de criptografia, esses módulos oferecem suporte à criptografia em massa e à descriptografia e, às funções de gerenciamento de chave, como envelhecimento de chave e rotação de chave.

Ao executar o SQL Server em uma VM do Azure, o SQL Server pode usar chaves armazenadas no Azure Key Vault. Para obter mais informações, veja Gerenciamento extensível de chaves usando o Azure Key Vault (SQL Server).

Configuração de EKM

O gerenciamento extensível de chaves não está disponível em todas as edições do Microsoft SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, consulte Recursos com suporte nas edições do SQL Server 2016.

Por padrão, o Gerenciador Extensível de Chaves está desativado. Para habilitar esse recurso, use o comando sp_configure que tem a seguinte opção e valor, conforme o exemplo a seguir:

sp_configure 'show advanced', 1  
GO  
RECONFIGURE  
GO  
sp_configure 'EKM provider enabled', 1  
GO  
RECONFIGURE  
GO  

Observação

Se você usar o comando sp_configure para esta opção em edições do SQL Server que não dão suporte a EKM, receberá um erro.

Para desabilitar o recurso, defina o valor para 0. Para mais informações sobre como definir opções de servidor, veja sp_configure (Transact-SQL).

Como usar EKM

O gerenciamento extensível de chaves do SQL Server permite que as chaves de criptografia que protegem os arquivos de banco de dados sejam armazenadas em um dispositivo externo, como um cartão inteligente, dispositivo USB ou um módulo EKM/HSM. Isso também permite proteger os dados dos administradores de banco de dados (exceto dos membros do grupo sysadmin). Com o uso de chaves de criptografia, é possível criptografar dados aos quais somente o usuário do banco de dados tem acesso no módulo externo de EKM/HSM.

O Gerenciador Extensível de Chaves também oferece os seguintes benefícios:

  • Verificação de autorização adicional (habilitando a separação de tarefas).

  • Alto desempenho de criptografia/descriptografia com base em hardware.

  • Geração de chave de criptografia externa.

  • Armazenamento de chave de criptografia externa (separação física de dados e chaves).

  • Recuperação de chave de criptografia.

  • Retenção de chave de criptografia externa (habilita a rotação de chave de criptografia).

  • Recuperação mais fácil da chave de criptografia.

  • Distribuição de chave de criptografia manejável.

  • Disposição segura de chave de criptografia.

Você pode usar o Gerenciamento Extensível de Chaves para uma combinação de nome de usuário e senha ou outros métodos definidos pelo driver de EKM.

Cuidado

Para solução de problemas, o suporte técnico da Microsoft poderá solicitar a chave de criptografia do provedor EKM. Talvez seja necessário acessar os processos ou as ferramentas do fornecedor para ajudar a resolver um problema.

Autenticação com um dispositivo EKM

Um módulo EKM pode oferecer suporte para mais de um tipo de autenticação. Cada provedor mostra apenas um tipo de autenticação para o SQL Server, isto é, se o módulo oferecer suporte aos tipos de autenticação Básica ou a outros, ele mostrará um ou outro, mas não os dois.

Nome do usuário/senha de Autenticação Básica Específica do Dispositivo EKM

Para esses módulos EKM que dão suporte à autenticação Básica usando um par nome de usuário/senha, o SQL Server fornece autenticação transparente que usa credenciais. Para mais informações sobre credenciais, consulte Credenciais (Mecanismo de Banco de Dados).

É possível criar uma credencial para um provedor EKM e mapear (ambas as contas do Windows e do SQL Server) para acessar um módulo EKM por logon. O campo identidade da credencial contém o nome do usuário; o campo segredo contém uma senha para se conectar a um módulo de EKM.

Se não houver nenhuma credencial mapeada de logon para o provedor EKM, a credencial mapeada para a conta de serviço SQL Server será usada.

Um logon pode ter várias credenciais mapeadas para isto, contanto que elas sejam usadas para provedores de EKM diferentes. Deve haver só uma credencial mapeada por provedor de EKM por logon. A mesma credencial pode ser mapeada para outros logons.

Outros tipos de autenticação de dispositivo específico EKM

Para os módulos EKM que tenham autenticação diferente do Windows ou combinações de usuário/senha, a autenticação deve ser executada independentemente do SQL Server.

Criptografia e decodificação por um dispositivo EKM

É possível usar as seguintes funções e características para criptografar e descriptografar dados, usando chaves simétricas e assimétricas:

Função ou recurso Referência
Criptografia de chave simétrica CREATE SYMMETRIC KEY (Transact-SQL)
Criptografia de 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)

Criptografia das chaves do banco de dados pelas chaves EKM

O SQL Server pode usar as chaves EKM para criptografar outras chaves em um banco de dados. É possível criar e usar chaves simétricas e assimétricas em um dispositivo de EKM. Você pode criptografar chaves simétricas nativas (diferente de EKM) com chaves assimétricas do EKM.

O exemplo a seguir cria uma chave simétrica de banco de dados e criptografa a chave, usando uma chave em um módulo EKM.

CREATE SYMMETRIC KEY Key1  
WITH ALGORITHM = AES_256  
ENCRYPTION BY EKM_AKey1;  
GO  
--Open database key  
OPEN SYMMETRIC KEY Key1  
DECRYPTION BY EKM_AKey1  

Para mais informações sobre o Banco de Dados e as Chaves de Servidor no SQL Server, consulte Chaves de criptografia do SQL Server e banco de dados (Mecanismo de Banco de Dados).

Observação

Não é possível criptografar uma chave EKM com outra chave EKM.

O SQL Server não dá suporte para assinar módulos com chaves assimétricas geradas a partir do provedor EKM.

Opção de configuração de servidor EKM provider enabled

Habilitar TDE no SQL Server usando EKM

Gerenciamento extensível de chaves Usando o Azure Key Vault (SQL Server)

Confira também

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 as chave de criptografia do Reporting Services
Excluir e recriar chaves de criptografia (Configuration Manager do SSRS)
Adicionar e remover chaves de criptografia para implantação em expansão (Configuration Manager do SSRS)
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 da chave mestra de um banco de dados
Restaurar uma chave mestra de banco de dados
Criar chaves simétricas idênticas em dois servidores