===== Signature electronique =====
==== Références ====
=== Généralité ===
* gouv.fr http://www.ssi.gouv.fr/fr/reglementation-ssi/signature-electronique/
* integration libreOffice https://help.libreoffice.org/Common/About_Digital_Signatures/fr
* intégration Adobe pdf: http://helpx.adobe.com/fr/reader/using/sign-pdfs.html
* intégration Microsoft Office: http://office.microsoft.com/fr-fr/excel-help/signer-numeriquement-un-document-office-HA010099768.aspx
=== Technique ===
* verification clé <=> certificat https://kb.wisc.edu/middleware/page.php?id=4064
* conversion pkcs12 https://igc.services.cnrs.fr/GRID2-FR/?body=help_cert.html#anchorconvert1
* signature doc avec openssl http://www-lor.int-evry.fr/~michel/OpenSSL/EssaisSignatures.html
* openssl raw pubkey: http://stackoverflow.com/questions/2385320/verifying-a-file-signature-with-openssl-dgst
* integration Mail TB: http://www.eila.univ-paris-diderot.fr/sysadmin/mail/thunderbird/chiffrement
* intégration libreOffice: http://www.techrepublic.com/blog/diy-it-guy/diy-add-digital-signatures-to-libreoffice-documents/
=== softwares ===
* http://jsignpdf.sourceforge.net/
* http://www.digisigner.com/index.html
* http://wiki.cacert.org/PdfSigning
=== Reglementation ===
* https://services.renater.fr/ssi/securite/rgs/analyse_rgs
* http://www.lsti-certification.fr/images/liste_entreprise/RGS
===== JSignPdf =====
* http://jsignpdf.sourceforge.net/
==== raisons ====
choix de JsignPdf principalement pour:
- JSignPdf is open-source software and can be freely used in both private and business sectors
- JSignPdf is released under Mozilla Public License (version 1.1 or later) and GNU LGPL (version 2.1 or later).
- visible signatures - image and/or description located visualy in a PDF file (page and position can be specified)
- support for batch processing (controlled by command line arguments, without GUI)
Cela correspond bien au choix "d'ecole" que nous mettons en oeuvre et aux moyens associés .
==== Usage ====
Example d'usage de JsignPDF
Parametrage du logiciel avec nos certificats
{{:docpublic:systemes:2014-05-07-jsignpdf-screen1.png?600|}}
positionnement d'un signature visible
{{:docpublic:systemes:2014-05-07-jsignpdf-screen2.png?600|}}
Exemple de fichier signé, cf bas de la 2eme page
{{:docpublic:systemes:sirfex-jres-84-6-jsign.pdf|}}
Potentiel probleme de verification d'une signature par acrobat Reader lié a l'autorité Comodo non reconnue, cf
http://superuser.com/questions/465219/comodo-pdf-sign-doesnt-verify-in-adobe-using-jsignpdf
{{:docpublic:systemes:2014-05-07-acroread-signature-check-fail.png?600|}}
{{:docpublic:systemes:2014-05-09-acroread-signature-check-fail-details1.png?600|}}
{{:docpublic:systemes:2014-05-09-acroread-signature-check-fail-details2.png?600|}}
En indiquant dans acrobat reader via options=> preferences => protection => préférences avancés, de le lire le magasin Windows:
{{:docpublic:systemes:2014-05-09-acroread-signature-check-force.png?400|}}
Alors la signature est maintenant correctement verifiée
{{:docpublic:systemes:2014-05-09-acroread-signature-checked.png?400|}}
===== Signature en ligne de commande openssl =====
Exemple inspiré de http://www-lor.int-evry.fr/~michel/OpenSSL/EssaisSignatures.html avec openssl en cli
1) Signature avec la clé privée
$ openssl dgst -binary -out article-jres-84-6-signature.sig -sign ../secret.key article-jres-84-6.pdf
$ ls -ltr | tail -2
-rw-r--r--. 1 jehan 1000 316494 27 avril 12:42 article-jres-84-6.pdf
-rw-r--r--. 1 jehan 1000 256 27 avril 12:47 article-jres-84-6-signature.sig
2) Extraction de la clée publique du certificat correspondant à la clée privée ci-dessus
$ openssl x509 -pubkey -noout -in ../cert-2233-MTIMT.pem > ../cert-2233-MTIMT-pubkey-format.pem
$ ls -ltr | tail -1
-rw-r--r--. 1 jehan 1000 451 27 avril 12:50 cert-2233-MTIMT-pubkey-format.pem
3) Verification avec la clé publique de la signature (externe au document initial)
$ openssl dgst -signature article-jres-84-6-signature.sig -verify cert-2233-MTIMT-pubkey-format.pem article-jres-84-6.pdf
Verified OK