Você está na página 1de 11

SEGURANÇA DE DADOS UTILIZANDO CRIPTOGRAFIA

EM BANCO COM ALGORITMOS COMBINADOS

Geraldo Francisco da Silva1, Mário Cristiano Lopes de Moura2

Centro de Educação Tecnológica de Teresina (CET)


Teresina, PI – Brasil
Rua Firmino Pires, 527 - Centro/Norte - Teresina Piauí - Brasil

gheraldo.silva@gmail.com, mclmoura@ufpi.edu.br

ABSTRACT - In this paper, we develop the symmetric encryption algorithm


ACRC, at first we use individually, and later combined with the existing
base64 and AES for purposes of storing information encrypted in the
database; are still carried out tests to assess the feasibility of using these
resources without compromising application performance. Taking into
consideration that many deem impossible save all information encrypted in the
database, for alleged loss of performance and processing overhead.

RESUMO – Neste trabalho, desenvolvemos o algoritmo de criptografia


simétrica ACRC e o utilizaremos individualmente, num primeiro momento, e
posteriormente combinado aos já existentes base64 e ao AES para fins de
armazenar informações criptografadas em banco de dados; serão ainda
realizados testes para avaliar a viabilidade de uso desses recursos sem
comprometer o desempenho da aplicação. Levando-se em consideração que
muitos julgam inviável guardar todas as informações criptografadas no banco
de dados, por suposta perda de performance e sobrecarga de processamento.

Palavras chaves: Algoritmo. Criptografia. Banco de Dados. ACRC. Base64.


AES. Performance. Processamento.

1
Graduando em Sistemas para Internet
Faculdade - CET
2
Orientador
Mestrando em Engenharia de Software
Universidade Federal do Pernambuco - UFPE
1. INTRODUÇÃO
Os sistemas computacionais, especialmente os sistemas web que manipulam
informações muitas vezes sigilosas, dados pessoais, dados de cartões de créditos, dados
bancários e tantas outras informações que só devem ficar disponíveis aos seus
respectivos donos, precisam cada vez mais implementarem políticas de segurança que
possam garantir uma eficácia maior na proteção desses dados impedindo o acesso e a
legibilidade desses por pessoas não autorizadas. Considerando a quantidade de notícias
divulgadas sobre invasão de banco de dados e roubo de informações, guardar todos os
dados no banco criptografados parece ser uma saída eficaz na prevenção desse tipo de
problema.

Para se ter uma ideia do perigo, atentemos para as frequentes divulgações sobre
roubo de informações em banco de dados.

“Hackers conseguiram invadir o banco de dados da


empresa Gawker Media e roubaram milhões de informações dos
usuários, informações como endereço de e-mail, usuário e senha.”
(latestnews.org. Hackers invadem banco de dados da Gawker,
3
2011.)

“O site da brigada militar do Rio Grande do Sul chegou a


ser tirado do ar para revisão de todo banco, depois de ter o seu
banco de dados invadido por hackers” (BRAGA, Polibio.
Hackers invadem banco de dados da Brigada e revelam dados
pelo Twitter, 25 de junho de 2011.)4

“O banco de dados do site do Exército Brasileiro foi


invadido por hackers, informações de cerca de 1000 militares
foram roubadas e divulgadas em servidores de arquivos” (CRUZ,
Melissa. Hacker acessa dados do Exército brasileiro e divulga
informações de quase mil funcionários, 21 de junho de 2011.)5

“Um número desconhecido de hackers invadiu o banco de


dados da Universidade da Califórnia em Berkeley e conseguiu
acesso a informações pessoais e médicas de mais de 100 mil
estudantes e ex-estudantes.” ( NOSOWITZ, Dan. Hackers

3
Disponível em: <http://www.latestnews.org/hackers-invade-gawker%E2%80%99s-database/>.
Acessado em: 03/11/2011
4
Disponível em: <http://polibiobraga.blogspot.com/2011/06/hackers-invadem-banco-de-dados-da.html>.
Acessado em: 03/11/2011
5
Disponível em: <http://oglobo.globo.com/tecnologia/hacker-acessa-dados-do-exercito-brasileiro-
divulga-informacoes-de-quase-mil-funcionarios-2759303>. Acessado em: 10/11/2011
invadem banco de dados de Berkeley e roubam quase 100 mil
identidades, 11 de maio de 2009.)6

“A subsidiária da fabricante de veículos Honda no Canadá


enviou cartas a seus clientes comunicando que sofreu um ataque
de hackers que roubaram mais de 283 mil registros de seus bancos
de dados.” (ROHR, Altieres. Banco de dados da Honda Canadá
é invadido e vaza 283 mil registros, 31 de maio de 2011.)7

