O tráfego de rede é criptografado ao gravar backups remotos usando o SQL Server TDE?

9

Eles dizem que não existe uma "pergunta estúpida", então aqui vai:

Entendo que a TDE ( criptografia de dados transparente) do SQL Server criptografa os dados em repouso, para que seus arquivos de banco de dados (.mdf) e arquivos de backup (.bak) sejam criptografados caso alguém invadir seu armazenamento e roubar esses arquivos. Também entendo que os dados são descriptografados quando lidos do disco, para que não sejam criptografados na memória (em movimento). Portanto, os dados solicitados por um usuário executando uma consulta remota (selecione * a partir de SensitiveData) não serão criptografados ao viajar pela rede e, portanto, vulneráveis ​​à interceptação.

Portanto, supondo que todas as opções acima estejam corretas, eis a minha pergunta estúpida: se minha instância do SQL Server estiver no computador A e meus backups do banco de dados TDE forem baixados para armazenamento no computador remoto B, os dados da operação de backup serão criptografados à medida que eles passam computador A a ser gravado no disco no computador B? Suponho que deve ser (porque suponho que a operação de criptografia ocorra primeiro no computador A), mas não consigo encontrar confirmação disso em nenhuma documentação da Microsoft ou nos blogs. Da mesma forma, durante uma operação de restauração - alguém interceptou os dados que estão sendo transferidos do disco no computador B para restaurar o banco de dados no computador A - eles acham esses dados em movimento criptografados?

SQLServerVillain
fonte
2
É realmente uma boa pergunta
shanky

Respostas:

7

Sim, os backups são criptografados durante a movimentação na rede porque os dados da TDE são criptografados no disco e a operação de backup nunca os descriptografa .

Mitos alternativos de Paul Randal :

Mito 30-09): os backups leem dados através do buffer pool

Não. O subsistema de backup abre seus próprios canais para os arquivos de banco de dados para evitar o impacto no desempenho de ter que ler tudo na memória do SQL Server e voltar ao dispositivo de backup (e também liberar efetivamente o buffer pool no processo). Se você solicitar a verificação da soma de verificação da página, ela utilizará sua própria pequena porção de memória.

Se as páginas foram carregadas no buffer pool (o espaço de memória "normal" que o SQL usa para armazenar em cache a tabela do banco de dados e os dados do índice), elas teriam que ser descriptografadas. Mas os backups não fazem isso, eles apenas despejam "extensões" criptografadas brutas (pedaços contíguos de 8 páginas) no seu destino de backup.

Consegui obter uma confirmação de Paul Randal de que o comentário acima ainda é relevante para a TDE :

Funciona exatamente da mesma maneira. O buffer pool faz criptografia e adiciona uma soma de verificação da página antes de gravar uma página no disco. Os backups nunca são lidos no buffer pool. Então, sim, um backup do banco de dados TDE ainda possui a criptografia. As somas de verificação da página são validadas, mas pelo código de backup, não pelo código do buffer pool.

Em outras palavras, se você ativou CHECKSUMs em um banco de dados, eles serão adicionados (durante operações normais de gravação SQL) após a criptografia. Isso significa que o processo de backup pode ler a extensão bruta (criptografada), validar a soma de verificação e gravar o backup, tudo sem descriptografar os dados.

Este é quase certamente o motivo pelo qual (antes do SQL 2016), ativar a compactação de backup no banco de dados com TDE não fazia nada, pois os dados criptografados não eram muito compactáveis :

Isso ocorre porque quando os backups de um banco de dados criptografado TDE são feitos, as páginas do banco de dados não são descriptografadas durante o backup. Eles são copiados no mesmo estado criptografado em que estão normalmente e depois são compactados . Por sua natureza, os dados criptografados são muito exclusivos, portanto, a compactação de dados não faz muito bem contra dados criptografados.

Para uma operação de restauração, o mesmo princípio se aplica. O backup criptografado permanece criptografado na rede e é gravado no disco do servidor de restauração em seu estado ainda criptografado. Eles são descriptografados apenas quando o banco de dados é carregado na memória após a conclusão da restauração.

BradC
fonte
3

... os dados da operação de backup são criptografados à medida que viajam do computador A para serem gravados no disco no computador B?

Sim, é descriptografado quando entra no buffer pool e criptografado quando sai. Nesta situação, uma vez que estamos gravando no disco, ele é criptografado primeiro e depois gravado. Como as gravações estão passando pela rede, os dados são criptografados, mas outras partes do tráfego da rede não.

... durante uma operação de restauração ... eles encontrariam esses dados em movimento criptografados?

Sim, uma vez que o mesmo que acima se aplica, mas na ordem inversa. Os dados foram criptografados no disco, estão sendo lidos e transferidos no estado criptografado. Em seguida, ele chega à instância e é carregado no buffer pool onde não é criptografado como uma etapa no caminho.

Sean Gallardy
fonte
11
Acho que isso está correto, mas não tenho certeza de que esteja correto pelos motivos que você diz. Eu pensei que um backup enviará EXTENTS de banco de dados brutos (não páginas) para o disco, ignorando a etapa de descriptografia quando eles são carregados na memória. Posso estar errado, mas estou procurando documentação agora.
21420 Bradc
11
Encontrado, veja o mito de Paul Randal 30-09 : "O subsistema de backup abre seus próprios canais para os arquivos de banco de dados para evitar o impacto no desempenho de ter que ler tudo na memória do SQL Server e voltar ao dispositivo de backup". Não menciona especificamente a TDE, mas se o processo de backup for seu próprio canal, seria um desperdício descriptografar apenas para criptografar imediatamente. Pode até validar CHECKSUMS e / ou aplicar compactação sem descriptografar, se estiverem ativados.
BradC
@ BradC Eu não estava dizendo que o backup em si funcionaria dessa maneira, mas como o processo de criptografia / descriptografia funcionaria com os dados em repouso. Se for ambíguo, mudarei, no entanto, não estou dizendo que é assim que um backup funciona exatamente quando e onde a criptografia / descriptografia acontece.
Sean Gallardy
Mas se o processo de backup não usar o buffer pool, seu raciocínio estará incorreto, mesmo que a conclusão (os pacotes de backup sejam criptografados) esteja correta por um motivo diferente.
BradC
@ BradC Não, o raciocínio é que ele já está gravado no disco e, portanto, já está criptografado ... Não tenho certeza de como você está entendendo que estou afirmando que um backup é descriptografado e depois criptografado novamente pela BP. Eu pensei que era bastante simples dizer que já estava criptografado, portanto, copiar para outro disco ou copiá-lo de outro disco não o descriptografa ... Não tenho certeza de como você está confundindo isso.
Sean Gallardy