Sie sind auf Seite 1von 5

Laboratrio Livre de Criptografia Parte 3 Assinatura Digital

Copyright 2011 - Serique Jr., Luiz F. S. O desenvolvimento desse documento foi originado no programa de Ps-graduao em Segurana da Informao da Faculdade Senac DF . permitido copiar e distribuir sobre os termos da Creative Commons Brasil, preservando, sempre, os crditos do autor. permitido adaptar a obra original, desde que a obra derivada tenha o mesmo licenciamento. A obra Laboratrio Livre de Criptografia Parte 3 Assinatura Digital de Luiz Fernando Sirotheau Serique Junior foi licenciada com uma Licena Creative Commons - Atribuio - Partilha nos Mesmos Termos 3.0 No Adaptada.

Ambientao
Faremos intenso uso da Plataforma Ubuntu Linux em modo terminal. Caso desconhea alguns comandos, faa testes preliminares consultando as referncias abaixo:
Comando touch [arquivo] mkdir [caminho] cd [caminho] cat [arquivo] ls -la [padrao] dd if=/dev/zero of=arquivo.img bs=1M count=N ghex2 chmod [XYZ] arquivo Descrio Cria um arquivo texto vazio ou apenas atualiza a data de modificao, caso o arquivo esteja criado. Cria um diretrio. Alterna para o diretrio. Exibe o contedo do arquivo. Lista arquivos de um diretrio. Cria um arquivo com tamanho N Mbytes. Editor hexadecimal grfico. Altera as permisses dos arquivos, sendo que X, Y e Z podem variar de 1 a 7.

Informaes adicionais podem ser obtidas pelos manuais oficiais, usando o comando man [nome_comando], por exemplo execute o comando man touch. Digite :q Para sair de uma pgina de manual. Passo 1: Acessar o Terminal de comandos. Inicie o Ubuntu Linux em modo grfico e, aps logar, abra um terminal de linha de comando pelo menu: Aplicativos Acessrios Terminal Passo 2: Criar um ambiente para as atividades do laboratrio. Use o comando mkdir e cd para criar e alternar entre os diretrios, substituindo o caminho aluno pelo seu usurio do Linux: $ mkdir -p /home/aluno/labcripto/parte3 $ cd /home/aluno/labcripto/parte3

Tarefas
Tarefa 1 Testando as Propriedades dos Algoritmos de Hash
Os algoritmos de hash so importantes mecanismos de verificao de integridade, autenticao e fazem parte do processo de assinatura digital. Seguem as quatro propriedades de um bom algoritmo de hash: Dada uma quantidade de dados X de qualquer tamanho, deve sempre retornar um valor Y com um tamanho conhecido; Qualquer alterao nos dados de entrada X deve gerar um valor Y completamente distinto; No devem existir dois valores de X distintos que produzam o mesmo valor de sada Y; Deve ser uma funo unidirecional, ou seja, dado uma valor X de entrada, deve ser possvel calcular Y facilmente, porm, de posse do valor Y, deve ser impossvel calcular X.

Usaremos o OpenSSL para gerar e verificar cdigos de hash. Informaes adicionais podem ser obtidas nos manuais, digitando man dgst. Passo 1: Criar arquivos para os testes. Crie os seguintes arquivos para fazer os experimentos do laboratrio: um arquivo texto, um arquivo binrio de 50 MB e um arquivo do OpenOffice Writer. $ gedit arquivo.txt $ oowriter arquivo.odt $ dd if=/dev/zero of=arquivo.img bs=1M count=50 Passo 2: Calcular o hash usando trs algoritmos distintos. Faa isso conforme o exemplo abaixo para cada arquivo criado. Registre todos os cdigos resultantes. $ openssl dgst -md5 arquivo.txt Passo 3: Alterar os arquivos de teste. No caso do arquivo texto e do OpenOffice Writer, troque apenas um caractere e salve em seguida. Para editar o arquivo binrio, use o editor ghex2, alterando apenas um bit. Passo 4: Recalcular o hash com os mesmos algoritmos usados. Compare os novos hashes com os originais. Edite novamente os arquivos, desfazendo as modificaes e, aps isso, recalcule os hashes. O que voc pode observar ? Explique o porqu desse comportamento. Passo 5: Alterar atributos dos arquivos. Agora altere alguns atributos do arquivo, como a data da ltima modificao e as permisses. Para isso, investigue o funcionamento dos comandos touch e chmod para arquivos j criados. Use o comando ls -la para averiguar as mudanas. Em seguida, recalcule todos os hashes. O que voc pode observar ? Registre todos os resultados.

Tarefa 2 Usando Cdigos de Autenticao de Mensagens (MAC)


