You are on page 1of 8

Segundo fascculo do tutorial de criptografia

SEGURANA

Criptografia: teoria e prtica, parte 2


Chaves pblicas e privadas tm diversos usos e formas. Veja como us-las e como elas so mal utilizadas. por Marcio Barbado Jr. e Tiago Tognozi

etomando o primeiro artigo desta srie [1], vamos abordar agora mais alguns aspectos tericos e prticos da criptografia. Em primeiro lugar, vamos observar as questes matemticas envolvidas nessa rea, formalizando matematicamente a criptografia assimtrica. Seja: K um conjunto dos pares de chaves e e d, tais que
(e,d) K; e  uma chave de encriptao pertencente a K, ou seja, uma

E um sistema de encriptao

com uma coleo de funes Ee, ditas E ndice ezinho e formalizadas como:
Ee:e K

e
Dd(c)=m

D um sistema de decriptao com uma coleo de funes inversas Dd, ditas D ndice dezinho e formalizadas como:
Dd:d K m  uma mensagem de textopuro; c uma mensagem m, encriptada

A funo de encriptao Ee possui dois parmetros: a chavee; e a mensagem de texto puro m. Assim como a funo de decriptao Dd, que possui: a chave d; e o texto cifrado c. Considerando-se os possveis pares (Ee, Dd) para encriptao e decriptao, e uma mensagem encriptada c, no se chega a m mesmo que se conhea a coleo de funes Ee. Ou seja, conhecendo-se uma cha-

chave pblica; d uma chave de decriptao pertencente a K, ou seja, uma chave privada;
70

tal que:

Ee(m)=c

http://www.linuxmagazine.com.br

Criptografia | SEGURANA

ve pblica e, no se chega chave privada d correspondente. Ee contm funes ditas trapdoor e d a informao trapdoor necessria para se obter as funes inversas Dd, que possibilitam as decriptaes:
Dd(Ee(m))=m

funo bijetora a um nmero real, por exemplo, teremos um resultado. E para voltar ao real original, aplicase ao resultado a inversa da funo. Exemplo para uma funo de primeiro grau:
f(x)=2x+1

Decifrar a si mesma

Por que uma chave pblica no consegue decifrar o que ela mesma encripta? Utilizar uma chave pblica e encriptar uma mensagem envolve a aplicao de uma funo bijetora do tipo trapdoor. Tal funo devolve a mensagem encriptada. Vamos relembrar alguns conceitos de funes. Considere a funo:
f(x)=y

Se desejarmos encriptar a mensagem 5 (o nmero cinco), aplicamos a funo ao nmero 5 e teremos f(5)=11. Neste caso, 11 seria a mensagem encriptada. Para decifr-la, necessrio obter a inversa de f(x), que :
x=(y-1)

Figura 1 Funobijetora:injetorae
sobrejetora.

Ento:
x=(11-1)x=5

Funes bijetoras (figura 1) so injetoras (diferentes valores de X levam a diferentes valores em Y, figura 2) e sobrejetoras (todo elemento de Y corresponde a pelo menos um elemento de X, figura 3). Portanto, uma funo bijetora, sendo injetora e sobrejetora, possui o mesmo nmero de elementos em X e Y. Durante o perodo escolar bsico, um contra-exemplo clssico oferecido aos alunos a seguinte funo:
f(x)=x2

Note na tabela 1 que no se trata de uma funo injetora. A tabela mostra que diferentes valores de X nem sempre conduzem a resultados distintos em Y. A funo no injetora, logo, no h bijeo. Ela no serve a fins de encriptao assimtrica. Convm, entretanto, salientar que a funo tambm no sobrejetora, pois os valores negativos de Y jamais sero alcanados. Assim como nos casos mais simples da Matemtica, aps aplicar uma

