ANDRÉ LUIZ CARDOSO GERÊNCIA DE CERTIFICADOS DIGITAIS EM DISPOSITIVOS MÓVEIS Florianópolis 2006 ANDRÉ LUIZ CARDOSO GERÊNCIA DE CERTIFICADOS DIGITAIS EM DISPOSITIVOS MÓVEIS Trabalho final da disciplina de Pesquisa Bibliográfica ministrada por Luciane Paula Vital no curso de Ciências da Computação, Departamento de Informática e Estatística, Centro Tecnológico, Universidade Federal de Santa Catarina. Florianópolis 2006 RESUMO A necessidade de tecnologias de criptografia no desenvolvimento de sistemas seguros para dispositivos móveis é um fato comprovado. A possibilidade de se utilizar tecnologias como criptografia de chaves públicas, assinatura digital e demais aplicações de certificados digitais nestes sistemas, motiva o desenvolvimento de uma aplicação que gerencie certificados digitais em dispositivos móveis. Este trabalho propõe o desenvolvimento de uma aplicação capaz de rodar na plataforma Java ME, para a instalação, remoção e gerência de certificados digitais, provendo assim, uma aplicação base para disponibilizar um nível de segurança elevado à aplicações pertinentes aos dispositivos móveis. SUMÁRIO SUMÁRIO .................................................................................................................................. 4 1 INTRODUÇÃO .............................................................................................................. 5 1.1 Problema ..................................................................................................................... 5 1.2 Objetivos..................................................................................................................... 6 1.1.1 Objetivos Gerais ............................................................................................................. 6 1.1.2 Objetivos Específicos ...................................................................................................... 6 1.3 Justificativa ................................................................................................................. 7 2 FUNDAMENTAÇÃO TEÓRICA ................................................................................. 8 2.1 Criptografia................................................................................................................. 8 2.2 Criptografia Simétrica ................................................................................................ 9 2.3 Criptografia Assimétrica........................................................................................... 10 2.4 Rede de Confiança .................................................................................................... 11 2.5 Infra-estrutura de Chaves Públicas ........................................................................... 12 2.6 Dispositivos Móveis ................................................................................................. 14 3 DETALHAMENTO DA PROPOSTA ......................................................................... 15 3.1 Resultado Esperado .................................................................................................. 15 3.2 Ferramentas .............................................................................................................. 16 4 CONCLUSÃO .............................................................................................................. 17 REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................... 18 1 INTRODUÇÃO O uso da Internet em dispositivos móveis está em amplo crescimento. Com isso, somam-se todas as vantagens da rede mundial de computadores, tais como rapidez e facilidades para a troca de informações, às vantagens dos dispositivos móveis, como a portabilidade, facilidade de uso e alta popularidade. Infelizmente, as desvantagens da Internet também são herdadas. Dentre as desvantagens da rede, os problemas de segurança são majoritários. A garantia de autenticidade, não repúdio, integridade e irretroatividade das informações trafegadas pela Internet são hoje, as questões principais nos quesitos de segurança da informação. 1.1 Problema No mercado dos dispositivos móveis é notável a baixa popularidade de soluções na área de segurança, especificamente no âmbito dos certificados digitais e suas diversas aplicações. Esta carência de soluções é um dos maiores problemas para o desenvolvimento de aplicações que necessitem de requisitos de segurança, capazes de serem executadas no contexto destes dispositivos. 6 1.2 Objetivos Baseando-se no problema apontado, este trabalho tem como objetivo a análise, projeto e desenvolvimento de uma solução para a gerência de certificados digitais e chaves criptográficas em dispositivos móveis como celulares e PDA's. A solução desenvolvida propõe a adoção da tecnologia dos certificados digitais em aplicações de dispositivos móveis, agregando a elas as vantagens desta tecnologia que já vêm tendo muita aplicação no contexto dos computadores pessoais. 1.1.1 Objetivos Gerais Analisar, planejar e desenvolver uma aplicação para dispositivos móveis capaz de: Armazenar chaves criptográficas e certificados digitais; Gerar pares de chaves criptográficas; Gerar requisicões de certificados digitais; Instalar certificados digitais; Remover certificados digitais e pares de chaves. 1.1.2 Objetivos Específicos 7 Para conclusão dos objetivos gerais é necessário atingir os seguintes objetivos: Analisar protocolos e padrões criptográficos; Analisar soluções existentes para o armazenamento de chaves e certificados; Estudar bibliotecas e frameworks para a realização de operações criptográficas em dispositivos móveis; Analisar, projetar, desenvolver e testar a aplicação de gerência de certificados digitais em dispositivos móveis; Analisar a viabilidade de integração da aplicação com uma infra-estrutura de chaves públicas existente e se possível desenvolver um módulo de integração. 1.3 Justificativa O uso de dispositivos móveis tais como telefones celulares e computadores de bolso para realizar funções antes restritas aos computadores pessoais tradicionais, tais como o acesso à web, correio eletrônico, comércio eletrônico entre outras, vem sendo cada vez mais disseminado entre os usuários destes aparelhos. A necessidade de melhorar os aspectos de segurança destas funcionalidades é a maior justificativa para aplicações como a proposta por este trabalho. A melhoria dos apectos de segurança pode viabilizar muitas aplicações que têm como fator de sucesso requisitos de segurança. Alguns exemplos são aplicações ligadas ao governo, à justiça e bancárias, onde a autenticação do usuário é um fator crítico de sucesso. 2 FUNDAMENTAÇÃO TEÓRICA Neste capítulo será realizada uma revisão da bibliografia com o objetivo de fundamentar e situar o trabalho com os conceitos relacionados. 2.1 Criptografia Criptografia é a área da matemática e da computação que trata de problemas relacionados à segurança da informação. Diversas tecnologias atualmente aplicadas para garantir requisitos de autenticação, integridade, sigilo e não repúdio têm como base algoritmos criptográficos. Dentre estas, encontra-se a infra-estrutura de chaves públicas, tecnologia intimamente relacionada com a aplicação de gerência de certificados digitais que é objeto deste trabalho. Stallings define a criptografia da seguinte maneira: "...consiste na arte de escrever em cifras e códigos, fazendo uso de um conjunto de técnicas que tornam uma mensagem incompreensível (texto cifrado). Este processo é conhecido como cifragem. A decifragem, que é o processo inverso, consiste em transformar o texto cifrado em texto compreensível (texto plano), de tal forma que somente o destinatário consegue a informação."(STALLINGS, 1998). 9 A palavra criptografia tem origem grega e pode ser traduzida como escrita escondida. Basicamente, a criptografia trata de algoritmos para embaralhar e desembaralhar mensagens garantindo o sigilo da mensagem transmitida entre duas ou mais entidades comunicantes. (HOUSLEY et al., 2001) Além do sigilo, outros aspectos de segurança são tratados pela criptografia: Sigilo - diz respeito à confiança de que somente pessoas autorizadas terão acesso à informação; Autenticidade - diz respeito à garantia de que quem enviou a informação é realmente quem deveria ter enviado; Integridade - garantia de que a informação não foi alterada; Não-repúdio - garantia de que quem enviou a informação não pode negar o seu envio; Tempestividade - garante que a informação existe e está íntegra a partir de uma determinada data. Estes aspectos são garantidos por diversas técnicas e algoritmos da criptografia. Diante destes fatos, é de fundamental importância uma breve revisão de conceitos fundamentais da criptografia como será apresentado nos próximos tópicos. 2.2 Criptografia Simétrica 10 A criptografia simétrica também é conhecida como criptografia tradicional. A principal característica dessa técnica é o fato de se utilizar uma única chave secreta compartilhada entre os comunicantes. O remetente e o destinatário utilizam o mesmo valor para a chave. O remetente utiliza um algoritmo de cifragem que com o valor da chave, embaralha o texto produzindo o texto cifrado. O destinatário por sua vez, utiliza o mesmo algoritmo e a mesma chave para decifrar o texto cifrado, obtendo assim o texto plano (original). (HOUSLEY et al.,2001) Portanto, a criptografia simétrica exige que tanto o remetente quanto o destinatário compartilhem a chave e o algoritmo utilizados. Em função disto, o compartilhamento da chave se torna um problema em comunicações através da internet, pois a informação da chave utilizada na comunicação trafega em aberto pela rede, possibilitando um intruso obter a chave. 2.3 Criptografia Assimétrica Esta técnica também é conhecida como criptografia de chave pública, nela utiliza-se um par de chaves ao invés de uma única como na criptografia simétrica. Uma das chaves, denominada chave privada é mantida sob sigilo. A outra, chamada de chave pública deve ser de alguma forma divulgada. Qualquer das chaves pode ser usada por algoritmos criptográficos, sendo que, se a chave privada for usada pra cifrar o documento, somente a chave pública poderá decifrá-lo, e vice-versa. A criptografia de chave pública foi proposta por Whitfield Diffie e Martin Hellman em 1976, e um ano depois, o primeiro algoritmo a utilizar esta técnica, o RSA foi apresentado. 11 Proposto por Ron Riverst, Adi Shamir e Len Adleman, o RSA é ainda hoje base de grande parte das aplicações que utilizam criptografia assimétrica. (RIVEST, 1977) Através do par de chaves, o problema do compartilhamento e distribuição da chave secreta da criptografia simétrica é eliminado. Porém, o custo computacional para a realização das operações criptográficas dos algoritmos de criptografia assimétrica é maior que os de criptografia simétrica. Na prática, é comum utilizar-se das duas técnicas aliando segurança e desempenho. Apesar de resolver o problema do compartilhamento da chave secreta da criptografia simétrica, a técnica da criptografia assimétrica lança um problema em relação ao modo de distribuição das chaves públicas. As chaves públicas devem ser disponibilizadas a todos, porém de forma segura e confiável. Além disso, deve existir um meio de se associar uma chave pública que nada mais é do que uma seqüência de bits a uma entidade real. Indo mais além, deve ser possível identificar a validade e aplicações possíveis dessa chave. (HOUSLEY, 2001) Como solução para estes problemas, encontra-se na literatura duas diferentes abordagens: Rede de confiança; Infra-estrutura de chaves públicas. As próximas seções tratam com mais detalhes estas abordagens. 2.4 Rede de Confiança 12 Esta abordagem baseia-se no conceito de que cada usuário tem sua rede de confiança, ou seja, cada um confia que determinadas chaves públicas pertencem a determinados usuários, por exemplo, seus amigos. Dessa forma é possível identificar novos usuários consultando a lista dos usuários em que se confia. Por exemplo, para identificar se uma chave pública pertence a uma pessoa, pode-se: 1. Telefonar e perguntar para a pessoa se a chave que se tem realmente é a sua chave pública. 2. Visitar a pessoa e pedir sua identificação (RG, CPF, etc). 3. Perguntar para pessoas que se confia se aquela chave pública realmente pertence ao novo amigo. As duas primeiras ações são custosas pois não podem ser executadas eletronicamente, além de ter suas restrições (conhecer a voz, reconhecer a validade de documentos). Já a terceira alternativa é possível de ser implementada eletronicamente e é nela que se baseia a abordagem da rede de confiança para associação de chaves públicas à usuários. (FEISTHAMMEL, 2004) 2.5 Infra-estrutura de Chaves Públicas 13 A abordagem da Infra-estrutura de chaves públicas em contrapartida, não utiliza a lista de confiança de cada usuário para garantir a autenticidade das chaves públicas. Nesta abordagem existe o conceito de certificado digital, que de uma maneira bem simplificada é uma estrutura de dados que amarra dados do usuário tais como nome, país, organização à sua chave pública. O sistema da infra-estrutura de chaves públicas se encarrega de emitir certificados digitais que de forma confiável, associam entidades à suas chaves públicas. Para isso, é criada uma hierarquia de autoridades, que em suma são entidades das quais qualquer pessoa pode confiar, estas entidades são análogas à instituições como cartórios, órgãos governamentais, etc. Dentre estas entidades, existem as autoridades certificadoras e autoridades de registro. As autoridades certificadoras são entidades que possuem seus próprios certificados digitais e têm a responsabilidade de emitir certificados digitais para os usuários finais. Atuam como terceira parte confiável da comunicação. Para identificar se um certificado digital e sua chave pública é realmente o certificado da entidade que se quer comunicar, verifica-se se o certificado que emitiu (assinou) o seu certificado é de uma autoridade certificadora confiável. Desta forma, a autoridade certificadora atua como terceira parte confiável, na qual ambas as partes que se comunicam confiam, resolvendo o problema da autenticação das chaves públicas. A outra entidade das infra-estruturas de chaves públicas é a autoridade de registro. Esta autoridade é responsável por registrar os usuários, ou seja, ela quem realmente desempenha a verificação dos dados do usuário que solicita um certificado digital. Para isto, cada autoridade de registro deve seguir um conjunto de regras e procedimentos descritos no 14 documento intitulado "Declaração de Práticas de Certificação" qual deve ser disponibilizado pela infra-estrutura de chaves públicas. 2.6 Dispositivos Móveis Entendem-se por dispositivos móveis, no âmbito deste trabalho, aparelhos portáteis capazes de acessar a internet, mais especificamente, telefones celulares e PDA's que apresentam esta capacidade. Existem algumas plataformas capazes de abstrair detalhes e peculiaridades de cada modelo destes aparelhos. Dentre estas plataformas, destacam-se BREW e Java ME. Dentro do objetivo de prover segurança a nível de documentos eletrônicos confiáveis utilizando certificados digitais, a plataforma Java ME se torna mais vantajosa devido às diversas bibliotecas, especificações e frameworks existentes, inclusive para operações de segurança. 3 DETALHAMENTO DA PROPOSTA Neste capítulo a proposta deste trabalho será detalhada, oferecendo detalhes a respeito dos requisitos e ferramentas que auxiliarão no desenvolvimento da aplicação de gerência de certificados digitais. 3.1 Resultado Esperado Espera-se atingir como resultado deste projeto uma aplicação que atenda os seguintes requisitos: Geração de pares de chaves; Geração de requisições no formato PKCS#10; Instalação de certificados digitais no dispositivo; Remoção de certificados digitais e requisições; Integração com uma autoridade certificadora; A aplicação deverá ser compatível à plataforma Java ME. 16 3.2 Ferramentas As seguintes ferramentas poderão ser utilizadas: Provedor criptográfico Bouncycastle - uma biblioteca que implementa um provedor de serviços criptográficos compatível com a especificação JCA (Java Cryptographic Architecture); Java Micro Edition - plataforma java para desenvolvimento de aplicações para dispositivos móveis; JSR 177 - Especificação java para segurança sobre a plataforma Java ME. Outras ferramentas deverão ser utilizadas e necessitarão de um estudo mais aprofundados. 4 CONCLUSÃO Uma aplicação de gerência de certificados digitais em dispositivos móveis como a proposta por este trabalho tem a sua importância em servir de base para prover níveis de segurança mais elevados às aplicações comuns destes dispositivos. A tecnologia de certificados digitais está em crescimento e é uma solução viável para muitos problemas de segurança da informação nas aplicações atuais. A união desta tecnologia com a portabilidade e a popularidade dos dispositivos móveis pode trazer uma série de benefícios e possibilitar o desenvolvimento de aplicações seguras em dispositivos móveis. REFERÊNCIAS BIBLIOGRÁFICAS FEISTHAMMEL, P. Explanation of the web of trust of PGP; Disponível em: < http://www.rubin.ch/pgp/weboftrust.en.html >. Acesso em: 18 ago. 2006. RIVEST, R. L; SHAMIR, A.; ADELMAN, L. M. A Method for Otaning Digital Signatures and Public-key Cryptosystems. [S.l.], 1977. 15 p. Disponível em: <http://citeseer.ist.psu.edu/rivest78method.html>. Acesso em 19 ago.2006. HOUSLEY, Russ; POLK, Tim. Plannig for PKI: Best Practices Guide for Deploying Public Key Infrastructure. [S.l.]: Wiley, 2001. DIFFIE, Whitfield; HELLMAN Martin. New directions in cryptography. In: IEEE Transactions on Information Theory. [s.n.], 1976. IT-22, p. 644 - 654. Disponível em: <http://citeseer.ist.psu.edu/di-e76new.html>. STALLINGS, William. Cryptography and Network Security: Principles and Practice. 2nd. ed. [S.l.]: Prentice Hall, 1998.