11

Click here to load reader

Trabalho de Diploma - Chaves Públicas - SSCT

Embed Size (px)

Citation preview

Page 1: Trabalho de Diploma - Chaves Públicas -  SSCT

1

CRIPTOGRAFIA E INFRA-ESTRUTURA DE CHAVES PÚBLICAS

Samuel Sangio Canuto Teixeira

Orientador: Prof. Maurílio CoutinhoDepartamento de Eletrônica (DON)

Resumo – O objetivo deste trabalho é o delevantar os aspectos de uma ICP e, emespecífico, da ICP-Brasil; observando-se suasleis, decretos, resoluções, que determinaramsuas evolução e atual condição operacional.Antes, porém, será feita uma explanaçãoacerca da criptografia, seus algoritmos e osdois tipos de chaves usadas, mostrando suasdiferenças e aplicabilidades.

Palavras-Chave: Criptografia, ChavePública, Infra-Estrutura de Chave Pública,ICP-Brasil, Certificação Digital, AutoridadeCertificadora, Autoridade de Registro.

I. INTRODUÇÃO

A segurança em uma Rede de Computadores,independente do seu tamanho, deve serproporcional ao valor das informações que porela transitam. Então, é importante garantir ummeio de transmissão seguro, confiável eespecífico à necessidade. Além disso, deve-setambém proteger os dados transmitidos depossíveis invasões aos sistemas, impedindo queàqueles fiquem à mercê de ações inescrupulosas.Para tanto, usa-se a criptografia, que, mesmoantes do advento das redes computacionais, éuma ferramenta útil para a proteção de dadossensíveis a olhos curiosos [1].

I.1 – Um Pouco de História

Há milhares de anos a criptografia tem sidousada para fins militares e diplomáticos. Nosdias de hoje, a Internet exige que as transaçõescomerciais requeiram privacidade e integridadeaos seus 327 bilhões de dólares movimentadosem transações comerciais em 2002 [2].

Seu uso nos princípios da comunicação foiamplamente estudado por Claude Shannon nosanos 40 e 50; e, até meados da década de 70, osalgoritmos de ciframento eram baseados emtransposições, substituições e a combinação de

ambas; dispondo de uma única chave para cifrare decifrar a mensagem, chamada chave secreta.

Atualmente, a criptografia computacional aindautiliza esses tipos de ciframento, porém, em1976, os pesquisadores da Universidade deStanford, Whitfield Diffie e Martin Hellman,desenvolveram um novo sistema criptográfico(sistema criptográfico assimétrico) baseado emoperações e funções matemáticas que utilizaduas chaves distintas: uma para cifrar e outrapara decifrar a mensagem; sendo, em termospráticos, impossível, senão muito difícil, obteruma a partir da outra [1]. Surgia aí o conceito dechaves públicas e chaves privadas.

Além da mudança conceitual, tal método abriunovos horizontes para as garantias que umsistema criptográfico pode oferecer (discutidasadiante), viabilizando assim, uma transmissãode dados praticamente infalível às invasões.Basta que o usuário crie o seu par de chaves,guarde para si a chave de deciframento, e tornepública a sua chave de ciframento.

Porém, esse é um ponto delicado desse sistema:o fato da chave de ciframento ser pública requerque alguém fique com essas chaves e asadministre de forma confiável, segura e,principalmente, desinteressada quanto aosmotivos de quem as usa.

Então, foram criadas regras para que umaentidade ganhe o direito de administrar aschaves, passando a ser uma AutoridadeCertificadora – AC ou uma Autoridade deRegistro – AR, e toda uma infra-estrutura, achamada Infra-estrutura de Chave Pública –ICP foi projetada para se garantir a emissão dechaves e os certificados que lhes dão validade eautenticidade [2].

I.2 – Situação da ICP no Mundo e no Brasil

A ICP (PKI – Public Key Infrastructure) foiestabelecida pela IEEE P1363 [3] e

ANAIS DOS TRABALHOS DE DIPLOMA – DEZEMBRO/2002INSTITUTO DE ENGENHARIA ELÉTRICA

UNIVERSIDADE FEDERAL DE ITAJUBÁ

Page 2: Trabalho de Diploma - Chaves Públicas -  SSCT

2

implementada pela IETF – Internet EngineeringTask Force (Força Tarefa de Engenharia daInternet) por meio da IETF – Internet X.509Public Key Infrastructure [4].

Para a IETF a ICP é um conjunto de serviços desegurança capaz de proporcionar o uso e ogerenciamento da criptografia de chave pública,assim como os certificados digitais, incluindo ogerenciamento de chave e sua política de uso.

No Brasil, foi instaurada recentemente uma ICP,denominada Infra-estrutura de ChavesPúblicas-Brasil – ICP-Brasil seguindo a MedidaProvisória 2.200 de 18 de junho de 2001 [5].Esta MP determinou a criação de um ComitêGestor da ICP-Brasil – CG-ICP Brasil. O CG é“a entidade máxima responsável peloestabelecimento e administração das políticas aserem seguidas pelas ACs integrantes destaestrutura” [6].

A ICP-Brasil vem atender à necessidade dasorganizações governamentais e privadasbrasileiras em dar suporte técnico e legal aosdocumentos criados e transmitidoseletronicamente.

I.3 – Objetivos deste trabalho

O objetivo deste trabalho é o de levantar osaspectos de uma ICP e, em específico, da ICP-Brasil; observando-se suas leis, decretos,resoluções, que determinaram suas evolução eatual condição operacional. Antes, porém, seráfeita uma explanação acerca da criptografia,seus algoritmos e os dois tipos de chaves usadas,mostrando suas diferenças e aplicabilidades.

II. A CRIPTOGRAFIA

