Revista Do Linux
EDIÇÃO DO MÊS
 CD do Mês

 Capa
 Entrevista
 Corporativo
 Editoração
 Segurança
 Hardware
 Produtos
 Programação
 Sistema
 

Projeto OpenCA

Ainda que alguns especialistas considerem PGP e PKI como padrões opostos, o padrão PGP é pré-Internet, isto é, nasceu antes da explosão do e-commerce e da Internet como um fato sociocultural. Por sua vez, o padrão PKI tenta atender a esses dois desafios.

O livro Digital Certificates. Applied Internet Security, de Jalal Feghhi, Jalil Feghhi e Peter Williams, é um clássico sobre o padrão PKI, Public Key Infrastructure (Infra-Estrutura de Chave Pública). Os três especialistas trabalham para a VeriSign, Inc., uma das líderes em tecnologia de certificação digital. Esse livro e os RFCs são a bibliografia essencial e básica para quem deseja compreender o padrão PKI.

Os RFCs são documentos de padronização e "princípios teóricos", já esse livro é sobretudo de natureza prática. Isto é, tenta responder à questão: "Como posso efetivamente construir uma Autoridade Certificadora?" (CA, em inglês). Porém, quem manuseia somente o ótimo trabalho desses autores sairá com a segura impressão de que para executar a tarefa será necessário dispor tão-somente de sistemas (de qualidade sempre discutível) da empresa Microsoft. Ou seja, tem-se a sensação de que para construir uma CA bastaria ter os produtos Microsoft Information Server e Microsoft Certificate Server, e para criar e executar os scripts seriam necessários o ActiveX e o Visual Basic (VBScript). Com isso, o leitor já pode perceber que, em última instância, seria preciso obter um sistema operacional Microsoft, que seria a plataforma para tais ferramentas. Contudo está surgindo uma solução fora desse círculo vicioso...

O tema é bastante complexo. Requer especialização e o envolvimento com uma detalhada bibliografia, e aplicação prática. Nos limites deste artigo apenas é possível apontar alguns tópicos e lançar o debate para a Comunidade de Segurança, que deseja soluções dentro do software livre.

Os padrões PKI e OpenPGP

Em artigos anteriores da Revista do Linux expus a importância de um criptossistema para a Sociedade da Informação: um sistema que implemente o não-repúdio a mensagens e à privacidade no correio eletrônico, a assinatura digital, a criptografia de dados e do tráfego de rede etc. Os padrões PKI e OpenPGP são tecnologias que usam criptografia assimétrica ou de chave pública e possuem o mesmo intento; porém são padrões diferentes, mas não são excludentes, ainda que alguns especialistas considerem PGP e PKI como padrões opostos.

Bruce Schneier, conhecido especialista em segurança e criptografia, defende a oposição desses padrões em dois textos: no artigo Ten Risks of PKI: What You’re Not Being Told About Public Key Infrastructure e em seu mais recente livro, Secrets and Lies. Digital

Security in a Networked World.

Já para Jalal Feghhi, Jalil Feghhi e Peter Williams, os dois padrões usam a mesma tecnologia: a criptografia de chave pública, mas não se estendem no assunto. Ressaltam, entretanto, que os dois padrões surgiram em épocas diferentes.

O padrão PGP é pré-Internet, isto é, nasceu antes da explosão do e-commerce e da Internet como um fato sociocultural. Por sua vez, o padrão PKI tenta atender a esses dois desafios. Nesse sentido, eles afirmam que o PGP é conveniente apenas para pequenas comunidades de usuários que trocam e-mails casuais, mas lhe faltaria a devida escalabilidade e não seria gerenciável quando se trata de grandes redes, sendo, portanto, impróprio para as poderosas aplicações exigidas pelo comércio eletrônico on-line.

Já o PKI é um dos padrões tecnológicos que estabelecem os alicerces da segurança na Rede Mundial de computadores. Assim sendo, ele é um amplo conjunto de acordos e padronização internacionais; autoridades certificadoras, uma estrutura entre diferentes CAs e, enfim, métodos e protocolos para emitir, validar e remover certificados digitais através de uma CRL (Certificate Revocation List).

Para Schneier o PKI e seus certificados digitais são um bom modelo de negócio, visto que lucrativo, porém não são nada além disso! Segundo ele não se vende segurança de computadores em um único produto: segurança é um processo cheio de variáveis significativas; em outras palavras, vender certificados digitais, comprar um único produto, não resolve o problema da segurança. O autor enfatiza que o PKI baseia-se na confiança em uma agência ou autoridade.

Certificado digital

Um certificado digital se compõe de arquivos digitais que estabelecem um elo entre um sujeito — "entidade final", segundo a nomenclatura do RFC 2585 —, seja uma empresa, seja um indivíduo, e uma autoridade que tem o poder de certificação, também chamada de trusted third part. Ela verifica a identidade do sujeito e emite o certificado digital. Tais certificados são em geral de chave pública e asseguram que uma determinada chave pública pertence a um sujeito e que a CA possui a chave privada correspondente. Com isso, pode-se autenticar que os possuidores do certificado (pessoas, sites, roteadores de rede etc.) são verdadeiramente o que dizem ser, e desse modo protegem-se dados partilhados em rede contra roubo e fraude com o uso da encriptação.

Certificado X.509

