criptografia teoria e prática - parte 3

Upload: sonny

Post on 04-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Criptografia Teoria e Prtica - Parte 3

    1/6

    64 http://www.linuxmagazine.com.br

    Terceiro ascculo do tutorial de criptografa

    Criptografa: teoriae 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

    Prosseguindo em nosso tutorialde criptograa, vamos agoraexplicar as ltimas questestericas e nalmente adentrar a seoprtica usando o famoso e poderosoGnuPG (GNU Privacy Guard).

    HashHash, checksum ou simplesmente sumso nomes dados ao valor retornadopor funes de hash. Um hashpode ser descrito como uma pequenastring de dados que representa umaoutra, maior que ela.

    Tais valores so muito utilizadosemfngerprinting (atestado de pro-cedncia), para comprovar o cartergenuno de informaes e so, emverdade, strings.

    Cabe elucidar que o termo check-sum faz aluso ao ato de se vericar

    o valor hash de uma informao, edeve ser empregado nesse contexto.J a designao sum pouco uti-lizada, pois prima por abreviaturae derivao de checksum em de-trimento de rigor tcnico e clarezade sentido.

    Um exemplo de uso de hash para garantir que um arquivo rece-bido seja genuno e no tenha sidoadulterado. Identicar um arquivo

    por sua assinatura hash propicia a

    seu dono ou autor a oportunidadede envi-lo a outras pessoas de modoque, chegando tal arquivo em seudestino, seus destinatrios poderoconferir se as informaes ali con-tidas no foram indevidamente ma-nipuladas no trajeto.

    interessante mencionar que aconabilidade do hash para identi-car arquivos digitais maior que

    a do DNA para identicar pessoas.

    Funes de hashAs funes de hash utilizam algo-ritmos de disperso e atuam sobrepores arbitrrias de informaes(um grande arquivo, por exemplo),extraindo dali um valor, o hash.

    As boas funes de hash so aque-las cujas inversas so difceis de seobter. Suas nalidades so diversas,

    tais como: tabelas hash: utilizadas em de-

    senvolvimento de sistemas paradenir privilgios de acesso ausurios e servios; rainbow tables: so tabelas hashconstrudas especicamente paraa recuperao de senhas;

    fngerprinting: tcnicas j men-cionadas, utilizadas para se veri-car a integridade e autenticida-

    de de arquivos de computador;

    ngerprinting diz respeito stcnicas utilizadas para se com-provar a autenticidade de umaidentidade. A traduo do termoleva ao conceito de impressodigital, utilizada para identicarpessoas. Entretanto, a ideia seestendeu para o universo digitale para a necessidade de identi-car informaes. Enquanto um

    cidado pode ser reconhecidopor sua impresso digital ouat mesmo por seu DNA esteltimo sendo mais convel, um arquivo de computadorpode ser identicado por seuhash, tambm conhecido comoassinatura hash; correo de erros: por meiodas vericaes de redundn-cia presentes em determinadas

    transmisses de dados; e criptograa: nalidade foco destedocumento, a proteo de infor-maes mediante a aplicao defunes criptogrcas.

    As funes de hash tambmso utilizadas nas j popularesassinaturas digitais e em diver-sos mecanismos de autenticao.Tambm so extremamente teis

    em planos de gerenciamento de

  • 7/29/2019 Criptografia Teoria e Prtica - Parte 3

    2/6

    65

    | SEGURANACriptografia

    Linux Magazine #64 | Maro de 2010

    riscos e planos para continuida-de de negcios, pois sua utilizaopreventiva facilita anlises forensesde equipes CSIRT caso algum pro-blema comprometa os sistemas deinformao de uma empresa.

    Dentre as diversas funes dehash, destacam-se algumas:MD5: j foram identicadas falhasno algoritmo desta funo, que en-trega 128 bits em sua sada; eSHA-1: especicaes do governonorte-americano, por meio de suaagncia de segurana (a NSA), asfunes SHA so publicadas comopadres FIPS pela agncia NIST. Otermo SHA signica secure hash

    algorithm (algoritmo de hash seguro,utilizando o jargo tcnico brasileiro).

    MessageO mundo das funes de hash cha-ma os argumentos (tambm conhe-cidos como entradas) de message(mensagem), ou seja, caso umadessas funes resolva extrair o hashde um arquivo MP3, tal arquivo amessage da funo, e o checksumextrado chamado de message di-

    gest (mensagem digerida).

    Tamanho da sadaO tamanho da sada um par-metro presente nas funes de hash,frequentemente expresso em bits.Ele traduz a diculdade impostapor uma funo. Valores comuns(em bits) so 128, 160,224,256 e 512.

    A camada de aplicaoEsta seo trata do papel da criptogra-a em contextos no to aparentes dascomunicaes entre computadores.

    Camada um conceito ligado aredes de computadores, que designauma etapa com processos distintos,por meio dos quais dados em trnsitodevem passar.

    A formalizao elementar de ca-madas pode ser encontrada nos mo-delos OSI e TCP/IP, padres adota-

    dos mundialmente para a denio

    de protocolos; a ordem de camadaspelas quais os dados devem passar sempre apresentada na vertical,como na fgura 1.

    Desperta grandes preocupaesa camada de aplicao, a mais alta

    tanto no modelo OSI como no TCP/IP. nela que acontecem transaescomo Internet banking, comprascom carto de crdito e entregas deimposto de renda.

    Embora a criptograa tambmpossa ser empregada nas camadasde enlace de dados (criptograa deenlace) e transporte, ela surte efei-to de maior espectro na camadade aplicao.

    AplicaesAlm das situaes bsicas citadas eexemplicadas anteriormente, a in-dstria de Segurana da Informaoapresenta diversos outros produtos ba-seados nos conceitos matemticos dacriptologia. Um dos mais conhecidos o VPN (Virtual Private Network).

    Tambm podemos destacar osHardware Security Modules (chama-dos s vezes de Host Security Modules

    ou HSMs), appliances de seguranaque lanam mo de algoritmos crip-togrcos (frequentemente utilizam

    chaves pblicas) para proteger deter-minados computadores.

    O mercado apresenta HSMs emdiversos formatos, destacando-seentre eles: um perifrico padro, que se co-

    munica via porta serial RS-232; um dispositivo que se comunicavia interface SCSI;

    uma placa padro PCI; um dispositivo IP; e um dispositivo USB.

    Os mais sosticados podem aindaatuar juntamente a tokens USB ousmart cards para salvaguardar suaschaves. Esta ltima caracterstica

    imprescindvel a empresas de algunssetores especcos da economia.A proteo de informaes basea-

    da em criptograa constitui um dospilares da indstria de cartes de cr-dito e dbito, formada por gigantesdo mercado de servios nanceiros.

    Os padres bem denidos de se-gurana adotados por tais empresas conhecidos como PCI DSS (Pay-ment Card Industry Data SecurityStandard) exigem que as infor-

    maes contidas nos cartes sejamcodicadas antes de ser transmitidas(end-to-end) e impem rigorosas

    Figura 1 Assim como o modelo OSI, a segurana tambm utiliza o conceitode camadas.

    modelo OSI

    aplicao (dados)

    apresentao (dados)

    sesso (dados)

    transporte (datagramas)

    rede (pacotes)

    enlace de dados (frames)

    fsica (bits)

  • 7/29/2019 Criptografia Teoria e Prtica - Parte 3

    3/6

    66 http://www.linuxmagazine.com.br

    SEGURANA | Criptografia

    polticas para a administrao daschaves utilizadas.

    PCI DSSO PCI DSS no representa umacategoria de produtos ou servios,

    mas um padro. O CPqD [1] foia primeira instituio da AmricaLatina a se credenciar como QSA(Qualifed Security Assessor) pela PCI.

    Encriptao de discoTcnica utilizada por alguns pro-gramas, que protege informaesmesmo quando o sistema operacio-nal que as abriga no est ativo. Atcnica preenche uma lacuna de

    segurana extremamente exploradapor Live CDs.Diferentemente de programas

    para encriptao de arquivos comoo PGP e o GnuPG, que utilizamarquivos temporrios (buers), umprograma para encriptao de discono os utiliza. Ele encripta e decriptao contedo do disco de forma trans-parente, ou seja, quando o usurioencerra uma sesso, a encriptaoocorre automaticamente e, no incio

    de uma nova sesso, tudo bastar aesse usurio fornecer sua senha oupassphrase. Nenhum conhecimen-to especco necessrio para quese possa usufruir de seus benefcios.

    Recentemente, o termo on-the-yencryption (ou OTFE) passou a serutilizado para se referir a tais carac-tersticas, que se mostram especial-mente interessantes para laptops.

    Considere um executivo que pos-

    sui um laptop e utiliza nele um pro-grama para encriptao de disco.Caso esse computador seja roubado,as chances de se obter acesso s suasinformaes e da organizao ondeele trabalha so mnimas.

    Exemplos de programas para en-criptao de disco so: TrueCrypt, da TrueCrypt Foun-

    dation: software livre multipla-taforma [2]; e

    BitLocker, da Microsoft.

    Gerenciamentode identidadesO termo gerenciamento de iden-tidades designa uma categoria deprodutos e servios que fazem uso

    das tcnicas assimtricas de auten-ticao.

    GnuPG ou GPGSendo o PGP um software proprie-trio [3], o projeto GNU de RichardStallman sempre almejou a criaode uma alternativa livre. Isso, entre-tanto, se mostrava impossvel, pois osalgoritmos utilizados para criptograaassimtrica eram ento patenteados.

    Ento, em 1997, assim como anorte americana Dife-Hellman [4],algumas outras patentes expiraram.Contudo, tal fato no fez muita di-ferena legal nos Estados Unidos,base do projeto GNU. Continuavasendo proibida a manipulao dosreferidos algoritmos a qualquer ci-dado norte americano, residenteou no em seu pas.

    Entretanto, a utilizao dos re-feridos algoritmos, visando imple-

    mentar uma verso aberta do PGP,tornou-se possvel em outras locali-dades do globo.

    Atento a isso tudo, o americanoStallman estimulou algumas comu-nidades hackers europeias a iniciaresse trabalho. Foi quando o alemoWerner Koch, do German Unix UserGroup, comeou a desenvolver oque hoje se conhece por GnuPG.

    Atualmente com mais de dez anos

    de idade, o projeto GnuPG (alterna-tivamente citado como GPG), assimcomo o clssico PGP de Zimmer-mann, um programa de computadorutilizado para criptograa simtricae assimtrica (chaves pblicas) quesegue o padro OpenPGP.

    Lanado sob a licena GPL, oGnuPG disponibilizado para siste-mas baseados em UNIX, Mac OS Xe Windows. Ele compacta, encripta

    e decripta informaes, e trabalha

    com assinaturas digitais. Dois dosmaiores benefcios que seu uso ofe-rece podem ser traduzidos na trocasegura de emails importantes e naproteo de arquivos armazenadosem mquinas tradicionais ou em

    mdias externas para ns de backup.

    Poltica debackup idealConsidere a to tradicional quantofrequente necessidade que as em-presas possuem de realizar backups.Os arquivos presentes nas referidascpias de segurana costumam serguardados em mdias sicamente

    separadas de suas mquinas de ori-gem, ou seja, os backups so feitosem CD-Rs, CD-RWs, DVDs diver-sos, unidades de ta etc. Se, por umlado, isso oferece segurana mediantefontes redundantes das informaesem questo, acaba, por outro lado,disponibilizando aqueles arquivosem mais de um lugar e, consequen-temente, expondo-os ao dobro dorisco de ser indevidamente acessadosou manipulados.

    Hipoteticamente, estando os arqui-vos originais em um servidor seguro,quo protegidas estaro suas cpias?

    Considerando um cenrio plaus-vel de furto das as mdias de backup,o emprego do GnuPG em polticasde backup reduziria signicativa-mente as chances dos criminososutilizarem os arquivos, uma vez queas informaes estariam encriptadas.

    FuncionamentoSosticado e coerente, o GnuPGtrabalha com criptograa simtrica eassimtrica, e no inclui algoritmospatenteados como o IDEA, que, paraser utilizado, exige a instalao deum mdulo parte. Alm disso, pos-sibilita o gerenciamento das chavescadastradas.

    Exemplos de algoritmos e fun-es com os quais o GnuPG pode

    trabalhar so:

  • 7/29/2019 Criptografia Teoria e Prtica - Parte 3

    4/6

    67

    | SEGURANACriptografia

    Linux Magazine #64 | Maro de 2010

    algoritmos RSA para criptograaassimtrica; algoritmos Triple DES (3DES),

    AES e Blowsh; funes hash MD5 e SHA; e algoritmos ZIP, ZLIB e BZIP2

    para compresso.

    Uma vez instalado, o arquivo(texto simples) a comportar as con-guraes do usurio o gpg.conf.

    Tambm interessante destacarque o GnuPG apresenta recursosde segurana que nem o PGP pos-sui. o caso da proteo integri-dade MDC, um hash adicionado mensagem encriptada que alerta

    o dono da informao, caso estatenha sido adulterada por meio deataques do tipo chosen-ciphertext(assim chamados pelo especialistaBruce Schneier).

    Esses ataques so aplicados em si-tuaes que envolvem criptograa as-simtrica, e exploram vulnerabilidadesdos destinatrios em trocas de emails.

    A proteo MDC desativada porpadro ao se usar criptograa sim-trica, buscando evitar problemas de

    compatibilidade com o PGP.

    Criptografa no KDEAs denies criptogrcas so aces-sveis por meio do Painel de Controledo KDE, comando kcontrol. O KDEoferece o Kgpg, interface grca parao GnuPG em Linux. Integrado aoambiente grco, ele disponibiliza-do ao usurio em menus de contexto,pela opoArquivar & Criptograar.

    PrticaVamos comear agora a parte prticadesta srie de artigos.

    Antes de focar o GNU PrivacyGuard, importante tomar certasprecaues que auxiliaro na utili-zao do GnuPG. O GnuPG j veminstalado na maioria das distribuies.

    Esta seo introduz medidas paraa devida congurao do programa.

    O arquivogpg.conf

    exerce papel

    fundamental no comportamentodo programa. Trata-se de um arqui-vo texto utilizado para se ativar oudesativar recursos do GPG.

    Algumas instalaes do GnuPGtrazem a proteo integridade MDC

    desativada por motivos de compati-bilidade com o PGP. Isso faz comque o programa gere avisos como:

    message was not integrity protected

    que no representa grande risco aprincpio; seu propsito alertarsobre a possibilidade de se ativar aproteo MDC.

    PassphraseO GPG protege a chave privada comuma passphrase (ou frase-senha),espcie de senha escolhida pelo u-surio. Ou seja, h uma senha (apassphrase, no residente no com-putador) protegendo outra senha (achave, abrigada no computador).

    Apassphrase simtrica, isto , amesma cadeia de caracteres utilizadapara criptografar e tambm para de-cifrar a chave privada. Nesse sentido,

    parece-se com uma senha tradicional.Assim, sempre que a chave priva-

    da for necessria, o usurio deverfornecer a passphrase que, analo-gamente a uma senha tradicional,deve ser escolhida com cautela.Jamais escolha passphrases bvias,pois tentativas de ataque frequente-mente utilizam padres baseados emnomes de parentes, amigos e bichosde estimao relacionados ao alvo.

    O ideal para a obteno de umapassphrase segura e memorizvel misturar nmeros e letras espordi-cos e no relacionados ao usurio,de modo aleatrio, at totalizar cercade vinte caracteres.

    Mdulo IDEAA biblioteca para utilizao do al-goritmo simtrico IDEA no veminclusa na instalao do GnuPG.

    Caso sua utilizao seja necessria,

    h um plugin disponvel em [5], quefornece os seguintes arquivos: idea.c.gz: o arquivo fonte do

    mdulo, compactado; e idea.c.gz.sig: sua assinatura.

    Descompacte o pacote contendo ofonte (idea.c.gz) e siga as instruesde compilao contidas no prprioarquivo.

    Em seguida, edite corretamenteo arquivo texto de congurao, ~/.gnupg/gpg.conf, para que a bibliotecaIDEA possa ser utilizada pelo progra-ma. Insira a seguinte linha para queo GnuPG carregue o mdulo IDEA:

    load-extension idea

    deixando uma linha em branco aonal. Depois, salve e feche o arquivo.

    Teste o reconhecimento da bi-blioteca com o comando:

    $ gpg --version

    ou

    $ gpg2 --version

    Por meio desses comandos, o algo-ritmo IDEA deve surgir como umaopo de cipher.

    Novo par de chaves importante destacar que o GnuPG,uma vez instalado, j est pronto paraa criptograa simtrica. Todavia, autilizao criptogrca assimtricaexige algumas medidas adicionais.

    Caso ainda no se possua um parde chaves ou, caso elas j existame ainda assim seja necessrio criarum par adicional, deve-se fornecero seguinte comando:

    $ gpg --gen-key

    e ento, o GnuPG oferece o menupara denir o tipo do par de chavesa gerar; convm aceitar a oferta pa-

    dro, DSA and Elgamal. Ela ativa

  • 7/29/2019 Criptografia Teoria e Prtica - Parte 3

    5/6

    68 http://www.linuxmagazine.com.br

    SEGURANA | Criptografia

    o algoritmo de autenticao DSA(Digital Signature Algorithm) paraassinaturas digitais, e tambm oElGamal para conferir privacidades comunicaes (conra [6] paramais detalhes dos algoritmos). Acei-

    te tambm 1024 para o tamanho dechave em bits.Tambm preciso denir o tempo

    de renovao das chaves, fornecerum nome e um endereo de email,que sero ligados ao par. A criaodo par de chaves assimtricas -nalizada com o fornecimento desua passphrase.

    Conrmada a passphrase, o pro-grama realiza ento uma srie de

    clculos e cria uma chave pblicae outra privada. Uma dica para essaetapa est relacionada ao interes-santssimo algoritmo envolvido: oGnuPG tenta fornecer o par da ma-neira mais aleatria possvel, reali-zando clculos com todo o tipo deinformao que estiver disponvel,inclusive dados provenientes do te-clado e da atividade do disco rgido.Portanto, aps fornecer e conrmara passphrase, durante a fase de pro-

    duo do par de chaves, possvelparticipar desse processo, digitandoalgo no teclado e consequentemen-te, entregando dados adicionais aoprocesso que culminar com a ge-rao das chaves.

    Aps os clculos das chaves, vi-sualiza-se a chave pblica criada,exportando-a para o formato ASCIIcom a opo --armor.

    Abra o prompt de comando e,

    dentro do diretrio no qual se desejaabrigar o arquivo, digite:

    $ gpg --armor \

    --output chave_pub.txt \

    --export E-MAIL_ASSOCIADO

    Nesse comando, deve-se utilizaro endereo de email associado que-la chave; a opo --output deve serseguida do nome completo que o

    arquivo a ser gerado possuir.

    Ento, visualiza-se a chave pbli-ca, abrindo-se o arquivo chave_pub.txtcom um editor de texto. Note queas linhas iniciadas por --- tambmfazem parte da chave. Alm disso, alinha semelhante a:

    ----BEGIN PGP PUBLIC KEY BLOCK----

    indica a natureza pblica (PUBLIC)da chave exportada e serve a ns deconrmao, ou seja, trata-se da chavecorreta para divulgao. Com isso,est feito o backup da chave pblica.

    Opcionalmente, entretanto, re-comenda-se a realizao de cpiasde segurana tambm dos seguintesarquivos: pubring.gpg; secring.gpg; e

    trustdb.gpg.

    Esses arquivos so chamados dechaveiros, pois guardam chaves einformaes referentes ao par, noapenas chave pblica. Recomenda-se, portanto, abrigar essas cpias emum local de difcil acesso. n

    Gostou do artigo?

    Queremos ouvir sua opinio. Fale conosco [email protected]

    Este artigo no nosso site:http://lnm.com.br/article/3330

    Sobre os autores

    Marcio Barbado Jr. ([email protected] ) eTiago 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 modifcar este documento sob os termos da Li-cena de Documentao Livre GNU (GNU Free Documentation License), Verso 1.2 ou qualquerverso posterior publicada pela Free Sotware Foundation. Uma cpia da licena est disponvel

    em http://www.gnu.org/licenses/fdl.html

    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 criptografa Dife-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, Criptografa: teoria e prtica,parte 2:

    http://lnm.com.br/article/3292

  • 7/29/2019 Criptografia Teoria e Prtica - Parte 3

    6/6

    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.

    Quer falar com os 30.000

    profissionais de TI com maiornvel de conhecimento tcnico

    do mercado nacional?

    Ento anuncie naLinux Magazine!

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

    Para anunciar, entre em contato:

    [email protected]

    11 4082.1300