INFRA-ESTRUTURA DE CHAVES PÚBLICAS CERTIFICAÇÃO DIGITAL
Gilberto Oliveira Netto
Introdução:
Até há poucos anos atrás o conceito
de sistemas abertos seguros e confiáveis era considerado apenas
remotamente. Nos últimos anos, entretanto, a utilização
de intranets e extranets tem crescido de forma surpreendente, provocando
o surgimento de novos desafios aos responsáveis pela segurança
das transações executadas neste novo ambiente, no qual apenas
sistemas de controle de acesso ou utilização de um firewall
não conseguem resolver.
Como resposta a estas necessidades, surge uma nova classe
de serviços baseada em sistemas de criptografia, utilizados até
esta época apenas em ambientes acadêmicos ou em agências
especializadas em segurança. Para a viabilização destes
serviços foi criada então uma infra-estrutura que possibilitasse
a aplicação dos mesmos à realidade, denominada Public-Key
Infrastructure - PKI, ou simplesmente Infra-estrutura de Chaves Públicas,
nome esse resultado da utilização dos conceitos de criptografia
de chave pública elaborados por Diffie e Hellman em 1976 e por Rivest,
Shamir e Adleman (RSA) em 1977.
Devido à extensão do tema, dividiremos este artigo em duas partes. Nesta primeira serão abordadas as técnicas de criptografia utilizadas e de que forma estas nos ajudam a resolver os problemas de segurança que agora se apresentam. Na segunda parte serão apresentadas com mais detalhes as características de uma PKI .
Requisitos de Segurança:
São quatro os principais níveis de segurança
que necessitamos e que devem ser disponibilizados a todos os serviços
que utilizam a Internet:
- Confidencialidade ou Sigilo: garantia de que somente
as pessoas ou organizações envolvidas na comunicação
possam ler e utilizar as informações transmitidas de forma
eletrônica pela rede.
- Integridade: garantia de que o conteúdo de uma
mensagem ou resultado de uma consulta não será alterado durante
seu tráfego.
- Autenticação: garantia de identificação
das pessoas ou organizações envolvidas na comunicação.
* Não-repúdio: garantia de que o emissor
de uma mensagem ou a pessoa que executou determinada transação
de forma eletrônica não poderá, poste-riormente negar
sua autoria.Como exemplo destes requisitos vamos ver agora uma situação
real onde pode-se verificar a importância das mesmas. Suponha que
João deseja utilizar os serviços oferecidos via Internet
por seu banco. As seguintes dúvidas podem ser colocadas:
* como João pode ter certeza de que está
dialogando com seu banco e não com alguém que se faz passar
por ele? _______________ (Autenticação)
* como João pode ter certeza de que as informações
enviadas por ele ao banco e as enviadas do banco para ele são originais,
ou seja, não foram alteradas durante a transmissão?_______________
(Integridade)
* como impedir que alguém tenha acesso às
informações transmitidas? _______________ (Sigilo)
* como o banco pode garantir-se de que, posteriormente,
João venha a afirmar que não foi ele quem fez o acesso?_______________
(Não-repúdio)
Outros exemplos de utilização:
- garantir de que um software baixado da Internet corresponde
ao original distribuído por seu proprietário;- autorizar
o acesso de usuários a sistemas sem que os mesmos tenham que se
identificar com userid e password;- enviar mensagem (e-mail) com sigilo
e com verificação pelo destinatário de sua integridade
e autoria.
Técnicas de Criptografia:
Três técnicas básicas de criptografia
são utilizadas em conjunto, de forma a atender aos requisitos de
segurança indicados anteriormente:Criptografia Simétrica:
nesta técnica uma mesma chave (segredo) é utilizada para
criptografar e descriptografar uma mensagem que, portanto, deve ser de
conhecimento tanto do emissor como do receptor da mesma. O algoritmo simétrico
mais utilizado até hoje é o DEA, mais conhecido como DES,
cuja chave possui tamanho de 56 bits. Entretanto algoritmos com chaves
de até 128 bits já estão disponíveis, resultando
em maior segurança.


