No SQL Server 2016, qual é a diferença entre a criptografia de dados sempre criptografada e transparente?

40

Enquanto escrevo isso, ainda estou aguardando o lançamento oficial do SQL Server 2016, para que possamos explorar a utilidade do seu recurso "Sempre criptografado".

Gostaria apenas de saber quais serão as diferenças específicas entre Sempre criptografado e a Criptografia de dados transparente atualmente disponível no SQL Server 2016, para que possamos tomar a decisão correta para projetos futuros.

Assado
fonte
Com Sempre criptografado, os drivers do cliente criptografam / descriptografam dados antes que eles atinjam o SQL Server enquanto o TDE é executado no próprio SQL Server. O IMHO TDE é principalmente inútil em cenários de nuvem / datacenter seguro (role para "TDE não é muito útil na nuvem"). Se você estiver interessado em segurança avançada de dados, verifique também o Crypteron . Divulgação completa: eu trabalho lá
DeepSpace101

Respostas:

48

Desvantagens da Criptografia de Dados Transparente em comparação com Sempre Criptografado:

  • Protege apenas os dados em repouso - os backups e os arquivos de dados são "seguros", mas os dados em movimento ou na memória são vulneráveis
  • Apenas banco de dados inteiro
  • Todos os dados são criptografados da mesma maneira
  • A compactação de backup pode levar mais tempo e ser contraproducente

    • Bem, na verdade, existem algumas melhorias aqui no SQL Server 2016 que desafiam o que geralmente sabemos sobre a tentativa de compactar dados criptografados - é muito melhor que as versões anteriores, mas presumivelmente ainda é pior do que criptografar apenas algumas colunas (não testadas)
  • O tempdb também herda a criptografia - permanece mesmo após desativar o TDE
  • Requer Enterprise Edition
  • Dados sempre acessíveis ao sysadmin

Sempre criptografado resolve todos esses problemas, em parte ou na sua totalidade:

  • Os dados são protegidos em repouso, em movimento e na memória - muito mais controle sobre certificados, chaves e exatamente quem pode descriptografar dados
  • Pode ser apenas uma coluna
  • O tipo de criptografia é uma opção:
    • Pode usar criptografia determinística para suportar índices e pesquisas de pontos (por exemplo, SSN)
    • Pode usar criptografia aleatória para maior proteção (por exemplo, número do cartão de crédito)
  • Como não é de todo o banco de dados, a compactação de backup não é necessariamente afetada - é claro que quanto mais colunas você criptografar, menor será a sua sorte.
  • tempdb não está envolvido
  • A partir do SQL Server 2016 Service Pack 1, o Always Encrypted agora funciona em todas as edições
  • Os dados podem ser protegidos do sysadmin (mas não do sysadmin E dos administradores de segurança / certificado / chave do Windows, ou seja, você pode separar a responsabilidade, desde que esses dois grupos não sejam coniventes)

Há uma limitação, porém, e é que nem todos os drivers e aplicativos podem lidar com os dados criptografados diretamente; portanto, em alguns casos, será necessário atualizar / alterar os drivers e / ou modificar o código.

Aaron Bertrand
fonte
Você poderia me explicar como o Always Encrypted criptografa os dados na memória? Tentei encontrar essas informações no MSDN, mas ele diz apenas sobre dados em repouso e criptografia de dados em movimento. Obrigado :)
Victoria Malaya
11
@ Victoria Os dados são criptografados pelo provedor antes que o SQL Server os veja. Portanto, o SQL Server recebe um valor criptografado, coloca esse valor criptografado no disco e carrega o valor criptografado na memória quando essa página está na memória. Criptografia não acontece na memória a maneira de pensar, e descriptografia só acontece quando um cliente possui um certificado com a capacidade de decifrar ...
Aaron Bertrand
2
Até onde eu sei, uma das maiores diferenças é quando se trata de consultar os dados. Com o TDE, você pode executar qualquer consulta como faria normalmente; com o AE, você é muito restrito quando se trata de consultar as colunas criptografadas, ou seja, você só pode fazer comparações de igualdade (e isso requer a opção de criptografia determinística). Não há verificação de intervalos de datas, sem consultas gosta, etc.
musefan
3

Simplificando, o TDE é um dado criptografado em repouso (em disco) e o AE também é um dado criptografado na conexão.

Chad Mattox
fonte
Eu acho que você pode ter isso ao contrário, não?
Zwerdlds
Não deveria ser: o TDE é criptografado em repouso enquanto o AE é criptografado na conexão, em repouso e na memória?
RoastBeast
AFAIK: você pode combinar a TDE e a força da criptografia de protocolo no servidor MS SQL para que a conexão também seja criptografada.
TiloBunt