APPLETS DE SIGNATURE ELECTRONIQUE. Spécifications techniques détaillées & Manuel d'exploitation



Documents pareils
Signature électronique de la Ville de Luxembourg

Du 03 au 07 Février 2014 Tunis (Tunisie)

TP JAVASCRIPT OMI4 TP5 SRC

Achat V9.7 Dématérialisation des Achats et des Marchés Publics

PMI PLACE DE MARCHE INTERMINISTERIELLE GUIDE D'UTILISATION UTILISATEUR OPERATEUR ECONOMIQUE

Application de lecture de carte SESAM-Vitale Jeebop

Module d anonymisation

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

EJBCA PKI Open Source

Documentation utilisateur "OK-MARCHE" Historique des modifications. 3.0 Mise à jour complète suite à version OK-MARCHE V2.2. de marchés publics

Date : 16 novembre 2011 Version : 1. 2 Nombre de pages : 13

Manuel Utilisateur de l'installation du connecteur Pronote à l'ent

Définition des Webservices Ordre de paiement par . Version 1.0

AIDE ENTREPRISE SIS-ePP Plateforme de dématérialisation des marchés publics

AIDE ENTREPRISE SIS-ePP Plateforme de dématérialisation des marchés publics

Plateforme Systempay. Correspondance entre SP PLUS et SYSTEMPAY Paiement Simple et en plusieurs fois

Cyberclasse L'interface web pas à pas

Installation et utilisation d'un certificat

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

1. Installation du Module

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

contact@nqicorp.com - Web :

Le Modèle de Sécurité dans JAVA

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Auguria_PCM Product & Combination Manager

Signature électronique. Romain Kolb 31/10/2008

La salle des marchés. Version et supérieures. Manuel Entreprises - Spécifique CRE

SQL MAP. Etude d un logiciel SQL Injection

Sage CRM. Sage CRM 7.3 Guide du portable

Déployer les Fonts, Icones, et Images avec Forms Services 11G

MANUEL D UTILISATION DE LA SALLE DES MARCHES APPEL D OFFRES OUVERT ACCES ENTREPRISES. Version 8.2

Mise en place SSO. Mise en place SSO. 1. Installation de Tomcat sur le serveur OCR (Windows) 2. Ajout des librairies. by LegalBox

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

contact@nqicorp.com - Web :

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Manuel d utilisation NETexcom

Plateforme PAYZEN. Définition de Web-services

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Guide Utilisateur Transnet

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

V 8.2. Vous allez utiliser les services en ligne de la plate forme de dématérialisation de la Salle des Marchés achatpublic.com.

Manuel utilisateur. des. listes de diffusion. Sympa. l'université Lille 3

Le stockage local de données en HTML5

Service de dématérialisation du BOAMP

Petit guide à l'usage des profs pour la rédaction de pages pour le site Drupal du département

Gestion d Active Directory à distance : MMC & Délégation

PLATEFORME DES ACHATS DE L ANFH CÔTÉ PRESTATAIRES. Version décembre 2012

Guide d'intégration à ConnectWise

MANUEL. de l application «CdC Online» pour Windows. Table des matières

TheGreenBow IPsec VPN Client. Guide de Déploiement Options PKI. Site web: Contact:

Déploiement des manuels numériques sur tablette. Mode d emploi intégrateur / administrateur

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

PORTAIL INTERNET DE LA GESTION PUBLIQUE Guide d'utilisation du Portail Internet de la Gestion Publique

INSTALLER JOOMLA! POUR UN HEBERGEMENT LINUX

Protosafe : un service en ligne d archivage de données médicales

Chapitre 1 Windows Server

Guide d'installation du token

ScTools Outil de personnalisation de carte

Sessions en ligne - QuestionPoint

1. Mise en œuvre du Cegid Web Access Server en https

Guide d implémentation. Réussir l intégration de Systempay

Configuration du FTP Isolé Active Directory

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Les certificats numériques

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Septembre 2012 Document rédigé avec epsilonwriter

Base de connaissances

Windows 8 Installation et configuration

LEGALBOX SA. - Politique de Certification -

StreamServe Persuasion SP3 StreamStudio

ENTITE PUBLIQUE PLATE-FORME DE DEMATERIALISATION DES MARCHES LOCAL TRUST MPE V4 GUIDE D'UTILISATION UTILISATEUR ENTREPRISE PUBLICS

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

Forum Poitou-Charentes du Logiciel Libre

