none
Criptografia no SQL Server 2008 R2 usando TDE RRS feed

  • 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

    quarta-feira, 28 de novembro de 2018 19:41

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
    terça-feira, 4 de dezembro de 2018 11:28
    Moderador

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
    terça-feira, 4 de dezembro de 2018 11:28
    Moderador
  • 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

    terça-feira, 4 de dezembro de 2018 16:37
  • 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]

    quinta-feira, 6 de dezembro de 2018 21:57
    Moderador