A criptografia, do grego kryptós (oculto) egrápho (escrita), ou escrita oculta, é a ciênciaque propõe tornar incompreensível umamensagem originalmente escrita com clareza aquem desconhece o processo de codificaçãousado [1]. Dessa forma, uma informação podeser transmitida por meios de comunicação nãoconfiáveis, garantindo que somente odestinatário, que sabe como decifrá-la, acompreenda. Ao cifrar uma mensagem, estasofre transformações ditadas por um algoritmo,que a tornam ininteligível. Para se decifrar amensagem, segue-se o algoritmo ao inverso, eextrai-se a mensagem original.

Figura 1 – Modelo de Criptosistema [7].

II.1 – A Chave Criptográfica

A chave criptográfica é o verdadeiro segredo deum algoritmo. Ela muitas vezes é o próprioalgoritmo, e, senão o é, dita os caminhos paraque um algoritmo aparentemente simples torne-se imune a uma criptoanálise (a ciência dedeterminar a chave ou decifrar mensagens sem oconhecimento da chave) bem aplicada. A chavepode ser um número, uma seqüência de bits,uma cifra, um código, uma tabela, etc. Semprehá uma chave de ciframento e outra paradeciframento da mensagem (Figura 1). Porém,nos métodos simétricos elas são consideradasiguais e, portanto, é tratada como uma só.

À luz da criptografia computacional, uma chavepode ter dimensões brutais, como no caso doalgoritmo RSA (vide o item II.3.2.2), cujaschaves chegam a ordem de 10200.

II.2 – Tipos de Algoritmos Criptográficos

O tipo de algoritmo criptográfico diz o tipo dechave usada para cifrar e decifrar a mensagem.

II.2.1 – Algoritmos Criptográficos Simétricos

Os algoritmos criptográficos simétricos podemser dos tipos transposição, substituição eciframentos compostos, e visam somente oembaralhamento dos caracteres da mensagem, asubstituição dos caracteres da mensagem,segundo uma tabela, ou a aplicação de ambas astécnicas ao mesmo tempo, respectivamente [1].

Nesses casos, a chave de criptografia usada échamada de chave secreta, pois exige que ousuário a mantenha oculta sob seu poder, e só arepasse para quem for transmitida umamensagem criptografada. Isto se faz necessário,pois a mesma chave que é usada para cifrar umamensagem serve também para decifrá-la [1].Então, se a chave for de domínio público,qualquer um que interceptar a transmissão deuma mensagem codificada com essa chaveconsegue decifrá-la, acessando seu conteúdo.

II.2.2 – Algoritmos Criptográficos Assimétricos

Os algoritmos criptográficos assimétricosseguem os princípios da unidirecionalidade [1]de certas funções ou propriedades matemáticas,que permitem um cálculo rápido, simples ebarato de seus resultados, porém é inviável apartir destes, retornar ao ponto inicial sem seuconhecimento. Um exemplo, usado no algoritmoRSA (vide adiante), é o produto de doisnúmeros primos, que, por maiores que sejam,pode ser feito em instantes, e a obtenção destes,sem se saber quais são, a partir da fatoração doproduto, despende muito tempo [1].

Então, Whitfield e Hellman propuseram acriação de um par distinto de chaves, uma usada

Page 3: Trabalho de Diploma - Chaves Públicas -  SSCT

3

para cifrar, chamada de chave pública, e outrausada para decifrar, chamada de chave privada,seguindo o conceito da unidirecionalidadeacima. Assim, um usuário cria um par dechaves com um algoritmo assimétrico, publica asua chave pública e guarda para si a chaveprivada. Se for necessário enviar umamensagem criptografada a esse usuário, bastaacessar sua chave pública, usá-la para cifrar amensagem e enviar esta ao usuário, que, por suavez, será o único capaz de decifrá-la, acessandoseu conteúdo [1].

II.2.3 – Diferenças e Aplicação Real

Os métodos assimétricos garantem maiorsegurança em relação aos métodos simétricos,pois a distribuição de chaves nestes pode seralgo perigosa se houver qualquer tipo de escutadurante a troca de chaves. Com aqueles, adistribuição de chaves é simples, pois qualquerusuário pode, sem medo de interceptações ouescutas, publicar sua chave de ciframento, queserá impossível obter-se a sua correlata. Porém,os métodos assimétricos podem exigir muitotempo, mesmo com os recursos computacionaisdisponíveis atualmente, para se codificar umamensagem de tamanho considerável, quandocomparado com o tempo gasto por um métodosimétrico para se realizar a mesma tarefa. Então,para se agilizar o processo sem perder asegurança, usa-se um algoritmo simétrico paracifrar a mensagem, e a chave secreta usada é,por sua vez, cifrada com um métodoassimétrico, usando-se a chave pública dodestinatário, que será o único, com sua chaveprivada, capaz de decifrar a chave secreta e, comesta, então, decifrar a mensagem.

Tudo isto pode parecer um tanto trabalhoso dese fazer, mas com os recursos computacionaisdisponíveis atualmente, todo o processo é feitode modo automático e praticamente transparenteao usuário, se ele assim o desejar.

II.3 – A Criptografia Computacional

O propósito da criptografia computacional édispor da grande velocidade de processamentodisponível aliada à facilidade em se implementaros algoritmos criptográficos em linguagens deprogramação, visando se obter um sistemacriptográfico viável de se computar epraticamente inviável de se computar suainversa [1].

II.3.1 – Garantias da CriptografiaComputacional

As garantias que um bom sistema criptográficocomputacional deve dar, além da descrita noitem anterior, são [1]:

Sigilo de informações;

Integridade de informações;

Autenticação de usuário;

Autenticação de remetentes;

Autenticação de destinatários;

Autenticação de atualidade.

