Vous êtes sur la page 1sur 6

Terceiro fascculo do tutorial de criptografia

SEGURANA

Criptografia: teoria e prtica, parte 3


Entenda os algoritmos de hash e comece a praticar a criao de pares de chaves. por Marcio Barbado Jr. e Tiago Tognozi

rosseguindo em nosso tutorial de criptografia, vamos agora explicar as ltimas questes tericas e finalmente adentrar a seo prtica usando o famoso e poderoso GnuPG (GNU Privacy Guard).

Hash

Hash, checksum ou simplesmente sum so nomes dados ao valor retornado por funes de hash. Um hash pode ser descrito como uma pequena string de dados que representa uma outra, maior que ela. Tais valores so muito utilizados em fingerprinting (atestado de procedncia), para comprovar o carter genuno de informaes e so, em verdade, strings. Cabe elucidar que o termo checksum faz aluso ao ato de se verificar o valor hash de uma informao, e deve ser empregado nesse contexto. J a designao sum pouco utilizada, pois prima por abreviatura e derivao de checksum em detrimento de rigor tcnico e clareza de sentido. Um exemplo de uso de hash para garantir que um arquivo recebido seja genuno e no tenha sido adulterado. Identificar um arquivo por sua assinatura hash propicia a
64

seu dono ou autor a oportunidade de envi-lo a outras pessoas de modo que, chegando tal arquivo em seu destino, seus destinatrios podero conferir se as informaes ali contidas no foram indevidamente manipuladas no trajeto. interessante mencionar que a confiabilidade do hash para identificar arquivos digitais maior que a do DNA para identificar pessoas.

Funes de hash

As funes de hash utilizam algoritmos de disperso e atuam sobre pores arbitrrias de informaes (um grande arquivo, por exemplo), extraindo dali um valor, o hash. As boas funes de hash so aquelas cujas inversas so difceis de se obter. Suas finalidades so diversas, tais como: abelas hash: utilizadas em det senvolvimento de sistemas para definir privilgios de acesso a usurios e servios; ainbow tables: so tabelas hash r construdas especificamente para a recuperao de senhas; ngerprinting: tcnicas j menfi cionadas, utilizadas para se verificar a integridade e autenticidade de arquivos de computador;

fingerprinting diz respeito s tcnicas utilizadas para se comprovar a autenticidade de uma identidade. A traduo do termo leva ao conceito de impresso digital, utilizada para identificar pessoas. Entretanto, a ideia se estendeu para o universo digital e para a necessidade de identificar informaes. Enquanto um cidado pode ser reconhecido por sua impresso digital ou at mesmo por seu DNA este ltimo sendo mais confivel , um arquivo de computador pode ser identificado por seu hash, tambm conhecido como assinatura hash; orreo de erros: por meio c das verificaes de redundncia presentes em determinadas transmisses de dados; e riptografia: finalidade foco deste c documento, a proteo de informaes mediante a aplicao de funes criptogrficas.

As funes de hash tambm so utilizadas nas j populares assinaturas digitais e em diversos mecanismos de autenticao. Tambm so extremamente teis em planos de gerenciamento de

http://www.linuxmagazine.com.br

Criptografia | SEGURANA

riscos e planos para continuidade de negcios, pois sua utilizao preventiva facilita anlises forenses de equipes CSIRT caso algum problema comprometa os sistemas de informao de uma empresa. Dentre as diversas funes de hash, destacam-se algumas: D5: j foram identificadas falhas M no algoritmo desta funo, que entrega 128 bits em sua sada; e HA-1: especificaes do governo S norte-americano, por meio de sua agncia de segurana (a NSA), as funes SHA so publicadas como padres FIPS pela agncia NIST. O termo SHA significa secure hash algorithm (algoritmo de hash seguro, utilizando o jargo tcnico brasileiro).

de protocolos; a ordem de camadas pelas quais os dados devem passar sempre apresentada na vertical, como na figura 1. Desperta grandes preocupaes a camada de aplicao, a mais alta tanto no modelo OSI como no TCP/ IP. nela que acontecem transaes como Internet banking, compras com carto de crdito e entregas de imposto de renda. Embora a criptografia tambm possa ser empregada nas camadas de enlace de dados (criptografia de enlace) e transporte, ela surte efeito de maior espectro na camada de aplicao.

