Bloc signature électronique

Format de signature et espace de noms

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.

PESSignatureGroup

Génération de l'élément ds: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"/>

Génération des éléments références

Gé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é 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.

Génération de la seconde réference

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.

Elément xad:QualifyingProperties

L'élément xad:QualifyingPropertiesappartient à l'espace de noms XADES (http://uri.etsi.org/10903/v1.1.1#)

Il est constitué de :

Element SignedSignatureProperties

Est composé de :

Element SigningTime

L'élement xad:SigningTime contient la date et l'heure de création de l'élément de signature.

Element SigninGCertificate

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)

Element SignaturePolicyIdentifier

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 :

Element Signatureproductionplace

L'élément xad : SignatureProductionPlace contient :

Element Signerrole

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.

Element UnsignedSignatureProperties

L'élément xad:UnsignedSignatureProperties contient :

Element SignatureTimeStamp

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.

Bloc chiffrement

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) :

PESEncryptedDataType

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.

Informations obligatoires pour la signature électronique

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.

Liste des certificats de signature

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