Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Signature numérique

Un mécanisme de signature numérique est composé de trois algorithmes : un algorithme de génération de bi-clés, un algorithme de signature, prenant en entrée un message et la clé privée et renvoyant une signature, et un algorithme de vérification, prenant en entrée un message, une signature et la clé publique et acceptant ou non la signature pour ce message.

Tout mécanisme de signature doit a minima être robuste face aux attaques en contrefaçon, mais d’autres propriétés additionnelles peuvent être attendues (voir annexe A.2.3).

La sécurité des mécanismes de signature numérique s’appuie sur un problème mathématique difficile ou sur la sécurité d’un mécanisme symétrique. Ce dernier doit donc être en accord avec le niveau de robustesse recherché. De plus, il est possible pour la plupart des mécanismes de signature de faire la preuve que la sécurité est équivalente à celle du problème de base et pas uniquement reliée de manière heuristique.

Reco
RecoSignature
  1. Il est recommandé d’employer des mécanismes de signature numérique disposant d’une preuve de sécurité dans un modèle d’adversaire pertinent.
  2. En cas d’hybridation entre deux mécanismes de signature numérique, il est recommandé qu’ils disposent tous deux d’une preuve de sécurité dans le même modèle d’adversaire. Il est recommandé que le mode d’hybridation possède les mêmes propriétés additionnelles que les deux mécanismes.
i
Information
  • L’existence d’une preuve de sécurité apporte des garanties importantes sur la résistance du mécanisme.
  • Il est courant de hacher un message avant de le signer. Dans ce cas, le niveau de robustesse de la fonction de hachage utilisée (voir section 2.1.4) doit être en accord avec le niveau de robustesse souhaité pour le mécanisme de signature.
  • L’emploi d’un mode d’hybridation cohérent avec les mécanismes sousjacents permet d’éviter l’apparition d’attaques qui seraient dues à une absence de propriétés additionnelles de ce dernier.
Mécanismes conformes
  • Le mécanisme de signature numérique RSA-SSA-PSS1 défini dans le document PKCS#1 v2.1 est conforme au référentiel à condition de respecter les règles RègleFactorisation.1, RègleFactorisation.2, RègleFactorisation.3 et RègleFactorisation.4.
  • Le mécanisme de signature numérique ECDSA défini dans le FIPS 186-5, ainsi que le mécanisme de signature numérique ECKCDSA, sont conformes au référentiel lorsqu’ils utilisent la courbe FRP256v1 – définie dans le journal officiel n°241 du 16/10/2011 et dont les paramètres, validés par l’ANSSI, peuvent librement être intégrés dans tous les produits de sécurité – ou lorsqu’ils utilisent l’une des courbes P-256, P-384, P-521, B-283, B-409 et B571 définies dans le FIPS 186-5. Pour hybrider l’un des mécanismes de signature précédents avec une signature post-quantique conformément à la règle post-quantique RèglePQSécuAsym, on peut par exemple signer un message avec ML-DSA tel que défini dans le FIPS 204, puis utiliser ce mécanisme classique pour signer le couple (message, signature).
  • Le mécanisme de signature numérique SLH-DSA défini dans le FIPS 205 est conforme aux règles RègleSécuAsym et RèglePQSécuAsym car il repose sur la sécurité de la fonction de hachage sous-jacente, qui est conforme au référentiel, à la fois en tant que sécurité classique et post-quantique. Il peut donc être utilisé tel quel après 2030.
Mécanismes non conformes
  • Le mécanisme de signature numérique RSA-SSA, mis en œuvre selon le document PKCS#1 v1.5 n’est pas conforme au référentiel lorsque l’exposant public est petit et pour un mauvais choix d’implémentation des vérifications liées au padding. En effet, Bleichenbacher a mis en évidence en 2006 une attaque permettant de créer des signatures valides dans ce cas [9].
  • Utilisé sans hybridation et quel que soit le jeu de paramètres utilisé, le mécanisme de signature numérique ML-DSA ne respecte pas la règle RègleSécuAsym.
Attention

Certains contextes et protocoles utilisent des signatures de telle manière que la simple résistance à la contrefaçon ne suffit pas à garantir la sécurité du système. Celle-ci peut cependant être garantie si la signature vérifie une ou plusieurs propriétés additionnelles telles que la sécurité forte en contrefaçon, la propriété exclusive, la signature liée au message ou la non-resignabilité. Ces propriété additionnelles sont rappelées en annexe A.2.3.

i
Information
  • L’utilisation du mécanisme de signature numérique ECDSA dans le protocole Bitcoin crée une vulnérabilité permettant à un attaquant d’utiliser deux fois le même jeton, en raison de l’absence de sécurité forte en contrefaçon de la signature [26]. Des contre-mesures spécifiques doivent être implémentées dans le protocole pour corriger cette vulnérabilité.
  • Le protocole SSH requiert que les signatures satisfassent la sécurité forte en contrefaçon [7]. L’utilisation du mécanisme de signature numérique ECDSA n’est pas compatible avec ce protocole.
  • Une version préliminaire du protocole ACME, utilisé dans Let’s Encrypt, un service de fournisseurs de certificats X.509, présentait une vulnérabilité [5] liée à l’utilisation d’une signature (RSA) résistante en contrefaçon, mais ne satisfaisant pas la notion de propriété exclusive. La vulnérabilité a été corrigée en changeant la signature utilisée.
  • Le protocole DRKey est un protocole d’établissement de clés. Il s’avère que ce protocole présente une vulnérabilité liée à l’utilisation de signatures ne satisfaisant pas la propriété de non-resignabilité [25], bien que celles-ci soient résistantes aux attaques en contrefaçon.

  1. RSA-SSA-PSS : “RSA Signature Scheme with Appendix – Provably Secure encoding method for digital Signatures”.