Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido manualmente. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Criptografia de Dados Transparente (TDE)

Você pode tomar várias precauções para ajudar a proteger o banco de dados como, por exemplo, projetando um sistema seguro, criptografando ativos confidenciais e criando um firewall em torno dos servidores de banco de dados. No entanto, em um cenário onde a mídia física (como unidades ou fitas de backup) é roubada, um terceiro mal-intencionado pode restaurar ou anexar o banco de dados e navegar pelos dados. Uma solução é criptografar dados confidenciais no banco de dados e proteger as chaves usadas para criptografar os dados com um certificado. Isso impede que alguém sem as chaves use os dados, mas esse tipo de proteção deve ser planejado antecipadamente.

A criptografia transparente de dados (TDE) executa criptografia de E/S em tempo real e a descriptografia de dados e arquivos de log. A criptografia usa uma DEK (chave de criptografia do banco de dados), que é armazenada no registro de inicialização do banco de dados para disponibilidade durante a recuperação. A DEK é uma chave simétrica protegida por um certificado armazenado no banco de dados mestre do servidor ou uma chave assimétrica protegida por um módulo EKM. A TDE protege os dados “em repouso”, ou seja, os dados e arquivos de log. Fornece a capacidade de se adequar a muitas leis, regulamentos e diretrizes estabelecidos em vários setores. Isso permite que os desenvolvedores de software criptografem dados usando algoritmos de criptografia AES e 3DES, sem alterar os aplicativos existentes.

Observação importante Importante

A TDE não fornece criptografia em canais de comunicação. Para obter mais informações sobre como criptografar dados em canais de comunicação, consulte Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Depois de protegido, o banco de dados pode ser restaurado usando o certificado correto. Para obter mais informações sobre certificados, consulte Certificados e chaves assimétricas do SQL Server.

Observação Observação

Ao habilitar a TDE, você deve imediatamente fazer o backup do certificado e da chave privada associada ao certificado. Se em algum momento o certificado ficar indisponível ou caso você deseje restaurar ou anexar o banco de dados a outro servidor, você precisará dos backups do certificado e da chave privada ou não será possível abrir o banco de dados. O certificado de criptografia deve ser retido até mesmo se o TDE já não estiver habilitado no banco de dados. Mesmo que o banco de dados não seja criptografado, partes do log de transações ainda poderão permanecer protegidas e talvez o certificado seja necessário para algumas operações até a realização do backup completo do banco de dados. Um certificado que excedeu sua data de validade ainda pode ser usado para criptografar e descriptografar dados com TDE.

A criptografia do arquivo de banco de dados é executada no nível de página. As páginas em um banco de dados criptografado são criptografadas antes de serem gravadas no disco e descriptografadas quando lidas na memória. A TDE não aumenta o tamanho do banco de dados criptografado.

A ilustração a seguir mostra a arquitetura de criptografia da TDE:

Exibe a hierarquia descrita no tópico.

Para usar a TDE, execute estes procedimentos.

  • Crie uma chave mestra

  • Crie ou obtenha um certificado protegido pela chave mestra

  • Crie uma chave de criptografia de banco de dados e proteja-a com o certificado

  • Defina o banco de dados para usar criptografia

O exemplo a seguir ilustra criptografia e descriptografia do banco de dados AdventureWorks2012 usando um certificado instalado no servidor nomeado MyServerCert.

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<UseStrongPasswordHere>';
go
CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'My DEK Certificate';
go
USE AdventureWorks2012;
GO
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_128
ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO
ALTER DATABASE AdventureWorks2012
SET ENCRYPTION ON;
GO

As operações de criptografia e descriptografia são agendadas em threads em segundo plano pelo SQL Server. É possível exibir o status dessas operações usando exibições do catálogo e de gerenciamento dinâmico na lista mostrada posteriormente neste tópico.

Observação sobre cuidadosCuidado

Os arquivos de backup de bancos de dados com TDE habilitada também são criptografados usando a chave de criptografia do banco de dados. Como resultado, quando você restaura esses backups, o certificado que protege a chave de criptografia do banco de dados deve estar disponível. Isso significa que, além de fazer backup do banco de dados, você deve assegurar que os backups dos certificados de servidor sejam mantidos para evitar perda de dados. Se o certificado não estiver mais disponível, haverá perda de dados. Para obter mais informações, consulte Certificados e chaves assimétricas do SQL Server.

