Como habilitar a TDE usando EKM
A TDE (criptografia de dados transparentes) criptografa o armazenamento de um banco de dados inteiro. A TDE criptografa os dados usando uma chave simétrica chamada de chave de criptografia de banco de dados. Este tópico descreve como proteger a chave de criptografia do banco de dados usando uma chave assimétrica armazenada em um módulo de gerenciamento de chave extensível (EKM).
Também é possível proteger a chave de criptografia do banco de dados através do uso de um certificado protegido pela chave mestra do banco de dados mestre. Para obter mais informações sobre como proteger a chave de criptografia do banco de dados usando a chave mestra de banco de dados, consulte Compreendendo a TDE (Criptografia de Dados Transparente).
As etapas básicas para habilitar a TDE usando um EKM são:
Instale um provedor de EKM. Os procedimentos para esta etapa variam de acordo com os requisitos do provedor de EKM, mas devem incluir a instalação de um certificado do provedor de EKM em um armazenamento de certificados locais e a cópia de arquivos DLL de EKM no computador com o SQL Server.
Configure o SQL Server para usar o provedor de EKM.
Se o módulo EKM usar a autenticação básica, crie uma credencial e adicione-a a um usuário.
Crie uma chave assimétrica protegida pelo provedor de EKM.
Se o módulo EKM usar a autenticação básica, crie uma credencial protegida pela chave assimétrica para uso pelo Mecanismo de Banco de Dados.
Crie uma chave simétrica de criptografia de banco de dados.
Habilite a TDE que usa a chave de criptografia de banco de dados.
Para completar as etapas deste tópico, conecte ao SQL Server usando uma janela Editor de Consultas em SQL Server Management Studio.
Para instalar e configurar o provedor criptográfico
Copie os arquivos fornecidos pelo provedor de EKM em um local apropriado no computador com o SQL Server. Neste exemplo, usamos a pasta C:\EKM.
Instale os certificados no computador, como requerido pelo provedor de EKM.
ObservaçãoO SQL Server não fornece um provedor de EKM. Cada provedor de EKM pode ter procedimentos diferentes para instalar, configurar e autorizar os usuários. Consulte a documentação do provedor de EKM para completar esta etapa.
Para configurar o SQL Server para usar um provedor de EKM e criar o provedor no SQL Server
A habilitação de um provedor de EKM é uma opção avançada. Primeiro, execute as seguintes instruções para exibir as opções avançadas.
sp_configure 'show advanced options', 1 ; GO RECONFIGURE ; GOExecute a instrução a seguir para habilitar os provedores de EKM:
sp_configure 'EKM provider enabled', 1 ; GO RECONFIGURE ; GOExecute a instrução a seguir para criar um provedor criptográfico, que escolhemos para ligar ao EKM_Prov, baseado em um provedor de EKM:
CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov FROM FILE = 'C:\EKM_Files\KeyProvFile.dll' ; GO
ObservaçãoA DLL EKM deve ser assinada digitalmente.
Criação de uma credencial para criptografar o Banco de Dados
Você deve ser um usuário com altos privilégios (como um administrador do sistema) para criar uma chave de criptografia de banco de dados e criptografar um banco de dados. É necessário que esse usuário possa ser autenticado pelo módulo EKM. O procedimento a seguir cria uma credencial que usa a identidade de EKM e a adiciona a um usuário com altos privilégios. Os procedimentos a seguir assumem que o módulo EKM pode autenticar um usuário nomeado como 'Identidade1'. É necessário fornecer uma senha, em vez dos asteriscos mostrados aqui. Essas etapas são necessárias quando o provedor de EKM usa autenticação básica, mas as etapas nesta seção podem ser ignoradas quando o módulo EKM usa outra autenticação.
Para criar uma credencial e adicioná-la ao logon de um usuário com altos privilégios
Execute a seguinte instrução para criar uma credencial a ser usada por administradores do sistema:
CREATE CREDENTIAL sa_ekm_tde_cred WITH IDENTITY = 'Identity1', SECRET = '*************' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ; GOExecute a instrução a seguir para adicionar a credencial do administrador do sistema a um usuário com altos privilégios, como o seu próprio logon de domínio no formato [DOMAIN\login]:
ALTER LOGIN [DOMAIN\login] ADD CREDENTIAL sa_ekm_tde_cred ; GO
Criação de uma chave assimétrica
Crie uma chave assimétrica para proteger o acesso à chave de criptografia de banco de dados. Esta chave é usada pelo SQL Server para acessar a chave de criptografia do banco de dados.
Para criar uma chave de criptografia de banco de dados
Execute a seguinte instrução para criar uma chave assimétrica armazenada dentro do provedor de EKM. Neste exemplo, o SQL Server identificará a chave pelo nome ekm_login_key. Dentro do dispositivo de EKM, a chave terá o nome SQL_Server_Key.
ObservaçãoAs opções e os parâmetros requeridos pelo provedor de EKM podem ser diferentes desta instrução. Para obter mais informações, consulte seu provedor de EKM.
USE master ; GO CREATE ASYMMETRIC KEY ekm_login_key FROM PROVIDER [EKM_Prov] WITH ALGORITHM = RSA_512, PROVIDER_KEY_NAME = 'SQL_Server_Key' ; GO
ObservaçãoSe a chave assimétrica armazenada no módulo EKM for perdida, não será possível abrir o banco de dados no SQL Server. Se o provedor de EKM permitir o backup da chave assimétrica, você deverá criar o backup e armazená-lo em um local seguro.
Criação de uma credencial para uso pelo mecanismo do banco de dados
Ao iniciar, o Mecanismo de Banco de Dados precisa abrir o banco de dados. O procedimento a seguir cria uma credencial a ser autenticada pelo EKM, que a adiciona ao logon baseado em uma chave assimétrica. Os usuários não podem efetuar logon com esse logon, mas o Mecanismo de Banco de Dados poderá se autenticar com o dispositivo de EKM. Os procedimentos a seguir assumem que o módulo EKM pode autenticar um usuário nomeado como 'Identidade2'. É necessário fornecer uma senha, em vez dos asteriscos abaixo. Essas etapas são necessárias quando o provedor de EKM usa autenticação básica, mas as etapas nesta seção podem ser ignoradas quando o módulo EKM usa outra autenticação.
Para criar credenciais e adicioná-las a logons
Execute a seguinte instrução para criar uma credencial a ser usada pelo Mecanismo de Banco de Dados:
CREATE CREDENTIAL ekm_tde_cred WITH IDENTITY = 'Identity2' , SECRET = '*************' FOR CRYPTOGRAPHIC PROVIDER EKM_Prov ;Execute a seguinte instrução para adicionar um logon usado pela TDE e adicione a credencial nova ao logon:
CREATE LOGIN EKM_Login FROM ASYMMETRIC KEY ekm_login_key ; GO ALTER LOGIN EKM_Login ADD CREDENTIAL ekm_tde_cred ; GO
Criação de uma chave de criptografia de banco de dados
A chave de criptografia de banco de dados é uma chave simétrica. Crie a chave de criptografia no banco de dados mestre.
Para criar uma chave de criptografia de banco de dados
Altere o banco de dados a ser criptografado:
USE AdventureWorks ; GOExecute o seguinte código para criar a chave de criptografia de banco de dados a ser usada para a TDE:
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER ASYMMETRIC KEY ekm_login_key ; GOExecute o seguinte código para alterar o banco de dados para habilitar criptografia de dados transparente:
ALTER DATABASE AdventureWorks SET ENCRYPTION ON ; GOAgora o banco de dados fica armazenado em um formato criptografado.
Segurança
Este tópico usa as seguintes permissões:
Para alterar uma opção de configuração e executar a instrução RECONFIGURE, você deve ter a permissão em nível de servidor ALTER SETTINGS. A permissão ALTER SETTINGS é implicitamente mantida pelas funções fixas de servidor sysadmin e serveradmin.
Requer a permissão ALTER ANY CREDENTIAL.
Requer a permissão ALTER ANY LOGIN.
Requer a permissão CREATE ASYMMETRIC KEY.
Requer a permissão CONTROL no banco de dados para criptografá-lo.