Escolar Documentos
Profissional Documentos
Cultura Documentos
Veja como o SQL Server 2005 ganhou novos recursos para criptografia de dados, melhorando a capacidade de proteo dos dados.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe'; 2o Passo : Criar o certificado digital CREATE CERTIFICATE Produtos WITH SUBJECT = 'CertificadoProdutos' Sem o uso da masterKey seria necessrio atribuir uma senha 3o Passo : Criar a chave create symmetric key sk_produtos with algorithm = Triple_DES encryption by certificate produtos; Da mesma forma, sem o uso do certificado seria necessrio incluir uma senha
4o Passo : Incluir uma coluna para a criptografia alter table products add ProductEnc varbinary(300) Estamos trabalhando com uma alterao de dados existentes. Observe que a coluna que ir receber os dados criptografados precisa ser do tipo VarBinary. 5o Passo : Abrir a chave Para criptografar e descriptografar precisamos fazer o que chamado de "Abrir" a chave de criptografia. Open Symmetric key sk_Produtos decryption by certificate produtos Se tivessemos utilizado uma senha, sempre que utilizassemos o Open teriamos que indicar a senha. Sua senha acabaria ficando espalhada atravs das aplicaes. 6o Passo : Criptografar os dados Update products set productEnc=encryptbykey(key_guid('sk_produtos'),productname) Neste ponto feita a atualizao da nova coluna aplicando-se a funo encryptbykey. Existe ainda uma opo de aumentar ainda mais a segurana fazendo o vinculo da informao criptografada com um campo da tabela, em geral a chave primria.
feito ento o calculo de um hash e adicionado aos dados criptografados. Para que a descriptografia seja feita corretamente, o mesmo valor dever ser informado no momento da descriptografia. Com isso a informao criptografada fica sempre ligada ao registro, precisando ser informado o ID do registro para que a descriptografia seja realizada. Veja a criptografia com o autenticador : Update products set productEnc=encryptbykey(key_guid('sk_produtos'),productname,1,productid) 7o Passo : Teste o resultado select * from products Voc ver os dados em binrio, criptografados. 8o Passo : Teste a descriptografia select productid, convert(nvarchar, decryptbykey(productenc)) as Produto from products Neste exemplo utilizamos a funo decryptbykey para descriptografar as informaes. Observe que necessrio converter a informao de volta para o seu tipo de dados original para que seja legvel. No nosso exemplo, nvarchar. Caso tivessemos utilizado uma chave adicional, como citei anteriormente, teramos que novamente utiliza-la na descriptografia. Veja a descriptografia com o autenticador : select productid, convert(nvarchar, decryptbykey(productenc,1,productid)) as Produto from products 9o Passo : Crie uma view e simplifique tudo Para evitar a necessidade de abrir a chave de criptografia, podemos utilizar a funo decryptbykeyautocert em uma view. Esta funo ir fazer a abertura da chave de criptografia automaticamente - ou retornar um valor alternativo caso no consiga.
create view Produtos as select productid, convert(nvarchar, decryptbykeyautocert(cert_id('produtos'),null,productenc)) as Produto from products Observe o valor alternativo que foi indicado - null - este valor ser exibido caso o usurio no possa por algum motivo acessar o certificado de produtos.
Atribuindo Acesso Experimente criar um usurio novo, com permisso de leitura na base de dados. Faa um select na view e ver que este usurio no consegue visualizar os dados. Atribua permisses a este usurio para acessar a chave de criptografia e o certificado. O usurio passar imediatamente a visualizar os dados. Veja um passo a passo para isso : Na aba security, crie um novo login UsuarioTeste utilizando sql server authentication
Clique no boto change connection (toolbox superior, a esquerda) e se conecte como UsuarioTeste
Faa novamente o select na view produtos, desta vez o usurio conseguir visualizar os dados.
Concluso Com estes recursos voc pode criptografar dados crticos em sua base de dados, tal como valores de salrios e nmeros de cartes de crdito e determinar, atravs das permisses nas chaves e certificados, quem poder fazer a descriptografia.