A primeira garantia diz que somente os usuáriosautorizados possam ter acesso à informação, ouque consigam torná-la inteligível. A segundaoferece inalterabilidade da informação, seja elaintencional ou acidental, mantendo-a sempre amesma. As quatro seguintes garantem,respectivamente, a real identidade do usuário aosistema usado; que, de fato, um, e somente umusuário emitiu aquela mensagem específica,tendo inclusive validade como prova perante umtribunal; que o destinatário de uma mensagemespecifica foi recebida por ele, e somente ele; e,por fim, que a informação enviada naquelemomento não possa ser reenviada em outromomento qualquer, impossibilitando que umaversão antiga, interceptada por um agenteexterno, seja usada para se obter informaçõesatuais do sistema [1].

Essas garantias são as bases de uma ICP.

II.3.2 – Tipos de Algoritmos Computacionais

A criptografia computacional simétrica nasceunos laboratórios da IBM na década de sessenta,culminando em 1971 com o algoritmo chamadoLUCIFER, criado por Horst Feistel. Entre 1972e 1974, baseado neste sistema, o pesquisadorWalter Tuchman, veterano da IBM eespecialista em teoria da informação, criou oDES - Data Encryption Standart (Padrão deCiframento de Dados), padronizado pelos EUAcomo sendo o algoritmo padrão, primeiro, parauso pelos órgãos não governamentais e nãomilitares, em 1978, e depois pelo segmentoprivado e instituições financeiras, em 1981 [8].

O sistema assimétrico nasceu da falha dosmétodos simétricos em garantir autenticação eprivacidade em redes de grande porte (WANs ea Internet). Whitfield Diffie e Martin Hellmandebruçaram-se sobre este problema e, em 1976,divulgaram seus conceitos sobre um método detroca de mensagens cifradas sem que haja anecessidade de se compartilhar as chaves [9].Bastava se aproveitar da intratabilidade de certasfunções ou propriedades matemáticas. Assim,em 1978, Ronald Rivest, Adi Shamir e LeonardAdleman, na época professores do MIT –Massachusetts Institute of Technology (Institutode Tecnologia de Massachustts),implementaram um algoritmo chamado RSA (oacrônimo é a inicial dos sobrenomes dosinventores do algoritmo) baseado naintratabilidade de se fatorar um produto muito

Page 4: Trabalho de Diploma - Chaves Públicas -  SSCT

4

grande entre dois números primos tambémmuito grandes [1].

II.3.2.1 – O Algoritmo DES

O DES é um algoritmo simétrico feito para serimplementado em hardware, e está restrito àcifragem de dados não confidenciais. “O DES éum ciframento composto que cifra blocos de 64bits (8 caracteres) em blocos de 64 bits, usandouma chave de 56 bits (64 bits, dos quais 8 deparidade)” [1]. Basicamente, o processo decifragem do DES segue os seguintes passos(Figura 2):

1. A mensagem é dividida em blocos de 64bits, que serão cifrados individualmente.

2. Cada bloco sofre uma transposição inicialTI, alterando a ordem dos bits segundo umatabela.

3. Cada bloco de 64 bits é dividido em blocosde 32 bits cada, um esquerdo, LI, e outrodireito, RI.

4. A chave de 56 bits é usada para gerar 16chaves de 48 bits cada (K1 até K16).

5. O bloco LI-1 sofre uma transformação T deacordo com a primeira chave, K1, de 48 bitse a metade RI-1. Este bloco não é alteradonem o número original de 64 bits (Figura 3).

6. Os blocos de 32 bits são trocados deposição (LI-1 → RI e RI-1 → LI).

7. O “novo” bloco esquerdo LI sofre umatransformação pela segunda chave, K2.

8. Repetem-se os passos 6 e 7 até a 16.a chave.

9. O bloco de 64 bits é reunido e sofre umatransposição final TF, inversa à inicial.

10. Os passos de 1 a 9 são repetidos para cadabloco de 64 bits da mensagem inteira, que éreconstruída com todos os blocos cifrados.

O processo de cifragem é representado da formaC = DES(K,M); onde C é a mensagem cifrada,DES é o algoritmo aplicado, K é a chave usada eM é a mensagem a ser criptografada.

O processo de decifragem, M = DES(K,C),segue os mesmos passos da cifragem, somenteinvertendo-se a ordem das chaves usadas emcada um dos 16 estágios [1].

Figura 2 – Processo de Cifragem do DES [7].

Figura 3 – Transformação T e Inversão deBlocos do DES [7].

O algoritmo diz que quaisquer pequenasalterações na mensagem original provocamgrandes alterações na mensagem cifrada. Em 20anos a criptoanálise não encontrou nenhummétodo eficaz para se “quebrar” o DES além daaplicação da “força bruta”, ou seja, tentar todasas combinações possíveis de chaves. Como achave tem 56 bits, existem no máximo 256

(≈72.000.000.000.000.000) diferentes chavespara serem testadas. Por isso a única maneiraeficiente de se implementar este algoritmo é porhardware [10].

II.3.2.2 – O Algoritmo RSA

O RSA é um processo assimétrico que envolve aescolha de dois números primos, multiplicá-lose obter duas chaves, uma em função da outraseguindo os seguintes passos:

1. Usa-se um algoritmo probabilístico para secalcular dois números primos distintos p eq, da ordem de 10100 cada um.

2. Calcula-se um número n = p⋅q e f(n) = (p-1)⋅(q-1). Ambos da ordem de 10200.

3. Gera-se um número inteiro c, ao acaso,dentro do intervalo (1,f(n)) tal quemdc(c,f(n)) = 1 e c < f(n). Ou seja, c e f(n)são primos entre si.

4. Com a equação c⋅d⋅modf(n) = 1 no intervalo[0,f(n)], determina-se o número d; sendo aoperação mod o resto de uma divisão.

5. Com isso, obtém-se a chave privada P =(c,n) e a chave secreta S = (d,n).

