50 votes

Comment signer numériquement un PDF avec un certificat S/MIME ?

J'ai déjà acquis un certificat S/MIME (un fichier .p12) délivré par une autorité. En l'utilisant dans Writer, je peux signer numériquement des documents en suivant la procédure suivante : Comment mettre un certificat numérique à la disposition de LibreOffice Writer pour les signatures numériques ?

Puis-je faire la même chose pour les fichiers PDF ? Si oui, quelle méthode me suggérez-vous ? Je préférerais une solution qui s'appuie sur des logiciels libres.

22voto

Tankman六四 Points 1406

Votre seule option est Portable Signer. Téléchargez-le et exécutez le jar. Il nécessite cependant une clé privée dans un fichier p12 (non compatible avec SmartCard).

On pourrait s'attendre à ce que des outils de signature de documents Ubuntu comme qdigidoc ou gpg fassent l'affaire, mais non, ils ne prennent pas en charge les signatures PDF.

On pourrait alors s'attendre à ce que les outils de manipulation de PDF d'Ubuntu comme qpdf, qui fournit le cryptage, ou pdftk, qui fournit le filigrane, offrent également des fonctions de signature, mais non, ce n'est pas le cas.

La liste totale des outils open source disponibles pour votre objectif est la suivante : http://wiki.cacert.org/PdfSigning

Malheureusement, aucun de ces outils n'est actuellement maintenu et aucun n'est disponible dans les paquets Ubuntu. Portable Signer est l'outil le mieux entretenu de tous.

  • Portable Signer n'a pas été mis à jour depuis 2014 -
  • j
  • j
  • C
  • O
  • F
  • j -

18voto

J'ai découvert qu'il est possible d'utiliser gpg pour signer un PDF de manière à ce qu'il s'ouvre toujours dans une visionneuse.

gpg --clearsign --output=signed.pdf input.pdf

Le fichier .asc obtenu ci-dessus est en fait une concaténation de l'entrée||signature, mais l'extension du fichier est forcée en .pdf, ce qui permet de l'ouvrir dans un visualiseur, de produire des vignettes, etc.

enter image description here

Vous pouvez à nouveau vérifier la signature à l'aide de gpg.

$ gpg --verify signed.pdf 
gpg: Podpisano nie, 12 kwi 2015, 19:07:15 CEST z uzyciem RSA kluczem
gpg: Poprawny podpis od "Arkadiusz Bulski <arek.bulski@gmail.com>"

Attention, certains fichiers PDF ne fonctionnent pas bien avec cette méthode de signature, comme les fichiers PDF optimisés. Vous devez vérifier les résultats par vous-même.

14voto

K3---rnc Points 1116

Si vous disposer du certificat dans Writer et si l'on utilise son Exporter au format PDF vous pouvez également signer numériquement le PDF résultant à partir du dernier onglet de la boîte de dialogue, juste avant l'exportation.

Pour autant que je sache, Acrobat Reader pour Android indique que le document est protégé, pour ce que cela vaut.

Mise à jour '17 : Depuis décembre dernier, vous pouvez signer des fichiers PDF avec LibreOffice en allant File Digital signatures Sign Existing PDF .

Cela ouvrira Draw qui est capable de signer le PDF.

9voto

mak Points 211

Bonne nouvelle ! La visionneuse PDF de KDE Okular (avec Poppler) prend désormais en charge les signatures numériques intégrées dans les PDF, comme le fait Adobe Reader. Les détails se trouvent dans a post by TU Dresden qui a parrainé la mise en œuvre de cette fonctionnalité.

Cette fonctionnalité devrait apparaître dans les versions à partir d'avril 2021 (Okular v21.04, Poppler v21.01). En décembre 2020, il est déjà possible de compiler localement la version de développement actuelle d'Okular et la bibliothèque Poppler PDF pour obtenir la fonctionnalité. Des instructions et un script de construction sont fournis avec le post de la TU Dresden.

J'ai terminé l'installation en suivant les instructions du script (attention aux lignes tronquées dans l'aperçu en ligne !) sur KDE Neon 5.20 (basé sur Ubuntu 20.04 LTS) en utilisant Poppler à partir de commit 407293bf et Okular à partir de commit 110ccd61 (les versions futures devraient bien sûr continuer à fonctionner, donc ceci est juste pour une reproductibilité complète). J'ai installé sous /usr/local/ et créé un script de démarrage okular-sign avec les définitions des variables comme dans le manuel de l'Université de Dresde. La nouvelle version d'Okular est identifiée comme "Version 21.03.70". Comme c'est typiquement le cas pour KDE, cette version "locale" d'Okular interfère avec la version officielle de la distribution, qui est partiellement remplacée par la nouvelle version même lorsque l'on démarre l'ancien binaire (probablement en raison de l'enregistrement des "parties" dans l'ensemble du système de KDE ou d'un autre composant de ce type). J'espère qu'il sera possible de revenir à une version officielle lorsque la prise en charge de la signature sera disponible dans les paquets de ma distribution.

Après une installation réussie, j'ai pu créer une signature numérique comme annoncé dans le post :

  • Ouvrir un PDF
  • Cliquez sur "Signer numériquement" dans le menu "Outils". Vous pouvez également ajouter l'icône "Signer numériquement" dans votre barre d'outils préférée et cliquez dessus.
  • Dessinez un rectangle à l'endroit où vous souhaitez que la signature électronique soit visible. signature électronique.
  • Un dialogue demandera la clé privée à utiliser, au cas où il y en aurait une. plusieurs. Sélectionnez celle que vous souhaitez utiliser.
  • Saisissez la phrase d'authentification de votre clé.

Il est ensuite demandé d'enregistrer le PDF signé sous un nouveau nom de fichier.

8voto

Vous pouvez signer des fichiers PDF avec gpg/seahorse.

En savoir plus : https://help.ubuntu.com/community/GnuPrivacyGuardHowto

Vous pouvez par exemple utiliser OpenSignPDF qui peut être téléchargé ici : http://opensignature.sourceforge.net/english.php

J'espère que cela répond à votre question.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X