andré luiz cardoso

Propaganda
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.
Download