Diante disso é possível perceber como a situação é mais grave do que parece, a
maior parte das empresas hoje guarda criptografado no banco de dados somente a senha
dos usuários, o ideal seria criptografar se não tudo, ao menos todas as informações
consideradas mais importantes e necessitadas de mais garantias de sigilo, tais como
endereços, números de cartões de créditos, números de documentos como RG e CPF,
nomes de usuários e senhas, pois em casos de invasões como estas a preocupação com o
vazamento indevido de informações seria bem menor, haja vista que o invasor de posse
das informações criptografadas teria muito trabalho para decifrar.
Chav

Chav

Informaçã Kg&%6h# Informaçã


o üä& o
Clara iU4$G9@ Clara

FIGURA 1 – Ilustração do processo de cifrar de decifrar usando chaves.


Baseado na ilustração de GARFINKEL, Simson; SPPAFFORD, Gene (1999,
p.189)

Hoje, quando se fala em criptografia, somos levados a pensar em tecnologia da


informação. No entanto, a criptografia existe há muito tempo. Segundo Paar & Pelzl
(PAAR &· PELZL: 2010), os primeiros exemplos de criptografia datam de cerca de
2000 aC, quando informações não padronizadas ou codificadas, os
conhecidos hieróglifos foram usados no antigo Egito.

Com o tempo a criptografia foi aperfeiçoada e hoje é uma grande aliada na


proteção de dados contra acesso não autorizado. Considerando a grande quantidade de
6
Disponível em: <http://www.gizmodo.com.br/conteudo/hackers-invadem-banco-de-dados-de-berkeley-
e-roubam-quase-100-mil-identidades/>. Acessado em: 10/11/2011
7
Disponível em: <http://g1.globo.com/tecnologia/noticia/2011/05/banco-de-dados-da-honda-canada-e-
invadido-e-vaza-283-mil-registros.html>. Acessado em: 10/11/2011
dados de acesso “restrito” armazenados em bancos de dados de sistemas de informações
e que muitas vezes são violados, bem como decifrados e expostos na internet, criar
novos algoritmos de criptografia ou mesmo combinar os já existentes, fazendo com que
o processo de reversão torne-se mais complicado, soa como um aparato a mais e
necessário para deixar informações armazenadas em sistemas computacionais, bem
como em banco de dados, mais difíceis de serem compreendidas ou decifradas por
pessoas não autorizadas.

2. O ALGORITMO ACRC
O ACRC (Algoritmo de criptografia com redução de caracteres) é um algoritmo
de criptografia simétrica (com chave privada de 192 bits) e foi criado em 2011, fruto de
pesquisas visando criar um algoritmo que fosse capaz codificar informação de forma
mais rápida que os atuais, possibilitando realizar transações com informações
codificadas tão rápido quanto os processos com informações não codificadas ou até
mesmo mais rápido, considerando que com ele as informações codificadas tem a
quantidade de caracteres reduzida em cerca de 40% do seu tamanho original. Quanto ao
seu nível de segurança, este ainda está a ser avaliado, devendo em breve ser submetido a
grupos, comunidades e instituições que lidam com tecnologias co-relatas para fins de
testes em níveis mais rápidos.

3. O ALGORITMO BASE64
O algoritmo base64 é mundialmente conhecido e conforme o blog
(http://daemoniolabs.wordpress.com. Codificação Base64 Em C, 09 de setembro de
2011) 8 , surgiu da necessidade de se transferir e armazenar informações textuais de
forma ilegíveis para pessoas não autorizadas, ele é constituído por 64 caracteres ([A-Za-
z0-9], "/" e "+") que deram origem ao seu nome. Vale ressaltar, que ele apresenta um
leve crescimento na informação criptografada, bem como um leve aumento no tempo de
processamento em relação ao tempo gasto no processamento da informação original.