Assim, deciframos o 11 e obtivemos o 5 original. Muitas pessoas fizeram esses clculos a vida inteira, ento no h nenhuma novidade. Decifrar uma mensagem encriptada com uma funo trapdoor tambm envolve a obteno de uma inversa. Porm, essa inversa no facilmente obtida. Funes trapdoor fazem uso de mecanismos mais sofisticados, como o operadordemdulo, que serve para encontrar o resto da diviso de um nmero por outro e, alm disso, dificulta a obteno da inversa.

Figura 2 Funoinjetora:cada
elementodeXlevaaum elementodiferenteemY.

Algoritmos assimtricos
Os algoritmos apresentados a seguir se referem componente de privacidade, ou seja, so utilizados para encriptao e decriptao: istema ElGamal: algoritmo de s criptografia assimtrica baseado em Diffie-Hellman. GnuPG se refere a ele como O ELGE;
Figura 3 Funosobrejetora:cada
elementodeYcorrespondeapelomenosum elementodeX.

SA: Trata-se de uma famlia R de funes trapdoor extremamente eficiente.


71

Linux Magazine #63 | Fevereiro de 2010

SEGURANA | Criptografia

Tabela 1: Funo no injetora


x 2 -2 f(x) 4 4

Autenticao

Considerando o contexto da criptografia, a autenticao um conceito assimtrico empregado pelo destinatrio para verificar a genuinidade de informaes recebidas, providas de privacidade ou no. Assim, possvel determinar a verdadeira origem das informaes recebidas. As tcnicas que atribuem autenticidade a informaes utilizam assinaturas digitais e so muito exploradas comercialmente no gerenciamento de identidades de pessoas fsicas, jurdicas e computadores (mais sobre esse assunto em um prximo artigo).

tra em Uganda; cada computa dor possui seu par de chaves e, alm disso, cada um conhece a chave pblica do outro; antes do envio, o equipamento bra sileiro usa a chave pblica do ugandense para encriptar as informaes; no recebimento, o destinatrio ugandense utiliza sua chave privada para acessar as informaes. Esse exemplo apresenta uma situao simples na qual a troca de informaes utiliza a criptografia assimtrica para um computador enviar informaes com privacidade a outro. O computador ugandense consegue decifrar o recebido, mas no consegue determinar se aquelas informaes realmente partiram do referido computador brasileiro, pois este no assinou digitalmente o que enviou. O exemplo a seguir uma adaptao do anterior e mostra como o computador do Brasil deveria proceder para conferir privacidade e autenticidade ao contedo enviado: um computador no Brasil deve transmitir um arquivo confiden cial a um outro que se encontra em Uganda, destinatrio este que exige garantias da procedn cia do arquivo; cada computa dor possui seu par de chaves e, alm disso, cada um conhece a chave pblica do outro; antes do envio, o computador brasileiro usa a chave pblica do ugan dense para encriptar o arquivo, e sua prpria chave privada para assinar digitalmente o que enviar, atribuindo ao envio a garantia que o destinatrio exige; no recebimento, o equi pamento ugandense utiliza sua chave privada para acessar os dados recebidos, e a chave p blica do computador brasileiro

para verificar a autenticidade do que recebeu. Esse exemplo apresenta uma situao de maior aproveitamento da criptografia assimtrica. Tanto o remetente quanto o destinatrio usam uma chave de cada par e, ao final do processo, todas as quatro chaves envolvidas foram usadas. O remetente usa: have pblica do destinatrio c para conferir privacidade comunicao, e ua prpria chave privada para s assinar (atribuir autenticidade ao comunicado). Ou seja, a chave pblica do destinatrio ugandense utilizada para impedir terceiros de acessar as informaes do arquivo em questo, e a chave privada do remetente brasileiro utilizada para garantir a procedncia do arquivo. J o destinatrio usa: ua prpria chave privada para s decriptar o que recebe, e chave pblica do remetente a para verificar a assinatura digital e determinar se as informaes realmente foram originadas por ele. Ou seja, uma chave (a privada) do destinatrio ugandense, utilizada para acessar as informaes do arquivo recebido, e uma chave (a pblica) do remetente brasileiro utilizada para verificar a origem do arquivo. Um terceiro exemplo a destacar aquele no qual a privacidade no utilizada, mas apenas os aspectos de autenticidade (assinatura digital): um computador no Brasil deve transmitir um arquivo de do mnio pblico a outro que se encontra em Uganda, destina trio este que exige garantias da procedncia das informaes