Os certificados da TDE devem ser criptografados pela chave mestra do banco de dados para serem aceitos pelas instruções a seguir. Se forem criptografados somente pela senha, serão rejeitados pelas instruções como criptografadores.

Observação importante Importante

A alteração de certificados para que sejam protegidos por senha após usarem a TDE fará com que o banco de dados se torne inacessível após uma reinicialização.

A tabela a seguir fornece links e explicações de comandos e funções da TDE.

Comando ou função

Finalidade

CREATE DATABASE ENCRYPTION KEY (Transact-SQL)

Cria uma chave usada para criptografar um banco de dados.

ALTER DATABASE ENCRYPTION KEY (Transact-SQL)

Altera a chave usada para criptografar um banco de dados.

DROP DATABASE ENCRYPTION KEY (Transact-SQL)

Remove a chave usada para criptografar um banco de dados.

Opções ALTER DATABASE SET (Transact-SQL)

Explica a opção ALTER DATABASE usada para habilitar a TDE.

A tabela a seguir mostra exibições do catálogo de TDE e exibições de gerenciamento dinâmico.

Exibição do catálogo ou exibição de gerenciamento dinâmico

Finalidade

sys.databases (Transact-SQL)

Exibição do catálogo que exibe informações do banco de dados.

sys.certificates (Transact-SQL)

Exibição do catálogo que mostra os certificados em um banco de dados.

sys.dm_database_encryption_keys (Transact-SQL)

Exibição de gerenciamento dinâmico que fornece informações sobre as chaves de criptografia usadas em um banco de dados e o estado da criptografia de um banco de dados.

Cada recurso e comando da TDE possui requisitos individuais de permissões, descritos nas tabelas anteriores.

A exibição de metadados envolvidos com TDE requer a permissão VIEW DEFINITION no certificado.

Quando um exame de recriptografia para uma operação de criptografia de banco de dados está em andamento, as operações de manutenção no banco de dados são desabilitadas. Você pode usar a configuração de modo de usuário único para o banco de dados para executar a operação de manutenção. Para obter mais informações, consulte Definir um banco de dados como modo de usuário único.

É possível localizar o estado da criptografia do banco de dados usando a exibição de gerenciamento dinâmico sys.dm_database_encryption_keys. Para obter mais informações, consulte a seção "Exibições do catálogo e exibições de gerenciamento dinâmico”no início deste tópico).

Na TDE, todos os arquivos e os grupos de arquivos do banco de dados são criptografados. Se algum grupo de arquivos em um banco de dados estiver marcado como READ ONLY, haverá falha na operação de criptografia de banco de dados.

Se um banco de dados estiver sendo usado no espelhamento de banco de dados ou envio de logs, ambos os bancos de dados serão criptografados. As transações de logs serão criptografadas quando enviadas entre eles.

Observação importante Importante

Qualquer índice de texto completo novo será criptografado quando um banco de dados for definido para criptografia. Índices de texto completo criados previamente serão importados durante atualizações e ficarão na TDE quando os dados forem carregados no SQL Server. Habilitar um índice de texto completo em uma coluna pode fazer com que os dados da coluna sejam gravados em texto sem-formatação no disco durante uma varredura de índice de texto completo. Recomendamos que você não crie um índice de texto completo em dados criptografados sensíveis.

A compactação de dados criptografados é significativamente menor do que a compactação de dados equivalentes não criptografados. Se a TDE for usada para criptografar um banco de dados, a compactação de backup não poderá compactar o armazenamento de backup de forma significativa. Portanto, não é recomendável usar a TDE com a compactação de backup.

Restrições

As operações seguintes não são permitidas durante criptografia de banco de dados inicial, alteração de chave ou descriptografia de banco de dados:

  • Descartando um arquivo de um grupo de arquivos no banco de dados

  • Descartando o banco de dados

  • Colocando o banco de dados offline

  • Desanexando um banco de dados

  • Fazendo a transição de um banco de dados ou grupo de arquivos para um estado READ ONLY

