Aller au contenu principal

7.3.6. Rétrogradation de la spécification de clé et d’algorithme

7.3.6. Rétrogradation de la spécification de clé et d’algorithme

Les applications de cette spécification doivent se prémunir contre les attaques par rétrogradation de la spécification de clé. Par exemple, la même clé RSA peut servir pour les signatures RSA-PSS et RSA v1.5. Si une application attend qu’une clé ne soit utilisée qu’avec RSA-PSS, elle doit rejeter les signatures pour toute clé qui emploie la spécification RSA 1.5, plus faible.

Un autre exemple de rétrogradation serait lorsqu’un algorithme asymétrique est attendu, tel que RSA-PSS, mais qu’un attaquant substitue une signature utilisant un algorithme symétrique, tel que HMAC. Une implémentation naïve du vérificateur pourrait utiliser la valeur de la clé publique RSA comme entrée de la fonction de vérification HMAC. Comme la clé publique est connue de l’attaquant, celui-ci pourrait créer une signature HMAC valide par rapport à cette clé connue. Pour l’éviter, le vérificateur doit s’assurer que la matière de clé et l’algorithme conviennent à l’usage envisagé. De plus, bien que cette spécification permette la spécification de l’algorithme à l’exécution via le paramètre de signature alg, les applications sont encouragées à utiliser d’autres mécanismes, tels qu’une configuration statique ou une spécification d’algorithme au niveau d’un protocole supérieur, afin d’empêcher un attaquant de substituer l’algorithme indiqué.