• Aucun résultat trouvé

Les fonctions de hachage, un domaine à la mode

N/A
N/A
Protected

Academic year: 2022

Partager "Les fonctions de hachage, un domaine à la mode"

Copied!
33
0
0

Texte intégral

(1)

Les fonctions de hachage, un domaine `a la mode

JSSI 2009

Thomas Peyrin (Ingenico)

17 mars 2009 - Paris

(2)

Outline

Qu’est-ce qu’une fonction de hachage

Comment construire une fonction de hachage ?

Les attaques contre la famille MD-SHA

Le concours SHA-3 du NIST

(3)

Outline

Qu’est-ce qu’une fonction de hachage

Comment construire une fonction de hachage ?

Les attaques contre la famille MD-SHA

Le concours SHA-3 du NIST

(4)

Qu’est-ce qu’une fonction de hachage cryptographique?

• Hfait correspondreune entr ´ee de taille arbitraire(un message M) `aune sortie de taille fixe(typiquement 128, 160 ou 256 bits).

• Hdoit ˆetre rapide et facile `a calculer.

• 6=d’une fonction de hachage classique (base de donn ´ees, ...)

aucun secret !

(5)

Les crit `eres de s ´ecurit ´e

r ´esistance `a la recherche de preimage: soit un hach ´ey donn ´e, l’attaquant ne doit pas ˆetre en mesure de trouver un messagex tel queH(x) =y, en moins deθ(2n)op ´erations.

r ´esistance `a la recherche de 2nd preimage:soit un message x donn ´e et son hach ´ey correspondant (H(x) =y), l’attaquant ne doit pas ˆetre en mesure de trouver un nouveau message x06=x tel queH(x0) =y, en moins deθ(2n)op ´erations.

r ´esistance `a la recherche de collision: l’attaquant ne doit pas ˆetre en mesure de trouver deux messages diff ´erents(x,x0)tels queH(x) =H(x0), en moins deθ(2n/2)op ´erations (paradoxe des anniversaires).

(6)

Les crit `eres de s ´ecurit ´e

r ´esistance `a la recherche de preimage: soit un hach ´ey donn ´e, l’attaquant ne doit pas ˆetre en mesure de trouver un messagex tel queH(x) =y, en moins deθ(2n)op ´erations.

r ´esistance `a la recherche de 2nd preimage:soit un message x donn ´e et son hach ´ey correspondant (H(x) =y), l’attaquant ne doit pas ˆetre en mesure de trouver un nouveau message x06=x tel queH(x0) =y, en moins deθ(2n)op ´erations.

r ´esistance `a la recherche de collision: l’attaquant ne doit pas ˆetre en mesure de trouver deux messages diff ´erents(x,x0)tels queH(x) =H(x0), en moins deθ(2n/2)op ´erations (paradoxe des anniversaires).

(7)

Les crit `eres de s ´ecurit ´e

r ´esistance `a la recherche de preimage: soit un hach ´ey donn ´e, l’attaquant ne doit pas ˆetre en mesure de trouver un messagex tel queH(x) =y, en moins deθ(2n)op ´erations.

r ´esistance `a la recherche de 2nd preimage:soit un message x donn ´e et son hach ´ey correspondant (H(x) =y), l’attaquant ne doit pas ˆetre en mesure de trouver un nouveau message x06=x tel queH(x0) =y, en moins deθ(2n)op ´erations.

r ´esistance `a la recherche de collision: l’attaquant ne doit pas ˆetre en mesure de trouver deux messages diff ´erents(x,x0)tels queH(x) =H(x0), en moins deθ(2n/2)op ´erations (paradoxe des anniversaires).

(8)

Le paradoxe des anniversaires

PROBL `EME:

de combien de personne doit on disposer pour avoir une bonne probabilit ´e (P

>

0.5) que deux personnes aient la m ˆeme date d’anniversaire ?

... 365 possibilit ´es de dates (approximativement uniforme !)

... la r ´eponse n’est pas tr `es intuitive!

...

(9)

Le paradoxe des anniversaires

PROBL `EME:

de combien de personne doit on disposer pour avoir une bonne probabilit ´e (P

>

0.5) que deux personnes aient la m ˆeme date d’anniversaire ?

