TRANSCRITO DE TEMATEC - Tema 146 - Ano VI - nº 46 - 1999
Este escrito recebi do Sergio Braune, Subchefia para Assuntos Jurídicos da Casa Civil.
Remetido em outubro 2003,  com a observação de que mesmo sendo escrito em 1999 ainda é atual.

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.

Criptografia Assimétrica: nesta técnica cada usuário possui um par de chaves, mantendo uma em segredo (chave privativa) e tornando a outra pública (chave pública). O tamanho destas chaves varia de 512 a 2048 bits e o algoritmo assimétrico mais utilizado ainda hoje é o RSA, já citado aqui. Duas propriedades destas chaves valem ser destacadas:
* uma mensagem criptografada com uma das chaves somente pode ser descriptografada com a outra chave correspondente do par;
* o conhecimento da chave pública não permite a descoberta da chave privativa correspondente.
Função HASH ou Resumo de Mensagem: esta técnica permite que, ao ser aplicada à uma mensagem de qualquer tamanho, seja gerado um resumo criptografado de tamanho fixo e bastante pequeno, como por exemplo 128 bits. Este resumo também é conhecido como message digest. Algumas das propriedades desta função:
* não é possível fazer a operação reversa, ou seja, dado um resumo é impossível obter a mensagem original;
* duas mensagens diferentes, quaisquer que sejam, não podem produzir um mesmo resumo; deve ser fácil e rápido de ser aplicado.

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