HMAC

In document Authentification de messages et mots de passe (Page 30-53)

HMAC

I HMAC (Hash-based MAC) : pemet la g´eneration d’un CAM `a partir d’une fonction de hachage cryptographique h.

I Utilis´e dans IpSec et SSL.

I Sk(m) =h((k⊕opad)kh((k⊕ipad)km)).

I Vk(m,s) =accept si h((k⊕opad)kh((k⊕ipad)km)) =s et reject sinon.

I opad = 0x5c5c5c. . .5c5c et ipad= 0x363636. . .3636, ils sont tous les deux de la taille de la cl´e k et ont ´et´e choisis afin d’avoir une distance de Hamming importante.

I La taille utilis´ee pour la cl´e est habituellement de 128 ou 160 bits (avec par exemple MD5 ou SHA-1 comme fonction de hachage).

MD5 et SHA-1

I MD5: fonction de hachage cryptographique avec une sortie de 128 bits cr´e´e par Ron Rivest en 1994.

I Utilis´e couramment de nombreuses applications dont v´erifier l’int´egrit´e de fichier ou pour les certificats de SSL.

I SHA-1: fonction de hachage qui en pratique peut servir de fonction de hachage cryptographique.

I Produite des empreintes de 160 bits en sortie.

I A ´et´e choisi par le NIST pour remplacer SHA-0 qui ´etait soup¸conn´e d’avoir des failles permettant de trouver des collisions mais SHA-1 semble lui-mˆeme avoir des faiblesses.

I Des familles de fonctions de hachage SHA-2 existent mais une comp´etition pour trouver qui sera le successeur pour SHA-3 s’est termin´e en octobre 2012 avec la victoire d’un algorithme du nom de Keccak (Bertoni, Daemen, Peters et Van Assche).

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Code d’authentification de message CBC-MAC

HMAC

Annonce du r´ esultat de la comp´ etition sur SHA-3

Remarque: avec SHA-3, il est possible d’utiliser un HMAC de la

Fonctionnement g´ en´ eral derri` ere MD5 et SHA-1

I MD5 et SHA-1 suivent le mˆeme sch´ema de fonctionnement, ils se basent sur une fonction de compression f qui prend un bloc du message mi et une valeur s pour obtenir une

empreinte de taille d´esir´ee.

I mi est un bloc du message qui fait 512 bits ets contient 160 bits.

I A l’initialisation, le message est d´` ecoup´e ent+ 1 blocs de 512 bits, avec ´eventuellement un rembourrage de 0s afin

d’atteindre la taille ad´equate.

I La valeur s0 est initialis´ee `a une constante choisie.

I Pour chaque bloc allant dei = 1 `a t+ 1 la valeur si =f(mi,si−1) est calcul´ee.

I La valeur finale est st+1.

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Code d’authentification de message CBC-MAC

HMAC

Illustration du HMAC bas´ e sur SHA-1

Types d’attaque sur fonction de hachage

I Attaque par collision: chercher `a g´en´erer deux messages x et y tel quex 6=y maish(x) =h(y).

I L’attaque reposant sur le paradoxe de l’anniversaire trouve toujours une collision en temps esp´er´e 2k/2 pourk la taille de la sortie de la fonction de hachage mais . . .

I il est parfois possible de trouver des attaques plus efficaces reposant sur la structure sp´ecifique de la fonction de hachage.

I Attaque par pr´e-image:

1. ´etant donn´e un hashz cherche `a g´en´erer un messagex (une pr´e-image) tel que h(x) =z (attaque de pr´e-image de premi`ere ordre) ou

2. ´etant donn´e un messagex, trouver un autre message y tel que h(x) =h(y) (attaque par pr´e-image de second ordre).

I Question: quelles sont les implications pratiques de ces types d’attaque?

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Code d’authentification de message CBC-MAC

HMAC

Paradoxe de l’anniversaire

Exp´erience 1:

I Quelle est la probabilit´e dans une classe de 23 ´etudiants qu’ils y aient deux qui soient n´es le mˆeme jour?

Exp´erience 2:

I Supposons qu’il y ait n boules dans une urne avec des

´

etiquettes diff´erentes.

I Question: combien de fois est ce que je dois piocher au hasard en moyenne dans l’urne pour esp´erer tomber deux fois sur la mˆeme boule si `a chaque fois que je pioche une boule, je la remets ensuite dans l’urne?

I R´eponse: environ √

n de fois en moyenne pour avoir une probabilit´e de succ`es d’au moins 12.

Comprendre le paradoxe de l’anniversaire

I Soit une ann´ee qui compte 365 jours (on ne s’occupe pas des ann´ees bissextiles).

I Parmi n individus (on supposen <365), on veut savoir s’il existe au moins une paire d’individus qui ont le mˆeme anniversaire, soit p(n) la probabilit´e de cet ´ev´enement.