Um usuário para cifrar uma mensagem usando achave P, quebra a mensagem em blocos de bitsde tamanho m no intervalo 0 ≤ m < n, e cifracada bloco m usando o procedimento deexponenciação modular P(m) = mc mod n. Odestinatário decifra a mensagem por meio daS(P(m)) = md mod n = m.

Convém notar, como dito em [1], que o RSA éum sistema criptográfico comutativo, ou seja,pode-se cifrar uma mensagem também com achave privada, e, conseqüentemente, decifrá-lacom a chave pública. É provado, também em

Page 5: Trabalho de Diploma - Chaves Públicas -  SSCT

5

[1], que se a mensagem foi criptografada comuma das chaves, só é possível decifrá-la com aoutra chave. Isso torna o RSA capaz de proverassinaturas digitais e trocas de chaves entreusuários.

Atualmente, o RSA é a base do sistema PGP –Pretty Good Privacy (Privacidade Satisfatória),sistema não estruturado de troca de chavespúblicas, que também usa a lógica do sistemaIDEA (vide adiante) para embaralhar os bits damensagem. O algoritmo também suporta oKerberos, uma aplicação que permite aautenticação de duas pessoas frente a umservidor de autenticação específico. Váriosfornecedores como a IBM, NEC, HP e Sun,visam a implantação do sistema em seusSistemas Operacionais UNIX [11].

II.3.2.3 – Outros Algoritmos

Muitos dos métodos descritos foramimplementados seguindo as filosofias do DES edo RSA.

Os RC2, RC4, RC5 e RC6 – Rivest Ciphersão notoriamente mais rápidos que o DES, eos dois últimos permitem uma chave detamanho variável (sendo muito seguro),enquanto os outros possuem uma chave desomente 40 bits (facilmente quebrável porforça bruta) [12] [10].

O Triplo DES é o mesmo algoritmo DESaplicado três vezes segundo a equação C =DES{K1,DES-1[K2,(K1,M)]}, onde DES-1

representa o algoritmo inverso (decifragem)e K1 e K2 são duas chaves secretas distintas.O 3DES é usado atualmente no lugar doDES comum [10].

O IDEA – International Data EncryptionAlgorithm (Algoritmo de Cifragem deDados Internacional) embaralha blocos de64 bits com uma chave de 128 bits. É umalgoritmo simétrico projetado para ser fácilde ser programado e é forte o suficiente pararesistir à maioria dos ataquescriptoanalíticos [12].

O algoritmo Diffie-Hellman é baseado nadificuldade em se calcular logaritmosdiscretos em um plano finito. Foi o primeiroalgoritmo implementado para troca dechaves, e é usado unicamente para isso. É ométodo base para o RSA [1].

O algoritmo DSA – Digital SignatureAlgorithm (Algoritmo para AssinaturaDigital), desenvolvido pela NSA dosEstados Unidos, é utilizado somente para aimplementação da assinatura digital. Aforça desse algoritmo está na dificuldade dese calcular logaritmos discretos [13].

O El Gammal é um algoritmo parecido como RSA, porém utiliza a aritmética dosmódulos além do cálculo de logaritmosdiscretos para criptografar os dados. Assimcomo o RSA, o El Gammal é um dospoucos métodos que permite a cifragem dedados e também a assinatura digital [7].

Recentemente foi especificado o novoalgoritmo simétrico, chamado Rijndael,(Vincent Rijmen e Joan Daemen) para serusado pelo governo dos EUA para protegerinformações restritas. O FIPS – FederalInformation Processing Standard (Padrãode Processamento de Informação Federal)aprovou o AES – Advanced EncryptionStandard (Padrão de CriptografiaAvançado), que determinou a adoção dessenovo padrão. O Rijndael trabalha comtamanhos de chaves de 128, 192 e 256 bits,criptografando blocos de mesmo tamanho,sendo possível usar todas as novecombinações, e se estender facilmente essesnúmeros para múltiplos de 32 bits. O códigodo algoritmo é bem enxuto e não dependede números aleatórios ou constantesmatemáticas, como o número pi, por isso oRijndael possui alto nível de segurança e éfacilmente implementado em equipamentosque utilizam pouca RAM [14].

II.3.2.4 – Um Pouco de Polêmica

Apesar de alguns desses algoritmos seremnotoriamente mais seguros que o DES e o RSA,ambos são os algoritmos mais difundidos para ouso geral. Só o fato de terem sido adotadoscomo padrões nos EUA já é um indicativo desuas “popularidades”. Os dois algoritmos sãotambém famosos, em parte, devido as diversaspolêmicas em que estiveram, e estão envolvidos.

O primeiro é duramente criticado pelacomunidade acadêmica porque foi supostamentealterado pela NSA – National Security Agency(Agência de Segurança Nacional) dos EUA,durante a sua implementação técnica na IBM,para conter uma “porta dos fundos” (do inglêsback-door), que permitiria livre acesso à agênciaao conteúdo da mensagem, e a redução donúmero de bits da chave de 128 bits, usado noLUCIFER, para os 56 bits, padrão no DES. Issogerou um certo repúdio das entidades privadasquanto ao quesito privacidade. Além disso, oalgoritmo possui a fraqueza de ter uma chavecom dimensão muito pequena para os dias dehoje (em julho de 1998, um hardware, custandoU$250.000,00 foi apresentado pela EFF –Eletronic Frontier Foundation, que realizava otrabalho de quebrar o DES em pouco mais de 3horas usando a “força bruta”), e o seu aumento éinviável, pois o tamanho da chave faz parte do

Page 6: Trabalho de Diploma - Chaves Públicas -  SSCT

6

projeto. O método de criptoanálise diferencial,revelado há pouco tempo, reduz as chaves para247. Com outro método, chamado criptoanáliselinear esse número cai para 243 [10] [15] [16].

