Traduction de la recommandation
XMLAdvanced Electronic Signatures (XAdES)
du 20 février 2003

Statut du document traduit

Références

Avertissement

Cette traduction d'un document du W3C n'est pas la version officielle en français : seul le document original en anglais a valeur de référence.

Bien qu'elle ait été vérifiée, la traduction peut comporter des erreurs.

Supports de la traduction

Les notes de traduction se présentent dans le texte sous deux formes :

  1. L'une explicite : traduction [NdT. translation]
  2. L'autre affiche la note au survol du pointeur : traduction

Les liens vers un document du W3C sont doublés vers une traduction quand elle existe :
un document du W3C→vf

Télécharger une archive

Cf. les archives disponibles pour les traductions hébergées sur ce site.

Les traductions des documents du W3C

Le World Wide Web Consortium tient un répertoire des traductions disponibles.

Notice légale

Copyright © 1994-2005 World Wide Web Consortium,
(Massachusetts Institute of Technology, European Research Consortium for Informatics and Mathematics, Keio University).
Tous droits réservés. Consulter la notice de copyright pour les productions du W3C.


W3C

Les signatures électroniques évoluées XML (XAdES)

Note du W3C du 20 février 2003

Cette version :
http://www.w3.org/TR/2003/NOTE-XAdES-20030220/
Dernière version :
http://www.w3.org/TR/XAdES/
Auteurs :
Juan Carlos Cruellas, UPC<cruellas@ac.upc.es>
Gregor Karlinger, IAIK<gregor.kerlinger@iaik.at>
Denis Pinkas, Bull<Denis.Pinkas@bull.net>
John Ross, Security and Standards<ross@secstan.com>
Rédacteurs :
Juan Carlos Cruellas, UPC<cruellas@ac.upc.es>
Gregor Karlinger, IAIK<gregor.kerlinger@iaik.at>
Krishna Sankar, Cisco<ksankar@cisco.com>
Contributeur :
Krishna Sankar, Cisco<ksankar@cisco.com>

Résumé

Cette note (XAdES) prolonge la spécification de la syntaxe et du traitement XML Signature de IETF/W3C [XMLDSIG] dans le domaine de la non-répudiation, en définissant des formats XML pour les signatures électroniques évoluées qui restent valides pendant de grandes périodes et sont conformes à la Directive 1999/93/EC du Parlement Européen et du Conseil du 13 décembre 1999 sur le cadre communautaire des signatures électroniques [EU-DIR-ESIG] (désigné également par la Directive ou la Directive Européenne dans la suite du présent document) et qui incorporent des informations supplémentaires utiles dans les situations d'utilisations courantes. Cela comprend la preuve de leur validité, même si le signataire ou le tiers vérifiant essayent ensuite de nier (répudier) la validité de la signature.

Une signature électronique évoluée en accord avec le présent document peut par conséquent être utilisée pour arbitrage en cas de litige entre le signataire et le vérificateur, litige qui peut survenir plus tard, éventuellement des années après.

Cette note ajoute six autres formes à [XMLDSIG]] :

Cette note articule également les rôles suivants et leurs responsabilités en ce qui concerne la validité de la signature :

Statut de ce document

Ce document est une soumission au World Wide Web Consortium présentée à l'activité du W3C sur XML Signature. Pour la liste complète de toutes les soumissions reçues, veuillez consulter Les soumissions reçues par le W3C.

Ce document est une note proposée par le W3C seulement pour un débat. La publication de cette note par le W3C ne signifie pas l'approbation du W3C ou de l'équipe concernée du W3C, ou de tous les membres du W3C. Le W3C n'exerce aucun contrôle de rédaction sur la préparation de cette note. Ce document est un travail en cours qui peut être mis à jour, remplacé ou rendu obsolète par d'autres documents à tout instant.

La note XAdES se fonde sur le contenu de la spécification technique TS 101 903 de l'ETSI : Les signatures électroniques évoluées XML (XAdES) [ESI-XAdES]. Elle a été produite par la section STF 178 des membres de l'ETSI et résulte de débats entre l'ETSI, l'ESI et les membres de l'équipe du W3C.

L'ETSI détient le copyright des documents qu'il publie. L'ETSI ne détient pas les droits de propriété intellectuelle, en tant que tels, sur les technologies décrites dans les documents. Les membres de l'ETSI peuvent détenir certains droits sur ces technologies. Néanmoins, aucun droit de propriété intellectuelle essentiel concernant les signatures électroniques n'a été signalé à l'ETSI.

On peut trouver la liste des documents techniques courants du W3C dans la page des rapports techniques.

Table des matières


1 Introduction

1.1 Aperçu

Le commerce électronique apparaît comme le nouveau moyen émergent pour mener des affaires entre les sociétés, que ce soit sur des réseaux locaux, étendus ou globaux. La confiance est essentielle pour la réalisation de ces affaires et pour le succès et le développement continu du commerce électronique. Il est donc important que les sociétés commerçant de cette façon puissent disposer de moyens de contrôle et de mécanismes de sécurité convenables pour protéger leurs transactions et établir des relations de confiance avec leurs partenaires commerciaux. Dans cette optique, la signature électronique représente un composant important de la sécurité pouvant servir à protéger les informations et à donner foi au commerce électronique.

La Directive Européenne [EU-DIR-ESIG] définit les signatures électroniques comme des données sous forme électronique, qui sont liées ou associées logiquement à d'autres données électroniques et qui servent de méthode d'authentification.

Le présent document est destiné à couvrir les signatures électroniques pour divers types de transactions, y compris les transactions commerciales (par exemple, les applications de demande d'approvisionnement, de contrat ou de facturation). On peut donc utiliser le présent document pour toutes transactions, entre un individu et une société, entre deux sociétés, entre un individu et un corps gouvernemental, etc.

Une signature électronique, produite conformément au présent document, fournit une indication qui peut être traitée afin d'obtenir l'assurance qu'un certain engagement a été pris explicitement, sous couvert d'une politique de signature, à un instant donné, par un signataire identifiable, par exemple, par un nom ou un pseudonyme, ou éventuellement un rôle. La politique de signature spécifie les conditions techniques et procédurales pour la création et la validation de la signature dans le but de satisfaire des besoins particuliers. Un contexte légal/contractuel donné peut reconnaître une politique de signature particulière comme satisfaisant à ses conditions. Par exemple, une politique de signature particulière peut être reconnue par une cour de justice comme satisfaisant aux exigences de la Directive Européeenne pour le commerce électronique.

La norme TS 101 733 ETSI [ESI] définit les formats des signatures électroniques évoluées qui restent valides pour de longues périodes, qui sont conformes à la Directive Européenne [EU-DIR-ESIG] et qui incorporent des informations utiles supplémentaires pour les situations d'utilisations courantes (comme l'indication de l'engagement obtenu par la production de la signature). Elle emploie actuellement la notation de syntaxe (ASN.1) et elle repose sur la structure définie dans le document RFC 2630 [CMS] (dans le présent document, les signatures qui obéissent à ce document RFC seront désignées comme étant des signatures [CMS]).

La norme TS 101 733 [ESI] :

  • définit les nouveaux types ASN.1 capables de contenir les informations pour la qualification des signatures [CMS] afin que celles-ci puissent satisfaire aux conditions ci-dessus ;

  • spécifie comment ces qualifications doivent être incorporées aux signatures [CMS].

Le groupe de travail IETF/W3C XML Signature a développé, à ce jour, une syntaxe pour les signatures XML : La syntaxe et le traitement XML Signature [XMLDSIG]. Cette syntaxe fournit les caractéristiques minimales permettant de signer numériquement et simultanément plusieurs objets-données. Elle fournit également les moyens essentiels permettant d'incorporer tous types d'informations de qualification nécessaires.

Le présent document définit les formats des signatures électroniques évoluées XML qui restent valides sur de longues périodes, sont conformes à la Directive Européenne [EU-DIR-ESIG] et incorporent des informations utiles supplémentaires dans les situations d'usages courants :

  • en proposant les définitions de schéma XML [XML-schema-part-1] [XML-schema-part-2] des nouveaux types XML capables de contenir les informations nécessaires pour remplir les conditions de validité à long terme et celles imposées par les situations d'usages courants et par la Directive Européenne [EU-DIR-ESIG] ;

  • en spécifiant les mécanismes permettant d'ajouter les informations de qualification mentionnées précédemment.

Le présent document spécifie deux types principaux de propriétés : les propriétés signées et celles qui ne le sont pas. Les premières sont des objets-données supplémentaires qui sont également protégés par la signature produite par le signataire sur l'élément ds:SignedInfo, ce qui implique que le signataire dispose de ces objets-données, calcule une empreinte pour chacun d'eux et génère l'élément ds:Reference correspondant. Les propriétés non signées sont des objets-données ajoutés par le signataire, par le vérificateur ou par des tiers après la production de la signature. Ces objets-donnés ne sont pas protégés par la signature dans l'élément ds:Signature (celui calculé par le signataire) ; toutefois, ils peuvent être en réalité signés par des tiers (les dates, les contre-signatures, les certificats et les réponses CRL sont également des objets-données signés).

1.2 La terminologie

Les expressions suivantes sont employées dans ce document, leur signification particulière étant indiquée dessous :

1.3 Les conventions d'écriture

Dans la suite de ce document, on utilisera les expressions informations de qualification, propriétés ou propriétés de qualification pour désigner les informations ajoutées à la signature [XMLDSIG] afin d'obtenir une signature électronique évoluée XML telle que décrite par ce document.

Dans ce document, les mots-clés DOI(VEN)T, NE DOI(VEN)T PAS, REQUIS, DEVRA, NE DEVRA PAS, DEVRAIT, NE DEVRAIT PAS, RECOMMANDÉ, PEUT et OPTIONNEL dans la spécification doivent s'interpréter comme décrit dans le document RFC2119 [Keywords] :

2 Les structures de données des signatures électroniques évoluées XML

Le présent document définit diverses formes de signatures électroniques, chacune d'elles remplissant les conditions indiquées dans les sections correspondantes.

La section courante présente les trois premières formes : la signature électronique évoluée XML (XAdES), la signature électronique évoluée XML avec date (XAdES-T) et la signature électronique évoluée XML avec données de validation complètes (XAdES-C). La section 2.2 Les formes étendues des données de validation introduit les formes étendues de la signature XAdES (XAdES-X et XAdES-X-L) qui satisfont à des conditions supplémentaires. Enfin, la section 2.3 Les données de validation des archives présente le format pour l'archivage des signatures de manière à les protéger quand les données cryptographiques deviendront vulnérables (XAdES-A).

Les trois premières formes sont les suivantes :

La signature XAdES satisfait aux obligations légales pour les signatures électroniques évoluées, telles que définies dans la Directive Européenne [EU-DIR-ESIG] pour les signatures électroniques. Elle offre une authentification et une protection de l'intégrité minimales et elle peut être créée sans accès à des services en-ligne (datation). Cependant, sans ajout d'une date ou d'un enregistrement chronologique protégés, la signature électronique ne prévient pas du risque que le signataire puisse nier ensuite avoir créé la signature électronique (c'est-à-dire, elle ne permet pas sa propre non-répudiation).

