ONYX - Utilisation - Signature électronique de PDFs

Différence entre versions

De MappingDoc
(Les différents paramètres)
 
(79 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
<languages/>
 
<languages/>
 
<translate>
 
<translate>
==Introduction==
+
==Introduction== <!--T:1-->
Mapping donne la possibilité de signer les PDfs qu'il génère. Pour cela, des certificats électroniques associés à des clés privés sont utilisés.
+
Mapping donne la possibilité de signer numériquement les fichiers PDFs générés. Pour cela, des certificats électroniques associés à des clés privés sont utilisés.
  
==Prérequis==
+
==Prérequis== <!--T:2-->
 
Il faut au préalable avoir à disposition un certificat et une clé privée.<br><br>
 
Il faut au préalable avoir à disposition un certificat et une clé privée.<br><br>
  
 +
<!--T:3-->
 
Génération d’un certificat et d’une clé privé (pour notre exemple via openssl) :
 
Génération d’un certificat et d’une clé privé (pour notre exemple via openssl) :
  
  openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout private.pem -out certificate.cer
+
  <!--T:4-->
 +
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout private.pem -out certificate.cer
  
Clé privé : private.pem
+
<!--T:5-->
 +
Clé privé : private.pem<br>
 
Certificat : certificate.cer
 
Certificat : certificate.cer
  
Cette commande va générer un certificat et une clé privé sans contrôle des organisme de certification. Cela n’a de sens donc uniquement que pour des tests. Pour un usage réel, il faudra obtenir un certificat grâce à l’intermédiaire d'organismes agréés.
+
<!--T:6-->
 +
Cette commande va permettre de générer un certificat et une clé privée dits "autogénérés" sans avoir recours à une autorité de certification. Cela n’a de sens que pour effectuer des tests. Pour un usage réel, il faudra obtenir un certificat par l’intermédiaire d'une autorité de certification (Certificate Authority, CA, AC).
  
==Limites==  
+
==Limites== <!--T:7-->
A définir
+
*Le certificat est bien visible sur Foxit Reader mais non visible facilement sur Acrobat Reader.<br>
 +
*Mapping certifie les documents uniquement avec des signatures invisibles.
  
==Remarque au sujet des certificats==
+
<u>Reste à faire</u> :
Il est possible d'avoir le certificat et le clé privée dans des fichiers séparés ou bien dans le même fichier
+
#Vérifier qu'il soit bien visible si le certificat vient d'un organisme certifieur.
===Dans des fichiers séparés===
+
#Valider le fonctionnement du pfx
 +
#Documentation le timestampurl(a priori il y a un bug sur cette fonctionnalité)
 +
 
 +
==Remarque au sujet des certificats== <!--T:9-->
 +
===Signature visible et invisible : Les différences===
 +
 
 +
Apposer une signature numérique ajoute des métadonnées à un document sans modifier son contenu (et donc sans altérer son intégrité) : C’est ce qui permet d’apposer plusieurs signatures à un document sans compromettre son intégrité.
 +
 
 +
*La signature visible inclut une métadonnée qui contient une marque visible (aspect de signature) lors de la lecture du document, indiquant qu’il a été signé.
 +
*La signature invisible omet cette marque visible.
 +
 
 +
Pour rappel, Mapping gère uniquement les signatures invisibles.
 +
 
 +
<br>
 +
Les deux types de signatures assurent l’intégrité du document. L’information du certificat numérique peut être vue dans les deux types lors de la validation d’une signature. Cependant, sur un document imprimé, seules les signatures visibles apparaissent. Ce type de signature peut être utile si des exemplaires imprimés de documents sont archivés.
 +
 
 +
De plus :
 +
 
 +
*Certifier (signature visible) : Appose une signature certifiée dans un champ de signature numérique existant (si disponible) ou à l’emplacement que vous désignez.
 +
*Certifier (signature invisible) : Certifie le document, mais votre signature apparaît uniquement dans le panneau Signatures.
 +
Le choix du type de signature peut dépendre des politiques de votre entreprise.
 +
 
 +
===Différents types de certificats===
 +
MAPPING prend en charge plusieurs types de certificats
 +
 
 +
====PFX==== <!--T:10-->
 +
Un fichier PFX (ou PKCS#12) est un fichier qui contient à la fois la clé privée et le certificat X.509. La génération des demandes de signature de certificat (CSR, Certificate Signing Request) demeure un problème récurrent pour les clients. Avec un fichier PFX, le client n’a plus à créer son propre CSR. Une autorité de certification s’en charge pour lui de manière entièrement sécurisée pendant le processus de demande de certificat.
 +
 
 +
====CSR==== <!--T:11-->
 +
L’ autorité de certification (AC) utilisera les données de votre demande de signature de certificat pour créer votre certificat SSL. Voici une liste des informations clés :
 +
 
 +
<!--T:12-->
 +
1. Des informations sur votre entreprise et le site web que vous souhaitez sécuriser avec un certificat SSL. Elles comprennent :
 +
 
 +
<!--T:13-->
 +
{| class="wikitable"
 +
|-
 +
! Libellé || Description
 +
|-
 +
| Common Name (CN)(ex : *.exemple.fr www.exemple.fr mail.exemple.fr) || Le nom de domaine pleinement qualifié (FQDN) de votre serveur.
 +
|-
 +
| Organization (O) || La dénomination sociale de votre organisation. Veuillez ne pas utiliser d’abréviation et inclure la forme de l’entreprise, telle que « SA ».Pour les certificats EV et OV SSL, ces informations seront vérifiées par l’AC et incluses dans le certificat.
 +
|-
 +
| Organizational Unit (OU) || Le service de votre organisation responsable de la gestion du certificat.
 +
|-
 +
| City/Locality (L) || La ville où se situe votre organisation. Veuillez entrer le nom complet.
 +
|-
 +
| State/County/Region (S) || Le département ou la région où se situe votre organisation. Veuillez entrer le nom complet.
 +
|-
 +
|Country (C) || Le code à deux lettres du pays où se situe votre organisation.
 +
|-
 +
| Email Address || L’adresse e-mail du contact de votre organisation.
 +
|}
 +
 
 +
<!--T:14-->
 +
2. La clé publique qui sera incluse dans le certificat. Le SSL utilise la cryptographie à clé publique ou asymétrique pour chiffrer les données échangées lors d’une session SSL. La clé publique est utilisée pour le chiffrement et la clé privée correspondante est utilisée pour le déchiffrement des données.
 +
 
 +
<!--T:15-->
 +
3. Des informations sur le type et la longueur de clé. La longueur de clé la plus courante est RSA 2048 mais certaines AC acceptent des clés plus longues (ex : RSA 4096+) et les clés ECC.
 +
 
 +
 
 +
<!--T:16-->
 +
Le CSR est généralement créé au format PEM encodé en Base64. Vous pouvez l’ouvrir avec un simple éditeur de texte
 +
 
 +
<!--T:17-->
 +
Il est possible d'avoir le certificat et la clé privée dans des fichiers séparés ou bien dans le même fichier
 +
 
 +
=====Dans des fichiers séparés===== <!--T:18-->
 
Voici un exemple d'un certificat et une clé privée dans deux fichiers séparés
 
Voici un exemple d'un certificat et une clé privée dans deux fichiers séparés
  
 +
<!--T:19-->
 
<u>Fichier private.pem</u>
 
<u>Fichier private.pem</u>
 
  -----BEGIN PRIVATE KEY-----
 
  -----BEGIN PRIVATE KEY-----
Ligne 38 : Ligne 111 :
 
  -----END CERTIFICATE-----
 
  -----END CERTIFICATE-----
  
===Dans le même fichier===
+
===Dans le même fichier=== <!--T:20-->
 
Voici un exemple d'un certificat et d'une clé privée définis dans le même fichier '''certifcle.pem'''
 
Voici un exemple d'un certificat et d'une clé privée définis dans le même fichier '''certifcle.pem'''
  
 +
<!--T:21-->
 
<u>Fichier certifcle.pem</u>
 
<u>Fichier certifcle.pem</u>
 
<br>
 
<br>
Ligne 46 : Ligne 120 :
 
Son contenu est une simple concaténation du contenu du fichier clé privé et du certificat.
 
Son contenu est une simple concaténation du contenu du fichier clé privé et du certificat.
  
  -----BEGIN PRIVATE KEY-----
+
  <!--T:22-->
 +
-----BEGIN PRIVATE KEY-----
 
  MIIEvgIBADANBgkqhkiG9w0BAQEFA
 
  MIIEvgIBADANBgkqhkiG9w0BAQEFA
 
  ...
 
  ...
Ligne 57 : Ligne 132 :
 
  -----END CERTIFICATE-----
 
  -----END CERTIFICATE-----
  
==Fonctionnement==
+
==Paramétrage== <!--T:23-->
L'utilisation de la signature électronique au sein de MAPPING nécessite un simple paramétrage avec la copie de la clé privé et du certificat. <br>
+
L'utilisation de la signature électronique au sein de MAPPING nécessite la copie de la clé privé et du certificat sur le serveur. <br>
Son utilisation est alors possible dans les '''workflows MAPPING''' ou bien en ligne de commande via la commande '''MAP_XPS'''
+
Son utilisation est alors possible dans les '''workflows''' MAPPING ou bien en ligne de commande via la commande '''map_xps'''
===Paramétrage===
+
===Copie des fichiers sur le serveur===
====Copie des fichiers sur le serveur====
 
 
Il faut mettre le fichier de la clé privé et le fichier du certificat sur le système de fichier de serveur <br>
 
Il faut mettre le fichier de la clé privé et le fichier du certificat sur le système de fichier de serveur <br>
 
<br>
 
<br>
 
(Exemple : /apps/mapping/certificate)
 
(Exemple : /apps/mapping/certificate)
  
====Les différents paramètres====
+
===Les différents paramètres=== <!--T:24-->
  
 +
<!--T:25-->
 
La signature électronique requiert l'utilisation de plusieurs paramètres. Vous trouverez la liste dans le tableau ci-dessous :
 
La signature électronique requiert l'utilisation de plusieurs paramètres. Vous trouverez la liste dans le tableau ci-dessous :
  
 +
<!--T:26-->
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Nom du paramètre !! valeur !! Signification
 
! Nom du paramètre !! valeur !! Signification
 
|-
 
|-
| signclass || >=3 || Signature électronique activé (Sinon mode debug non opérationnel)
+
| '''signclass''' || < 3 || Signature électronique activée (Sinon mode debug non opérationnel)|-
 
|-
 
|-
| signdriver || OPENSSL || Le mode OPENSSL est compatible avec toutes les plateformes supportées par Mapping. Il utilise un ou deux fichiers contenant les clés publiques et privées. Les fichiers doivent se trouver sur le serveur Mapping (chemins réseaux non supportés).
+
| rowspan="4" | '''signdriver''' || VIDE|| Signature électronique désactivée (les autres paramètres n'auront alors pas d'effet)
 
|-
 
|-
| signdriver || FIRSTSIGNATURE || Le mode FIRSTSIGNATURE est valable uniquement sous Windows car il utilise un certificat installé sur le poste. Le certificat utilisé est le premier de la liste des certificats affichés dans Internet Explorer.  
+
| OPENSSL || Le mode OPENSSL est compatible avec toutes les plateformes supportées par Mapping. Il utilise un ou deux fichiers contenant les clés publiques et privées. Les fichiers doivent se trouver sur le serveur Mapping (chemins réseaux non supportés).
 
|-
 
|-
| 1 || SHA1|| Le mode SHA1 est valable uniquement sous Windows car il utilise un certificat installé sur le poste. Le certificat utilisé est le défini par sa clé de hashage (empreinte numérique).  
+
| FIRSTSIGNATURE || Le mode FIRSTSIGNATURE est valable uniquement sous Windows car il utilise un certificat installé sur le poste. Le certificat utilisé est le premier de la liste des certificats affichés dans Internet Explorer.  
 
|-
 
|-
| 1 || FILENAME  || Signature électronique activé
+
| WINDOWS|| Activation du mode SHA1. Ceci est valable uniquement sous Windows car il utilise un certificat installé sur le poste. Le certificat utilisé est le défini par sa clé de hashage (empreinte numérique).
 
|-
 
|-
|2 || Valeur de la passphrase du certificat || N/A
+
| '''signmode''' || FILENAME  || A utiliser pour les signatures électroniques activées en mode OPENSSL
 
|-
 
|-
| 4 || Valeur du SHA1 (utilisé si le sign driver est mis en SHA1 || N/A
+
| '''signpassword''' || Valeur de la passphrase du certificat || Utilisé dans le cas où le certificat contient une passphrase de sécurité
 
|-
 
|-
| 5 || Chemin + nom du fichier de la clé privé || N/A
+
| '''signsha1hash''' || Valeur du SHA1  || utilisé si le paramètre '''signdriver''' est renseigné avec la valeur "WINDOWS"
 
|-
 
|-
| 6 || Chemin + nom du fichier du certificat || N/A
+
| '''signpemfile''' || Chemin complet du fichier de clé privé || Fichier de clé privée seul s'il est séparé du certificat ou fichier contenant à la fois la clé privée et le certificat
 
|-
 
|-
| 7 || Chemin + nom du fichier PFX (dans le cas d'utilisation d'un pfx) || N/A
+
| '''signcerfile''' || Chemin complet du fichier de certificat || Utilisé uniquement si le fichier du certificat est séparé du fichier de clé privée
 
|-
 
|-
| 8 || ?? || N/A
+
| '''signpfxfile''' || Chemin complet du fichier PFX  || Utilisé uniquement pour les fichiers PFX (PKCS#12)
 +
|-
 +
| '''timestampurl''' || ?? || A documenter
 
|}
 
|}
  
 +
==Utilisation== <!--T:27-->
 
===Workflow===
 
===Workflow===
  
 +
<!--T:28-->
 
La boite des workflows MAPPING à utilisée est la boite '''toPDF'''. (XPS to web format / toPDF)
 
La boite des workflows MAPPING à utilisée est la boite '''toPDF'''. (XPS to web format / toPDF)
 
De base, cette boite permet de générer un PDF à partir d'un fichier XPS.
 
De base, cette boite permet de générer un PDF à partir d'un fichier XPS.
 
Cependant il est possible d'y paramétrer une signature électronique.
 
Cependant il est possible d'y paramétrer une signature électronique.
  
 +
<!--T:29-->
 
Onglet Signature
 
Onglet Signature
  
  
 +
<!--T:30-->
 
[[File:OX_S_SIGNPDF1.jpg|1300px|center|sans_cadre]]
 
[[File:OX_S_SIGNPDF1.jpg|1300px|center|sans_cadre]]
  
 +
<!--T:31-->
 +
Cet onglet permet l'initialisation des paramètres listés dans le tableau des paramètres.
  
 +
<!--T:32-->
 +
<u>remarque</u> : A noté que le workflow initialise le paramètre signclass à la valeur 0.
  
 
+
===map_xps=== <!--T:33-->
====Formats Designer==== <!--T:10-->
 
Sur le serveur Mapping 9.1 et au-delà, aller dans la '''Gestion des formats Designer''':
 
  
 +
<!--T:34-->
 +
Il est également possible d'utiliser la commande MAPPING de conversion '''map_xps'''
  
:Sur le menu Mapping, cliquer sur :
+
<!--T:35-->
::#Gestion de formats Designer
+
Il faudra alors initialiser les paramètres de signature électronique via des paramètres '''-param:CLE=VALEUR'''
::#Gestion des formats
 
  
 +
<!--T:36-->
 +
<u>Exemple</u> :
  
La liste de formats Designer opérationnels s'affiche alors.
+
<!--T:37-->
 +
"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" '''"-param:signmode=FILENAME"''' '''"-param:signclass=0"'''
 +
'''-param:signdriver=OPENSSL"''' '''"-param:signpemfile=/apps/mapping/certificate/private.pem"'''
 +
'''"-param:signcerfile=/apps/mapping/certificate/certificate.cer"''' "-toPDF" "-outfile:/apps/mapping/out/out.pdf"
  
 +
==Exemples== <!--T:38-->
 +
===Exemple 1===
 +
Dans cette exemple, nous allons voir comment convertir le fichier d'entrée (fichier XPS) en PDF en lui appliquant un certificat.
 +
Nous allons voir comment faire cela à travers d'un workflow et comment faire la même chose en ligne de commande.
  
[[File:OX_S_VERSIONING1.jpg|1000px|center|sans_cadre]]
+
====Workflows==== <!--T:39-->
  
 +
<!--T:40-->
 +
Création du worflow suivant :
  
Il est alors possible de rentrer dans la gestion des différentes versions d'un format donné en cliquant sur le '''i''' correspondant.
+
<!--T:41-->
 +
[[File:OX_S_SIGNPDF2.jpg|800px|center|sans_cadre]]
  
 +
<!--T:42-->
 +
Détail de la boite toPDF (Onglet standard) :
  
La fenêtre suivante listant toutes les versions et l'historique de toutes les activations du format s'ouvre alors :
+
<!--T:43-->
 +
[[File:OX_S_SIGNPDF3.jpg|800px|center|sans_cadre]]
  
 +
<!--T:44-->
 +
Détail de la boite toPDF (Onglet Signature) :
  
[[File:OX_S_VERSIONING2.jpg|1000px|center|sans_cadre]]
+
<!--T:45-->
 +
[[File:OX_S_SIGNPDF4.jpg|800px|center|sans_cadre]]
  
 +
====Ligne de commande sans profil de conversion==== <!--T:46-->
  
1 : Format concerné<br>
+
<!--T:47-->
2 : Numéro de version du format concerné<br>
+
Exécutez la commande suivante :
3 : Utilisateur ayant procédé à l'importation ou au dernier rollback<br>
 
4 : Commentaire saisi lors d'un rollback<br>
 
5 : Date et heure de l'activation de la version<br>
 
6 : Date et heure de jusqu'à quand la version était active<br>
 
7 : Bouton de rollback<br>
 
  
 +
<!--T:48-->
 +
"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-param:signclass=0" "-param:signmode=FILENAME"
 +
"-param:signdriver=OPENSSL" "-param:signpemfile=/apps/mapping/infile/private.pem"
 +
"-param:signcerfile=/apps/mapping/infile/certificate.cer" "-toPDF" "-outfile:/apps/mapping/output/out.pdf"
  
<u>Rollback de la version V4</u> :
+
====Ligne de commande avec profil de conversion==== <!--T:49-->
  
 +
<!--T:50-->
 +
<u>Profil de conversion utilisé</u> :
  
Dans cet exemple, nous allons réactiver la version V4 en cliquant sur son bouton '''Rollback''' :
+
<!--T:51-->
 +
<pdf_signature>
 +
    <label>for Adobe Reader</label>
 +
    <language>PDF</language>
 +
    <signclass>0</signclass>
 +
    <signmode>FILENAME</signmode>
 +
    <signpassword></signpassword>
 +
    <signdriver>OPENSSL</signdriver>
 +
    <signpfxfile></signpfxfile>
 +
    <signpemfile>apps/mapping/infile/private.pem</signpemfile>
 +
    <signcerfile>apps/mapping/infile/certificate.cer</signcerfile>
 +
  </pdf_signature>
  
 +
<!--T:52-->
 +
Exécuter la commande suivante :
  
[[File:OX_S_VERSIONING3.jpg|1000px|center|sans_cadre]]
+
<!--T:53-->
 +
"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-toPDF" "-outfile:/apps/mapping/output/out.pdf"
 +
"-profile:pdf_signature"
  
 +
===Exemple 2=== <!--T:54-->
 +
Dans cette exemple, nous allons voir comment utiliser un fichier contenant la clé privée et le certificat
  
Voici le résultat alors obtenu :
+
====Workflows==== <!--T:55-->
  
 +
<!--T:56-->
 +
Création du worflow suivant :
  
[[File:OX_S_VERSIONING4.jpg|1000px|center|sans_cadre]]
+
<!--T:57-->
 +
[[File:OX_S_SIGNPDF2.jpg|800px|center|sans_cadre]]
  
  
La version 4 du format est alors activée.
+
<!--T:58-->
 +
Détail de la boite toPDF (Onglet standard) :
  
 +
<!--T:59-->
 +
[[File:OX_S_SIGNPDF3.jpg|800px|center|sans_cadre]]
  
  
<u>Remarque</u> : Il est également possible d'avoir une vue d'ensemble sur tous les formats et de toutes leurs versions. Pour cela, il faut aller sur le sous-menu '''Historique des formats''' du menu '''Gestion des formats Designer'''
+
<!--T:60-->
 +
Détail de la boite toPDF (Onglet Signature) :
  
 +
<!--T:61-->
 +
Le fichier ayant la clé privée et le certificat doit être mis dans le paramètre pem.
  
[[File:OX_S_VERSIONING5.jpg|1000px|center|sans_cadre]]
 
  
===Format Connect=== <!--T:26-->
+
<!--T:62-->
Le fonctionnement avec les formats Connect est le même qu'avec les formats Designer. Nous vous invitons à vous référer à la partie des formats Designer.
+
[[File:OX_S_SIGNPDF5.jpg|800px|center|sans_cadre]]
  
==Ligne de commandes== <!--T:27-->
 
Il est également possible de faire du versioning en ligne de commande en utilisant le binaire '''mapobjectversioncontrol'''
 
  
 +
====Ligne de commande sans profil de conversion==== <!--T:63-->
  
<u>Exemple d'utilisation</u> :  
+
<!--T:64-->
// Sauvegarde le projet KUHN en séquence 20 actuellement en production
+
Exécutez la commande suivante :
mapobjectversioncontrol backup "KUHN" "00020"
 
  
 +
<!--T:65-->
 +
"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-param:signclass=0" "-param:signmode=FILENAME"
 +
"-param:signdriver=OPENSSL" "-param:signpemfile=/apps/mapping/infile/privatekey_certificate.pem" "-toPDF"
 +
"-outfile:/apps/mapping/output/out.pdf"
  
// Restaure le projet KUHN en séquence 10 comme il était en production le 27 avril
+
====Ligne de commande avec profil de conversion==== <!--T:66-->
mapobjectversioncontrol restore "2019-04-27T23:59:59.000Z" "KUHN" "00010"
 
  
  
// Liste les projets déjà versionnés
+
<!--T:67-->
mapobjectversioncontrol list
+
<u>Profil de conversion utilisé</u> :
  
 +
<!--T:68-->
 +
<pdf_signature>
 +
    <label>for Adobe Reader</label>
 +
    <language>PDF</language>
 +
    <signclass>0</signclass>
 +
    <signmode>FILENAME</signmode>
 +
    <signpassword></signpassword>
 +
    <signdriver>OPENSSL</signdriver>
 +
    <signpfxfile></signpfxfile>
 +
    <signpemfile>apps/mapping/infile/privatekey_certificate.pem</signpemfile>
 +
    <signcerfile></signcerfile>
 +
  </pdf_signature>
  
Toutes les actions ayant un impact sur le repository sont versionnées automatiquement.
 
  
 +
<!--T:69-->
 +
Exécuter la commande suivante :
  
Il sera bientôt possible de restaurer grâce au numéro de version :
+
<!--T:70-->
  mapobjectversioncontrol restore "KUHN" "00010" v3
+
"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-toPDF" "-outfile:/apps/mapping/output/out.pdf"
 +
"-profile:pdf_signature"
  
==Cas particulier==
+
==Liens externes==
===Cas des formats déjà présents===
 
  
 +
*https://helpx.adobe.com/fr/acrobat/using/validating-digital-signatures.html
  
Dans le cas où des formats sont déjà présents dans l'environnement (créés grâce à la copie du contenu du répertoire MAP400 à partir d'un environnement sans mécanisme de versioning ou lors de l'upgrade d'une version antérieure à la V9.1), la version V0 de ce format ne sera pas sauvegardée dans le mécanisme de versioning.
+
</translate>
  
 
+
Signature électronique Signature numérique, signature PDF
Par conséquent, lors de l'import de la prochaine version V1 de ce format, la version V1 sera bien sauvegardée mais la V0 sera perdue.
 
 
 
 
 
Afin d'éviter cela, avant d'importer la V1 du format, il faut exécuter la commande suivante :
 
/apps/mapping/bin/mapobjectversioncontrol backup "format" "sequence"
 
 
 
 
 
Cela aura pour effet de créer une entrée de la version V0 dans le mécanisme de versioning.
 
Cette version sera alors disponible dans l'interface de rollback des formats.
 
</translate>
 

Version actuelle datée du 31 mars 2021 à 14:02

Autres langues :
English • ‎français

Introduction

Mapping donne la possibilité de signer numériquement les fichiers PDFs générés. Pour cela, des certificats électroniques associés à des clés privés sont utilisés.

Prérequis

Il faut au préalable avoir à disposition un certificat et une clé privée.

Génération d’un certificat et d’une clé privé (pour notre exemple via openssl) :

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout private.pem -out certificate.cer

Clé privé : private.pem
Certificat : certificate.cer

Cette commande va permettre de générer un certificat et une clé privée dits "autogénérés" sans avoir recours à une autorité de certification. Cela n’a de sens que pour effectuer des tests. Pour un usage réel, il faudra obtenir un certificat par l’intermédiaire d'une autorité de certification (Certificate Authority, CA, AC).

Limites

  • Le certificat est bien visible sur Foxit Reader mais non visible facilement sur Acrobat Reader.
  • Mapping certifie les documents uniquement avec des signatures invisibles.

Reste à faire :

  1. Vérifier qu'il soit bien visible si le certificat vient d'un organisme certifieur.
  2. Valider le fonctionnement du pfx
  3. Documentation le timestampurl(a priori il y a un bug sur cette fonctionnalité)

Remarque au sujet des certificats

Signature visible et invisible : Les différences

Apposer une signature numérique ajoute des métadonnées à un document sans modifier son contenu (et donc sans altérer son intégrité) : C’est ce qui permet d’apposer plusieurs signatures à un document sans compromettre son intégrité.

  • La signature visible inclut une métadonnée qui contient une marque visible (aspect de signature) lors de la lecture du document, indiquant qu’il a été signé.
  • La signature invisible omet cette marque visible.

Pour rappel, Mapping gère uniquement les signatures invisibles.


Les deux types de signatures assurent l’intégrité du document. L’information du certificat numérique peut être vue dans les deux types lors de la validation d’une signature. Cependant, sur un document imprimé, seules les signatures visibles apparaissent. Ce type de signature peut être utile si des exemplaires imprimés de documents sont archivés.

De plus :

  • Certifier (signature visible) : Appose une signature certifiée dans un champ de signature numérique existant (si disponible) ou à l’emplacement que vous désignez.
  • Certifier (signature invisible) : Certifie le document, mais votre signature apparaît uniquement dans le panneau Signatures.

Le choix du type de signature peut dépendre des politiques de votre entreprise.

Différents types de certificats

MAPPING prend en charge plusieurs types de certificats

PFX

Un fichier PFX (ou PKCS#12) est un fichier qui contient à la fois la clé privée et le certificat X.509. La génération des demandes de signature de certificat (CSR, Certificate Signing Request) demeure un problème récurrent pour les clients. Avec un fichier PFX, le client n’a plus à créer son propre CSR. Une autorité de certification s’en charge pour lui de manière entièrement sécurisée pendant le processus de demande de certificat.

CSR

L’ autorité de certification (AC) utilisera les données de votre demande de signature de certificat pour créer votre certificat SSL. Voici une liste des informations clés :

1. Des informations sur votre entreprise et le site web que vous souhaitez sécuriser avec un certificat SSL. Elles comprennent :

Libellé Description
Common Name (CN)(ex : *.exemple.fr www.exemple.fr mail.exemple.fr) Le nom de domaine pleinement qualifié (FQDN) de votre serveur.
Organization (O) La dénomination sociale de votre organisation. Veuillez ne pas utiliser d’abréviation et inclure la forme de l’entreprise, telle que « SA ».Pour les certificats EV et OV SSL, ces informations seront vérifiées par l’AC et incluses dans le certificat.
Organizational Unit (OU) Le service de votre organisation responsable de la gestion du certificat.
City/Locality (L) La ville où se situe votre organisation. Veuillez entrer le nom complet.
State/County/Region (S) Le département ou la région où se situe votre organisation. Veuillez entrer le nom complet.
Country (C) Le code à deux lettres du pays où se situe votre organisation.
Email Address L’adresse e-mail du contact de votre organisation.

2. La clé publique qui sera incluse dans le certificat. Le SSL utilise la cryptographie à clé publique ou asymétrique pour chiffrer les données échangées lors d’une session SSL. La clé publique est utilisée pour le chiffrement et la clé privée correspondante est utilisée pour le déchiffrement des données.

3. Des informations sur le type et la longueur de clé. La longueur de clé la plus courante est RSA 2048 mais certaines AC acceptent des clés plus longues (ex : RSA 4096+) et les clés ECC.


Le CSR est généralement créé au format PEM encodé en Base64. Vous pouvez l’ouvrir avec un simple éditeur de texte

Il est possible d'avoir le certificat et la clé privée dans des fichiers séparés ou bien dans le même fichier

Dans des fichiers séparés

Voici un exemple d'un certificat et une clé privée dans deux fichiers séparés

Fichier private.pem

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFA
...
HRgFVVNXS8jTjAo2LL7U6rZK8gwsXWzqaXNLsvwj9HoF89+reRosTfIIk
-----END PRIVATE KEY-----


Fichier certificate.cer

-----BEGIN CERTIFICATE-----
MIID2TCCAsGgAwIBAgIJAKcd3Qk2E
...
bJVSEN4kV0mdg5jrFhCCZjrlumzs+MQ=
-----END CERTIFICATE-----

Dans le même fichier

Voici un exemple d'un certificat et d'une clé privée définis dans le même fichier certifcle.pem

Fichier certifcle.pem

Son contenu est une simple concaténation du contenu du fichier clé privé et du certificat.

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFA
...
HRgFVVNXS8jTjAo2LL7U6rZK8gwsXWzqaXNLsvwj9HoF89+reRosTfIIk
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIID2TCCAsGgAwIBAgIJAKcd3Qk2E
...
bJVSEN4kV0mdg5jrFhCCZjrlumzs+MQ=
-----END CERTIFICATE-----

Paramétrage

L'utilisation de la signature électronique au sein de MAPPING nécessite la copie de la clé privé et du certificat sur le serveur.
Son utilisation est alors possible dans les workflows MAPPING ou bien en ligne de commande via la commande map_xps

Copie des fichiers sur le serveur

Il faut mettre le fichier de la clé privé et le fichier du certificat sur le système de fichier de serveur

(Exemple : /apps/mapping/certificate)

Les différents paramètres

La signature électronique requiert l'utilisation de plusieurs paramètres. Vous trouverez la liste dans le tableau ci-dessous :

Nom du paramètre valeur Signification
signclass < 3 -
signdriver VIDE Signature électronique désactivée (les autres paramètres n'auront alors pas d'effet)
OPENSSL Le mode OPENSSL est compatible avec toutes les plateformes supportées par Mapping. Il utilise un ou deux fichiers contenant les clés publiques et privées. Les fichiers doivent se trouver sur le serveur Mapping (chemins réseaux non supportés).
FIRSTSIGNATURE Le mode FIRSTSIGNATURE est valable uniquement sous Windows car il utilise un certificat installé sur le poste. Le certificat utilisé est le premier de la liste des certificats affichés dans Internet Explorer.
WINDOWS Activation du mode SHA1. Ceci est valable uniquement sous Windows car il utilise un certificat installé sur le poste. Le certificat utilisé est le défini par sa clé de hashage (empreinte numérique).
signmode FILENAME A utiliser pour les signatures électroniques activées en mode OPENSSL
signpassword Valeur de la passphrase du certificat Utilisé dans le cas où le certificat contient une passphrase de sécurité
signsha1hash Valeur du SHA1 utilisé si le paramètre signdriver est renseigné avec la valeur "WINDOWS"
signpemfile Chemin complet du fichier de clé privé Fichier de clé privée seul s'il est séparé du certificat ou fichier contenant à la fois la clé privée et le certificat
signcerfile Chemin complet du fichier de certificat Utilisé uniquement si le fichier du certificat est séparé du fichier de clé privée
signpfxfile Chemin complet du fichier PFX Utilisé uniquement pour les fichiers PFX (PKCS#12)
timestampurl ?? A documenter

Utilisation

Workflow

La boite des workflows MAPPING à utilisée est la boite toPDF. (XPS to web format / toPDF) De base, cette boite permet de générer un PDF à partir d'un fichier XPS. Cependant il est possible d'y paramétrer une signature électronique.

Onglet Signature


OX S SIGNPDF1.jpg

Cet onglet permet l'initialisation des paramètres listés dans le tableau des paramètres.

remarque : A noté que le workflow initialise le paramètre signclass à la valeur 0.

map_xps

Il est également possible d'utiliser la commande MAPPING de conversion map_xps

Il faudra alors initialiser les paramètres de signature électronique via des paramètres -param:CLE=VALEUR

Exemple :

"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-param:signmode=FILENAME" "-param:signclass=0"
-param:signdriver=OPENSSL" "-param:signpemfile=/apps/mapping/certificate/private.pem"
"-param:signcerfile=/apps/mapping/certificate/certificate.cer" "-toPDF" "-outfile:/apps/mapping/out/out.pdf"

Exemples

Exemple 1

Dans cette exemple, nous allons voir comment convertir le fichier d'entrée (fichier XPS) en PDF en lui appliquant un certificat. Nous allons voir comment faire cela à travers d'un workflow et comment faire la même chose en ligne de commande.

Workflows

Création du worflow suivant :

OX S SIGNPDF2.jpg

Détail de la boite toPDF (Onglet standard) :

OX S SIGNPDF3.jpg

Détail de la boite toPDF (Onglet Signature) :

OX S SIGNPDF4.jpg

Ligne de commande sans profil de conversion

Exécutez la commande suivante :

"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-param:signclass=0" "-param:signmode=FILENAME" 
"-param:signdriver=OPENSSL" "-param:signpemfile=/apps/mapping/infile/private.pem" 
"-param:signcerfile=/apps/mapping/infile/certificate.cer" "-toPDF" "-outfile:/apps/mapping/output/out.pdf"

Ligne de commande avec profil de conversion

Profil de conversion utilisé :

<pdf_signature>
   <label>for Adobe Reader</label>
   <language>PDF</language>
   <signclass>0</signclass>
   <signmode>FILENAME</signmode>
   <signpassword></signpassword>
   <signdriver>OPENSSL</signdriver>
   <signpfxfile></signpfxfile>
   <signpemfile>apps/mapping/infile/private.pem</signpemfile>
   <signcerfile>apps/mapping/infile/certificate.cer</signcerfile>
 </pdf_signature>

Exécuter la commande suivante :

"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-toPDF" "-outfile:/apps/mapping/output/out.pdf"
"-profile:pdf_signature"

Exemple 2

Dans cette exemple, nous allons voir comment utiliser un fichier contenant la clé privée et le certificat

Workflows

Création du worflow suivant :

OX S SIGNPDF2.jpg


Détail de la boite toPDF (Onglet standard) :

OX S SIGNPDF3.jpg


Détail de la boite toPDF (Onglet Signature) :

Le fichier ayant la clé privée et le certificat doit être mis dans le paramètre pem.


OX S SIGNPDF5.jpg


Ligne de commande sans profil de conversion

Exécutez la commande suivante :

"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-param:signclass=0" "-param:signmode=FILENAME" 
"-param:signdriver=OPENSSL" "-param:signpemfile=/apps/mapping/infile/privatekey_certificate.pem" "-toPDF"
"-outfile:/apps/mapping/output/out.pdf"

Ligne de commande avec profil de conversion

Profil de conversion utilisé :

<pdf_signature>
   <label>for Adobe Reader</label>
   <language>PDF</language>
   <signclass>0</signclass>
   <signmode>FILENAME</signmode>
   <signpassword></signpassword>
   <signdriver>OPENSSL</signdriver>
   <signpfxfile></signpfxfile>
   <signpemfile>apps/mapping/infile/privatekey_certificate.pem</signpemfile>
   <signcerfile></signcerfile>
 </pdf_signature>


Exécuter la commande suivante :

"/apps/mapping/bin/map_xps" "-infile:/apps/mapping/infile/infile.xps" "-toPDF" "-outfile:/apps/mapping/output/out.pdf"
"-profile:pdf_signature"

Liens externes


Signature électronique Signature numérique, signature PDF