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 Youre 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 Youre 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.