La date XAdES-T devrait être créée à un instant proche de celui de la création de la signature XAdES, pour offrir une protection contre la répudiation. Toutes les données nécessaires pour réaliser la validation ne seront peut-être pas disponibles à cet instant précis, mais toutes les informations qui le seraient peuvent être utilisées pour effectuer certaines vérifications initiales. Par exemple, seulement une partie des informations de révocation ne sera disponible pour une vérification à ce moment-là.

Le vérificateur doit obligatoirement gérer la signature XAdES-C dès qu'une vérification doit avoir lieu ensuite.

Le signataire devra fournir au moins une signature de la forme XAdES, cependant il peut, dans certains cas, fournir la forme XAdES-T et, en dernier recours, la forme XAdES-C. Si le signataire ne fournit pas la forme XAdES-T, le vérificateur devra soit créer la forme XAdES-T dès la première réception de la signature électronique, soit conserver un enregistrement protégé de l'heure courante accompagnant la forme XAdES. L'une ou l'autre approche fournit une preuve indépendante de l'existence de la signature à l'instant de sa première vérification, laquelle devrait être proche de sa date de création, et protège ainsi contre une répudiation ultérieure de l'existence de la signature. Si le signataire ne fournit pas la forme XAdES-C, le vérificateur devra créer la forme XAdES-C dès que l'ensemble complet des données de révocation et autres validations sera disponible. En général, la forme XAdES-C ne sera pas créée au même moment que la forme XAdES, car la capture d'éventuelles informations de révocation demandera forcément un certain délai. Également, si un certificat se présente et qu'il est suspendu temporairement, il sera nécessaire d'attendre jusqu'à la fin de la période de suspension.

Le signataire ne devrait créer la forme XAdES-C que dans les situations où il est prêt à patienter suffisamment, après la création de la forme XAdES, avant de distribuer la forme XAdES-C. Cela présente toutefois l'avantage que le vérificateur puisse recevoir l'ensemble complet des données constituant la validité de la signature XAdES.

La figure 1 présente une signature électronique évoluée XML.

Figure 1 can not be shown

Figure 1. Illustration d'une signature XAdES

On montre ci-dessous la structure de la signature XAdES construite par incorporation directe des informations de qualification dans les nouveaux éléments XML ajoutés à [XMLDSIG] (cf. la section 4.3 L'incorporation des propriétés de qualification dans une signature XML pour plus de détails). Dans l'exemple, un caractère ? indique zéro ou une occurrence, un + une ou plusieurs occurrences et un * zéro ou plus occurences.

Le schéma XML, dans la section 5 La syntaxe des propriétés de qualification définit le préfixe ds pour tous les éléments XML qui le sont déjà dans [XMLDSIG] et déclare comme espace de nommage par défaut celui défini pour le présent document. C'est pourquoi, dans les exemples de cette section, les éléments déjà définis dans [XMLDSIG] apparaissent avec le préfixe ds, alors que les nouveaux éléments XML, qui le sont dans ce document, apparaissent sans préfixe.

                              XMLDSIG 
                                   |
<ds:Signature ID?>- - - - - - - - -+- - - - -+
  <ds:SignedInfo>                  |         |
    <ds:CanonicalizationMethod/>   |         |
    <ds:SignatureMethod/>          |         |
    (<ds:Reference URI? >          |         |
      (<ds:Transforms>)?           |         |
      <ds:DigestMethod>            |         |
      <ds:DigestValue>             |         |
    </ds:Reference>)+              |         |
  </ds:SignedInfo>                 |         |
  <ds:SignatureValue>              |         |
  (<ds:KeyInfo>)?- - - - - - - - - +         |
                                             |
  <ds:Object>                                |
                                             |
    <QualifyingProperties>                   |
                                             |
      <SignedProperties>                     |
                                             |
        <SignedSignatureProperties>          |
          (SigningTime)                      |
          (SigningCertificate)               |
          (SignaturePolicyIdentifier)        |
          (SignatureProductionPlace)?        |
          (SignerRole)?                      |
        </SignedSignatureProperties>         |
                                             |
        <SignedDataObjectProperties>         |
          (DataObjectFormat)*                |
          (CommitmentTypeIndication)*        |
          (AllDataObjectsTimeStamp)*         |
          (IndividualDataObjectsTimeStamp)*  |
        </SignedDataObjectProperties>        |
                                             |
      </SignedProperties>                    |
                                             |
      <UnsignedProperties>                   |
                                             |
        <UnsignedSignatureProperties>        |
          (CounterSignature)*                |
        </UnsignedSignatureProperties>       |
                                             |
      </UnsignedProperties>                  |
                                             |
    </QualifyingProperties>                  |
                                             |
  </ds:Object>                               |
                                             |
</ds:Signature>- - - - - - - - - - - - - - - +
                                             |
                                         XAdES

Les lecteurs doivent tenir compte du fait que les formes XAdES se construisent à partir de la spécification [XMLDSIG] en ajoutant les nouveaux éléments XML, qui contiennent les informations de qualification, dans l'élément [XMLDSIG] ds:Object selon les règles définies par le présent document. Cet élément ds:Object se comporte comme un réceptacle pour l'ensemble entier des propriétés de qualification, définies dans le présent document, regroupées de manière commode.

On PEUT ajouter d'autres éléments [XMLDSIG] ds:Object avec des contenus différents dans la structure illustrée ci-dessus afin satisfaire à des exigences différentes de celles exprimées dans le présent document. Ceci s'applique également aux autres exemples concernant les structures des formes XAdES illustrées dans cette section.

On donnera des explications détaillées sur les objectifs de chaque propriété tout au long de la section 5 La syntaxe des propriétés de qualification.

La figure 2 montre une signature électronique évoluée XML (XAdES) avec les données supplémentaires qui constituent les formes XAdES-T et XAdES-C.

Figure 2 can not be shown

Figure 2. Illustration de signatures XAdES, XAdES-T et XAdES-C

La structure d'une signature XAdES-T est la suivante :

                              XMLDISG
                                  |
<ds:Signature ID?>- - - - - - - - +- - - - +- - - +
  <ds:SignedInfo>                 |        |      |
    <ds:CanonicalizationMethod/>  |        |      |
    <ds:SignatureMethod/>         |        |      |
    (<ds:Reference URI? >         |        |      |
      (<ds:Transforms>)?          |        |      |
      <ds:DigestMethod>           |        |      |
      <ds:DigestValue>            |        |      |
    </ds:Reference>)+             |        |      |
  </ds:SignedInfo>                |        |      |
  <ds:SignatureValue>             |        |      |
  (<ds:KeyInfo>)? - - - - - - - - +        |      |
                                           |      |
  <ds:Object>                              |      |
                                           |      |
    <QualifyingProperties>                 |      |
                                           |      |
      <SignedProperties>                   |      |
                                           |      |
        <SignedSignatureProperties>        |      |
          (SigningTime)                    |      |
          (SigningCertificate)             |      |
          (SignaturePolicyIdentifier)      |      |
          (SignatureProductionPlace)?      |      |
          (SignerRole)?                    |      |
        </SignedSignatureProperties>       |      |
                                           |      |
        <SignedDataObjectProperties>       |      |
          (DataObjectFormat)*              |      |
          (CommitmentTypeIndication)*      |      |
          (AllDataObjectsTimeStamp)*       |      |
          (IndividualDataObjectsTimeStamp)*|      |
        </SignedDataObjectProperties>      |      |
                                           |      |
      </SignedProperties>                  |      |
                                           |      |
      <UnSignedProperties>                 |      |
                                           |      |
        <UnsignedSignatureProperties>      |      |
          (CounterSignature)*- - - - - - - +      |
          (SignatureTimeStamp)+                   |
        </UnsignedSignatureProperties>- - -+      |
                                           |      |
      </UnsignedProperties>                |      |
                                           |      |
    </QualifyingProperties>                |      |
                                           |      |
  </ds:Object>                             |      |
                                           |      |
</ds:Signature>- - - - - - - - - - - - - - +- - - +
                                           |      |
                                       XAdES      |
                                                  |
                                            XAdES-T

La structure d'une signature XAdES-C est la suivante :

                             XMLDISG
                                  |
<ds:Signature ID?>- - - - - - - - +- - - - - - +-+-+
  <ds:SignedInfo>                 |            | | |
    <ds:CanonicalizationMethod/>  |            | | |
    <ds:SignatureMethod/>         |            | | |
   (<ds:Reference URI? >          |            | | |
      (<ds:Transforms>)?          |            | | |
      <ds:DigestMethod>           |            | | |
      <ds:DigestValue>            |            | | |
    </ds:Reference>)+             |            | | |
  </ds:SignedInfo>                |            | | |
  <ds:SignatureValue>             |            | | |
  (<ds:KeyInfo>)? - - - - - - - - +            | | |
                                               | | |
  <ds:Object>                                  | | |
                                               | | |
    <QualifyingProperties>                     | | |
                                               | | |
      <SignedProperties>                       | | |
                                               | | |
        <SignedSignatureProperties>            | | |
        (SigningTime)                          | | |
        (SigningCertificate)                   | | |
        (SignaturePolicyIdentifier)            | | |
        (SignatureProductionPlace)?            | | |
        (SignerRole)?                          | | |
      </SignedSignatureProperties>             | | |
                                               | | |
      <SignedDataObjectProperties>             | | |
        (DataObjectFormat)*                    | | |
        (CommitmentTypeIndication)*            | | |
        (AllDataObjectsTimeStamp)*             | | |
        (IndividualDataObjectsTimeStamp)*      | | |
      </SignedDataObjectProperties>            | | |
                                               | | |
      </SignedProperties>                      | | |
                                               | | |
      <UnsignedProperties>                     | | |
                                               | | |
        </UnsignedSignatureProperties>         | | |
          (CounterSignature)*- - - - - - - - - + | |
          (SignatureTimeStamp)+- - - - - - - - - + |
          (CompleteCertificateRefs)                |
          (CompleteRevocationRefs)                 |
        </UnsignedSignatureProperties>- - - -  +-+ |
                                               | | |
       </UnsignedProperties>                   | | |
                                               | | |
    </QualifyingProperties>                    | | |
                                               | | |
  </ds:Object>                                 | | |
                                               | | |
</ds:Signature>- - -  - - - - - - - - - - - - -+-+-+
                                               | | |
                                           XadES | |
                                                 | |
                                           XAdES-T |
                                                   |
                                             XAdES-C

2.1 Les contenus

2.1.1 Le contenu de la forme XAdES

Comme dit auparavant, une signature XAdES se construira à partir de [XMLDSIG] par incorporation d'un élément ds:Object qui se comportera comme le récipient pour l'ensemble entier des propriétés de qualification. Certaines d'entre elles seront signées (informations de qualification signées regroupées dans un nouvel élément SignedProperties — cf. la section 4.2.1 L'élément SignedProperties) et d'autres ne le seront pas (informations de qualification non signées regroupées dans l'élément UnsignedProperties — cf. la section 4.2.2 L'élément UnsignedProperties).

