4.2.2Bloc signature électronique
Le PES V2 permet de véhiculer (import du schéma Class_Signature.xsd) des informations de signature électronique sur les niveaux suivants :
-
Signature technique du flux PES Aller
-
Signature d’un élément de type bordereau de dépense ou de recette
-
Signature d’une pièce justificative (externe)
L’information de signature respecte les spécifications XML Signature [R4] du W3C (www.W3.org) ainsi que les extensions de format de signatures spécifiées dans le standard européen XML Advanced Electronic Signature (XADES, [R5]) de l’ETSI (www.etsi.org).
Un élément ds:Signature est modélisé au travers du schéma Class_Signature.xsd. il appartient à l’espace de nom XML Signature (http://www.w3.org3/2000/09/xmldsig#). Le préfixe utilisé pour les éléments appartenant à l’espace de noms XMLDSIG est le préfixe « ds : »
L’élément xad :QualifyingProperty appartient à l’espace de noms XADES (http://uri.etsi.ordg/010903/v1.1.1#). Le préfixe utilisé pour les éléments appartenant à l’espace de noms XADES est le préfixe « xad : »
Les signatures sont des signatures enveloppées, conformément à la norme XML Signature.
4.2.2.2Génération de l’ élément ds:signature
La génération de la signature est effectuée dans tous les cas comme suit :
-
Création élément xad:QualifyingProperty contenant les propriétés signées de la signature (cf. 4.2.2.3).
-
Création d’un élément ds:SignedInfo contenant les éléments ds :CanonicalizationMethod, ds :SignatureMethod et deux éléments ds :Reference
-
Génération des éléments ds:Reference (cf. 4.2.2.2.1)
-
Mise sous forme canoniqiue de l’élément ds :SignedInfo et calcul de ds :SignatureValue sur cet élément en appliquant les algorithmes définis dans l’élément ds :SignedInfo
-
Intégration dans le message de l’élément ds:Signature contenant :
-
L’élément ds:SignedInfo
-
Un élément ds:KeyInfo contenant la valeur du certificat de signature encodé en base 64
-
L’élément ds:Object/xad:QualifyingProperties
L’algorithme de mise sous forme canonique appliqué à l’élément ds:SignedInfo est fixé à :
http://www.org/2001/10/cml-exc-c14n#"/>
L’algorithme de signature est fixé à :
4.2.2.2.1Génération des éléments références 4.2.2.2.1.1Génération de la première réference
Le premier élément ds:Reference identifie l’objet comportant des données à signer (PES_Aller, Bordereau, PJ)
Il est constitué :
-
Un attribut URI
-
Un élément ds:Transforms
-
Un élément ds:DigestMethod
-
Un élément ds:DigestValue
L’attribut obligatoire URI pointe selon les cas :
-
Sur l’attribut Id de l’élément pes:PES_Aller (cf. 5.5)
-
Sur l’attribut Id de l élément pes/dep/Bordereau ou pes/rec/Bordereau (cf. 4.3 et 4.4)
L’attribut obligatoire ds:Transforms comprend deux éléments ds:Transform
Le premier élément obligatoire ds:Transform permet de sélectionner les données de l’objet (identifié par l’attribut URI) que l’on souhaite signer, en en soustrayant l’élément ds:Signature lui-même. Cet algorithme est l’algorithme standard de création d’une signature enveloppée :
http://www.w3.org/2001/xmldsig#enveloped-signature#"/>
Le deuxième élément obligatoire ds:Transform indique l’algorithme de mise sous forme canonique à appliquer aux données.
http://www.w3.org/2001/xml-exc14n#")
Une emprunte du résultat de ces transformations successives est ensuite calculée, en suivant l’algorithme défini en attribut obligatoire de ds:DigestMethod . Cet algorithme est fixé à :
http://www.w3.org/2000/09/xmldsig#sha1"/)
L’élément obligatoire ds : DigestValue contient alors la valeur de l’empreinte ainsi créée.
4.2.2.2.1.2Génération de la seconde réference
Le deuxième élément ds:Reference identifie les propriétés signées
Il est constitué :
-
Un attribut URI
-
Un attribut Type
-
Un élément ds:Transforms
-
Un élément ds:DigestMethod
-
Un élément ds:DigestValue
L’attribut obligatoire URI pointe sur l’attribut Id de l’élément xad:SignedProperties (cf. 4.2.2.2.2.1)
L’attribut obligatoire Type est fixé à la valeur "http://uri.etsi.org/01903/v1.1.1#SignedProperty"
L’attribut obligatoire ds:Transforms comprend un élément ds:Transform indiquant l’algorithme de mise sous forme canonique à appliquer aux données.
http://www.w3.org/2001/xml-exc14n#
Une empreinte du résultat de cette transformation est ensuite calculée, en suivant l’algorithme défini en attribut obligatoire de ds:DigestMethod . Cet algorithme est fixé à :
http://www.w3.org/2000/09/xmldsig#sha1 »/)
L’élément obligatoire ds:DigestValue contient alors la valeur de l’emprunte ainsi créée.
4.2.2.2.2Elément xad :QualifyingProperties
L ‘élément xad:QualifyingProperties appartient à l’espace de noms XADES (http://uri.etsi.org/10903/v1.1.1#)
Il est constitué de :
-
Un attribut Target qui est une URI sur l’attribut Id de la signature à laquelle l’élément QualifyingProperties est associé.
-
Un élément xad:SignedPropertySignedProperties, contenant lui-même un élément xad:SignedSignatureProperties.
-
Optionnellement un élément xad:UnsignedProperties, contenant lui-même un élément xad:UnsignedSignatureProperties.
4.2.2.2.2.1Element SignedSignatureProperties
Est composé de :
-
Un élément xad:SigningTime
-
Un élément xad :SigningCertificate
-
Un élément xad:SignaturePolicyIdentifier
-
Un élément xad :SignatureProductionPlace
-
Un élément xad :SignerRole
4.2.2.2.2.2Element SigningTime
L’élement xad:SigningTime contient la date et l’heure de création de l’élément de signature.
L’élément xad : SigningCertificate contient un élément xad:Cert lui-même constitué de :
-
Un élément xad:CertDigest
-
Un élément xad:IssuerSerial
L’élément xad:CertDigest contient l’empreinte du certificat de signature ainsi que l’algorithme utilisé pour calculer cette empreinte. Cet algorithme est fixé à :
http://www.w3.org/2000/09/xmldsig#sha1"/)
L’élément obligatoire xad:IssuerSerial contient le DN (DistinguishedName) du certificat de l’autorité de certification émettrice du certificat de signature (ds :X50IssuerName) ainsi que le numéro de série du certificat de signature (ds :X509SerialNumber)
4.2.2.2.2.4SignaturePolicyIdentifier
L’élément xad:SignaturePolicyIdentifier est constitué de l’élement xad:SignaturePolicyId, qui est lui-même constitué de :
-
Un élément xad:SigPolicyId
-
Un élément xad:SigPolicyHash
-
Un élément xad:SigPolicyQualifiers
L ‘élément xad:SigPolicyId contient :
-
Un élément xad :identifier possédant un attribut xad:Qualifier fixé à "OIDAsURN" contenant l’URN de la politique de signature utilisée.
-
Un élément xad:Description contenant une chaîne de caractères décrivant la politique de signature.
-
L’élement xad:SigPolicyHash contient l’empreinte de la politique de signature utilisée ainsi que l’algorithme utilisé pour calculer cette empreinte. Cet algorithme est fixé :
http://www.w3.org/2000/09/xmldsig#sha1"/)
-
L’élement xad:SigPolicyQualifiers contient un élément xad:SigPolicyQualifier contenant un élement xad:SPURI. Ce dernier contient l’URL de publication de la politique de signature
4.2.2.2.2.5Signatureproductionplace
L’élément xad : SignatureProductionPlace contient :
-
Un élément xad:City
-
Un élément xad:PostalCode
-
Un élément xad:CountryName
4.2.2.2.2.6Signerrole
L’élément xad :SignedRole contient un élément xad :ClaimedRoles lui-même constitué d’un élément xad :ClaimedRole. Ce dernier contient une chaîne de caractères indiquant le rôle du signataire.
4.2.2.2.2.7Element UnsignedSignatureProperties
L’élément xad:UnsignedSignatureProperties contient :
-
Un élément xad:SignatureTimeStamp
4.2.2.2.2.8Element SignatureTimeStamp
L’élément xad:SignatureTimestamp contient :
-
Un élément xad:HashDataInfo
-
Un élément xad :EncapsulatedTimeStamp
L’élément xad:HashDataInfo contient :
-
Un attribut URI
-
Un élément ds:Transforms
Ces éléments contiennent les informations nécessaires à l’extraction et la mise sous forme canonique suivant l’algorithme http://www.w3.org/2001/xml-exc14n# de l’élément ds:SignatureValue de la signature horodatée.
L’élément xad:EncapsulatedTimeStamp contient un jeton d’horodatage conforme à la RFC 3161, encodé en base64.
|