Livret 1 Poste de travail de l utilisateur :

KWISATZ MODULE PRESTASHOP

DOM - Document Object Model

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

Manuel d'utilisation d'apimail V3

Sécurité Java 2. Première approche. Installation des exemples. Exemple d'une applet

Modalités de transmission du pli par voie électronique

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Dans l'article précédent, vous avez appris

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

CMS Modules Dynamiques - Manuel Utilisateur

1. Comment accéder à mon panneau de configuration VPS?

Documentation RBS Change E-Commerce Core

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Serveur d'archivage 2007 Installation et utilisation de la BD exist

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Transcription:

LIBERSIGN APPLETS DE SIGNATURE ELECTRONIQUE Spécifications techniques détaillées & Manuel d'exploitation Description du document : Nom de cette version API_libersign_v1.9 Date de cette version mercredi 8 avril 2012 Nom de la 1ère version API_libersign_v1.0 Date de la 1ère version 26-09-2008 Historique des versions : Date Objet / modifications Version 26-09-2008 Descriptif des spécifications techniques de libersign v-1.0 21-11-2008 Enrichissement de l'api pour la signature de PES v2 v-1.2 15-03-2009 Schémas et mode opératoire pour le packaging de l'applet v-1.3 15-05-2009 Changement d'api pour signature par lot multi-format v-1.4 05-10-2009 Changement d'api: permette la co-signature XAdES v-1.5 11-01-2010 Évolution d'api: co-signature dans un même fichier PKCS#7 v-1.6 08-03-2010 Correction d'api sur co-signature dans un même fichier PKCS#7 v-1.7 28-06-2010 Précisions sur le packaging, remise en forme v-1.8 09-12-2010 Évolution d'api : signatures CMS/PKCS#7 horodatées RFC-3161 v-1.9 Auteurs : Xavier Facelina (NETHEOS), Stéphane Vast (ADULLACT Projet) Tél : 04 67 65 96 44 Fax : 04 67 65 93 92 Emails: x.facelina@netheos.net, stephane.vast@adullact-projet.coop

Table des matières 1.Présentation de Libersign...3 2.Applet de signature...4 2.1.Description...4 2.2.Packaging de l'applet de signature...4 2.2.1.Objectifs du packaging de l'applet...4 2.2.2.Description des fichiers contenus...4 2.2.3.Opération de packaging...5 2.2.4.Spécifications initiales et exigences...6 2.3.Retour sur les ACs de confiance...7 2.4.Constitution d'un magasin d'ac...7 2.5.Fonctionnement de l applet de signature...10 2.5.1.Schéma simplifié...10 2.5.2.Zoom sur l applet...11 2.6.Retour visuel de l applet...12 2.7.Usage de l applet...12 2.8.Explication des paramètres (API)...13 2.9.Formats de signature...14 3.Applet de vérification de signature...16 3.1.Description...16 3.2.Usage de l applet de vérification...17 3.3.Explication des paramètres (API)...17 2/17

1. Présentation de Libersign Ce document définit la structure, l'environnement et le fonctionnement de deux Applets JAVA impliquées dans le fonctionnement d'un système de signature électronique de documents. une applet de signature, une applet de vérification de signature. Il y a également une application serveur permettant de fournir les condensats à l'applet de signature. Ces libriciels (logiciels libres) sont déposés sous licence CeCILL V2 sur la Forge de l'adullact, les codes sources sont accessibles à l'adresse: http://adullact.net/projects/libersign/ 3/17