chaves pblicas) para proteger determinados computadores. O mercado apresenta HSMs em diversos formatos, destacando-se entre eles: m perifrico padro, que se cou munica via porta serial RS-232; m dispositivo que se comunica u via interface SCSI; ma placa padro PCI; u m dispositivo IP; e u m dispositivo USB. u Os mais sofisticados podem ainda atuar juntamente a tokens USB ou smart cards para salvaguardar suas chaves. Esta ltima caracterstica imprescindvel a empresas de alguns setores especficos da economia. A proteo de informaes baseada em criptografia constitui um dos pilares da indstria de cartes de crdito e dbito, formada por gigantes do mercado de servios financeiros. Os padres bem definidos de segurana adotados por tais empresas conhecidos como PCI DSS (Payment Card Industry Data Security Standard) exigem que as informaes contidas nos cartes sejam codificadas antes de ser transmitidas (end-to-end) e impem rigorosas

Aplicaes

Message

O mundo das funes de hash chama os argumentos (tambm conhecidos como entradas) de message (mensagem), ou seja, caso uma dessas funes resolva extrair o hash de um arquivo MP3, tal arquivo a message da funo, e o checksum extrado chamado de message digest (mensagem digerida).

Tamanho da sada

O tamanho da sada um parmetro presente nas funes de hash, frequentemente expresso em bits. Ele traduz a dificuldade imposta por uma funo. Valores comuns (em bits) so 128, 160, 224, 256 e 512.

