Aller au contenu principal

7.2.2. Relecture de signature

7.2.2. Relecture de signature

Comme les signatures de message HTTP permettent de signer des sous-parties du message HTTP, deux messages HTTP différents peuvent se valider par rapport à la même signature. La forme la plus extrême serait une signature sur aucun composant du message. Si une telle signature était interceptée, elle pourrait être rejouée à volonté par un attaquant, jointe à n'importe quel message HTTP. Même avec une couverture de composants suffisante, une signature donnée pourrait s'appliquer à deux messages HTTP similaires, permettant à un attaquant de rejouer un message avec la signature intacte.

Pour contrer ce type d'attaques, il importe d'abord que le signataire couvre suffisamment de parties du message pour le distinguer des autres messages. En outre, la signature peut utiliser le paramètre de signature nonce pour fournir une valeur unique par message, permettant au vérificateur de détecter la relecture de la signature elle-même si une valeur de nonce est répétée. De plus, le signataire peut fournir un horodatage de création de la signature et une heure à laquelle le signataire considère la signature comme expirée, limitant l'utilité d'une valeur de signature capturée.

Si un vérificateur souhaite déclencher une nouvelle signature d'un signataire, il peut envoyer le champ d'en-tête Accept-Signature avec un nouveau paramètre nonce. Un attaquant qui se contente de rejouer une signature ne serait pas en mesure de générer une nouvelle signature avec la valeur de nonce choisie.