Attaque par extension de longueur
Les attaques par extension de longueur permettent à un attaquant de forger un Hash(Clé secrète||Donnée légitime||Donnée malveillante) à partir d’un Hash(Clé secrète||Donnée légitime) et de la longueur connue de (Clé secrète||Donnée légitime). L’attaque utilise le condensat de sortie légitime pour reconstruire l’état interne de la fonction de hachage. À partir de là, il est trivial d’alimenter la fonction de hachage avec la donnée malveillante à ajouter puis de produire un nouveau condensat tout aussi valide. Les fonctions de hachage cryptographiques vulnérables sont celles basées sur la construction de Merkle-Damgård telles que MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512. Cependant SHA-512/224 et SHA-512/256 ne sont pas touchées puisque leur condensat final en sortie est tronqué rendant très difficile la reconstitution de leur état interne. En effet, il s’avère que 100% de l’état nécessaire pour poursuivre un hachage se trouve dans le condensat complet et non tronqué de ces algorithmes. Autrement dit, étant donné un condensat composé d’une chaîne de caractères avec un préfixe inconnu faisant office de clé secrète, un attaquant peut concaténer à cette chaîne une nouvelle chaîne puis recalculer un nouveau condensat qui contient toujours le préfixe inconnu. Ainsi, un condensat SHA-2 utilisé comme Message Authentication Code est une copie complète de l’état du hachage du préfixe, de sa donnée et de son padding. Passons à la pratique avec un exemple concret issu du billet de blog de Sylvain Kerkour, Breaking SHA-256: length extension attacks in practice . ...