As operações a seguir não são permitidas durante a execução das instruções CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY ou ALTER DATABASE...SET ENCRYPTION.

  • Descartando um arquivo de um grupo de arquivos no banco de dados.

  • Descartando o banco de dados.

  • Colocando o banco de dados offline.

  • Desanexando um banco de dados.

  • Fazendo a transição de um banco de dados ou grupo de arquivos para um estado READ ONLY.

  • Usando um comando ALTER DATABASE.

  • Iniciando um banco de dados ou backup de arquivo de banco de dados.

  • Iniciando um banco de dados ou restauração de arquivo de banco de dados.

  • Criando um instantâneo.

As operações e as condições a seguir impedirão a execução das instruções CREATE DATABASE ENCRYPTION KEY, ALTER DATABASE ENCRYPTION KEY, DROP DATABASE ENCRYPTION KEY ou ALTER DATABASE...SET ENCRYPTION.

  • O banco de dados é somente leitura ou tem grupos de arquivo somente leitura.

  • Um comando ALTER DATABASE está em execução.

  • Algum backup de dados está sendo executado.

  • O banco de dados está em condição de restauração ou offline.

  • Um instantâneo está em andamento.

  • Tarefas de manutenção do banco de dados.

Durante a criação de arquivos de banco de dados, a inicialização instantânea do arquivo não está disponível quando a TDE está habilitada.

Para criptografar a chave de criptografia de banco de dados com uma chave assimétrica, essa chave deve residir em um provedor de gerenciamento extensível de chaves.

Criptografia de dados transparente e logs de transação

A habilitação de um banco de dados para usar TDE tem o efeito de zerar a parte remanescente do log de transações virtuais para impor o próximo log de transações virtuais. Isso garante que nenhum texto não criptografado seja deixado nos logs de transações depois que o banco de dados for definido para criptografia. Você pode localizar o status da criptografia de arquivo de log visualizando a coluna encryption_state na exibição sys.dm_database_encryption_keys, como neste exemplo:

USE AdventureWorks2012;
GO
/* The value 3 represents an encrypted state 
   on the database and transaction logs. */
SELECT *
FROM sys.dm_database_encryption_keys
WHERE encryption_state = 3;
GO

Para obter mais informações sobre a arquitetura de arquivo de log do SQL Server, consulte O log de transações (SQL Server).

Todos os dados gravados no log de transações antes de uma alteração na chave de criptografia do banco de dados serão criptografados usando a chave de criptografia do banco de dados anterior.

Depois que uma chave de criptografia de banco de dados foi modificada duas vezes, um backup de log deve ser executado para que a chave de criptografia de banco de dados possa ser modificada novamente.

Criptografia de dados transparente e o banco de dados do sistema tempdb

O banco de dados do sistema, tempdb, será criptografado se nenhum outro banco de dados na instância do SQL Server for criptografado usando TDE. Isso pode ter um efeito de desempenho em bancos de dados não criptografados na mesma instância do SQL Server. Para obter mais informações sobre o banco de dados do sistema tempdb, consulte Banco de dados tempdb.

Criptografia transparente de dados e replicação

A replicação não replica automaticamente os dados de um banco de dados habilitado para TDE em um formulário criptografado. É necessário habilitar separadamente a TDE se você deseja proteger a distribuição e os bancos de dados dos assinantes. A replicação de instantâneo, assim como a distribuição inicial de dados para replicações transacionais e de mesclagem, pode armazenar dados em arquivos intermediários não criptografados, como os arquivos bcp, por exemplo. Durante replicação transacional ou de mesclagem, a criptografia pode ser permitida para proteger o canal de comunicação. Para obter mais informações, consulte Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Criptografia transparente de dados e FILESTREAM DATA

Os dados FILESTREAM não são criptografados nem mesmo quando a TDE está habilitada.

A TDE pode ser habilitada em um banco de dados que tenha objetos OLTP na memória. Os registros de log do OLTP na memória serão criptografados se a TDE estiver habilitada. Os dados em um grupo de arquivos MEMORY_OPTIMIZED_DATA não serão criptografados se o TDE estiver habilitado.

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft