Explore a criptografia de dados transparente

Concluído

A Criptografia de Dados Transparente (TDE) do Microsoft SQL Server criptografa todos os dados dentro de um banco de dados de destino no nível da página. Os dados são encriptados à medida que são gravados na página de dados no disco e desencriptados quando a página de dados é lida na memória. O resultado final é que todas as páginas de dados no disco são encriptadas.

A TDE não criptografa dados no nível da tabela ou coluna. Qualquer pessoa com as permissões apropriadas pode ler os dados, copiá-los e até mesmo compartilhá-los. A criptografia em repouso fornece proteção contra alguém restaurando um backup em um servidor não seguro ou fazendo uma cópia de todos os arquivos de banco de dados e log de transações e anexando-os a outro servidor não seguro. Nenhuma desencriptação é feita durante a operação de backup.

A TDE protege os dados em repouso e segue várias leis, regulamentos e diretrizes estabelecidas em vários setores. Com essa capacidade, os desenvolvedores de software podem criptografar dados usando os algoritmos de criptografia AES e 3DES sem ter que alterar os aplicativos existentes.

A imagem a seguir mostra como a criptografia TDE funciona.

Transparent Data Encryption architecture.

Com o Banco de Dados SQL do Azure, habilitar o TDE é simples. Os bancos de dados criados no Banco de Dados SQL do Azure após maio de 2017 têm a TDE habilitada automaticamente. Os bancos de dados criados antes de maio de 2017 terão o TDE desabilitado por padrão e o TDE precisará ser habilitado manualmente nesses bancos de dados. A TDE está habilitada em bancos de dados criados após fevereiro de 2019 com a Instância Gerenciada SQL do Azure. Os bancos de dados criados antes de fevereiro de 2019 terão o TDE desativado.

Habilitar o TDE em um banco de dados do Banco de Dados SQL do Azure é simplesmente uma questão de editar o banco de dados no portal do Azure. No painel Criptografia de dados transparente, selecione para habilitar a criptografia de dados.

Transparent Data Encryption Settings for an Azure SQL Database.

Por padrão, os bancos de dados no Banco de Dados SQL do Azure são criptografados usando um certificado fornecido pela Microsoft. O Microsoft Azure fornece uma opção Traga sua própria chave, que permite que você use um certificado que foi criado pela sua empresa e carregado no Azure. Se sua empresa remover o certificado do Azure, as conexões de banco de dados serão fechadas e não haverá acesso ao banco de dados.

Habilitar o TDE em um banco de dados do Microsoft SQL Server é um processo fácil, pois apenas alguns comandos T-SQL são necessários. Este processo envolve os seguintes passos:

  1. Defina uma chave mestra dentro do banco de dados mestre usando o CREATE MASTER KEY ENCRYPTION comando.
  2. Crie um certificado no banco de dados mestre, que será usado para a criptografia usando o CREATE CERTIFICATE comando.
  3. Crie uma chave de criptografia de banco de dados dentro do banco de dados, que permite habilitar o TDE com o CREATE DATABASE ENCRYPTION KEY comando.
  4. Uma vez que a chave de criptografia é criada, ela precisa ser habilitada usando o ALTER DATABASE comando.

Todo o conjunto de comandos é mostrado abaixo.

USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pa55.w.rd';
GO

CREATE CERTIFICATE MyServerCert
    WITH SUBJECT = 'TDEDemo_Certificate';
GO

USE [TDE_Demo];
GO

CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO

Uma vez habilitada a TDE, levará algum tempo para criptografar o banco de dados, pois cada página do banco de dados deve ser lida, criptografada e gravada de volta no disco. Quanto maior for a base de dados, mais tempo demorará esta operação. Este processo é um processo em segundo plano e é executado com baixa prioridade para não sobrecarregar a E/S ou a CPU do sistema.

Uma vez criado o certificado que será usado pela TDE, ele deve ser copiado manualmente e armazenado em um local seguro. O SQL Server integra-se com Enterprise Key Managers (EKMs) para gerenciar chaves de criptografia. Um exemplo de um EKM é o Azure Key Vault.

Gerenciar o certificado é importante, porque se o certificado for perdido e o banco de dados precisar ser restaurado a partir de um backup, a restauração falhará, pois o banco de dados não pode ser lido.

Nota

Para usar o TDE com bancos de dados em um Grupo de Disponibilidade Always On, o certificado usado para criptografar o banco de dados deve ser copiado e restaurado para os outros servidores dentro do Grupo de Disponibilidade que hospedarão cópias do banco de dados.

Criptografia de disco do Azure

Além desses recursos de segurança do SQL Server, as VMs do Azure incluem uma camada extra de segurança, a Criptografia de Disco do Azure — um recurso que ajuda a proteger e proteger dados e atender aos compromissos de organização e conformidade. Se você estiver usando TDE, seus dados serão protegidos por várias camadas de criptografia com a Criptografia de Disco do Azure.