Partilha segura de ficheiros disponibilizados livremente na Internet Nuno Matias, António Pinto Resumo As plataformas baseadas na nuvem (ou cloud computing) pressupõem a disponibilidade de informação, serviços e recursos independentemente do local. Um requisito comum destes ambientes consiste na capacidade dos seus utilizadores acederem aos serviços, independentemente da sua localização. Tal requisito acarreta novas considerações de segurança, já que os utilizadores poderão utilizar PCs sobre os quais não têm completa confiança para consultar ou enviar documentos. A inovação prende-se então com a garantia de confidencialidade, recorrendo-se para tal à técnica de Proxy encription, em operações de livre partilha de documentos na Internet. 1 Introdução As plataformas baseadas na nuvem (ou cloud computing) pressupõem a disponibilidade de informação, serviços e recursos independentemente do local. Tal facilita o acesso a aplicações e informação, mas requer novas considerações de segurança, nomeadamente no que diz respeito à confidencialidade dos documentos colocados pelos utilizadores em tais plataformas. Assim sendo, é crucial desenvolver técnicas que permitam aos utilizadores terem a confiança necessária para disponibilizarem documentos confidenciais na nuvem, já que tal disponibilização vai permitir o seu acesso independentemente da localização. Neste sentido, de forma a incentivar a troca de informação segura, entre dois quaisquer indivı́duos, sem terem a necessidade de confiar na entidade que gere a plataforma de armazenamento online, propõe-se um serviço que, confiando Nuno Matias CIICESI, ESTGF-IPP, Portugal, e-mail: [email protected] António Pinto CIICESI, ESTGF-IPP, Portugal, e-mail: [email protected] 1 2 Nuno Matias, António Pinto apenas numa única entidade, permite disponibilizar, de forma segura e confidencial, documentos a qualquer outro indivı́duo. Sem, no entanto, exigir que os documentos partilhados sejam armazenados no servidor de partilha, podendo mesmo ser armazenados em qualquer outro local na web. A técnica utilizada para garantir a segurança dos documentos denomina-se de proxy encription. Proxy encription consiste em transformar informação cifrada com uma chave A, em informação cifrada com uma chave B, sem se recorrer à informação não cifrada, nem à chave A. Desta forma, com a aplicação da técnica de proxy encription ao serviço de cloud computing permite-se garantir a segurança, autenticidade e integridade da informação que será disponibilizada na nuvem. Existem neste momento soluções de cifra como o TrueCrypt. Esta solução consiste na cifra do filesystem armazenado na cloud mas não garante a partilha de informação confidencial entre utilizadores. Este artigo encontra-se organizado por secções. A secção 2 descreve o funcionamento da técnica de proxy encription, bem como os conceitos associados. A secção 3 apresenta a solução proposta, enumerando os seus objectivos e identificando os seu requisitos. A secção 4 apresenta os resultados já obtidos. A secção 5 apresenta as conclusões deste trabalho. 2 Proxy Encription A criptografia abrange a cifra de documentos através da aplicação de algoritmos para que os dados se tornem ilegı́veis, sendo que para os conseguir decifrar é preciso conhecer o respectivo algoritmo e a respectiva chave [4]. As propriedades de segurança da criptografia baseia-se em: • confidencialidade: garantir que apenas as pessoas autorizadas consigam aceder aos respectivos dados; • integridade: o destinatário deverá ser capaz de determinar se a mensagem foi alterada durante a transmissão; • autenticidade: o destinatário deverá ser capaz de identificar o remetente, validando se foi o mesmo que enviou a mensagem ou não; Existem dois grandes tipos de criptografia, a criptografia simétrica e a criptografia assimétrica. A primeira baseia-se na cifra de um ou mais documentos envolvendo apenas uma chave que as pessoas envolvidas necessitam conhecer. Aqui, um utilizador A cifra um documento M com uma determinada chave Z. Para que um outro utilizador B decifre o documento M, necessita obrigatoriamente de conhecer a chave Z e o algoritmo de cifra. No caso da criptografia assimétrica, a cada utilizador é atribuı́do um par de chaves: chave pública e chave privada. A chaves públicas são conhecida por todos, enquanto que cada chave privada só é do conhecimento do seu utilizador. Aqui, um documento M cifrado com a chave pública de um utilizador A, só pode ser decifrado com chave privada do utilizador A. Partilha segura de ficheiros disponibilizados livremente na Internet 3 Proxy encription foi introduzido pela primeira vez por Blaze, Bleumer e Strauss, em 1998 [1]. Esta técnica consiste em transformar um bloco de dados cifrado com chave A, noutro bloco de dados cifrado, com chave B, sem ter acesso às chaves de decifra nem ao bloco de dados decifrado [3]. Esta técnica assenta em criptografia assimétrica onde, uma mensagem m cifrada com a chave pública de A (PKA ), só pode ser decifrada com a chave privada de A. Assim, m = [{m}PKA ]SKA Onde: • m representa a mensagem m; • {m}PKA representa a mensagem m cifrada com a chave pública de A; • [{m}PKA ]SKA representa a mensagem m cifrada com a chave pública de A, a seguir decifrada com a chave privada de A; Se a mensagem m for cifrada com a chave publica de A, obtém-se {m}PKA , sendo este resultado cifrado com uma CKAB (proxy key de A para B), obtém-se a mensagem m cifrada com a chave pública de B, Assim, {{m}PKA }CKAB = {m}PKB Onde: • {{m}PKA }CKAB , representa a mensagem m cifrada com a chave pública de A, a seguir cifrada pela Proxy Key de A para B (CKAB ); • {m}PKB , representa a mensagem m cifrada com a chave pública de B; Tal é verdade, desde que: CKAB = PKA − PKB Uma insuficiência do proxy encription pode desde já ser identificada, sendo esta a associada à reversibilidade das operações de soma. Ou seja, se um utilizador souber CKAB e PKA , facilmente chega à PKB ou, se souber CKAB e PKB , facilmente chega à PKA [2]. 3 Proposta de solução A proposta de solução é caracterizada por garantir a confidencialidade de documentos disponibilizados livremente na Internet sem requerer o estabelecimento de relações de confiança com serviços de armazenamento online. Requer, no entanto, que se estabeleça uma relação de confiança com o o fornecedor do serviço agora proposto. 4 Nuno Matias, António Pinto A cifra assimétrica de documentos requer a existência ou geração de um par de chaves (chave pública, chave privada). O par de chaves gerado será então utilizado para a cifra e decifra dos documentos, sendo que, quando se pretende enviar um documento para um determinado utilizador serão utilizadas as chaves privadas de ambos. O documento será inicialmente cifrado com a chave publica do utilizador A, e depois cifrado novamente com a diferença da chave publica de A com a de B. Resultando no equivalente ao documento cifrado com a chave pública de B, apenas passı́vel de decifra com a chave privada de B. O serviço contará ainda com um interface web, que irá permitir agilizar todo o processo. A seguinte lista de requisitos funcionais da presente proposta de solução compreendem então: 1. 2. 3. 4. 5. Disponibilização sob a forma serviço ou sı́tio web. Utilização de armazenamento próprio ou externo de documentos, Registo de utilizadores. Pesquisa de utilizadores. Estabelecimento de relação de confiança com o fornecedor do serviço. Após o registo de um utilizador no sitio web do serviço, será criada uma pasta pessoal de armazenamento de ficheiros e se o utilizador ainda não possuir um par de chaves (pública/privada), será gerado o seu par. Os utilizadores registados poderão pesquisar por outros utilizadores. Após a selecção de um destinatário e de um documento a partilhar entre ambos, será iniciado o processo de cifra e conversão do documento. Figura 1 Processo de cifra e conversão por proxy encryption O processo de cifra e conversão, demonstrado na Figura 1, caracteriza-se por, primeiramente, cifrar o documento com a chave pública do utilizador A, PKA 1 . Posteriormente, será gerada uma nova chave, com a diferença entre a chave pública de A com a chave pública do destinatário, CKAB . Assim, garante-se, que o documento 1 Este primeiro passo é opcional, pois os documentos poderão ser disponibilizados pelo utilizador como já cifrados Partilha segura de ficheiros disponibilizados livremente na Internet 5 se encontra cifrado com CKAB e PKA e que somente estas duas pessoas poderão decifrar o respectivo documento. O documento final, a armazenar na nuvem, pode ser descrito como: {m}PKB = {{m}PKA }CKAB Onde m representa o documento não cifrado, e: PKB = PKA −CKAB Ao utilizador destinatário, quando este decidir aceder ao conteúdo, compete apenas a sua decifra com a sua chave privada. Tendo em vista o aumento da confiança dos utilizadores no serviço, prevê-se ainda a possibilidade de refrescamento periódico dos pares de chaves dos vários utilizadores, bem como a conversão dos documentos já cifrados para que possam ser acedidos com as nova chaves. 4 Resultados A cifra assimétrica, tipicamente, requer uma quantidade significativa de poder de computação. Muito embora a cifra em tempo real não seja propósito da solução proposta, convém quantificar a necessidade de poder de computação, em minutos, requerida pelo algoritmo de cifra adoptado (El Gamal). Foram considerados vários tamanhos de chaves e de ficheiros. O gráfico da figura 2 apresenta, em minutos, o custo computacional das operações de cifra assimétrica pra vários tamanhos de chaves (512, 1024, 1536 e 2048) e para vários tamanhos de ficheiros. Como podemos observar à medida que se aumenta o tamanho do ficheiro o tempo computacional aumenta significativamente. Assim, para cifrar um ficheiro de 1MB demora cerca de 2,1 minutos para uma chave de 512 bits; para uma chave de 1024 bits demora cerca de 6,82 bits; para uma chave de 1536 bits demora cerca de 12,32 minutos; e para uma chave de 2048 bits demora cerca de 21,52 minutos. Conseguimos ainda observar, que no caso dos ficheiros de 4MB para uma chave de 1024 bits demora cerca de 23,93 minutos e para uma chave de 2048 bits demora cerca de 82,52 minutos, isto é, três vezes mais em termos de performance. O gráfico da figura 3 permite analisar os tempos de decifra relativos aos tempos de cifra observados na figura2. É possı́vel observar que para decifrar um ficheiro de 1MB demora cerca de 1,3 minutos para uma chave de 512 bits; para uma chave de 1024 bits demora cerca de 4,2 minutos; para uma chave de 1536 bits demora cerca de 8,02 minutos; e para uma chave de 2048 bits demora cerca de 12,88 minutos. Comparando com um ficheiro de 4MB, observa-se que para uma chave de 1024 bits demora cerca de 14,65 minutos a decifrar e para uma chave de 2048 bits demora cerca de 56,5 minutos. Com estes resultados podemos concluir que os algoritmos de criptografia assimétrica requerem um grande poder computacional e que demoram muito mais a 6 Nuno Matias, António Pinto 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0 512 Bits 1024 Bits 1536 Bits 2048 Bits 100KB 300KB 500KB 800KB 1MB 2MB 3MB 4MB Figura 2 Tempo necessário, em minutos, para operações de cifra para vários tamanhos de chave e de ficheiro 90 85 80 75 70 65 60 55 50 45 40 35 30 25 20 15 10 5 0 512 Bits 1024 Bits 1536 Bits 2048 bits 100KB 300KB 500KB 800KB 1MB 2MB 3MB 4MB Figura 3 Tempo necessário, em minutos, para operações de decifra para vários tamanhos de chave e de ficheiro Partilha segura de ficheiros disponibilizados livremente na Internet 7 realizar a cifra de documentos do que a decifra dos mesmos, como facilmente se conclui com a análise dos gráficos das figuras 2 e 3. De assinalar que estes tempos foram calculados sem a utilização da técnica de proxy encription, devido ao facto de a mesma, ainda se encontrar em fase de testes. 5 Conclusão A solução proposta permite adicionar uma maior segurança a operações de armazenamento e partilha de informação através da web, e em particular, quando se usam serviços de armazenamento baseados em cloud computing. A necessidade deste tipo de serviços possibilita a troca de documentos seguros em várias situações do quotidiano. Nomeadamente, quando a um indivı́duo que se encontra em férias, lhe é solicitado que envie documentos confidenciais para outro elemento da instituição. Aqui é necessário garantir que os documentos enviados apenas possam ser visualizados pelo destinatário e no seu formato original. Tal é possı́vel através da cifra do documento e somente a pessoa de destino possuirá a chave para realizar a respectiva decifra. Assim, se o documento for interceptado durante a troca de informação não poderá ser visualizado. Através do serviço proposto, é permitido aos utilizadores além da cifra e decifra dos documentos, o armazenamento e gestão da sua informação de forma segura, podendo ainda realizar igualmente a gestão das suas chaves, pública e privada. A técnica de proxy encription pode então garantir uma maior segurança e tranquilidade em cenários de disponibilização ou partilha de documentos confidenciais na web. Referências 1. M. Blaze and M. Strauss. Atomic proxy cryptography. Feb 1998. 2. K. Chen C. Huang, Y. Chiu and C. Lei. Secure multicast in dynamic environments, Computer Networks: The International Journal of Computer and Telecommunications Networking, pp. 2805–2817. 3. A. Ivan and Y. Dodis. Proxy cryptography revisited, Proceedings of the Network and Distributed System Security Symposium (NDSS). February 2003. 4. R. Mukherjee and J. Atwood. Proxy encryptions for secure multicast key management, Local Computer Networks, 2003. LCN-03, Proceedings, 28th Annual IEEE International Conference on, pp. 377-384. 2003.