Usuário com melhor resposta
Criptografia no SQL Server 2008 R2 usando TDE

Pergunta
-
Prezados,
Acabei de configurar a criptografia utilizando TDE em um banco de dados e correu tudo bem : criei a "Database Master Key" (fiz um backup), depois criei o "Certificado" (novamente, fiz um backup) e depois, diretamente no banco objeto da criptografia, criei a "Database Encryption Key", vinculando-a ao Certificado criado. Depois disso, habilitei o TDE no banco usando o comando "ALTER DATABASE <nome_do_banco> SET ENCRYPTION ON".
Tudo ocorreu com sucesso. Porém, quando dei um "SELECT" numa tabela deste banco, a partir do Management Studio, as informações desta tabela foram apresentadas normalmente, como se nada tivesse sido criptografado.
Usando TDE é assim mesmo ? Ou seja, a criptografia fica somente ao nível dos arquivos .MDF, .NDF e .LDF e, quando fizemos um SELECT em qualquer tabela, os dados são lidos do disco, decriptografados e mostrados normalmente para o cliente ?
Pergunto isso, pois quando usamos criptografia em um banco de dados, baseada não em TDE, mas em chave simétrica e/ou assimétrica, para uma (ou mais) coluna de uma determinada tabela, quando damos um "SELECT" nesta tabela, as informações desta coluna está totalmente "ilegível" e para a lermos é preciso, antes, dar um "OPEN" na chave simétrica e utilizar a função "DecryptByKey" para a coluna que está criptograda.
Enfim, minha dúvida é : por que usando criptografia TDE, quando damos um "SELECT" numa tabela, as colunas são mostradas normalmente e não "ilegíveis", conforme quando usamos chave simétrica ?
Desde já agradeço o retorno que vier me esclarecer este fato.
Obrigado,
José Luiz
Respostas
-
José,
O TDE seu nome já diz Criptografia Transparente de Dados, é justamente desta forma que ele trabalha.
A criptografia é aplicado no nível do arquivo de banco de dados e suas páginas e diretamente nos dados armazenados em disco, neste caso, o que esta armazenado em disco esta criptografado e não o que é consultado.
Criptografia do arquivo de banco de dados é executada no nível da página. As páginas em um banco de dados criptografado são criptografadas antes que eles são gravados em disco e descriptografadas quando lidas na memória. A TDE não aumenta o tamanho do banco de dados criptografado.
Talvez o TDE não seja a solução que você precisa.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Sugerido como Resposta Edvaldo A sexta-feira, 7 de dezembro de 2018 13:50
Todas as Respostas
-
José,
O TDE seu nome já diz Criptografia Transparente de Dados, é justamente desta forma que ele trabalha.
A criptografia é aplicado no nível do arquivo de banco de dados e suas páginas e diretamente nos dados armazenados em disco, neste caso, o que esta armazenado em disco esta criptografado e não o que é consultado.
Criptografia do arquivo de banco de dados é executada no nível da página. As páginas em um banco de dados criptografado são criptografadas antes que eles são gravados em disco e descriptografadas quando lidas na memória. A TDE não aumenta o tamanho do banco de dados criptografado.
Talvez o TDE não seja a solução que você precisa.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Sugerido como Resposta Edvaldo A sexta-feira, 7 de dezembro de 2018 13:50
-
Oi, Junior Galvão,
Boa tarde.
Muito obrigado pela resposta.
Na verdade terei mesmo que usar o TDE, pois o banco precisa ser criptografado, sem que haja o "ônus" de demandar mudança de código da aplicação para a equipe de desenvolvimento. Com o TDE tudo é transparente, porém se eu for criptografar algumas colunas de tabelas apenas (e não o banco todo), usando chaves simétricas e/ou assimétricas, aí demandaria mudança nos códigos.
Minha dúvida era que eu achava que com o TDE, ao dar um SELECT via cliente, eu também veria os dados criptografados, mas não é assim e você respondeu minha dúvida.
Mais uma vez obrigado.
Valeu mesmo !
José Luiz
-
José,
Obrigado, espero ter ajudado, por gentileza, marque a resposta como correta.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]