2. Applet de signature 2.1. Description En matière de signature électronique, il est souhaitable que tout ou partie des opérations de signature électronique soit effectué sur le poste client. L usage d applets JAVA ou de contrôles ActiveX (sur plate forme Microsoft IE) est courant en la matière. L applet JAVA qui nous concerne réalise les opérations suivantes : signature d un ou plusieurs documents ; signature renvoyée au format CMS/PKCS#7 ou XAdES ; signature fragmentée (hash côté serveur et chiffrement côté utilisateur) ; sélection automatique du certificat de signature en fonction du certificat d authentification au système (paramètres de l applet), ou à défaut sélection par l'utilisateur du certificat de signature ; selon paramètre : publication des signatures sur une adresse URL de type HTTPS (mode 'http'), ou mise à disposition de(s) signature(s) pour utilisation dans un champ de formulaire HTML (mode 'form'). La signature est réalisée sur le poste client à partir de document(s) hébergé(s) a-priori sur un serveur. Afin d'optimiser les temps de transfert et ne pas trop faire patienter le signataire, le processus est «fragmenté», seul le condensat SHA-1 du document est transmis à l'applet. 2.2. Packaging de l'applet de signature 2.2.1. Objectifs du packaging de l'applet L'objectif est de fournir à l'applet l'ensemble des informations nécessaires à son bon fonctionnement. Pour l'heure, il s'agit exclusivement des CRL et des certificats des AC reconnues. 2.2.2. Description des fichiers contenus Le packaging de l'applet doit regrouper, l'applet exécutable (ensemble de classes JAVA compilées), un keystore regroupant les certificats des ACs nommé «ac-truststore.jks» et un fichier contenant la liste de CRL à consulter, nommé «crl-list.conf». ac-truststore.jks : Ce fichier est un keystore java au format JKS (non JCEKS?) renfermant les certificats X.509 (publics) des AC reconnues («de confiance») de l'applet. Il peut contenir autant de certificats que nécessaire. Son mot de passe doit être défini en amont (ac-truststore.password) et connu de 4/17

l'applet crl-list.conf: Il s'agit d'un fichier texte encodé en UTF-8. Il contient une URL par ligne pointant directement sur des fichiers CRL Ces URL sont des URL HTTP Remarque: Définition des chemins d'appel de ces ressources Les fichiers doivent être à la racine du CLASSPATH (pour des raisons de simplicité lors du «repackaging»). Ainsi ils seront appelés de la manière suivante: this.class.getresourceasstream(«/ac-truststore.jks»); (inputstream vers le keystore) this.class.getresourceasstream(«/crl-list.conf»); (inputstream vers le fichier de configuration des CRL) Pré-requis: 2.2.3. Opération de packaging En présence d'une version clé-en-main, l'applet a été compilée avec deux fichiers d'exemple présents à la racine du classpath. Dans le cas contraire (par exemple après téléchargement du code source), les fichiers `ac-truststore.jks` et `crl-list.conf` ne sont naturellement pas présents. Il faut les créer et les inclure dans le projet de compilation. Manuel: 1. «Dé-zipper» le ficher '.jar' de l'applet A réception de l'applet compilée, il convient de «dé-zipper» le fichier.jar de l'applet dans un répertoire, dans lequel les opérations suivantes seront effectuées. 2. Remplacer les 2 fichiers sus-nommés Deux fichiers d'exemple nommés 'ac-truststore.jks' et 'crl-list.conf' sont présents à la racine du répertoire. Il convient de les remplacer par les fichiers à jour. 3. Création du nouveau fichier.jar de l'applet «Re-zipper» le répertoire mis à jour, puis renommer le fichier '.zip' obtenu en '.jar'. 4. Signature du fichier '.jar' de l'applet Le fichier de l'applet ayant été modifié, sa précédente signature n'est plus valide. Il convient donc de le signer à nouveau: jarsigner -keystore keystore.ks -storepass motdepasse -keypass password applet.jar nom_de_la_clé_à_utiliser 5/17

2.2.4. Spécifications initiales et exigences Les éléments à prendre en compte à l intégration ou au déploiement sont présentés ici. Schéma de packaging de l'applet Ce schéma de packaging met en avant le fait que les certificats d AC de confiance sont embarqués dans le fichier JAR de l applet au moment du packaging, avant la signature de l applet elle-même. Le fait que la liste des AC de confiance et l adresse URL optionnelle d une CRL locale soient signées par l exploitant du système constitue une brique importante en matière de sécurité. En matière de validation de certificat numérique X.509, l'utilisation d'ocsp n'est pas envisagée, ce protocole n'étant pas plus économe en bande passante que la solution présentée ici. Le fait que ces données soient contenues au sein même de l applet ne constitue pas une nécessité. Leur externalisation dans une dépendance spécifique (par ex. security-env.jar) serait tout aussi efficace. Quoiqu il en soit, l ensemble des jars doivent être signés par l exploitant. Cette signature du code est indispensable au fonctionnement de l applet et sa gestion fait partie de la politique de sécurité du système. Bien que cette politique de sécurité soit à la charge de l exploitant, nous attirons votre attention sur l importance de cette problématique (confiance des postes utilisateur dans un certificat de signature d application, habilitation d usage de ce certificat par l exploitant, politique de sécurité JAVA liées aux applets et plus particulièrement aux applets signées via ce certificat...). Attention : Il existe une exception en matière de signature d application : les cryptography providers de JAVA. Ces fichiers 'jar' doivent être signés par un éditeur de cryptography reconnu par SUN/ORACLE et ne doivent pas, en conséquence, être signés par l exploitant. C est le cas des dépendances bcprov.jar bcmail et bctsp. 6/17

