mercredi 3 octobre 2012

SHA-2 est mort ? Vive SHA-3...

Pas tout à fait ! Toutefois, le NIST, l'organisme américain vient de révéler que l'algorithme Keccak venait de remporter le concours menant à la décision de lui octroyer la grande responsabilité de devenir le SHA-3 et donc, de fait, un standard. 

C'est l'occasion de revenir sur les impacts stratégiques potentiels de ces décisions...

Quelques précisions préalables pour les lecteurs non-techniciens. La famille des SHA est une famille de procédés cryptographiques permettant d'assurer des fonctions de hachage (c'est le terme retenu en français). Le terme SHA signifie d'ailleurs "Secure Hash Algorithm".

De tels outils sont utilisés pour calculer l'empreinte unique de données et sont souvent utilisées en cryptographie et en informatique pour s'assurer de l'intégrité d'une donnée envoyée : l'expéditeur expédie l'information et son empreinte et le destinataire calcule, avec la même méthode, l'empreinte de la donnée. Si elle est identique, cela permet de s'assurer qu'elle n'a pas été modifiée : la signature électronique est un bon d'exemple d'usage sécurisé de cette propriété.

Ce type d'outils est également utilisé pour la conservation des mots de passe sur nos ordinateurs. Une fois le mot de passe entré, l'ordinateur applique la méthode et conserve l'empreinte. Celle-ci sera comparée à celle qui sera issue du même calcul appliqué au mot de passe fourni lors d'une connexion ultérieure. Si les deux sont identiques pour un identifiant d'accès commun, alors l'authentification est un succès.

Ces outils sont donc des méthodes si l'on peut dire qui illustrent déjà des aspects intéressants :

- ces méthodes s'appuient sur des propriétés indispensables : pas de collision (deux données différentes ne doivent pas avoir la même empreinte) et souvent l'absence de capacité à "remonter" à la donnée initiale à partir de l'empreinte. Ces propriétés sont trouvées dans les mathématiques, par exemples en utilisant des fonctions mathématiques : l'injection par exemple (rappelez-vous vos cours de maths !)

Les vulnérabilités identifiées dans les précédentes fonctions de hachage sont parfois dûes à des problématiques de méthodes. C'est bien souvent une méthode trop "faible" qui est en cause.

-  ces algorithmes doivent ensuite être implémentés dans des logiciels qui seront effectivement utilisées par nos ordinateurs. C'est également un facteur de vulnérabilité car le logiciel utilisant la méthode peut faire l'objet de ses vulnérabilités propres. C'est le cas le plus fréquent.

Le NIST est donc un organisme de standardisation américain dont un équivalent français est l'AFNOR. Son objectif est donc la sélection et la production de standard au travers d'une procédure, ici une "compétition". SHA-3 est donc le nom du standard utilisant l'algorithme Keccak (qui n'est pas une danse balinaise).

La compétition fait donc intervenir de nombreuses équipes (dont une française au moins) dont les produits seront examinés. J'avoue ne pas bien connaître les détails sur la compétition et les critères désignant les vainqueurs et perdants.

Pour autant, doit-on en conclure que l'adoption d'un nouveau standard est imputable à des faiblesses identifiées dans le précédent ?

Et bien, non, absolument pas...Le précédent SHA-2, qui est en fait une famille de protocoles, a été proposé par la NSA et n'a pas fait l'objet de vulnérabilités inhérentes à sa méthode. Des implémentations se sont cependant montrées vulnérables. SHA-1 a également été proposé par la NSA mais il a depuis été possible de produire des collisions et ce avec une difficulté décroissante depuis plusieurs années.

SHA-3 est annoncé comme très intéressant par les auteurs en ce qui utilise une approche rapidement différente de son prédécesseur. Une attaque réussie sur SHA-2 n'aurait donc pas d'effet car la version 3 n'est pas une "simple" amélioration.

Quelques remarques maintenant :

- ces algorithmes ne sont pas les seuls mais une fois adoptés par le NIST, possède une "force" de par leur statut de standard qui leur donne une visibilité importante. De fait, l'adoption et l'usage en masse leur confère une importance que l'on ne peut écarter ;

- le développement, jusqu'ici par la NSA, est un sujet délicat. Le fait que SHA-1 se soit montré vulnérable ne doit pas forcément être compris comme le fait que la vulnérabilité était voulue. De nombreux chercheurs et acteurs observent à la loupe ce type d'outils et communiquent sur les résultats. Il demeure cependant vrai que le temps nécessaire et la complexité inhérente à la découverte de ces failles est sans commune mesure avec celui qui la connaîtrait déjà ;

On peut également songer à la question suivante : vaut-il mieux posséder un standard relativement robuste que l'on protège presque autant que lui-même sert à protéger les données (une forme de sécurité par l'obscurité) ou un standard régulièrement éprouvé ? 

- c'est également l'occasion de donner à des entités, publiques ou privées, américaines une position renforcée associée à des avantages économiques certains ;

- il est enfin possible d'analyser le fait que le NIST la promulgation d'un nouveau standard alors que l'ancien demeure fiable comme un souhait de conserver une maîtrise technologique. Si l'on considère la première remarque, celui qui demeure l'autorité officielle de désignation des standards continue à posséder une autorité incontestable ;

Cette information, anodine en apparence, est l'occasion de revenir sur la puissance de la norme et son influence. Le cas des standards de cryptographie est encore plus intéressant car il appelle la notion du secret et de la sécurité. En guise de conclusion, on pourra réfléchir à la question suivante : dans l'avenir, devrions-nous préférer une norme française ou une norme chinoise, ou encore russe ?

Source :




1 commentaire:

  1. Peut-être que l'intérêt de sortir l'algo bien en avance c'est de laisser une dizaine d'années aux éditeurs pour qu'ils bougent leur petites fesses douillettes et commencent à l'intégrer. Aux passages ils pourraient supprimer DES et 3DES des listes de choix. A priori le début de la fin de sha 1 serait en 2018. (http://www.schneier.com/blog/archives/2012/10/when_will_we_se.html)

    L'autre intérêt de ce nouvel algo est le hashage de fichiers de plusieurs tera en concaténant les hash de différents morceaux (impossible de trouver où j'ai lu ça a priori sur le blog de Schneier).

    Autre remarque au passage, ces fonctions sont faites pour être de plus en plus rapides. Il en va donc de même pour bruteforcer. SHA n'est donc pas le meilleur choix pour générer un hash de mot de passe. (http://erratasec.blogspot.fr/2012/08/common-misconceptions-of-password.html)

    RépondreSupprimer