16
Módulo 3b-1 Autenticação de mensagem e Criptografia de chave pública Slides por H. Johnson & S. Malladi; Modificados por S. J. Fritz, 2006 Modificados e traduzidos por P.S. Nicolletti, 2007 Modificados e atualizados por P.S. Nicolletti, 2019 1

Módulo 3b-1 Autenticação de mensagem e

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Módulo 3b-1Autenticação de mensagem eCriptografia de chave pública

Slides por H. Johnson & S. Malladi; Modificados por S. J. Fritz, 2006Modificados e traduzidos por P.S. Nicolletti, 2007Modificados e atualizados por P.S. Nicolletti, 2019

1

Resumo

Enfoques para Autenticação de Mensagem

Funções HASH seguras

Criptografia de chave pública - princípios

Criptografia de chave pública - algoritmos

Assinaturas digitais

Gerência de chaves

2

Enfoques para autenticação de mensagemIntrodução

“Uma mensagem, arquivo, documento ou dado é dito como autêntico quando ele égenuíno e é oriundo da fonte alegada”

Criptografia protege-os contra ataques passivos (espionagem)

Autenticação de mensagem protege-os contra ataques ativos (falsificações e intrusões)

Requisitos – deve ser capaz de verificar que:

• Mensagem vem da fonte ou autor alegados

• Conteúdo não foi alterado

• Eventualmente, se a mensagem incluir algum número de sequência, ela foi enviadana sequência correta

3

Enfoques para autenticação de MensagemCom Criptografia Simétrica

Usando criptografia simétrica

Assumindo que somente o remetente e o destinatário conhecem a chave

Uma mensagem devidamente criptografada pelo remetende deve poder ser aberta somente pelo destinatário

Usualmente contém código de detecção de erro, número de sequência e selo de tempo (time stamp)

4

Enfoques para autenticação de mensagemCom Código de Autenticação de mensagem

Autenticação de mensagem sem criptografia da mensagem Um código de autenticação de mensagem (Message Authentication Code – MAC) é

gerado em função da mensagem (M) e de uma chave secreta (K), compartilhadaexclusivamente por transmissor e receptor, e anexado à mensagem MAC = F(K, M)

A mensagem é transmitida ao receptor O receptor aplica a mesma função e verifica autenticidade da mensagem

Não há tendência à criptografia quando:

O destinatário (hospedeiro) tem carga pesada de processamento e não pode/querficar decriptografando toda mensagem que recebe – somente as com absolutanecessidade usam criptografia

Não há perigo no envio de mensagem não criptografada (mas é preciso garantir suaautenticidade e integridade)

5

Enfoques para autenticação de mensagemCódigo de autenticação de mensagem

Diferente de criptografia MAC não precisa ser reversível como deve ocorrer com a criptografia Devido a propriedades matemáticas ele é mais robusto a ataques (cripto-análise) do que a

criptografia em si

Muitos algoritmos criptográficos podem ser usados para gerar MAC NIST/FIPS PUB 113 recomenda DES para gerar versão criptografada da mensagem e últimos 16

ou 32 bits são usados como MAC

Códigos de 16 a 32 bits são típicos

6

Enfoques para autenticação de mensagem

Função HASH injetora (one-way)

Alternativa para MAC gerado por criptografia

Aceita uma mensagem de tamanho variável na entrada (M) e produz um código resumo de mensagem de tamanho fixo (D)

D = H(M)

7

8

Enfoques para autenticação de mensagem Função HASH injetora (one-way)

Todos os enfoques tem vantagens sobre criptografia (total) de mensagem Software de criptografia é (em geral) lento Hardware de criptografia não tem custo desprezível Hardware de criptografia é otimizado para grandes quantidades de dados Algoritmos de criptografia podem ser protegidos por patentes

A alternativa (C), inclusive, não usa criptografia alguma Como o valor secreto não segue com a mensagem, é impossível para um oponente

