Altova XMLSpy 2025 Enterprise Edition

Signatures XML

Accueil Préc Haut Suivant

Un fichier XML peut être signé numériquement et la signature peut être vérifiée par la suite. Si le fichier a été modifié après la signature, la vérification échouera. XMLSpy prend en charge la création et la vérification des signatures XML.

 

Les signatures XML dans les modes XMLSpy

Des signatures XML peuvent être créées pour tous les types de fichiers XML, y compris pour les fichiers de Schéma XML, WSDL et XBRL. Les commandes XML | Créer Signature XML et XML | Vérifier Signature XML sont, pour cette raison, disponibles dans tous les modes de XMLSpy : Mode Texte, Mode Grille, Mode Schéma, Mode WSDL et Mode XBRL.

 

Le fichier XML est signé soit avec la clé privée d'un certificat, soit avec un mot de passe.

Le processus de la création de la signature à la vérification de la signature fonctionne comme suit :

 

1.La signature du fichier XML est vérifiée à l'aide de la clé publique du certificat ou du mot de passe. Dans XMLSpy , vous pouvez créer une signature utilisant la commande XML | Créer signature XML. La signature est obtenue en traitant : (i) le document XML et (ii) la clé privée d'un certificat, ou un mot de passe.

2.La signature peut soit être incluse dans le fichier XML soit stockée dans un fichier séparé.

3.La signature du fichier XML est vérifiée à l'aide de la clé publique du certificat ou du mot de passe (dépendant comment la signature a été créée ; voir l’étape 1 ci-dessus). Le processus de vérification fonctionne en traitant d’abord : (i) le document XML document, et (ii) la clé publique du certificat ou du mot de passe, peu importe laquelle est soumise, et, deuxièmement, en comparant ce résultat avec la signature. Si le fichier XML est modifié après la signature, la vérification échouera. Dans XMLSpy , vous pouvez vérifier une signature utilisant la commande XML | vérification signature XML.

 

Les détails concernant la création et vérification des signatures dans XMLSpy sont décrits dans les sous-sections de cette section :

 

Créer des signatures XML

Vérifier des signatures XML

 

Comment les certificats sont utilisés dans les signatures XML

À être utilisés avec les signatures XML, les certificats doivent avoir une clé privée et une clé publique. La clé privée est utilisée pour créer la signature XML, la clé publique est utilisée pour vérifier la signature XML.

 

Dans un scénario typique, l'expéditeur d'un document XML a accès à la clé privée d'un certificat et crée la signature XML avec cette clé. Le destinataire du document accèdera la clé publique du certificat. Cet accès peut être des deux types : (i) L’expéditeur envoie l’information de la clé publique avec la signature ; (ii) le destinataire a accès à la version public-key du certificat utilisé par l’expéditeur.

 

Pour plus de détails concernant les certificats, voir la sous-section, Travailler avec des certificats.

 

Note : la fonction de Signature XML de XMLSpy prend en charge tous les algorithmes requis.

 

Validité du document XML

Si une signature XML est intégrée dans le document XML, un élément Signature dans l'espace de noms http://www.w3.org/2000/09/xmldsig# est ajouté au document XML. Pour que le document reste valide, conformément à un schéma, le schéma doit contenir les déclarations d'élément appropriées. XMLSpy enveloppe des signatures de deux manières :

 

Enveloppé : L'élément Signature est créé en tant que dernier élément enfant de l'élément racine (ou document).

Enveloppant: L'élément Signature est créé en tant que l'élément racine (ou document), et l'élément de document XML original est placé dans un élément enfant de l'élément de signature nommé Object.

 

Si vous ne souhaitez pas modifier le schéma du document XML, la signature XML peut être créée dans un fichier externe. Pour plus de détails, voir la description des options de placement dans la section Créer des signatures XML.

 

Ci-dessous, vous trouverez des extraits du Schéma XML qui montrent comment l'élément Signature d'une signature enveloppée peut être permise. Vous pouvez utiliser ces exemples en tant que guides pour modifier vos propres schémas.

 

Dans la première des deux listes ci-dessous, le Schéma de signatures XML est importé dans le schéma de l'utilisateur. Le schéma de signature XML est situé à l’adresse web : http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd

 

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

          xmlns:xsig="http://www.w3.org/2000/09/xmldsig#"

          elementFormDefault="qualified"

          attributeFormDefault="unqualified">

  <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"

             schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>

  <xs:element name="Root">

     <xs:complexType>

         <xs:sequence>

            <xs:element ref="FirstChildOfRoot"/>

            <xs:element ref="SecondChildOfRoot" minOccurs="0"/>

            <xs:element ref="ThirdChildOfRoot" minOccurs="0"/>

            <xs:element ref="xsig:Signature" minOccurs="0"/>

         </xs:sequence>

      </xs:complexType>

   </xs:element>

  ...

</xs:schema>

 

Une seconde option (liste ci-dessous) est d'ajouter un élément de caractère générique général qui fait correspondre tout élément depuis d'autres espaces de noms. La configuration de l'attribut processContents sur lax fait sauter le validateur sur cet élément —, parce qu'aucune déclaration de l'élément correspondant n'a été trouvé. Par conséquent, l'utilisateur n'a pas besoin de référencer le schéma de signatures XML. L'inconvénient de cette option, néanmoins, est que tout élément (pas seulement l'élément Signature) peut être ajouté à l'emplacement spécifique dans le document XML sans invalider le document XML.

 

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

          elementFormDefault="qualified"

          attributeFormDefault="unqualified">

  <xs:element name="Root">

     <xs:complexType>

         <xs:sequence>

            <xs:element ref="selection"/>

            <xs:element ref="newsitems" minOccurs="0"/>

            <xs:element ref="team" minOccurs="0"/>

            <xs:any namespace="##other" minOccurs="0" processContents="lax"/>

         </xs:sequence>

      </xs:complexType>

   </xs:element>

  ...

</xs:schema>

 

Spécifications W3C

Pour plus de détails concernant les signatures XML, voir les spécifications W3C pour les signatures XML sous https://www.w3.org/TR/xmldsig-core1/.

 

© 2018-2024 Altova GmbH