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?