Olá, Pessoal!

Neste post, vamos habilitar o Always Encrypted nas colunas de uma tabela de exemplo para visualizarmos todo o seu mecanismo e transformação que ocorre no banco.

INICIANDO O PROCESSO

No object explorer do SSMS, vá na pasta `Security’ e depois ‘Always Encrypted Keys’. Selecione clicando com o botão direito, ‘New Column Master Key’

NOTA: No Azure SQL Database, a ativação do Always encrypted, obedece os mesmo padrões que na versão on-premises, sua diferença é que o banco do Azure, precisa ser acessado pelo SSMS.

Dê um nome para sua chave, escolha um dos modelos e  clique para gerar uma chave no ‘Generate Key’ (um pouco mais abaixo)’. Após, há duas opções:

  1. Gerar o script e executar o comando 
  2. Clicar em Ok e fechar a janela do assistente

Faça o mesmo processo para o ‘Column Encryption Key’ e ao final, a mesma coisa:

  1. Gerar script e executar, ou;
  2. Finalizar no Ok.

Um adendo ao conteúdo. Abaixo, como habilitar o A.E com o Azure Key Vault.

A imagem abaixo, mostra o processo para criação da Column Master Key.

Ao final, clique em generate key para finalizar este processo.
No próximo passo, a criação da Column Encryption Key. Ao final, clique em ok.

Agora, vá no banco que foi usado para o exemplo, vá na tabela que deseja aplicar o A.E e clique em ‘Encrypt Columns’

A próxima tela, é a tela onde vamos iniciar o processo de criptografia

Reparem que como só tenho uma C.M.K  o SQL Server não permite que eu escolha outra.

Se não quiser usar a C.E.K  criada, pode criar uma na hora selecionando ‘CEKAuto1New’. Durante o processo, a chave será criada.

Escolha também os tipos de criptografia para as colunas

Como não quis gerar o script em Powershell, escolhi a segunda opção.

Ao final, irá receber uma mensagem informando que o processo foi finalizado. Resultado após a finalização do Always Encrypted.

Tentativa de insert nas colunas. O erro acontece pois, uma vez que o A.E foi habilitado, agora só as aplicações autorizadas conseguem realizar tarefas nestas colunas.

O mesmo irá acontecer com updates e deletes.

E assim, chegamos ao final de mais um capítulo sobre criptografia do banco de dados. Desta vez, utilizando  o recurso de Always Encrypted para garantir maior segurança aos dados armazenados.

O Always Encrypted tem a vantagem de não alterar aplicação e tornar dados sensíveis mais seguros porém, a perda de autonomia do DBA pode ser um fator negativo, dependendo do negócio. Então, sempre que quiser deixar a manipulação de uma coluna ou tabela inteira a cargo somente da aplicação, Always Encrypted pode se encaixar nas suas necessidades.

Podemos destacar que em alguns casos, haverá queda de performance e é imprescindível que o NetFramework esteja sempre atualizado.

No mais, é uma ferramenta muito segura e de grande potencial.

Vejo vocês no próximo post, fiquem bem!