O padrão mais difundido dessa certificação é conhecido como certificado X.509 — atualmente em sua versão 3. Ele foi regulamentado e publicado pela primeira vez em 1988 pelos organismos que criaram tal padrão: a International Telecommunication Union-Telecommunication Standartization Sector (ITU-T) e a ISO/International Electrotechnical Commission (IEC). Este documento digital possui uma série de campos ou valores, tais como: versão, número de série, tipo de algoritmo usado, período de validade etc. Veja um modelo do certificado digital X.509 em sua versão 3 (ao lado).

Tendo em mente isso, constata-se que a relação entre a entidade final e a CA está baseada na confiança. O que não deveria ser visto como um dilema insolúvel. A CA estabelece uma "regra" ou "política" e o sujeito do certificado a lê cuidadosamente. Segundo o RFC 2527, "regras que indiquem a aplicabilidade de um certificado para uma comunidade particular e/ou uma classe de aplicação com requisitos comuns de segurança". Portanto, quando alguém se inscreve num serviço para obter um certificado digital, ele estabelece um acordo com a CA (e parece-nos que um acordo é sempre firmado na certeza de que será cumprido).

Um ponto essencial nesse tipo de acordo, por exemplo, um estabelecido com a Thawte — outra importante CA —, diz ao usuário que se inscreve: não aceitamos tutela de chaves (ou key escrow), se algum país nos obrigar a isso, retiraremos de lá imediatamente nosso "banco de dados". Esse é um ponto que todo usuário deve buscar numa CA e é um aspecto importante na construção de políticas em CAs: fique atento se a Autoridade se pronuncia sobre a permissão da tutela de suas chaves, ou ainda se permite key recovery, quando uma empresa hierarquicamente superior a sua pode "recuperar" ou "resgatar" sua chave. O mesmo valeria para cargos: um diretor teria a capacidade de key recovery dos subdiretores de seu departamento, isto é, o presidente teria a recuperação de chaves de todos os subordinados se eles não "se comportassem adequadamente".

Na figura abaixo há um esquema geral da arquitetura PKI segundo o RFC 2459 Internet X.509 Public Key Infrastructure. Observe que há duas "entidades de gerenciamento PKI": a CA e a RA (Registration Authority), em geral referidas como CA+RA. Trata-se de um sistema distribuído cujas finalidades são publicar e revogar através de CRLs (certificados para um sujeito). A Autoridade Registradora ou de Registro é um sistema opcional. A idéia é partilhar as tarefas: a RA é responsável por validar o que está no certificado, e a CA por sua emissão.

Na figura está o "repositório de certificados", o sistema responsável por armazenar certificados e CRLs, e assim responder adequadamente e com segurança às consultas da entidade final.

A arquitetura do PKI

A comunidade de software livre já dispõe de um importante projeto em pleno desenvolvimento e com licença "estilo-Apache": o OpenCA, organizado por Massimiliano Pala (madwolf@openca.org), Giovanni Faglioni (giova@openca.org) e Sergio Duretti (duretti@comune.mo.it). Há também um projeto de documentação para o OpenCA, que desenvolve atualmente um bom manual chamado The Open-source PKI book, escrito por Simos Xenitellis, da equipe OpenCA.

Seu objetivo é montar uma completa interface para o gerenciamento de toda a arquitetura para operações comuns na emissão de certificados digitais, ou seja, elaborar uma CA usando software livre em um sistema operacional livre como os sistemas GNU/Linux.

As características principais da atual versão do Projeto são: importar e listar requisições de certificados, exportar certificados, arquivar requisições, ver requisições arquivadas, remover requisições, emitir certificados, verificar a identidade de um operador RA e exportar CRL.

Servidores RA também podem listar requisições pendentes e arquivadas, aprovar requisições, exportar e importar requisições de mídias removíveis (o servidor RA não deve comunicar-se com o servidor CA através de uma rede por motivos de segurança máxima) e importar CRLs.

O OpenCA é uma interface completa para essas operações, contudo ele está alicerçado num conjunto de outros programas que devem estar instalados, configurados e rodando sem problemas. Desse modo, antes de se instalarem os pacotes do Projeto, é necessário que o sistema tenha:

  • OpenSSL, versão 0.9.4 ou superior;
  • Perl, versão 5 ou superior com suporte para DBM;
  • Servidor Apache;
  • Suporte mod_ssl no servidor Apache.

O leitor interessado pode visitar a página do projeto, consultar a documentação inicial e de instalação e fazer download. É possível observar in loco o funcionamento efetivo do sistema implementado pela equipe do OpenCA, que já emite uma certificação.

Para saber mais

  • Projeto OpenCA
    www.openca.org
  • Ten Risks of PKI: What You’re Not Being Told About Public Key Infrastructure. Ellison e Schneier — Computer Security Journal, v. 16, n. 1, 2000, pp. 1-7.
    www.counterpane.com/pki-risks.html
  • Repositório de RFCs
    www.rfc-editor.org
  • PKI segundo a VeriSign
    www.verisign.com/whitepaper/enterprise/difference/difference.html
  • Thawte Corp.
    www.thawte.com
  • Assinaturas digitais — legitimidade a toda prova. Cristiane Haical
    www.modulo.com.br
  • Entendendo a infra-estrutura de chave pública. Thiago Zaninotti
    www.securenet.com.br
  • The Open-source PKI Book: A guide to PKIs and Open-source Implementations.
  • Simos Xenitellis
    ospkibook.souceforge.net
  • Livro Citado: Digital Certificates. Applied Internet Security. Jalal Feghhi; Jalil Feghhi; Peter Williams. Addison-Wesley, 1999.

  • A Revista do Linux é editada pela Conectiva S/A
    Todos os Direitos Reservados.

    Política de Privacidade
    Anuncie na Revista do Linux