Assinatura digital

Assinaturas tradicionais com tinta de caneta sobre papel so marcas grficas que cumprem a funo de identificar seus autores. Recordando: a criptografia assimtrica permite que duas ou mais entidades distintas possam trocar dados de forma segura, graas ao par chave pblica e chave privada. Os fatores que compem a segurana proporcionada pelo par de chaves so dois: a privacidade e a autenticidade. O primeiro artigo desta srie [1] mostrou como usufruir da privacidade proporcionada pelo par de chaves. O exemplo a seguir almeja no apenas repassar conceitos, mas principalmente enfatizar a diferena entre privacidade e autenticidade: um computador no Brasil deve transmitir informaes impor tantes para outro que se encon
72

http://www.linuxmagazine.com.br

Criptografia | SEGURANA

que recebe; cada computador possui seu par de chaves e, alm disso, cada um conhece a cha ve pblica do outro; antes do envio, o computador brasileiro usa sua prpria chave privada para assinar digitalmente o que enviar, atribuindo ao arquivo a garantia que o destinatrio exige; no recebimento, o equipamento ugandense utiliza a chave p blica do computador brasileiro para verificar a autenticidade do que recebeu. A figura 4 demonstra este ltimo cenrio. Assinar com uma chave privada fornece autenticidade, no privacidade. Isso porque nesse caso, a chave usada para verificao literalmente pblica. O GnuPG, software livre para criptografia, trabalha a assinatura digital com uma funo de hash, que

gera um hash do contedo a enviar. Ento, ele encripta esse valor com a chave privada do remetente, e isto a assinatura digital. A assinatura enviada com uma cpia completa e inalterada do contedo original. O destinatrio no precisar utilizar um programa especfico para acessar as informaes recebidas. O GnuPG ser utilizado, nesse caso, apenas para verificar a origem do contedo recebido, agindo da seguinte forma: programa l o contedo origio nal e, com a mesma funo de hash utilizada pelo remetente, gera um hash do contedo recebido e armazena aquele valor; m seguida, ele decripta a assie natura utilizando a chave pblica do remetente, gerando um segundo valor que, sendo igual ao primeiro hash, comprova a origem do contedo recebido.

Caso se envie uma mensagem digitalmente assinada a um destinatrio desprovido de programas de criptografia, este conseguir acessar (ler) a mensagem, mas no ser capaz de verificar sua autenticidade. Relembrando: dado um par de chaves, sendo uma delas para assinar o documento, a outra usada para verificar sua legitimidade.

DSA

O algoritmo de natureza assimtrica DSA, Digital Signature Algorithm, foi criado pelo governo dos EUA para utilizao em assinaturas digitais.

Servidores de chaves pblicas


comum disponibilizar chaves pblicas em servios gratuitos oferecidos na Internet. Indubitavelmente, um dos mais notrios servidores de

Remetente (Brasil)

Destinatrio (Uganda)

Chave privada

Chave pblica

Arquivo original

Assinatura digital

Arquivo digitalmente assinado

Vericao

Arquivo digitalmente vericado

Figura 4 Acriptografiacapazdegarantiraprivacidadeeaautenticidadedeumcontedo.

Linux Magazine #63 | Fevereiro de 2010

73

SEGURANA | Criptografia

Tabela 2: Certificado digital e criptografia


Tipo de criptografia Comum Certificaodigital Componente pblico Componente privado chavepblica certificadodigital chaveprivada chaveprivada