Os cdigos de autenticao de mensagem so calculados com base na mensagem original concatenada com um nmero de validao. O remetente faz o envio da mensagem e do validador MAC, permitindo que o destinatrio verifique a integridade e a autenticidade da mensagem. O HMAC um cdigo de autenticao muito utilizado que faz uso de algoritmos de hash em conjunto com uma chave que deve ser compartilhada entre as partes. Passo 1: Criar uma mensagem em arquivo texto. Crie uma pequena carta para enviar ao colega e salve em um arquivo chamado carta.txt. Passo 2: Gerar o cdigo HMAC. Para isso use o comando dgst com o parmetro -hmac, como mostrado abaixo. Combine previamente com um colega qual ser a chave compartilhada. $ openssl dgst -md5 -hmac "sharedkey" -out carta.hmac carta.txt Passo 3: Enviar a carta ao colega e fazer a validao HMAC. Envie ambos arquivos carta.txt e carta.hmac ao colega e pea para ele fazer a validao usando o comando abaixo. O resultado exibido na tela dever ser o mesmo do arquivo carta.hmac. $ openssl dgst -md5 -hmac "sharedkey" carta.txt Passo 4: Simular uma adulterao da carta e da chave. Para testar o funcionamento do HMAC, pea que o colega informe uma chave incorreta e recalcule o cdigo. Pea tambm que simule uma adulterao na carte e recalcule o cdigo. Baseado nas observaes, justifique por que o mecanismo garante a autenticao e integridade.

Tarefa 3 Aplicao de Assinaturas Digitais


Passo 1: Gerar um par de chaves RSA de 2048 bits. Para gerao das chaves, repita os mesmos procedimentos presentes na Parte 2 - Criptografia Assimtrica. Disponibilize sua chave pblica a outro colega. Passo 2: Elaborar uma mensagem em arquivo texto. Crie uma pequena carta para enviar ao colega e salve em um arquivo chamado carta.txt. Passo 3: Criar a assinatura digital do arquivo. Os parmetro -sign o responsvel pela assinatura digital, conforme mostrado abaixo. Explique por que deve ser informado um algoritmo de Hash e uma chave privada nesse processo. Ser criado o arquivo carta.sign que corresponde assinatura digital. $ openssl dgst -sha256 -sign aluno.priv.key -out carta.sign carta.txt

Passo 4: Verificar a assinatura digital do arquivo. Envie os arquivos carta.txt e carta.sign ao colega que possui sua chave pblica para que verifique assinatura como mostrado abaixo. Pea para ele fazer alteraes na carta e repetir a verificao. $ openssl dgst -sha256 -verify aluno.pub.key -signature carta.sign carta.txt

Tarefa 4 Projetar e Implementar uma Ferramenta de Criptografia.


Usando o que aprendeu at agora, projete uma ferramenta de criptografia que atenda os seguintes requisitos: Disponibilizar o servio de ciframento e deciframento Suportar qualquer tamanho e formato de arquivo Usar sistema de chaves pblicas Gerar e validar assinaturas digitais Operar com um nico pacote (zip, tar, gz) para transporte dos arquivos

Faa a codificao em Bash Script, por ser mais simples e usar os mesmos comandos do ambiente Shell do Linux. Caso tenha familiaridade com outra linguagem de script nativa (Python, Perl, Tcl/Tk) tambm pode ser usada. Um Bash Script basicamente um arquivo texto que contm uma sequncia de comandos do Linux. Como outras linguagens, tambm oferece estruturas de lao, condicionais, entrada de dados e outros. O site http://www.freeos.com/guides/lsst/ disponibiliza o Linux Shell Script Tutorial com vrios exemplos. Segue abaixo um pequeno exemplo para que tenha um primeiro contato:
#!/bin/bash DATA_HORA=`date` RESPOSTA="N" echo "Ol $1 !" echo "Voc me executou em $DATA_HORA" echo "Listando os arquivos..." ls while [ $RESPOSTA != "S" ] do echo "Deseja sair (S/N)?" read -e RESPOSTA done

Submisso
Os resultados desse laboratrio devem ser entregues eletronicamente na forma de um relatrio tcnico, em formato ABNT, contendo: Cabealho: Nome da instituio / curso, nome da disciplina, nome do professor, nome e matrcula do aluno e data de entrega. Introduo: Aborde o que um algoritmo de Hash, cdigo de MAC, assinatura digital e as caractersticas dos algoritmos usados. Procedimentos e Resultados: Descreva quais foram os passos executados e registre os resultados coletados. Cdigo Fonte: Copie o cdigo fonte da ferramenta de criptografia. Anlise dos Resultados: Analise cada resultado observado e responda a todos os questionamento presentes no roteiro. Concluso: Faa a concluso do relatrio, relatando se os objetivos foram alcanados e suas impresses sobre os experimentos.

Esse relatrio ser avaliado e representar 1 (um) ponto na nota da disciplina !

Das könnte Ihnen auch gefallen