XML Signature

Un article de Wikipédia, l'encyclopédie libre.

XML Signature est une recommandation du W3C destinée à permettre l'utilisation de signatures numériques dans les documents XML.

Tout comme les techniques générales de cryptographie à clé publique qu'elle met en œuvre, elle permet d'assurer l'authentification, l'intégrité et par voie de conséquence la non-répudiation des données signées, mais en tirant profit de la souplesse offerte par le langage XML.

Une caractéristique importante apportée par XML, est la possibilité de ne signer que des portions spécifiques d'un même document. C'est particulièrement utile lorsque certaines parties doivent être signées par des personnes différentes et/ou en laissant ouvert la modification du reste du document, par exemple lors de la transmission d'un formulaire signé, à un utilisateur qui le complétera. Dans ce cas, si la signature couvrait tout le document, la moindre modification ou ajout apporté par l'utilisateur rendrait la signature invalide.

Suivant la position de la signature dans le document, on distingue généralement 3 cas :

  • la signature 'enveloppée' (enveloped signature) : lorsque la signature s'applique aux données qui l'entoure dans le reste du document
  • la signature 'enveloppante' (enveloping signature) : lorsque les données signées forment un sous-élément de la signature elle-même
  • la signature 'détachée' (detached signature) : lorsque la signature concerne des ressources extérieures au document qui la contient

[modifier] Forme canonique

Un autre intérêt majeur de la signature XML réside dans une transformation préalable en forme canonique, rendant la signature indépendante du jeux de caractère ou de la syntaxe utilisée.

En effet, un document XML donné peut avoir plusieurs représentations légales. Par exemple les espaces dans un document XML ne sont pas syntaxiquement significatifs, et par conséquent la balise <Elem > équivaut à <Elem>.
Or les algorithmes d'empreintes cryptographiques sur lesquels reposent les signatures numériques sont conçus de manière telle que la moindre divergence entraine un résultat radicalement différent.
C'est pour éviter ce problème et garantir qu'on produira des signatures identiques sur des documents XML logiquement équivalents, qu'on procède à une transformation canonique (c14n).

[modifier] Lien externe

Traduction en français de la spécification du W3C

Autres langues