O RSA possui o inconveniente de ser fundadoem uma propriedade matemática: a dificuldadeem se fatorar números primos grandes; e, aqualquer momento alguém pode descobrir umamaneira mais simples de se resolver esseproblema. Por enquanto a única maneira de sefazer isso é por “força bruta”. O pior é que, logona sua invenção, em 1977, os criadores do RSA,Rivest, Shamir e Adleman, propuseram umdesafio de quebrar uma mensagem codificadacom uma chave pública de 129 bits, e afirmaramque poderia ficar oculta por décadas. Essa tarefaficou conhecida como a tarefa RSA129. No anode 1993, milhares de pessoas usando máquinaspoderosas trocaram dados e testes através daInternet, e, em 1994, em menos de um ano detentativa, quebraram a famosa chave.

Então, parece fácil admitir que agora essasempre será uma tarefa fácil, mas deve-seatentar que a quebra da chave só foi possívelcom o auxílio de supercomputadores, e poucaspessoas no mundo têm acesso a eles (Figura 4).Ademais, um ano é tempo suficiente para quequalquer informação contida nas mensagens queutilizam uma chave desse tamanho perca suavalidade.

Figura 4 – Tempo para se Quebrar DiversosTamanhos de Chaves Usando Força Bruta por

Diversas Entidades [17].

II.3.3 – Assinatura Digital

O ponto mais importante dos métodosassimétricos é a corroboração imediata das seisgarantias da criptografia computacional. Issopode ser feito por meio da assinatura digital deduas maneiras: usando a chave privada ou afunção Hash.

A assinatura digital é muito usada por empresasque disponibilizam instalações de softwares,atualizações, plug-ins, etc. Sempre que aparecena tela do computador uma janela pedindoautorização para se confiar em tal produto de talempresa, está-se fazendo uso da assinaturadigital. Se for aceita a assinatura, o navegadorautomaticamente armazena a chave pública daempresa, para facilitar o processo em caso defuturas instalações.

Para assinar usando sua chave privada, o usuárioRemetente a utiliza para cifrar uma mensagem e

a envia ao usuário Destinatário. Este recebe amensagem cifrada e acessando a chave públicadaquele, comprova que não há como outrousuário ter mandado aquela mensagem, somenteele.

Deve-se notar, porém, que a assinatura nãogarante o sigilo da informação, pois qualquerum que interceptar a mensagem e usar a chavepública do Remetente para decifrá-la terá acessoao seu conteúdo. Então, para se garantir o sigiloda informação, garantindo também aautenticação de destinatário, o Remetente, apóscifrar a mensagem com sua chave privada, usa achave pública do Destinatário para cifrar tudo denovo. Assim, somente o Destinatário será capazde decifrar, primeiro com a sua chave privada, amensagem duplamente cifrada, e logo emseguida usa a chave pública do Remetente paradecifrar a mensagem pela segunda vez.

II.3.4 – A Função Hash

A assinatura digital por chave privada é umprocesso muito demorado e pode-se criar umamensagem, no mínimo, com o dobro dotamanho original. A solução encontrada é usarum processo, chamado a função Hash (doinglês, confundir ou moer), que identifiqueaquela mensagem de modo único, assegurandoque não haverá dois textos diferentes com amesma identidade, chamada message digest(mensagem compilada). O message digest é aessência da mensagem original. Mesmo semudar uma só palavra desta, a função Hashproduzirá outro messagem digest completamentediferente do anterior.

Então, para assinaturas digitais mais eficientescombina-se a assinatura digital por chavesprivadas com a função Hash, da seguintemaneira (Figura 5): passa-se a mensagem poruma função Hash, obtendo-se seu messagedigest. Este é cifrado com a chave privada doRemetente e com a chave pública doDestinatário. O message digest cifrado éanexado à mensagem e ambos são enviados. ODestinatário segue o roteiro inverso paradecifrar o message digest, passa a função Hashpela mensagem e obtém um message digest queé comparado ao recebido. Se forem idênticos,está garantida a integridade da informação.

Contudo, apesar da praticidade, esse método nãogarante o sigilo da informação, pois não houvequalquer tipo de ciframento da mensagem.

Os algoritmos de Hash mais comuns são:

O MD5 – Message Digest 5 foi criado porRon Rivest e produz um valor de hash de128 bits. Esse algoritmo é otimizado paraprocessadores Intel, mas ultimamente seu

Page 7: Trabalho de Diploma - Chaves Públicas -  SSCT

7

uso vem caindo, pois algumas partes do seualgoritmo foram comprometidas [15].

O SHA-1 – Secure Hash Algoritm-1 foicriado pela NSA. Ele produz um valor deHash de 160 bits. O SHA-1 se tornoubastante popular e hoje é utilizado para criarassinaturas digitais [15].

Figura 5 – Geração (a) e Verificação (b) deAssinatura Digital [18].

III. A INFRA-ESTRUTURA DE CHAVE

PÚBLICA

Uma ICP garante a tecnologia necessária para seadotar uma política adequada ao armazenamentodas chaves públicas. Ela também estabelece asformas de certificação e autenticação daschaves.

A IETF designou um grupo de trabalho, o PKIKworking group (Grupo de Trabalho ICP), paraavaliar as técnicas, protocolos, políticas detrabalho, arquiteturas, perfis de documentos,gerenciamento, etc. que forem apresentadas aogrupo; que também decide quais serão ospadrões adotados que promoverão ainteroperabilidade das diversas ICPs jáinstaladas.

Uma ICP pode ser hierárquica, que prevê umaAutoridade Certificadora Raiz – AC Raiz, oudistribuída, com Autoridades Certificadoras emPonte. Esta arquitetura realiza o credenciamentopar-a-par, cujo contrato de certificação écruzado, sendo verificadas as políticas decertificados e práticas operacionais baseados empolíticas de mapeamento. Na arquiteturahierárquica, cada ambiente dita suas políticas epráticas por meio das DROs – Declaração deRegras Operacionais, e cada contrato de adesãoé avaliado e validado conforme ao processo decredenciamento a que está subordinado [19].Esta é a arquitetura adotada pela ICP-Brasil(Figura 6).

