Segurança de Dados no SQL Server – Parte 02
Nesta segunda parte deste artigo, falaremos sobre segurança a nível de dados e certificado digital.
Segurança de Dados no SQL Server – Parte 02
Por: Alexandre Lopes
Segurança a nível de dados
O próximo nivel na hierárquia, é a encriptação a nivel da
dados, que fornece duas opções de encriptação: chave simétrica e chave
assimétrica.
Uma chave simétrica é um mecanismo de encriptação mais
rápido para encriptar e decriptar dados. Voce pode utilizar chave simétrica
para dados que são constantemente acessados. A linha de código abaixo é um
exemplo de criação da chave simétrica:
|
CREATE SYMMETRIC KEY WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'password' |
O
uso da senha não é obrigatório e recomendado, imagine utilizar a linha de
código acima em diversas aplicações? A senha ficaria exposta o que poderia
causar vulnerabilidade. Utilizarei neste artigo apenas para repassar ao leitor
todas as funcionalidades disponiveis e como utiliza-las.
O algoritmo utilizado acima (AES_256) não é o unico, voce utilizar o DES e o
TRIPLE_DES que fornecem uma chave mais "forte". Para maiores
informações sobre algoritmos, consulte o books online do SQL Server.
A partir do momento que voce criou uma chave a nivel de dados, chegou o momento
de encriptar e decriptar seus dados. Utiliza-se as funções EncryptByKey e
DecryptByKey no caso de chave simétrica.
A chave assimétrica é a combinação de uma chave privada com uma chave pública.
É considerada muito mais "forte" que uma chave simétrica, mas por
outro lado, consome mais recursos do sistema. A linha de código abaixo é um
exemplo da criação de chave assimétrica:
|
CREATE ASSYMETRIC KEY WITH ALGORITHM = RSA_2048 ENCRYPTION BY PASSWORD = ´password´ |
Os
algoritmos utilizados podem ser RSA_512, RSA_1024 e RSA_2048.
Para encriptar e decriptar dados, utiliza-se as funções EncryptByAsmKey e
DecryptByAsmKey.
Certificado Digital
Certificado Digital é o mecanismo mais "forte" disponivel no SQL
Server. Um certificado de chave publica é assinado digitalmente e associado uma
uma identidade de usuário, dispositivo ou serviço que armazena a chave privada.
Ou seja, a chave publica, como o próprio nome informa é de conhecimento publico
e serve para decriptar, a chave privada faz o inverso; decripta. Esse modelo é
amplamente utilizado e segue as normas X.509. Por ser extremamente seguro, o
impacto na performance também é sentida devido ao overhead quando se encripta e
decripta os dados. A linha de código abaixo é um exemplo de criação do certificado:
|
CREATE CERTIFICATE WITH SUBJECT = 'subject_do_certificado' |
As funções utilizadas são EncryptByCert e DecryptByCert.
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo