===== 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