one-way HASH
Funcionamento:
Para ver como estas técnicas são utilizadas
em conjunto, selecionamos dois exemplos bastante simples, os quais descrevemos
a seguir:
1. Correio eletrônico seguro:
Um usuário, João, deseja enviar uma mensagem
para Maria, de forma que ninguém mais tenha acesso a esta informação
e que Maria tenha certeza de que esta mensagem foi realmente enviada por
ele e também que não foi alterada durante a transmissão.
Procedimentos feitos por João:
* aplica uma função hash à mensagem
original obtendo um resumo;
* criptografa o resumo com sua chave privativa, gerando
o que se costuma denominar como Assinatura Digital;
* recupera a chave pública de Maria;
* criptografa a mensagem original com a chave pública
de Maria;
* envia a mensagem criptografada e o resumo criptografado
(assinatura) para Maria.

Procedimentos feitos por Maria:
* descriptografa a mensagem utilizando sua chave privativa;
* aplica à mensagem a mesma função
hash utilizada por João e obtém um resumo;
* recupera a chave pública de João;
* descriptografa a assinatura feita por João utilizando
a chave pública do mesmo e obtendo assim o resumo da mensagem original;
* compara os dois resumos obtidos, que devem ser iguais.

Resultados Obtidos:
* Sigilo - João tem certeza de que somente Maria
terá acesso à mensagem, pois a mesma trafega criptografada
e, como foi utilizada para isso a chave pública de Maria, somente
ela, utilizando sua chave privativa, poderá descriptografá-la;
* Autenticidade - Maria tem certeza de que foi João
quem realmente enviou a mensagem, pois consegue descriptografar a assinatura
que acompanha a mesma com a chave pública de João, o que
implica dizer que ela foi criptografada com a chave privativa dele, a qual
somente João deve ter acesso;
* Integridade - Maria tem a certeza de que a mensagem
recebida não pode ter sido substituída por outra ou alterada,
pois na comparação dos resumos feita por ele isto seria detectado.
2. Acesso à uma aplicação Web:
Um usuário utilizando um browser qualquer deseja
acessar uma aplicação Web que reside em um site seguro. Nesta
situação o site é possuidor de um par de chaves de
criptografia, sendo uma privativa que mantém armazenada em segredo
e uma pública que o browser do usuário já possui instalada.
Quando do direcionamento do browser para este site, os seguintes procedimentos
são executados:
* o browser reconhece que o site é seguro e que
a comunicação a ser feita com o servidor onde está
a aplicação deverá ser criptografada;
* o browser gera uma chave de criptografia simétrica
que será utilizada apenas durante esta sessão;
* o browser criptografa a chave de sessão gerada
com a chave pública do site e a envia para o servidor;
* o servidor recebe a chave criptografada e, com a chave
privativa do site, recupera a chave a ser utilizada na sessão;
* a partir deste momento toda a comunicação
entre o browser do usuário e o servidor onde está a aplicação
será feita criptografada com esta chave, enquanto a sessão
estiver ativa.
Resultados obtidos:
* Sigilo - toda a comunicação está
criptografada com uma chave que é do conhecimento apenas dos dois
envolvidos na mesma;
* Autenticidade - o browser (e por conseguinte o usuário)
sabe que está em sessão com o site desejado, pois utiliza,
no início da sessão, a chave pública do mesmo para
enviar a chave de sessão criptografada;
* Integridade - as mensagens trocadas após o estabelecimento
da chave de sessão trafegam criptografadas e desta forma não
podem ser alteradas.
Conclusão:
Como se pode notar nos exemplos acima, a combinação
das técnicas de criptografia e o conceito de assinatura digital
possibilitam a utilização da Internet de uma forma segura
e confiável.Um problema entretanto permanece: como é possível,
ao se obter uma chave pública de uma outra pessoa ou de um site
Web, ter a certeza de que esta chave realmente pertence a quem imaginamos
pertencer? Isto se torna ainda muito mais difícil à medida
em que se amplia o número de usuários com os quais lidamos
e os quais muitas vezes não conhecemos pessoalmente. A resposta
a este problema é conseguida com a utilização de certificados
digitais, mas isto já é assunto para nosso próximo
capítulo. Aguardem!
Sobre o Autor do TrabalhoGilberto Oliveira Netto é Analista de Informática formado em Engenharia Civil pela Universidade de Brasília, com especialização em Análise de Sistemas, e trabalha no Sepro há 13 anos. Atualmente está lotado no CTSAP/Supct onde é responsável pelo Projeto Digital do Sepro.
Mais informações sobre Certificado Digital
- Pagina da Intersix