Le PES V2 permet de véhiculer (import du schéma Class_Signature.xsd) des informations de signature électronique sur les niveaux suivants :
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.
La génération de la signature est effectuée dans tous les cas comme suit :
L'algorithme de mise sous forme canonique appliqué à l'élément ds:SignedInfo est fixé à :
<ds:CanonicalizationMethod Algorithm="http://www.org/2001/10/cml-exc-c14n#"/>
L'algorithme de signature est fixé à :
<ds:SignatureMethod Algorithm="http://wwww.w3.org/2000/09/xmldsig#rsa-sha1"/>
Le premier élément ds:Reference identifie l'objet comportant des données à signer (PES_Aller, Bordereau, PJ)
Il est constitué de :
L'attribut obligatoire URI pointe selon les cas :
L'attribut obligatoire ds:Transforms comprend deux éléments ds:Transform :
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é à :
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
L'élément obligatoire ds: DigestValue contient alors la valeur de l'empreinte ainsi créée.
Le deuxième élément ds:Reference identifie les propriétés signées.
Il est constitué :
L'attribut obligatoire URI pointe sur l'attribut Id de l'élément xad:SignedProperties (cf. ici)
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.
<ds:Transforms Algorithm="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é à :
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
L'élément obligatoire ds:DigestValue contient alors la valeur de l'emprunte ainsi créée.
L'élément xad:QualifyingPropertiesappartient à l'espace de noms XADES (http://uri.etsi.org/10903/v1.1.1#)
Il est constitué de :
Est composé de :
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 :
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é à :
<ds:DigestMethod Algorithm="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)
L'élément xad:SignaturePolicyIdentifier est constitué de l'élement xad:SignaturePolicyId, qui est lui-même constitué de :
L'élément xad:SigPolicyId contient :
L'élément xad : SignatureProductionPlace contient :
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.
L'élément xad:UnsignedSignatureProperties contient :
L'élément xad:SignatureTimestamp contient :
L'élément xad:HashDataInfo contient :
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.
Le bloc Chiffrement contient les éléments de chiffrement du fichier contenant les données de pièces jointes, quand ces dernières sont véhiculées par le flux.
Le format de chiffrement respecte les spécifications XML Encryption [R5] du W3C (www.W3.org) :
Un élément EncryptedData est modélisé au travers du schéma Class_Chiffrement.xsd. Il appartient à l'espace de nom XML Encryption (http://www.w3.org/2001/04/xmlenc#). Le préfixe utilisé pour les éléments appartenant à l'espace de noms XMLENC est le préfixe "xenc:"
L'élément xenc:EncryptedData est constitué de :
L'élément obligatoire xenc:CipherData contient la donnée métier chiffrée avec une clé de chiffrement symétrique, suivant l'algorithme précisé dans l'élément xenc:EncryptionMethod.
L'élément obligatoire xenc:EncryptionMethod possède un attribut Algorithm indiquant l'algorithme de chiffrement symétrique utilisé, à savoir 3-DES.
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
L'élément obligatoire ds:KeyInfo contient, pour chaque destinataire de la donnée, un élément xenc:EncryptedKey contenant la clé de déchiffrement symétrique, elle-même chiffrée avec le certificat du destinataire.
L'élément xenc:EncryptedKey est constitué de :
L'élément obligatoire xenc:CipherValue contient la valeur de la clé de déchiffrement symétrique, elle-même chiffrée avec le certificat du destinataire suivant l'algorithme asymétrique indiqué dans l'élément xenc:EncryptionMethod.
L'attribut obligatoire xenc:EncryptionMethod indique l'algorithme de chiffrement asymétrique utilisé pour chiffrer la clé symétrique, à savoir RSA 1.5 :
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
L'élément obligatoire xenc:KeyInfo contient le certificat du destinataire auquel cette version de la clé symétrique chiffrée et destinée.
Parmi les informations obligatoires d'une signature électronique et qui doivent être rendues lisibles :
Ces éléments sont issus des blocs de la signature électronique décrite supra.
Il convient d'y ajouter le montant cumul annuel pour chaque bordereau signé.
En l'absence de l'un ou de tous ces éléments, la signature est considérée comme invalide en terme fonctionnel et les bordereaux doivent être rejetés.
La liste des certificats acceptés est la suivante (disponible sous format texte ici).
Alias name: banque_populaire-autorite_de_certification.cer Alias name: cdc-racine.crt Alias name: keynectis_cds_ca.cer Alias name: certinomis_root.cer Alias name: atos_racine_mediacert.cer Alias name: ac_racine_groupe_credit_agricole_v2.509 Alias name: accertignaidpris3pro.crt Alias name: ca_root_credit_agricole.cer Alias name: ac_ias1_e.cer Alias name: banque_populaire_click_and_trust_paiements_securises.crt Alias name: chambersignfranceac1etoile.cer Alias name: ca_lcl_certificat_rgs_usage_separe.509 Alias name: acd_certinomis_2_etoiles-2.cer Alias name: sg_trust_services_racine_pris.cer Alias name: ca_certificat.crt Alias name: certeurope_advanced_v3.cer Alias name: chambersignfranceac3etoiles.cer Alias name: lcl_authentysentreprise.crt Alias name: accertignaidpris2.crt Alias name: ac_minefi_b.cer Alias name: csf-classe-iii-sign-et-crypt-2016.cer Alias name: sign-token-click_and_trust.cer Alias name: certeurope_root_ca_2.cer Alias name: ccf_elys_certification.cer Alias name: ac_easy.cer Alias name: ca-certificat.cer Alias name: keynectis_qualified_cds.cer Alias name: sg_trust_services_racine.cer Alias name: ac_racine_groupe_credit_agricole_v2.cer Alias name: keynectis_ics_ca.cer Alias name: ac_signature_helios_dgfip.cer Alias name: certigreffe_v2.cer Alias name: adobe_root_ca.cer Alias name: ac_certeurope_classe_3plus.cer Alias name: ac_racine_helios_dgfip.cer Alias name: ac_certigreffe_classe_3plus_sub.cer Alias name: ca_lcl_certificat_rgs_usage_separe.cer Alias name: bnp_paribas_authority_enterprise.cer Alias name: chambersignfrance.cer Alias name: acracine_groupe_credit_agricole_v1.crt Alias name: sg_ts_2_etoiles.cer Alias name: banque_populaire-click_and_trust-paiements_securises.cer Alias name: ac_ias1_d.cer Alias name: ac_standard.cer Alias name: ca-root-credit-agricole.crt Alias name: sg_trust_services_authentification_et_chiffrement_de_clef_sub.cer Alias name: certinomis_classe3_sub.cer Alias name: certificatacgtce.cer Alias name: chambersign_france_initio_sub.cer Alias name: sg_ts_pris.cer Alias name: auth-token-click_and_trust.cer Alias name: acd_certinomisclasse3g3.cer Alias name: acr_certinomis.cer Alias name: csov.cer Alias name: accertigna.crt Alias name: banque_populaire_click_and_trust_tva.crt Alias name: banque_populaire.cer Alias name: atos_sub_telepro_entreprise.cer Alias name: certificatacracine.cer Alias name: keynectis_ics_advanced_class_3_ca.cer Alias name: sg_trust_services_racine2.cer Alias name: bnpparibas-rootac.cer Alias name: ac_certeurope_3p_v2.cer Alias name: certification_authority-click_and_trust.cer Alias name: ac_ias1_c.cer Alias name: ac_agents.cer Alias name: certification_chambersign_france_root.cer Alias name: chambersignfranceac2etoiles.cer Alias name: certeurope_root_ca.cer Alias name: ac_racine_g3.cer Alias name: ac_prime.cer Alias name: ca_lcl_certificat_rgs_usage_mixte.crt Alias name: natexis_banques_populaires_nxbp_cesam_relations_fiscales_ac.cer Alias name: banque_populaire_autorite_de_certification.crt Alias name: csovracine.cer Alias name: keynectis_root_ca.cer Alias name: accertignaidpris2pro.crt Alias name: cdc-legalia.crt Alias name: acr_certinomisg2.cer Alias name: accertignaidpris3.crt