2.3. Retour sur les ACs de confiance (les Autorités de confiance de confiance!) N importe quelle autorité de confiance n est pas de confiance du point de vue de l exploitant. Seule une liste exhaustive d autorités de confiance bénéficie de ce privilège. Cette liste d autorités de confiance est embarquée dans l applet JAVA sous la forme d un fichier de type keystore (.ks au format JCEKS). Ce keystore est de fait un conteneur de certificats des AC de confiance. Notons que chaque certificat d AC de confiance comprend normalement un champs avec l adresse URL de la CRL de l AC. Ce champs sera utilisé pour vérifier la validité du certificat au moment de la signature (ou de la vérification). Le fichier de configuration local-crl-list.conf comprend un paramètre local-crl qui peut être renseigné avec l adresse URL d une CRL locale. Cela répond au besoin de déclarer invalide un certificat auprès du système (une personne n a plus le droit de se connecter, de signer ou de vérifier) sans pour autant que le certificat de la personne soit révoqué par son AC émettrice (elle n a pas changé d identité, a payé sa redevance). Son utilisation n'est dont pas nécessaire, c'est une commodité pour l'exploitant. 2.4. Constitution d'un magasin d'ac A partir des codes sources, il n'y a pas de magasin de clé 'ac-truststore.jks'. La méthode proposée repose sur l'usage de l'outil Porte-Cle (logiciel libre JAVA, testé en version : 1.5). https://sourceforge.net/projects/portecle Créer un nouveau keystore format JKS, si il n'existe pas, au format JKS. L'exemple ci-après montre l'enrichissement du truststore avec une nouvelle AC : Figure : Le logiciel Portecle L'ouverture d'un keystore se fait en cliquant sur le bouton (1). 7/17

Après avoir dézippé l'applet, on a accès au keystore «ac-truststore.jks» : Il contient les AC de confiance couramment reconnues par l'applet, l'ajout d'une nouvelle autorité de certification est réalisée avec le bouton (1) : 8/17

Sélectionner le fichier souhaité : Il est importé dans la liste des AC reconnues, reste à enregistrer le keystore, re-zipper l'applet au format JAR, et surtout signer l'applet avec un certificat dédié à la signature de code JAVA. 9/17

2.5. Fonctionnement de l applet de signature 2.5.1. Schéma simplifié 10/17

2.5.2. Zoom sur l applet 11/17

2.6. Retour visuel de l applet Pour faciliter le travail de l intégrateur web de l applet, les retours visuels de l applet sont directement gérés par celle-ci et non renvoyés à la page appelante. Ainsi les éventuels messages d erreurs ( certificat introuvable, certificat invalide...) seront affichés par l applet. Un code de retour pourra néanmoins être renvoyé au serveur si besoin. 2.7. Usage de l applet Cette applet étant mono-fonctionnelle (signature), elle ne possède pas de «méthode publique» d'appel. Un simple appel à l applet en déclenche le fonctionnement. Exemple d appel (mode 'http'): <applet codebase = "/signatureapplet" code = "org/adullact/parapheur/applets/splittedsign/main.class" archive = "SplittedSignatureApplet.jar, lib/bcmail-jdk16-145.jar, lib/bcprov-jdk16-145.jar, lib/xom-1.1.jar" name = "appletsignature" width = "500" height = "257" > <param name="hash_count" value="3" /> <param name="iddoc_1" value="cert113600080829" /> <param name="iddoc_2" value="docc" /> <param name="iddoc_3" value="presto_guide_1_fr163825080902" /> <param name="hash_1" value="73f227f21065058733cf719533e860d66f04f7b7" /> <param name="hash_2" value="4ea77484f3a1c7dde4c0cca2f5c40953388f19f5" /> <param name="hash_3" value="5139ceb0b9f3cf245394f117b28d10bd17c4f0fe" /> <param name="format_1" value="cms" /> <param name="format_2" value="cms" /> <param name="format_3" value="cms" /> <param name="url_send_content" value="https://www.serveur.local/service" /> <param name="id_user" value="id=4" /> <param name="certificat_cn" value="stephane Vast" /> <param name="certificat_serial" value="00ba45240b21e7dd57" /> <param name="certificat_issuer_cnl" value="ca" /> <param name="return_mode" value="http" /> </applet> 12/17