... 365 possibilit ´es de dates (approximativement uniforme !)

... la r ´eponse n’est pas tr `es intuitive!

...

R ´ EPONSE: seulement 23 personnes pour P > 0.5 !

(10)

Applications (1)

Nombreuses applications:

signatures: un sch ´ema de signature poss `ede deux entr ´ees : une cl ´e priv ´ee et un message `a signer. Cette fonction permet `a tous les utilisateurs connaissant la cl ´e publique correspondante

`a la cl ´e priv ´ee de v ´erifier l’int ´egrit ´e/l’authenticit ´e du message sign ´e. Les fonctions de hachage permettent dans ce cas d’am ´eliorer la vitesse et la s ´ecurit ´e des sch ´emas de signature.

Message Authentication Codes: un MAC poss `ede deux entr ´ees : une cl ´e secr `ete (partag ´ee entre deux personnesAet B) et un message `a signer. Cette fonction permet pourAde v ´erifier l’int ´egrit ´e/l’authenticit ´e du message sign ´e parB. Par exemple, HMAC utilise une fonction de hachage comme composant principal et est utilis ´e dans SSL/TLS, IPSec, ....

(11)

Applications (2)

Nombreuses applications:

protection de mots de passe: au lieu de stocker tous les mots de passe dans le serveur pour l’authentification d’utilisateurs, il vaut mieux stocker le hach ´e des mots de passe.

confirmation de connaissance/engagement sur une valeur:

si quelqu’un veut prouver qu’il connait un secret sans le r ´ev ´eler dans l’imm ´ediat, il peut publier le hach ´e de ce secret. Une fois le secret r ´ev ´el ´e, il est facile de v ´erifier ses dires.

g ´en ´erateur de suites pseudo-al ´eatoires/d ´erivation de cl ´es:

les fonctions de hachage sont utilis ´ees pour d ´etruire toute structure qu’il pourrait exister dans les entr ´ees, tout en

pr ´eservant leur entropie. Cela permet par exemple de casser la structure alg ´ebrique d’un objet.

(12)

Outline

Qu’est-ce qu’une fonction de hachage

Comment construire une fonction de hachage ?

Les attaques contre la famille MD-SHA

Le concours SHA-3 du NIST

(13)

Squelette g ´en ´eral

Pour des raisons historiques, quasiment toutes les fonctions de hachage sont compos ´ees de deux ´el ´ements:

une fonction de compressionh:une fonction dontla taille d’entr ´ee et de sortie est fixe.

un algorithme d’extension de domaine:un processus (g ´en ´eralement it ´eratif) utilisant la fonction de compressionh pour que la fonction de hachageHpuisse hacher des messages de taille arbitraire.

(14)

L’algorithme d’extension de domaine Merkle-Damg ˚ard

L’algorithme d’extension de domaine de tr `es loin le plus connu

et le plus utilis ´e jusqu’ `a maintenant est l’algorithme it ´eratif de

Merkle-Damg ˚ard [Merkle Damg ˚ard-89]

(15)

Avantages et d ´efauts de l’algorithme de Merkle-Damg ˚ard

Avantage: l’algorithme de Merkle-Damg ˚ard permet de r ´eduire le probl `eme de la construction d’une fonction de hachage r ´esistante `a la recherche de collision/preimage `a celui de la construction d’une fonction de compression r ´esistante `a la recherche de collision/preimage :

si l’on ne trouve pas de collision/preimage pourh, alors on ne trouve pas de collision/preimage pourH.

D ´efaut: la r ´esistance `a la recherche de collision/preimage n’est pas tout. R ´ecemment (2004-2005) des chercheurs ont montr ´e que ce processus n’est pas une candidat d’extension de domaine id ´eal : multi-collision, 2nd preimages longues, ...

Par cons ´equent, plusieurs nouveaux candidats ont vu le

jour depuis, fournissant de meilleures preuves de s ´ecurit ´e

mais au prix d’une complexit ´e l ´eg `erement accrue.

(16)

Trois grands groupes de fonctions de compression

Trois grands groupes

de fonctions de compression:

ad-hoc: grande majorit ´e des fonctions utilis ´ees et