III.1 – Distribuição de Chaves Públicas

O ponto fraco da criptografia assimétrica é adistribuição das chaves públicas. Quando dois

usuários decidem trocar mensagens secretas elesdevem concordar em usar uma chave especificapara aquela conversa, denominada chave desessão. O problema é transmitir essa chave porum meio não confiável. Para se garantir tal trocadeve-se assegurar que um terceiro usuário, deconfiança de ambas as partes, sirva de árbitro egaranta a autenticidade das chaves usadas.

Figura 6 – Estrutura de uma ICP [20].

III.2 – A Autoridade Certificadora Raiz

É a primeira entidade em uma cadeia decertificação. É ela quem distribui os certificadospara todas as outras ACs da estrutura. Para issoela mesma assina o seu certificado. A AC Raiznão pode emitir certificados diretamente aousuário, responsabilidade essa dada às ACscomuns.

III.3 – A Autoridade Certificadora

Uma Autoridade Certificadora – AC é aentidade designada para desempenhar o papel deárbitro durante a troca de mensagens entreusuários, fornecendo, certificando e validandoas chaves usadas, segundo a DRO vigente.

Um usuário que desejar criar um par de chavespode fazê-lo direto em uma AC. Durante oprocesso, esta cria um Certificado Digitalpadrão, de acordo com a norma adotada, queateste sua legitimidade e unicidade, sempre queoutro usuário precisar verificar a autenticidadeda chave.

III.4 – A Autoridade de Registro

Para se evitar que uma AC fique sobrecarregadacom todas as verificações que foremrequisitadas a ela, foram criadas as Autoridadesde Registro – ARs. Estas dão suporte às ACspara que possam dispor de tempo para gerarcertificados.

Deve-se notar que uma AR nunca estaráautorizada a criar um certificado. Seu únicopapel é o de verificar as informações pertinentesaos certificados já criados. Ela é a últimaentidade possível da cadeia antes do usuário.

III.5 – Certificados Digitais

Um Certificado Digital é a identidade digital deum par de chaves criado frente a uma ACqualquer. Ele armazena todas as informaçõespertinentes ao dono do par de chaves e a esta emquestão. Quando criado, o certificado é assinado

Page 8: Trabalho de Diploma - Chaves Públicas -  SSCT

8

digitalmente com a chave privada da AC,evitando-se qualquer possibilidade defalsificação, ou alteração, acidental ou não, domesmo. Todo certificado digital possui uma datade validade, então, de tempos em tempos a ACcria uma Lista de Certificados Revogados –LCR, que fica disponível para consultas.

O padrão digital para os certificados digitaisadotados pela International TelecomunicationUnion – ITU-T (União de TelecomunicaçãoInternacional) é o X.509 v3 (o “v3” indica queessa é a terceira versão do certificado). O PKIKworking group se encarregou de criar padrõessuportáveis pela Internet, facilitando acomunicação entre diferentes ICPs. Atualmente,o X.509 já está amplamente difundido naInternet. Muitas lojas eletrônicas somenterealizam uma transação, mediante o certificadopadrão X.509 autenticado por uma AC.

Contudo, o que ocorre é um padrão comumdifundido para certificados digitais, mas não háum consenso global para gerenciá-los. Asgrandes empresas da Internet simplesmenteforçam o seu produto como padrão parainteroperabilidade, esquecendo-se que o maiorrecurso de uma ICP é a sua integração comdiversas espécies de aplicações. Se uma ICPperder essa interoperabilidade, perde totalmentesua utilidade [2].

Um fato curioso no uso da certificação digital,por meio da assinatura digital, é a suasimilaridade com a estrutura de autenticação decartório, usado no sistema legal do Brasil. Oscartórios no caso da ICP seriam as ACs e ARs.

IV. A INFRA-ESTRUTURA DE CHAVE

PÚBLICA BRASIL

Prevista como um meio confiável de trocas dedocumentos sigilosos através da Internet entre asentidades governamentais brasileiras, a ICP-Gov[21] ganhou âmbito público depois que asempresas brasileiras exigiram o uso de talrecurso para tornar seguras suas transações via

Internet. Revisto o projeto, a ICP-Gov passou aser chamada de ICP-Brasil (Figura 7) [5].

Figura 7 – Logotipo da ICP-Brasil [22].

A ICP-Brasil segue as características de umaICP hierárquica, possuindo uma AC Raiz,diversas entidades credenciadas como AC, eoutras como AR e prestadoras de serviços(Figuras 8, 9 e 10).

IV.1 – O CG ICP-Brasil

Instaurado pela MP 2.200 e definido pelodecreto 3.872 [24], o CG, como já foi dito, é aentidade máxima na estrutura da ICP Brasil, eexerce a função de Autoridade Gestora dePolíticas – AGP da ICP (Art. 1°).

Ficou disposto pelo decreto 3.872, a composiçãodo CG, as medidas, políticas, critérios e asnormas para implantação e funcionamento daICP-Brasil, e licenciamento das ACs, ARs e dasdemais prestadores de serviços de suporte à ICP,em todos os níveis da cadeia de certificação.

IV.2 – A AC Raiz da ICP-Brasil

“O ITI – Instituto Nacional de Tecnologia daInformação, Autarquia Federal vinculada à CasaCivil da Presidência da República, é aAutoridade Certificadora Raiz da ICP-Brasil”[23]. O ITI ganhou o status de AC Raiz da ICP-Brasil pela MP 2.200.

