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 Rencontre←Rencontre+ (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).