4. O ALGORITMO AES
De acordo com o site (http://www.youblisher.com, 2011) 9 o algoritmo AES
(Advanced Encryption Standard) surgiu em meados de 1998 e foi criado por Vincent
Rijmen e Joan Daemen, consistindo de uma cifra de blocos baseado em uma rede de

8
Disponível em: <http://daemoniolabs.wordpress.com/2011/09/09/codificacao-base64-em-c/>. Acessado
em: 03/11/2011
9
Disponível em: <http://www.youblisher.com/files/publications/4/20110/pdf.pdf>. Acessado em:
03/11/2011
permutação em blocos de 128, 160, 192, 224, e 256 bits e chaves de 128, 192 e 256 bits,
sendo submetido ao NIST (National Institute of Standards and Technology) com o
objetivo de ser aceito como padrão do governo americano em sucessão ao DES10. Em
2001 ao final do processo de seleção ele foi escolhido entre 12 algoritmos como padrão
usando somente blocos de 128 bits e chaves de 128, 192 e 256 bits.

5. METODOLOGIA
Foram usados nos testes a linguagem PHP5 e o banco de Dados MySQL 5.0.45
rodando localmente com Wamp e também foram feitos testes com hospedagem na web.
Nos testes foram feitas inserções em média escala, na ordem de 100.000 registros em
sequencia e consultas em grande volume e individual. Constatamos que na maioria dos
testes - em se tratando de inserção de dados, o algoritmo ACRC quando usado
individualmente, apresenta uma melhora de desempenho, conseguindo concluir as
operações em tempo menor, chegando em alguns casos a apresentar uma redução de
tempo de cerca de 2 segundos em relação ao processamento dos testes sem usar
criptografia. Já no caso de consultas, se individuais, a diferença de tempo, quando do
uso de dados criptografados ou não, é imperceptível, mas o mesmo já não se pode dizer
quando se tratar de consultas de grandes volumes de dados criptografados, pois neste
caso, o tempo de processamento ficou cerca de 10 segundos acima do tempo gasto para
processar o mesmo volume de informação quando não havia decodificação. Vale
ressaltar que o sigilo da informação deve ser mantido sempre e a criptografia ainda
parece ser a forma mais acessível de garantir esse sigilo, se não do todo, mas ao menos
das informações mais importantes.

6. AMBIENTE DE TESTES E RESULTADOS


Os testes foram feitos em maior escala em máquinas, servidores e bancos locais.
Inicialmente foram feitos testes de inserção de dados no banco utilizando o algoritmo
ACRC individualmente, em seguida foram feitos testes de inserção sem usar
criptografia, depois foram feitos novos testes utilizando o ACRC combinado com o
algoritmo base64 e depois com o algoritmo AES. Em todos os testes de inserção o
ACRC apresentou ótimos resultados em relação aos demais, sendo que até mesmo
combinado especialmente com o AES o ACRC apresentou bons resultados. Os gráficos
representados pelas figuras 2 e 3 mostram alguns resultados desses testes. Na figura 2
temos uma das parciais de testes de inserção de dados sem criptografia, com criptografia
usando o ACRC individualmente e combinado aos Base64 e ao AES, podemos notar
que o ACRC com a mesma quantidade de repetições conseguiu inserir a mesma
quantidade de registros em menos tempo que todas as outras situações, quando

10
Data Encryption Standard – Algoritmo de criptografia criado pela IBM
combinado aos outros algoritmos o resultado é um tempo relativamente maior e com
cerca de 40 registros a menos inseridos no banco, isso inviabilizaria o uso de algoritmos
combinados.

FIGURA 2 – Gráfico com média de resultados de testes usando o algoritmo


ACRC individual e combinado.

Na figura 3 temos outra parcial de testes com a mesma quantidade de repetições,


neste caso percebemos uma maior aproximação nos resultados da inserção dos dados
criptografados com ACRC e da inserção sem criptografia, mas ainda assim, pode se
notar uma leve melhora de desempenho do ACRC, pois é possível inserir a mesma
quantidade de registros, porém em um tempo 01 segundo menor. No caso de algoritmos
alg
combinados o resultado continuar bem abaixo com cerca de 40 registros a menos em
um tempo relativamente maior.

FIGURA 3 – Gráfico com média de resultados de testes usando o algoritmo


ACRC individual e combinado.

A segunda fase de testes foi para verificar o desempenho da aplicação na


consulta ao banco usando ou não informações criptografadas. Nestes testes o resultado
foi um pouco diferente, neste caso, a consulta a dados em média escala, na ordem de
99.999 e 9.999 registros, o tempo foi superior em todas as situações que foram
necessárias decodificações de dados, sendo que ainda assim o ACRC apresentou uma
leve melhora em relação aos outros algoritmos de criptografia, podemos acompanhar
melhor os resultados nos gráficos.

Repare que nos testes com


com consultas e listagens com mais de 99 mil registros a
disparidade entre o tempo para listar os dados com necessidade de decodificação e sem
decodificação é considerável, mas isso não inviabilizaria totalmente o uso da
criptografia, pois veremos adiante que
que listagens menores, da ordem de 9 mil registros
são processadas com diferença de apenas 1 ou 2 segundos.

FIGURA 4 – Gráfico com média de testes de desempenho em consultas ao


banco de dados com informações criptografadas com ACRC e não
criptografadas, trabalhando com mais de 99 mil registros.

Aqui temos os testes com pouco mais de 9 mil registros usando processamento
com e sem decodificação, sendo uma quantidade de registros relativamente grande
podemos perceber uma diferença bem menor no tempo gasto para
para listar, situações assim
são perfeitamente aceitáveis quando o assunto é segurança.
FIGURA 5 – Gráfico com média de testes de desempenho em consultas ao
banco de dados com informações criptografadas com ACRC e não
criptografadas, trabalhando com mais de
d 9 mil registros.

Na figura 6 temos o resultado dos testes com o ACRC combinado com o


BASE64 e aqui já se percebe um tempo um pouco maior, porém, considerado o número
de registros, este tempo ainda estaria dentro do aceitável.

FIGURA 6 – Gráfico com média


média de testes de desempenho em consultas ao
banco de dados com informações criptografadas com ACRC + BASE64 e não
criptografadas, trabalhando com mais de 9 mil registros.

O próximo teste foi feito com pouco menos de 1000 registros usando
criptografia com o ACRC e informações não criptografadas, percebemos aqui que a
diferença de tempo entre as duas situações manteve-se
manteve se em 1 segundo, sendo que a
quantidade de dados retornada ainda é considerável.
FIGURA 7 – Gráfico com média de testes de desempenho em consultas
co ao
banco de dados com informações criptografadas com ACRC e não
criptografadas, trabalhando com mais de 900 registros.

Neste teste podemos perceber que o tempo necessário para processar, bem como
listar as informações usando ACRC + AES ficou muito acima do aceitável, isso
inviabilizaria o uso do ACRC combinado com o AES.

FIGURA 8 – Gráfico com média de testes de desempenho em consultas ao


banco de dados com informações criptografadas com ACRC + AES e não
criptografadas, trabalhando com mais de 9 mil registros.
7. CONCLUSÃO
Depois de muitos testes podemos perceber que o uso elevado de criptografia em
banco de dados, ainda que apresente algumas oscilações de resultados, dependendo do
algoritmo utilizado parece perfeitamente aceitável, pois mesmo com certa variação de
resultados, mais agregada ao algoritmo escolhido do que à criptografia propriamente
dito, não precisamos necessariamente utilizar os algoritmos já existentes, se estes
apresentarem muita perda de performance na aplicação. A criptografia é uma área muito
vasta e para quem se habilita, é possível criar seu próprio algoritmo, o que não garante
100% de proteção, como nenhum garante, mas é um item a mais na segurança e
proteção do sigilo das informações, podendo trabalhar com aplicações locais e web e
apresentar performance e níveis de processamento perfeitamente aceitáveis, é possível
ainda trabalhar com algoritmos combinados, podendo assim aumentar o nível de
segurança da criptografia, desde que essa combinação não comprometa o desempenho
da aplicação. Em muitos testes realizados, a combinação entre o Algoritmo ACRC e o
BASE64 apresentou resultados aceitáveis, o que neste caso, visando garantir mais
segurança seria uma alternativa. Ótimos resultados também apresentou o algoritmo
ACRC quando usado individualmente, este porém é recém-criado e ainda necessita de
mais testes de segurança para consolidar-se, em se tratando de desempenho ele já
mostrou que supera os outros testados neste trabalho.

E por fim, talvez não seja necessário criptografar tudo no banco de dados, mas
será necessário criptografar bem mais do que as senhas dos usuários, pois no banco de
dados há muitas outras informações de relevante grau de importância que como
percebemos no início deste trabalho podem acabar caindo em mãos erradas e com estas
informações criptografadas o acesso ao conteúdo destas seria duplamente dificultado.
8. BIBLIOGRAFIA

PAAR, Christof . PELZL, Jan. Understanding Cryptography: A Textbook for


Students and Practitioners. Germany: Springer, 2010.

GARFINKEL, Simson; SPPAFFORD, Gene. Comércio & Segurança na Web. São


Paulo, Market Press: 1999.

<http://www.latestnews.org/hackers-invade-gawker%E2%80%99s-database/>.
Acessado em: 03/11/2011

<http://polibiobraga.blogspot.com/2011/06/hackers-invadem-banco-de-dados-da.html>.
Acessado em: 03/11/2011

<http://daemoniolabs.wordpress.com/2011/09/09/codificacao-base64-em-c/>. Acessado
em: 03/11/2011

<http://www.youblisher.com/files/publications/4/20110/pdf.pdf>. Acessado em:


03/11/2011

<http://oglobo.globo.com/tecnologia/hacker-acessa-dados-do-exercito-brasileiro-
divulga-informacoes-de-quase-mil-funcionarios-2759303>. Acessado em: 10/11/2011

<http://www.gizmodo.com.br/conteudo/hackers-invadem-banco-de-dados-de-berkeley-
e-roubam-quase-100-mil-identidades/>. Acessado em: 10/11/2011

<http://g1.globo.com/tecnologia/noticia/2011/05/banco-de-dados-da-honda-canada-e-
invadido-e-vaza-283-mil-registros.html>. Acessado em: 10/11/2011

Você também pode gostar