Segurança de rede
Exercício 3
Função de hash
Assinatura digital
Função resumo (hash)
• A função resumo (função de hash), é uma função
matemática que transforma um conjunto de
dados como, por exemplo, páginas de um texto,
em uma pequena sequência de tamanho fixo
(resumo criptográfico).
• Essa sequência identifica de forma única, o
arquivo original.
• Não deve ser possível obter a informação original
inteira a partir do resumo.
Colisões
• Como a função de hash é limitada a 128, 256
ou 512 bits, podem ocorrer colisões (saídas
iguais para entradas diferentes).
• Quanto maior a dificuldade de produzir
colisões, mais eficiente é o algoritmo.
Assinatura digital
• Objetivo é prover, em modo digital, as
mesmas características da assinatura em
papel.
• Concede a prova de quem é o autor do
documento.
Propriedades da assinatura digital
• Observe que são as mesmas propriedades
exigidas de um documento assinado.
– Autenticidade – O autor da mensagem é
realmente quem diz ser.
– Integridade – Se a mensagem enviada sofreu
alguma alteração.
– Irretratabilidade – O emissor não consegue negar
sua autoria.
Processo de assinatura
• Consiste em gerar um resumo criptográfico da
mensagem e ...
• Cifrar este resumo com a chave privada do
assinante.
– Obrigatoriamente com a chave privada, já que a
chave usada na criptografia é pública.
O que é enviado...
• O texto claro e o resumo assinado são
enviados para o receptor.
Processo de verificação
• Decifrar o resumo assinado utilizando a chave
pública do assinante.
– Resulta no resumo.
• Comparar o resumo resultante deste
processo, com o resumo criado pelo
transmissor do documento.
– Isto pode ser obtido, já que o documento em
texto claro foi enviado para o receptor que pode
colocá-lo na mesma função resumo.
Tarefa
• Nesta tarefa você irá criar uma mensagem,
inseri-la em uma função de hash para obter o
resumo da mensagem e assiná-la com a sua
chave privada.
• Entre no diretório /experimentos que você
criou na última aula.
Gerando a chave secreta
• Gere uma chave secreta RSA de 2048 bits de
tamanho.
openssl genrsa –out RA_chave_privada 2048
Extraindo a chave pública
• Extraia a chave pública, a partir da secreta,
para um arquivo separado.
openssl rsa -in RA_chave_privada -pubout -out
RA_chave_publica
Criando o resumo (hash)
1. Crie o arquivo de texto com a mensagem que
será assinada. Utilize o editor de textos de
sua escolha. Chame-a de RA_mensagem.txt.
2. Gere um resumo criptográfico SHA-1 da
mensagem que você acabou de criar,
armazenando-o em um arquivo chamado
RA_hash.txt.
openssl dgst –sha1 –out RA_hash.txt RA_mensagem.txt
Visualizando o resumo (hash)
1. Visualize o resumo utilizando o comando cat.
cat RA_hash.txt
Assinando o hash
1. Cifre o resumo (hash) com a chave privada.
openssl rsautl –sign –in RA_hash.txt –inkey
RA_chave_privada –out doc_assinado.asc
2. O documento e a assinatura formam o texto
assinado e são enviados para o destinatário.
Verificando a assinatura (1)
• Lembre-se que o destinatário possui apenas a
chave pública do remetente.
• Logo, o destinatário consegue verificar se a
assinatura é verdadeira decriptando o resumo
utilizando a chave pública do assinante.
openssl rsautl –verify –pubin –inkey
RA_chave_publica –in doc_assinado.asc
Verificando a assinatura (2)
• É exibido na tela o hash SHA-1 decifrado.
• Utilize, mais uma vez, o comando openssl dgst
para gerar novamente o hash e verifique se é o
mesmo obtido com o comando anterior.
openssl dgst –sha1 mensagem_bob.txt
openssl dgst –sha1 –out RA_hash.txt
RA_mensagem.txt
Enviando
• Envie a mensagem assinada e a chave publica,
por e-mail. ([email protected]). Tenha certeza de que a
assinatura da mensagem poderá ser
verificada.
Responda
1) A assinatura digital em um documento provê quais
serviços?
a)
b)
c)
d)
e)
Confidencialidade.
Autenticidade.
Integridade.
Não repúdio.
Disponibilidade.
2) Pesquise: Quais são os algoritmos mais utilizados para
gerar resumos criptográficos?
3) Qual a vantagem de se assinar resumos ao invés de se
assinar textos inteiros?
4) Todos os métodos de assinatura digital envolvem a criação
de resumos?
Download

03 hash e assinatura - PUC