chaves para o padro PGP o do Massachusetts Institute of Technology, em http://pgp.mit.edu/, que oferece extrema agilidade para o cadastro de chaves pblicas. Alm dele, interessante citar a rede de servidores de chaves CryptNET, cujos servidores so apresentados em http://keyserver.cryptnet.net. Um desses servidores, localizado em Boston, EUA, responde pelo nome de bos.us.ks.cryptnet.net e pode ser acessado pelo protocolo OpenPGP HTTP Keyserver Protocol (HKP) na porta 11371. Tambm h uma listagem de servidores, disponibilizada pelo Open Directory Project, um respeitado diretrio de referncias da Netscape, em [2].

O padro OpenPGP

No ano de 1991, muitos pases inclusive os EUA empregavam legislaes pavorosamente intrusivas, restringindo o uso de criptografia como artifcio fortalecedor de privacidade em transaes digitais. Foi nesse contexto que um programador e ativista poltico chamado Phil Zimmermann apresentou ao mundo o programa PGP (Pretty Good Privacy), possuidor de uma robustez criptogrfica que excedia muitas das citadas leis. Aquilo obviamente no seria facilmente aceito, e Zimmermann foi ento processado como uma espcie de terrorista ciberntico. Assim como hoje, as leis vigentes naquele momento no conseguiam acompanhar os avanos das tecnologias ligadas aos sistemas de informao. Tamanha era a confuso causada no mbito legislativo
74

que, nos Estados Unidos, embora proibissem a disseminao daquelas informaes em formato digital, simplesmente inexistia meno troca dessas mesmas informaes impressas em papel. Atento a essa brecha, o Massachusetts Institute of Technology publicou um livro com o cdigo-fonte do PGP e o programa ento ganhou a notoriedade de que necessitava, consolidando-se inclusive fora do meio tcnico. Finalmente em 1996, as investigaes sobre Phil Zimmermann cessaram e ele ento fundou a empresa PGP Inc., por meio da qual foi escrito o software proprietrio PGP5, lanado em 1997, mesmo ano em que Zimmermann solicitou autorizao ao IETF para que, baseando-se no PGP-5, pudesse escrever uma especificao mundialmente aceita, que viria a ser chamada de OpenPGP, hoje definida na RFC 2440 [3]. A PGP Inc. foi comprada pela Network Associates em 2002.

Certificado digital

Certificados digitais podem ser entendidos como chaves pblicas evoludas e servem principalmente a fins de e-business. Utilizando um certificado dessa natureza, o par chave pblica e chave privada d lugar ao par certificado digital e chave privada (tabela 2). Respeitando rigores de jargo e idioma, importante esclarecer a diferena de significado entre certificado e certificao, muito embora as duas palavras sejam utilizadas de maneira permutvel sem maiores problemas de interpretao para o leitor.

Certificado, no presente contexto, pode designar um documento. J o termo certificao diz respeito emisso de um certificado. Remete ao ato de criao de um certificado digital. O certificado digital, especificamente, , como se afirmou previamente, uma chave pblica evoluda. De forma reducionista, trata-se de um documento emitido por um rgo competente, contendo uma chave pblica e tambm algumas informaes adicionais que atestam a ligao existente entre tal chave e seu detentor. Uma das informaes adicionais presentes no documento a assinatura digital do rgo que o gerou. Tecnicamente, o certificado digital um arquivo de computador com suas peculiaridades bem definidas por um dos padres existentes. O mais aceito entre tais padres se chama X.509, definido pelo ITU-T (International Telecommunication Union, Telecommunication sector). Exemplos de certificados digitais so alguns arquivos com extenso cer utilizados por websites. Pessoas fsicas podem entender o certificado digital como um documento de identificao para uso na Internet, tal qual o RG e o CPF em atividades cotidianas mais convencionais. Tipicamente, um certificado digital possui: ma chave pblica; u nome da entidade que ele reo presenta; ata de expirao do certificado; d ome da organizao que emitiu n o certificado (chamada AC, de autoridade certificadora); ssinatura digital da referida a organizao; m nmero de srie; e u lgumas informaes adicionais, a chamadas genericamente de caractersticas.

