Signature XML – Wikipedia wiki

before-content-x4

Syntaxe XML pour les signatures numériques

after-content-x4

Signature XML (aussi appelé Xmldsig , XML-DSIG , Xml-sig ) définit une syntaxe XML pour les signatures numériques et est défini dans la recommandation W3C Syntaxe et traitement de la signature XML . Fonctionnellement, il a beaucoup en commun avec PKCS # 7 mais est plus extensible et axé sur la signature des documents XML. Il est utilisé par diverses technologies Web telles que SOAP, SAML et autres.

Les signatures XML peuvent être utilisées pour signer des données – un Ressource – De tout type, généralement des documents XML, mais tout ce qui est accessible via une URL peut être signé. Une signature XML utilisée pour signer une ressource à l’extérieur de son document XML contenant est appelée une signature détachée; S’il est utilisé pour signer une partie de son document contenant, il s’appelle un enveloppé signature; [d’abord] S’il contient les données signées en elle-même, elle s’appelle un enveloppant signature. [2]

Structure [ modifier ]]

Une signature XML se compose d’un Signature élément dans le http://www.w3.org/2000/09/xmldsig# Espace de noms. La structure de base est la suivante:

   />   />    />   />
        />
    
     /> etc.
  
   />
   />
   />

  • Le SignedInfo L’élément contient ou fait référence aux données signées et spécifie les algorithmes utilisés.
    • Le Signaturmethod et Canonicalisation de la méthode les éléments sont utilisés par le Évaluation signature élément et sont inclus dans SignedInfo pour les protéger contre la falsification.
    • Un ou plus Référence Les éléments spécifient la ressource signée par référence URI et toutes les transformations à appliquer à la ressource avant la signature.
      • Se transforme Contient les transformations appliquées à la ressource avant la signature. Une transformation peut être une expression XPath qui sélectionne un sous-ensemble défini de l’arborescence de document. [3]
      • Digestmethod Spécifie l’algorithme de hachage avant d’appliquer le hachage.
      • Digstvalue contient le résultat codé de base64 de l’application de l’algorithme de hachage aux ressources transformées définies dans le Référence Attributs d’élément.
  • Le Évaluation signature l’élément contient le résultat de signature codé de base64 – la signature générée avec les paramètres spécifiés dans le Signaturmethod élément – du SignedInfo élément après avoir appliqué l’algorithme spécifié par le Canonicalisation de la méthode .
  • Keyinfo L’élément permet éventuellement au signataire de fournir aux destinataires la clé qui valide la signature, généralement sous la forme d’un ou plusieurs certificats numériques X.509. La partie en comptant doit identifier la clé du contexte Keyinfo n’est pas présent.
  • Le Objet élément (facultatif) contient les données signées s’il s’agit d’un Signature enveloppante .

Considérations de validation et de sécurité [ modifier ]]

Lors de la validation d’une signature XML, une procédure appelée Validation de base est suivi.

  1. Validation de référence: Chaque Référence Le digest est vérifié en récupérant la ressource correspondante et en appliquant toutes les transformations, puis la méthode de digest spécifiée. Le résultat est comparé à l’enregistrement Digstvalue ; S’ils ne correspondent pas, la validation échoue.
  2. Validation de signature: Le SignedInfo L’élément est sérialisé en utilisant la méthode canonicalisation spécifiée dans Canonicalisation de la méthode , les données clés sont récupérées en utilisant Keyinfo ou par d’autres moyens, et la signature est vérifiée en utilisant la méthode spécifiée dans Signaturmethod .

Cette procédure établit si les ressources ont été vraiment signées par la partie présumée. Cependant, en raison de l’extensibilité des méthodes canonicalisation et de transformation, la partie vérifiée doit également s’assurer que ce qui a été réellement signé ou digéré est vraiment ce qui était présent dans les données d’origine, en d’autres termes, que les algorithmes utilisés peuvent être fiables et ne peuvent pas faire confiance pour modifier la signification des données signées.