2.8. Explication des paramètres (API) Paramètre hash_count hash_n iddoc_n url_send_content id_user certificat_cn certificat_serial certificat_issuer_cnl format_n tsa_token_n multisignature return_mode display_cancel Description Nombre de condensats «hash» à chiffrer. Condensat de chaque document à signer (SHA-1 hexa) Nom du document à signer (sera retourné avec la signature correspondante), optionnel. URL vers laquelle le résultat des signatures doit être posté, à utiliser si return_mode='http'. Identifiant du signataire, à utiliser si return_mode='http'. Champ CN du certificat du signataire. Numéro de série du certificat. CN du certificat de l'ac émettrice (garantit l'unicité du numéro de série) - signature détachée: 'CMS' (PKCS#7), 'cms-allin1', 'XADES' - signature enveloppée: 'XADES-env'='PESv2',... (voir ci-dessous) Jeton d'horodatage (optionnel), pour les formats cms et cms-allin1 - 'cosign' : co-signature (mode par défaut pour les signatures) - 'contresign' : contre-signature (non implémenté) - 'http': publication de(s) signature(s) sur url_send_content - 'form': utilisation en mode formulaire (voir ci-dessous) 'true' / 'false': présence d'un bouton Annuler sur l'applet (par défaut à 'false'). Si ce paramètre est positionné à 'true', l'activation du bouton Annuler ordonne la fermeture de la fenêtre parente. Cas particulier: Utilisation avec return_mode="form". Au cas où l'applet doive fournir la signature dans un champ de formulaire Web, le clic sur le bouton [Signer] crée la signature dans l'applet, puis appelle dans la page Web parente (afin que le formulaire vienne chercher la signature) l'url: javascript:injectsignature();. La page Web (qui embarque l'applet) doit donc implémenter une fonction JavaScript injectsignature(), qui ira récupérer la ou les signature(s) auprès de l'applet. Par exemple: function injectsignature() { var signature = null; try { signature = document.applets[0].returnsignature("hash_1"); } } catch (e) { alert(e); } if (signature) { document.forms[0].elements["signature"].value = signature; document.forms[0].elements["finish-button"].click(); } else { return false; } Ou l'identifiant du document s'il existe... 13/17

2.9. Formats de signature Le paramètre 'format_n' détermine le format de la signature à produire par condensat fourni. Les formats possibles sont les suivants : format_n CMS CMS Allin1 PESv2 ou XADES env XADES env xpath XADES XADES T env XADES C env XADES A env Description Format CMS / PKCS#7 détaché standard. Convient pour la plupart des signatures de documents, notamment pour la signature des ACTES Administratifs soumis au contrôle de légalité. [Déconseillé] Format CMS / PKCS#7 «All in One»: mode particulier de co-signature, pour lequel toutes les signatures sont agrégées dans un seul et unique fichier PKCS#7. Format XAdES enveloppé, utilisé pour la signature de documents financiers ou comptables XML (programme PESv2 de la DGFIP), nécessite la présence de l'attribut Id pour fonctionner. Idem que ci-dessus, mais ne requiert pas la présence de l'attribut Id. Ce format est utilisé pour signer les bordereaux dématérialisés de renonciation anticipée pour les DIA. Format XAdES détaché. Format de signature XAdES-T enveloppée, qui inclut un jeton d'horodatage conforme RFC3161. [non implémenté] voir les différentes formes possibles [non implémenté] Intéressant pour l'archivage Cas particulier: co-signature au format PKCS#7 / CMS détachée. Dans les bonnes pratiques, un document co-signé au format PKCS#7 détaché fait suivre avec lui autant de fichiers 'p7s' que de signatures; celles-ci pouvant être rassemblées en un seul fichier ZIP. Il convient de continuer à utiliser format_n = CMS. Cependant, la norme CMS/PKCS#7 prévoit également qu'un fichier PKCS#7 puisse contenir plusieurs «co-signatures». Pour ce faire, l'applet va avoir besoin du conteneur contenant les signatures précédentes, afin d'y ajouter la nouvelle. A noter que ce cas d'utilisation (en exploitant le paramètre format_n = CMS-allin1) est très marginal, et déconseillé. L'applet a besoin d'un paramètre supplémentaire nommé «p7s_n», où 'n' est le numéro du document sur lequel doit porter la nouvelle co-signature. Paramètre format_n hash_n p7s_n Description 'cms-allin1', constante dédiée à ce mode particulier Condensé de chaque document à signer (SHA-1 hexa). Fichier PKCS#7, encodé base64, ou 'null' si pas de conteneur. 14/17

Cas particulier: Signature d'un fichier XML PESv2 (PES-Aller) Les fichiers PESv2 peuvent être signés avec l'applet, moyennant quelques aménagements. En effet, la signature doit être enveloppée (incluse dans le fichier PESv2), et sa génération demande bien plus d'informations que le simple condensé SHA-1 du document. Afin de garder le bénéfice du mode fragmenté de la signature (économie de bande passante), le programme serveur devra mettre en œuvre des transformations du flux XML selon les spécifications en vigueur (voir «Système d'échange des données du PES», diffusé sous le nom de fichier 070415_H1_3_ET_DOSTEC_SystemeEchangesDonneesPES_V2.doc, 4.2.2 «bloc signature électronique»): Sélection des données de l'objet à signer selon l'algorithme standard de création d'une signature enveloppée: http://www.w3.org/2001/xmldsig#enveloped-signature Mise sous forme canonique des données à signer du flux XML PESv2, selon l'algorithme suivant: http://www.w3.org/2001/xml-exc14n# Calcul d'une empreinte SHA-1 sur ce bloc, à mettre dans le paramètre hash_n. En outre, un certain nombre de données sont à extraire du PES_Aller pour renseigner les paramètres à passer à l'applet: Paramètre hash_n pesid_n pesencoding_n nombresignatures_n pespolicyid_n pespolicydesc_n pespolicyhash_n pesspuri_n pescity_n pespostalcode_n pescountryname_n pesclaimedrole_n Description Condensé du bloc PES à signer (SHA-1 hexa), calculé selon méthode ci-dessus. Attribut Id de l'élément pes:pes_aller. Nature de l'encodage de la signature XAdES produite (ISO8859-1,...) Pour les cas de multiples signatures sur le même fichier, indique le nombre de signatures déjà présentes pour l'élément à co-signer. URN de la politique de signature utilisée, sous la forme OIDAsURN, ira dans l'élément xad:identifier. (provient du certificat) Exemple: urn:oid:1.2.250.1.5.3.1.1.10 Description textuelle de la politique de signature, ira dans l'élément xad:description. (provient du certificat) Empreinte SHA-1 de la politique de signature, qui ira dans l'élément xad:sigpolicyhash/xad:digestvalue. (provient du certificat) URL de publication de la politique de signature, ira dans l'élément xad:spuri. (provient du certificat) Ville de signature, élément xad:signatureproductionplace/xad:city. Code postal de la ville de signature, ira dans l'élément xad:signatureproductionplace/xad:postalcode. Pays, élément xad:signatureproductionplace/xad:countryname. Rôle du signataire, élément xad:claimedrole. 15/17