standardis ´ees (MD, SHA, ...). Tr `es rapides mais on ne peut avoir confiance en leur s ´ecurit ´e qu’apr `es une longue analyse par la communaut ´e des cryptographes.

fond ´ees sur un chiffrement par bloc: un peu plus lentes que les fonctions ad-hoc, elles permettent souvent de prouver leur s ´ecurit ´e en supposant le chiffrement par bloc utilis ´e comme id ´eal.

fond ´ees sur un probl `eme difficile: g ´en ´eralement tr `es

lentes, leur s ´ecurit ´e repose totalement sur la difficult ´e de

r ´esoudre un probl `eme difficile (factorisation, r ´esolution de

syst `emes alg ´ebriques, etc.).

(17)

Fonctions de compressions ad-hoc

La famille MD/SHA (MD4, MD5, SHA-0, SHA-1, SHA-2, ...)

(18)

Fonctions de compressions ad-hoc

La famille MD/SHA (MD4, MD5, SHA-0, SHA-1, SHA-2, ...)

(19)

Efficacit ´e des fonctions de hachage

Type Algorithme Vitesse (MiB/seconde)

Block Cipher DES 34

Block Cipher IDEA 36

Block Cipher AES 90

Hash Function CRC-32 256

Hash Function MD5 258

Hash Function SHA-1 155

Hash Function SHA-2 81

MAC HMAC(SHA-1) 152

MAC CBC-MAC(AES) 86

(20)

Outline

Qu’est-ce qu’une fonction de hachage

Comment construire une fonction de hachage ?

Les attaques contre la famille MD-SHA

Le concours SHA-3 du NIST

(21)

Premi `eres attaques par collision

(22)

Les attaques par collision de Wang et al.

Coup de tonnerre dans le petit monde de la cryptographie `a la conf ´erence CRYPTO 2004 (ao ˆut 2004): une collision a ´et ´e calcul ´ee pour MD4, MD5 et RIPE-MD !

Quelques mois plus tard (f ´evrier 2005), SHA-1 est cass ´ee ! ...

certes uniquement en th ´eorie mais personne ne s’y attendait !

• Aboutissement d’une dizaine d’ann ´ees de travail de l’ ´equipe de Wang ...

• ... une grande partie de l’attaque a ´et ´e trouv ´ee `a la main !

• la m ˆeme m ´ethode s’applique `a MD4, MD5, SHA-0, SHA-1, RIPE-MD (aie !)

• mais tout restera longtemps flou : attaque tr `es complexe, tr `es mal expliqu ´ee, des erreurs, ...

(23)

Les nouvelles am ´eliorations

Depuis, de nombreuses am ´eliorations ont vu le jour :

mieux comprendre ce qui se cache derri `ere les attaques, donner un socle plus th ´eorique

automatiser les attaques (pour ne pas avoir `a tout refaire

`a la main)

am ´eliorer les r ´esultats : pousser ces m ´ethodes jusqu’ `a leur limite

´etudier d’autres cas que la collision : attaquer les

2nd-preimages, les preimages, HMAC, des protocoles,

collision sur des certificats, etc.

(24)

La s ´ecurit ´e actuelle des fonctions de hachage de la famille MD-SHA

Algorithme Cas id ´eal Complexit ´e de l’attaque

MD4 (1990) 2

64

2

1

MD5 (1992) 2

64

2

16

SHA-0 (1993) 2

80

2

33

SHA-1 (1995) 2

80

2

60

SHA-2 (2002) 2

128

pas d’attaque

(pour l’instant !)

(25)

Attaque certificats X.509 sign ´es avec MD5

”Outdated Security Threatens Web Commerce.”

The New York Times, 30 d ´ecembre 2008.

”SSL broken! Hackers create rogue CA certificate using MD5 collisions !”

ZDNET, 30 d ´ecembre 2008.

”L’algorithme MD5, utilis ´e par de nombreux sites, n’est pas fiable.”

Le monde, 2 janvier 2009.

Que se cache t’il derri `ere cette attaque ?

(26)

Attaque certificats X.509 sign ´es avec MD5

Ce qui ´etait d ´ej `a connu:

deux messages qui collisionent avec MD5 (Wang 2004).

deux documents PDF qui collisionnent avec MD5.

