Compreendendo o EKM (Gerenciador de Chave Extensível)

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 2008 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 Gerenciador Extensível de Chaves está disponível apenas nas edições Enterprise, Developer e Evaluation do SQL Server.

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çãoObservação

Se você usar o comando sp_configure para essa opção em edições que não sejam as edições Enterprise, Developer ou Evaluation, 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 2008 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. O que também habilita proteção de dados a partir dos administradores de banco de dados (exceto os membros do grupo sysadmin ). Os dados podem ser criptografados ao usar chaves de criptografia que somente o usuário do banco de dados tem acesso ao 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 esses módulos EKM que oferecem suporte à autenticação básica usando um par nome de usuário/senha, o SQL Server fornece autenticação transparente que usa credenciais. Para obter mais informações sobre essas 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 da credencial Identify contém o nome do usuário; o campo secret contém uma senha para conectar a um módulo de 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 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 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 .

Consulte também

Tarefas

Referência

Conceitos