3. Applet de vérification de signature 3.1. Description L applet de vérification de signature a les fonctionnalités suivantes : vérification d une signature détachée au format PKCS#7 ; vérification d une signature détachée au format XAdES ; affichage des informations sur le certificat de signature. Son fonctionnement est le suivant : L applet est lancée avec l adresse URL d une signature et son format en paramètres. Elle invite l utilisateur à sélectionner le fichier local et lui permet de vérifier sa signature. Un retour visuel est présenté à l utilisateur. Packaging de l applet de vérification 16/17

3.2. Usage de l applet de vérification Cette applet étant mono-fonctionnelle (vérification) elle ne possède pas de méthode publique. Un simple appel à l applet en déclenche le fonctionnement. Exemple d'appel : <applet codebase = "/VerificationApplet" code = "org/adullact/verificationapplet/main.class" archive = "verification.jar, lib/bcmail-jdk16-138.jar, lib/bcprov-jdk16-138.jar, lib/xom-1.1.jar" name = "appletverification" width = "500" height = "450" > <param name="url_get_signature" value="http://www.monserveur.net/get_signature.php?id_doc=433387132" /> <param name="format" value="cms" /> </applet> 3.3. Explication des paramètres (API) Paramètre url_get_signature format Description URL à laquelle on obtient la signature à vérifier. Format de signature: 'CMS' ou 'XADES' Il faut noter que l applet va, après son lancement, afficher des informations sur le contenu de la signature (signataire, etc...), et demander à l utilisateur de choisir le document dont il faudra vérifier la signature. 17/17