modificar a mensagem (nem mesmo gerar uma mensagem falsa) Uma variação dessa técnica, chamada HMAC, é adotada para IPsec (cap. 6) e

SNMPv3 (cap. 8)

9

Enfoques para autenticação de mensagem Função HASH injetora (one-way)

Finalidade da função HASH (H) é produzir uma “impressão digital” da mensagem

É usada em autenticação de mensagem e assinatura digital

Requisitos: H pode ser aplicada a blocos de dados de quaisquer tamanhos H produz uma saída de tamanho fixo H(x) é fácil de calcular para qualquer x Para qualquer valor h, deve ser computacionalmente impraticável achar x tal que

H(x) = h (one-way property) Para qualquer bloco x, deve ser computacionalmente impraticável achar

y ≠ x tal que H(y) = H(x) (weak collision resistance) Deve ser computacionalmente impraticável achar qualquer par

(x, y) tal que H(x) = H(y) (strong collision resistance)

10

Funções HASH segurasPrincípios

Princípios gerais

Entrada é uma sequência de blocos de n bits

Entrada é processada um bloco por vez

Um exemplo simples é o XOR de cada bloco

Ci = bi1 bi2 … bim

Ci é i-ésimo bit do código hash 1 ≤ i ≤ n

m é o número de blocos da entrada

bij é i-ésimo bit do j-ésimo bloco

É a operação XOR

11

Funções HASH segurasFunções HASH simples

Para aumentar a performance um deslocamente circular de um bit pode ser incluído no valor hash após o processamento de cada bloco

Inicialmente define-se o valor do bloco de n-bits hash para zero

Processa cada bloco sucessivo de n bits fazendo:

Rotaciona o bloco hash corrente à esquerda por 1 bit

Realiza XOR do bloco de dados atual com o bloco hash

12

Funções HASH segurasFunções HASH simples

O Secure Hash Algorithm (SHA) foi desenvolvido pelo National Institute of Standards and Technology (NIST) e publicado em 1993 como FIPS 180

SHA-1 é uma versão revisada de 1995 e publicada como FIPS-180-1

Em 2002 NIST divulgou mais uma versão publicada como FIPS 180-2 (SHA-256, SHA-384, SHA-512)

Ele recebe como entrada uma mensagem de até 2128 bits e produz uma “impressãodigital” de até 512 bits (64 bytes)

Ele processa blocos de 512 ou 1024 bits na entrada

13

Funções HASH segurasSHA

SHA-1 SHA-256 SHA-384 SHA-512

Tam. “impressão digital” 160 256 384 512

Tam. Mensagem <264 <264 <2128 <2128

Tam. Bloco 512 512 1024 1024

Tam. Palavra 32 32 64 64

Nro de passos 80 64 80 80

Segurança 80 128 192 256

14

Funções HASH segurasSHA

• Obs.

• Tamanho é sempre em bits

• Segurança é probabilidade de colisão = 1 / 2n-1

15

Funções HASH segurasSHA

16

Funções HASH segurasOutras funções HASH seguras

• MD5 (Message Digest Algorithm 5)– Desenvolvido por Ron Rivest (RFC 1321)– Entrada de qualquer tamanho, processada em blocos de 512 bits, saída de 128 bits– Segurança para MD5(x) = MD5(y), x ≠ y, 264 (probabilidade = 1/264)– Segurança para dado y, achar MD5(x) = y, 2128 (probabilidade = 1/2128)

• Whirlpool– Desenvolvido por Vincent Rijmem (co-inventor do AES) e Paulo Barreto (um

brasileiro)– É um dos dois únicos mecanismos adotados pelo NESSIE (New European Schemes

for Signatures, Integrity and Encryption)– Entrada de até 2256 bits, processada em blocos de 512 bits, saída de 512 bits– Segurança para W(x) = W(y), x ≠ y, 2256

– Segurança para dado y, achar W(x) = y, 2512