Sistemas Seguros Criptografia Simétrica e Assimétrica Prof. Paulo Fernando da Silva.
Criptografia Assimétrica e Funções de...
Transcript of Criptografia Assimétrica e Funções de...
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 1
Criptografia Assimétrica e Funções de Síntese
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 2
Criptografia Assimétrica
• Também chamada de cifra de chave pública– Cifração com chave pública Ku e decifração com chave privada Kr
– Em geral é muito mais lenta que a criptografia simétrica
• SEGURANÇA do PRINCÍPIO:– Baseia-se na dificuldade prática (inexequibilidade) de determinar soluções
para problemas como factorização de números compostos de primos grandes, ou cálculo de logaritmos discretos.
• PROPRIEDADES:– D(Kr,E(Ku,m))=m e E(Ku,D(Kr,m))=m
• Exemplos de Algoritmos: – Diffie-Helmann, para computar um número secreto partilhado (1976); Rivest-
Shamir-Adleman (RSA) (1978)
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 3
Criptografia Assimétrica - Diffie-Hellman• PRINCÍPIO:
– Lançou as bases para criptografia assimétrica em 1976
– É baseado em uma one-way function (função irreversível) e na correspondente dificuldade em calcular logaritmos discretos em aritmética modular
• OBJECTIVO:– Obter um número secreto K, partilhado entre A e B,
sem o comunicar em claro
• OPERAÇÃO:
– escolher dois números primos m e n públicos (mgrande)
– A gera um número aleatório xa
– A calcula ya=mxa MOD n
– B gera um número aleatório xb
– B calcula yb =mxb MOD n
– ya e yb são tornados públicos
– Cada um calcula K localmente
– K= ybxa MOD n =ya
xb MOD n = mxaxb MOD n
ya = mXa mod n
public m, nsecret xa secret xb
A B
yb = mXb mod n
ya
yb
K = yb Xa mod n K = ya Xb mod n
K K
logm (mu MOD n) = u ?
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 5
Criptografia Assimétrica - RSA
• Foi publicado em 1978 por três investigadores do MIT: Rivest, Shamir e Adleman (RSA)
• Pode ser usado tanto para cifração quanto para assinatura
• PRINCÍPIO:– Trapdoor one-way function: inversa só é obtida se soubermos a trapdoor (chaves)
– Teoricamente o RSA é seguro se/enquanto for difícil a resolução do problema matemático: factorização de números compostos de primos grandes
• Operação:– chave pública: Ku = (e, n); chave privada: Kr = (d, n) , calculadas em conjunto
– Cifrar: E(Ku,m) = me MOD n = c
– Decifrar: D(Kr,c) = cd MOD n = m
e, n
miCi
mi e mod n
encryption decryption
mi
A B
ci d mod n
d, n
n = pq => p,q ?
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 7
Segurança do RSA
• Existem quatro abordagens para atacar o RSA:1. Procura de chaves “à bruta”
• inexequível se usarmos chaves grandes (≥ 1024 bits)
2. Ataques matemáticos baseados na superação da dificuldade da factorização módulo n, que encontrem d
• ainda seguro com chaves ≥ 1024 bits
3. Ataques temporais (timing attacks) na execução da operação de decifração
• com acesso ao sistema (ex. cartões), estimando d pelo tempo que demora uma decifração, estudando várias amostragens
4. Ataques sistémicos devido a parametrizações deficientes:
» cifração ou assinatura de mensagens pequenas
» cifra previsível de mensagens
» exploração do carácter homomórfico do RSA (smooth numbers)
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 9
PKCS: A solução para os problemas do RSA
• PKCS (Public-Key Cryptography Standard):– Grupo de padrões definidos pela RSA Security
– Define codificações para (entre outros):
» Chaves públicas e privadas do RSA
» Assinaturas RSA
» Mensagens pequenas cifradas e/ou assinadas usando RSA
» Cifração baseada em passwords
– O uso destes padrões previne ameaças como:
» Cifra previsível de mensagens
» Assinatura com “números suaves” (smooth numbers)
» Múltiplos recipientes quando e=3 (*)
» Assinatura com padding de baixa ordem quando e=3
(*) – é frequente utilizar-se e pequeno e =3
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 10
• A criptografia assimétrica não tem o problema da distribuição de chaves da criptografia simétrica
• Entretanto, o problema agora está na autenticidade das chave públicas
– Como saber se afirmações do tipo “12DH457B6A9 é chave pública do Pedrinho” são verdadeiras?
– Um chave pública a ser enviada pode ser interceptada e substituída…
– Ou, se uma base de dados de chaves públicas (PKI ou CA) é comprometida, qualquer chave armazenada pode ser substituída por uma chave falsa criada pelo atacante
– A definição de uma autoridades certificadores (alguém que certifique a autenticidade das chaves) é necessária
Problemas Gerais da Criptografia Assimétrica
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 11
Síntese Segura ou Digest de Mensagens
• OBJECTIVO: – Função usada para gerar um conjunto de blocos de k bits a partir de
um conjunto de elementos de tamanho variável com n bits (onde usualmente k << n),
– A idéia é similar aos CRC (usados nos protocolos de redes), mas muito mais robusto no que diz respeito a colisões
– Muito mais rápido que a criptografia simétrica
• Exemplos de Funções: MD5, SHA-1, SHA-256
DigestMessageDigest
Initial Vector
Message (previously padded)
Digest Digest
512b
128 bits
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados.
Síntese Segura ou Digest de Mensagens
• Propriedades das funções de síntese segura:Dada uma função de síntese segura H: A→B
1. Para qualquer m ∈ A, H(m) é fácil de calcular
2. Para qualquer h∈ B, é inexequível encontrar m ∈ A tal que H(m)=h
3. É inexequível encontrar dois valores m, m′ ∈ A tal que m ≠ m′ e H(m) = H(m′)
4. Dado qualquer m ∈ A, é inexequível encontrar um m′ ≠ m ∈ A tal que H(m) = H(m′), mesmo que m seja parecida com m′
• Resistência a Colisão (para sínteses de n bits)– A probabilidade de encontrar uma mensagem corresp. a uma síntese é 2-n
– A probabilidade de encontrar duas mensagens com a mesma síntese é 2-n/2
12
não colisão
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 14
Síntese Segura - MD5
• Proposto por Ron Rivest (investigador do MIT)
• O último de uma série de funções MD2, MD4, …
• Produz um valor de síntese de 128 bits
• Até recentemente era a função de síntese segura mais usada– Recentemente foram encontradas falhas tanto através de ataques
de força bruta quanto por criptanálise
• Especificado num padrão IETF (RFC1321)
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 15
Síntese Segura - MD5
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 16
Síntese SeguraSecure Hash Algorithm (SHA-1)
• Proposto pelo NIST e pela NSA em 1993
• Revisto em 1995, quando lhe foi atribuído o nome SHA-1
• Padrão americano usado com o esquema de assinaturas DSA– Descrito no padrão FIPS 180-1 1995 e também no RFC3174
– Algoritmo: SHA
– Padrão: SHS
• Produz sínteses de 160 bits
• Baseia-se no desenho do MD4 com algumas diferenças (que aumentam muito sua segurança)
• Actualmente, é o algoritmo mais usado, porém algumas fraquezas foram descobertas recentemente…
• Existem diversas versões do SHA. Estas são mais seguras à medida que o tamanho da síntese produzida aumenta
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 17
Síntese SeguraComparação das diferentes versões do SHA
SEGURO
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 18
Autenticação de Mensagens e Assinatura Digital
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 19
Checksums Criptográficos
• Digests de mensagens não forjáveis (sínteses seguras) protegidas por uma chave simétrica K: Hk(M)
• K é conhecido apenas nos extremos da comunicação, o que garante a integridade e autenticidade das mensagens
• Apropriado quando a confidencialidade não é necessária
• O conteúdo é verificado através do re-cálculo do MAC/MIC
• EXEMPLO: HMAC
MESSAGE DIGEST
K
Message
EncryptEK
Digest
MAC/Signature Message
MAC - Message Authentication Code
MIC - Message Integrity Check
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 20
HMAC(Hash Message Authentication Code)
• Definido no RFC2104 do IETF• Utiliza funções de síntese na mensagem:• Hk(m) = H(k′ ⊕ opad || H(k′ ⊕ ipad || m))
– ⊕ ou exclusivo– || concatenação– K’ é a chave K preenchida (padded) para ter o tamanho de um bloco– opad e ipad são constantes específicas de preenchimento– Overhead é de apenas mais 1 execução da função de síntese e algumas
operações lógicas, em relação a geração directa do digest da mensagem
• Qualquer função de síntese segura pode ser usada no HMAC. Exemplos: MD5 (HMAC-MD5), SHA-1 (HMAC-SHA-1), etc.
• A segurança e a eficiência do algoritmo dependem da função de síntese segura usada.
• A função de síntese pode ser substituída para fins de melhorar segurança e/ou eficiência.
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados.21
HMAC(Hash Message Authentication Code)
Hk(m) = H(k′ ⊕ opad || H(k′ ⊕ ipad || m))
onde:– Constantes ipad e opad;– ⊕ ou exclusivo;– || concatenação.
overheadem rel a H simples
1ª síntese
2ª síntese
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 22
MACs são assinaturas?
• MAC: – Alice e Bob partilham uma chave k
– Alice envia m || Hk(m) para Bob
• Isto é uma assinatura digital:– Bob verifica que recebeu m de Alice
• Certo?
ERRADO!
• Isto não é uma assinatura digital!– Um terceira parte não pode determinar se foi Alice ou Bob quem
gerou a mensagem
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 23
Assinaturas Digitais
• Já vimos como fazer autenticação de mensagens através do uso de síntese criptográficas
• No entanto, não resolvemos o problema da falta de confiança entre as partes que partilham chaves:
– Alice pode forjar uma mensagem e dizer que veio de Bob
– Bob pode negar ter enviado uma mensagem
• Assinaturas digitais “reais” permitem: – Verificar o autor, data e hora de produção da assinatura
– Autenticar qualquer conteúdo da mensagem
– Tudo pode ser verificado por uma terceira parte
• Assim, assinaturas digitais devem incluir algumas propriedades extra…
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 24
Assinaturas Digitais: Propriedades
• Autenticidade– quem assinou é identificável univocamente pela assinatura
• Não-forjamento– quem assinou é o próprio e fê-lo deliberadamente
• Integridade– Uma assinatura correcta num documento garante que este não é
alterável sem detecção
• Não-reutilização– a assinatura ou parte do documento não é reutilizável em outro
documento
• Não-repudiação– o assinante não pode negar a sua assinatura
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 25
Assinaturas Digitais: Concretização
• Assinatura Arbitrada– Envolve um árbitro que age como um mediador de confiança
– Toda gente tem de confiar no árbitro, que pode ou não ver a mensagem
– Usualmente baseia-se em criptografia simétrica
– Problema: Árbitro é bottleneck : ponto de estrangulamento e ponto singular de falha
• Assinatura Directa– Envolvem apenas o emissor e o receptor
– O receptor deve ter acesso à chave pública do emissor (para verificar a sua assinatura)
– Usualmente baseia-se em criptografia assimétrica
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 27
Assinatura com Criptografia Assimétrica
• Assinatura directa, não necessita de árbitro
• PROTOCOLO– Alice assina com chave privada Sa(M) = M’ e envia a Bob
– Bob verifica com a chave pública Va(M) de Alice: Va(M’) = Va ( Sa(M) ) = M
• PROPRIEDADES:– não-forjamento; autenticidade; não-repudiação; integridade
– Não satisfaz não-reutilização:
» o documento todo pode ser reutilizado (ataque de replay).
» Solução: incluir informação não reutilizável (ex. estampilha temporal, números de sequência, nonces)
M
signed text
Signature(or encryption)
Algorithmplaintext
M
plaintext
A B
Private Key of AKr
a
Public Key of AKu
a
Verification(or decryption)
Algorithm
S
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 28
Assinatura com Criptografia Assimétrica(e síntese segura)
• É o mais usado na prática!– Daqui para frente, quando falarmos em
assinatura, é isso que estamos a considerar
• Eficiência– Evita que Alice tenha de assinar toda a
mensagem
– A assinatura é feita apenas sobre a síntese
• Permite assinaturas múltiplas– Alice e Beto assinam uma síntese
– Documento segue com todas as assinaturas
– Estas são verificáveis em separado
• Arquivos notariais– Alice gera síntese de um documento e
apresenta ao Notário
– Notário data, assina e guarda
– Mais tarde, Alice pode provar origem do documento mostrando-o só nessa altura: é feita síntese e comparada
• Exemplos: DSA/DSS
MESSAGE DIGEST
K
Message
SignSK
Digest
Signature Message
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 29
Assinatura com Criptografia Assimétrica(e síntese segura)
Protocolo mais comum
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 30
Problemas com Assinaturas Digitais
• Gestão de chaves é um ponto crucial– Precisa tratar de tipos diferentes de chaves (ex. chaves de sessão e
de longa duração)
– Precisa conter uma infra-estrutura para identificar partes e revogar chaves
• Repudiação– Alice pode mentir e dizer que a sua chave foi comprometida antes
de uma determinada mensagem assinada ser enviada
– Solução: estampilha temporal na assinatura
– Entretanto, sempre existe uma janela de vulnerabilidade não técnica
SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados.
Digital Signature Standard (DSS)
• Esquema de chave pública apenas para assinatura(ao contrário do RSA), que combina com síntese– (recordar que não é recomendado usar o mesmo algoritmo para
cifração e assinatura)
• projectado pelo NIST & NSA no início dos 90's • DSS é a norma, DSA o algoritmo• PRINCÍPIO:
– depende da inexequibilidade de calcular logaritmos discretos emcampos finitos
– cria uma assinatura de 320bits; segurança semelhante a RSA para mesmo comprimento de chave
– computacionalmente eficiente: ElGamal modificado para maiorrapidez da assinatura vs. verificação – bom para smart cards
– preserva chave de longa duração: uma chave de assinar/assinatura
• VIRTUDES: – assina síntese de texto e não expõe segredos de longa duração
32