I Soit p(n), la probabilit´e quen individus aient des dates d’anniversaire diff´erentes.

I p(n) = 1×(1−3651 )×(1−3652 )×. . .×(1−n−1365) = 365n(365−n)!365!

I p(n) = 1−p(n),

I d`es quen ≥23⇒p(n)>50% (et mˆeme 99% sin≥57).

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Code d’authentification de message CBC-MAC

HMAC

Probabilit´ e de succ` es du paradoxe de l’anniversaire

(Extrait de wikipedia)

Utiliser le paradoxe de l’anniversaire pour trouver une collision

Algorithme:

1. Rencontre ← {}

2. xj choisi au hasard dans le domaine de h

3. R´ep´eter tant que (xj,h(xj))∈Rencontre ouh(xj) n’apparaˆıt pas dans Rencontre

I RencontreRencontre+ (xj,h(xj))

I xj choisi au hasard dans le domaine deh

4. Retourner (xi,xj) tel quexi 6=xj et (xj,h(xi))∈Rencontre Th´eor`eme: l’algorithme ci-dessus peut g´en´erer une collision apr`es 2(k2)tours de boucle en moyenne pour k le nombre de bits de sortie de la fonction de hachageh.

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Code d’authentification de message CBC-MAC

HMAC

Probl` eme de la longueur de la sortie pour les CAMs

I Pour un cryptosyst`eme, on consid`ere souvent que 64 bits de cl´e sont suffisants pour offrir une s´ecurit´e relativement bonne en pratique (bien qu’on tende vers 128 bits minimum

maintenant pour AES).

I Pour une fonction de hachage, une sortie sur 64 bits n’est pas suffisante car un adversaire pourrait r´eussir `a trouver une collision en 2(642)= 232= 4 294 967 296 ´etapes de calcul en moyenne.

I Solution: avoir une sortie de longueur au moins 128 bits pour que le travail demand´e pour trouver une collision soit

´

equivalent `a celui requis pour faire une fouille exhaustive sur un espace de cl´es de 64 bits pour un cryptosyst`eme.

Etat des lieux des fonctions de hachage ´

Probl`eme fondamental: existe t’il r´eellement des familles de fonction de hachage cryptographiques qui sont `a collision difficile?

´Etat des lieux des fonctions utilis´ees en pratique:

(Extrait de wikipedia)

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Code d’authentification de message CBC-MAC

HMAC

Quelques mots sur les signatures num´ eriques

I Signature num´erique: ´equivalent digital de la signature papier qui peut ˆetre utilis´e pour authentifier un document num´erique et garantir son authenticit´e.

I Bas´e sur le concept de cryptographie asym´etrique o`u un utilisateur poss`ede :

I unecl´e secr`ete de signaturequ’il peut utiliser pour signer un document et

I unecl´e de v´erification publiquequi peut ˆetre utilis´e par n’importe qui pour v´erifier l’authenticit´e d’une signature.

I La signature num´erique fournit aussi la propri´et´e de non-r´epudiation, le fait qu’un utilisateur ne puisse pas nier avoir sign´e un document (elle a valeur l´egale en France).

I Pour des raisons d’efficacit´e, c’est souvent la valeur hach´ee d’un message qui est sign´ee et non pas le message. Quel

Sc´ enario : ouverture de porte de garage ` a distance

I Contexte: supposons que je souhaite cr´eer un syst`eme qui me permet d’ouvrir mon garage `a distance sans sortir de ma voiture en utilisant une t´el´ecommande.

I Probl`eme: je veux ´eviter qu’un potentiel cambrioleur puisse utiliser ce syst`eme pour s’introduire chez moi. Comment faire?

I Est ce que si je chiffre les communications entre ma t´elecommande et ma porte cela r`egle le probl`eme?

I Est ce que l’authentification suffirait?

I Aussi comment ´eviter les risques de rejeu?

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Longueur des mots de passe Stockage de mots de passe Craquage de mots de passe

Contrˆ ole d’acc`es par mots de passe

Contrˆ ole d’acc` es par mot de passe

I Au coeur de la s´ecurit´e de nombreux syst`emes et parfois le seul m´ecanisme de protection.

I L’humain est souvent le maillon faible dans la chaˆıne.

Points importants pour la s´ecurit´e des mots de passe:

I Comment sont-ils choisis?

I Comment sont-ils transmis entre l’utilisateur et le v´erificateur?

I Comment sont-ils stock´es/prot´eg´es par l’utilisateur?

I Comment sont-ils stock´es/prot´eg´es par le v´erificateur?

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Longueur des mots de passe Stockage de mots de passe Craquage de mots de passe

Longueur des mots de passe

I Le nombre de NIPs possible pour une carte bancaire est de l’ordre de 104 = 10 000 possibilit´es cependant . . .

I il est n´ecessaire de poss´eder la carte valide correspondante et seul 3 essais sont autoris´es.

I Les mots de passe sous UNIX sont quelques milliards de fois plus nombreux (252 possibilit´es).

I Si un mot de passe est trop long ou trop al´eatoire, il ne pourra pas ˆetre facilement m´emoris´e et sera donc inutilisable en pratique.

I Selon certaines ´etudes, il est difficile pour un humain de retenir plus de 12 caract`eres.