O ITI segue os padrões, técnicas e políticasdefinidas na DRO da AC Raiz [25], que entreoutras coisas define que o certificado destaentidade utilizará o RSA com o SHA-1 comoalgoritmos de assinatura digital. Diz tambémque o próprio certificado não deverá ter validadesuperior a dez anos nem inferior a oito anos.

Figura 8 – Estrutura Hierárquica da ICP-Brasil em 26/11/2002. (As ACs em amarelo são as entidades jácredenciadas. As ACs em verde estão em processo de credenciamento) [23].

Page 9: Trabalho de Diploma - Chaves Públicas -  SSCT

9

Figura 9 – Entidades Credenciadas da ICP-Brasil [23].

Figura 10 – Entidades em Processo de Credenciamento da ICP-Brasil [23].

Todos os certificados emitidos pela AC Raizdevem estar em conformidade com o padrãoISO/IEC 9594 X.509 v3, tendo os seguintescampos:

Versão;

Emissor;

Validade;

Assinatura Digital da AC, segundo oalgoritmo vigente;

Usuário;

Chave pública do usuário;

Número Serial, único em cada AC.

São definidos os serviços oferecidos pela ACRaiz: a Política de Revogação de Certificados,os acordos para certificação cruzada com ICPsde outros países, a segurança dos dadosarmazenados (chaves, certificados, LCR) e a:

IV.3 – Política de Certificado da ICP-Brasil

A PC da ICP-Brasil estabelece as regrasespecíficas à aplicabilidade dos certificadosconforme os requisitos de segurança ditadospela Política de Segurança da própria ICP [26].

Para tanto, foram estabelecidos quatro níveis desegurança relacionados com assinatura digital(A) e quatro com sigilo (S), que classificam oscertificados em (Figura 11).

Figura 11 – Tabela dos Tipos de Certificados daICP-Brasil [27].

V. CONCLUSÃO

Uma ICP é vital para o uso da criptografiaassimétrica e da certificação digital. Mas, apesarde todo seu aspecto técnico, muito se discuteacerca da aplicabilidade legal dada à ICP-Brasil.Sendo toda ela basicamente calcada na ICP dosEUA, a crítica recai sobre a nossa dependênciaem relação a uma tecnologia que exige uma baselegal bem fundada e específica ao âmbitojurídico em que é estabelecida.

Enquanto o modelo europeu dá margem legalpara certificados não cadastrados frente a umaentidade oficial, o modelo brasileiro, decalcadodo modelo dos EUA, força uma ditaduradisfarçada de “tecnologia a serviço de todos”.Os certificados eletrônicos declarados ilegaispela MP 2.200 (Art. 12.°) paradoxalmente têmvalor garantido pelo Código Civil desde 1917

Page 10: Trabalho de Diploma - Chaves Públicas -  SSCT

10

(Art. 129.°) [28] e são derrubados em seusartigos 5.°, 11.° e 12.° [28], mudados parasatisfazer a MP 2.200.

Outro fato discutível é que apesar das empresasbrasileiras estarem despertando para acertificação digital e a criptografia de chavepública para a proteção de seus dados, visando ocrescimento via Internet, elas devem atentarpara o fato de que as grandes empresasdetentoras de tais recursos são dos EUA.

E lá as empresas seguem as normas desegurança da NSA, que não permite que ossistemas criptográficos lá registrados sejamexportados se a chave ultrapassa 40 bits. Semcontar os rumores de que todo padrão adotadopor lá possui uma porta-dos-fundos para que aNSA vasculhe os documentos alheios sob aégide de sua segurança nacional.

Então, seria uma prática salutar que as empresasbrasileiras busquem os recursos necessários aquimesmo, visto que somos fonte exportadora debons sistemas criptográficos, e que os mesmossão adequados às nossas necessidades.

Para a ICP internacional, fica a espera daresolução dos problemas relacionados a padrõese interoperabilidade de aplicações, e,conseqüente, possibilidade de gerenciamentoglobal de certificados digitais.

Mas, a despeito de todo esse falatório, fica acerteza de que não há um sistema criptográficoque garanta privacidade ideal. O ideal é aliar acriptografia com todos os outros métodos que seconhece para, ao menos, prevenir que os ataquesrecebidos não causem tanto estrago.

A criptografia sempre foi uma das melhoresestratégias de ocultação de dados, porém nãodeve ser a única. Um usuário mal-intencionadopode muito bem, como vingança por não teracesso aos dados alheios, apagá-los, interceptare impedir seu envio, comprometer o programacriptográfico, alterando-o para trocar ouarmazenar as chaves geradas, ou parasimplesmente gerar chaves diferentes daquelasprevistas pelo dono do programa, mas de acordocom a vontade do invasor [29].

VI. AGRADECIMENTOS

Ao professor Maurílio por sua paciência emaceitar o encargo de me orientar. Tambémagradeço a liberdade e incentivo para que otrabalho tivesse o meu jeito.

Muito obrigado à Marilena por seu eterno bomhumor e disponibilidade.

E, por último, mas não menos importante,agradeço à Aline por entender que um dia issoterá um fim.

VII. REFERÊNCIAS

[1] Lucchesi, Cláudio Leonardo, Introdução àcriptografia computacional, Editora daUNICAMP, 1986.

[2] SecureNet, Zaninoti, Thiago, Entendendo aInfra-estrutura de Chaves Públicas, artigopublicado em 06/01/2001, disponível em:www.securenet.com.br/artigo.php?artigo=90, acessado em 30/10/2002.

[3] Página da Internet, The IEEE P1363 HomePage Standard Specification for Public-KeyCryptography, disponível emhttp://grouper.ieee.org/groups/1363/,acessado em 16/11/2002.

[4] IETF – Internet X.509 Public KeyInfrastructure, disponível em www.ietf.org/,acessado em 16/11/2002.

[5] Medida Provisória 2.200, de 18 de junho de2001, disponível em www.icpbrasil.gov.br/,acessado em 17/04/2002.

