Académique Documents
Professionnel Documents
Culture Documents
Alessandro Martins TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAO DOS PROGRAMAS DE PS-GRADUAO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSRIOS PARA A OBTENO DO GRAU DE MESTRE EM CINCIAS EM ENGENHARIA DE SISTEMAS E COMPUTAO.
Aprovada por:
MARTINS, ALESSANDRO Estudo e Implementao de Infraestrutura de Chaves Pblicas com Aplicao em Controle de Acesso a Redes sem Fio [Rio de Janeiro] 2004 VII, 178p. 29,7 cm (COPPE/UFRJ, M.Sc., Engenharia de Sistemas e Computao, 2004) Tese - Universidade Federal do Rio de Janeiro, COPPE 1. Infra-estrutura de Chaves Pblicas 2. Criptografia 3. Redes sem Fio I. COPPE/UFRJ II. Ttulo (srie)
ii
Resumo da Tese apresentada COPPE/UFRJ como parte dos requisitos necessrios para a obteno do grau de Mestre em Cincias (M.Sc.) ESTUDO E IMPLEMENTAO DE INFRA-ESTRUTURA DE CHAVES PBLICAS COM APLICAO EM CONTROLE DE ACESSO A REDES SEM FIO
Alessandro Martins Maro / 2004 Orientador: Lus Felipe Magalhes de Moraes Programa: Engenharia de Sistemas e Computao As infra-estruturas de chaves pblicas (ICPs) tm sido proclamadas como a tecnologia que ir tornar o comrcio e os relacionamentos usando a Internet realmente seguros em todos os aspectos. Porm ainda existem problemas para atigir este objetivo, entre eles o alto custo das solues, a falta de conhecimento da tecnologia por parte do mercado e dos desenvolvedores de aplicaes. Esses problemas junto com outros inerentes ao estado atual da tecnologia, como a questo da divulgao das informaes sobre a situao dos certificados formam o cenrio desta dissertao. Nela avalia-se comparativamente s opes comerciais a utilizao de software livre para a implantao de ICPs e selecionase uma para uso. Alm disso, os dois principais mtodos de verificao de situao de certificados atuais, que so as LCRs e o OCSP, so analisados com relao as suas funcionalidades, desempenho e aplicabilidade. Devido inexistncia de uma implementao standalone e opensource do OCSP foi realizada uma. A ICP selecionada para uso junto com a implementao feita do OCSP foi avaliada funcionalmente em um cenrio real no controle de acesso de usurios de uma rede sem fio a uma rede infra-estruturada. Os resultados mostraram que cada mtodo de divulgao de situao de certificados possui caractersticas que se adequam melhor a ambientes especficos, por exemplo, o OCSP se mostrou uma opo mais adequada a futura gerao de aplicaes. Finalmente, o impacto sobre a rede causado por qualquer um dos mtodos de revogao pode ser controlado de forma efetiva ajustando para tal alguns parmetros do processo de revogao.
Abstract of Thesis presented to COPPE/UFRJ as a partial fulfillment of the requirements for degree of Master of Science (M.Sc.) STUDY AND IMPLEMENTATION OF PUBLIC-KEY INFRASTRUCTURE WITH APPLICATION IN ACCESS CONTROL TO WIRELESS NETWORKS
Alessandro Martins March / 2004 Advisor: Lus Felipe Magalhes de Moraes Department: System Engineering and Computer Science The infra-structures of Public Keys have been proclaimed as the technology that will change the commerce and internets relationships into a complete secure way in all aspects. Although there are still problems to achieve this point, among all of them the high cost of solutions and the missing knowledge of technology by commerce people and applications developers. These problems join the inherent state of art technology problems like the matter of information broadcast about certificates state and it becomes the scenery of this dissertation. It will be comparatively evaluated the commercial free software options to Public-Key Infrastructures (PKIs) implementation and it will be chosen one to use. Also the two main verification methods of the certifications state (CRL and OCSP) will be exhaustively analyzed about their functionalities, performance and applicability. A standalone opensource OCSPs implementation was made because there was no one so far. The PKI, selected to be used with OCSPs implementation, was functionally evaluated in real access wireless network user control scenery within infra-structured network. The results show that each method for certification state situation broadcast has some qualities that allow a better adaptation to a specific environment for instance, OCSP is the best next generation application option and the impact question over a network caused by some of them may be effective controlled.
vi
Lista de Acrnimos
AC - Autoridade Certificadora AR - Autoridade Registradora ASN.1 - Abstract Syntax Notation One DER - Distinguished Encoding Rules ICP - Infra-estrutura de Chave Pblica OID - Object Identifieres PEM - Privacy Enhanced Mai PKC - Public Key Certificate PKC - Public Key Certificate SSL - Secure Socket Layer LCR - Lista de Certificados Revogados OCSP - Online Certificate Status Protocol CRL - Certificate Revocation List PKI - Public-Key Infrastructure
vii
Lista de Figuras
Figura 2-1. Arquitetura simplificada de uma ICP ................................................ 27 Figura 2-2. Sntese do ciclo de vida de um certificado digital ............................. 32 Figura 2-3. Topologia estritamente hierrquica ................................................... 35 Figura 2-4. Topologia centrada no usurio........................................................... 36 Figura 2-5. Interao cliente-servidor no protocolo OCSP.................................. 43 Figura 3-1. Componentes bsicos de uma ICP .................................................... 45 Figura 3-2. Tela inicial da interface web da NewPKI .......................................... 65 Figura 3-3. Formulrio de requisio de certificado ............................................ 67 Figura 3-4. Tela de confirmao de solicitao.................................................... 67 Figura 3-5. Informao sobre o andamento do processo de certificao ............. 67 Figura 3-6. Tela final confirmando a emisso do certificado............................... 68 Figura 4-1. Esquema funcional do cliente OCSP................................................. 78 Figura 4-2. Esquema funcional do servidor OCSP .............................................. 80 Figura 5-1. Exemplo de comportamento da Classe Constante de LCRs ............. 85 Figura 5-2. Exemplo de comportamento da Classe Crescente de LCRs.............. 86 Figura 5-3. Comportamento da Classe Decrescente de LCRs ............................. 86 Figura 5-4. Comportamento da Classe Degrau de LCRs ..................................... 87 Figura 5-5. Comportamento da Classe Tangente de LCRs .................................. 87 Figura 5-6. Dados da maior LCR da RSA Security ............................................. 89 Figura 5-7. Dados das outras LCRs da RSA Security.......................................... 90 Figura 5-8. Dados da nica LCR da Unicert do Brasil ........................................ 91 Figura 5-9. Resultado da simulao do tamanho de uma LCR ............................ 93 Figura 5-10. Figura 5-11. Figura 5-12. Figura 5-13. Figura 5-14. Figura 5-15. Figura 5-16. Tempo de gerao de certificados vs. quantidade ........................... 97 Tempo de gerao de LCRs vs. nmero de certificados.................. 98 Tempo de gerao das requisies OCSP........................................ 99 Parametros da LCR class3International.crl ................................... 100 Parametros da LCR Class2ObjectSigning.crl................................ 101 Tempo de gerao de chaves RSA de 512 e 1024 bits .................. 107 Tempo de gerao de chaves RSA de 2048 e 4096 bits ................ 108 viii
Figura 6-1. Arquitetura original do AirStrike .................................................... 112 Figura 6-2. Seqncia de mensagens no ambiente AirStrike ............................. 115 Figura 6-3. Cenrio de autenticao do AirStrike sem certificados................... 116 Figura 6-4. Cenrio de autenticao exclusva do AP usando LCR .................. 117 Figura 6-5. Cenrio de autenticao mtua usando LCRs ................................. 118 Figura 6-6. Cenrio de autenticao mtua usando OCSP ................................ 119 Figura 6-7. Esquema do ataque man-in-the-middle. .......................................... 120 Figura 6-8. Funcionamento do DPD no AirStrike ............................................. 121 Figura 6-9. Mensagem de erro informando certificado revogado ..................... 122 Figura 6-10. Figura I-1. Figura I-2. Figura I-3. Figura I-4. Figura I-5. Figura I-6. Figura I-7. Figura I-8. Figura IV-1. Figura IV-2. Figura IV-3. Arquitetura estendida do AirStrike................................................ 126 Modelo simplificado de comunicao usando criptografia.............. 142 Esquema de comunicao usando a Criptografia Simtrica ............ 143 Esquema de comunicao usando a Criptografia Asssimtrica ....... 144 Processo de validao de integridade de uma mensagem ................ 145 Esquena de assinatura eletrnica...................................................... 147 Exemplo de hirarquia segundo o padro X.500 ............................... 150 Verses da estrutura de um certificado digital X.509....................... 151 Layout da verso 2 da CRL do X.509.............................................. 152 Interface de gerenciamento de certificados do Mozila .................. 173 Interface de importao do Mozila ................................................ 173 Configurao de verificao de certificados do Mozila ................ 174
ix
Lista de Tabelas
Tabela 2-1. Sumrios do mecanismos de verificao de certificados .................. 43 Tabela 3.1: Sistema Operacional e Repositrios suportados................................ 50 Tabela 3.2: Mtodos de Revogao de Certificados ............................................ 50 Tabela 3.3: Segurana das Comunicaes............................................................ 51 Tabela 3.4: Caracterstica da Autoridade Certificadora ....................................... 51 Tabela 3.5: Topologias Suportadas pela ICP........................................................ 52 Tabela 3.6: Suporte a SmartCard e/ou Token....................................................... 53 Tabela 3.7: Gerenciamento de Chaves ................................................................. 53 Tabela 3.8: Interface de Gerenciamento............................................................... 54 Tabela 3.9: Custo Aproximado por Licena e Recursos ...................................... 54 Tabela 3.10: Sistema Operacional e Repositrios suportados.............................. 61 Tabela 3.11: Mtodos de Revogao de Certificados .......................................... 61 Tabela 3.13: Caracterstica da Autoridade Certificadora ..................................... 62 Tabela 3.12: Segurana das Comunicaes.......................................................... 62 Tabela 3.14: Caracterstica do Projeto.................................................................. 63 Tabela 4-1. Resultado dos testes do cliente TORSEC.......................................... 73 Tabela 4-2. Resultados dos testes executados com clientes implementados........ 79 Tabela 4-3. Resultado dos testes dos clientes e servidores desenvolvidos........... 81 Tabela 5-1. Tamanho da requisio OCSP vs. tamanho do identificador ............ 95 Tabela 5-2. Tamanho em bytes da Resposta OCSP.............................................. 96 Tabela 5-3. Relao tamanho/nmero de certificados em uma LCR ................. 110
ndice
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v Lista de Acrnimos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Lista de Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Captulo 1. Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.1 1.2 Definio do Problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.2.2 Objetivos Especficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.3 1.4 1.5 Resultados e Contribuies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Trabalhos Correlatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Organizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5.1 Mecanismos Disponveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.5.1.1 2.5.1.2 Mtodo de Publicao Peridica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Mtodos de Descobrimento On-line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
xi
3.1.1 Empresas Analisadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.1.2 Solues Analisadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.1.2.1 3.1.2.2 3.2 Caractersticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Comparao entre as Arquiteturas Encontradas . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.2.1 OpenSSL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.2.2 OpenCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.2.3 IDX-PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.2.4 NewPKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.2.5 Caractersticas das Solues OpenSouce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.2.6 Soluo Selecionada: NewPKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.2.6.1 3.2.6.2 3.2.6.3 Funcionalidades Adicionadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Interface WEB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Viabilidade do uso da Soluo OpenSource . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.1 Descrio do Protocolo OCSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.1.1.1 4.1.1.2 Contedo obrigatrio da requisio do cliente . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Tipos de respostas do servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
xii
5.1.1 Tamanho das LCRs de ACs Comerciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.1.2 Simulao do Tamanho de uma LCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.1.3 Tamanho das Mensagens OCSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 5.1.3.1 5.1.3.2 5.2 Tamanho das Requisies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Tamanho das Respostas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Esforo Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.2.1 Tempo de Gerao de LCRs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.2.2 Gerao das Requisies OCSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.3 Anlise dos Resultados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.3.1 Largura de Banda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.3.1.1 5.3.1.2 5.3.1.3 Atualizao das Informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Tamanho das LCRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Mensagens OCSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.3.2 Esforo Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 5.3.2.1 5.3.2.2 5.3.2.3 Tempo de Gerao de LCRs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Gerao das Requisies OCSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Gerao das Respostas OCSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
xiii
6.3.2 Autenticao usando Certificados e OCSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.3.3 Realizao dos Cenrios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 6.3.4 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
I.3 Aplicaes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 I.3.1 I.3.2 I.3.3 Funes de Hash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Assinaturas Digitais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Certificado Digital. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
xiv
III.1.3
III.2 Scripts Utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 III.2.1 III.2.2 III.2.3 III.2.4 make-certs.bat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 down_crl.sh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 gen-datfile.php . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Gen-images.plt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
III.3 Programas Desenvoldidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 III.3.1 III.3.2 III.3.3 III.3.4 Cliente OCSP usando Cryptlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Servidor OCSP usando Cryptlib. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Cliente OCSP usando OpenSSL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Servidor OCSP usando OpenSSL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
xv
Captulo
Introduo
O crescimento do uso da Internet1pode ser avaliado com base na expanso dos recursos disponveis e usurios nos ltimos anos. Em 1984 o nmero de hosts (servidores de recursos) girava em torno de 1.000, saltando para 100.000 em 1989, atingindo 1.000.000 em 1992 e chegando a 3.200.000 em 1994. Em 1997 existiam cerca de 10.000.000 de hosts e mais de 30 milhes de usurios. J no incio de 2001, eram mais de de 110.000.000 de hosts e mais de 400 milhes de usurios. Os ltimos dados de dois grandes analisadores da Internet mostram que em maio de 2003 havia 580 milhes de usurios, segundo o NUA[1], enquanto o Telcordia NetSizer[2], em setembro de 2003 relatava mais de 840 milhes. Esse crescimento se deve, entre outros fatores, a evoluo dos meios de transmisso, a reduo dos custos e a proliferao da tecnologia da informao tanto no meio comercial quanto residencial e com isso o uso de mensagens eletrnicas e do comrcio eletrnico tem-se difundido a grandes taxas. Todos os dias empresas e indivduos usam a Internet para executar inmeras de transaes online. As empresas compartilham arquivos e informaes confidenciais via email ou por redes privadas virtuais, clientes de bancos atualizam suas contas, fazem pagamentos e requisitam produtos de todas as formas e funes que so pagos via ordens eletrnicas de seus computadores pessoais, governos emitem certides com validade legal e empresas da rea mdica disponibilizam atestados e pareceres para acesso dos seus clientes ou outros mdicos, tudo via Internet. Isso tem ocorrido por que a Internet, como infra-estrutura de comunicao, tem despertado grande interesse das empresas e governos por vrios fatores importantes, como
1. Neste texto, internet se refere a coleo de redes (que podem apresentar-se isoladas) usando TCP/IP enquanto Internet se refere a rede global de computadores, onde convergem todas as redes no-isoladas.
16
reduo dos custos e expanso do mercado consumidor o que tem motivado a passagem de empreendimentos da velha economia para este novo ambiente. O grfico da evoluo dos domnios dotcom fornecido pelo Internet Software Consortium[3] d uma idia deste crescimento na Amrica Latina e no mundo. No Brasil no existem muitas pesquisas de domnio pblico sobre a Internet. A mais completa disponvel fornecida pela perceria IBOPE-eRatings chamada Web Shoppers[4]. Nela possvel acompanhar a evoluo de alguns indicadores ligados ao comrcio eletrnico no pas mostrando que o Brasil tambm segue a tendncia mundial nessa rea. Estima-se[4] que no ano de 2004 os negcios pela Internet movimentem algo em torno de 5 trilhes de dlares no mundo cabendo do Brasil menos de 1.5% dessa movimentao. Como ferramenta de negcios e comunicao, a Internet tem o potencial de substituir outros veculos como o telefone e o fax nas relaes dirias, principalmente com a adoo em larga escala das redes sem fio. Nas mos erradas, a tecnologia da Internet tambm pode ser usada para interceptar e forjar mensagens, capturar informaes sensveis, bisbilhotar e defraudar organizaes e indivduos. Esses ameaas existem porque as comunicaes via Internet so, devido aos protocolos de comunicao empregados, inerentemente annimas e pblicas. Alm disso, a suite mais empregada para a comunicao na Internet atualmente, o TCP/IP2, possui diversas brechas[5][6][7], algumas especficas das redes sem fio[8], que precisam ser fechadas para que este meio possa ser efetivamente um canal apto e seguro para comunicao, livre de incidentes de segurana danosos[10]. No passado, a segurana das redes de dados era principalmente de interesse militar e acadmico. intuitivo pensar que quando os problemas surgiram no setor comercial e privado (a Internet atual) as abordagens anteriores, especialmente as relacionadas s redes sem fio, no foram adequadas. Essa inadequao se deve, entre outros fatores, a atual dimenso da rede e seu uso, ao avano das tcnicas de ataque com o conseqente desenvolvimento de novas ferramentas de fcil obteno e emprego e com o aumento da capa-
2. Nesta dissertao, a menos que explicitamente citada outra verso, sempre que mencionada a suite TCP/IP ser considerada apenas verso 4.
17
cidade computacional, facilitando a violao de sistemas e protocolos, at mesmo daqueles que faam uso da criptografia. Como o nmero de organizaes que usam a Internet para fazer negcios no deixa de crescer, torna-se imprescindvel cobrir as brechas e possibilitar o estabelecimento de um vnculo de confiana entre pessoas e empresas que nunca se encontraram e possivelmente nunca se encontraro novamente, num ambiente com as caractersticas da Internet. Uma das solues mais promissoras para os problemas citados o emprego de uma Infra-estrutura de Chave Pblica (ICP). Uma ICP um sistema complexo composto em suma por trs partes: softwares, hardwares e procedimentos operacionais e pode ser vista como um substrato sobre o qual so implementados mecanismos de segurana que podem ser usados por qualquer aplicao que compreenda a forma de acesso a esses recursos de segurana. Para desempenhar seu papel uma ICP deve ser capaz de realizar todo o processo de emisso de certificados, armazenamento, publicao (ou acesso on-line), revogao e arquivamento para verificao futura. Em conseqncia disso, esse sistema constitui um artefato computacional complexo, com capacidade de comunicao, processamento e armazenamento com requisitos muito especficos. Com uma ICP torna-se possvel transpor as limitaes dos mecanismos existentes no TCP/IP, garantindo assim confidencialidade a uma comunicao (quer seja por email, ou outra forma qualquer), integridade dos dados, autenticidade e no repdio, citando apenas as principais, alm de ser possvel se certificar da identidade e confiar em um usurio da Internet. Numa ICP, o objeto central o certificado digital. Ele emitido por uma entidade confivel chamada de Autoridade Certificadora (AC) e seu contedo declara uma associao entre uma chave digital e um conjunto de informaes que podem ser de identificao de um indivduo, por exemplo. O certificado digital, quando usado para identificao, semelhante a uma cdula de identidade na Internet. Ela contm a identificao do usurio na Internet e informaes que variam com o emprego do certificado ou com a poltica adotada pela autoridade emissora. Essa identificao imprescindvel em diversas situaes, como para controlar o 18
acesso de usurios e para efetivar o comrcio usando a Internet. Quando necessrio, a associao pode ser desfeita de forma quase instantnea. Por isso o estudo das ICPs se destaca. Sua importncia num mercado cada vez mais globalizado e sua aplicabilidade, que permeia muitas relaes, como as internas de uma empresa (entre departamentos) e as externas (entre clientes e fornecedores), abre caminho para novas interaes e grandes mudanas, principalmente no relacionamento entre governos (troca de informaes de segurana nacional, como dados de possveis terroristas) e entre o governo e a sociedade (declaraes por exemplo).
19
concluiu que este consumo tem o potencial de ser o aspecto de maior custo em uma ICP com muitos usurios. Alm disso, como o volume de certificados e conseqentemente de operaes realizadas com eles pode vir a ser to significativo, espera-se que, sem os devidos controles, estas LCRs contenham muitos certificados e com isso atinjam tamanhos significativos que iro consumir largura de banda devido tambm ao grande nmero de requisies das mesmas. Outro problema da LCRs a frequncia com que elas so emitidas, durante estes intervalos os certificados revogados passaro erroneamente como vlidos. A combinao desses dois problemas com as topologias presentes em [11] para os caminhos de validao pode gerar uma falha ou lentido no processo e causar impactos srios, como a impossibilidade de validar um caminho de certificao. Estes possveis problemas se tornam ainda mais factveis e so a motivao desta dissertao pois: (a) as solues existentes, devido ao impacto estratgico, so caras, estrangeiras, proprietrias e originam de um grupo extremamente pequeno de empresas desenvolvedoras; (b) o desenvolvimento de pilotos de testes e pesquisas pelo setor acadmico no tem sido amplamente realizado3, dada a importncia da tecnologia em questo; (c) a grande maioria dos sistemas e aplicaes atuais usam LCRs que no so adequadas pois no possuem a performance e as funcionalidades necessrias a demanda de verificaes e novas aplicaes por vir. Outro fator que agrega mais dificuldade ao problema que com o rpido crescimento da Internet, o mercado de tecnologia da informao no conseguiu preparar profissionais capacitados em segurana mesma taxa, gerando uma lacuna nessa rea[12]. Como conseqncia disso existe uma dificuldade na criao de novos aplicativos que faam uso desta nova tecnologia e possibitem a evoluo tecnolgica e comercial do pas.
3. Numa pesquisa feita em 21/01/04 utilizando a ferramenta Google apenas em pginais nacionais, a palavra chave OCSP retornou apenas 111 referncias, onde algumas se referem a outro acrnimo
20
1.2 Objetivos
1.2.1 Objetivo Geral
O objetivo desta dissertao analisar algumas solues para infra-estruturas de chaves pblicas (ICPs) e mostrar a viabilidade do uso de software livre para a implantao de uma ICP na qual aplicativos que faam uso da certificao digital possam ser desenvolvidos e testados. Este ambiente abrigar os componentes bsicos de uma ICP, incluindo as LCRs, alm da implementao de um protocolo de verificao de certificados online chamado OCSP (Online Certificate Status Protocol) desdobrado em duas partes: um cliente genrico e um servidor, necessrios para a validao do protocolo. Esse protocolo o representante mais maduro da sua classe, que visa resolver os possveis problemas de desempenho e funcionalidade das LCRs.
relao a dois aspectos: sobrecarga de processamento no cliente e servidor e consumo de recursos de comunicao na troca de mensagens. Integrar a infra-estrutura de chaves pblicas resultante ao sistema AirStrike[13] de autenticao de usurios em uma rede de sem fio e avaliar o resultado com relao a sua adequao e desempenho para uma possvel utilizao prtica.
22
existentes atualmente, avaliar o esforo computacional necessrio gerao, processamento e utilizao dos certificados digitais, LCRs e mensagens do protocolo OCSP, fator de extrema importncia tendo em vista a recente entrada em utilizao de dispositivos de baixa capacidade de processamento, como celulares e computadores de mo em transaes comerciais e bancrias, verificar a adequao e os benefcios da tecnologia de chaves pblicas e certificados digitais para o controle de acesso a redes infra-estruturadas atravs de redes sem fio. Esses resultados contribuem para uma melhor compreenso da tecnologia de infraestrutura de chaves pblicas e por conseguinte, uma maior facilidade na utilizao da mesma no apenas no contexto apresentado, mas devido a documentao apresentada, tambm em outros contextos. Alm disso, a documentao dos procedimentos utilizados nas simulaes, nos desenvolvimentos e nos prprios programas poder ser utilizada como base para novos desenvolvimentos e pesquisas uma vez que a soluo, como um todo, ter as seguintes caractersticas: cdigo fonte em C/C++ portvel; suporte aos padres vigentes e ao estado da arte em checagem de certificados pela implementao de um cliente e um servidor OCSP; implementao multiplataforma (Windows e Linux); interface simples e amigvel. Os programas opensource analisados e os desenvolvidos podero ser usados em projetos piloto de empresas que queiram avaliar a tecnologia assim como no meio acadmico, como ponto de partida para pesquisas, uma carncia atual visto que no foi encontrado em nenhum ambiente acadmico ou mesmo comercial de testes, uma ICP com essas caractersticas. Concluindo, esta dissertao ir contribuir no desenvolvimento e uso das ICPs visto que: 23
Existe um longo caminho de padronizao que ainda precisa ser trilhado. Muitas fases e processos empregados numa ICP ainda no esto padronizados e dificultam a interoperabilidade das solues. O uso de projetos piloto pode fornecer o ferramental ideal para que testes e avaliaes sejam desenvolvidos, por empresas e governos, visando estabelecer estes padres ainda em aberto ou selecionar adequadamente um, quando for o caso. Ainda existe uma grande dificuldade de implementar aplicativos que usem certificao digital.
cos[18][19][20], aplicaes, como na votao eletrnica[21], na assinatura digital de documentos eletrnicos[22], na protocolizao de documentos eletrnicos[23] ou na datao de documentos eletrnicos[24]. J entre os relacionados com as redes sem fio, em especial sobre sua segurana, destacam-se[25] e [26].
1.5 Organizao
Esta dissertao consiste de 3 partes, subdividadas da seguinte forma: Primeira Parte: Introduo Geral 24
Apresentada no captulo 1 (Introduo) e no captulo 2 (Infra-estruturas de Chaves Pblicas) Segunda Parte: Desenvolvimento, Implementao e Testes Disposta no captulo 3 (Avaliao de Solues para ICPs), captulo 4 (Proposta de Implementao do Protocolo OCSP), captulo 6 (Ambiente de Teste: AirStrike) e no captulo 6 (Medies e Resultados) Terceira Parte: Consideraes Finais Disposta no captulo 7 (Concluses e Trabalhos Futuros)
25
Captulo
O objetivo deste captulo fornecer os subsdios necessrios para uma perfeita compreenso dos protocolos e procedimentos envolvidos na gerncia e utilizao dos certificados de chave pblica, indo da requisio revogao dos mesmos, passando pelas estruturas e padres utilizados.
2.1 Introduo
O surgimento das ICPs no est bem claro na literatura especializada, mas o incio da dcada de 90 parece ser a poca mais provvel. Em 1988 a ITU-T divulgou a primeira verso da recomendao X.500 e associada a ela a primeira verso do formato de certificado presente na recomendao X.509. Em seguida, em 1991, a RSA Security divulgou a primeira verso da famlia de padres para criptografia de chave pblica chamada PKCS. Aproximadamente na mesma poca um algoritmos de chave pblica, o RSA, foi includo em um programa comercial, o Lotus Notes. No incio de 1993, a especificao do PEM (Privacy Enhanced Mail [35]) divulgada e no mesmo ano a ITU-T apresenta, entre outras, a primeira reviso das recomendaes da srie X.50x e a RSA Security sua reviso dos PKCS com suporte ao PEM. Pela cronologia e analisando o contedo dos documentos, possvel notar que tanto a RSA Security quando a ITU-T sofreram influncias das idias contidas na especificao do PEM, por isso, pode-se considerar o PEM como a primeira especificao de uma ICP funcional, padronizada e livremente disponvel e desde ento as ICPs passaram a ser foco de estudos e diversos novos padres e produtos tm surgido.
26
Em uma ICP o objeto central o certificado digital (detalhes de sua histria e estrutura esto presentes no Apndice I). Em torno dele gira todo um complexo sistema composto em parte por artefatos de software e em parte por procedimentos operacionais. O funcionamento real de uma ICP depende intimamente de algumas decises tomadas durante as fases de projeto da arquitetura do sistema. O nmero e as funes das entidades participantes, assim como a perfeita definio do processo de operao, so conseqncias dessas decises. A Figura 2-1 apresenta uma arquitetura genrica para uma ICP. Alguns componentes podem ser desdobrados em uma ou mais entidades funcionais por razes especficas de projeto baseadas nas funcionalidades especficas necessrias.
End Entity
Publicao de Certificados e Gernciamento Pessoal Registro/Certificao Iniciais Servios Decorrentes
Publicao de Certificados
Autoridade de Registro
Autoridade Certificadora 1
Certificao Cruzada e outros relacionamentos
Autoridade Certificadora 2
Uma ICP consiste de trs classes de componentes. So eles: as autoridades: as principais so as de registro e certificao. Em algumas implementaes outras autoridade com funes auxiliares podem ser utilizadas; os clientes: separados em duas outras classes no mutuamente exclusivas: os detentores dos certificados, que os utilizam nas assinaturas de documentos, por exemplo, e os verificadores de certificados, que no possuem obrigatoriamente um certificado, mas querem validar uma assinatura, por exemplo. Na Figura 2-1 so
27
indiscriminadamente representados como End Entity; o repositrio de armazenamento e disponibilizao dos certificados, LCRs e informaes afins. As relaes desses trs tipos de componentes, desdobrados nos participantes bsicos apresentados, descrevem o modo de operao de uma ICP. Interligando estas relaes que esto os padres e protocolos necessrios a tornar a comunicao a mais padronizada possvel de modo que produtos de empresas distintas possam se integrar. Algumas interaes nesse sistema so bem comuns, como por exemplo: entre o detentor do certificado e o repositrio: essa interao necessria para possibilitar ao detentor o gerenciamento das informaes definidas no mbito da entidade de registro, ou seja, dados como endereo para correspondncia, email para contato e outros que no fazem parte e no precisam ser alterados no certificado. entre o detentor do certificado e as autoridades: nesta interao o solicitante interage com as autoridades em diversos processos como na requisio dos certificados, no acompanhamento do processo de certificao e na obteno do certificado do sistema. entre as autoridades e o repositrio: em geral, todas as aes durante o processamento dos certificados pelas autoridades (incluindo a gerao e divulgao das LCRs) precisam ser registradas e em muitos casos, tambm as aes dos clientes. Uma descrio mais detalhada dos componentes apresentados na Figura 2-1 fornece mais detalhes sobre as responsabilidades e condies de operao, o que ser feito na seo seguinte.
28
fazendo com que uma ICP completamente funcional possa ser vista como pequenos sistemas interagindo entre si. Para desempenhar seu papel, a infra-estrutura de chave pblica deve ser capaz de realizar todo o processo de emisso de certificados, armazenamento, publicao (ou acesso on-line), revogao e arquivamento para verificao futura. Em conseqncia disso, esse sistema constitui um artefato computacional complexo, com capacidade de comunicao, processamento e armazenamento com requisitos muito especficos. Alm disso, tanto as comunicaes internas (entre componentes) como as externas (entre ICPs) desse sistema tambm devem ser seguras. Dos participantes relacionados anteriormente, os trs principais que precisam ser descritos e melhor compreendidos so: Autoridade Registradora (AR4): A Autoridade Registradora atua recebendo as requisies de certificado e executando uma fase preliminar de checagem dos dados. Sua funo principal aliviar a carga da Autoridade Certificadora (AC) e tornar a natureza distribuida do processo vivel ou seja, atua como a porta de entrada do sistema repassando para as outras partes as informaes recebidas e disparando vrios processos, quando necessrio. Sua presena opcional em ambientes pequenos, mas quando adotada, geralmente possui dois pontos de acesso: o primeiro faz o papel de coletor de informaes, implementado em muitos casos como um sistema web consistindo de um formulrio e alguns scripts de apoio; o segundo utilizado pelo pessoal da gerncia da AR. Essa diviso torna-se importante para separar o operador da AR, que executa aes de gerncia, em processos off-line, da parte de captao de informaes, uma tarefa intrinsicamente on-line. importante destacar que os nveis de segurana da AC e da AR so bem diferentes (e conseqentemente, os custos associados) o que torna mais vivel e comum ter uma srie de ARs executando um pre-processamento e depois fazendo o repasse para um pequeno conjunto de ACs.
4. Esta pode assumir diversos nomes na literatura internacional, como Registration Authority - RA, Local RA ou Organizational RA - ORA)
29
Autoridade Certificadora (AC): Estabelecer uma autoridade certificadora uma responsabilidade que acarreta a administrao de uma base de certificados, o estabelecimento de procedimentos tcnicos e a criao de uma estrutura para o gerenciamento das chaves. Autoridades certificadoras no apenas emitem certificados mas tambm devem gerenci-los, determinando a validade de cada certificado e as condies de renovao e possivelmente gerando e armazenando uma lista de certificados que j foram emitidos mas no esto mais vlidos, ou seja, foram revogados. Observando essa lista de atribuies, pode-se concluir que a responsabilidade da AC no termina aps a emisso do certificado e nem aps a sua revogao. A emisso de um certificado deve, ao menos em parte, ocorrer de maneira off-line e no ser desenvolvida atravs de um mecanismo automtico de solicitao/resposta. Antes da AC assinar um certificado, ela deve verificar os dados da solicitao, pois quando o certificado gerado, a AC est garantindo que os dados do certificado so confiveis. importante que a transferncia das informaes necessrias emisso do certificado para a autoridade certificadora no seja comprometida e que a segurana fsica da AC seja garantida (se a chave privada da AC tornar-se pblica, todos os certificados assinado tornam-se inseguros). Finalmente, para completar a gesto de certificados, uma operao de revogao deve ser provida pela AC. Os certificados devem ser revogados pela AC e comunicados de alguma forma aos outros, sempre que: A chave secreta do usurio for comprometida. Os dados do usurio forem modificados. Por exemplo, o usurio mudou de
30
organizao. O usurio no deseja mais ser certificado pela AC. O certificado da prpria AC foi comprometido. O usurio violou a poltica de segurana da AC. Deve-se observar que, depois de revogados, os certificados no deixam simplesmente de existir, passam somente a no ser mais vlidos, podendo ser arquivados para efeito de comprovao futura. Repositrio de Certificados: Um certificado pode ter sido emitido pela AC, sanando a questo da associao entre chave e entidade, mas a menos que se possa localizar este certificado facilmente, ele efetivamente no seria diferente de um certificado que nunca tivesse sido criado e a ICP seria intil. Essa a funo principal do repositrio: armazenar e tornar disponvel os certificados e as listas de certificados revogados aos usurios da ICP. Para isso, algum tipo de repositrio robusto, escalvel e on-line deve existir.
31
Ao da AR
Certificado Promulgado
Novo Usurio
Ao da AR
Ao da AC
Requisio Recusada
Certificado Revogado
Certificado de Revogao
Ao do Repositrio
Certificado Recusado
Em maiores detalhes os processos bsicos so: Requisio do certificado Representado na parte A da Figura 2-2, esse proceso inicia com uma ao do usurio ao solicitar o certificado. Normalmente ele o faz via formulrio web processado pela AR. O resultado dessa ao uma requisio de certificado num formato padronizado. Durante esse processo gerado, local ou remotamente, o par de chaves. A chave pblica includa no formato da requisio do certificado. O formato tambm prov uma informao que pode ser usada pelo sistema e pelo usurio para acompanhar o processo de requisio. Em seguida a gerncia da AR verifica os dados da requisio e delibera sobre eles. Estando tudo de acordo, o formato passado para a AC para que esta execute a ltima linha de verificaes e assine o certificado. Finalizando o processo o certificado torna-se disponvel, o que feito publicando-o num repositrio. Expirao do certificado Representado na parte B da Figura 2-2, esse proceso no possui uma ao inicial definida. Ele comea quando o perodo de validade do certificado termina. Neste 32
momento o certificado passa ao estado de expirado e pode mudar de estado com uma ao da AC quando esta re-assina o certificado. Isso no ocorrendo, o certificado fica suspenso at que a AC emita um novo. Note que neste caso a segurana da associao no foi perdida, o que ocorreu foi o trmino de um contrato no qual a AC garantia o certificado, por isso a re-assinatura torna-se possvel. Revogao do certificado A revogao do certificado difere muito da expirao. A menos que os certificados tenham uma vida to curta que sejam efetivamente usados uma nica vez, quer dizer, eles so emitidos, so usados imediatamente, e nunca mais so usados novamente, alguma forma de revogao requerida para situaes nas quais um certificado deva ser declarado invlido pela AC. A revogao ocorre quando uma entidade detentora de um certificado ainda dentro do perodo de validade desiste de possuir o certificado ou quando a AC detecta de alguma forma uma violao que torne a sua garantia de associao duvidosa ou invlida. Isso pode ocorrer quando a AC informada ou detecta que a chave privada associada ao certificado em questo foi comprometida, ou seja, foi perdida ou furtada. Este um processo importante e ser descrito em detalhes na seo 2.5.
caractersticas operacionais, legais e outras. Quando uma AC assina um certificado de uma outra podemos pensar na relao do usurio com esta AC indireta como tendo uma confiana induzida. Existem algumas topologias bsicas[11] para os caminhos de validao. Nelas o sentido de validao importante. As fundamentais so: Estritamente Hierrquica: grficamente representada por um rvore (vide Figura 2-3) tem a caracterstica fundamental de propagar o sentido de confiana de cima para baixo e criar um caminho nico de cada folha at o nvel mais alto da rvore. Essa caracterstica muito desejvel por ocasio da determinao do caminho de verificao, reduzindo o esforo de pesquisa e gerando sempre uma situao de certificados diferentes de indeterminado. A altura da rvore pode ser determinada, via campo de extenso nos certificados, tornando possvel at limitar o tempo de procura. Essa estrutura rgida bem adequada quando torna-se imprescindvel um controle central e uma imposio de regras. Esta topologia foi a primeira a ser empregada, no padro PEM, e pela sua rigidez causou o fracasso desse padro. A idia inicial de que existiria uma raiz nica e mundialmente aceita foi utpica e hoje tida como invivel.
34
CA-1A
CA-2A
CA-2B
CA-3A
Centrada no usurio: Nesta topologia no existe uma figura central coordenando alguma poltica ou ditando a hierarquia de nomes. a base do funcionamento do PGP[27]. No PGP cada usurio, ou n, decide em quem quer confiar e tambm quanto quer confiar. Para julgar a validade de um certificado o verificador aplica crivos prprios ponderando sobre quando ele confia e em quem, o que pode culminar em um resultado indeterminado. Esta a nica topologia que pode gerar esse resultado.
35
Cruzada, em Ponte ou Malha: Estas topologias possuem como caracterstica principal a interligao de domnios, hierrquicos ou no, de formas diversas. Com isso se consegue intermediar as caractersticas dos domnios conectados. Estas topologias so freqentemente adotadas por organizaes com alto grau de complexidade. Estas topologias so importantes na verificao da situao do certificado, como ser visto em detalhes na prxima seo, pois aps a obteno do certificado digital desejado em um repositrio seguem-se duas fases que culminam no fornecimento da situao do certificado, e que no depende apenas do certificado obtido, mas sim da cadeia qual ele pertence. Essas duas fases so: a determinao do caminho de validao e a verificao da validade ao longo deste caminho. Esses dois passos, ainda que sejam executados por algum servidor do sistema de gerenciamento ou pela estao do cliente, esto intimamente atrelados aos certificados pois so estes que carregam consigo as informaes necessrias para a construo do caminho de validao assim como outras necessrias ao prprio processo de validao.
36
Durante este perodo, pode ocorrer algum fato que motive a quebra desta associao. A questo que surge em seguida : como informar a um nmero desconhecido e possivelmente grande de agentes que um dado certificado no pode mais ser considerado vlido? No existe at o momento nenhum processo que, por ao da autoridade, informe a todos os detentores de certificados de uma comunidade que um ou mais de seus membros deixou de ser confivel. O procedimento adotado atualmente pela autoridade disponibilizar de alguma forma, um processo pelo qual todo aquele que desejar checar se um certificado valido possa faz-lo. A gerao e divulgao da informao de revogao de um certificado, que so processos independentes, pode ocorrer de vrias formas, como ser visto, algumas delas muito semelhantes ao procedimento utilizado para divulgar um certificado emitido, porm estas formas no suprem todas as necessidades deste procedimento. Por exemplo, no caso da localizao de um certificado emitido, se o agente que procura o certificado no encontr-lo a conseqncia disso que ele no poder executar alguma ao. J no caso da no localizao da informao sobre a revogao de um certificado, o agente ficar num impasse: usar o certificado correndo o risco do mesmo estar revogado ou no usar o certificado, mesmo que este possa estar vlido. Essa questo e outras relativas sero descritas e avalidadas sobre o ponto de vista do impacto causado, nas sesses que se seguem. Para tal, os mecanismos utilizados foram classificados em dois grupos maiores, e descritos a seguir.
38
Os mtodos existentes atualmente podem ser classificados em dois grupos maiores, que distingem-se pela forma como a autoridade contactada e como ela prov a informao sobre a situao dos certificados. Os mtodos so os que se seguem. 2.5.1.1 Mtodo de Publicao Peridica Mtodos de publicao peridica so tcnicas caracterizadas pela divulgao de informaes de revogao em perodos pr-determinados na forma de uma estrutura de dados assinada. A relao que se segue composta pelos mais utilizados atualmente, so eles: Lista de Certificados Revogados: As LCRs (ou Certificate Revocation Lists - CRLs) so certificados que contm uma estrutura de dados com uma lista seqncial de certificados revogados (apenas uma referncia aos certificados na verdade, como um identificador nico) e so sem dvida o formato atualmente mais utilizado (detalhes sobre sua estrutura e evoluo so apresentados no Apndice I). O local e o protocolo de acesso lista definido em um campo de extenso em cada certificado emitido. Este fato gera alguns problemas que sero apresentados a seguir. A autoridade emissora da lista geralmente a mesma que emite os certificados, entretanto, isto no uma exigncia crucial do processo, outra autoridade com relacionamento de confiana adequado com a emissora dos certificados pode emitir LCRs, isto pode ser visto em detalhes no mecanismo conhecido como LCR Indiretas[36]. Uma caracterstica importante das LCRs que devido ao fato de serem certificados digitais, muito semelhantes at na estrutura dos certificados de associao (vide Apndice I), podem ser armazenadas (localmente ou em servidores de cache) e transportados sem a necessidade de segurana extra no processo. A assinatura da estrutura garante a integridade dos dados. Entretanto, como todo certificado, ela precisa ser checada, pois a autoridade que assinou a lista pode no ser vlida. Atualmente a maioria dos certificados deste formato obedecem a verso 1 da estrutura. Essa verso possui problemas de escalabilidade, funcionalidade e segurana que foram corrigidos pela verso seguinte. Infelizmente ainda possvel encontrar muitos sis39
temas usando a primeira verso devido principalmente compatibilidade com os clientes existentes. Na verso atual (a segunda) foram introduzidos campos de extenses, que podem ser marcados como crticos ou no, e que existem em dois contextos diferentes, que so: - extenses para a lista, com informaes vlidas para toda a lista, - extenses por certificado revogado presente na lista, com informaes extra sobre cada certificado revogado presente na lista. As extenses marcadas como crticas precisam ser compreendidas e processadas pelo cliente, j as no-crticas podem ser simplesmente ignoradas pelos clientes que no compreenderem sua semntica. Devido estrutura de dados usada nas LCRs, algumas variaes foram geradas principalmente para evitar o srio problema de escalabilidade. Esse problema devido dificuldade que recairia sobre os clientes caso a estrutura fosse particionada e estes tivessem que recomp-la. Esse particionamento surge como uma soluo quando as LCRs tornam-se grandes, o que pode ocorrer devido s polticas de certificao da autoridade ou devido falha no controle do tamanho da lista. importante ressaltar o fato da LCR nascer com o primeiro certificado emitido e perdurar por toda a existncia da autoridade. Ou seja, sem os devidos controles, essa estrutura no deixar de crescer. Com o aumento do nmero de certificados emitidos e conseqentemente do nmero de certificados revogados, em algum momento o tamanho da lista, assim com o seu transporte, passaro a causar problemas de desempenho da rede e at mesmo do cliente, uma vez que este, aps obter a lista, ainda ter que pesquisar nela por sua prpria conta para verificar se o certificado que deseja verificar est ou no na lista. Um outro problema associado com o anterior relaciona-se com a freqncia de gerao da lista. Toda a lista gerada informa (em um campo obrigatrio da lista) quando a prxima estar disponvel, ou seja, o momento gerao da prxima determnistico e independente de ocorrerem centenas de revogaes ou nenhuma nesse perodo. Analisando os dois extremos desta situao vemos que:
40
1. pode-se fazer o intervado entre as listas tender a zero e neste caso o cliente ter a melhor informao sobre a situao dos certificados, porm a um custo elevado devido freqncia de download da lista. 2. de forma oposta, se o intervalo tender a infinito, o cliente no precisar obter as listas to freqentemente, ficando liberado desta tarefa, porm ter a pior informao sobre o estado dos certificados. Devido aleatoriedade das revogaes, a prtica comum definir um intervalo fixo para as emisses que tido como aceitvel para uma classe de certificados. Pode-se perceber que em ambos os casos ocorre um disparo de sincronismo, ou seja, aps a data de expirao da lista todos os cliente iro solicitar uma lista nova a um mesmo servidor, gerando uma sobrecarga de acesso. Algumas propostas atuais visam resolver um ou mais problemas das LCRs completas. importante ressaltar que a grande maioria dos clientes existentes na atualidade ainda no suporta estes avanos, como o caso dos produtos da Microsoft: o Internet Explorer e o Outlook. As propostas presentes em [36] so: 1. alterar o par caminho e formato da lista: o formato atual, que especifica de uma forma nica o protocolo e o caminho direto at a lista completa, passar a informar o caminho junto com outras informaes usadas para localizar uma LCR no mais completa, mais fragmentada em partes menores, que facilitariam o gerenciamento (mtodo conhecido como CRL Distribution Point). Uma sugesto para a fragmentao o uso de LCRs incrementais (Delta CRLs). Uma lista base com todos os certificados emitida com certa freqncia, e durante este intervalo apenas informaes incrementais a esta lista so geradas. 2. que o caminho definido no certificado no seja direto ao local das listas, mas sim um apontador que pode ser usado para direcionar o cliente para um sistema mais adequado, baseado em algum parmetro e que o particionamento das listas seja feito no mais usando tamanhos fixos. 3. que sejam usadas Redirect CRLs que fornecem uma mtodo pelo qual pode-se conectar s LCRs dado um caminho at a primeira. 41
4. A nica proposta que altera a estrutura de dados da LCR foi feita pela empresa Valicert e conhecida como Certificate Revocation Trees (CRTs)[37]. As CRTs so baseadas nas rvores de hash de Merkle[38] onde a rvore em si representa toda a informao relevante sobre revogao de certificados de uma comunidade de autoridades certificadoras. 2.5.1.2 Mtodos de Descobrimento On-line Os mtodos chamados on-line diferem dos de publicao peridica apresentados anteriormente em diversos aspectos, principalmente pelo fato de exigirem que as partes estejam on-line durante todo o processo. O mecanismos mais popular desta classe e at o momento o nico com alguma utilizao o OCSP (Online Certificate Status Protocol) definido na RFC 2560. Este protocolo implementa um mtodo relativamente simples de requisio/resposta oferendo um caminho para obter em tempo real informaes sobre a revogao de certificados de uma autoriade confivel referenciada com OCSP Responder. A gerao da requisio deste protocolo pelo cliente pode receber como entrada atquatro certificados, dois obrigatrios e dois opcionais, que so: o certificado a ser verificado, o certificado da autoridade que emitiu o certificado a ser verificado o certificado do OCSP Responder, que pode ser omitido caso seja o mesmo da autoridade certificadora. A presena de um dos dois certificados obrigatria para validar a resposta, evitando que um Responder falso atue. o certificado do cliente que executa a requisio, que usado quando a requisio precisa ser assinada, uma vez que certos Responders no respondem a pesquisas annimas. A Figura 2-5 resume o processo.
42
Outros protocolos[39] desta mesma classe foram propostos, porm ainda esto em estudo. A tabela 2-1 resume as caractersticas de cada uma das solues apresentadas.
Esquema
Sntese
Comentrios
LCRs Comple- Estrutura de dados assinada Largamente adotada, porm severatas contendo uma lista de certi- mente criticada devido aos problemas ficados revogados de desempenho, escalabilidade e periodicidade, entretanto, alternativas baseadas nelas existem, mas ainda em estudo Ponto de Dis- Um mtodo j padronizado tribuio de porm ainda no adotado LCRs para o particionamento de LCRs Soluo com ganhos reais no desempenho e na escalabilidade porm a questo da periodicidade das listas ainda problema. Tambm no possuem suporte nos clientes mais comuns, como os navegadores web.
43
Sntese Um mtodo j padronizado de divulgao de informaes de revogao sem requerer uma CRL completa ou uma atualizao do Ponto de Distribuio de CRLs Outro mtodo padronizado que permite informaes sobre revogao de multiplas ACs residirem juntas numa nica LCR Uma forma on-line, baseada em mensagens simples, de obter a situao de um certificado
Comentrios Pode ser usada em conjuto com os Pontos de Distribuio de LCRs para melhorar as questes do desempenho, escalabilidde e periodicidade das LCRs completas, mas sofrem do mesmo problema de aceitao do anterior. Emprego adequado quando o uso de vrias LCRs de ACs diferentes gera problemas de perfornace. Ainda no so suportadas pelos clientes web. Ainda que seja capaz de fornecer respostas em tempo real intimamente dependente da fonte geradora das informaes de revogao, que podem no ser to atuais quanto se deseja.
LCR Indiretas
OCSP
LCRS Redire- Conceito relativamente Conceito esperado para ser inserido na cionadas e recente, com suporte ao par- prxima verso do padro PKIX Refernciadas ticionamento dinmico de CRLs bem como multiplos mtodos de recuperao de informaes de revogao. CRTs Um tecnologia, definida pela Valicert, que prov uma forma de armazenar informaes sobre revogao em baixo volume de dados atravs de uma estrutura baseada em rvore de hash binria. Com potencial de vir a ser uma alternativa vivel para a representao das informaes sobre revogao baseada em servio de terceiros. Ainda sem suporte nos clientes mais usados.
44
Captulo
Tendo como foco um dos objetivos desta dissertao, foi feita uma anlise de alguns produtos atualmente disponveis para a implementao de uma de infra-estrutura de chaves pblicas, tanto comerciais quanto opensource. Isto foi feito visando a caracterizao das solues comercialmente existentes e a escolha de um produto gratuito para ser usado na implementao de avaliao. Na tarefa de analisar as opes existentes, existem algumas abordagens eficientes para caracterizar uma infra-estrutura de chaves pblicas. Pode-se isolar apenas os aspectos tcnicos e do mesmo modo somente os comerciais. A abordagem adotada nesta anlise destaca principalmente os aspectos tcnicos e funcionais dos produtos encontrados. Considerando somente o sistema computacional necessrio a uma infra-estrutura de chaves pblicas e com base nas pesquisas realizadas possvel resumir a estrutura destes sistemas na Figura 3-1.
E n d E n tity
G e r n c ia m e n to P e s s o a l R e g is tr o / C e r tific a o In ic ia is S e r v i o s D e c o r r e n t e s O u tr a s in te r a e s o n lin e c o m o a v a lid a o p o r O C S P
R e p o s it r io d e C e rtif ic a d o s e L is ta s d e C e rtif ic a d o s R e vo g a d o s
R e g is tr o
P u b lic a o d e C e r t ific a d o s e L is t a s d e R evog a o
O u tr a s
C e r tif ic a d o r a X
A u t o r id a d e s
C e r tif ic a o C r u z a d a e o u t r o s r e la c io n a m e n t o s e n t r e IC P s
A d m in is tr a d o r e s
A u to r id a d e C e r tif ic a d o r a Y
45
Cada uma das solues analisadas realiza os componentes e as interaes apresentadas na figura de forma a se adequar a um dado nicho de mercado, provendo algum tipo de funcionalidade que se torne um diferencial competitivo. Algumas dessas funcionalidades so descritas a seguir.
46
identificao biomtrica. Possui como parceira, com participao nos lucros e fornecedora da tecnologia, a Baltimore Amricas, responsvel por 60 % das operaes de certificao dos Estados Unidos e com aproximadamente 85% do mercado no mundo. Seu sistema possui classificao de segurana E3 pelo ITSEC (Information Technology Security Evaluation Criteria) O modelo de negcio da empresa, que esta focada no mercado nacional uma espcie de ASP (Application Service Provider) para o setor de certificao digital. At a presente dada no est filiada ICP-Brasil e nem consta na lista das solicitantes de credenciamento. Certisign Certificadora Digital2 Os servios e produtos da multinacional VeriSign so oferecidos no Brasil exclusivamente pela CertiSign Certificadora Digital S.A., nica afiliada brasileira da VeriSign Trust Network, a sua rede mundial de confiana. Possui um datacenter no Rio de Janeiro contrudo em um local especialmente projetado e mantido para este fim e presta um servio denominado ICP Gerenciada, semelhante ao modelo da UniCert, alm de vender certificados com selo prprio para sites seguros e correio eletrnico em dois nveis de segurana. Possui o diferencial de ter o seu certificado raiz j disponvel no Internet Explorer e estar credenciada junto ICP-Brasil e por isso pode tambm emitir certificados compatveis com este selo. No ltimo semestre de 2003 foi homologada para emitir e-CPF e e-CNPJ que so certificados eletrnicos definidos no mbito da ICPBrasil para operaes entre empresas e cidados e o governo . RSA Security3 Esta de uma das trs grandes empresas encontradas que comercializa a soluo em software. A suite completa possui diversos mdulos que interagem com o produto central (o RSA Keon Certificate Authority atualmente na verso 6.5), e alm
2. Informaes obtidas no site da Certisign, em www.certisign.com.br e na pgina da Verisign, em www.verisign.com 3. Informaes obtidas no site da empresa, em www.rsasecurity.com e nos white papers disponveis sobre o produto.
47
disso existe uma API completa para a criao de outros mdulos. O RSA Keon composto por quatro mdulos principais: o Web Server, o Logging Server, o CMP Server e o Secure Directory Server. O Web Server baseado no servidor web Apache e prov a interface primria do Keon CA. O Logging Server armazena de forma segura (usando assinatura digital) os eventos do sistema fornecendo o material necessrio para uma auditoria, que pode ser feita com o mdulo Keon CA Auditor. Os logs so armazenado em arquivos locais e digitalmente assinados. O CMP Server empregado no processo de requisio dos certificados e nas tarefas relacionadas administrao do processo. O Secure Directory Server um servidor de diretrios LDAP que armazena todas as informaes da ICP, como os certificados e as LCRs. Baltimore A soluo da Baltimore, chamada Unicert e atualmente na verso 5 e utilizada pela empresa Unicert do Brasil, possui uma arquitetura desenhada para ser a mais flexvel possvel como o objetivo de atender a uma ampla faixa de requisitos de negcio e legais. Os mdulos que compem o sistema podem ser instalados em uma mesma mquina ou em equipamentos separados para evitar problemas de desempenho nas funes e neste caso toda a comunicao ocorre via conexes TCP/IP seguras. Os mdulos principais do sistema so: - UniCERT Certification Authority: o ncleo da soluo e responsvel por gerar e assinar os certificados e as LCRs. - UniCERT Certificate Status Server: este mdulo prov informaes em tempo real da situao dos certificados usando o protocolo OCSP para todos os mdulos do UniCERT assim como para requisies externas. - UniCERT Publisher: a AC tipicamente necessita tornar pblico os certificados emitidos. No UniCERT isto feito por este mdulo que possui a capacidade de exportar os certificados para vrios formatos e public-los em sistemas LDAP de 48
diversos fabricantes alm do Microsoft Active Directory. Como diferencial desse sistema, existe a capacidade de controlar quais certificados sero publicado em quais sistemas. Entrust Authority Security Manager4 A suite de produtos da Entrust tem como parte central o Entrust Authority Security Manager atualmente na verso 4.5. Este sistema rodeado por uma srie de outros, que so: - Self-administration Server: responsvel por automatizar e assim facilitar todo o processo de requisio de certificados e recuperao de chaves. - Administration Services: aplicao baseada na web que possibilita a delegao e distribuio da administrao do Security Manager - Timestamp Server: utilizado para fornecer um selo temporal para as aes realizadas - Enrollment Server for Web: empregado para emitir certificados digitais para aplicaes e dispositivos que operem via web - Enrollment for VPN: verso do sistema anterior voltada para aplicaes e dispositivos que utilizem VPNs.
49
podem ser implantados (incluindo como integr-los com outras aplicaes) e alguns cases reais. Nelas possivel verificar que existe uma estreita relao entre os componentes genricos da Figura A.1 com os existentes em cada produto. As funcionalidades bsicas diferem pouco, variando, em geral, no nome atribudo, na forma como so implementadas (por exemplo, com relao aos ajustes das interfaces) e na forma de segmentao dos servios.
3.1.2.1 Caractersticas
As informaes apresentadas nas tabelas que seguem foram obtidas das pginas eletrnicas dos fabricantes, dos artigos tcnicos por eles fornecidos sobre os produtos, dos cases implementados por algumas empresas que adquiriram a soluo e em revistas eletrnicas especializadas neste nicho de mercado. importante destacar que essas informaes foram encontradas pulverizadas por estas fontes, e em alguns casos, ocultas em detalhes das descries. As caractersticas foram agrupadas da seguinte forma:
Tabela 3.1: Sistema Operacional e Repositrios suportadosa
Produto Entrust ASM RSA Keon Baltimore UniCert Compaq Tru64 Microsoft Win NT4 Microsoft Win 2K Solaris 7e8 HP UX 11.0 AIX 4.3.3+
a. Nenhuma das plataforma fornece suporte a qualquer distribuio do GNU/Linux ou suporte a qualquer SGDB gratuito, como MySQL ou Postgress
Sim Sim
50
Sim
Sim
via plug-in no cliente (Entrust/Entelligence), protegido por sees com SPKM/GSS-API e usando o protoclo PKIX-CMP sees SPKM/GSS-API e usando o protoclo PKIXCMP Suportados como recurso adicional a segurana j existente Suportados como recurso adicional a segurana j existente, dispositivos usados incluem: Chrysalis, Zaxus e Atalla
Comunicao AC-AR
sees protegidas via SSL v2 ou v3 Sim. Usurios podem usar o RSA SecurID para obter seus certificados. Sim, via HSM. Acesso controlado por segredo compartilhado.
Mensagens PKIX CMP (sempre assinada) Sim para AC, AR e Admins, dependendo do controle de acesso estabelecido. Sim, via um dos seguinte modulos: Baltimore Technologies Sureware Keyper e nForce
Sim Sim
Sim Sim, dentro das extenses suportadas CCE EAL4+ e Identrus N/A
Validaes de Terceiros
51
Sim
Sim
Sim
Todas + SET
Todas + PEM, SET e SPKM C++ e Java No teoricamente ilimitado (informao do fabricante) ilimitado (informao do fabricante)
Certificao Cruzada Permitida Em que nvel a AC pode ter certificao cruzada? Multiplas AC/ AR permitidas?
peer-to-peer e hierrquica. Redes hibridas tambm so suportadas. Suporte a PKCS 7/10 e PKIX-CMP Apenas raiz
Qualquer
52
O RSA SecurID token suportado via Virtual Smartcard. O sistema tambm suporta smartcards comuns nos padres PC/SC e PKCS#11 Sim, usando qualquer um dos citados acima
Via PKCS#11, exemplo: Sureware Keyper, Chrysalis Luna CA3, nCipher nShield/ nForce, Datakey, Gemplus, Oberthur, ActivCard, Rainbow etc Especfica os dispositivo que podem ser usados, mas normalmente emprega login e senha Software / smartcard / token
Proteo do Cliente
Aplicaes Entrust-Ready tem acesso ao Entrust Digital ID armazenado em smartcards e usam dispositivos biomtricos para autenticao. Uso de dispositivos de hardware citados anteriormente. Necessidade de acesso fsico para certas operaes. Uso de smartcards para autenticao da AR suportado
Proteo do Administrador da AC
Proteo do Administrador da AR
Sim. Tanto dos certificados com das chaves e sem a necessidade de interveno do usurio ou do administrador de acordo com a poltica definida pela AR. As chaves so gerenciadas automaticamente. O usurio no necessita saber qual chave foi usada num processo.
No na verso corrente, o usurio precisa acessar uma homepage para atualizar suas chaves e certificados. O RSA Keon Web PassPort permite que o usurio mantenha armazenado todo o histrico da chave em um smartcard virtual.
53
Backup apenas para chaves de sigilo, no para as de assinatura (identificao) A recuperao pode ser via auto-servio baseado em segredo compartilhado sem a ao do admin da AR ou via ao dos admins da AR (requer multiplas aprovaes para tal fim).
A AC pode ter um Key Recovery Module para as chaves de sigilo e faz uso de um HSM. Para AC com chaves baseadas em soft o backup feito junto com o do sistema. J as baseadas em hard necessitam de outro equipamento com tal funcionalidade.
Interface grfica e por linha de comando. Sim, pode default existem 3 nveis. Sim. Ilimitados. Sim. Admins podem ser definidos com base em mais de 100 regras customizveis, muitas destas j predefinidas.
Sim Sim, operadores da AC podem ter separao de regras. Operadores das ARs so podem fazer uso de polticas a eles alocadas.
Sute Bsica para 100 licenas Todos os extras para 100 licenas Sute Bsica para 1.000 licenas Todos os extras para 1.000 licenas
54
Sute Bsica para 10.000 licenas Todos os extras para 10.000 licenas a. Preos em dolares americanos b. Entrust/PKI + Entrust/Direct c. Web Passport + Keon CA d. Entrust/Roaming + Entrust/AutoRA e. Keon RA apenas f. Oracle + LDAP Server
343.750 152.500
242.500 10.000
163.800 3.500
Durante a pesquisa feita, duas arquiteturas de ICP foram detectadas: uma focada na prestao do servio e outra na comercializao da soluo em software. Cada uma dessas abordagens possui seus prs e contras, que podem ser resumidos nos seguintes: Prestao do Servio: nessa opo a vantagem principal se encontra no baixo custo inicial de adoo da tecnologia, visto que no ser necessrio gerar (e em alguns casos at construir) um ambiente seguro nem treinar uma equipe para instalar, configurar e manter o sistema. Entretanto, isso pode causar um problema de dependncia tecnolgica e com a entrada em amplo uso da tecnologia pela empresa que contrata o servio o custo pode vir a ser um problema de mdio a longo prazo. Em geral o servio fornecido sobre a forma de venda por um perodo determinado de certificados, ou em casos onde o nmero de certificados e os controles sobre os mesmos precisam ser especficos pode-se optar por uma outra modalidade chamada de ICP Gerenciada onde toda a parte fsica e lgica permanecem sob o controle da prestadora do servio e apenas uma interface de gerenciamento disponibilizada ao cliente, onde este pode executar um maior nmero de configuraes e ajustes. Este tipo de relacionamento pode ser invivel quando os controles necessrios estipulados pelos clientes passam a ser muito rgidos e com valores de indenizaes muito altos devido ao teor do negcio onde os certificados sero empregados. Nesta situao a opo mais adquada a criao de um ambiente seguro prprio e a aquisio de uma soluo em software. Venda da Soluo: a aquisio de uma soluo em software tem como dife-
55
rencial sobre a anterior o fato de garantir de certo modo uma independncia tecnolgica e uma autonomia sobre todo o processo. Em contra partida, somente a soluo em software no suficiente para implantar uma ICP, h a necessidade de um ambiente fsico seguro e de uma equipe altamente qualificada para gerenciar todo o processo, o que eleva em muito o custo inicial dessa abordagem. A implementao de um ambiente computacional de apoio a tecnologia da informao envolve diversas reas do conhecimento que possuem requisitos e tratamentos distintos. A crescente necessidade desses sistemas conduziu ao desenvolvimento desta rea de estudo e levou criao de algumas normas para auxiliar na difcil tarefa de reunir equipamentos, pessoal e procedimentos de forma a obter um resultado desejado. Uma ICP em ltima instncia um ambiente computacional que sofre com todos os problemas comuns a estes ambientes e por este motivo sua implantao pode se basear nas recomendaes genricas das normas existentes, como a NBR ISO/IEC 17799. Existem duas solues que podem ser adotadas para colocar em prtica os controles fsicos apresentados nas normas. A primeira a construo de um local especfico para abrigar os equipamentos e as operaes. No pas, apenas duas empresas constroem ambientes seguros de TI (incluindo prdios e salas-cofre) que so: - Aceco TI (www.aceco.com.br) que utiliza a tecnologia empresa Alem Lampertz - Caviglia (www.caviglia.com.br) que utiliza a tecnologia da Americana Firelock Esse domnio das duas empresas fica ainda mais claro quando observamos as normas mundiais existentes sobre ambientes fsicos seguros. So apenas duas: uma Alem chamada VDMA 2491 e outra americana, chamada UL72. A segunda opo a locao, que pode ocorrer em vrios nveis, por exemplo: - compartilhamento de servidor: um ou mais clientes dividem o processamento de uma mquina presente fisicamente em um ambiente seguro, normalmente com acesso e servios limitados. - aluguel da infra-estrutura fsica, como espacos em racks (com fornecimento de energia e conexo inclusas). - colocation: locao de uma sala isolada dentro de um ambiente seguro. Este servio fornecido no Brasil por algumas empresas, como a Optiglobe (www.opti56
globe.com.br)
3.2.1 OpenSSL
Talvez o mais conhecido de todos os pacotes de criptografia, o OpenSSL surgiu da proposta da Netscape em criar um canal seguro (Secure Socket Layer, da as letras SSL) entre navegadores e servidores web. Esse software nada mais que um implementao do SSL, atualmente na sua terceira verso. Uma das formas de operao deste protocolo faz uso dos certificados digitais e por este motivo foram includos no pacote funes e utilitrios para a criao e uma gerncia simples dos certificados. O utilitrio principal para desempenhar as funes bsicas de uma autoridade certificadora chama-se CA.pl e implementado na linguagem PERL constituindo um front-end simples para as longas linhas de comando dos mdulos do pacote OpenSSL. importante destacar que a forma de armazenamento e gerncia dos certificados mnima, utilizando arquivos no formato texto para os ndices e guardando cada certificado em um arquivo separado, o que dificulta muito vrios processos como a localizao de um certificado e principalmente a manuteno desta base. Esse sistema no pode ser considerado como um software para ICP pois no implementa muitas das funcionalidades necessrias ainda que seja largamente empregado como base para algumas implementaes de sistemas para ICPs, como ser visto.
57
3.2.2 OpenCA
O projeto do OpenCA gerenciado usando um processo colaborativo e baseado no consenso dos participantes voluntrios. O detalhe neste sistema que ele focado no usurio do software. Esse usurio quem relata os problemas, envia sugestes e conduz os esforos da equipe de desenvolvimento. O site reporta trs projetos dos quais dois ainda esto em fase de ativao. O terceiro projeto o que d nome ao site e tem como objetivo desenvolver uma Autoridade Certificadora robusta, de cdigo aberto e repleta de funcionalidades implementando os protocolos mais usados. O projeto OpenCA baseado em vrios outros projetos de cdigo livre como OpenLDAP, Apache e principalmente o OpenSSL que usado como base para a emisso dos certificados e todas as necessidades de criptografia desse servidor. As principais vantagens so: Suporte para diversos bancos de dados (SGDB) atravs de mdulos adaptadores Sistema de exportao de usurios e certificados, porm sem suporte ao backup da chave privada Divulgao de certificados por LDAP baseada no OpenLDAP Suporte criptografia e gerao dos certificados fornecidos pelo OpenSSL Principais desvantagens: Suporte apenas aos sistema operacionais unix-like (no pode ser usado em plataforma Win32 devido s permisses dos usurios e grupos para segurana do sistema) Emprego da interface web para gerncia difculta a compreenso do funcionamento do sistema com um todo e a manuteno (criao e visualizao) das polticas de certificao, que so as regras usadas para se autorizar a assinatura de um certificado. Dificuldade de modificao do cdigo devida grande fragmentao do 58
3.2.3 IDX-PKI
O projeto IDX-PKI segue o padro PKIX da IETF para infra-estrutura de chave pblica. Ele foi desenvolvido pela companhia francesa IdealX que o publica e mantm sob licena GPL. A IDX-PKI usa Perl, PHP, C, shellscripts, bem como alguns utilitarios GNU, e j est pronta para o uso dirio, apesar de continuar sendo aperfeioado. Entre outras coisas, esto planejadas a capacidade de comunicao segura entre diferentes ICPs e mais um nvel de abstrao, que tornar possvel escolher o repositrio, seja banco de dados, LDAP ou sistema de arquivos. As principais vantagens so: Grupo de desenvolvimento bastante ativo e focado nas funcionalidades; Apoio financeiro de uma empresa, que faz com que o grupo de trabalho permanea coeso e focado Suporte s empresas que desejarem adotar o produto Adoo da licensa GNU Flexibilidade na modificao do cdigo Armazenamento dos certificados usando LDAP ou banco de dados SQL Divulgao dos certificados usando LCRs ou OCSP As desvantagens so: Modularidade excessiva, resultado da caracterstica do grupo de trabalho, gerando muitos e pequenos mdulos em linguagens diversas, resolvendo pequenos
59
problemas mas dificultando a expanso e a troca de componentes; Suporte apenas aos sistema operacionais unix-like (devido ao uso de shellscripts e utilitrios da GNU) Dificuldade de instalao devida dependncia de mdulos do PERL Falta de documentao
3.2.4 NewPKI
NewPKI um projeto de desenvolvido nas horas vagas por uma nica pessoa, Frdric Giudicelli. Ele baseado na API de baixo nvel do OpenSSL e todos os dados so gerenciados atravs de um banco de dados, o que, segundo o autor prov, maior flexibilidade que o gerenciamento feito pelo OpenSSL, proporcionando, entre outras coisas, um forma simples de pesquisa. At o momento apenas o SGDB MySQL suportado, porm devido camada de abstrao utilizada para acessar a base da dados, virtualmente qualquer outro banco de dados poder ser empregado. A Implementao feita em C++ o que possibilita a portabilidade do sistema para outras plataformas. As vantagens so: Gerenciamento de mltiplas AC em um nico servidor. Suporte ao controle de polticas de certificao. Revogao de certificados, gerao e publicao via LCR ou OCSP. Visualizao do status do processo de certificao via web e notificaes por email. Linguagem nica no desenvolvimento Desvantagens da soluo Ausncia de um grupo de desenvolvimento. Uma nica pessoa dita o cami-
60
nho a ser seguido O projeto possui um desenvolvimento lento pois o autor e desenvolvedor no se dedica a ele integralmente. O armazenamento no pode ser feito numa base LDAP
No LDAP/ MySQL No
No No MySQL
No No MySQL
No LDAP/ MySQL No
No LDAP/ MySQL No
No Sim Sim
No No No
No No No
61
Somente via web, usando SSL N/A Sim, os suportados pela Engine do OpenSSL No
Somente via web, usando SSL N/A Sim, os suportados pela Engine do OpenSSL No
Somente via web, usando SSL Via SSL Sim, os suportados pela Engine do OpenSSL Sim
No No N/A No
Sim No N/A No
No No N/A No
No
No
No
62
Deficiente Grupo ativo e composto na totalidade por voluntrios Vrias, as principais so C e Perl
Deficiente Grupo coeso e apoiado por uma empresa Vrias, as principais: C, Perl e PHP
Satisfatria, ainda que incompleta No existe um grupo de desenvolvimento, o projeto de uma nica pessoa. C/C++
Grupo
Linguagem empregada
o OpenSSL assim como o OpenCA no implementam ICPs completas, ainda que caminhem nesta direo a IDX-PKI mostrou-se uma boa soluo pelas funcionalidades que implementa e pela velocidade de desenvolvimento do projeto, mas seu cdigo muito segmentado e por isso de difcil manipulao. A soluo que mais se destacou com relao aos pontos considerados foi a NewPKI. A documentao existente ainda que resumida bem satisfatria. A estrutura proposta nesta soluo bem simples e funcional e possui a grande vantagem de empregar um banco de dados conhecido (MySQL) para o armazenamento dos certificados e logs. Todo o processo de comunicao do servidor com o mdulo de gerncia no via HTTP, porm seguro devido ao emprego de um canal cifrado usando SSL. Existe uma interface de gerncia grfica para Windows. Grande parte da operao segue os padres, principalmente as partes mais crticas como o processo de requisio. Existe uma interface web que utilizada para a requisio dos certificados e extremamente til pois cria uma forma que possibilita ao requerente acompanhar o processo de certificao visualizando a condio da sua soliticao. O cdigo fonte, escrito em C++ e orientado a objetos, permite fcil compreenso e conta com uma diviso coerente das classes.
3.2.6.1 Funcionalidades Adicionadas
Analisando as caractersticas das solues comerciais e confrontando com as necessidades da implementao de avaliao verificou-se que duas funcionalidades extras eram desejveis, e no existiam na NewPKI, que so: Sistema de aviso de expirao do certificado com ajuste de antecedncia, o que pode evitar que um usurio fique sem ter um certificado vlido inadvertidamente. Sistema de backup da AC (incluindo configuraes e a base de dados) A primeira funcionalidade foi implementada utilizando um script, feito em PHP executado periodicamente pelo sistema que abriga a AC via entrada na tabela do crontab. O 64
segundo foi implementado utilizando a ferramenta MySQLCC, gratuita e mantida pela mesma equipe que desenvolve o MySQL. Essa soluo foi escolhida devido ao grupo que a desenvolve conhecer profundamente o produto e pelo fato dela ter suporte a conexes seguras com o banco de dados usando SSL o que faz com que o procedimento de backup seja seguro.
3.2.6.2 Interface WEB
Visando a integrao da NewPKI com o sistema do AirStrike foi utilizada uma interface WEB, escrita em PHP, que permite esta integrao (vide Figura 3-2). Esta interface prov as funcionalidades de uma Autoridade Registradora e baseada numa interface fornecida pelo desenvolvedor da NewPKI que na ocasio da obteno no estava totalmente funcional.
Nessa tela inicial existe um menu lateral composto por 7 opes que so: (1)Certificado SSL: prov o mecanismo necessrio para que o cliente possa obter certificado do servidor SSL utilizado nas conexes seguras. (2)Certificado OCSP: do mesmo modo, esta opo permite que o cliente 65
obtenha o certificado do OCSP Responder utilizado por todas as Autoridade Certificadora listadas. (3)Criar Requisio: esta opo utilizada para efetuar a solicitao de certificados dos clientes (vide Figura 3-3 e Figura 3-4). (4)Situao da Requisio: aps a solicitao, com esta opo, pode-se acompanhar o andamento do processo de emisso (vide Figura 3-5) e ao final (vide Figura 3-6) pode-se obter o certificado. (5)Certificados Revogados: apresenta uma relao de certificados revogados. (6)Obter LCR: permite ao cliente obter a lista de certificados revogados mais recente. (7)Certificado da AC: permite ao cliente obter o certificados da AC selecionada no menu central da tela. .
66
67
Existe atualmente uma tendncia das empresas e principalmente de alguns governos de migrar do software proprietrio para as verses livres. Como exemplos recentes temos a Venezuela[41] e o governo do Rio Gande do Sul o Metr/SP[42] e a Defense Information Systems Agency (DISA), diviso de sistemas de informao do departamento de defesa norte-americano (DOD)[43] que esto deixando de usar a suite de aplicativos de cdigo fechado, como o Microsoft Office, e passando para as verses livres e compatveis como o StarOffice e o OpenOffice. A principal motivao ainda o alto custo do sofware proprietrio, porm o fato das verses gratuitas serem de cdigo aberto traz novas razes, como por exemplo o ajuste segundo as necessidades, maior segurana, capacidade de ser auditado, entre outras. Alguns pesquisadores advocam que o incentivo criao e uso do software livre tem impactos benficos sobre a questo social como relata Fbio Kon no relatrio O software aberto e a questo social[40]. Richard Stallman, precursor deste movimento e notrio defensor do software livre, em vrias situaes, como na palestra proferida no MIT por ocasio do Communications Form em 19 de abril de 2001 tambm aborda o assunto e se mostra favorvel idia. Organismos como a Free Software Fundation
68
(FSF) e a Associao Brasileira de Software Livre (ABRASOL) tm auxiliado muito neste sentido, divulgando a filosofia, apoiando o desenvolvimento e a adoo. Ainda difcil determinar a penetrao deste novo paradigma entre as diversas reas do conhecimento o que torna complexo determinar quais so as motivaes reais para essa mudana. Em geral dois pontos principais que parecem ser comuns maioria dos ramos de negcios no centrados na tecnologia da informao, que so: Personalizao e Adequao Nas situaes em que o cdigo fonte livre torna-se possvel a alterao do mesmo gerando novas verses que personalizam o produto e/ou adequam o seu uso ou desempenho as reais necessidade. Qualquer necessidade futura pode ser novamente inserida, bastando em muitos casos apenas uma recompilao do cdigo. Custo Este tem precisa ser considerado sob dois aspectos: primeiro o custo de obteno e o segundo o custo de treinamento e/ou suporte. O primeiro uma questo importante, principalmente para empresas cuja natureza do negcio no seja tecnologia. Existem classes de aplicativos de uso geral, como editores de texto, planilhas e outros que podem ser obtidos gratuitamente e no precisam de terinamento e/ou suporte. O segundo aspecto fundamentalmente relacionado com os aplicativos que necessitam de treinamento e/ou suporte constante. Neste caso, em geral, o grande nmero de usurios garante o suporte necessrio fazendo com que o aprendizado seja incremental, conforme a necessidade. Existe um terceiro motivo muito ligado a outra classe de empresas, as centradas na tecnologia da informao, que precisam levar em considerao outras questes como: correo de falhas, continuidade do desenvolvimento, segurana e confiana. Com o cdigo fonte disponvel pode-se fazer o que se desejar com ele, principalmente correes. Em geral, os softwares livres possuem muitos interessados e desenvolvedores que por razes diversas dispendem esforos no s na expanso dos recursos mas tambm na correo das falhas. Isso ocorre em muitos nveis, mas em geral torna-se um
69
esforo mundial fazendo com que o grande nmero de usurios acelere a deteco das falhas e conseqentemente a correo destas. A segurana e a confiana nesses programas ultimamente o ponto mais atacado pelas empresas que produzem programas com cdigo fechado. Recentes vunerabilidades encontradas no servidor Apache (o mais usado segundo a pesquisa da E-Soft) e no OpenSSL levaram a revista eletrnica eWeek a avaliar a segurana dos programas de cdigo aberto numa matria entitulada Open Source: A False Sense of Security?[44]. Citando a opinio de vrias partes com experincias tanto em software livre quanto proprietrio, o consenso mostrou que o primeiro no automaticamente mais seguro, mas geralmente o modelo de desenvolvimento do software livre[45] possibilita que as falhas sejam rapidamente solucionadas, o que aumenta muito a segurana. Um relatrio tcnico entitulado Two Case Studies of Open Source Software Development: Apache and Mozilla[46] examina a argumentao de que o mtodo de desenvolvimento do software de cdigo aberto comparvel, seno melhor, que o mtodo de desenvolvimento tradicional comercial. O autor formula vrias hipteses analisando dados do projeto do Apache e do Mozilla e conclui, com boas expectativas, que um processo de desenvolvimento hbrido ser o adotado no futuro. Um dos argumentos empregado pelas empresas de software fechado que o custo e a segurana dos seus sistemas se baseia na produo prpria do cdigo, o que nem sempre pode ser comprovado ou verdade. O fato que em muitos casos o software livre copiado e agregado a outros sem que isso seja divulgado. Como resultado, muitos de ns j usamos desavisadamente software livre (furtado) sem saber. Dois fortes exemplos comprovam esta afirmao: 1o. uma falha no cdigo do FreeBSD que se encarrega de remontar os pacotes TCP/IP foi detectada e para surpresa dos pesquisadores a mesma falha foi encontrada numa verso do Windows, mostrando ao menos que a mesma idia foi usada mas alguns garantem que a semelhana to grande que pode-se considerar que o mesmo cdigo foi utilizado.
70
2o. semelhantemente, outra falha, agora no OpenSSL tambm foi encontrada no pacote criptogrfico da RSA Security o RSABsafe. A diferena que a soluo para o primeiro foi quase imediata. Estes dois casos derrubam o principal argumento das empresas de software fechado e estas no conseguem refutar outra grande vantagem do software aberto: a capacidade de ser auditado.
71
Captulo
Este captulo descreve o procedimento e os resultados obtidos durante o processo de desenvolvimento do cliente e do servidor OCSP a serem integrados com a soluo de ICP selecionada anteriormente. Em resumo, foram realizadas 2 fases: na primeira (seo 4.1) foi feita uma pesquisa visando obter informaes e exemplos que pudessem auxiliar no processo de compreenso e desenvolvimento do programa. Na segunda (seo 4.2), foi realizada a implementao dos dois aplicativos que devido natureza experimental, foram validados num ltimo procedimento.
72
cert5 se destaca pois, em parceria com o Openvalidation6, fornecem a nica referncia pblica para implementadores desse protocolo. Uma segunda fonte de informaes foi obtida do Laboratrio de Segurana Computacional da Escola Politcnica de Torino7 (TORSEC). Este laboratrio fornece alm de informaes, a nica implementao compilada (para win32 e linux, os fontes no esto disponveis) de um cliente e um servidor OCSP alm de um conjunto de certificados para testes. Para estudar a operao das implementaes, foi utilizado o cliente TORSEC e trs servidores: o tambm fornecido pelo TORSEC, o acessvel para testes do OpenValidation e o incluso na soluo selecionada. Os navegadores web com suporte ao OCSP no foram utilizados como clientes pois no disponibilizam as mensagens de erro e nem fornecem acesso fcil aos certificados de teste. O resultado dos testes apresentado na tabela que segue.
Cliente TORSEC executado localmente em ambiente win32 TORSEC executado localmente em ambiente win32
Certificados fornecidos junto com o pacote de teste do TORSEC fornecidos junto com o pacote de teste do TORSEC
Observaes As instrues de teste fornecidas funcionaram sem erro. variaes nos parmetros do cliente levaram a resultados diferentes, apontando para problemas de implementao em uma das partes. Algumas respostas no foram compreendidas corretamente pelo cliente.
Com as informaes obtidas, observou-se que existem duas formas de operacionalizar (por parte do cliente) a verificao de certificados usando OCSP. A primeira obtm do prprio certificado a ser verificado as informaes necessrias, ou seja, a localizao do OCSP Responder a ser usado. O procedimento semelhante ao empregado para localizar a LCR associada a um certificado, diferindo apenas no objeto que carrega
5. www.valicert.net 6. www.openvalidation.org 7. http://security.polito.it/tools/ocsp/
73
esta informao. A definio do campo que armazena essa informao feita na RFC 3260 (que atualiza a RFC 2459 mencionada na RFC 2560 com sendo a fonte das informaes). No segundo procedimento o cliente ignora, caso exista, esta informao e utiliza um endereo fornecido pelo usurio. Este segundo procedimento possibilita que certificados gerados sem a localizao de um Responder possam futuramente ser checados em um. Aps estes testes, foram conduzidos dois estudos para finalisar esta fase. O primeiro visando descrever o protocolo e o segundo com o objetivo de verificar a melhor forma de implementao. Ambos so apresentados em datalhes nas sees seguintes.
74
podem ser obtidas de outras fontes, como banco de dados, adequadamente menos sensveis questo temporal, como so as LCRs. A definio do OCSP tambm no amarra o protocolo de transporte, qualquer um pode ser utilizado, desde que compreendido pelas partes. O mais comum em funcionamento atualmente o HTTP. 4.1.1.1 Contedo obrigatrio da requisio do cliente O protocolo requer que os seguintes campos estejam presentes na requisio: verso do protocolo um identificador do certificado a ser verificado Outras informaes, como extenses, que podem ser processadas ou no pelo Responder e a assinatura do requerente, podem ser includas na mensagem, mas no so obrigatrias. 4.1.1.2 Tipos de respostas do servidor Durante seu uso, o servidor pode estar em dois estados, e para cada um desses existe um conjunto de respostas possveis. Os dois estados so: No operacional: este estado pode ocorrer nas seguintes condies: - durante o processo de inicializao do servidor, ou - durante seu processo de operao, quando algum problema interno (falha de operao ou exausto dos recursos do sistema, por exemplo) ou externo (perda de conexo com alguma autoridade envolvida no processo) ocorrer. Quando neste estado, o servidor somente retorna mensagens de erro no assinadas, que podem ser internal error ou try later. Operacional: neste estado o servidor est apto a processar as requisies. As respostas geradas neste estado, exceto as de erro, sero assinadas e compostas por: - verso do protocolo - nome do servidor - informaes temporais (nos campos thisUpdate, nextUpdate e producedAt) - resposta para o certificado presente na resquisio do cliente 75
- extenses opcionais - OID do algoritmos utilizado na assinatura - assinatura computada sobre o hash da resposta (todos os campos j relacionados) Para cada certificado checado, trs estados podem ser informados: good, revoked e unknown e trs mensagens de erro podem ser geradas: signature required, mal formed request ou unauthorized.
76
Essas duas bibliotecas foram selecionadas, aps uma avaliao junto com outras (vide Apndice II) para as implementaes devido ao seu largo emprego, maturidade, boa documentao e adequao ao propsito. Foram requisitos tambm para esta escolha o fato de ambas serem implementadas em C e serem portveis.
localizao do OCSP Responder estava errada. O formato correto exige a presena do protocolo de transporte, no apenas do endereo do Responder. Corrigida esta falha, os resultados encontrados foram os mesmos obtidos anteriormente, indicando que os certificados gerados so funcionalmente semelhantes aos anteriores. Este procedimento encerrou a fase de validao dos certificados. De posse destes certificados e com o auxlio dos servidores existente foram testados dois clientes desenvolvidos, cada um usando uma das bibliotecas selecionadas. Ainda que estruturalmente diferentes, devido diferena de abordagem de cada biblioteca, funcionalmente os clientes foram desenvolvidos seguindo o esquema da Figura 4.1.
Incio 1
N
L os parmetros de entrada Parmetros corretos ? Importa os certificados obrigatrios
N
Importao correta ?
N
Importao correta ? Importa o certificado do Responder
N
Certificado do Responder Presente ?
N
O endereo do Responder fornecido ?
N
1 Informa o erro 1
N
Fim Apresenta o resultado Trata os dados da resposta
Resposta recebida ?
78
Nestes esquema, ambos recebem como parmetros de entrada: - o certificado a ser verificado - o certificado da AC que emitiu o certificado - opcionalmente o certificado do Responder caso este no seja a AC que emitiu o certificado - opcionalmente o endereo do Responder. Se um endereo for fornecido o existente no certificado ser ignorado, caso nenhum seja fornecido e no exista um no certificado este erro ser informado. O certificado a ser verificado tambm ser usado para assinar a requisio apenas para reduzir a quantidade de certificados em uso e simplificar o procedimento de teste. Estes clientes foram testados tendo como servidor o fornecido pelo TORSEC e o existente no NewPKI. O servidor do OpenValidation no pode ser usado pois no possvel tranferir para eles os certificados gerados e necessrios na criao da resposta gerada pelo Responder. Os resultados foram os seguintes:
Cliente cliente desenvolvido usando OpenSSL cliente desenvolvido usando OpenSSL cliente desenvolvido usando Cryptlib
Servidor TORSEC executado localmente em ambiente win32 NewPKI TORSEC executado localmente em ambiente win32
Observaes resultado inconsistente na rotina OCSP_check_validity da biblioteca OpenSSL dem ao anterior devido aos controles de segurana da biblioteca cryptlib o cliente apresentou um problema na leitura do formato dos certificados, que foi corrigido alterando-se o nvel de compatibilidade desta. dem ao anterior
conjunto de teste
NewPKI
Validados os clientes e os conjuntos de certificados iniciou-se o desenvolvimento dos servidores. Dada a semelhana do formato da requisio com o da resposta, o procedimento de desenvolvimento do servidor foi bem semelhante ao do cliente, seguindo o esquema da Figura 4.2. A diferena bsica que o servidor precisa permanecer ativo aps cada 79
resposta gerada por ele e que as respostas vlidas precisam ser assinadas e para isso torna-se obrigatrio fornecer a chave privada e a senha de acesso a ela como parmetros ao programa.
Inc io 1
N
Le os param etros de entrada P aram etros c orretos ? Im porta os c ertific ados obrigatrios
N
Im porta o c orreta ?
A guarda um a requis i o
Im porta o c orreta ?
N
1
N
O u ve u m a req u isi o ?
N
Req u isi o co rreta ?
Inform a o erro
Fim
Os servidores desenvolvidos foram testados com os clientes e certificados j validados. Os resultados apresentados na tabela seguinte mostram que a operao do conjunto foi completada corretamente. O resultado inconsistente obtido da rotina OCSP_check_validity da biblioteca OpenSSL est relacionado com a configurao do fuso horrio do sistema operacional usado nos teste (Windows 2000). Esse erro no interfere na operao do protocolo de uma forma geral.
80
Cliente cliente desenvolvido usando OpenSSL cliente desenvolvido usando Cryptlib cliente desenvolvido usando OpenSSL cliente desenvolvido usando Cryptlib TORSEC executado localmente em ambiente win32 TORSEC executado localmente em ambiente win32
Servidor servidor desenvolvido usando OpenSSL servidor desenvolvido usando Cryptlib servidor desenvolvido usando Cryptlib servidor desenvolvido usando OpenSSL servidor desenvolvido usando Cryptlib servidor desenvolvido usando OpenSSL
Observaes resultado inconsistente na rotina OCSP_check_validity da biblioteca OpenSSL todos os testes ocorrem sem erros resultado inconsistente na rotina OCSP_check_validity da biblioteca OpenSSL todos os testes ocorrem sem erros as respostas foram obtidas corretamente as respostas foram obtidas corretamente
conjunto de teste
81
Captulo
Medies e Resultados
O objetivo deste captulo apresentar uma srie de medies e simulaes8 visando gerar material suficiente para que seja possvel tecer algumas comparaes entre dois mtodos de verificao de situao dos certificados: o protocolo OCSP e o mecanismo das LCRs. Essas comparaes sero feitas em duas frentes: uma focada na utilizao da largura de banda e outra no esforo computacional na gerao e processamento do material.
82
rizao de ambientes. Estudando mais a fundo a questo, percebeu-se uma forma de modelar o comportamento do tamanho das LCRs no tempo, frente a um de seus parmetros principais, em condies de uso reais. Isto foi feito obtendo com certa freqncia as LCRs promulgadas por grandes certificadoras e acompanhando a sua evoluo. As mtricas consideradas na modelagem das LCRs foram: o tamanho do arquivo digital que abriga a LCR, medido em bytes, a quantidade de indicadores de certificados revogados presentes no arquivo da LCR, a quantidade de dgitos utilizada para formar os identificadores dos certificados revogados. Essas mtricas, mesmo em nmero reduzido, mostraram que mesmo sem o conhecimento de parmetros que s so possveis de serem obtidos de dentro dos processos de revogao, e por conseguinte, dentro das aplicaes que os executam, como a freqncia das revogaes, possvel modelar as LCRs e com isso estimar o seu tamanho para certas classes de certificadoras. Os resultados deste processo so apresentados na seo seguinte.
83
tamanho do arquivo (em bytes), o nmero de identificadores de certificados na LCR e a verso do formato da lista. De posse desses valores foram geradas uma srie de curvas e a observao das mesmas levou a definio de 5 perfis distintos, que foram nomeados da seguinte forma: constante: caracterizado pela estabilidade no tamanho da lista ao longo do tempo (vide Figura 5-1). Esta lista deve provavelmente estar associada a uma certificadora de alto nvel hierrquico ou de aplicao extremamente particular e segura onde as revogaes praticamente no ocorrem. Formam o maior grupo das LCRs verificadas, com 80% das ocorrncias. crescente: caracterizado pela evoluo monotnica do tamanho da lista (vide Figura 5-2), representa possivelmente uma certificadora final, associada diretamente aos usurios onde a cada nova emisso o nmero de certificados que entram na lista (recm revogados) sempre maior do que os que saem dela (os expirados). Nessa classe, verificou-se que as listas so emitidas diariamente, ainda que sua validade seja de 10 ou 14 dias. Ocorrem em pequena quantidade, apenas 8% do total das LCRs verificadas. decrescente: com caracterstica oposta a anterior (vide Figura 5-3), representa possivelmente uma certificadora em fase de encerramento de suas operaes, aguardando apenas que todos os certificados emitidos por ela expirem. Este procedimento pode ser utilizado para executar uma mudana de poltica, por exemplo. Tambm ocorrem em pequeno nmero, apenas 4% do total. degrau: caracterizada pela mudana brusca no tamanho da lista (vide Figura 5-4), pode ser uma variao da classe constante por ocasio de um revogao expordica ou um degenerao da classe crescente, onde ocorrem poucas revogaes e por isso a lista no freqentemente atualizada. Ocorre em aproximadamente 4% das listas verificadas. tangente: caracterizada pela semelhana com a funo matemtica. Pode ser vista como uma variao do perfil crescente onde os certificados recem revogados so constantemente adicionados lista e os expirados so removidos apenas 84
85
86
87
Alm dos perfis detectados, verificou-se observando o valor obtido para a verso das listas das da Verisign que todas elas adotam a priveira verso do formato de LCRs. Na tentativa de obter LCRs de acordo com a segunda verso da lista, o procedimento de download foi tambm aplicado s listas da RSA Security e da Unicert do Brasil. Com isso foi possvel verificar que ambas usam a segunda verso da lista, que mesmo no tendo entrado em amplo uso, possui caractersticas importantes, apresentadas na seo 5.3. Os grficos que seguem apresentam os valores obtidos das listas dessas duas certificadoras.
88
89
90
91
92
93
94
5.1.3.2 Tamanho das Respostas Para obter os resultados desta simulao foram utilizados os mesmos conjuntos da simulao da requisio. O certificado extra empregado anteriormente para assinar as requisies foi utilizado com certificado de AC para assinar as respostas e para isso o arquivo contendo a sua chave privada foi necessrio. O procedimento da simulao foi o seguinte: as requisies geradas na simulao anterior eram, uma de cada vez, lidas pelo OCSP Responder criado utilizando a biblioteca cryptlib. para cada uma das requisies que eram processadas o servidor salvava em disco uma resposta assinada contendo uma situao de certificado vlido e outra de revogado. O servidor foi configurado para emitir apenas respostas bsicas, ou seja, sem a incluso de extenses e sem incluir o seu prprio certificado na resposta, o que aumentaria ainda mais o tamanho desta. Analisando os resultados obtidos verificou-se novamente que no ocorreu variao dentro dos conjuntos e que as variaes entre conjuntos dependiam do nmero de dgitos do identificador dos certificados. Alm disso, foi possvel verificar que as respostas geradas para certificados com situao revogada ou no tinham tamanhos idnticos. A tabela que segue resume os resultados
95
.
Dgitos do nmero de srie 2 6 32 Tamanho das Respostas Assinadas 1405 1407 1420 No Assinadas -
96
Aps a simulao do tempo de gerao de certificados em funo da sua quantidade foi simulado o tempo de revogao dos certificados tambm em funo da quantidade, s que agora a quantidade se refere ao nmero de certificados revogados. O procedimento desta simulao foi o seguinte: utilizando o aplicativo openssl num procedimento em lote foram sendo revogados os certificados, iniciando com 10 unidades e dobrando a cada rodada. entre cada rodada era executado 100 vezes o processo de gerao da LCR. O tempo de cada gerao era armazenado em arquivo. aps todas as rodadas, um script em PHP desenvolvido para processar o arquivo contendo os tempos de processamento obtidos era executado e calculava a mdia e o desvio dos resultados obtidos. Analisando os resultados obtidos verificou-se que a variao nos tempos de gerao das listas era sempre muito pequena, inferior a 5%. 97
dois nveis provavelmente devido ao arredondamento dos tempos obtidos. Os resultados so resumidos na figura que segue.
99
100
De posse dessas representaes e analisando outras informaes presentes nos certificados, como a data de promulgao e a de expirao (com as quais pode-se calcular o 101
perdo de validade da lista) foi possvel tecer as seguintes concluses sobre dois pontos cruciais: 5.3.1.1 Atualizao das Informaes Existem autoridades que devido ao grande nmero de certificados gerenciados ou sua poltica de certificao executam emisses de listas em intervalos bem menores que a validade das mesmas. Isto o que ocorre com a maior lista da Verisign, a class3International.crl apresentada na figura 5-13. Essa lista atualizada no mximo diariamente e possui validade de 14 dias. Como conseqencia disso, ocorre que: Clientes que possuam a capacidade de ajustar o tempo de consulta lista, ou seja, consigam ignorar as informao de expirao presente no certificado, tero acesso s informaes atualizadas na freqncia que desejarem, at o limite da gerao das listas pela autoridade, que pode ser to curto quanto se deseje. Todos os clientes que no possuam essa capacidade (por exemplo, todos os produtos da Microsoft) faro as solicitaes na mesma freqncia, determinada pelo intervalo de validade da lista. Como o momento da solicitao da primeira lista para um grande nmero de clientes independentes pode ser considerado igualmente distribudo, o resultado que no ir ocorrer picos de demanda pela lista, fazendo com que o consumo de banda devido a solicitaes igualmente distribuidas passe a ser no mais dependente do momento das solicitaes, mas apenas do tamanho da lista e do nmero de clientes. 5.3.1.2 Tamanho das LCRs Por serem essas listas emitidas em intervalos pequenos, torna-se fcil mant-las enxutas, ou seja, os certificados que tenham sido revogados so removidos da lista pouco tempo aps sua expirao. De forma semelhante, os recm revogados so adicionados lista em mdia na metade do tempo estipulado para as emisses sucessivas. Segundo os grficos gerados, algumas autoridades no consideram relevantes as caractersticas da seo anterior e ajustam seus procedimentos para outra realidade. Por
102
exemplo, a lista RSASecurityServer.crl (vide figura 5-5) parece incluir os recm revogados diariamente, mas remove os expirados apenas na data da expirao da lista. Com estas informaes e as simulaes realizadas foi possvel caracterizar os fatores que controlam o tamanho das LCRs. As comparaes entre os dois mtodos sero apresentadas na concluso ao final deste captulo. O primeiro resultado que o nmero de bytes acrescidos a uma LCRs estabiliza aps aproximadamente 300 certificados na lista, como mostra Figura 5-9, em valores que dependem basicamente dos seguintes parmetros: da presena de extenses nos certificados: para que estas possam ser usadas a verso da lista precisa ser a segunda. Porm somente a mudana da verso e a incluso de extenses lista (no em cada entrada revogada) no causam impacto na relao tamanho x quantidade, como foi verificado comparando a LCR RSAClass2PersonalCA.crl da RSA Security que varia entre 315 e 230 certificados (todas as LCRS da RSA Security so emitidas na verso 2 com duas extenses: uma definida na RFC 3280 chamada Authority Key Indentifier (AKI) e outra de uso particular identificada apenas pelo seu OID que 2.5.29.20) com as LCRs Class2ObjectSigning.crl e SecureServerTestingCA.crl da Verisign que possuem nmero de certificados semelhantes. A nica certificadora a usar extenses por certificado a Unicert do Brasil (vide Figura 5-8). Essas extenses informam a razo da revogao de cada certificado. A relao nessa LCR (a nica emitida pela autoridade) de 44 bytes/certificado, contendo cerca 77 certificados e usando nmeros de srie de 8 dgitos. O fato da LCR conter apenas 77 certificados dificulta a comparao pois no se pode considerar essa lista como tendo atingido uma relao estvel. o formato do nmero de srie dos certificados: o padro PKIX impe apenas que este nmero no seja repetido, mas nenhuma recomendao feita sobre o formato deste nmero. Autoridades que tenham a capacidade de prever o seu espao de certificados podem reduzir o tamanho das LCRs usando nmeros de srie com poucos digitos, como o caso da Thawte que em seus certificados (ex. ThawteCodeSigningCA.crl - +14 mil certificados) utiliza 6 dgitos para o nmero
103
de srie e atinge uma relao de 22 bytes/certificado enquanto os certificados da mesma ordem de grandeza da Verisign (ex. Class3InternationalServer.crl - +21 mil certificados) atingem 35 bytes/certificado com 32 dgitos no nmero de srie. importante ressaltar que os valores apresentados anteriormente podem ser considerados estveis devido ao tamanho das listas. Listas menores possuem uma relao bem maior, porm limitadas ao tamanho das listas vazias que podem ter 365 bytes (RSA Business Partner CA.crl - verso 2) ou 412 bytes (ThawtePersonalFreemailCA.crl - verso 1). Um terceiro parmetro que verificou-se influenciar no tamanho das LCRs o contedo do campo que armazena a data da revogao. Este parmetro foi detectado quando foi comparada a relao de bytes por certificado da LCR simulada com uma de tamanho semelhante (ThawteCodeSigningCA.crl). Observou-se que a LCR simulada atingiu uma relao de 30 bytes/certificado enquanto a da Thawte informava 22 bytes/certificado. Analisando as duas listas percebeu-se que essa diferena provavelmente devida ao fato de todos os certificados simulados terem sido revogados em uma mesma data, ou seja, foi perdida a variao devida aos tamanhos das datas de revogao, que composta pelo nome do dia da semana, nome do ms, dia e hora. 5.3.1.3 Mensagens OCSP Segundo o protocolo e analisando os resultados da seo 5.1.3.1, as requisies feitas pelos clientes variam de tamanho com dois parmetros principais: a presena ou no da assinatura do cliente: as requisies assinadas possuem 1666 bytes a mais que as no assinadas (aproximadamente 17x mais) devido incluso da estrutura necessria mensagem para abrigar os parmetros e a prpria assinatura. Alm disso, as requisies, assinadas ou no, aumentam de tamanho a mesma taxa: 1 byte a cada 2 dgitos no nmero de srie. o formato do nmero de srie: a variao na quantidade de dgitos no nmero de srie do certificado tambm foi aplicada as mensagens OCSP que se mostraram pouco variantes aos mesmos parmetros considerados nas LCRs. Analisando os resultados verificou-se que: 104
As respostas variam da mesma forma que as requisies e possuem tamanho equivalente s resquisies assinadas. Segundo a definio do protocolo, todas as respostas vlidas precisam ser assinadas, o que justifica o aumento considervel no tamanho da mensagem.
5.3.3 Concluses
A gerao de uma LCR sem nenhum critrio de controle por certo resultaria em uma lista desnecessariamente grande, contudo a gerao da forma adequada consegue tratar o problema eficientemente, e mesmo em grandes ambientes, o uso das LCRs torna-se vivel. Este fato aliado ao pequeno esforo de processamento na sua gerao e processamento faz dela uma boa opo para a divulgao de informaes de revogao. Porm,
105
alguns parmetros podem ser ajustados para garantir que seu tamanho permanea limitado a um valor aceitvel, por exemplo: a quantidade de dgitos do nmero de srie pode ser reduzida com base no universo de usurios. Em certas aplicaes, por exemplo quando o certificado usado como chave de acesso a um servio com durao pre-estabelecida, pode-se at reutilizar os nmeros, feitos os devidos controles. Reduzir o tamanho da chave utilizada para assinar os certificados. Em geral chaves menores fazem com que os processos ocorram mais rapidamente (vide Figura 5-15) e alm disso por possurem representao menor, ocupam menos bytes nas LCRs geradas. Esta medida deve ser adotada com os devidos controles pois quanto menor o tamanho maior o risco associado sua utilizao. Reduzir o tempo de validade dos certificados: este parmetro contribui para que os certificados aps revogados saiam rapidamente da lista, contribuindo para a sua diminuio. Gerar as LCRs sem os campos de extenso: isso por certo reduz seu tamanho e tempo de processamento por aliviar a estrutura a ser processada.
106
107
Alguns controles semelhantes podem ser feitos com as requisies das LCRs de modo a controlar o consumo de recursos da rede, por exemplo: 108
Redirecionamento de servidor, que um processo simples e eficiente quando utilizando o protocolo HTTP para a obteno das LCRs, gerando uma forma de balanceamento de carga e trfego. controlar o tempo de promulgao das listas baseando-se na demanda. Listas com poucos certificados podem ser promulgadas mais freqentemente, fazendo com que os cliente tenham sempre informaes atualizadas a um baixo custo de processamento e de transporte. Com o aumento do tamanho das listas, pode-se reduzir o tempo das promulgaes e em paralelo a isso, utilizar um protocolo de verificao online como o OCSP. Dependendo da implementao do cliente, os dois processos podem ser conjugados. Uma desvantagem percebida das LCRs est na baixa funcionalidade fornecida. Prevendo esta limitao, a segunda verso padronizada, que no foi analisada pois ainda no entrou em amplo uso, adiciona alguns mecanismos que corrigem em grande parte o problema, utilizando a mesma soluo que evoluiu o padro dos certificados da verso 1 para a 2, usando extenses. Um outro problema do uso das LCRs um maior grau de dificuldade na criao de aplicativos. Para us-las, torna-se necessrio localizar o seu servidor, baixar a lista e process-la. Durante algum momento neste processo, necessrio verificar se ela ainda no expirou e neste caso obter e armazenar uma nova. A operao com os protocolos online, tipo o OCSP analisado, bem mais simples, a cada necessidade de validao, cria-se uma requisio que enviada a um servidor e ao receber a resposta toma-se a deciso sobre a validade. No existe a necessidade de armazenar nenhum material e nem de verificar o final da validade da lista, em contra-partida o processos s pode ser executado online. Concluindo, ainda que no tenha sido possvel avaliar fielmente o impacto na rede das duas opes estudas, pois para isso seria necessrio saber as caractersticas da distribuio das requisies ao longo do tempo, pode-se comparar o tamanho das LCRs com a soma das requisies com as respostas do OCSP. A tabela que segue mostra a quantidade de certificados revogados que poderiam ser transportados em LCRs em diferentes estgios consumindo a mesma quantidade de bytes
109
das mensagens de requisio e resposta do OCSP nos dois casos possveis: com requisies assinadas e no assinadas.
Mensagens OCSPa
Tamanho em bytes
Relao Tamanho/Nmero de Certificados na LCRb 93.6(1) 16.5 34.2 62(2) 24.8 51.7 53.5(3) 37,9(4) 36.5(5) 35,3(6) 28.8 59.9 40.5 82.5 42.1 87.8 43.5 90.8 22(7) 69.9 145.6
1538 3204
Tabela 5-3. Relao tamanho/nmero de certificados em uma LCR a. Tomando por base nmeros de srie com 32 dgitos b. Listas de Referencia: (1)BTClass1Individual.crl - 5 certs. (2)Class3IntranetServer.crl - 15 certs (3)Class3WLANServer.crl - 21 certs(4)Class2ObjectSigning.crl - 128 certs (5)Class3NewOFX.crl 277 certs (6)Class3CodeSigningCA2001.crl - 1140 certs (7) ThawtePersonalFreemailIssuingCA.gif - 4200 certs
Num cenrio onde os certificados digitais fossem usados apenas para a autenticao e acesso a recursos, como o caso do ambiente do AirStrike, ocorreria por tentativa de acesso apenas uma rodada de checagem. Se para isso fosse utilizado o protocolo OCSP com requisies assinadas (sem a qual no haveria autenticao mtua de forma eficiente) seriam necessrios aproximadamente 3200 bytes. Com este valor seria possvel: obter toda uma lista com aproximadamente 6 certificados, obter aproximadente 12 certificados de uma lista com 15, ou obter 14 certificados de uma lista de 21, ou obter 20 certificados de uma lista de 277. Assumindo que em um determinado instante 10% do nmero de certificados emitidos estivessem revogados, para o primeiro caso, o nmero de usurios seria de aproximadante 60, que um nmero prximo ao nmero comum de conexes simultneas a um ponto de acesso de uma rede sem fio (que de 64 conexes). Neste cenrio, utilizando as LCRs, todos os usurios e o ponto de acesso poderiam utilizar os certificados de forma seguraentre si (pois saberiam da situao de validade dos mesmo) sem a necessidade de outras solicitaes.
110
Captulo
6.1 Introduo
A motivao para a criao do sistema AirStrike por Carrion[57] gira em torno das falhas nos atuais mecanismos de segurana das redes sem fio, principalmente no protocolo WEP. Com a insegurana desse protocolo outras solues de segurana precisam ser implementadas. O objetivo do AirStrike garantir a segurana das redes sem fio baseadas no padro 802.11b atravs do desenvolvimento de protocolos, ferramentas e metodologias de segurana[8][13]. A implantao de uma rede sem fio interligada a uma rede cabeada requer a utilizao de um gateway, chamado de Ponto de Acesso (ou Access Point - AP). Neste ambiente hbrido, onde parte das informaes trafegam por um meio no confinado, existem novos desafios, como garantir a autenticao, a autorizao e o sigilo do trfego areo e dessa forma proteger o outro trfego, o presente no segmento cabeado, isto sem perder o forte apelo da mobilidade existente nessas novas formas de rede. O AirStrike considerou a questo do controle de acesso dos usurios. A arquitetura proposta e implementada (vide Figura 6-1) faz uso de firewalls e endereamento IP no rotevel tornando possvel conter e controlar o trfego nas redes sem fio. Em resumo, o AirStrike um sistema de controle de acesso de usurios a uma rede cabeada atravs de uma rede sem fio interligada a esta pelo Ponto de Acesso, provendo uma estrutura de segurana necessria para que este acesso ocorra de forma segura e eficiente para o cliente. Os componentes principais do AirStike so: AirStrikeAP: contm as funcionalidade do ponto de acesso IEEE 802.11b e 111
os servios de DHCP, Firewall, NAT, HTTP e o servidor do mtodo de deteco de desligamento de estao (DPD - Dead Peer Detection) que chamado de isAliveDaemon. AirStrikeClient: contm as funcionalidades das estaes que iro se associar a uma WLAN AirStrike. Incluso o isAliveClient que o componente necessrio aos clientes para que estes possam informar periodicamente ao isAliveDaemon sobre sua permanncia na rede. AirStrike PKI: infra-estrutura de chaves pblicas utilizada no mbito do sistema para prover os certificados de identificao e tambm os mtodos de verificao da situao destes certificados. AirStrikeDatabase: sistema de gerenciamento de banco de dados no qual sero armazenadas as informaes de autenticao do sistema. O detalhamento do funcionamento da arquitetura proposta ser apresentado na seo que segue.
Internet
Switch
100Mbs UTP
AirStrikeAP
112
113
xiii. A STA est pronta para utilizar os recursos de rede atravs do AP xiv. Durante o perodo de conexo, o AP verifica se a STA continua ativa, a fim de que possa controlar de forma adequada as regras do firewall. A utilizao dos certificados nos tens viii a x requer a existncia de uma ICP para que estes possam ser gerados e validados. Por uma deciso de projeto, o processo de autenticao do cliente foi divido em cenrios, apresentados a seguir. No primeiro cenrio o cliente fornecia para autenticao no AP o par login e senha atravs de uma interface WEB e recebia do AP uma resposta e o seu certificado que no era verificado. Neste contexto, pelo fato do AP no receber o certificado do usurio e este no verificar o certificado do AP no era possvel autenticar mutuamente as partes que participavam do processo de autenticao tornado possvel o ataque apresentado na Figura 6-7. Isto ocorreu devido s limitaes na implementao inicial do AirStrikePKI[13]. Outros cenrios planejados consideram a troca e validao de certificados, mas para tais cenrios serem realizados tornava-se necessrio expandir as funcionalidades do AirStrikePKI, o que foi realizado nesta dissertao com uma nova implementao deste componente do sistema, agora utilizando a soluo de ICP selecionada anteriormente em conjunto com as implementaes do cliente e servidor OCSP. Com a implantao da autoridade certificadora selecionada e a incluso da implementao do cliente e servidor OCSP tornou-se possvel realizar completamente a arquitetura original proposta. Alm disso foi possvel expandir os cenrios disponveis para validao dos usurios e alterar a forma de autenticao do DPD, que possua um ponto frgil, como ser visto nas sees seguintes.
114
115
AirStrikeBD
Neste cenrio qualquer navegador web poderia ser utilizado para a autenticao do usurio. Um pr-cadastro do usurio no sistema de autenticao (composto pelo AirStrikeAP e pelo AirStrikeBD) era necessrio. Em geral a manuteno de sistemas de cadastro como este com muitos registros, composto por dados pessoais e de acesso, acarretam algumas dificuldades de gerenciamento e segurana. Alm desse problema, existe o ataque apresentado na Figura 6-7 onde um atacante pode, com os devidos acessos, se fazer passar por um usurio legtimo. Com a entrada em operao da nova implementao da autoridade certificadora AirStrikePKI (utilizando a soluo desta dissertao) foi possvel criar novos cenrios de acesso mais seguros, flexveis e de gerncia mais fcil, alguns desses cenrios so apresentados a seguir.
base pois todas elas podem ser includas no prprio certificado gerado. Com isso o custo de gerenciamento dessas informaes tende a ser menor e a segurana do processo maior. Na emisso do certificado pode-se estipular um tempo de validade para este e desta forma cria-se um mecanismo onde pode-se usar o certificado como um ticket de acesso por tempo determinado. Se durante esse perodo de validade ainda for necessrio cancelar esse acesso basta revogar esse certificado. Em geral o processo de verificao da situao do certificado feito numa freqncia pr-estabelecida que pode ser to pequena quanto se deseje e feito consultando-se uma LCR emitida pela AC contendo os certificados que foram revogados. A quase totalidade dos navegadores web e outros clientes, como alguns programas de email, j possuem o suporte necessrio para executar todo esse processo. Esta nova forma de validao pode gerar dois novos cenrios: o primeiro semelhante ao anterior com a nica diferena de que neste o certificado do AP verificado usando para isso uma consulta a uma LCR emitida pela AC que gerou o certificado do AP. Neste cenrio (vide Figura 6-4, a numerao mostra a ordem das mensagens) ainda existe o problema da autenticao do cliente pois usa-se o mtodo de login e senha, o que motiva o prximo cenrio.
AirStrikePKI
(4)obtem a LCR e checa o certificado do AP (1)envia o login e senha (3)retorna o resultado e o certificado do AP
AirStrikeAP
117
Neste segundo cenrio pode-se corrigir o problema de autenticao do usurio substituindo o uso do par login e senha pelo envio do certificado do usurio. Grficamente este cenrio pode ser esquematizado da seguinte forma :
AirStrikePKI
AirStrikeAP
Mesmo com a utilizao exclusiva dos certificados, pode-se ainda optar pelo uso do mecanismo de login e senha somente para manter uma interface conhecida pelo usurios. Nos cenrios utilizando exclusivamente os certificados digitais o AirStrikeBD passa assumir a funo de log billing (registrador de operaes executadas).
118
AirStrikePKI
AirStrikeAP
O inconveniente deste protocolo que ele ainda no totalmente suportado pelos navegadores WEB. Somente o Netscape 4.7+ ou o Mozila 1.0+ suportam esse protocolo nativamente. Nenhum produto da Microsoft possui suporte nativo para este protocolo. Como soluo para esse problema de suporte, o cliente desenvolvido nesta dissertao pode ser integrado com outras aplicaes e utilizado num mtodo standalone de autenticao de forma totalmente independente de qualquer outro aplicativo. Nestes cenrios em geral, torna-se possvel: autenticar o AirStrikeAP e o cliente de forma efetiva, ou seja, uma vez emitidos os certificados para cada uma das partes, possvel comprovar a identidade de cada uma delas mtuamente, evitando assim um ataque clssico de impersonalizao (tambm conhecido com man-in-the-middle) representado na Figura 6-7. Na verdade, ao utilizar uma chave pblica, uma entidade precisa ter a garantia de que esta chave realmente pertence entidade com a qual se deseja comunicar. Sem tal certeza, possvel obter uma chave pblica de algum se fazendo passar por outra
119
entidade.
m Espio Ativo
A autorizao utilizando certificados digitais pode ocorrer de vrias formas. Uma delas faz uso dos navegadores web. Neste caso configura-se uma pgina de acesso que quando acessada envia o certificado do servidor, no caso o prprio AP, e solicita o do cliente. Em seguida ambos verificam, cada um por seu prprio mtodo, por exemplo consultando uma LCR ou um servidor OCSP, se os certificados so vlidos e confirmada a validade est estabelecida a confiana entre as partes. Outras formas podem alterar apenas a fase inicial do processo, ou seja, a forma como os certificados so trocados. Todo o processo que segue basicamente o mesmo. Com essa troca do processo inicial, outros clientes podem ser usados, como programas legados com suporte aos certificados ou aplicativos especialmente desenvolvidos para tal fim. possvel verificar que, mesmo com estas variaes, o processo muito semelhante ao apresentado entre as fases viii a x da descrio da arquitetura, o que demonstra que a utilizao dos certificados digitais no altera substancialmente a arquitetura proposta e alm disso agrega novas funcionalidades pois elimina a necessidade do cliente acessar uma pgina web e fornecer um login e senha, que em geral, so difceis de serem gerenciados em um ambiente com grande nmero
120
de usurios. corrigir algumas deficincias do mtodo de deteco de desligamento de estao implementado. O DPD originalmente implementado no AirStrike (vide Figura 6-10) utiliza para autenticao mtua uma chave pr-estabelecida (mtodo conhecido como Pre-Shared Key - PSK). O processo implementado usando essa PSK possui falhas semelhantes s do processo de comunicao segura empregando criptografia simtrica apresentado no Apndice I. O fato dessa chave ser a mesma para todos os clientes (e servidores) permite que falsos servidores sejam facilmente criados e do mesmo modo, falsos clientes podem assaltar uma seo e continuar se comunicando com o servidor sem que este identifique esta mudana. Para resolver este problema pode-se utilizar o certificado do cliente em substituio chave compartilhada e deste modo corrigir as falhas existentes.
Usurio atravs de um navegador WEB + cliente DPD verifica a situao da estao periodicamente Servidor DPD
A comparao da arquitetura do AirStrike com as outras existentes demonstra a grande diferena entre os estgios de desenvolvimento. Em geral, as outra solues existentes (Oasis[54], NoCat[55] e NetLogon[56]) ainda no chegaram ao ponto de implementar uma proteo para seus mtodos de deteco de desligamento de estao. A utilizao dos certificados digitais na arquitetura do AirStrike faz com que esta se torne ainda mais segura, se distanciando em qualidade ainda mais das outras solues.
121
Figura 6-9. Mensagem de erro informando uso de certificado revogado pelo servidor.
122
A realizao do segundo cenrio (que pode ser visto como a autenticao dos usurios frente ao servidor usando LCR) foram usadas as mesmas configuraes do primeiro cenrios. Para autenticar os usurios junto ao servidor Apache necessario enviar o certificado do usurio para o servidor. Existem basicamente duas formas de realizar este procedimento, que so: Automtica: esta forma possvel configurando o Apache de tal modo que ao acessar um dado endereo uma solicitao automtica seja gerada pelo servidor ao navegador web pedindo a apresentao de um certificado digital para a concluso do processo. Este procedimento feito utilizando a diretiva SSLRequire na configurao Apache. Essa solitao gerada se apresenta ao usurio na forma de uma janela contendo os certificados pessoais j instalados no programa e solicitando que um deles seja selecionado. Aps essa seleo o certificado enviado e o Apache repassa o mesmo para o mod_ssl que o responsvel por fazer a validao. Esse procedimento foi exaustivamente estudado e tentado porm devido a falta de documentao sobre o processo no foi possvel execut-lo. Essa situao levou a novos estudos e durante a pesquisa foi notado que o processo de autenticao do cliente frente ao servidor no amplamente utilizado e quando ele necessrio, adota-se a soluo clssica dos CGIs, que operam conforme o segundo mtodo, descrito a seguir. Manual : este mtodo se vale do processo clssico dos CGIs no qual dados (e arquivos) so enviados ao servidor web via formulrios eletrnicos e processados no servidor por programas desenvolvidos especficamente para a funo. O processo ocorre da seguinte forma: o cliente acessa um dado endereo e uma pgina html com um formulrio de envio de arquivo apresentada. O usurio seleciona o arquivo que deseja enviar e submete o formulrio ao programa CGI de tratamento que aps realizar sua tarefa informa ao cliente e possvelmente a outros sistemas, o resultado da operao.
123
O mtodo manual foi escolhido para ser o implementado pois foi possvel realizalo e analizando este em detalhes verificou-se que ele fornece maior capacidade de customizao que o automtico. Alm disso, o processo de autenticao via OCSP no suportado pelo par Apache/mod_ssl e neste caso a nica soluo a realizao do processo usando o mtodo manual (via CGI), o que sendo tambm feito para a autenticao via LCR torna o procedimento de autenticao independente do mecanismos usado e uniforme. Outro ponto positivo sobre esta soluo que o usurio no precisa instalar o seu certificado na mquina e/ou programa que estiver usando, podendo assim mant-lo unicamente em um dispositivo externo. Essa soluo evita um problema grave de segurana que advem do fato de que aps uma instalao de certificado em uma mquina no-particular o usurio pode esquecer de remov-lo aps o uso permitindo que outros usurios usem o seu certificado. O cenrio seguinte a ser realizado ( visto como a autenticao do servidor frente ao cliente Netscape usando OCSP) tambm foi feito com base nas configuraes do primeiro cenrio. O navegador web Netscape Communicator, a partir da verso 4.7, possui suporte nativo para o protocolo OCSP podendo teoricamente atuar como cliente neste protocolo e validar certificados junto a um OCSP Responder, como descrito nos captulos anteriores. Para realizar a autenticao usando este navegador foi necessrio apenas configuralo de modo a enviar as requisies OCSP de verificao para o endereo do Responder. Todo o resto do processo ocorre do mesmo modo descrito para o processo de validao usando LCRs. O cenrio complementar ao anterior, o de autenticao do cliente Netscape frente ao servidor usando OCSP tambm foi realizado. A questo da autenticao do cliente web frente ao servidor Apache via OCSP, devido a falta de suporte no mod_ssl para este processo, s pode ser realizada utilizando CGIs, sendo o procedimento semelhante ao descrito na autenticao do cliente frente ao servidor usando LCRs. A diferena ficou restrita a funcionalidade de cada CGI, que neste caso particular executa o processo de validao do certificado enviado pelo formulrio
124
para o servidor junto a autoridade certificadora usando para isso o protocolo OCSP. Este CGI foi gerado com base no cliente OCSP anteriormente desenvolvido e validado. Este cliente foi devidamente alterado de modo a poder operar como um CGI, devido as diferenas intrnsecas deste mecanismo.
6.3.4 Concluses
A utilizao dos certificados digitais no controle de acesso agrega funcionalidades que tornam o processo como um todo mais rpido e seguro. O procedimento de validao dos certificados pode ser feito, entre outras formas, utilizando o protocolo OCSP ou o mecanismos das LCRs. Foi possvel verificar que o emprego de uma dessas opes no causa diferena significativa na funcionalidade e nem na performance do sistema, abrindo a possibilidade para que um maior nmero de clientes possam ser usados, no apenas os com suporte ao protocolo OCSP, que so muito raros na atualidade. Esta capacidade de extrema importncia pois possibilita que aplicaes legadas com suporte aos certificados digitais e somente as LCRs (a grande maioria na atualidade) e outras especialmente desenvolvidas para executar o processo de autenticao possam ser usadas neste processo. Uma vantagem do suporte ao protocolo OCSP pelo cliente que torna-se possvel escalar de forma simples e eficiente os servidores de autenticao. O servidor OCSP implementado pode ser usado independente da autoridade certificadora, reduzindo assim o custo do equipamento usado, a complexidade da configurao e simplificando a gerncia e a operao com um todo. Concluindo, a autoridade certificadora implementada nesta dissertao propicia aos usurios uma forma simples e funcional de obter os seus certificados, tornando o processo simples, do ponto de vista do cliente, devido ao emprego de uma interface web intuitiva e do ponto de vista do gerenciamento pois os administradores podero de forma independente operar o sistema, ou seja, emitir e revogar os certificados.
125
A Figura 6-10 apresenta uma proposta de extenso para a arquitetura do AirStrike, mais complexa e funcional que a arquitetura original proposta, porm perfeitamente realizvel com o novo ferramental disponvel.
Internet AirStrikePKI
Switch AirStrikeDatabase
Nessa arquitetura estendida a Autoridade Certificadora fica fora do domnio de validao (delimitado pelo switch) e pode assim atender a vrios domnios diferentes. Essa alterao torna necessria a existncia de dois outros servidores no domnio de validao, que so: o servidor de autenticao por LCR e o servidor de autenticao por OCSP, necessrios para que o processo de validao dos certificados no dependa diretamente da Autoridade Certificadora, tornando o processo como um todo mais rpido. Com relao as implementaes dos cenrios, diversos testes foram realizados ao longo do desenvolvimento e ficou claro que existem problemas de compatibilidade dos certificados quando usados no Internet Explorer e no Netscape. Isso foi detectado em vrias das combinaes de campos de extenso testadas onde verificou-se que o processo de validao do certificado enviado pelo servidor ocorreu com sucesso no Internet Explorer enquanto no Netscape erros no documentados ocorriam. Alm disso, detalhes de configurao podem comprometer o processo de validao chegando ao ponto de no executa-lo, como o padro da configurao do Internet Explorer para a verificao dos certificados de servidor enviados. Para que isso ocorra neces126
srio manualmente alterar essa configurao, que no de fcil localizao. Esse processo pode no ser permitido em alguns sistemas devido aos controles de configuraes impostas, inviabilizando a verificao dos certificados. Outro problema verificado est relacionado com o cache dos resultados das verificaes. Em diversas situaes aps entrar num domnio com um certificado vlido e passar para um subdomnio com um certificado revogado esta situao no era informada. A correta situao de revogao s e verificada aps reinicializar o navegador e acessando diretamente o subdomnio. Isso demostrou que nesta situao no possvel confiar no resultado de uma verificao feita por um navegador web aps o segundo acesso a um site que utilize certificados digitais na criao de um canal seguro. Com base nessa observaes, para obter uma validao confivel dos certificados torna-se necessrio ir alm dos mecanismos padres existentes nos navegadores e implementar outros mecanismos que podem ser extenses para estes nevagadores ou adotar clientes dedicados para este fim.
127
Captulo
7.1 Concluses
Por ser uma linha de pesquisa muito recente, a falta de material e documentao foi percebida durante todo o desenvolvimento dessa dissertao. Apenas para dar uma idia, foram retornados 111 resultados numa pesquisa feita usando a ferramenta Google com a palavra OCSP, limitada a pginas nacionais, em contra-partida mais de 300 respostas foram encontradas pesquisando LCR+certificado com as mesmas restries de procura. Essa falta de recursos dificultou o estudo, ainda mais por esta tecnologia estar sendo usada por mercados altamente lucrativos, onde tudo segredo de negcio e tambm porque existe um grave problema relacionado: a padronizao. Ficou claro durante toda a fase de pesquisa e redao desta dissertao que uma dupla concorria a todo momento: de um lado, os organismos que procuravam uma melhor soluo, mais genrica; por outro, as empresas vidas por satizfazer o desejo do mercado por solues. Este embate chegou a ser tema de estudo pelo IEEE [47]. O que se percebeu com o decorrer do estudo que no existe um vencedor nessa disputa, os dois lados precisam co-existir. Se todas as empresas gerarem solues especficas para problemas particulares, no existe o que padronizar. E por outro lado, o que se deve considerar so nveis comuns que, como colocam as recomendaes da ITU-T, tm o intuito de uma padronizao mnima. Algumas empresas de ponta nessa tecnologia, como o caso da RSA Security, contribuem para isso colhendo do mercado as necessidades, detectando os problemas e gerando as solues. Outros organismos mais rigorosos e com uma estrutura interna mais lenta, acabam ficando com a tarefa de consolidar os padres.
128
Com o tempo as solues, antes inditas e particulares, acabam tendo suas partes principais padronizadas, o que torna a tecnologia mais slida, e fornece as empresas de desenvolvimento um diretriz de trabalho e para as empresa de consumo, um guia de escolha onde estas devero ponderar entre estar no topo da tecnologia, correndo os riscos associados, ou de acordo com os padres j existentes. So estas questes que hoje direcionam a soluo mais adotada (o padro PKIX) e tambm a mais criticada. As questes principais discutidas sobre este modelo giram sobre dois pontos: o formato da estrutura de dados que so os certificados digitais: nesse ponto os especialistas advogam que esta estrutura tornou-se complexa demais pois visa fornecer mecanismos para uma gama quase infindvel de usos e aplicaes. O processo de estruturao do certificado passa por uma fase de abstrao necessria para codificar a semntica e os dados em um objeto que precisa ser tratado independentemente da plataforma e da linguagem. Aps essa fase, o certificado precisa ser armazenado e transferido entre sistemas distintos e para isso a ITU-T usou outra recomendao chamada de X.209 que no sempre adotada pois causa uma expanso na quantidade das informaes a serem transferidas. Por ltimo e no menos importante, o fato do certificado ser um objeto passivo, ou seja, ele apenas lido e processado e no possui mecanismos para interferir no prprio processamento, causa uma lacuna com relao aos campos nele existentes. Segundo as especificaes alguns campos possuem graus diferentes de tratamento chegando ao limite de impedir o uso do certificado se uma dada condio prescrita no prprio certificado no for entendida pela aplicao, mas a questo justamente essa, fica a cargo da aplicao tratar esses campos de forma adequada. e os modelos de validao: todo certificado passa por trs fases, a primeira compreende a localizao do certificado, a segunda a verificao e a terceira a validao. As trs fases fazem uso da hierarquia de validao para obter os resultados e por isso a prpria hierarquia pode tornar-se crtica em alguns casos pois devido ao seu caracter distribudo pode no ser possvel ter acesso a algumas partes da rvore. Em outro caso, a perda de confiana em um n de nvel elevado na rvore
129
pode causar srios problemas de segurana para todos os nveis dependentes. Outros problemas advem das novas semnticas de uso e so iguais para vrios modelos de certificados atuais. Alguns desse problemas foram apresentados por um reconhecido especialista em criptografia [48] que foi criticado por dois outros [49][50] mostrando que o tema ainda bem controverso. Avanando no desenvolvimento, verificou-se que o procedimento adotado na validao do cliente e servidor para o protocolo OCSP foi demorado, porm eficiente. No era esperado que na implementao de um protocolo descrito em uma RFC fosse necessrio ocorrer uma seqncia de validaes dos passos intermedirios. Isso foi causado em parte pela escassa documentao existente e em parte pela complexidade oculta tanto do protocolo quanto do emprego das bibliotecas de criptografia. Nos casos de implementao de protocolos semelhantes, fortemente sugerido que um procedimento de validao de fases, como o empregado, seja adotado. Esta metodologia aumenta gradualmente o domnio sobre o problema sem atrapalhar a evoluo do desenvolvimento. A dificuldade inicial do processo levou a um estudo mais aprofundado de algumas bibliotecas de criptografia (relacionadas no Apndice II) tornando possvel compar-las e verificar que a capacidade das bibliotecas de criptografia existentes para implementar protocolos de segurana depende da maturidade da biblioteca. Como algumas dessas bibliotecas so bem jovens, e promissoras, interessante que novas pesquisas relacionadas a implementaes que usem criptografia faam um estudo sobre o estado de cada uma das bibliotecas. Acredito que para casos onde apenas os algoritmos de criptografia sejam necessrios, no as estruturas para a manipulao de certificados, outras bibliotecas sejam mais apropriadas. Aplicaes feitas em outras linguagens, como JAVA tero obrigatoriamente que passar por esta fase pois esta linguagem no foi considerada no estudo realizado. Com o estudo e a implementao realizados, possvel tecer algumas consideraes sobre a segurana e a operao do protocolo OCSP, so elas: caso o cliente no consiga obter uma resposta vlida de um servidor OCSP, o mesmo precisa implementar uma forma de checagem por LCRs ou dependendo
130
da situao, utilizar os dois processos para se convencer da resposta obtida. o custo computacional das assinaturas pode ser explorado para causar um ataque de negao de servio (DoS) ao sistema. Uma soluo seria pr-computar as assinaturas durante perodos de ociosidade do servidor, por exemplo. o fato das mensagens de erro no serem assinadas, alivia a carga do sistema, porm permite que mensagens falsas sejam enviadas aos clientes. as requisies no contm informaes sobre servidor do qual est sendo solicitada a situao dos certificados. Isso permite que uma requisio seja enviada para mais de um servidor por um atacante que no possua a autorizao de fazer a requisio, com isso se valendo da permisso de outro cliente para obter o resultado desejado. todas as implementaes estudas at o momento fazem uso do protocolo HTTP para o transporte das mensagens. Implementaes eficientes deste protocolo fazem uso intenso de armazenamento temporrio (caching) o que pode conduzir a problemas de segurana para o cliente, que poder receber uma resposta invlida presente num cache, assim como para o sistema com um todo, visto que diversas requisies e respostas estaro armazenadas juntas. Mesmo sendo um avano considervel a criao e o uso do protocolo OCSP, este ainda apenas um protocolo de transporte, ou seja, ele depende de um backend (vide Figura 2-5) que no definido no protocolo. Por exemplo, se o backend for uma LCR (que o caso mais geral) o problema da freqncia das informaes volta a existir, apenas a sobrecarga do transporte aliviada (em parte pois o custo da criptografia na gerao da requisio e na validao da resposta tendem a ser maior que o processamento das LCRs). Algumas empresas usam bancos de dados de alta performance como backend e armazenam as informaes de revogao neles. Neste caso pode-se obter um sistema bem prximo do caso ideal pois no existe o atraso inerente a gerao das LCRs. O protocolo OCSP, descrito na RFC 2560 um protocolo para informar
131
apenas se um certificado foi revogado. errado pensar que com o OCSP possvel saber se um certificado esta vlido ou seja, dentro da sua validade, ou ainda saber se o seu caminho de confiana vlido. No que tange a incluso do suporte aos certificados digitais ao ambiente do AirStrike, verificou-se que o ambiente resultante (com a incluso dos novos cenrios de validao dos usurios) tornou-se muito mais funcional e seguro, pois os certificados permitem que seja identificado com exatido o seu detentor. No caso de ser necessrio revogar os certificados, dois processo eficientes e simples existem e toda a administrao pode ser centralizada. Durante o procedimento para a caracterizao das LCRs onde ocorreu a coleta de informaes sobre as listas de grandes certificadoras, detectou-se nesse processo que algumas empresas no so realmente certificadoras e sim representantes de reais certificadoras. Neste particular, observou-se que a Verisign onde a maioria das representantes convergem. No Brasil ela representada pela Certisign e verificou-se que todo certificado emitido pela Certisign fica atrelado a uma LCR da Verisign. Com os resultados obtidos neste procedimento e com as simulaes realizadas possivel concluir que com os controles devidos, o tamanho das LCRs pode ser controlado efetivamente.
pblicas requer que um ambiente fsico seguro seja implementado, bem como polticas de segurana associadas aos procedimentos sejam definidas. Como foco para prximas pesquisas seria interessante estudar as polticas de certificao e as declaraes de prticas de certificao e implementar ferramentas que auxiliassem na criao, manuteno e verificao dessas polticas. De forma semelhante, seria realmente til definir e criar mecanismos para que fosse possvel verificar a conformidade com os padres das solues. Outra sugesto gira em torno da avaliao de novos protocolos de verificao de certificados, como os apresentados em [39] e do estudo detalhado do impacto do uso de certificados digitais no ambiente do AirStrike.
133
Referncias Bibliogrficas
[1]
NUA Internet: How many online, disponvel em http://www.nua.ie/surveys/ how_many_online/, endereo visitado em 5 de novembro de 2004 Telecordia Netsizer, disponvel em http://www.telcordia.com/research/netsizer/, endereo visitado em 5 de novembro de 2004 Internet Software Consortium, disponvel em http://www.isc.org/ds/hosts.html, endereo visitado em 5 de novembro de 2004 Relatrios Web Shoppers, disponvel em http://www.webshoppers.com.br, endereo visitado em 5 de novembro de 2004 VIGNA, GIOVANNI. A Topological Characterization of TCP/IP Security, FME 2003: 914-939 BELLOVIN, STEVEN M. Security Problem in the TCP/IP Protocol Suite, Computer Communication Review, 19(2), 1990 BELLOVIN, STEVEN M. Cryptography and Internet, CRYPTO Conference (ago 1998) CARRIN, DEMETRIO S. D., e DE MORAES, LUS FELIPE M. Implementao de um ponto de acesso para redes 802.11b baseado no OpenBSD, SBRC 2003 BERKOVITS, S., CHOKHANI, S., FURNLONG, J. A., GEITER, J. A. and GUID, J. C. Public Key Infrastructure Study: Final Report, MITRE Corporation, abril de 1994
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10] HOWARD, JOHN D. An Analysis Of Security Incidents On The Internet, 1995, CARNEGIE MELLON UNIVERSITY, disponvel em http://www.cert.org/research/JHThesis/Start.html [11] PERLMAN, R. An overview of PKI trust models. IEEE Network 13, 38-43. 1999. 134
[12] JUNIOR, JAIME M. DE ALBUQUERQUE, Quais so os profissionais de Tecnologia da Informao? Um Estudo sobre sua caracterstica a partir da oferta de emprego nos ltimos trinta anos, Tese de Mestrado, COPPE/UFRJ , maro 2003, 193p [13] CARRIN, DEMETRIO S.D. e DE MORAES, LUS FELIPE M. AirStrike: Uma Implementao de segurana para redes IEEE 802.11b, apresentado na 1a. Semana de Eletrnica da UFRJ em 2003 [14] POUW, KEEJE D. Segurana na arquitetura TCP/IP: de firewalls a canais seguros, Dissertao de Mestrado, UNICAMP, Janeiro de 1999 [15] BRANCHAUD, MARC. Survey of Public Key Infrastructures, Dissertao de Mestrado, MCGill University, Montreal, Maro de 1997 [16] NTO, JOO CARLOS. Uma implementao do protocolo de micropagamento PayWord, Dissertao de Mestrado, USP, 1999 [17] ARAJO, ROBERTO S. DOS SANTOS. Protocolos Criptogrficos para Votao Digital, Disertao de Mestrado, UFSC, 2002 [18] PAIXO, CESAR A. MONTEIRO, Implementao e Anlise Comparativa de quatro variaes do criptossistema RSA, Dissertao de Mestrado, IME-USP, em andamento [19] GUIMARES, JOS C. FONTOURA. Proposta de fortalecimento do sistema criptogrfico DES contra criptanlise diferencial, Projeto Final, USP, 1993 [20] HONDA, MARI IKEMOTO, Cifra autodecriptvel com o algoritmos Blowfish, Projeto Final, Departamento de Cincia da Computao, UnB, junho de 1998. [21] PEREIRA, FABIANO CASTRO. Ostracom: Votao Digital Segura pela Internet, Disertao de Mestrado, UFSC, em andamento [22] KAZIENKO, JULIANO FONTOURA. Assinatura Digital de Documentos Eletrnicos atravs da Impresso Digital, Dissertao de Mestrado, UFSC, 2003 [23] DEMTRIO, DENISE BENDO, Infra-estrutura para Protocolizao Digital de Documentos Eletrnicos, UFSC, 2003, 140p [24] PASQUAL, EVERTON SCHONARDIE, IDDE - Uma Infra-estrutura para a Datao de Documentos Eletrnicos. 2002 110p dissertacao de mestrado, UFSC 135
[25] BORISOV, N., GOLDBERG, I. and WAGNER D. Intercepting Mobile Communications: The insecurity of 802.11, 7th Annual Internation Conference on Mobile Computing and Networking. [26] CASOLE, M., WLAN Security - Status, Problems and Perspective, European Wireless 2002 [27] CALLAS, J., DONNERHACKE, L., FINNEY, H., THAYER, R., RFC 2440 OpenPGP Message Format. November 1998. [28] DIFFIE, W., HELLMAN, M.E, New Directions on Cryptography, IEEE Trans. on Information Theory, Vol. IT-22, No 6, Novembro de 1976 [29] KOHNFELDER, Loren M. Towarda a Practical Public-key Cryptosystem, B.Sc. thesis, MIT Department of Electrical Engineering, Maio de 1978 [30] RIVEST, R.L, SHAMIR, A. e ADLEMAN, L., A Method for Obtaining Digital Signatures and Public-key Cryptosystems, Communications of the ACM, Vol 21, Fevereiro de 1978 [31] ITU-T Recommendation X.501 (2001) | ISO/IEC 9594-2:2001, Information technology . Open Systems Interconnection . The Directory: Models [32] ITU-T Recommendation X.208 (1994) | ISO/IEC 8824-1:1994, Specification of Abstract Syntax Notation One (ASN.1) [33] ITU-T Recommendation X.209 (1994) | ISO/IEC 8825-1:1994, Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1) [34] ITU-T Recomendation X.509 (1997 E) : Information Technology - Open System Interconnection - The Directory: Authentication Framework, Junho de 1997 [35] KENT, S. Privacy Enhancement for Internet Electronic Mail, RFC 1422, Fevereiro de 1993 [36] HOUSLEY, R., POLK, W., FORD, W., SOLO, D., Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile (RFC3280), abril de 2002 [37] KOCHER, P.C, On certificate revocation and validation, International Conference on Financial Cryptography, fevereiro de 1998 136
[38] MERKLE, R.C., A certified digital signature, Advances in Cryptology, Lecture Notes in Computer Science, nmero 435, 1989 [39] ARSENAULT, A., TURNER, S. Internet X.509 Public Key Infrastructure: Roadmap, PKIX Working Group, julho de 2002 [40] KON, FBIO. O software aberto e a questo social, Relatrio Tcnico RT-MAC2001-07, IME, USP [41] Linux Today: http://linuxtoday.com/news_story.php3?ltsn=2002-08-30-011-26NW-LL-PB - endereo visitado em 5 de novembro de 2004 [42] Linux Today: http://linuxtoday.com/news_story.php3?ltsn=2002-08-30-011-26NW-LL-PB - endereo visitado em 5 de novembro de 2004 [43] ZDNet: http://www.zdnet.com/zdnn/stories/news/0,4586,2779806,00.html - endereo visitado em 5 de novembro de 2004 [44] EWeek: http://www.eweek.com/article2/0,3959,562220,00.asp - endereo visitado em 5 de novembro de 2004 [45] EWeekhttp://www.eweek.com/article2/0,3959,562226,00.asp - endereo visitado em 5 de novembro de 2004 [46] Research Labs: http://www.research.avayalabs.com/techabstractY.html#ALR2002-003 - endereo visitado em 5 de novembro de 2004 [47] SHERIF, M.H. Standardization and Innovation in Information Technology, IEEE Communications, janeiro de 2000 [48] ELLISON, C., SCHNEIER, B., Ten Risks of PKI: What youre not being told about public key infrastructure, Computer Security Journal, Volume XVI, Nmero1, 2000 [49] LAURIE, BEN. Seven and a Half Non-risks of PKI: What You Shouldn't Be Told about Public Key Infrastructure, disponivel em http://www.apache-ssl.org/ 7.5things.txt - endereo visitado em 5 de novembro de 2004 [50] PEREZ, A. A Response to 10 Risks of PKI, disponvel http://home.pacbell.net/ aram/responsetenrisks.html
137
[51] KERCHHOF, AUGUSTE, La cryptographie militaire, Journal des sciences militaires, vol. IX, pp. 538, Jan. 1883, pp. 161191, Feb. 1883. disponvel em http:// www.cl.cam.ac.uk/~fapp2/kerckhoffs/#english [52] KAHN, DAVID. The Codebreakers: The story of secret writing, Macmilian Publishing Co., New York, 1967 [53] SAMPLE, M. Snacc: A High Performance ASN.1 to C/C++ Compiler, Department of Computer Science, University of British Columbia, July 1993 [54] OASIS, Ferramenta para autenticao centralizada, disponvel em http://software.stockholmopem.net, site acessado em 10/02/2004 [55] NoCat, Ferramenta para autenticao centralizada, disponvel em http:// www.nocat.org, site acessado em 10/02/2004 [56] Netlogon, Ferramenta para autenticao centralizada, disponvel em http:// www.unit.liu.se/dokument/natverk/netlogon.html, site acessado em 10/02/2004 [57] WALKER, JESSE R. Unsafe at any key size: An Analysis of the WEP encapsulation, IEEE Document 802.11-00/362
138
O objetivo deste apndice apresentar algumas das tcnicas de criptografia e os servios por ela oferecidos, em especial quando empregados na segurana de uma comunicao. Nele ser abordada a adequao das duas formas existentes de criptografia para uso na Internet e tambm um procedimento genrico para assinatura digital. O captulo apresenta algumas definies importantes para a compreenso do assunto, aborda os dois tipos de criptografia existentes e suas aplicaes, como por exemplo nas funes resumo e na assinatura digital.
lao dos dados inclui insero, remoo e substituio. Autenticidade: um servio relacionado com a identificao. Se aplica tanto informao em si quanto s partes que participam de uma comunicao. Na criptografia, essas duas vertentes so chamadas de autenticao da entidade e autenticao da origem dos dados; esta por sua vez est intimamente relacionada com a integridade dos dados. No Repdio ou Irretratabilidade: a incapacidade do emissor, aps ter executado um dado processo, negar a propriedade de tal ato. Emissor, Receptor e Atacante: Em quase toda a literatura sobre o tema, comum se referenciar a entidade que origina a mensagem com Alice (devido a letra A) e ao receptor com Bob, caso um terceiro participante seja necessrio, ele chamado Charlie. O papel de atacante fica a cargo de Oscar. Mensagem, codificao, cifragem e criptograma: A mensagem (ou texto plano) o material a ser enviado por Alice. Nas referncias em ingls, usa-se o termo plaintext. O termo codificao muitas vezes usado (e confundido) com cifragem. Para resolver a dvida, codificar escrever cdigo, como programar em C ou HTML. Em contra partida, cifrar escrever em cifra, o sentido ocultar algo atravs do mtodo empregado. Em ingls usa-se os termo encryption/decryption ou encipher/ decipher. Na traduo, teramos algo como encriptar/decriptar. Pelo dicionrio Aurlio encriptar "colocar na cripta" (decriptar no existe), por isso fica melhor usar cifrar e decifrar. O resultado do processo de cifragem o criptograma ou do termo ingls, ciphertext. Algoritmos e Chaves: Um algoritmo criptogrfico (tambm chamado cifra) uma funo matemtica usada para cifrar e decifrar.
140
Antigamente os algoritmos carregavam junto com o mtodo todo o segredo do processo e por isso no podiam ser revelados, atualmente, separa-se o segredo (a chave) do algoritmo em si (essa separao conhecida como princpio de Kerckhoff[51]), trazendo grandes vantagens com isso, como por exemplo, a capacidade de se avaliar o funcionamento do algoritmos sem comprometer a sua segurana. Associada a chave (key) existe o termo keyspace que se refere ao espao de possveis chaves a serem usadas no processo. Este espao por sua vez limitado normalmente pelo tamanho de bits da chave.
11. A palavra criptografia tem origem grega (kriptos = escondido e grifo = grafia) e define a arte ou cincia de escrever em cifras, na sua fase inicial, usando artifcios ldicos e recentente, usando tcnicas matemticas. 12. No caso do armazenamento, a comunicao pode ser vista como sendo do usurio para si mesmo.
141
blemas de segurana sobre o foco desses dois ramos e aborda as razes pelas quais a criptografia simtrica pouco adequada para a operao na Internet e apresenta o melhor resultado obtido com o emprego das chaves assimtricas e dos certificados digitais.
Decriptar Dd (c) = m m
Espio
Para proteger essa mensagem, garantindo a privacidade, ou confidencialidade, um primeiro tem da soluo de segurana o emprego, por Alice e por Bob, de um algoritmo de criptografia capaz de transformar a mensagem original em uma mensagem cifrada, ou seja, no compreensvel por uma terceira entidade. A criptografia simtrica requer que o transmissor e o receptor compartilhem uma mesma chave. Essa informao secreta deve ser usada para cifrar e decifrar as mensagens. Se a chave permanecer secreta, ento ningum mais, alm do transmissor e do receptor em questo, poder ler a mensagem. Se Alice e o Bob conhecem a mesma chave secreta e no a compartilham com mais ningum, ento eles podero enviar mensagens privadas
142
com a certeza de que ningum mais ser capaz de obter o contedo da mensagem. Esquematicamente temos:
Decriptar Dk (c) = m m
Espio
143
Gerador de Chaves d
Decifrar D d (c) = m m
Espio Passivo
A diferena nos dois processos, como se pode notar pela Figura I-3, est no par algoritmo-chave. No caso simtrico, a chave nica13 e o algoritmo opera em um sentido para cifrar e no sentido inverso para decifrar. No caso assimtrico, so duas as chaves e so dois os algoritmos. As chaves so geradas por processos matemticos que garantem ser computacionalmente difcil dada uma, calcular a outra. A utilizao do sistema de criptografia convencional (ou simtrica) requer que uma chave secreta seja compartilhada entre cada par de entidades com necessidades de comunicao, o que implica na necessidade de uma quantidade de chaves correspondente ao quadrado14 da quantidade de entidades comunicantes. Uma grande quantidade de chaves acarreta srios problemas de distribuio, proteo e manuteno, tornando a criptografia simtrica menos adequada para o ambiente web do que a com chave pblica, onde suficiente que cada entidade guarde, proteja e d manuteno apenas sua prpria chave privada, divulgando amplamente a correspondente chave pblica. Por essa razo, ainda que na web seja possvel a utilizao de criptografia simtrica e que essa forma de criptografia seja efetivamente utilizada em determinados momentos da comunicao, a criptografia com chave pblica se adeqa melhor.
13. Para ser extato, a definio mais aceita diz que na criptografia simtrica as chaves no precisam ser iguais, mas de posse de uma a outra facilmente deduzida (Handbook of Applied Cryptography, pg 15). 14. Matematicamente, temos que
n 2 lim n ( n 1 ) = n ------------------2
144
I.3 Aplicaes
I.3.1 Funes de Hash
Ainda que Alice possa cifrar sua mensagem tornando-a secreta, h outros riscos a serem considerados. Por exemplo, uma terceira entidade (espio) pode interceptar uma srie de mensagens enviadas por Alice, e de posse destas, montar (manipulando o material obtido) uma mensagem, sem para tal conhecer a chave usada. A questo de segurana nesse caso a necessidade de garantir que as mensagens no sejam modificadas, em parte ou no todo, ao serem transferidas, ou seja, trata-se da necessidade de garantir a integridade da mensagem. A maneira de Alice garantir a integridade da mensagem calculando um resumo (chamado hash value) da mensagem e envi-lo ao Bob junto prpria mensagem. O receptor da mensagem, ao receb-la, executa o mesmo clculo, comparando este com o enviado por Alice. Se os dois resumos forem iguais, considera-se que a mensagem foi recebida sem alteraes.
Funo de hash
Mensagem Original
Mensagem Recebida
Funo de hash
O resumo (hash value) da mensagem calculado usando uma classe de funes matemticas chamadas de Hash Functions que so geralmente derivadas das funes utilizadas na criptografia simtrica. Os geradores de resumo15 de mensagens so usados para obter como resultado uma representao de tamanho fixo e bem pequena comparada com as mensagens, que podem ter tamanho imprevisivelmente grande. A probabilidade de se
145
encontrar duas mensagens que sejam reduzidas ao mesmo hash value muito pequena e depende do tamanho adotado para esse hash. O problema na utilizao dos resumos, que Alice deve conseguir uma maneira de enviar cada resumo para o Bob seguramente, isto , sem que o prprio resumo possa ser alterado por uma terceira entidade ao percorrer a Internet; quando isto alcanado, a integridade da mensagem garantida. Para proteger o prprio resumo, necessrio mais um elemento de proteo: a assinatura digital.
16. O fato de decifrar o hash value, usando a chave pblica, que foi criptografado com a chave privada pode ser chamado de validao de assinatura.
146
Funo de hash
Texto Fonte
Cifragem
Texto Cifrado
+
G era a Assinatura Chav e Pblica do Bob Assinatura O riginal
Funo de hash
Texto Fonte
Decifragem
Banco
Alm disso, visto que o resumo s pode ser cifrado usando a chave privada do transmissor, uma terceira entidade, que no conhece tal chave, no poder modificar a mensagem sem ser detectado pois no ter como gerar um resumo cifrado correspondente mensagem alterada. Desse modo, com a assinatura digital e a presena de um resumo vlido, h uma garantia da integridade da origem da mensagem. A premissa assumida para afirmar que uma mensagem foi assinada por um pessoa recai sobre outro problema, o relacionamento entre entidades sem a possibilidade de contato fsico. Quando uma entidade gera o seu par de chaves e diponibiliza a pblica, ela pode se dizer ser quem ela desejar. A associao nome x chave pblica feita pelo prprio criador da chave. exatamente este o ponto ainda frgil do processo apresentado at aqui. Quando possvel um contato pessoal, os participantes podem se identificar fisicamente e trocar as chaves pblicas, como se fossem cartes de visita e repassar para outros estas chaves. Mas isto no de forma alguma realizvel quando pensamos em todos os usurios ou dispositivos atuanto na rede pois: A) pode no ser possvel um encontro presencial e 147
B) dispositivos no possuem rostos ! para resolver esta questo que foram criados os certificados digitais, eles so emitidos por entidades que gozam da confiana das partes e so responsveis por todo o processo de gerao das chaves e associao com a entidade.
17. Nesse mesmo ano, o artigo de Rivest, Shamir e Adleman [30] foi publicado, mostrando de fato com poderiam ser implentadas as idias de Diffie e Hellman.
148
interno a um certificado digital possui um OID associado a ele. a padronizao dos prprios certificados (seu contedo e sua estrutura interna) que primeiramente foi feita na recomendao X.509[34] como originalmente os certificados eram de identidade, havia a necessidade de padronizar a forma como os nomes seriam hierarquicamente organizados neste sistema, isso foi feito com o auxlio da recomendao X.500[31] que alm disso tambm estabelece como seria possvel localizar, recuperar, inserir e remover qualquer tipo de infomao de forma consistente e distribuda, conhecido como servio de diretrios e introduz os conceitos de Distinguished Name e Relative Distinguished Name. para efeito de armazenamento, convencionou-se que os dados seriam codificados segundo um outro padro, o Distinguished Encoding Rules (DER)[33] de modo a poderem ser armazenados e transferidos indenpendentemente da plataformade hardware e software. provvel que essas recomendaes tenham sofrido a influncia da proposta da Kohnfelder devido as semelhanas nas abordagens. Essa recomendao (a X.509) fornece a base para a atual implementao da mais importante vertente de certificados, o padro PKIX. A Figura I-6 mostra um exemplo de uma hierarquia de nome X.500 que tambm utilizada para organizar os OID dos objetos presentes nos certificados.
149
null
CCITT (0)
ISO (1)
joint-ISO-CCITT (2)
identified-organization(3)
Country (16)
dod (6)
C=BR (76)
internet (1)
? (1)
security (5)
? (3)
Os certificados criados para prover a segurana necessria recomendao X.500 serviram de ponto de partida para os atualmente utilizados. A primeira aplicao desses certificados fora do padro X.500 foi no Privacy Enhanced Mail (PEM)[35] em 1993. As verses dos certificados X.509 foram evoluindo segundo as necessidades e as constataes de que os modelos de segurana originais no se adeqavam as exigncias. O padro possui dois formatos de certificados, um para gerar a associao da entidade-fim (no original, End Endity) com a respectiva chave pblica, chamado apenas de certificado e um outro, bem semelhante, para divulgar uma lista dos certificados que foram revogados, chamados de lista de certificados de revogados. Os certificados, segundo a recomendao X.509, passaram por 3 verses, graficamente representadas na Figura I-7.
150
Verso Nmero de Srie Identificador do Algoritmos de Assinatura No Antes No Depois Algoritmo Parmetros Chave Algoritmo Parmetro Assinatura
Verso 1
Algoritmo Parmetros
Nome do Emissor Periodo de Validade Nome do Sujeito Informaes da Chave Pblica do Sujeito Identificador nico do Emissor Identificador nico do Emissor Extenses Assinatura Digital Tipo Importncia Tipo Importncia Tipo Importncia
Verses 1,2,3
Verso 2
Verso 3
As razes para as mudanas so resumidas a seguir: X.509v1: tinha um nmero pequeno de campos o que limitava sua utilizao. Alm disso, alguns problemas de segurana foram identificados no padro. Foi o adotado pelo padro PEM em 1993. X.509v2: por ocasio da reviso do protocolo X.500 a primeira verso foi totalmente revisada. Nesta verso foram adicionados novos campos (vide Figura I7) com o objetivo de possibilitar a reutilizao de nomes iguais em diferentes certificados digitais. X.509v3: foi detectado, com a experincia obtida na tentativa de implementar o PEM que os formatos da verso 1 e 2 eram deficientes em vrios aspectos. Em resposta a isso, na atual verso, de junho de 1997, foram adicionados campos de extenso, os quais tornma o certificado mais flexvel e com um leque de utilizao muito maior. Embora existam alguns outros formatos de certificados em uso na Internet, sem dvida a descrita na recomendao X.509 e padronizada pelo IETF como PKIX a mais aceita por vrios motivos, muitos dos quais sero abordados no decorrer desta dissertao. Estruturalmente, um certificado digital um arquivo de dados, subdivididos em sees contendo informaes obrigatrias e extenses de processamento condicional.
151
I.3.3.1 Lista de Certificados Revogados As Listas de Certificados Revogados, ou simplismente LCRs, armazenam uma relao de certificados revogados, da forma apresentada na figura abaixo.
Verso Identificador do Algoritmos de Assinatura Nome do Emissor Momento da Emisso Prxima Emisso Certificados Revogados Extenses Assinatura Digital
.....
Nmero do Certificado
Data da Revogao
Verso 1
Neste certificado, a semntica dos campos a seguinte: Verso Este campo identifica qual verso do formato de revogao se aplica ao certificado. Identificador do Algoritmo de Assinatura Este campo identifica o algoritmo e os parmetros usados pela entidade ao assinar o certificado; Nome do Emissor Contm o Distinguished Name da entidade que assina e divulga o certificado; Momento da Emisso Este campo contm o dia e hora da promulgao do certificado. Prxima da Emisso Este campo contm o dia e hora da prxima promulgao do certificado de revogao. Caso a frequncia de promulgao seja conhecida por todos, este campo pode ser omitido. O padro recomenda sempre a sua presena e possvel promulgar um outro certificado antes da data assinalada, mas nunca aps. Certificados Revogados 152
Armazena trs informaes: o identificador do certificado revogado, a data efetiva da revogao e algumas extenses (apenas na verso 2) que podem armazenar, por exemplo, o motivo da revogao. Extenses Existentes apenas na verso 2 do formato e reservam um local para que novos campos possam ser adicionados, no mesmo molde do certificado da Figura I-7. Estas extenses podem se aplicam a uma entrada em particular ou a todo o certificado.
153
Este apndice resume as informaes mais importantes e utilizadas na anlise das bibliotecas de criptografia visando uma seleo para a utilizao na implementao do cliente e do servidor OCSP apresentado no captulo 5.
Plataformas: x86 (Linux, Windows 16/32bits, DOS), OS/2, BeOS, Macintosh, VM/CMS e MVS Personal Security Manager (PSM) Autor: Netscape Homepage: http://www.mozilla.org/projects/security/pki/psm/ Linguagem: C Plataformas: x86 (Linux, Windows 16/32bits, DOS), OS/2, BeOS, Macintosh Network Security Services (NSS) Autor: Netscape Homepage: http://www.mozilla.org/projects/security/pki/nss/index.html Linguagem: C Plataformas: x86 (Linux, Windows 16/32bits, DOS), OS/2, BeOS, Macintosh, VM/CMS e MVS Crypto++ 5.1 Autor: Wei Dai Homepage: http://www.eskimo.com/~weidai/cryptlib.html Linguagem: C++ Plataformas: x86 (Linux, Windows e BeOS), SPARC (Linux e Solaris), PowerPC (MacOS X) Botan Autor: Jack Lloyd Homepage: http://opencl.randombit.net/ Linguagem: C++ Plataformas: x86 (Linux e Windows), SPARC (Linux e Solaris), PowerPC (MacOS X) e Alpha (Tru64) e MIPS (Irix)
155
Este apndice se divide em duas partes: uma dedicada a apresentar o contedo de alguns certificados utilizados durante o processo de estudos e outra para apresentar os scripts criados para auxiliar nas tarefas de simulao e gerao dos grficos.
156
ec:da:a3:76:83:a5:90:b4:42:d5:78:58:76:a3:6a: 17:f6:25:76:2d:ce:bc:9a:2f Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Key Encipherment X509v3 CRL Distribution Points: URI:http://crl.verisign.com/Class3InternationalServer.crl X509v3 Certificate Policies: Policy: 2.16.840.1.113733.1.7.23.3 CPS: https://www.verisign.com/rpa X509v3 Extended Key Usage: Netscape Server Gated Crypto, Microsoft Server Gated Crypto, TLS Web Server Authentication, TLS Web Client Authentication Authority Information Access: OCSP - URI:http://ocsp.verisign.com -----BEGIN CERTIFICATE----MIIEIjCCA4ugAwIBAgIQY66jNJ0mTjBErzo8aNASwzANBgkqhkiG9w0BAQQFADCB ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy dmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMg SW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0w MzA4MzAwMDAwMDBaFw0wNDA4MjkyMzU5NTlaMIHJMQswCQYDVQQGEwJCUjEZMBcG A1UECBMQRGlzdHJpdG8gRmVkZXJhbDERMA8GA1UEBxQIQnJhc2lsaWExHTAbBgNV BAoUFEJhbmNvIGRvIEJyYXNpbCBTLkEuMRQwEgYDVQQLFAtESVRFQy1HRVRFQzEz MDEGA1UECxQqVGVybXMgb2YgdXNlIGF0IHd3dy52ZXJpc2lnbi5jb20vcnBhIChj KTAwMSIwIAYDVQQDFBljZXJ0LmJhbmNvZG9icmFzaWwuY29tLmJyMIGfMA0GCSqG SIb3DQEBAQUAA4GNADCBiQKBgQDQ1qXhifja+8pxAwzIPwgsFRO1Wac7BAq8ehir PUJ+UqSbq64+FjK2w7fTA64lAuwtxafl47ondtQnm3lSDLCzjH1lrZCHvTO17WuP oxrJYe7PytyOdFsPJGhi7WDnS7X75x9tyfvhwOzao3aDpZC0QtV4WHajahf2JXYt zryaLwIDAQABo4IBFjCCARIwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwRgYDVR0f BD8wPTA7oDmgN4Y1aHR0cDovL2NybC52ZXJpc2lnbi5jb20vQ2xhc3MzSW50ZXJu YXRpb25hbFNlcnZlci5jcmwwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAqMCgG CCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhMDQGA1UdJQQt MCsGCWCGSAGG+EIEAQYKKwYBBAGCNwoDAwYIKwYBBQUHAwEGCCsGAQUFBwMCMDQG CCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AudmVyaXNpZ24u Y29tMA0GCSqGSIb3DQEBBAUAA4GBAIKkLDQ+I14XJKJ8qlDdp158Ue5+0u12B3Mu lKizewMRNv/Kt/VuGgupeHQD8ZeAXyvnppmYuu3gVT69zkA897GDIWt39NiPnoBt mGJM4lrSe4CV6I1dqG7LenRTVM0uJYSFWuGP8ZqMafJxU0RyELT0BabJk+w5+BDS pWM5MTBx -----END CERTIFICATE----Torsec Root CA Certificate: Data: Version: 3 (0x2) Serial Number: 0 (0x0) Signature Algorithm: md5WithRSAEncryption Issuer: C=IT, ST= , L= , O=Polito, OU=DAUIN, CN=Certification Authority/ emailAddress=marius@passito.polito.it Validity Not Before: Sep 13 09:06:25 2001 GMT
157
Not After : Sep 13 09:06:25 2002 GMT Subject: C=IT, ST= , L= , O=Polito, OU=DAUIN, CN=Certification Authority/ emailAddress=marius@passito.polito.it Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:c3:2d:1e:b9:e8:b3:fa:43:ae:9e:9a:57:2e:e6: 18:f7:7c:64:8a:38:64:88:19:23:74:c8:02:8d:8f: c9:27:c6:c8:35:97:fd:70:d1:3b:2a:56:19:b3:59: 65:bb:59:93:73:07:a1:11:26:35:21:4d:67:6f:e7: 2c:28:b6:4e:dc:19:1c:a0:79:f2:d0:2b:3d:1e:e6: 47:9c:3e:27:fa:5b:00:39:f8:de:0f:62:c8:e0:7b: 5a:3b:ca:e4:4f:8b:74:9c:58:7a:4a:3e:f9:5a:a5: ed:1e:9a:da:61:72:d3:e0:4d:49:81:53:66:b7:62: 06:c8:50:8b:75:8e:55:bb:d1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Subject Key Identifier: 16:00:CD:5D:45:8C:A2:A4:FD:0D:21:36:8E:90:DC:C1:51:21:A6:52 X509v3 Authority Key Identifier: keyid:16:00:CD:5D:45:8C:A2:A4:FD:0D:21:36:8E:90:DC:C1:51:21:A6:52 DirName:/C=IT/ST= /L= /O=Polito/OU=DAUIN/CN=Certification Authority/emailAddress=marius@passito.polito.it serial:00 X509v3 Basic Constraints: CA:TRUE
158
00:ab:a1:75:08:72:e5:1e:58:0e:db:6c:22:c3:45: 55:9e:19:05:e9:7c:b6:8f:49:22:4c:f4:86:cb:d0: c5:22:f4:88:09:4d:ad:03:6d:17:5f:71:6c:5e:ad: 75:e7:14:13:3a:06:5f:8e:e9:6f:48:b5:16:99:45: 98:d4:84:24:47:ca:43:23:e5:02:92:85:0f:bc:3a: 72:bf:59:fe:6a:e9:ee:d7:8c:cc:3c:d9:18:b1:40: da:53:45:8d:d3:c3:15:c9:cc:ad:b0:e8:46:cb:61: b4:9a:67:bd:80:ba:4e:22:45:be:9f:0c:8f:d0:7d: 1f:15:31:82:4d:5a:7f:46:4d Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE X509v3 Key Usage: Digital Signature, Key Encipherment X509v3 CRL Distribution Points: URI:http://crl.verisign.com/RSASecureServer.crl X509v3 Certificate Policies: Policy: 2.16.840.1.113733.1.7.23.3 CPS: https://www.verisign.com/rpa X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication 2.16.840.1.113733.1.6.15: ..867531600 Authority Information Access: OCSP - URI:http://ocsp.verisign.com -----BEGIN CERTIFICATE----MIIDgzCCAvCgAwIBAgIQE7RYOv4BcfjF/1F2YabcIDANBgkqhkiG9w0BAQUFADBf MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJpdHksIEluYy4x LjAsBgNVBAsTJVNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw HhcNMDMwODIyMDAwMDAwWhcNMDUwOTEyMjM1OTU5WjCBkDELMAkGA1UEBhMCVVMx EzARBgNVBAgTCkNhbGlmb3JuaWExFTATBgNVBAcUDFJlZHdvb2QgQ2l0eTEoMCYG A1UEChQfVHVtYmxld2VlZCBDb21tdW5pY2F0aW9ucyBDb3JwLjEOMAwGA1UECxQF SVRPUFMxGzAZBgNVBAMUEnd3dy50dW1ibGV3ZWVkLmNvbTCBnzANBgkqhkiG9w0B AQEFAAOBjQAwgYkCgYEAq6F1CHLlHlgO22wiw0VVnhkF6Xy2j0kiTPSGy9DFIvSI CU2tA20XX3FsXq115xQTOgZfjulvSLUWmUWY1IQkR8pDI+UCkoUPvDpyv1n+aunu 14zMPNkYsUDaU0WN08MVycytsOhGy2G0mme9gLpOIkW+nwyP0H0fFTGCTVp/Rk0C AwEAAaOCARAwggEMMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgWgMDwGA1UdHwQ1MDMw MaAvoC2GK2h0dHA6Ly9jcmwudmVyaXNpZ24uY29tL1JTQVNlY3VyZVNlcnZlci5j cmwwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcXAzAqMCgGCCsGAQUFBwIBFhxodHRw czovL3d3dy52ZXJpc2lnbi5jb20vcnBhMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggr BgEFBQcDAjAZBgpghkgBhvhFAQYPBAsWCTg2NzUzMTYwMDA0BggrBgEFBQcBAQQo MCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLnZlcmlzaWduLmNvbTANBgkqhkiG 9w0BAQUFAAN+AGpxSlgzyJIGRdHiSgcrX3pwmM5jLDaROqMFsrLOrm2bxwo9I9+m i4W0Z4jnFg4HmHfHDSlrZq/xZDQWn+v57savoz3wTBhD6qNYrYCe5Tbc6ijrxZzt iQNa9CeTmd5RC1qWgMXcj3CW1osXwQe0Xm5XLaAJ7gyNoY0h9NJE -----END CERTIFICATE-----
159
160
III.2.1 make-certs.bat
@echo OFF REM script para gerar certificados em lote REM parametros de entrada: REM %1 = numero inicial da sequencia a ser gerada REM %2 = numero final da sequencia a ser gerada set CERTPATH=.\_crls set PROGPATH=..\_progs\openssl-0.9.7c\ REM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ echo Gerando Certificados FOR /L %%i IN (%1,001,%2) DO ( echo ==> Gerando certificado %%i echo ==> Gerando para de chaves RSA %PROGPATH%\openssl genrsa -des3 -passout pass:12345 -out %CERTPATH%\%%i.key.pem 1024 echo ==> OK echo ==> Criando as requisies dos certificados
161
%PROGPATH%\openssl req -batch -subj /commonName=1234567890/countryName=br/stateOrProvinceName=RiodeJaneiro/emailAddress=1234567890/organizationName=COPPE\/ UFRJ -new -key %CERTPATH%\%%i.key.pem -out %CERTPATH%\%%i.req.pem -extensions server_ext -config %CERTPATH%\_openssl-spec.txt echo ==> OK echo ==> Assinando os certificados %PROGPATH%\openssl ca -batch -passin pass:12345 -in %CERTPATH%\%%i.req.pem -out %CERTPATH%\%%i.pem -extensions server_ext -config %CERTPATH%\_openssl-spec.txt echo ==> OK ) echo Terminado.
III.2.2 down_crl.sh
#!/bin/sh # shell script para obter e organizar as LCRs obtidas # por Alessandro Martins - martins@ufrj.br - marco/2004 MYPATH=/extra1/user/martins/download DATE=date +%Y%m%d-%H%M%S # Processa as LCRs da ACNAME ACNAME=verisign NAME=$DATE.tar.gz if [ ! -d $MYPATH/$ACNAME ] ; then mkdir -p $MYPATH/$ACNAME fi wget -mr -np crl.$ACNAME.com mv crl.$ACNAME.com $MYPATH/$ACNAME/$NAME # Processa as LCRs da ACNAME ACNAME=rsasecurity NAME=$DATE.tar.gz if [ ! -d $MYPATH/$ACNAME ] ; then mkdir -p $MYPATH/$ACNAME fi wget -mr -np crl.$ACNAME.com mv crl.$ACNAME.com $MYPATH/$ACNAME/$NAME # Processa as LCRs da ACNAME ACNAME=unicert NAME=$DATE.tar.gz if [ ! -d $MYPATH/$ACNAME ] ; then mkdir -p $MYPATH/$ACNAME fi wget -mr -np www.unicert.com.br/crl/2590C.crl wget -mr -np www.unicert.com.br/crl/2590A.crl mv www.$ACNAME.com.br $MYPATH/$ACNAME/$NAME # FIM
162
III.2.3 gen-datfile.php
<?PHP // script para processar as LCRs obtidas pelo down_crl.sh // por Alessandro Martins - martins@ufrj.br - marco/2004 // flag de DEBUG $debug = 0; $result_dir = _results\\; // onde os resultados serao colocados $source_dir = .\\;// onde os diretorio dos downloads estao $crl_url = crl.verisign.com; // subdir onde estao as CRLs // remove os logs anteriores echo => Removendo os logs anteriores em $result_dir; $result = get_file_list($result_dir); foreach ($result as $file) { $extension = substr($file,sizeof($file)-6,5); if ($extension == .dat1) { unlink($result_dir.$file); } } echo \t\t Feito. \n; // Gera os novos logs echo => Lendo o dir $source_dir e gerando logs, aguarde. \n; $result = get_file_list($source_dir); //ordena a lista sort ($result,SORT_NUMERIC); // para cada data de download, faca foreach ( $result as $download_date) { // verifica se eh um diretorio if (is_dir($download_date) && ($download_date.\\ != $result_dir)) { if ($debug) echo \n=> Processando $download_date \n;
$place_of_crls = $source_dir.$download_date.\\.$crl_url.\\; $list_of_crls = get_file_list($place_of_crls); // para cada crl encontrada, crie um aquivo com o seu nome // e dentro dele armazene a data e o tamanho do aquivo no formato // mmdd tamanho foreach ( $list_of_crls as $crl_name ) // trata apenas as CRL, outros arquivos possuem terminacao diferente de .crl if (substr($crl_name,sizeof($crl_name)-5,4) == .crl) { // nome do arquivo de saida $filename = substr($crl_name,0,sizeof($crl_name)-5); $fp = @fopen($result_dir.$filename..dat1, a); // formato da data de saida $date_formated = substr($download_date,4,4);
163
$line_formated = $date_formated.\t.filesize($place_of_crls.\\.$crl_name).\n; if ($debug) echo $crl_name.\t.$line_formated; else echo .; fwrite($fp,$line_formated); fclose($fp); } if ($debug) echo => Feito. \n; } }; // fim do procedimento echo \n=> Processamento terminado com sucesso. \n; // funcao auxiliar para obter a lista de entradas num diretorio. function get_file_list ($dir_name) { $files_in_dir = array(); // o @ inibe a msg de erro, mas o proximo if pega o erro $handle = @opendir($dir_name); if (!$handle) { echo Ocorreu um erro ao executar o processo\n; exit; } // debug if ($debug) echo Processando o diretorio $dir_name \n; while (false !== ($file = readdir($handle))) { if ($file != . && $file != ..) { // pega o nome do arquivo sem a extensao //$files_in_dir[] = substr($file,0,sizeof($file)-5); // arquivo com extensao ou diretorio $files_in_dir[] = $file; } // end if } // end while closedir ($handle); return $files_in_dir; } // end get_file_list // atencao nao pode haver linha em branco ao final deste arquivo ?>
164
III.2.4 Gen-images.plt
# # Script para gerar os graficos dos parametros das LCRs obtidas # usando o gnuplot com o comando pgnuplot <nome-do-arquivo> # por Alessandro Martins - martins@ufrj.br - marco/2004 # reset # configuracao para salvar as imagens set terminal push set terminal gif medium size 820,400 # formato dos arquivos *.dat1 de entrada # data tamanho-do-arquivo # primeiro grafico set output _constantes.gif set autoscale set title Tamanho da LCR no tempo set ylabel Tamanho da CRL (bytes) set yrange [320:1700] set xlabel Data (formato dd/mm) set xdata time set timefmt %m%d set format x %d/%m plot ThawteTimestampingCA.dat1 using 1:2,\ ThawtePremiumServerCA.dat1 using 1:2,\ WAPSecureServer.dat1 using 1:2 set output # segundo grafico set output _degrau.gif set autoscale set title Tamanho da LCR no tempo set xlabel Data (formato dd/mm) set xdata time set timefmt %m%d set format x %d/%m set ylabel Tamanho da CRL (bytes) plot Class3IntranetServer.dat1 using 1:2 lt 3 pt 6 set output # terceiro grafico set output _crescente.gif set autoscale set title Tamanho da LCR no tempo set xlabel Data (formato dd/mm) set xdata time set timefmt %m%d set format x %d/%m set ylabel Tamanho da CRL (bytes) plot Class3CodeSigning2001.dat1 using 1:2,\ ThawtePersonalFreemailIssuingCA.dat1 using 1:2
165
167
168
Este apndice descreve os procedimentos necessrios para importar os certificados das autoridades e dos usurios para os cliente web mais comuns: o Internet Explorer e o Netscape.
169
Em seguida, na barra inferior da janela que surge existe a opo de Instalar o Certificado.
O processo que segue termina com a janela seguinte, solicitando a confirmao final do processo.
Para confirmar a correta instalao basta navegar pelos menus Tools Internet Options at a janela da figura abaixo.
->
170
Utilizando a opo Certificates mostrada a janela que segue e na ltima aba o nome da AC instalada dever existir.
O mesmo procedimento deve ser seguido para que seja feita a instalao do certificado do cliente, finalizando na janela que segue.
171
172
A opo Import na barra da janela apresenta um menu para a seleo do arquivo e termina com uma janela de confirmao, vista na figura seguinte.
A figura que segue mostra o resutado da importao e tambm pode ser usada para verificar se um certificado j esta instalado.
173
O mesmo processo deve ser executado para importar o certificado do OCSP Responder e do prprio cliente. A figura abaixo mostra a configurao das opes de verificao de certificados.
174
Nela pode-se selecionar qual dos mtodos de verificao ser utilizado. Note que as opes so mutuamente exclusivas, ou seja, no possvel ativar mais de uma opo.
175
176
Aps a instalao ter sido realizada o arquivo de configurao do servidor (chamado config.conf) precisa ser alterado para refletir as mesmas configuraes feitas para a interface WEB, ou seja, necessrio definir o endereo, o login e a senha de acesso ao banco de dados.
177
(5)
(2)
(3)
RA operator
Descrio das Mensagens: (1) - Interao do cliente com a interface web durante os processos de solicitao de certificado e durante a obteno do status do processo. (2) - Interao da interface web com o repositrio via servidor atendendo as solicitaes feitas pelo cliente. (3) e (4) - Interao do RA Operator com o repositrio via servidor na obteno da relao de solicitaes de certificados a serem avaliadas. As decises tomandas (aceite ou rejeio da requisio) so armazenadas novamente no respositrio. (5) e (6) - Do mesmo modo que o RA Operator, o CA Operator obtem uma lista de requisies aprovadas e decide sobre a emisso ou no dos certificados. O resultado das aes so novamente armazenados no repositrio para efeito de informao ao cliente.
178