Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

AULA 5 – SEGURANÇA DIGITAL – CRIPTOGRAFICA NO MYSQL 
 
Introdução à criptografia no MySQL 
Motivação 
A criptografia é uma técnica que pode ser utilizada para manter as informações dos bancos de dados 
em sigilo, protegidas. Por meio dela, é possível evitar que pessoas não autorizadas tenham acesso aos 
dados armazenados, pois somente aqueles que possuem a devida chave de criptografia serão capazes 
de visualizá-los. 
No MySQL, temos um mecanismo nativo de criptografia que, por meio de algoritmos específicos, 
permite encriptar (e decriptar, dependendo da solução adotada) os dados das tabelas. Nesse artigo, 
conheceremos os dois algoritmos mais utilizados: o MD5 e o AES. 
Utilizando MD5 
O MD5 é um dos algoritmos de criptografia mais conhecidos, e seu funcionamento consiste na 
geração de um valor hexadecimal de 32 dígitos a partir de uma string. Esse processo, no entanto, é 
unidirecional, ou seja, uma vez aplicada, essa função criptográfica não pode ser revertida a fim de 
recuperar o valor original. 
A natureza desse tipo de algoritmo ajuda nos quesitos de segurança (principalmente para salvar dados 
sensíveis como a senha do usuário), já que mesmo que os dados criptografados sejam hackeados, o 
invasor não terá como descriptografá-los. 
Para aplicar esse algoritmo no MySQL, dispomos da função MD5, que recebe como único parâmetro 
o texto a ser criptografado e retorna o valor mascarado. Assim, podemos utilizá-la diretamente ao 
inserir um registro na tabela, como no exemplo: 
INSERT INTO usuarios (login, senha) VALUES ('usuario_1', MD5('abc123')); 
Feito isso, podemos executar um SELECT nessa tabela e observar que o valor inserido na 
coluna senha se encontra criptografado, como mostra a Figura 1. Perceba que em vez do valor 
“abc123”, agora temos um texto do qual não se pode extrair o conteúdo original. 
 
Figura 1. Dado criptografado com MD5 
http://www.devmedia.com.br/criptografia-md5/2944
http://www.devmedia.com.br/sql-select-guia-para-iniciantes/29530
AULA 5 – SEGURANÇA DIGITAL – CRIPTOGRAFICA NO MYSQL 
 
Utilizando AES 
O algoritmo AES, por sua vez, implementa um modelo simétrico de criptografia. Esse modelo define 
algoritmos que usam uma mesma chave (um valor pré-estabelecido de no máximo 128 bits) tanto 
para encriptar quanto para decriptar os dados. Em outras palavras, a chave funciona como um contrato 
entre as partes que precisam trocar dados de forma segura, e só quem tiver tal chave poderá entender 
que dados estão sendo trafegados. 
No MySQL, a criptografia com AES pode ser aplicada por meio da função AES_ENCRYPT, enquanto 
para o processo inverso temos a função AES_DECRYPT. Ambas recebem dois parâmetros: o texto a 
ser criptografado ou descriptografado, e a chave. 
O código a seguir mostra como podemos inserir um dado criptografado em uma tabela: 
INSERT INTO usuarios (login, senha) VALUES ('usuario_2', AES_ENCRYPT('abc123', 
'chave')); 
Feito isso, podemos verificar o conteúdo desse usuário realizando um SELECT na tabela. O resultado, 
nesse caso, é mostrado na Figura 2. 
 
Figura 2. Dado criptografado com AES_ENCRYPT 
Observe que o valor inserido é incompreensível, no entanto, ele pode ser revertido por meio da 
função AES_DECRYPT, como mostra o código: 
select nome, CAST(AES_DECRYPT(senha,'Chave_para_descriptografar') as char) from 
pessoa WHERE id ='2'; 
Para visualizar o conteúdo original, precisamos ainda realizar um cast (conversão) para o tipo char, 
pois originalmente o retorno dessa função é visualizado em sua forma binária. 
O resultado é apresentado na Figura 3. 
 
Figura 3. Dados descriptografados com AES_DECRYPT 
http://www.devmedia.com.br/criptografia-aes-com-net/15903
AULA 5 – SEGURANÇA DIGITAL – CRIPTOGRAFICA NO MYSQL 
 
Enfim, a criptografia é amplamente utilizada nos mais variados tipos de sistemas, independentemente 
da plataforma ou banco de dados empregados. Por meio dela, adicionamos uma camada de segurança 
que é fundamental para evitar que os dados sejam acessados por indivíduos não autorizados. Por isso, 
conhecer as funções disponíveis nas linguagens e bancos de dados que adotamos é fundamental para 
garantir que os softwares desenvolvidos contem com esse importante recurso.

Mais conteúdos dessa disciplina