XMLAdvanced Electronic Signatures (XAdES)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.
Les notes de traduction se présentent dans le texte sous deux formes :
Les liens vers un document du W3C sont doublés vers une traduction quand elle existe :
un document du W3C→vf
Cf. les archives disponibles pour les traductions hébergées sur ce site.
Le World Wide Web Consortium tient un répertoire des traductions disponibles.
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.
Copyright © 2003 ETSI, tous droits réservés.
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]] :
la signature électronique évoluée XML (XAdES) qui offre une authentification et une protection d'intégrité minimales et qui satisfait aux obligations légales pour les signatures électroniques évoluées, comme défini dans la Directive Européenne [EU-DIR-ESIG]. Toutefois, elle ne permet pas sa propre non-répudiation. Cette forme ajoute les éléments suivants à [XMLDSIG] :
QualifyingProperties
SignedProperties
SignedSignatureProperties
SigningTime
SigningCertificate
SignaturePolicyIdentifier
SignatureProductionPlace?
SignerRole?
SignedDataObjectProperties
DataObjectFormat*
CommitmentTypeIndication*
AllDataObjectsTimeStamp*
IndividualDataObjectsTimeStamp*
UnsignedProperties
UnsignedSignatureProperties
CounterSignature*
la signature électronique évoluée XML avec date [NdT. Time-Stamp] (XAdES-T) qui inclut une date en protection d'une répudiation. Cette forme ajoute les éléments suivants à la forme XAdES à l'intérieur de l'élément considéré :
dans l'élément UnsignedSignatureProperties :
SignatureTimeStamp+
la signature électronique évoluée XML avec données de validation complètes (XAdES-C) qui inclut les références à l'ensemble des données intervenant dans la validation de la signature électronique (c'est-à-dire, les références aux chemins de certification et aux informations sur le statut de révocation qui leur sont associées). Cette forme trouve son utilité dans les situations où ces informations sont archivées par une source externe, comme un tiers de confiance [NdT. trusted service provider]. Cette forme ajoute les éléments suivants à la forme XAdES-T à l'intérieur de l'élément considéré :
dans l'élément UnsignedSignatureProperties :
CompleteCertificateRefs
CompleteRevocationRefs
la signature électronique évoluée XML avec données de validation étendues (XAdES-X)
qui inclut une date sur les références aux données de validation ou bien sur l'élément ds:Signature
et les données de validation en question. Cette date contre le risque selon lequel toute clé employée dans la
chaîne de certification ou dans les informations de statut de révocation pourrait être compromise. Comme cela a été dit, cette forme
est mise en œuvre de deux façons. La première ajoute l'élément suivant à la forme XAdES-C :
dans l'élément UnsignedSignatureProperties :
RefsOnlyTimeStamp*
La seconde ajoute l'élément suivant à la forme XAdES-C :
dans l'élément UnsignedSignatureProperties :
SigAndRefsTimeStamp*
la signature électronique évoluée XML avec données de validation étendues incorporées pour le long terme (XAdES-X-L) qui inclut les données de validation, lorsque ces données de validation ne sont pas stockées ailleurs pour le long terme. Cette forme ajoute les éléments suivants à la forme XAdES-X :
dans l'élément UnsignedSignatureProperties :
CertificatesValues
RevocationValues
la signature électronique évoluée XML avec données de validation pour l'archivage (XAdES-A) qui inclut des dates supplémentaires pour l'archivage des signatures afin de les protéger au cas où les données cryptographiques devenaient vulnérables. Cette forme ajoute les éléments suivants à la forme XAdES-X-L :
dans l'élément UnsignedSignatureProperties :
ArchiveTimestamp+
Cette note articule également les rôles suivants et leurs responsabilités en ce qui concerne la validité de la signature :
Signataire [NdT. Signer] : l'entité qui crée la signature électronique. Lorsque le signataire signe numériquement des objets-données à l'aide du format prescrit, cela représente un engagement de la part de cette entité sur les objets-données signés.
Vérificateur [NdT. Verifier] : l'entité qui vérifie la signature électronique. Il peut s'agir d'une seule ou bien de plusieurs entités.
Tiers de confiance [NdT. Trusted Service Providers] : une ou plusieurs entités qui participent à l'établissement de la relation de confiance entre le signataire et le vérificateur. Les tiers de confiance comprennent les autorités de certification, les autorités d'enregistrement, les autorités d'entreposage (par exemple, un annuaire), les autorités de datation, les émetteurs des politiques de signature et les autorités d'attribution.
Arbitre [NdT. Arbitrator] : une entité qui intervient dans les litiges entre un signataire et un vérificateur.
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.
SigningTimeSigningCertificateSignaturePolicyIdentifier
CounterSignatureDataObjectFormatCommitmentTypeIndicationSignatureProductionPlaceSignerRoleAllDataObjectsTimeStampIndividualDataObjectsTimeStampLe 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).
Les expressions suivantes sont employées dans ce document, leur signification particulière étant indiquée dessous :
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] :
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 électronique évoluée XML (XAdES). Son format est celui définit dans
[XMLDSIG] auquel s'ajoutent des propriétés signées (SigningTime,
SigningCertificate, SignaturePolicyIdentifier, SignatureProductionPlace,
SignerRole, AllDataObjectsTimeStamp, IndividualDataObjectsTimeStamp,
DataObjectFormat et CommitmentTypeIndication) et non signée (CounterSignature)
La signature électronique évoluée XML avec date (XAdES-T), qui ajoute une date à XAdES, pour un premier pas vers la validité à long terme. On devrait créer cette forme, ou un enregistrement chronologique, à un moment proche de celui où la signature XAdES est produite, en prévention d'une répudiation.
La signature électronique évoluée XML avec données de validation complètes (XAdES-C), qui ajoute, à la forme XAdES-T, les références à l'ensemble des données constituant la validité de la signature électronique (c'est-à-dire, les références restantes aux chemins de certification et les informations sur le statut de révocation qui leur sont associées). Remarquez que cet ensemble ne contient pas les données réelles du chemin de certification et des informations de révocation associées, lesquelles sont beaucoup plus volumineuses.
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. 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
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.ds
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. 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
|
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).
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).
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.
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. 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
|
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. 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.
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" > |
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].
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.
QualifyingPropertiesL'é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.
SignedPropertiesL'é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.
UnsignedPropertiesL'é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.
SignedSignaturePropertiesCet é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.
SignedDataObjectPropertiesCet é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
,
IndividualDataObjectsTimeStampDataObjectFormat 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.
UnsignedSignaturePropertiesCet é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.
UnsignedDataObjectPropertiesCet é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.
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).
SigningPropertiesComme 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.
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.
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.
Les trois structures XML auxilliaires suivantes servent à plusieurs reprises pour les autres sections.
AnyTypeLe 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>
|
ObjectIdentifierTypeLe 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>
|
EncapsulatedPKIDataTypeLe 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.
TimeStampTypeLes 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.
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.
SigningTimeLa 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"/> |
SigningCertificateComme 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.
SignaturePolicyIdentifierUne 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.