Dans la signature XAdES, la signature DEVRA s'appliquer à la manière habituelle de [XMLDSIG] sur le ou les objets-données à signer et sur le jeu entier des propriétés signées (élément SignedProperties). Les informations obligatoires dans l'élément SignedProperties sont :

  • une référence non équivoque au certificat du signataire, par exemple, le certificat lui-même ou bien une référence vers celui-ci accompagnée d'une empreinte numérique [NdT. hash value] du certificat. Ceci est particulièrement important quand le signataire détient un certain nombre de certificats différents contenant la même clé publique, pour éviter une réclamation du vérificateur au prétexte que la signature implique un autre certificat et une sémantique différente. Cela revêt également une importance, quand le signataire détient des certificats différents contenant des clés publiques différentes, lorsqu'il s'agit de fournir au vérificateur les données correctes pour la vérification de la signature. Finalement, c'est important encore lorsque la clé d'émission de l'autorité de certification fournissant le certificat était compromise (section 5.2.2 L'élément SigningCertificate) ;

  • un moyen non équivoque permettant l'identification de la politique de signature selon laquelle la signature électronique a été produite (section 5.2.3 L'élément SignaturePolicyIdentifier). Cela garantit que le vérificateur pourra utiliser la même politique de signature lors de la procédure de vérification. Une politique de signature est nécessaire pour éclairer le rôle et les engagements précis que le signataire a l'intention d'assumer vis-à-vis des objets-données signés, et pour éviter une réclamation du vérificateur au prétexte qu'une politique de signature différente était impliquée par le signataire ;

  • la date de signature, précisant l'heure à laquelle le signataire déclare avoir effectué l'opération de signature (section 5.2.1 L'élément SigningTime).

En outre, la signature peut aussi couvrir d'autres propriétés signées contenant les informations suivantes :

  • Le ou les formats de ou des objets-données, identifiant le format d'un objet-données signé (quand les signatures électroniques ne sont pas échangées dans un contexte restrictif), afin de permettre au vérificateur leur présentation ou leur utilisation (texte, son ou vidéo) de la manière exacte voulue par le signataire (section 5.2.5 L'élément DataObjectFormat) ;

  • Le(s) type(s) d'engagement pris par le signataire au travers de la signature d'un ou plusieurs objets-données signés dans le contexte de la politique de signature choisie (quand un engagement explicite est utilisé) ; ceci sera demandé quand une politique de signature spécifie plus d'un type d'engagement, chacun d'eux pouvant avoir des interprétations légales différentes sur la destination de la signature, par exemple, preuve d'origine, preuve de réception, preuve de création, etc. (section 5.2.6 L'élément CommitmentTypeIndication) ;

  • Le rôle déclaré, ou certifié, assumé par le signataire dans la création de la signature (section 5.2.8 L'élément SignerRole) ;

  • L'endroit où le signataire prétend avoir produit la signature (section 5.2.7 L'élément SignatureProductionPlace).

2.1.2 Le contenu de la forme XAdES-T

Le signataire ou le vérificateur peuvent construire une signature XAdES-T en ajoutant à la signature XAdES existante un élément XML (comme sous-élément de UnsignedProperties) (section 5.1.3 Le type de données EncapsulatedPKIDataType) qui encapsule une date sur la valeur de la signature numérique [XMLDSIG], générée par une autorité de datation comme preuve que la signature électronique est antérieure (section 5.3.1 L'élément SignatureTimeStamp).

2.1.3 Le contenu de la forme XAdES-C

Le signataire ou le vérificateur d'une signature électronique peut créer la forme XAdES-C en incorporant, à la forme XAdES-T, les références vers l'ensemble complet des données constituant sa validité (chemin de certification, listes de révocation de certificats, les réponses OCSP [OCSP], etc.). Le signataire ou le vérificateur créeront cette forme en incorporant ces références à la forme XAdES-T, dans un élément XML dont la définition est donnée dans le présent document (sections 5.4.1 L'élément CompleteCertificateRefs et 5.4.2 L'élément CompleteRevocationRefs). Cet élément s'ajoute comme sous-élément de UnsignedProperties.

2.2 Les formes étendues des données de validation

La totalité des données de validation (XAdES-C), décrites ci-dessus, peut être étendue pour former une signature avec données de validation étendues (XAdES-X) pour satisfaire aux exigences supplémentaires suivantes :

  • Premièrement, lorsqu'il existe un risque que l'une des clés employées dans la chaîne de certification ou dans les informations de révocation de statut puisse être compromise. Le cas diffère pour un algorithme craqué et sera abordé plus tard dans la forme archivée d'une signature électronique. Il est nécessaire de dater en outre toutes les références de chemin de certification et celles de révocation de statut, qui sont contenues dans la signature XAdES-C (cf. section 5.5.2 L'élément RefsOnlyTimeStamp). Sinon, on peut appliquer la date à la signature numérique (élément ds:Signature), à la (ou aux) date(s) présente(s) dans la forme XAdES-T et aux références mentionnées ci-dessus (cf. section 5.5.1 L'élément SigAndRefsTimeStamp).

  • Deuxièmement, lorsque les données de chemin de certification et celles de statut de révocation ne sont pas stockées ailleurs pour le long terme, il est nécessaire alors de les ajouter à la signature (XAdES-X-L).

Figure 3 can not be shown

Figure 3. Illustration de signatures XAdES-X et XAdES-X-L

Remarquez qu'il est possible d'omettre la date sur les références de chemin de certification et les références de statut de révocation tout en ajoutant les données de chemin de certification et les données de statut de révocation.

Les données de validation XAdES-X sont créées en ajoutant, à une signature XAdES-C générée antérieurement, une date sur les références vers l'ensemble complet des données constituant sa validité ou sur la séquence formée par l'élément ds:SignatureValue, la (ou les) date(s) présente(s) dans la forme XAdES-T et les références mentionnées ci-dessus. Encore une fois, cette nouvelle forme sera obtenue en ajoutant un élément XML qui encapsule commodément cette date (cf. les sections 5.5.1 L'élément SigAndRefsTimeStamp et 5.5.2 L'élément RefsOnlyTimeStamp). Cet élément s'ajoutera comme sous-élément de UnsignedProperties.

La signature XAdES-X-L sera produite en incorporant les informations de chemin de certification et de révocation (les réponses CRL ou OCSP) commodément encapsulées par des éléments XML (cf. les sections 5.6.1 L'élément CertificateValues et 5.6.2 L'élément RevocationValues). Ces éléments s'ajouteront comme sous-éléments de UnsignedProperties.

La structure d'une signature XAdES-X est la suivante :

                                XMLDISG
                                  |
<ds:Signature ID?>- - - - - - - - +- - - - - - +-+-+-+
  <ds:SignedInfo>                 |            | | | |
    <ds:CanonicalizationMethod/>  |            | | | |
    <ds:SignatureMethod/>         |            | | | |
    (<ds:Reference URI? >         |            | | | |
      (<ds:Transforms>)?          |            | | | |
      <ds:DigestMethod>           |            | | | |
      <ds:DigestValue>            |            | | | |
    </ds:Reference>)+             |            | | | |
  </ds:SignedInfo>                |            | | | |
  <ds:SignatureValue>             |            | | | |
  (<ds:KeyInfo>)? - - - - - - - - +            | | | |
                                               | | | |
  <ds:Object>                                  | | | |
                                               | | | |
    <QualifyingProperties>                     | | | |
                                               | | | |
      <SignedProperties>                       | | | |
                                               | | | |
        <SignedSignatureProperties>            | | | |
          (SigningTime)                        | | | |
          (SigningCertificate)                 | | | |
          (SignaturePolicyIdentifier)          | | | |
          (SignatureProductionPlace)?          | | | |
          (SignerRole)?                        | | | |
        </SignedSignatureProperties>           | | | |
                                               | | | |
        <SignedDataObjectProperties>           | | | |
          (DataObjectFormat)*                  | | | |
          (CommitmentTypeIndication)*          | | | |
          (AllDataObjectsTimeStamp)*           | | | |
          (IndividualDataObjectsTimeStamp)*    | | | |
        </SignedDataObjectPropertiesSigned>    | | | |
                                               | | | |
      </SignedProperties>                      | | | |
                                               | | | |
      <UnsignedProperties>                     | | | |
                                               | | | |
        </UnsignedSignatureProperties>         | | | |
          (CounterSignature)*- - - - - - - - - + | | |
          (SignatureTimeStamp)+- - - - - - - -   + | |
          (CompleteCertificateRefs)                | |
          (CompleteRevocationRefs)- - - - - - - - -+ |
          ((SigAndRefsTimeStamp)* |                  |
          (RefsOnlyTimeStamp)*)                      |
        </UnsignedSignatureProperties>- - - - -+-+-+ |
                                               | | | |
      </UnsignedProperties>                    | | | |
                                               | | | |
    </QualifyingProperties>                    | | | |
                                               | | | |
  </ds:Object>                                 | | | |
</ds:Signature>- - - - - - - - - - - - - - - - +-+-+-+
                                               | | | |
                                           XAdES | | |
                                                 | | |
                                           XAdES-T | |
                                                   | |
                                             XAdES-C |
                                                     |
                                               XAdES-X

La structure d'une signature XAdES-X-L est montrée ci-dessous.

                                XMLDISG
                                  |
<ds:Signature ID?>- - - - - - - - +- - - - - +-+-+-+-+
  <ds:SignedInfo>                 |          | | | | |
    <ds:CanonicalizationMethod/>  |          | | | | |
    <ds:SignatureMethod/>         |          | | | | |
    (<ds:Reference URI? >         |          | | | | |
      (<ds:Transforms>)?          |          | | | | |
      <ds:DigestMethod>           |          | | | | |
      <ds:DigestValue>            |          | | | | |
    </ds:Reference>)+             |          | | | | |
  </ds:SignedInfo>                |          | | | | |
  <ds:SignatureValue>             |          | | | | |
  (<ds:KeyInfo>)?  - - - - - - - -+          | | | | |
                                             | | | | |
  <ds:Object>                                | | | | |
                                             | | | | |
    <QualifyingProperties>                   | | | | |
                                             | | | | |
      <SignedProperties>                     | | | | |
                                             | | | | |
        <SignedSignatureProperties>          | | | | |
          (SigningTime)                      | | | | |
          (SigningCertificate)               | | | | |
          (SignaturePolicyIdentifier)        | | | | |
          (SignatureProductionPlace)?        | | | | |
          (SignerRole)?                      | | | | |
        </SignedSignatureProperties>         | | | | |
                                             | | | | |
        <SignedDataObjectProperties>         | | | | |
          (DataObjectFormat)*                | | | | |
          (CommitmentTypeIndication)*        | | | | |
          (AllDataObjectsTimeStamp)*         | | | | |
          (IndividualDataObjectsTimeStamp)*  | | | | |
        </SignedDataObjectPropertiesSigned>  | | | | |
                                             | | | | |
      </SignedProperties>                    | | | | |
                                             | | | | |
      <UnsignedProperties>                   | | | | |
                                             | | | | |
        </UnsignedSignatureProperties>       | | | | |
          (CounterSignature)*- - - - - - - - + | | | |
          (SignatureTimeStamp)+- - - - - - - - + | | |
          (CompleteCertificateRefs)              | | |
          (CompleteRevocationRefs)- - - - - - - -+ | |
          ((SigAndRefsTimeStamp)*  |               | |
          (RefsOnlyTimeStamp)*)- - - - - - - - - - + |
          (CertificatesValues)                       |
          (RevocationValues)                         |
        </UnsignedSignatureProperties>- - - -+-+-+-+ |
                                             | | | | |
      </UnsignedProperties>                  | | | | |
                                             | | | | |
    </QualifyingProperties>                  | | | | |
                                             | | | | |
  </ds:Object>                               | | | | |
</ds:Signature>- - - - - - - - - - - - - - - +-+-+-+-+
                                             | | | | |
                                         XAdES | | | |
                                               | | | |
                                         XAdES-T | | |
                                                 | | |
                                           XAdES-C | |
                                                   | |
                                             XAdES-X |
                                                     |
                                              XAdES-X-L

2.3 Les données de validation des archives

La signature XAdES-X-L devrait être datée avant que les algorithmes, les clés et les autres données cryptographiques employés au moment où la signature XAdES-C a été construite ne se révèlent faibles et que les fonctions cryptographiques ne deviennent vulnérables. Cette datation devrait, si possible, faire appel à des algorithmes plus forts (ou des longueurs de clé plus grandes) que ceux des dates originales. On appelle ces données et dates supplémentaires les données de validation des archives (XAdES-A). L'opération de datation peut se réitérer à chaque fois que la protection de la datation antérieure d'une signature XAdES-A s'affaiblira. (Une signature XAdES-A peut donc comporter plusieurs dates imbriquées).

La gestion de la forme XAdES-A est optionnelle.

La figure 4 montre un exemple de signature électronique évoluée XML (XAdES), avec les données de validation supplémentaires pour les formes XAdES-C et XAdES-X-L datées, formant la signature XAdES-A.

Figure 4 can not be shown

Figure 4. Illustration d'une signature XAdES-A

La structure d'une signature XAdES-A est la suivante :

                                XMLDISG
                                  |
<ds:Signature ID?>- - - - - - - - +- - - - - +-+-+-+-+-+
  <ds:SignedInfo>                 |          | | | | | |
    <ds:CanonicalizationMethod/>  |          | | | | | |
    <ds:SignatureMethod/>         |          | | | | | |
    (<ds:Reference (URI=)? >      |          | | | | | |
      (<ds:Transforms>)?          |          | | | | | |
      <ds:DigestMethod>           |          | | | | | |
      <ds:DigestValue>            |          | | | | | |
    </ds:Reference>)+             |          | | | | | |
  </ds:SignedInfo>                |          | | | | | |
  <ds:SignatureValue>             |          | | | | | |
  (<ds:KeyInfo>)? - - - - - - - - +          | | | | | |
  <ds:Object>                                | | | | | |
                                             | | | | | |
    <QualifyingProperties>                   | | | | | |
                                             | | | | | |
      <SignedProperties>                     | | | | | |
                                             | | | | | |
        <SignedSignatureProperties>          | | | | | |
          (SigningTime)                      | | | | | |
          (SigningCertificate)               | | | | | |
          (SignaturePolicyIdentifier)        | | | | | |
          (SignatureProductionPlace)?        | | | | | |
          (SignerRole)?                      | | | | | |
        </SignedSignatureProperties>         | | | | | |
                                             | | | | | |
        <SignedDataObjectProperties>         | | | | | |
          (DataObjectFormat)*                | | | | | |
          (CommitmentTypeIndication)*        | | | | | |
          (AllDataObjectsTimeStamp)*         | | | | | |
          (IndividualDataObjectsTimeStamp)*  | | | | | |
        </SignedDataObjectPropertiesSigned>  | | | | | |
                                             | | | | | |
      </SignedProperties>                    | | | | | |
                                             | | | | | |
      <UnsignedProperties>                   | | | | | |
                                             | | | | | |
        </UnsignedSignatureProperties>       | | | | | |
          (CounterSignature)*- - - - - - - - + | | | | |
          (SignatureTimeStamp)+- - - - - - - - + | | | |
          (CompleteCertificateRefs)              | | | |
          (CompleteRevocationRefs)- - - - - - - -+ | | |
          ((SigAndRefsTimeStamp)*  |               | | |
          (RefsOnlyTimeStamp)*)- - - - - - - - - - + | |
          (CertificatesValues)                       | |
          (RevocationValues)- - - - - - - - - - - - -+ |
          (ArchiveTimeStamp)+                          |
        </UnsignedSignatureProperties>- - - -+-+-+-+-+ |
                                             | | | | | |
      </UnsignedProperties>                  | | | | | |
                                             | | | | | |
    </QualifyingProperties>                  | | | | | |
                                             | | | | | |
  </ds:Object>                               | | | | | |
                                             | | | | | |
</ds:Signature>- - - - - - - - - - - - - - - +-+-+-+-+-+
                                             | | | | | |
                                         XAdES | | | | |
                                               | | | | |
                                         XAdES-T | | | |
                                                 | | | |
                                           XAdES-C | | |
                                                   | | |
                                             XAdES-X | |
                                                     | |
                                             XAdES-X-L |
                                                       |
                                                 XAdES-A

Cette forme sera produite en ajoutant, à la signature XAdES-X-L, des éléments XML contenant des dates commodément encapsulées. Les dates seront calculées sur les données à l'intérieur de la structure antérieure : XAdES-X-L pour la première, puis XAdES-X-L plus d'autres dates pour les suivantes (cf. section 5.7.1 L'élément ArchiveTimeStamp). Ces éléments s'ajouteront comme sous-éléments de UnsignedProperties.

3 L'espace de nommage XML pour le présent document

L'adresse URI de l'espace de nommage XML que les mises en œuvres de ce document doivent utiliser est la suivante :

http://uri.etsi.org/01903/v1.1.1#

Les déclarations d'espaces de nommage suivantes s'appliquent aux définitions de schéma XML pour le présent document :

<?xml version="1.0"?>
<schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns="http://uri.etsi.org/01903/v1.1.1#"
  targetNamespace="http://uri.etsi.org/01903/v1.1.1#"
  xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
  elementFormDefault="qualified"
>

4 Aperçu de la syntaxe

Cette section introduit la syntaxe concernant l'ajout d'informations de qualification à une signature XML.

La section 4.1 Les critères techniques liste un ensemble de critères techniques qui ont été pris en compte pour cette proposition de syntaxe.

La section 4.2 L'élément QualifyingProperties spécifie un élément XML qui se comporte comme un conteneur pour les informations de qualification. En outre, elle décrit le rapport entre la signature XML et cet élément conteneur.

La section 4.3 L'incorporation des propriétés de qualification dans une signature XML montre deux façons d'incorporer ces informations de qualification dans une signature [XMLDSIG].

4.1 Les critères techniques

Les considérations suivantes ont été prises en compte pour la spécification de la syntaxe des informations de qualification sur les signatures XML :

  • Le présent document spécifie comment ajouter des informations de qualification à une signature XML, de sorte que celle-ci satisfasse à la fois aux exigences d'une signature électronique évoluée, selon la Directive Européenne [EU-DIR-ESIG], et qu'elle reste valide sur une grande période de temps. La norme TS 101 733 [ESI] identifie toutes les informations nécessaires qu'il faut ajouter pour satisfaire à ces conditions. En outre, elle définit les structures de données adéquates pour ces propriétés de qualification, en utilisant la notation ASN.1 convenant aux signatures électroniques [CMS]. Le but du présent document est de spécifier les propriétés de qualification XML similaires qui transportent ces informations de qualification et qui amendent la spécification [XMLDSIG].

  • Les nouvelles propriétés de qualification XML ne devraient pas être le résultat d'un processus se bornant à une traduction de ASN.1 vers XML. Cela impliquerait de négliger les différences syntaxiques entre les signatures [CMS] et [XMLDSIG], tels que le nombre des signataires possibles et les multiples objets-données signés couverts par une seule signature, tout comme d'ignorer les fonctionnalités puissantes de l'environnement XML, telle que la liaison des informations au moyen d'identificateurs de ressources uniformes [URI].

  • Le langage XML Schema [XML-schema-part-1] [XML-schema-part-2] a été choisi comme langage normatif pour la définition des nouvelles structures XML dans ce document plutôt que le vocabulaire de la définition de type de document (DTD) défini dans XML 1.0 [XML], car le premier reconnaît les espaces de nommage, permet de réutiliser les structures existantes et permet de définir plus strictement les contenus autorisés. Toutefois, on fournit une définition DTD des nouvelles structures XML dans une annexe informative du présent document.

  • Les structures XML définies dans des normes XML apparentées, telles que dans les spécifications XML Schema [XML-schema-part-2] et la syntaxe et le traitement XML Signature [XMLDSIG], ont été réutilisées quand cela était nécessaire.

4.2 L'élément QualifyingProperties

L'élément QualifyingProperties se comporte comme un conteneur pour toutes les informations de qualification à ajouter à une signature XML. Cet élément a la structure suivante :

<xsd:element name="QualifyingProperties" type="QualifyingPropertiesType"/>
<xsd:complexType name="QualifyingPropertiesType">
  <xsd:sequence>
    <xsd:element name="SignedProperties" type="SignedPropertiesType"
      minOccurs="0"/>
    <xsd:element name="UnsignedProperties" type="UnsignedPropertiesType"
      minOccurs="0"/>
  </xsd:sequence>
  <xsd:attribute name="Target" type="xsd:anyURI" use="required"/>
  <xsd:attribute name="Id" type="xsd:ID" use="optional"/>
</xsd:complexType>

Les propriétés de qualification se répartissent en propriétés cryptographiquement liées à (c'est-à-dire, signées par) la signature XML (SignedProperties ) et en celles qui ne sont pas cryptographiquement liées à la signature XML (UnsignedProperties).

L'élément SignedProperties doit être couvert par un élément Reference de la signature XML. Pour être conforme au présent document, l'élément SignedProperties DOIT exister.

L'attribut obligatoire Target se rapporte à la signature XML à laquelle les propriétés de qualification sont associées.

L'attribut optionnel Id peut servir à établir une référence à un élément conteneur QualifyingProperties.

4.2.1 L'élément SignedProperties

L'élément SignedProperties contient un certain nombre de propriétés qui sont collectivement signées par la signature [XMLDSIG].

Pour être conforme au présent document, l'élément SignedSignatureProperties DOIT apparaître.

La définition de schéma de l'élément SignedProperties est la suivante :

<xsd:element name="SignedProperties" type="SignedPropertiesType" />
<xsd:complexType name="SignedPropertiesType">
  <xsd:sequence>
    <xsd:element name="SignedSignatureProperties"
      type="SignedSignaturePropertiesType"/>
      <xsd:element name="SignedDataObjectProperties" 
        type="SignedDataObjectPropertiesType" minOccurs="0"/>
  </xsd:sequence>
  <xsd:attribute name="Id" type="xsd:ID" use="optional"/>
</xsd:complexType>

L'élément SignedProperties DOIT contenir des propriétés qui qualifient la signature [XMLDSIG] en question ou bien le signataire. Elles sont incluses en contenu de l'élément SignedSignatureProperties.

L'élément SignedProperties PEUT aussi contenir des propriétés qui qualifient certains des objets-donnés signés. Ces propriétés apparaissent en contenu de l'élément SignedDataObjectProperties.

L'attribut optionnel Id peut servir à établir une référence à l'élément SignedProperties.

4.2.2 L'élément UnsignedProperties

L'élément UnsignedProperties contient un certain nombre de propriétés qui ne sont pas signées par la signature [XMLDSIG].

<xsd:element name="UnsignedProperties" type="UnsignedPropertiesType" />
  <xsd:complexType name="UnsignedPropertiesType">
    <xsd:sequence>
      <xsd:element name="UnsignedSignatureProperties" 
        type="UnsignedSignaturePropertiesType" minOccurs="0"/>
        <xsd:element name="UnsignedDataObjectProperties" 
          type="UnsignedDataObjectPropertiesType" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="Id" type="xsd:ID" use="optional"/>
  </xsd:complexType>

L'élément UnsignedProperties PEUT contenir des propriétés qui qualifient la signature XML en question ou bien le signataire. Elles sont incluses en contenu de l'élément UnsignedSignatureProperties.

L'élément UnsignedProperties PEUT aussi contenir des propriétés qui qualifient certains des objets-données signés. Ces propriétés apparaissent en contenu de l'élément UnsignedDataObjectProperties.

L'attribut optionnel Id peut servir à établir une référence à l'élément UnsignedProperties.

4.2.3 L'élément SignedSignatureProperties

Cet élément contient des propriétés qui qualifient la signature XML spécifiée par l'attribut Target de l'élément conteneur QualifyingProperties.

<xsd:element name="SignedSignatureProperties"   type="SignedSignaturePropertiesType" />

<xsd:complexType name="SignedSignaturePropertiesType">
  <xsd:sequence>
    <xsd:element name="SigningTime" type="xsd:dateTime"/>
    <xsd:element name="SigningCertificate" type="CertIDListType"/>
    <xsd:element name="SignaturePolicyIdentifer" 
     type="SignaturePolicyIdentifierType"/>
    <xsd:element name="SignatureProductionPlace" type="SignatureProductionPlaceType" 
     minOccurs="0"/>
    <xsd:element name="SignerRole" type="SignerRoleType" minOccurs="0"/>
  </xsd:sequence>
</xsd:complexType>

La propriété de qualification SigningTime est décrite en détails dans la section 5.2.1 L'élément SigningTime, la propriété SigningCertificate dans la section 5.2.2 L'élément SigningCertificate, SignaturePolicyIdentifier dans la section 5.2.3 L'élément SignaturePolicyIdentifier, SignatureProductionPlace dans la section 5.2.7 L'élément SignatureProductionPlace element et SignerRole dans la section 5.2.8 L'élément SignerRole.

4.2.4 L'élément SignedDataObjectProperties

Cet élément contient des propriétés qui qualifient certains des objets-données signés.

<xsd:element name="SignedDataObjectProperties"   type="SignedDataObjectPropertiesType"/>

<xsd:complexType name="SignedDataObjectPropertiesType">
  <xsd:sequence>
    <xsd:element name="DataObjectFormat" type="DataObjectFormatType" 
      minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element name="CommitmentTypeIndication" 
      type="CommitmentTypeIndicationType" minOccurs="0" 
      maxOccurs="unbounded"/>
    <xsd:element name="AllDataObjectsTimeStamp" type="TimeStampType" 
      minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element name="IndividualDataObjectsTimeStamp" type="TimeStampType" 
      minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
</xsd:complexType>

La propriété de qualification AllDataObjectsTimeStamp est décrite en détails dans la section 5.2.9 L'élément AllDataObjectsTimeStamp, la propriété IndividualDataObjectsTimeStamp dans la section 5.2.10 L'élément IndividualDataObjectsTimeStamp, DataObjectFormat dans la section 5.2.5 L'élément DataObjectFormat et CommitmentTypeIndication dans la section 5.2.6 L'élément CommitmentTypeIndication.

Toutes ces propriétés qualifient l'objet-données signé après que toutes les transformations obligatoires ont été effectuées.

4.2.5 L'élément UnsignedSignatureProperties

Cet élément contient des propriétés qui qualifient la signature XML spécifiée par l'attribut Target de l'élément conteneur QualifyingProperties. Le contenu de cet élément n'est pas couvert par la signature XML.

<xsd:element name="UnsignedSignatureProperties"   type="UnsignedSignaturePropertiesType"/>

<xsd:complexType name="UnsignedSignaturePropertiesType">
  <xsd:sequence>
    <xsd:element name="CounterSignature" type="CounterSignatureType" 
      minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element name="SignatureTimeStamp" type="TimeStampType" 
      minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element name="CompleteCertificateRefs" 
      type="CompleteCertificateRefsType" minOccurs="0"/>
    <xsd:element name="CompleteRevocationRefs" 
      type="CompleteRevocationRefsType" minOccurs="0"/>
    <xsd:choice>
      <xsd:element name="SigAndRefsTimeStamp" type="TimeStampType" 
        minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="RefsOnlyTimeStamp" type="TimeStampType" 
        minOccurs="0" maxOccurs="unbounded"/>
    </xsd:choice>
    <xsd:element name="CertificateValues" type="CertificateValuesType" 
      minOccurs="0"/>
    <xsd:element name="RevocationValues" type="RevocationValuesType" 
      minOccurs="0"/>
    <xsd:element name="ArchiveTimeStamp" type="TimeStampType" 
      minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
  </xsd:complexType>

La propriété de qualification CounterSignature est décrite en détails dans la section 5.2.4 L'élément CounterSignature, la propriété SignatureTimeStamp dans la section 5.3.1 L'élément SignatureTimeStamp, CompleteCertificateRefs dans la section 5.4.1 L'élément CompleteCertificateRefs, CompleteRevocationRefs dans la section 5.4.2 L'élément CompleteRevocationRefs, SigAndRefsTimeStamp dans la section 5.5.1 L'élément SigAndRefsTimeStamp, RefsOnlyTimeStamp dans la section 5.5.2 L'élément RefsOnlyTimeStamp, CertificateValues dans la section 5.6.1 L'élément CertificateValues, RevocationValues dans la section 5.6.2 L'élément RevocationValues et ArchiveTimeStamp dans la section 5.7.1 L'élément ArchiveTimeStamp.

4.2.6 L'élément UnsignedDataObjectProperties

Cet élément contient des propriétés qui qualifient certains des objets-données signées. La signature générée par le signataire ne couvre pas le contenu de cet élément.

<xsd:element name="UnsignedDataObjectProperties" type="UnsignedDataObjectPropertiesType" />

<xsd:complexType name="UnsignedDataObjectPropertiesType">
  <xsd:sequence>
    <xsd:element name="UnsignedDataObjectProperty" type="AnyType" 
      minOccurs="0" maxOccurs="unbounded"/>
  </xsd:sequence>
</xsd:complexType>

La norme TS 101 733 [ESI] ne définit aucun usage pour une quelconque propriété non signée qualifiant l'objet-données signé. Le présent document incorpore pourtant un tel élément par souci d'exhaustivité et pour tenir compte de besoins potentiels futurs pour inclure ces types de propriétés. La définition de schéma laisse ouverte la définition des contenus de ce type. Le type AnyType est défini dans la section 5.1.1 Le type de données AnyType.

4.3 L'incorporation des propriétés de qualification dans une signature XML

Le présent document fait appel à l'élément auxilliaire ds:Object de la spécification [XMLDSIG]. On DOIT l'utiliser pour incorporer les propriétésf de qualification dans la signature [XMLDSIG]. En principe, deux moyens différents sont proposés pour cette incorporation :

  • l'incorporation directe, qui signifie que l'élément QualifyingProperties est placé comme sous-élément de l'élément ds:Object ;

  • l'incorporation indirecte, qui signifie qu'un élément QualifyingPropertiesReference est placé comme sous-élément de l'élément ds:Object. Cet élément contient des informations sur un élément QualifyingProperties qui est stocké à un endroit différent de celui de la signature (cf. la section 4.3.2 L'élément QualifyingPropertiesReference).

Cependant, les restrictions suivantes s'appliquent concernant l'utilisation des éléments ds:Object, QualifyingProperties et QualifyingPropertiesReference :

  • toutes les instances des éléments QualifyingProperties et QualifyingPropertiesReference DOIVENT apparaître dans un seul élément ds:Object ;

  • une seule instance au plus de l'élément QualifyingProperties peut apparaître dans cet unique élément ds:Object ;

  • toutes les propriétés signées doivent apparaître dans un seul élément QualifyingProperties. Cet élément peut soit être un sous-élément de l'élément ds:Object (incorporation directe), soit être appelé par un élément QualifyingPropertiesReference. Voir la section 4.3.1 L'élément SigningProperties pour des informations sur la façon de signer les propriétés ;

  • zéro instance (ou plus) de l'élément QualifyingPropertiesReference peut apparaître dans un seul élément ds:Object.

Ce document ne définit pas les mécanismes nécessaires pour garantir le stockage correct des éléments QualifyingProperties distribués (c'est-à-dire que les propriétés sont stockées par l'entité chargée de le faire et que celles-ci ne doivent pas être indétectables si elles sont modifiées).

4.3.1 L'élément SigningProperties

Comme dit auparavant, toutes les propriétés à protéger par la signature doivent être rassemblées dans une seule instance de l'élément QualifyingProperties. En réalité, ces propriétés sont les sous-éléments du sous-élément SignedProperties de cet élément.

Pour protéger les propriétés avec la signature, on doit ajouter un élément ds:Reference à la signature [XMLDSIG]. Cet élément ds:Reference DOIT être composé de telle sorte qu'il utilise l'élément SignedProperties, mentionné ci-dessus, comme entrée [NdT. input] du calcul de l'empreinte numérique [NdT. digest] qui lui correspond.

En outre, le présent document IMPOSE d'utiliser l'attribut Type de cet élément ds:Reference en question, dont la valeur est :

http://uri.etsi.org/01903/v1.1.1#SignedProperties

Cette valeur indique que les données utilisées pour le calcul de l'empreinte numérique représentent un élément SignedProperties, ce qui aide l'application de vérification à détecter les propriétés signées d'une signature conforme au présent document.

Si l'élément QualifyingProperties contenant l'élément SignedProperties est stocké à un endroit différent de celui de la signature (incorporation indirecte), le résultat du traitement de l'adresse URI et des transformations dans cet élément ds:Reference doit être le même que le résultat du traitement de l'adresse URI et des transformations dans l'élément QualifyingPropertiesReference, qui pointe vers l'élément QualifyingProperties mentionné précédemment.

4.3.2 L'élément QualifyingPropertiesReference

Cet élément contient des informations sur un élément QualifyingProperties qui est stoké à un endroit différent de celui de la signature, par exemple, dans un autre document XML.

<xsd:element name="QualifyingPropertiesReference"   type="QualifyingPropertiesReferenceType"/>

<xsd:complexType name="QualifyingPropertiesReferenceType">
  <xsd:sequence>
    <xsd:element name="Transforms" type="ds:TransformsType" minOccurs="0"/>
  </xsd:sequence>
  <xsd:attribute name="URI" type="xsd:anyURI" use="required"/>
  <xsd:attribute name="Id" type="xsd:ID" use="optional"/>
</xsd:complexType>

L'attribut obligatoire URI fournit un identificateur pour la localisation de l'élément QualifyingProperties. Ceci pourrait être, par exemple, une adresse URL vers un site Web où récupérer des informations ou bien un nom auquel les applications participantes peuvent recourir pour identifier un élément QualifyingProperties particulier.

L'élément optionnel ds:Transforms peut servir à spécifier une chaîne de transformations à appliquer aux données référencées par l'attribut URI afin d'obtenir la représentation effective de l'élément QualifyingProperties. Le modèle de traitement pour la chaîne de transformations est défini dans la section 4.3.3.2 Le modèle de traitement des références de la spécification [XMLDSIG].

L'attribut optionnel Id peut servir à établir une référence à l'élément QualifyingPropertiesReference.

5 La syntaxe des propriétés de qualification

La section 5.1 La syntaxe auxilliaire réunit un ensemble de structures auxilliaires qui seront nécessaires par la suite, tandis que chacune des sections restantes correspond à une propriété de qualification particulière.

La section 5.2 La syntaxe de la forme XAdES décrit en détails les propriétés de qualification qui peuvent apparaître dans les formes de signature électronique XAdES, comme décrit dans la section 4 Aperçu de la syntaxe.

La section 5.3 La syntaxe de la forme XAdES-T décrit en détails les propriétés de qualification qui peuvent apparaître dans les formes de signature électronique XAdES-T, comme décrit dans la section 4 Aperçu de la syntaxe.

La section 5.4 La syntaxe de la forme XAdES-C décrit en détails les propriétés de qualification, appliquées aux données de validation, qui peuvent apparaître dans la forme XAdES-C.

La section 5.5 La syntaxe de la forme XAdES-X décrit en détails les propriétés de qualification, appliquées aux différentes dates, qui peuvent apparaître dans la forme XAdES-X.

La section 5.6 La syntaxe de la forme XAdES-X-L décrit en détails les propriétés de qualification, appliquées aux données de validation, qui peuvent apparaître dans la forme XAdES-X-L.

Enfin, la section 5.7 La syntaxe de la forme XAdES-A décrit en détails les propriétés de qualification, appliquées aux différentes dates, qui peuvent apparaître dans la forme XAdES-A.

5.1 La syntaxe auxilliaire

Les trois structures XML auxilliaires suivantes servent à plusieurs reprises pour les autres sections.

5.1.1 Le type de données AnyType

Le type de données de schéma AnyType suit un modèle de contenu qui autorise une séquence d'éléments XML arbitraires, de longueur illimitée. En outre, un élément de ce type de données peut porter un nombre illimité d'attributs arbitraires. On l'utilise dans le reste de cette section toutes les fois où le contenu d'un élément XML est laissé libre.

<xsd:complexType name="AnyType" mixed="true">  
  <xsd:sequence>
    <xsd:any namespace="##any"/>
  </xsd:sequence>
  <xsd:anyAttribute namespace="##any"/>
</xsd:complexType>

5.1.2 Le type de données ObjectIdentifierType

Le type de données ObjectIdentifierType peut servir à identifier un objet-données particulier.

Il permet la spécification de l'identificateur unique et permanent d'un objet. En outre, on peut y trouver une description textuelle de la nature de l'objet-données et un certain nombre de références vers des documents avec d'autres informations sur la nature de l'objet-données.

<xsd:complexType name="ObjectIdentifierType">
  <xsd:sequence>
    <xsd:element name="Identifier" type="xsd:anyURI"/>
    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
    <xsd:element name="DocumentationReferences"
      type="DocumentationReferencesType" minOccurs="0"/>
  </xsd:sequence>
</xsd:complexType>

L'élément Identifier contient un identificateur permanent. Une fois assigné, l'identificateur ne peut plus l'être à nouveau. Il gère à la fois le mécanisme utilisé pour identifier les objets en ASN.1 et celui qui est habituellement utilisé pour identifier les objets dans un environnement XML :

  • En ASN.1, on utilise un identificateur d'objet (OID) pour identifier un objet. Pour coder un identificateur OID en utilisant le type ObjectIdentifierType, l'élément Identifier DOIT contenir l'identificateur OID sous la forme d'un nom de ressource uniforme (URN) [URN-OID], selon la façon définie par le document RFC3061. On PEUT donner une représentation textuelle qui permet aux humains de mieux comprendre la destination de l'identificateur OID en recourant à l'élément Description. Le présent document ne suggère aucun format particulier pour une telle représentation textuelle ;

  • Dans un environnement XML, les objets sont typiquement identifiés au moyen d'adresses URI [URI]. Pour coder une telle adresse URI en se servant du type ObjectIdentifierType, on DOIT utiliser l'élément Identifier.

    Remarquez que, puisqu'une telle adresse URI repésente un identificateur PERMANENT, on devrait la choisir soigneusement. Par exemple, si un domaine cesse d'exister, cela invalidera également tous les identificateurs spécifiés sous ce domaine, puisque le domaine est susceptible d'être réassigné à un propriétaire différent, ce qui pourrait alors changer la signification des identificateurs. .

S'il existe un identificateur OID et une adresse URI identifiant le même objet, ce document encourage l'emploi de l'identificateur OID, comme cela est expliqué dans la première puce ci-dessus.

<xsd:complexType name="IdentifierType"> 
  <xsd:complexContent>
    <xsd:extension base="xsd:anyURI">
      <xsd:attribute name="Qualifier" type="QualifierType" use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<xsd:simpleType name="QualifierType">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="OIDAsURI"/>
    <xsd:enumeration value="OIDAsURN"/>
  </xsd:restriction>
</xsd:simpleType>

L'élément optionnel Description contient un texte informel qui décrit l'identificateur de l'objet.

L'élément optionnel DocumentationReferences se compose d'un nombre arbitraire de références pointant vers une documentation supplémentaire concernant l'identificateur de l'objet.

<xsd:complexType name="DocumentationReferencesType">  
  <xsd:sequence maxOccurs="unbounded">
    <xsd:element name="DocumentationReference" type="xsd:anyURI"/>
  </xsd:sequence>
</xsd:complexType>

5.1.3 Le type de données EncapsulatedPKIDataType

Le type de données EncapsulatedPKIDataType sert à incorporer un morceau de données de l'infrastructure à clé publique (PKI) dans une structure XML, alors que les données PKI sont codées à l'aide d'un mécanisme de codage ASN.1. Les exemples de telles données PKI, largement employées à l'heure actuelle, comprennent les certificats et les listes de révocation X509, les réponses OCSP, les certificats d'attribution et les dates.

<xsd:complexType name="EncapsulatedPKIDataType">  
  <xsd:complexContent>
    <xsd:extension base="xsd:base64Binary">
      <xsd:attribute name="Id" type="xsd:ID" use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

Le contenu de ce type de données est le morceau de données PKI, codé en base64 comme défini dans la spécification [XMLDSIG]. L'attribut optionnel ID peut servir à établir une référence vers un élément ayant ce type de données.

5.1.4 Le type de données TimeStampType

Les dates seront utilisées avec les signatures numériques évoluées XML dans un certain nombre de situations :

  • Une signature électronique évoluée XML avec date (XAdES-T) comprend une date sur la signature électronique évoluée XML (XAdES) pour protéger d'une répudiation en cas de compromission de la clé ;

  • Deux mécanismes sont fournis pour la protection contre la malveillance en cas de compromission de la clé d'une autorité de certification, en obtenant la forme XAdES-X :

    • une date seulement sur toutes les références aux informations de certifation et de révocation d'une signature électronique évoluée XML avec données de validation complètes (XAdES-C) ;

    • une date calculée sur la valeur de signature, la date de la signature et les références aux informations de certification et de révocation présentes dans la signature électronique évoluée XML avec données de validation complètes (XAdES-C).

  • Pour établir une validité à long terme à une signature XML, on peut apposer une date sur une signature électronique évoluée XML avec données de validation étendues (XAdES-X-L) pour obtenir une forme XAdES-A. Dans ce cas, la date est appelée date d'archive. On peut rajouter d'autres dates à cette forme XAdES-A au fur et à mesure.

  • En outre, on peut rajouter à la signature XAdES des dates, en tant que propriétés signées, prouvant que tout ou partie des données-objets à signer ont été créés avant une certaine date.

On obtient une date en envoyant la valeur de l'empreinte numérique des données en question à l'autorité de datation (TSA). La date retournée représente des données signées constituées de la valeur de l'empreinte numérique, l'identité de l'autorité de datation et l'heure de datation. Ceci prouve que les données en question existaient avant l'heure de datation.

Les dates spécifiées dans le présent document seront générées sur des parties sélectionnées de l'élément de signature XAdES.

Voici la définition de schéma du type de données utilisé pour toutes les dates mentionnées ci-dessus :

<xsd:complexType name="TimeStampType">
  <xsd:sequence>
    <xsd:element name="HashDataInfo" type="HashDataInfoType" 
     maxOccurs="unbounded"/>
    <xsd:choice>
      <xsd:element name="EncapsulatedTimeStamp" 
       type="EncapsulatedPKIDataType"/>
      <xsd:element name="XMLTimeStamp" type="AnyType"/>
    </xsd:choice>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="HashDataInfoType">
  <xsd:sequence>
    <xsd:element name="Transforms" type="ds:TransformsType" minOccurs="0"/>
  </xsd:sequence>
  <xsd:attribute name="uri" type="xsd:anyURI" use="required"/>
</xsd:complexType>

Chaque élément HashDataInfo contient un attribut uri appelant un objet-données et un élément ds:Transforms indiquant les transformations à effectuer sur cet objet-données, comme décrit dans la spécification [XMLDSIG].

La séquence des éléments HashDataInfo sera utilisée pour produire l'entrée du calcul de l'empreinte numérique, dont le résultat sera inclus dans la requête de datation à envoyer à l'autorité de datation.

L'entrée effective pour le calcul de l'empreinte numérique est déterminée de la manière suivante : chaque objet-données appelé dans la séquence des éléments HashDataInfo est transformé selon les indications de l'élément Transforms correspondant ; une fois que tous les objets-données référencés ont été transformés, les octets résultants sont concaténés dans l'ordre d'appel des objets-données.

La date générée par l'autorité de datation peut être soit un objet-données ASN.1 (comme défini dans [TSP], utiliser EncapsulatedTimeStamp), soit codée en XML (utiliser XMLTimeStamp). Comme il n'existe actuellement aucune norme pour les dates XML, nous fournissons un paramètre fictif [NdT. placeholder] pour une utilisation future.

5.2 La syntaxe de la forme XAdES

Cette section décrit en détails les propriétés de qualification qui peuvent apparaître dans les formes de signature électronique évoluée XAdES et XAdES-T, comme décrit dans la section 4 Aperçu de la syntaxe.

5.2.1 L'élément SigningTime

La propriété SigningTime spécifie le moment auquel le signataire prétend avoir réalisé le processus de signature.

La recommandation XML Schema [XML-schema-part-2] définit un type XML xsd:dateTime qui autorise l'inclusion de l'information requise. C'est le type retenu pour l'élément SigningTime.

C'est une propriété signée qui qualifie la signature entière.

Une signature électronique XML alignée sur le présent document DOIT contenir exactement un élément SigningTime.

La définition de schéma de cet élément est la suivante :

<xsd:element name="SigningTime" type="xsd:dateTime"/>

5.2.2 L'élément SigningCertificate

Comme déclaré en introduction, une signature électronique produite conformément au présent document emporte l'assurance qu'un certain engagement a été pris explicitement, sous couvert d'une politique de signature, à un instant donné, par un signataire identifiable, par exemple, par un nom ou un pseudonyme, ou éventuellement un rôle.

Dans beaucoup de situations réelles, les utilisateurs auront la possibilité d'obtenir de différentes autorités de certification, ou parfois de la même, des certificats différents contenant la même clé publique pour des noms différents. L'avantage principal c'est que l'utilisateur peut utiliser la même clé privée pour des buts différents. L'usage multiple de la clé privée présente un avantage lorsqu'on se sert d'une carte à puce pour la protéger, car la capacité de stockage d'une carte à puce est toujours limitée. Quand plusieurs autorités de certification sont impliquées, chaque certificat différent peut contenir une identité différente, par exemple, comme celle d'une pièce d'identité nationale ou celle d'un employé d'une société. Ainsi, lorsqu'une clé privée sert à plusieurs usages, le certificat est nécessaire pour éclairer le contexte dans lequel cette clé privée a été employée pour la génération de la signature. Quand il existe des possibilités d'usages multiples des clés privées, le signataire doit obligatoirement indiquer au vérificateur quel certificat précis utiliser.

Beaucoup de systèmes actuels ajoutent simplement le certificat après les données signées et sont donc vulnérables à diverses attaques par substitution. Un exemple d'attaque par substitution serait celui d'une mauvaise autorité de certification qui émettrait un certificat à l'un en se servant de la clé publique d'un autre. Si le certificat du signataire était simplement ajouté en bout de la signature et, de ce fait, non protégé par la signature, n'importe qui pourrait substituer un certificat par un autre et le message apparaîtrait signé par quelqu'un d'autre.

Pour contrer ce type d'attaque, l'identificateur du certificat doit être protégé par la signature numérique du signataire.

La propriété SigningCertificate est conçue pour prévenir la substitution simple du certificat. Cette propriété contient les références des certificats et les empreintes numériques calculées sur ceux-ci.

Le certificat utilisé pour vérifier la signature sera identifié dans la séquence ; la politique de signature peut exiger la présence d'autres certificats, ce qui peut inclure tous les certificats de confiance.

C'est une propriété signée qui qualifie la signature.

Une signature électronique XML alignée sur le présent document DOIT contenir un seul élément SigningCertificate exactement.

La définition de schéma de cet élément est la suivante :

<xsd:element name="SigningCertificate" type="CertIDListType"/>
<xsd:complexType name="CertIDListType">
  <xsd:sequence>
    <xsd:element name="Cert" type="CertIDType" maxOccurs="unbounded"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="CertIDType">
  <xsd:sequence>
    <xsd:element name="CertDigest" type="DigestAlgAndValueType"/>
    <xsd:element name="IssuerSerial" type="ds:X509IssuerSerialType"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="DigestAlgAndValueType">
  <xsd:sequence>
    <xsd:element name="DigestMethod" type="ds:DigestMethodType"/>
    <xsd:element name="DigestValue" type="ds:DigestValueType"/>
  </xsd:sequence>
</xsd:complexType>

L'élément SigningCertificate contient la séquence mentionnée ci-dessus des identificateurs de certificat et des empreintes numériques calculées sur les certificats (cf. les éléments Cert).

L'élément IssuerSerial contient l'identificateur de l'un des certificats référencés dans la séquence. Si l'élément ds:X509IssuerSerial doit apparaître dans la signature pour indiquer le même certificat, alors sa valeur DOIT être cohérente avec l'élément IssuerSerial correspondant.

Si l'utilisateur utilise un certificat d'attribution pour associer un rôle à la signature électronique, ce certificat DOIT être présent dans la propriété SignerRole.

L'élément CertDigest contient l'empreinte numérique de l'un des certificats référencés dans la séquence. Il contient deux éléments : DigestMethod, qui indique l'algorithme de hachage cryptographique [NdT. digest algorithm], et DigestValue, qui contient la valeur de l'empreinte numérique.

5.2.3 L'élément SignaturePolicyIdentifier

Une politique de signature constitue un ensemble de règles pour la création et la validation d'une signature électronique, selon lequel on peut déterminer que la signature est valide. Un contexte légal/contractuel donné peut reconnaître une politique de signature particulière comme satisfaisant à ses exigences.

La politique de signature doit être disponible sous une forme lisible par un humain, de sorte qu'on puisse évaluer sa conformité vis-à-vis des règles du contexte légal ou contractuel dans lequel elle est appliquée.

Pour faciliter le traitement automatique de la signature électronique, les parties de la politique de signature qui spécifient les règles électroniques de création et de validation des signatures électroniques doivent également se présenter sous une forme reconnaissable par un ordinateur.

Si aucune politique de signature n'est identifiée, alors la signature sera considérée comme générée/vérifiée sans les contraintes d'une politique, et elle peut donc n'avoir aucune signification légale ou contractuelle particulières pour une politique de signature.

Comme cela a été dit précédemment, toute signature électronique qui prétend s'aligner sur le présent document doit offrir un moyen permettant d'identifier la signature sans ambiguïté. Le présent document définit deux possibilités :

  • La signature électronique peut contenir l'identificateur explicite et non équivoque d'une politique de signature accompagné d'une empreinte numérique de cette politique de signature, de sorte que l'on puisse vérifier que la politique sélectionnée par le signataire est bien celle utilisée par le vérificateur. Une politique de signature explicite possède une référence unique globale qui est liée de cette manière à une signature électronique par le signataire comme partie intégrante du calcul de la signature. Dans ce cas, pour une politique de signature explicite donnée, il y aura une forme définitive avec une valeur codée binaire unique. Enfin, une politique de signature, identifiée de cette manière, peut être qualifiée par des informations supplémentaires.

  • Sinon, la signature électronique peut éviter d'inclure l'identificateur et l'empreinte numérique, mentionnés précédemment. Cela sera possible quand la politique de signature peut se déduire sans ambiguïté de la sémantique du type du ou des objets-données qui sont signés et de certaines autres informations, par exemple, des règlements nationaux ou des accords contractuels privés, stipulant l'utilisation d'une politique de signature donnée pour ce type de contenu de données. Auxquels cas, la signature contiendra un élément vide spécifique indiquant qu'on utilise cette manière implicite d'identifier la politique de signature plutôt que l'identificateur et l'empreinte numérique.

L'identificateur de politique de signature est une propriété signée qui qualifie la signature.

Une signature électronique XML alignée sur le présent document DOIT contenir exactement un seul élément SignaturePolicyIdentifier.

La définition de schéma de ce type est la suivante :

<xsd:element name="SignaturePolicyIdentifier" type="SignaturePolicyIdentifierType"/>
<xsd:complexType name="SignaturePolicyIdentifierType">
  <xsd:choice>
    <xsd:element name="SignaturePolicyId" type="SignaturePolicyIdType"/>
    <xsd:element name="SignaturePolicyImplied"/>
  </xsd:choice>
</xsd:complexType>

<xsd:complexType name="SignaturePolicyIdType">
  <xsd:sequence>
    <xsd:element name="SigPolicyId" type="ObjectIdentifierType"/>
    <xsd:element ref="ds:Transforms" minOccurs="0"/>
    <xsd:element name="SigPolicyHash" type="DigestAlgAndValueType"/>
    <xsd:element name="SigPolicyQualifiers" 
      type="SigPolicyQualifiersListType" minOccurs="0"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="SigPolicyQualifiersListType">
  <xsd:sequence>
    <xsd:element name="SigPolicyQualifier" type="AnyType" 
      maxOccurs="unbounded"/>
  </xsd:sequence>
</xsd:complexType>

L'élément SignaturePolicyId apparaîtra lorsqu'on identifie la politique de signature par la première méthode. L'élément SigPolicyId contient un identificateur qui détermine de manière unique une version spécifique de la politique de signature. L'élément SigPolicyHash contient l'identificateur de l'algorithme de hachage cryptographique et l'empreinte numérique de la politique de signature. L'élément SigPolicyQualifier peut contenir d'autres informations qui qualifient l'identificateur de politique de signature. L'élément optionnel ds:Transforms peut contenir les transformations opérées sur le document de la politique de signature avant le calcul de son empreinte numérique. Le modèle de traitement de ces transformations est décrit dans la spécification [XMLDSIG].

Sinon, l'élément SignaturePolicyImplied apparaîtra lorsqu'on emploie la seconde méthode. Cet élément vide indique que le ou les objets-données en cours de signature ainsi que d'autres données externes impliquent une certaine politique de signature.