Verificação pública e armazenamento seguro de dados dinâmicos em computação nas nuvens Humberto Gustavo de Melol1, Prof. Dr. João Nunes de Souza1 1 Programa de pós-graduação em ciência da computação Universidade Federal de Uberlândia (UF) Uberlândia – MG – Brasil [email protected], [email protected] Nível: Mestrado Data de Ingresso: 03/2009 Previsão defesa: Agosto 2011 Resumo. Com a disseminação e a popularização da internet, cada vez mais pessoas e empresas estão utilizando os serviços oferecidos no ambiente da computação nas nuvens. Diante desse cenário, o objetivo principal desse artigo é prover mecanismos de seguranças mais eficazes e eficientes. A contribuição desse trabalho visa propor um modelo de verificação pública e ferramentas de manipulação e armazenamento em banco de dados cifrados nesses ambientes. Palavras-chave: Banco de dados, Criptografia, Computação nas nuvens. 1. Caracterização do problema Com a grande disseminação e a crescente evolução das tecnologias de armazenamento, comunicação e internet, muitas empresas e clientes tem procurado cada vez mais na computação nas nuvens uma solução mais eficaz e barata para seus negócios. Nessa arquitetura os softwares de aplicação e os bancos de dados estão armazenados em grandes data centers, onde existe uma grande estrutura física própria e adequada para armazenamento e segurança física do local. Esse tipo de arquitetura traz muitas vantagens com relação à portabilidade, mobilidade, além de um custo menor de aquisição e manutenção de arquitetura e infra-estrutura de TI, principalmente no caso das grandes empresas que possuem filiais geograficamente distantes. Com o avanço e a popularização desses serviços, o custo armazenamento nos data centers, os preços dos computadores, banda de internet e os softwares de serviços tendem a cair. Porém esse paradigma apresenta diversos desafios de segurança, e um dos maiores problemas enfrentados é a garantia da integridade das informações armazenadas nas nuvens contra possíveis ataques e principalmente aos administradores dos sistemas de banco de dados e servidores dos data centers. Esse trabalho propõe um esquema de verificação pública para garantir a integridade e a segurança no armazenamento das informações nas nuvens, além de criar um mecanismo para consultar banco de dados cifrados nas nuvens sem a necessidade de decifrar os dados no servidor. 2. Fundamentação teórica 2.1 Criptografia Criptografia vem do grego Kryptos=escondido e gráphein=grafia, seu principal objetivo é possibilitar que duas partes possam se comunicar de forma segura através de um canal de comunicação geralmente inseguro. Uma mensagem que será enviada por um remetente a um destinatário é comumente chamada de texto claro, sobre essa mensagem é aplicado uma técnica de cifragem, após a aplicação dessa técnica é obtido um texto cifrado de forma que seja inteligível a qualquer estranho que interceptar a mensagem. Esse texto cifrado é então enviado para o destinatário que por sua vez irá decodificar e ler a mensagem com clareza, esse processo é chamado comumente de decifragem. Esses processos utilizam as chaves que são componentes fundamentais que interagem com os algoritmos que são públicos. Existem dois tipos de criptografia em relação às chaves: simétrica e assimétrica. Quando o destinatário e o remetente utilizam a mesma chave para cifragem e decifragem, é chamado de criptografia de chave simétrica. Esse tipo é geralmente utilizado para cifragem de grandes massas de dados, devido ao seu bom desempenho de processamento. O outro tipo de criptografia é o de chave pública. Nesse sistema é utilizado um par de chaves chamadas de pública e privada, sendo que uma é utilizada para cifrar e outra para decifrar. Esse esquema é utilizado para cifragem de pequenas quantidades de dados, pois o seu desempenho é menor em relação ao sistema de chave simétrica. 2.2. Assinaturas Digitais São técnicas de criptografia assimétrica que permitem provar de forma única que a mensagem enviada ao destinatário veio do emissor. Esse esquema possui três propriedades: • Autenticidade: Confirmação de que a assinatura foi realizada pelo emissor; • Integridade: Qualquer alteração na mensagem faz com que a assinatura não corresponda ao emissor; • Não repúdio: O emissor não pode negar a autenticidade da mensagem. 2.3. Funções de Hash São técnicas matemáticas que transformam uma grande quantidade de informação de entrada em uma pequena quantidade de informação na saída, com o objetivo de identificar uma informação de forma única. O Hash tem como principais propriedades: • Ser unidirecional: Ou seja, a partir de um código de Hash é impossível encontrar o texto original; • Resistente a colisões: Não deve existir um par de textos com o mesmo código de Hash. As técnicas de Hash são muito utilizadas na verificação da integridade de informações. 3. Caracterização de Contribuição As contribuições pretendidas por este trabalho são as definições de um modelo de segurança visando à verificação pública dos dados armazenados na nuvem. Outra contribuição importante do nosso trabalho será acrescentar no esquema proposto em [2] um modelo que visa tratar também os dados privados, utilizando um sistema de cifragem sobre uma base de dados e criar mecanismos para consultar e manipular esses dados de formar cifrada, ou seja, sem a necessidade de decifrá-los no servidor, possibilitando assim uma maior segurança no contexto de armazenamento na nuvem, protegendo essas informações principalmente dos administradores dos servidores e os bancos de dados dos data centers. 4. Estado atual do trabalho Estão em andamento as seguintes atividades: • Levantamento bibliográfico; • Estudo teórico sobre criptografia; • Estudo comparativo das linguagens de programação e SGBD que serão utilizados no desenvolvimento do sistema; 5. Trabalhos relacionados Uma abordagem de verificação pública é proposta em [2]. Nesta abordagem é feito a implementação de um modelo de verificação pública somente sobre dados não cifrados utilizando assinaturas BLS e o conceito de emparelhamento bilinear. Os autores atingiram os objetivos nesse contexto. Nossa abordagem difere desse trabalho no fato de aplicar essa verificação sobre bancos de dados cifrados, além da manipulação e armazenamento dessas informações. Na abordagem [3] é proposto um esquema de execução SQL sobre banco de dados cifrados, utilizando funções de mapeamento e meta dados. Esses mecanismos são muito importantes no auxilio a consultas em bancos de dados cifrados sem a necessidade de decifrá-los no servidor. 6. Resultados esperados Com a crescente procura e demanda de serviços na computação nas nuvens, esperamos com esse trabalho desenvolver um mecanismo capaz de satisfazer todas as condições de segurança necessárias para tornar o ambiente mais seguro de se utilizar. Para validação do trabalho será desenvolvido um estudo de caso envolvendo uma aplicação no qual irá permitir consultas e manipulação dos dados armazenados em um banco de dados cifrado, sem a necessidade de decifrar os dados no servidor. Será necessário também testar os mecanismos de verificação pública das informações armazenadas nas nuvens. 7. Referências [1] Stinson, Douglas R. (2006), Cryptography Theory and Practice, Chapman & Hall/CRC, 3rd edition. [2] Wang, Qian, Wang, Cong, Li, Jin, Ren, Kui, Lou, Wenjing (2009), “Enabling Public Verificability and Data Dynamics for Storage Security in Cloud Computing”, Cryptology ePrint Archive, Report 2009. [3] Hacigumus, Hakan, Lyer, Bala, Li, Chen, Mehrotra, Sharad (2002), “Executing SQL over Encrypted Data in Database-Service-Provider Model”. Technical Report TRDB-0202, Database research Group at University of California, Irvine 2002.