http://www.linuxmagazine.com.br

Criptografia | SEGURANA

Somente autoridades credenciadas podem emitir tais documentos providos de valor jurdico. Isso envolve uma entidade confivel, que um rgo certificador chamado de autoridade certificadora ou AC (CA, em ingls), que atesta o carter genuno de chaves pblicas. O par chave privada e certificado digital emitido por uma dessas autoridades serve, por exemplo, para conferir valor legal a logs de sistemas e redes, tornando tais registros aceitveis em tribunais. Suponha que um funcionrio mal intencionado de uma empresa utilize sua conta de usurio no domnio para obter acesso indevido a informaes confidenciais. Seus empregadores ento detectam tal comportamento por meio dos registros do domnio. Caso a empresa no possua uma ICP (infraestrutura de chaves pblicas), poder to somente punilo como funcionrio isto , com multa ou demisso , mas no obter grandes resultados denunciando-o ao poder pblico caso no utilize pares de chaves emitidos por um rgo

autorizado pelo Governo Federal. Portanto, nesse caso, os logs que a empresa tem como provas no possuiriam valor legal. O processo de registro de uma chave pblica pode ser comparado situao na qual cada cidado brasileiro formaliza legalmente sua identidade civil junto a um rgo autorizado, por meio da obteno do documento que se conhece por RG (registro geral) ou carteira de identidade. Isso origina o que se conhece por certificao digital. Qualquer pessoa, fsica ou jurdica, pode criar um certificado digital. Um certificado de validao avanada (EV certificate) um tipo de certificado til a bancos, pois apresenta proteo adicional. A CSR (certificate signing request, ou requisio de assinatura de certificado), um arquivo de computador que contm uma mensagem, que enviada a uma autoridade certificadora para solicitar um certificado digital. A tabela 3 d alguns exemplos de situaes em que certificados digitais so teis.

ARs e ACs

Organizaes supostamente confiveis, as autoridades de registro (ARs) e as autoridades certificadoras (ACs) atuam em conjunto quando da emisso do certificado. Assim como as ARs, as ACs solicitam emisses de certificados, mas dividem-se em dois tipos: utoridades de Certificao A Raiz, que emitem diretamente os certificados, e utoridades de Certificao InA termedirias, cuja emisso de certificados repassada s Autoridades de Certificao Raiz.

Existe, portanto, uma hierarquia de ACs, que constitui uma condio necessria para a criao de uma infraestrutura de chaves pblicas. Uma AC Raiz capaz de emitir certificados digitais para outras ACs, enquanto que uma AC Intermediria cujo certificado foi emitido pela AC Raiz capaz de emitir certificados para entidades. A confiana existe sempre de baixo para cima, isto , a entidade confia

Tabela 3: Algumas utilidades de certificados digitais


Tipo de transao Transaeseletrnicasderiscorealizadasentre empresasdomercadofinanceiro ServiosdeInternetbankingutilizados porpessoasfsicas ServiosdeInternetbankingutilizados porpessoasjurdicas Serviosdecomprasonlineutilizadosporpessoasfsicas Serviosdecomprasonlineutilizadospor pessoasjurdicas Serviosparadeclaraodeimpostoderenda parapessoasfsicas Serviosparadeclaraesdeimpostoderenda parapessoasjurdicas Entidades cujos certificados so envolvidos Empresasparticipantesdatransao Pessoasfsicasecomputadoresdobanco Pessoasjurdicasecomputadoresdobanco Pessoasfsicasecomputadoresdalojaonline Pessoasjurdicasecomputadoresdalojaonline PessoasfsicasecomputadoresdaReceitaFederal PessoasjurdicasecomputadoresdaReceitaFederal

Linux Magazine #63 | Fevereiro de 2010

75

SEGURANA | Criptografia