[6] Termo de Referência do CG ICP-Brasil,disponível emwww.planalto.gov.br/ccivil_03/consulta_publica/PDF/termodereferencia.pdf, acessadoem 11/03/2002.

[7] Weber, R. F., Criptografia Contemporânea,Instituto de Informática – UFRGS, PortoAlegre – RS, disponível emwww.inf.ufsc.br/~castoldi/_Criptografia.pdf,acessado em 17/11/2002.

[8] Redes de Computadores e suas Aplicaçõesna Educação, DES – Data Encrypt Standard,disponível emhttp://penta.ufrgs.br/gere96/segur2/des.htm,acessado em 30/10/2002.

[9] Certising, AJUDA – Introdução àCriptografia disponível emhttps://digitalid.certisign.com.br/server/server/help/hlpIntroCryp.htm, acessado em30/10/2002.

[10] Criptografia, disponível emwww.dei.isep.ipp.pt/~andre/documentos/criptografia.html, acessado em 27/01/2001.

[11] Redes de Computadores e suas Aplicaçõesna Educação, RSA, disponível emhttp://penta.ufrgs.br/gere96/segur2/rsa.htm,acessado em 13/11/2001.

[12] UNICAMP, Equipe de Segurança emSistemas e Redes - Documentos - ConceitosBásicos, disponível emwww.security.unicamp.br/docs/conceitos/o3.html, acessado em 30/10/2002.

[13] FUTURE TECNOLOGIES, Stohler, Paulo,página da Internet, Criptografia: ConceitosBásicos – Primeira Parte, publicado em25/02/2002, disponível emwww.fti.com.br/n_jornal/artigo_paulo_cripto01.htm, acessado em 30/10/2001.

[14] FUTURE TECNOLOGIES, Stohler, Paulo,página da Internet, Criptografia: Conceitos

Page 11: Trabalho de Diploma - Chaves Públicas -  SSCT

11

Básicos – Segunda Parte, publicado em25/02/2002, disponível emwww.fti.com.br/n_jornal/artigo_paulo_cripto01.htm, acessado em 30/10/2001.

[15] Revista do Linux, Introdução àCriptografia, disponível emwww.revistadolinux.com.br/ed/005/criptografia.php3, acessado em 30/10/2002.

[16] Domingos, Henrique J. L., artigo,Segurança em Sistemas InformáticosDistribuídos, Departamento de Informática,Faculdade de Ciências e Tecnologia,Universidade Nova de Lisboa, disponível emwww.asc.di.fct.unl.pt/ssid/docs/acetatos/ssid-mei-01-02-4.pdf, acessado em 02/12/2002.

[17] CÂMARA DE COMÉRCIO FRANÇA-BRASIL, Palestra sobre Criptografia:Conceito e Uso, disponível emwww.ccfb.com.br/eventos/cmss_int_sp.asp,acessado em 27/11/2002.

[18] Linhalis, Flávia, Moreira, Dilvan de A.,artigo, Interface de Segurança paraServidores de Dados Universais, disponívelemhttp://java.icmc.sc.usp.br/dilvan/papers/2001-SSI/siuds01.pdf, acessado em 17/11/2002.

[19] Machado, Pedro Paulo Lemos, ICP-Gov -Infra-estrutura de Chaves públicas do PoderExecutivo Federal, via correio eletrônico em26/07/2002.

[20] Santos, André A. J. dos, Santos, Igor LucasC. dos, Borges, Leonardo M., Vieira ThaísRuas, Seminário de Comércio EletrônicoICP Brasil, disponível emhttp://prometeu.speed.dcc.ufmg.br/~nolineonline/seminario-icp.ppt, acessado em17/11/2002.

[21] Decreto 3.587, de 05 de Setembro de 2000,disponível em www.icpbrasil.gov.br,acessado em 17/04/2002.

[22] ICP Brasil, disponível emwww.icpbrasil.gov.br, acessado em27/07/2002.

[23] ITI – Instituto Nacional da Tecnologia daInformação – Autoridade Certificadora Raizda ICP-Brasil, publicado em 26/11/2002,disponível em www.iti.gov.br, acessado em02/12/2002.

[24] Decreto 3.872, de 18 de Julho de 2001,disponível em www.icpbrasil.gov.br,acessado em 17/04/2002.

[25] Parte II-1 – Declaração de RegrasOperacionais da AC-Raiz, INTEGRANTEDA ICP-Brasil, disponível emwww.iti.gov.br, acessado em 05/04/2002.

[26] Parte III – Política de Segurança da ICP-Brasil, publicado em 19/06/2001, disponívelem www.icpbrasil.gov.br, acessado em05/04/2002.

[27] Parte I-1 – Políticas de Certificado da ICP-Brasil, Assinatura Digital Nível 1 ao 4,Sigilo Nível 1 ao 4, disponíveis emwww.icpbrasil.gov.br, acessados em05/04/2002.

[28] Marcacini, Augusto, artigos diversos,disponíveis emhttp://augustomarcacini.cjb.net/dirinfo.html,acessado em 30/10/2002.

[29] VERDADE ABSOLUTA, O que acriptografia não protege, disponível emhttp://www.absoluta.org/cripty/cripty_dont_do.htm, acessado em 14/02/2002.

BIOGRAFIA:

Samuel Sangio Canuto TeixeiraNasceu em Guaratinguetá-SP em21 de Novembro de 1976.Mudou-se para Salvador em1985, onde adquiriu seu diplomade Técnico em Eletrônica em

1993. Ingressou na EFEI em Agosto de 1995,onde graduar-se-á Engenheiro Eletricista emJaneiro de 2003. Estagiou no Laboratório deTelecomunicações - ALCATEL/UNIFEI doGrupo de Telecomunicações da UniversidadeFederal de Itajubá – UNIFEI de Setembro aDezembro de 2002.