I Interrogation fondamentale: qu’est ce qu’un bon mot de passe?

Illustration : mot de passe facile ` a deviner

(Extrait de Roger’s information security blog)

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Longueur des mots de passe Stockage de mots de passe Craquage de mots de passe

Difficult´ e de deviner un mot de passe

I Au-del`a du nombre de mots de passe possibles, il est important de s’int´eresser `a comment ils sont choisis.

I Un mot de passe long peut ˆetre facile `a deviner (si par exemple il s’agit d’un mot du dictionnaire).

I Alternative raisonnable: retenir une phrase de passe plutˆot qu’un mot et prendre quelques lettres de cette phrase.

I Exemple: “cette phrase est difficile `a deviner si on ne la connaˆıt pas” devient “cpedadsonlcp”.

Comment rendre les mots de passe plus sˆurs :

I Changer r´eguli`erement de mots de passe.

I Utiliser un syst`eme qui v´erifie un candidat et d´etecte s’il est potentiellement facile `a deviner.

I V´erifier si un nouveau mot de passe est suffisamment diff´erent

Attaques possibles contre un syst` eme bancaire

I Apr`es 3 essais infructueux de NIP, un compte bancaire est bloqu´e mais cela ne prot`ege pas contre toutes les attaques.

I Attaque par falsification de carte: supposons par exemple qu’`Eve est capable de produire des fausses cartes bancaires qui correspondent `a des noms r´eels de clients.

I Apr`es avoir essayer quelques milliers de cartes en moyenne, Eve va pourvoir retirer de l’argent dans un compte qui ne lui` appartient pas.

I Attaque par masquarade: puisque le guichet ne s’authentifie pas, il est possible d’installer des faux guichets qui vont voler l’information et le mot de passe d’une carte bancaire.

I Attaque par d´eni de service: quelqu’un pourrait utiliser la carte bancaire d’une personne dans un guichet simplement pour lui faire du tort en bloquant le compte.

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Longueur des mots de passe Stockage de mots de passe Craquage de mots de passe

Risque li´ e au stockage de mots de passes en clair

I Supposons que les paires mots de passe/logins d’utilisateurs soient stock´ees en clair sur un serveur ou un post-it sur le bureau de l’administrateur.

I La s´ecurit´e du serveur se base sur le fait que ce serveur est suffisamment bien prot´eg´e ou que le bureau de

l’administrateur est inaccessible.

I Risque: ´ecroulement total du syst`eme si un adversaire r´eussi `a acc´eder `a cette base ou lire le post-it.

I Peut-on ´eviter de stocker le mot de passe en clair tout en permettant l’authentification?

Stockage s´ ecuris´ e des mots de passe

I Si possible, il faut ´eviter de stocker des mots de passe “bruts”

dans un fichier afin de se pr´emunir contre une ´eventuelle attaque sur le serveur ou mˆeme un administrateur trop curieux.

I Solution: pour chaque utilisateur, on stocke la paire

(loginu,f(passwordu)) o`u f est une fonction `a sens unique qui est facile `a ´evaluer mais difficile `a inverser.

I Ainsi le syst`eme peut v´erifier facilement un mot de passe qui lui est pr´esent´e mais le vol du fichier ne permet pas de retrouver le mot de passe.

I En pratique,f est construite soit `a partir d’une fonction de hachage, soit `a partir d’une fonction de chiffrement.

Introduction `a l’authentification Authentification de messages Contrˆole d’acc`es par mots de passe

Longueur des mots de passe Stockage de mots de passe Craquage de mots de passe

Craquage de mots de passe

I Si un adversaire arrive `a mettre la main sur un fichier

contenant les paires (loginu,f(passwordu)), il peut essayer de craquer certains de ces mots de passe.

I Exemple: l’adversaire peut g´en´erer des mots de passe de mani`ere r´ep´etitive jusqu’`a trouver une collision en faisant une fouille exhaustive ou une attaque par dictionnaire.

I Salage: ajouter une chaˆıne de bits al´eatoires appel´e sel `a la fin du mot de passe avant d’appliquer la fonction `a sens unique afin de rendre plus coˆuteux la tˆache d’un adversaire qui voudrait calculer les valeurs possibles `a l’avance.

I Renforcement de cl´e: utiliser une fonction tr`es lente `a ´evaluer tel qu’une fonction de hachage utilis´e avec salage qui est r´ep´et´e de nombreuses fois (au moins 1000).

In document Authentification de messages et mots de passe (Page 30-53)

Related documents