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:
- Gerar o script e executar o comando
- 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:
- Gerar script e executar, ou;
- 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!