Gerenciamento extensível de chaves (EKM)

O SQL Server oferece recursos 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 SQL Server permite que os fornecedores do EKM/HSM de terceiros registrem os seus módulos no SQL Server. Quando registrado, os usuários SQL Server podem usar as chaves de criptografia armazenadas em módulos EKM. Isso permite o 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.

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 compatíveis com as edições do SQL Server 2012.

Por padrão, o Gerenciador Extensível de Chaves está desativado. Para habilitar essa característica, 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çãoObservaçã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 obter mais informações sobre como definir as opções do servidor, consulte sp_configure (Transact-SQL).

Como usar EKM

O Gerenciamento Extensível de Chaves do SQL Server permite que as chaves de criptografia protejam os arquivos de banco de dados a serem armazenados em um dispositivo pronto para uso, como um smartcard, dispositivo USB ou o módulo EKM/HSM. Isso também habilita a proteção de dados a partir dos administradores de banco de dados (exceto os 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.

Observação sobre cuidadosCuidado

Para solução de problemas, o suporte técnico do 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 os módulos EKM que oferecem suporte à autenticação básica usando um par username/password, o SQL Server fornece autenticação transparente usando credenciais. Para obter mais informações sobre credenciais, consulte Credenciais (Mecanismo de Banco de Dados).

Uma credencial pode ser criada para um provedor de EKM e pode se mapeada para um logon (Windows e contas do SQL Server) para acessar um módulo EKM por logon. O campo Identify da credencial contém o nome de usuário; o campo secret contém uma senha para conectar a um módulo EKM.

Se não houver nenhuma credencial mapeada de logon para o provedor EKM, a credencial mapeada para 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 user/password, 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 obter mais informações sobre banco de dados e chaves de servidor no SQL Server, consulte Chaves de criptografia do SQL Server e banco de dados (Mecanismo de Banco de Dados).

ObservaçãoObservaçã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.

Tarefas relacionadas

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

Habilitar a TDE usando EKM

Consulte também

Referência

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)

Conceitos

Faça backup e restaure as chave de criptografia do Reporting Services (modo nativo de SSRS)

Excluir e recriar chaves de criptografia

Adicionar e remover chaves de criptografia para implantação em expansão

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