after-content-x4

Étant donné que la structure du document signé peut être falsifiée d’attaques à des attaques “emballage de signature”, le processus de validation doit également couvrir la structure du document XML. L’élément signé et l’élément de signature doivent être sélectionnés en utilisant l’expression absolue XPATH, pas getElementByName Méthodes. [4]

Canonicalisation XML [ modifier ]]

La création de signatures XML est sensiblement plus complexe que la création d’une signature numérique ordinaire car un document XML donné (un “InfoSet”, en usage commun chez les développeurs XML) peut avoir plus d’une représentation sérialisée légale. Par exemple, l’espace blanc à l’intérieur d’un élément XML n’est pas significatif syntaxiquement, de sorte que est syntaxiquement identique à .

Étant donné que la signature numérique garantit l’intégrité des données, une différence à un octet ferait varier la signature. De plus, si un document XML est transféré de l’ordinateur à l’ordinateur, le terminateur de ligne peut être changé de CR en LF en CR LF, etc. Un programme qui digère et valide un document XML peut ensuite rendre le document XML d’une manière différente, par exemple. L’ajout d’espace excédentaire entre les définitions d’attribut avec une définition d’élément, ou en utilisant des URL relatives (vs absolues), ou en réorganisant les définitions d’espace de noms. Le XML canonique est particulièrement important lorsqu’une signature XML fait référence à un document distant, qui peut être rendu de manière variant dans le temps par un serveur distant errant.

Pour éviter ces problèmes et garantir que les documents XML logiquement identiques donnent des signatures numériques identiques, une transformation canonicalisation XML (souvent abrégée C14N ) est employé lors de la signature de documents XML (pour la signature du SignedInfo , une canonisation est obligatoire). Ces algorithmes garantissent que les documents sémantiquement identiques produisent des représentations sérialisées exactement identiques.

Une autre complication survient en raison de la façon dont l’algorithme canonicalisation par défaut gère les déclarations d’espace de noms; Souvent, un document XML signé doit être intégré dans un autre document; Dans ce cas, l’algorithme canonicalisation d’origine ne donnera pas le même résultat que si le document est traité seul. Pour cette raison, le soi-disant Canonicalisation exclusive , qui sérialise les déclarations d’espace de noms XML indépendamment du XML environnant, a été créé.

Avantages [ modifier ]]

La signature XML est plus flexible que les autres formes de signatures numériques telles que une très bonne confidentialité et une syntaxe des messages cryptographiques, car il ne fonctionne pas sur les données binaires, mais sur le XML InfoSet, permettant de travailler sur des sous-ensembles des données (cela est également possible avec possible avec Données binaires de manière non standard, par exemple codant pour les blocs de données binaires dans Base64 ASCII), ayant différentes façons de lier les informations de signature et signées, et d’effectuer des transformations. Un autre concept de base est la canonisation, c’est-à-dire de signer uniquement «l’essence», éliminant les différences dénuées de sens comme les espaces et les fins de ligne.

Il y a des critiques dirigées contre l’architecture de la sécurité XML en général, [5] et à l’adéquation de la canonisation XML en particulier en tant que frontal pour signer et chiffrer les données XML en raison de sa complexité, de sa nécessité de traitement inhérente et de mauvaises caractéristiques de performance. [6] [7] [8] L’argument est que la réalisation de la canonalisation XML provoque une latence excessive qui est tout simplement trop à surmonter pour les applications SOA transactionnelles et sensibles aux performances.

Ces problèmes sont traités dans le Groupe de travail de sécurité XML . [9] [dix]

Sans politique et mise en œuvre appropriées [4] L’utilisation de DSIG XML dans SOAP et WS-Sécurité peut conduire à des vulnérabilités, [11] tels que l’emballage de signature XML. [douzième]

Applications [ modifier ]]

Un exemple d’applications de signatures XML:

Voir également [ modifier ]]

Les références [ modifier ]]

Liens externes [ modifier ]]

after-content-x4