na AC Intermediria, que por sua vez confia na AC Raiz. Certas vezes, uma Autoridade de Registro (AR) tambm Autoridade Certificadora (AC). Antes de emitir um certificado digital, uma dada AC precisa de informaes sobre quem ou o que ir utilizar aquele certificado e, alm disso, essa organizao fica incumbida de controlar os referidos documentos e revog-los se necessrio. Isso ocorre por meio da manuteno de uma lista chamada CRL (Certificate Re vocation List, ou lista de revogao de certificados).

CRL

Algumas empresas oferecem o servio de webmail, incluindo recursos de criptografia assimtrica no padro PGP para a troca de mensagens. ocorre que essa situao contraria o conceito de privacidade inerente s chaves privadas. Tratamse de servios de webmail capazes de gerar pares de chaves para seus usurios sem entretanto aceitar que estes utilizem pares que j possuem. Os pares gerados ficam armazenados na to enaltecida nuvem, ou seja, localizam-se nos servidores das empresas que oferecem o servio. Em alguns casos de provedores no Brasil, as chaves privadas no so

reveladas aos seus usurios, apenas as pblicas. O usurio do webmail pode utilizar a tal chave privada para decriptar mensagens recebidas e assinar mensagens que envia; contudo, no pode visualiz-la. So chaves privadas emprestadas. Isso significa, basicamente, que as chaves privadas geradas por tais servios no so privadas. O armazenamento de chaves pblicas em servidores da Internet faz parte da criptografia assimtrica. J o armazenamento de chaves privadas claramente paradoxal e representa uma ameaa privacidade dos clientes em questo. n

A Certificate Revocation List uma lista de revogao de certificados que contm certificados digitais que perderam a validade por alguma razo. Exemplos que tornam nulo um certificado digital: tinge-se a data de expirao do a certificado, caractersticas contidas no cer tificado deixam de ser vlidas, ou chave privada referente ao a certificado comprometida.

Mais informaes
[1]  arcioBarbadoJr.eTiagoTognozi,Criptografia:teoriaeprtica: M http://lnm.com.br/article/3241 [2]  istadeservidoresdechaves:http://www.dmoz.org/Computers/ L Security/Products_and_Tools/Cryptography/PGP/Key_Servers/ [3]  FC2440doIETF:http://www.apps.ietf.org/rfc/rfc2440.html R [4] nstitutoNacionaldeTecnologiadaInformao: I http://www.iti.gov.br

ICP-Brasil

Sobre os autores
Marcio Barbado Jr.(marcio.barbado@bdslabs.com.br)eTiago Tognozi (tiago.tognozi@bdslabs .com.br)soespecialistasemsegurananaBDSLabs(www.bdslabs.com.br).

A ICP-Brasil torna oficial o par chave privada e certificado digital (chave pblica) e exige o padro X.509v3. A AC raiz da ICP-Brasil o ITI, Instituto Nacional de Tecnologia da Informao [4], uma autarquia federal vinculada Casa Civil brasileira.

Nota de licenciamento
Copyright2010MarcioBarbadoJr.eTiagoTognozi garantidaapermissoparacopiar,distribuiremodificarestedocumentosobostermosdaLicenadeDocumentaoLivreGNU(GNUFreeDocumentationLicense),Verso1.2ouqualquer versoposteriorpublicadapelaFreeSoftwareFoundation.Umacpiadalicenaestdisponvel emhttp://www.gnu.org/licenses/fdl.html

Aberraes de cloud

O desespero ganancioso da indstria em impor o modelo outrora chamado Saas (Software as a Service), e agora cloud computing, cria algumas aberraes criptogrficas do ponto de vista conceitual. Uma delas diz respeito aos servios de email baseados na Web, o webmail.
76

Gostou do artigo?
Queremosouvirsuaopinio.Faleconoscoem cartas@linuxmagazine.com.br Esteartigononossosite: http://lnm.com.br/article/3292

http://www.linuxmagazine.com.br

Complete

a sua coleo

Mais informaes
Site: www.linuxmagazine.com.br