XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014 Armazenamento Distribuído de Dados Seguros para Efeito de Sistemas de Identificação Civil Renata Jordão, Valério Aymoré Martins, Fábio Buiati, Flávio Elias de Deus, Rafael Timóteo de Sousa Júnior Departamento de Engenharia Elétrica, Universidade de Brasília Campus Universitário Darcy Ribeiro, Asa Norte, 70910-900, Brasília, DF, Brasil {renata.jordao, fabio.buiati}@redes.unb.br, {valeriomartins, flavioelias, desousa}@unb.br Abstract: In order to prevent the invasion and discovery of sensitive data, a new approach is presented to protect the confidentiality of data even when the attackers have access to all data from the server: using systems that perform queries and inserts on encrypted data without the decryption key. The model set is applied in a real scenario: a distributed system hosted by Google (EBQ Encrypted BigQuery), which includes the use of encryption in data stored in non-relational databases for massive data processing. As a result, it´s shown that these systems support a variety of applications with low overhead. Resumo: Com o intuito de impedir a invasão e a descoberta de dados sigilosos em sistemas de identificação, uma nova abordagem é apresentada para proteger a confidencialidade dos dados, mesmo quando os atacantes têm acesso aos dados do servidor, utilizando sistemas que realizam consultas em dados criptografados sem acesso à chave de decodificação. O modelo proposto é aplicado em um cenário real: um sistema distribuído hospedado pelo Google (EBQ - Encrypted BigQuery), que abarca o uso de criptografia em dados que são armazenados em bancos de dados não-relacionais (NoSQL) desenvolvidos para o tratamento massivo de dados. Os resultados indicam a possibilidade de uso do modelo em uma variedade de aplicações com baixo custo operacional. 1 Introdução Atualmente, o cuidado com a criação e a manutenção de ambientes seguros é uma atividade fundamental de administradores de sistemas, visto que a maioria dos ataques relatados de roubos de informações e acessos não autorizados é feita diretamente na origem dos dados (UNISYS, 2014) – seja pelo acesso aos seus bancos de dados por pessoas pertencentes à organização, ou seja pela falta de mecanismos que evitam a leitura direta das bases de dados remotamente por terceiros. É, então, proposta deste trabalho a implementação de armazenamento distribuído de dados seguros para ambientes nos quais haja risco de acesso direto ao dado ou de uso do SGBD por outros acessos não autorizados. O objetivo desta proposta é garantir confidencialidade e integridade aos dados hospedados em bancos de dados de sistemas com conteúdo sigiloso, a partir de modelos criptográficos ajustáveis aos campos das tabelas, o que permite operações de consultas diretamente nos dados cifrados. O modelo éavaliado em um cenário real: um sistema hospedado pelo Google EBQ. 501 c 2014 SBC — Soc. Bras. de Computação XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014 2. Armazenamento e processamento de dados massivos 2.1. Armazenamento de dados massivos baseados em NoSQL O grande volume de dados gerado por aplicações Web tem contribuído para o surgimento de novos paradigmas e tecnologias. Nesse contexto, uma nova categoria de banco de dados, chamada NoSQL (Not Only SQL), foi proposta com o objetivo de atender aos requisitos de gerenciamento de grandes volumes de dados. Essa categoria quebra o paradigma ACID (CATTEL, 2011) e são agrupados em quatro tipos básicos, a saber: • Chave-valor (Key-Value Stores): modelo simples que permite a visualização do banco de dados como uma grande tabela hash. • Orientado a colunas (BigTable-style Databases): armazenador que teve como referência o modelo BigTable do Google e que, dentre suas características, podemos destacar o particionamento dos dados com forte consistência dos mesmos. • Orientado a documentos (Document Databases): armazena coleções de documentos, ou seja, objetos com identificadores únicos e um conjunto de campos (documentos aninhados), assemelhando-se ao modelo chave-valor; porém cada documento tem um conjunto de campos-chaves e os valores desses campos. • Orientado a grafos (Graph Databases): possui três componentes básicos (nós, relacionamentos, propriedades) que permitem que o SGBD possa ser visto como um multigrafo rotulado e direcionado, em que cada par de nós pode ser conectado por mais de uma aresta. 2.2. Processamento de dados massivos Hadoop foi desenvolvido para ser executado em um grande número de máquinas que não compartem memória nem discos, no qual o HDFS (Hadoop Distributed File System)éo sistema de arquivos distribuídos. Os dados são divididos em blocos que se propagam em diferentes servidores. Assim, os dados armazenados em um servidor– que, porventura, se desconecta ou morre– podem ser recuperados a partir de uma cópia conhecida. Para o processamento de dados, o Hadoop implementa mecanismos que executam tarefas em paralelo - o MapReduce - um framework computacional para processamento paralelo em sistemas distribuídos. São suas funções: • Map: recebe uma lista como entrada; aplica uma função em que os blocos do sistema de arquivos distribuídos podem ser processados em paralelo; gera uma nova lista como saída, normalmente outros pares chave/valor. • Shuffle: responsável por organizar o retorno da função Map, atribuindo para a entrada de cada Reduce todos os valores associados a uma mesma chave. • Reduce: recebe o resultado da função Map como entrada; aplica uma função para que a entrada seja reduzida a um único valor na saída. É alvo deste trabalho o modelo de armazenadores NoSQL orientados a colunas com funções de MapReduce implementado pela Google: o BigQuery/Dremel. BigQuery é a implementação externa da ferramenta Dremel, usada pelo Google para serviço de consulta em grandes conjuntos de dados, usando uma arquitetura de processamento paralelo e orientação a colunas, o que dá ganhos significativos de E/S, pois não é lido todo o registro para cada consulta. 502 c 2014 SBC — Soc. Bras. de Computação XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014 3. Proposta de Armazenamento de Dados Seguros SONG et al. (2000) descrevem esquemas criptográficos para efetuar uma busca por palavras-chave em dados cifrados usando um servidor inseguro. Boneh & Waters (2007) apresentam um modelo com esquemas de chaves públicas para comparação, checagem de subconjuntos e consultas de conjunção em dados cifrados. Esses esquemas têm cifras de tamanho exponencial em relação ao texto em claro, limitando a sua aplicação prática. Das implementações existentes, o CryptDB (POPA et al., 2011) é um sistema que provê confidencialidade para aplicações baseadas em bancos de dados SQL, utilizando um proxy para a interceptação das consultas vindas do cliente, cifrando toda a comunicação. Boneh et al. (2013) apresentam o Cipherbase: um sistema de banco de dados SQL que permite às organizações utilizar as vantagens da computação em nuvem mantendo a confidencialidade dos dados sensíveis. Neste trabalho emprega-se a implementação de segurança em modelos de armazenamento orientado a colunas BigQuery da Google, que provê uma interface de acesso criptografado, o EBQ - uma interface que permite a cifragem dos dados, por parte do cliente, seguida do seu carregamento (upload) (TIGANI; NAIDU, 2014). O EBQ inclui um campo extra (encrypt) ao armazenamento tradicional, que determina os tipos de esquemas criptográficos que serão usados em cada coluna. Todo o acesso ao dado armazenado se dá de forma distribuída pela integração da solução com o framework Hadoop no Google BigQuery junto à plataforma de armazenamento (Figura 1). Figura 1. Arquitetura EBQ. Assim, a consulta de dados criptografados utiliza, para cada tipo de criptografia definido, um conjunto de criptossistemas que trate esses dados adequadamente, sem a perda de confidencialidade (Goldreich, 2009). São esses: • Algoritmo probabilístico: a cifra é dita probabilística quando para valores diferentes existirem cifras diferentes com grande probabilidade (KAUFMAN et al., 2002). Apesar de garantir confidencialidade e integridade, não é possível realizar manipulações com os dados cifrados, exceto o comando SELECT. • Algoritmo determinístico: O modelo de criptografia é dito determinístico quando é gerada a mesma cifra para a mesma mensagem em claro. Esse esquema permite a realização de consultas de igualdade, isto é, pode realizar o comando SELECT com predicados de igualdade, junções de igualdade, COUNT (POPA et al., 2011). ವ Busca por palavras: nesse esquema é calculada a função hash de todas as sequências possíveis de palavras. Em seguida, os hashes são mantidos em um campo 503 c 2014 SBC — Soc. Bras. de Computação XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014 e separados por espaços; e asim pode ser usada uma cláusula WHERE com checagem de conteúdo (CONTAINS) com palavras-chaves inteiras, mas não aparece em consultas SELECT simples. ವ Busca probabilística por palavras: consiste em buscar uma palavra com o retorno de todas as posições em que ela aparece no texto em claro (SONG et. al, 2000). Permite consultas com o uso da cláusula WHERE e atributo CONTAINS ou LIKE. • Criptografia homomórfica: criptografia que permite lidar com tipos específicos de cálculos em cifras e gerar um resultado também cifrado que, quando decifrado, corresponde ao resultado de operações realizadas em textos em claro (Gentry, 2009). A Tabela 1 apresenta um resumo desses modelos. Tabela 1. Resumo dos Esquemas Criptográficos Existentes no EBQ. 4. Análises e Resultados Foi aplicado modelos criptográficos que atendessem todos os tipos criptográficos em estudo, avaliando o desempenho e o custo operacional adicionados por cada criptossistema quando aplicado em um sistema distribuído de armazenamento massivo de dados orientado a colunas suportado do EBQ sobre o Google BigQuery. Para análises de desempenho e overhead foi utilizado um ambiente com um computador com processador core I5 1,8GHz, 6GB de RAM e Linux Ubuntu 14.04; executando a ferramenta EBQ conectada ao Google BigQuery. O EBQ foi executado por meio de uma ferramenta baseada em Python, que acessa BigQuery usando a linha de comando. Foi utilizado um esquema orientado a colunas, tendo como tema um cadastro pessoal que possui um número de identificação e diversas famílias de colunas, aonde um tipo de criptografia foi escolhido para cada coluna de forma a permitir a análise de sua influência no desempenho da consulta. Foi realizada a inserção com dois volumes de entrada (5000 e 50000 registros) para a análise do impacto do volume de dados criptografados em relação ao tempo de resposta. 4.1. Realização das Consultas Para suporte a análise foi realizada uma série consultas SQL com atributos e resultados diversos tendo em vista a avaliação da viabilidade da aplicação dos criptossistemas em grandes volumes de dados. Destacam-se: (a) Consultas simples sobre cada atributo de cada família de colunas; (b) Consultas com cláusula WHERE com atributo de igualdade para teste da cifra determinística; (c) Consultas com cláusula WHERE com a condição CONTAINS para teste da cifra de busca probabilística por palavras; (d) Consultas com cláusula WHERE e testes com operações algébricas para teste de cifragem homomórfica; (e) Consultas com soma de duas colunas cifradas com criptografia homomórfica. 504 c 2014 SBC — Soc. Bras. de Computação XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014 4.2. Avaliação dos Resultados Foi avaliado o tempo de resposta de cada consulta EBQ, usando como comparação uma tabela sem criptografia com os mesmos registros. Cada processo de consulta foi repetido 50 vezes, de forma a obter um tempo médio, uma vez que a maior parte do processamento érealizada nos servidores do Google em um ambiente não-controlado em que não se pode garantir a expectativa de execução correta e homogênea. Da Figura 4, verifica-se que as consultas EBQ acrescentam um atraso ao tempo de resposta, devido ao volume de dados que os esquemas criptográficos inserem. A consulta simples apresenta valores altos, visto que requisitou uma coluna de cada família de colunas. Observa-se também que a consulta de soma homomórfica gera um tempo de resposta grande em relação à consulta sem criptografia, devido ao tempo de processamento da soma das cifras agregado ao tempo de decodificação do resultado na máquina do cliente. Mesmo que o volume de dados aumente pelo processo criptográfico, esse aumento não prejudica a eficiência nem a velocidade de consultas dinâmicas. Figura 4. Tempo médio (em segundos) gasto em consultas – 5000 registros. A mesma consulta foi realizada com volume de 50000 registros (Figura 5) aonde observase que, mesmo aumentando a quantidade de dados, a margem de atraso permanece aparentemente controlada, confirmando essa afirmação, apresentando a performance obtida com o número de registros aumentado em 10 vezes o seu carregamento original. Os atrasos encontrados são pequenos, se comparados com o tamanho da tabela gerada. Novamente, observa-se que as consultas mais demoradas são aquelas que envolvem a leitura de diferentes famílias de colunas e aquelas que realizam operações em cifras homomórficas, que requerem processamento extra, devido à extensão de sua cifra. Figura 5. Tempo médio (em segundos) gasto em consultas – 50000 registros. 505 c 2014 SBC — Soc. Bras. de Computação XIV Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais — SBSeg 2014 Verifica-se, portanto, que a aplicação de consultas diretas sobre grandes volumes de dados criptografados armazenados em ambiente distribuídos– como éo caso do EBQ– adiciona um atraso ao intervalo de resposta. Porém, à medida que o volume de dados cresce, essa variação se estabiliza. 5. Conclusões e trabalhos futuros Os resultados apresentados permitem identificar que a utilização de criptografia em grandes volumes de dados agrega alguma carga de dados e atraso ao tempo de resposta às pesquisas, porém esse gasto extra de tempo e de memória não se torna tão relevante, levando em conta a velocidade com que as operações são efetuadas. Como proposta de trabalhos futuros é sugerida a inserção de uma gama maior de atributos de consultas, como GROUP BY e DISTINCT, assim como a realização de consultas com parâmetros de diferentes famílias de colunas. Além disso, seria interessante a implementação de um servidor seguro de gerenciamento de chaves, permitindo que a configuração de multiusuários acesse os dados criptografados. Agradecimentos Este trabalho conta com apoio do Ministério da Justiça, do Ministério do Planejamento, Orçamento e Gestão, da FINEP (Convênio 01.12.0555.00 RENASIC/PROTO), da Fundação de Apoio à Pesquisa do Distrito Federal (FAP-DF) e do Programa Nacional de Pós-Doutorado/CAPES in Brazil (PNPD/CAPES). Referências Arasu, A., Blanas, S., Eguro, K., Kaushik, R., Kossmann, D., Ramamurthy, R., & Venkatesan, R. (2013). Orthogonal Security with Cipherbase. In CIDR. Boneh, D., & Waters, B. (2007). Conjunctive, subset, and range queries on encrypted data. In Theory of cryptography (pp. 535-554). Springer Berlin Heidelberg. Gentry, C. (2009). A fully homomorphic encryption scheme. PhD. Stanford University. Goldreich, O. (2009). Foundations of Cryptography: vol. 2. Cambridge University Press. Kaufman, C., Perlman, R; Speciner, M. (2002). Network Security: Private Communication in a Public World. Editora: Prentice Hall, 2nd Edition. Paillier, P. (1999). Public-key cryptosystems based on composite degree residousity classes. In Advanced in cryptology – EUROCRYPT’99. Springer Berlin Heidelberg. Popa, R. A., Redfield, C., Zeldovich, N., & Balakrishnan, H. (2011). Cryptdb: protecting confidentiality with encrypted query processing. In Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles (pp. 85-100). ACM. Song, D. X., Wagner, D., & Perrig, A. (2000). Practical techniques for searches on encrypted data. In Security and Privacy, 2000. S&P 2000. Proceedings. 2000 IEEE Symposium on (pp. 44-55). IEEE. Tigani, J., & Naidu, S. (2014). Google BigQuery Analytics. Editora: John Wiley & Sons. 1st Edition. Unisys. (2014). Critical Infrastructure: Security Preparedness and Maturity. Independently conducted by Ponemon Institute LLC. 506 c 2014 SBC — Soc. Bras. de Computação