Alm das situaes bsicas citadas e exemplificadas anteriormente, a indstria de Segurana da Informao apresenta diversos outros produtos baseados nos conceitos matemticos da criptologia. Um dos mais conhecidos o VPN (Virtual Private Network). Tambm podemos destacar os Hardware Security Modules (chamados s vezes de Host Security Modules ou HSMs), appliances de segurana que lanam mo de algoritmos criptogrficos (frequentemente utilizam

modelo OSI aplicao (dados) apresentao (dados) sesso (dados) transporte (datagramas) rede (pacotes) enlace de dados (frames) fsica (bits)
Figura 1 Assim como o modelo OSI, a segurana tambm utiliza o conceito
de camadas.

A camada de aplicao

Esta seo trata do papel da criptografia em contextos no to aparentes das comunicaes entre computadores. Camada um conceito ligado a redes de computadores, que designa uma etapa com processos distintos, por meio dos quais dados em trnsito devem passar. A formalizao elementar de camadas pode ser encontrada nos modelos OSI e TCP/IP, padres adotados mundialmente para a definio

Linux Magazine #64 | Maro de 2010

65

SEGURANA | Criptografia

polticas para a administrao das chaves utilizadas.

PCI DSS

Gerenciamento de identidades
O termo gerenciamento de identidades designa uma categoria de produtos e servios que fazem uso das tcnicas assimtricas de autenticao.

O PCI DSS no representa uma categoria de produtos ou servios, mas um padro. O CPqD [1] foi a primeira instituio da Amrica Latina a se credenciar como QSA (Qualified Security Assessor) pela PCI.

com assinaturas digitais. Dois dos maiores benefcios que seu uso oferece podem ser traduzidos na troca segura de emails importantes e na proteo de arquivos armazenados em mquinas tradicionais ou em mdias externas para fins de backup.

GnuPG ou GPG

Encriptao de disco

Tcnica utilizada por alguns programas, que protege informaes mesmo quando o sistema operacional que as abriga no est ativo. A tcnica preenche uma lacuna de segurana extremamente explorada por Live CDs. Diferentemente de programas para encriptao de arquivos como o PGP e o GnuPG, que utilizam arquivos temporrios (buffers), um programa para encriptao de disco no os utiliza. Ele encripta e decripta o contedo do disco de forma transparente, ou seja, quando o usurio encerra uma sesso, a encriptao ocorre automaticamente e, no incio de uma nova sesso, tudo bastar a esse usurio fornecer sua senha ou passphrase. Nenhum conhecimento especfico necessrio para que se possa usufruir de seus benefcios. Recentemente, o termo on-the-fly encryption (ou OTFE) passou a ser utilizado para se referir a tais caractersticas, que se mostram especialmente interessantes para laptops. Considere um executivo que possui um laptop e utiliza nele um programa para encriptao de disco. Caso esse computador seja roubado, as chances de se obter acesso s suas informaes e da organizao onde ele trabalha so mnimas. Exemplos de programas para encriptao de disco so: rueCrypt, da TrueCrypt FounT dation: software livre multiplataforma [2]; e itLocker, da Microsoft. B
66

Sendo o PGP um software proprietrio [3], o projeto GNU de Richard Stallman sempre almejou a criao de uma alternativa livre. Isso, entretanto, se mostrava impossvel, pois os algoritmos utilizados para criptografia assimtrica eram ento patenteados. Ento, em 1997, assim como a norte americana Diffie-Hellman [4], algumas outras patentes expiraram. Contudo, tal fato no fez muita diferena legal nos Estados Unidos, base do projeto GNU. Continuava sendo proibida a manipulao dos referidos algoritmos a qualquer cidado norte americano, residente ou no em seu pas. Entretanto, a utilizao dos referidos algoritmos, visando implementar uma verso aberta do PGP, tornou-se possvel em outras localidades do globo. Atento a isso tudo, o americano Stallman estimulou algumas comunidades hackers europeias a iniciar esse trabalho. Foi quando o alemo Werner Koch, do German Unix User Group, comeou a desenvolver o que hoje se conhece por GnuPG. Atualmente com mais de dez anos de idade, o projeto GnuPG (alternativamente citado como GPG), assim como o clssico PGP de Zimmermann, um programa de computador utilizado para criptografia simtrica e assimtrica (chaves pblicas) que segue o padro OpenPGP. Lanado sob a licena GPL, o GnuPG disponibilizado para sistemas baseados em UNIX, Mac OS X e Windows. Ele compacta, encripta e decripta informaes, e trabalha

Poltica de backup ideal


Considere a to tradicional quanto frequente necessidade que as empresas possuem de realizar backups. Os arquivos presentes nas referidas cpias de segurana costumam ser guardados em mdias fisicamente separadas de suas mquinas de origem, ou seja, os backups so feitos em CD-Rs, CD-RWs, DVDs diversos, unidades de fita etc. Se, por um lado, isso oferece segurana mediante fontes redundantes das informaes em questo, acaba, por outro lado, disponibilizando aqueles arquivos em mais de um lugar e, consequentemente, expondo-os ao dobro do risco de ser indevidamente acessados ou manipulados. Hipoteticamente, estando os arquivos originais em um servidor seguro, quo protegidas estaro suas cpias? Considerando um cenrio plausvel de furto das as mdias de backup, o emprego do GnuPG em polticas de backup reduziria significativamente as chances dos criminosos utilizarem os arquivos, uma vez que as informaes estariam encriptadas.

Funcionamento

Sofisticado e coerente, o GnuPG trabalha com criptografia simtrica e assimtrica, e no inclui algoritmos patenteados como o IDEA, que, para ser utilizado, exige a instalao de um mdulo parte. Alm disso, possibilita o gerenciamento das chaves cadastradas. Exemplos de algoritmos e funes com os quais o GnuPG pode trabalhar so:

http://www.linuxmagazine.com.br

Criptografia | SEGURANA

lgoritmos RSA para criptografia a assimtrica; lgoritmos Triple DES (3DES), a AES e Blowfish; unes hash MD5 e SHA; e f lgoritmos ZIP, ZLIB e BZIP2 a para compresso.

Uma vez instalado, o arquivo (texto simples) a comportar as configuraes do usurio o gpg.conf. Tambm interessante destacar que o GnuPG apresenta recursos de segurana que nem o PGP possui. o caso da proteo integridade MDC, um hash adicionado mensagem encriptada que alerta o dono da informao, caso esta tenha sido adulterada por meio de ataques do tipo chosen-ciphertext (assim chamados pelo especialista Bruce Schneier). Esses ataques so aplicados em situaes que envolvem criptografia assimtrica, e exploram vulnerabilidades dos destinatrios em trocas de emails. A proteo MDC desativada por padro ao se usar criptografia simtrica, buscando evitar problemas de compatibilidade com o PGP.

fundamental no comportamento do programa. Trata-se de um arquivo texto utilizado para se ativar ou desativar recursos do GPG. Algumas instalaes do GnuPG trazem a proteo integridade MDC desativada por motivos de compatibilidade com o PGP. Isso faz com que o programa gere avisos como: message was not integrity protected que no representa grande risco a princpio; seu propsito alertar sobre a possibilidade de se ativar a proteo MDC.

h um plugin disponvel em [5], que fornece os seguintes arquivos: dea.c.gz: o arquivo fonte do i mdulo, compactado; e dea.c.gz.sig: sua assinatura. i Descompacte o pacote contendo o fonte (idea.c.gz) e siga as instrues de compilao contidas no prprio arquivo. Em seguida, edite corretamente o arquivo texto de configurao, ~/. gnupg/gpg.conf, para que a biblioteca IDEA possa ser utilizada pelo programa. Insira a seguinte linha para que o GnuPG carregue o mdulo IDEA:
load-extension idea

Passphrase

Criptografia no KDE

As definies criptogrficas so acessveis por meio do Painel de Controle do KDE, comando kcontrol. O KDE oferece o Kgpg, interface grfica para o GnuPG em Linux. Integrado ao ambiente grfico, ele disponibilizado ao usurio em menus de contexto, pela opo Arquivar & Criptografar.

Prtica

Vamos comear agora a parte prtica desta srie de artigos. Antes de focar o GNU Privacy Guard, importante tomar certas precaues que auxiliaro na utilizao do GnuPG. O GnuPG j vem instalado na maioria das distribuies. Esta seo introduz medidas para a devida configurao do programa. O arquivo gpg.conf exerce papel

O GPG protege a chave privada com uma passphrase (ou frase-senha), espcie de senha escolhida pelo usurio. Ou seja, h uma senha (a passphrase, no residente no computador) protegendo outra senha (a chave, abrigada no computador). A passphrase simtrica, isto , a mesma cadeia de caracteres utilizada para criptografar e tambm para decifrar a chave privada. Nesse sentido, parece-se com uma senha tradicional. Assim, sempre que a chave privada for necessria, o usurio dever fornecer a passphrase que, analogamente a uma senha tradicional, deve ser escolhida com cautela. Jamais escolha passphrases bvias, pois tentativas de ataque frequentemente utilizam padres baseados em nomes de parentes, amigos e bichos de estimao relacionados ao alvo. O ideal para a obteno de uma passphrase segura e memorizvel misturar nmeros e letras espordicos e no relacionados ao usurio, de modo aleatrio, at totalizar cerca de vinte caracteres.

deixando uma linha em branco ao final. Depois, salve e feche o arquivo. Teste o reconhecimento da biblioteca com o comando:
$ gpg --version

ou
$ gpg2 --version

Por meio desses comandos, o algoritmo IDEA deve surgir como uma opo de cipher.

Novo par de chaves

importante destacar que o GnuPG, uma vez instalado, j est pronto para a criptografia simtrica. Todavia, a utilizao criptogrfica assimtrica exige algumas medidas adicionais. Caso ainda no se possua um par de chaves ou, caso elas j existam e ainda assim seja necessrio criar um par adicional, deve-se fornecer o seguinte comando:
$ gpg --gen-key

Mdulo IDEA

A biblioteca para utilizao do algoritmo simtrico IDEA no vem inclusa na instalao do GnuPG. Caso sua utilizao seja necessria,

e ento, o GnuPG oferece o menu para definir o tipo do par de chaves a gerar; convm aceitar a oferta padro, DSA and Elgamal. Ela ativa
67

Linux Magazine #64 | Maro de 2010

SEGURANA | Criptografia

o algoritmo de autenticao DSA (Digital Signature Algorithm) para assinaturas digitais, e tambm o ElGamal para conferir privacidade s comunicaes (confira [6] para mais detalhes dos algoritmos). Aceite tambm 1024 para o tamanho de chave em bits. Tambm preciso definir o tempo de renovao das chaves, fornecer um nome e um endereo de email, que sero ligados ao par. A criao do par de chaves assimtricas finalizada com o fornecimento de sua passphrase. Confirmada a passphrase, o programa realiza ento uma srie de clculos e cria uma chave pblica e outra privada. Uma dica para essa etapa est relacionada ao interessantssimo algoritmo envolvido: o GnuPG tenta fornecer o par da maneira mais aleatria possvel, realizando clculos com todo o tipo de informao que estiver disponvel, inclusive dados provenientes do teclado e da atividade do disco rgido. Portanto, aps fornecer e confirmar a passphrase, durante a fase de produo do par de chaves, possvel participar desse processo, digitando algo no teclado e consequentemente, entregando dados adicionais ao processo que culminar com a gerao das chaves. Aps os clculos das chaves, visualiza-se a chave pblica criada, exportando-a para o formato ASCII com a opo --armor. Abra o prompt de comando e, dentro do diretrio no qual se deseja abrigar o arquivo, digite:
$ gpg --armor \ --output chave_pub.txt \ --export E-MAIL_ASSOCIADO

Ento, visualiza-se a chave pblica, abrindo-se o arquivo chave_pub. txt com um editor de texto. Note que as linhas iniciadas por --- tambm fazem parte da chave. Alm disso, a linha semelhante a:
----BEGIN PGP PUBLIC KEY BLOCK----

Opcionalmente, entretanto, recomenda-se a realizao de cpias de segurana tambm dos seguintes arquivos: ubring.gpg; p ecring.gpg; e s rustdb.gpg. t Esses arquivos so chamados de chaveiros, pois guardam chaves e informaes referentes ao par, no apenas chave pblica. Recomendase, portanto, abrigar essas cpias em um local de difcil acesso. n

indica a natureza pblica (PUBLIC) da chave exportada e serve a fins de confirmao, ou seja, trata-se da chave correta para divulgao. Com isso, est feito o backup da chave pblica.

Mais informaes
[1] CPqD: http://www.cpqd.com.br/ [2] Truecrypt: http://www.truecrypt.org/ [3] PGP na Wikipdia: http://pt.wikipedia.org/wiki/PGP [4] Mtodo de criptografia Diffie-Hellman na Wikipdia: http://pt.wikipedia.org/wiki/Diffie-Hellman [5] Plugin IDEA para GnuPG: ftp://ftp.gnupg.dk/pub/contrib-dk [6] Marcio Barbado Jr. e Tiago Tognozi, Criptografia: teoria e prtica, parte 2: http://lnm.com.br/article/3292

Sobre os autores
Marcio Barbado Jr. (marcio.barbado@bdslabs.com.br) e Tiago Tognozi (tiago.tognozi@bdslabs .com.br) so especialistas em segurana na BDS Labs (www.bdslabs.com.br).

Nota de licenciamento
Copyright 2010 Marcio Barbado Jr. e Tiago Tognozi garantida a permisso para copiar, distribuir e modificar este documento sob os termos da Licena de Documentao Livre GNU (GNU Free Documentation License), Verso 1.2 ou qualquer verso posterior publicada pela Free Software Foundation. Uma cpia da licena est disponvel em http://www.gnu.org/licenses/fdl.html

Gostou do artigo?
Queremos ouvir sua opinio. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3330

Nesse comando, deve-se utilizar o endereo de email associado quela chave; a opo --output deve ser seguida do nome completo que o arquivo a ser gerado possuir.
68

http://www.linuxmagazine.com.br

Quer falar com os 30.000 profissionais de TI com maior nvel de conhecimento tcnico do mercado nacional? Ento anuncie na Linux Magazine!
Segundo dados do Instituto Verificador de Circulao*, a Linux Magazine atualmente a segunda revista mais vendida para profissionais de TI do mercado editorial brasileiro. Alm disso, a revista que tem o pblico mais qualificado no quesito tcnico. Nossa combinao exclusiva de contedo avanado com uma abordagem prtica faz da Linux Magazine a publicao preferida de quem toma decises e faz recomendaes para compra de produtos e contratao de servios. Anuncie conosco e fale com esse pblico.

Para anunciar, entre em contato: anuncios@linuxmagazine.com.br 11 4082.1300


*Comparao de circulao para os ltimos trs meses de publicaes nacionais voltadas ao segmento de TI.

Vous aimerez peut-être aussi