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ção O 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 ; GO
Execute a instrução a seguir para habilitar os provedores de EKM:
sp_configure 'EKM provider enabled', 1 ; GO RECONFIGURE ; GO
Execute 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ção A 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 ; GO
Execute 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ção As 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ção Se 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 ; GO
Execute 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 ; GO
Execute o seguinte código para alterar o banco de dados para habilitar criptografia de dados transparente:
ALTER DATABASE AdventureWorks SET ENCRYPTION ON ; GO
Agora 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.