deux fichiers ex ´ecutables qui collisionnent avec MD5.

deux certificats X.509 avec deux cl ´es RSA diff ´erentes qui collisionnent avec MD5 (Lenstra et al. 2005).

deux certificats X.509 avec deux cl ´es RSA diff ´erentes et

deux identit ´es diff ´erentes qui collisionnent avec MD5

(Stevens et al. 2006). Mais le prefixe du certificat doit

pouvoir ˆetre contr ˆol ´e par l’attaquant (p ´eriode de validit ´e,

num ´ero de s ´erie, ...).

(27)

Attaque certificats X.509 sign ´es avec MD5

(28)

Attaque certificats X.509 sign ´es avec MD5

Ce qui est nouveau:

les d ´etails pour que c¸a marche avec une vraie impl ´ementation du CA !

utilisation d’un cluster de 200 PS3 pour rendre l’attaque pratique !

mais PAS GRAND CHOSE de neuf au niveau crypto ! Le d ´eroulement:

pr ´edire le serial number qui sera utilis ´e dans x jours par le CA.

calculer en moins de x jours deux certificats qui collisionnent avec ce serial number.

utiliser des autres participants pour forcer le bon serial

number.

(29)

Outline

Qu’est-ce qu’une fonction de hachage

Comment construire une fonction de hachage ?

Les attaques contre la famille MD-SHA

Le concours SHA-3 du NIST

(30)

Probl ´ematiques du concours

pourquoi ?

• doit on remplacer SHA-2 ou juste lui succ ´eder ?

• doit on ´eviter de continuer dans la lign ´ee MD-SHA ?

quand ?

• doit on attendre que la connaissance dans le domaine s’am ´eliore avant de d ´ebuter, au risque de se faire surprendre par l’ ´evolution rapide des attaques ?

• combien de temps doit durer le concours ?

quoi ?

• qu’est ce que l’on attend du futur standard ?

• doit on beaucoup contraindre les candidats ?

• faire un concours d’algorithmes d’extension de domaine et un concours de fonctions de compression s ´epar ´es ?

• un concours par crit `ere de s ´ecurit ´e ?

• sur quels crit `eres de s ´ecurit ´e doit on se focaliser ?

• qu’est ce que l’on consid `ere comme ´etant une attaque ?

(31)

Roadmap du concours SHA-3

(32)

O `u en est-on aujourd’hui ?

61 candidats soumis en octobre 2008. 51 dossiers accept ´es (les autres dossiers ´etant incomplets).

pour l’instant 10 candidats d ´ej `a cass ´es, et une dizaine d’autres ”bless ´es”.

il reste une trentaine de candidats potentiellement finalistes.

3 ou 4 candidats ”stars” ( ´equipe renomm ´ee, algorithme

m ´ediatis ´e, etc.)

(33)

Des questions ?

Références

Documents relatifs

Si le nombre de bits dans un message est un multiple de 8, pour le rendre compact, on peut représenter le message en hexadécimal.. L’objet du bourrage de message est de rendre

was recently informed that researchers had discovered a way to "break" the current Federal Information Processing Standard SHA-1 algorithm,. which has been in effect

Soit elle n’est pas chez elle, soit elle ne r´ epond pas au t´ el´ ephone. Mais si elle n’est pas chez elle, alors, elle a ´ et´ e kidnapp´ ee. Et si elle ne r´ epond pas au

Soit Pierre aime Marie, soit Marie aime Pierre. Mais si Marie n’aime pas Pierre, alors Pierre n’est pas content. Une fois Pierre n’est pas content, il n’aime pas Marie. Donc Pierre

Probl`eme : grappe faible (secondary clustering) — suite de cases occup´ees par cl´es avec la mˆeme valeur de hachage.. N’est pas certain que l’on trouve une case vide lors

suppression avec adressage ouvert : tr`es difficile utiliser lazy deletion : marquer la case «supprim´ee».. ⇒ facteur de remplissage inclut les

D´ emontrer qu’alors le probl` eme variationnel (1) admet une unique solution u.. La solution du probl` eme variationnel est-elle solution d’un probl` eme

Supposons qu’on stocke n clefs dans une table de hachage de taille m = n par une fonction de hachage choisie aléatoirement dans une classe de fonctions de