Springe zum Hauptinhalt
Universitätsrechenzentrum
Unterzeichnen von PDF-Dokumenten

Unterzeichnen von PDF-Dokumenten

Vorwort

Mit der verstärkten Umsetzung papierloser Vorgänge und Arbeitsabläufe nimmt auch die Bedeutung digitaler Unterschriften zu. Im Bereich Dokumentenaustausch spielt dabei das PDF-Format eine vorrangige Rolle. Für Dokumente dieses Formats besteht die Möglichkeit der digitalen Unterschrift (Signatur). Als Identitätsnachweis der unterzeichnenden Person kommen verschiedene Möglichkeiten wie Zertifikate oder Smartcards in Frage.

Mit der folgenden Anleitung wird das Unterschreiben auf Basis der bereits für das Signieren und Verschlüsseln von E-Mails eingesetzten persönlichen Zertifikate erläutert.

Aussagen zur rechtlichen Anerkennung der hier beschriebenen digitalen Unterschriften können an dieser Stelle nicht getroffen werden. Jedoch sei darauf verwiesen, dass unterschiedliche Angriffsszenarien zur nachträglichen Manipulation signierter PDF-Dokumente existieren, welche unter Umständen nicht erkennbar sind.

Voraussetzungen

Als Identitätsnachweis benötigen Sie ein persönliches Zertifikat (X.509-Zertifikat), wie es für das Signieren und Verschlüsseln von E-Mails eingesetzt wird. Die Beantragung ist unter „Anfordern eines persönlichen Zertifikats“ beschrieben.

Hinweis: Schützen Sie Ihr persönliches Zertifikat und das zugehörige Passwort besonders sorgfältig. Verwenden Sie es nur auf vertrauenswürdigen Endgeräten.

PDF-Signatur einfügen

JSignPdf (plattformunabhängig)

Informationen zur Software: Projektseite von JSignPdf

Hauptfenster von JsignPDF
  1. Wahl der Schlüsselbunddatei

    Die Schlüsselbunddatei und das Schlüsselbund Passwort dienen dem Nachweis Ihrer Identität.

    • Als Schlüsselbundtyp ist das Format BCPKCS12 einzustellen
    • Wählen Sie als Identitätsnachweise Ihr persönliches Nutzerzertifikat (Datei mit Endung .p12), welches Sie auch in Ihre E-Mail-Anwendung importiert haben
    • Geben Sie das Passwort für die Zertifikatsdatei an, welches Sie beim Export vergeben haben
  2. Zu signierendes Dokument wählen

    Wählen Sie das zu signierende Dokument. Dabei muss es sich um einen Datei im PDF-Format handeln. Sofern keine Ausgabedatei festgelegt wurde, legt JSignPdf eine neue Datei mit der Ergänzung _signed neben dem ausgewählten Dokument an.

  3. Signatur anhängen

    Aktivieren Sie diese Option nur, wenn das Dokument bereits eine digitale Signatur enthält und Sie eine weitere Signatur anhängen möchten. (Enthält das Dokument noch keine digitale Signatur tritt ein Fehler beim Signieren auf.)

  4. DFN-Zeitstempeldienst nutzen Zeitstempeldialog von JsignPDF

    Optional kann die digitale Unterschrift mit dem Zeitstempel eines vertrauenswürdigen Anbieters versehen werden. Für den Einsatz empfehlen wir den Zeitstempeldienst der DFN-PKI. Für die Konfiguration aktivieren Sie die Option Verwenden Zeitstempel-Server und geben Sie als TSA URL http://zeitstempel.dfn.de/ an.

  5. Position der Unterschrift festlegen Signaturdialog von JsignPDF

    In den Einstellungen kann die Position der Unterschrift festgelegt werden.

    • Standardmäßig wird die Unterschrift links unten platziert, mittels Preview & Select kann ein Rahmen an der vorgesehenen Stelle im Dokument festgelegt werden.

    An der Position der Unterschrift wird mit den Voreinstellungen ein Text: Digital unterschrieben von Vorname Name sowie das Datum und falls angegeben die Begründung und der Ort aus dem Hauptfenster dargestellt.
    Zusätzlich kann die Unterschrift durch eine Grafik, beispielsweise einen Scan der eigenen Unterschrift, hinterlegt werden. Dafür sind zur Anzeige Bild und Beschreibung zu wählen und eine Bilddatei mit der Unterschrift anzugeben.
    Tipp: Variieren Sie die Einstellungen bis Sie das gewünschte Ergebnis erhalten.

  6. Signieren

    Die Schritte des Signierens sowie das erfolgreiche Erzeugen der Signatur werden in einem Fenster ausgegeben. (Die Ausgaben können auch für die Fehlersuche herangezogen werden.)

Adobe Acrobat Reader (Microsoft Windows)

  1. Hinzufügen des persönlichen Zertifikats
    • Dafür benötigen Sie Ihr persönliches Zertifikat (Datei mit Endung .p12), welches Sie auch in Ihre E-Mail-Anwendung importiert haben.
    • Klicken Sie im Acrobat Reader: BearbeitenEinstellungen → Kategorie: Unterschriften → Dialog: Identitäten und vertrauenswürdige Zertifikate
    • Wählen Sie im Dialog Einstellungen für digitale IDs und vertrauenswürdige Zertifikate links Digitale ID-Dateien und danach die Schaltfläche Datei anhängen. Zertifikat-hinzufügen-Dialog im Adobe Acrobat Reader
      • Jetzt werden Sie aufgefordert, die digitale ID-Datei auszuwählen (Ihr persönliches Zertifikat mit der Endung .p12).
      • Im folgenden Schritt wird das Kennwort zum Öffnen der digitalen ID-Datei abgefragt (welches Sie beim Export vergeben haben).
    • Der Import Ihres persönlichen Zertifikats ist jetzt abgeschlossen. Beim Signieren mit diesem Zertifikat werden Sie wieder nach dem Kennwort zum Öffnen der digitalen ID-Datei gefragt.
  2. Zeitstempeldienst konfigurieren

    Die digitale Unterschrift kann mit einem Zeitstempel eines vertrauenswürdigen Anbieters versehen werden. Für den Einsatz empfehlen wir den Zeitstempeldienst der DFN-PKI.

    • Klicken Sie im Acrobat Reader: BearbeitenEinstellungen → Kategorie: Unterschriften → Dialog: Zeitstempel für Dokumente
    • Fügen Sie einen neuen Uhrzeitstempelserver über das + -Symbol mit folgenden Angaben hinzu:
      • Server-URL: http://zeitstempel.dfn.de/ Dialog zur Konfiguration des Zeitstempelservers im Adobe Acrobat Reader
      • Mit der Option Standardeinstellungen festlegen wird der neu angelegte Zeitstempelserver automatisch für digitale Unterschriften benutzt. (Während des Signierens wird eine Verbindung zum Zeitstempelserver aufgebaut, diese Verbindung müssen Sie bei einer Rückfrage des Acrobat Readers zulassen.)
  3. Signieren von Dokumenten
    • Öffnen Sie das zu signierende Dokument im Acrobat Reader.
    • Wählen Sie den Dialog BearbeitenWerkzeuge verwalten und öffnen Sie das Werkzeug Zertifikate.
      • In der Werkzeugleiste finden Sie jetzt die Option Digital unterschreiben Digital-unterschrieben-Schaltfläche im Adobe Acrobat Reader
      • Nach Aktivieren der Option werden Sie aufgefordert, einen Bereich für die digitale Unterschrift im Dokument auszuwählen.
      • Zum Signieren wird jetzt Ihre importierte Digitale ID angeboten.
      • Das Erscheinungsbild der Signatur kann angepasst werden (z. B. mit Scan oder Skizze der Unterschrift).
      • Vor dem Unterschreiben werden Sie zur Eingabe des Kennworts für Ihre Digitale ID-Datei aufgefordert.
      • Mit der Abfrage eines Dateinamens für das unterschriebene Dokument wird dieses gespeichert.

Libre Office

Die Libre-Office-Suite kann gültige digitale Signaturen erzeugen, jedoch werden diese in der Dokumentenansicht nicht angezeigt.

Beim Exportieren eines in Libre Office erstellten Dokuments in das PDF-Format befinden sich die zugehörigen Einstellungen im Tab Digitale Signaturen. Libre Office greift dabei standardmäßig auf die Zertifikate der E-Mail-Anwendung Thunderbird zurück. Die Pfade zur Zertifikatsdatenbank können im Dialog ExtrasOptionen unter Libre OfficeSicherheitZertifikate eingerichtet werden.

Okular

Okular unterstützt das Signieren seit Version 21.04 und verwendet NSS zur Verarbeitung der Zertifikate. Diese werden standardmäßig aus dem Firefox-Speicher geladen. Es gibt aber auch die Möglichkeit einen eigenen Zertifikatsspeicher anzulegen.

$ mkdir -p ~/.nss
$ certutil -N -d ~/.nss
$ pk12util -i cert.p12 -d ~/.nss

Unter Okular wird der Zertifikatsspeicher wie folgt eingerichtet: EinstellungenAnzeigemodulePDF → Pfad zur NSS-Datenbank angeben. Danach muss Okular zwingend neu gestartet werden.

Digital-signieren-Funktionsruf in Okular

So erstellt man dann eine Signatur: ExtrasDigital signieren … → Rechteckigen Bereich auswählen → Schlüssel auswählen → Dateinamen für signiertes PDF angeben.

PDF-Signatur überprüfen

PDF ist ein Container-Format, welches es ermöglicht, ein Dokument im Nachhinein zu ergänzen bzw. Inhalte eines Dokuments zu ändern. Die Änderungen werden dem Dokument i. d. R. hinzugefügt. Ursprüngliche Inhalte bleiben erhalten, werden nur nicht mehr angezeigt. Aus diesem Grund bleibt die Signatur eines geänderten PDF-Dokuments gültig. Dies hat Folgen für die Signaturprüfung.

Die Person, die ein Dokument prüft, muss erkennen, ob die Signatur

  • gültig und unverändert ist oder
  • gültig, das Dokument aber nachträglich geändert wurde oder
  • ungültig ist.

Gerade die Darstellung der ersten beiden Punkte ist im PDF-Betrachter nur subtil unterschiedlich. Sollte der zweite Fall eintreten, darf man sich nicht auf den angezeigten Inhalt verlassen. Gute PDF-Betrachter bieten die Möglichkeit, die unterzeichnete Version des Dokuments anzuzeigen und nachträgliche Änderungen auszublenden. Auf diese Funktion muss dann zurückgegriffen werden.

Trotz sorgfältigen Vorgehens gibt es Möglichkeiten, die Signaturprüfung einiger PDF-Betrachter auszutricksen (https://www.pdf-insecurity.org/). Aus diesem Grund ist es notwendig, stets aktuelle Versionen einzusetzen und sich fortlaufend über den aktuellen Stand der Technik zu informieren.

Adobe Acrobat Reader (Microsoft Windows)

Der Acrobat Reader von Adobe kann digitale Signaturen in PDF-Dokumenten prüfen und die Eigenschaften der Signatur anzeigen.

Unterschrift-prüfen-Ansicht im Adobe Acrobat Reader

Leider vertraut der Acrobat Reader nicht von Hause aus der Zertifizierungsstelle des DFN-Vereins bzw. von Sectigo (neuere Zertifikate), welche die persönlichen Zertifikate ausgeben. Um diesbezüglich eine erfolgreiche Validierung der digitalen Unterschrift zu erreichen, muss das entsprechende Wurzelzertifikat im Acrobat Reader bekannt gemacht werden. Gehen Sie dafür wie folgt vor:

  1. Speichern Sie das Wurzelzertifikat T-Telesec Global Root Class 2 von der Corporate-PKI-Seite der Deutschen Telekom AG im .crt-Format
    Bzw. Speichern Sie das Wurzelzertifikat AAA Certificate Services von Sectigo Limited im .crt-Format („Download Certificate: PEM“).
  2. Klicken Sie im Acrobat Reader: BearbeitenEinstellungen → Kategorie: Unterschriften → Dialog: Identitäten und vertrauenswürdige Zertifikate
  3. Wählen Sie im Dialog Einstellungen für digitale IDs und vertrauenswürdige Zertifikate links Vertrauenswürdige Zertifikate und danach die Schaltfläche Importieren Ansicht nach Importieren eines weiteren Wurzelzertifikats im Adobe Acrobat Reader
  4. Wählen Sie im Dialog Zu importierenden Kontakt auswählenDurchsuchen das gespeicherte Wurzelzertifikat.
  5. Wählen Sie jetzt das importierte Zertifikat aus und öffnen Sie den Dialog: Vertrauenswürdigkeit... Dialog zum Ändern der Vertrauenswürdigkeit eines Zertifikats im Adobe Acrobat Reader
  6. Aktivieren Sie die Option: Dieses Zertifikat als vertrauenswürdigen Stamm verwenden.
  7. Nach schließen des Dialogs Vertrauenswürdigkeit wählen Sie Importieren, der Importvorgang wird anschließend bestätigt
  8. Eine erneute Validierung der Unterschriften sollte diese als gültig bestätigen

Libre Office

Die Draw-Anwendung der Libre-Office-Suite kann PDF-Dokumente öffnen und digitale Signaturen anzeigen.

Über den Dialog DateiEigenschaften finden Sie im Tab Allgemein weitere Informationen unter dem Dialog Digitale Signaturen….

Ist die Signatur gültig, wird dies signalisiert: Signatur-gültig-Anzeige in Libre Office

Wurde nur ein Teil des Dokumentes signiert, wird dies durch folgenden Dialog angezeigt: Dokument-teilweise-signiert-Hinweis in Libre Office

Fehlerhafte oder ungültige Signaturen werden wie folgt signalisiert: Signatur-ungültig-Hinweis in Libre Office

pdfsig

Das Kommandozeilenwerkzeug pdfsig aus der aktuellen Poppler-Bibliothek kann digitale Signaturen anzeigen und prüfen.

Informationen zur Bibliothek: Homepage der PDF Rendering Engine Poppler

Folgendes Dokument ist gültig signiert und wurde nicht nachträglich verändert:

$ pdfsig File_signed.pdf
Digital Signature Info of: File_signed.pdf
Signature #1:
  - Signer Certificate Common Name: Vorname Name
  - Signer full Distinguished Name: CN=Vorname Name,OU=Universitaetsrechenzentrum,O=Technische Universitaet Chemnitz,C=DE
  - Signing Time: Aug 11 2020 11:01:10
  - Signing Hash Algorithm: SHA-256
  - Signature Type: adbe.pkcs7.detached
  - Signed Ranges: [0 - 4360], [34362 - 113127]
  - Total document signed
  - Signature Validation: Signature is Valid.
  - Certificate Validation: Certificate is Trusted.

Folgendes Dokument ist gültig signiert, wurde aber nachträglich verändert. Das ist am „Not total document signed“ zu erkennen.

$ pdfsig File_signed.pdf
Digital Signature Info of: File_signed.pdf
Signature #1:
  - Signer Certificate Common Name: Vorname Name
  - Signer full Distinguished Name: CN=Vorname Name,OU=Universitaetsrechenzentrum,O=Technische Universitaet Chemnitz,C=DE
  - Signing Time: Nov 16 2020 12:46:55
  - Signing Hash Algorithm: SHA-256
  - Signature Type: adbe.pkcs7.detached
  - Signed Ranges: [0 - 67686], [98030 - 207260]
  - Not total document signed
  - Signature Validation: Signature is Valid.
  - Certificate Validation: Certificate is Trusted.

Folgendes Dokument ist ungültig:

$ pdfsig File_signed.pdf
Digital Signature Info of: File_signed.pdf
Signature #1:
  - Signer Certificate Common Name: Vorname Name
  - Signer full Distinguished Name: CN=Vorname Name,OU=Universitaetsrechenzentrum,O=Technische Universitaet Chemnitz,C=DE
  - Signing Time: Nov 16 2020 12:46:55
  - Signing Hash Algorithm: SHA-256
  - Signature Type: adbe.pkcs7.detached
  - Signed Ranges: [0 - 67686], [98030 - 207260]
  - Total document signed
  - Signature Validation: Digest Mismatch.

Okular

Okular weist automatisch darauf hin, dass Signaturen im PDF-Dokument vorhanden sind. Durch Klick auf den entsprechenden Button lässt sich der Signaturbereich anzeigen: Signatur anzeigen in Okular

Wurde das Dokument nach der Unterschrift verändert, muss man stets die signierte Version zu Anzeige bringen: Signierte Version anzeigen in Okular

Achtung, Okular prüft wirklich nur die Signatur! Das verwendete Zertifikat und dessen Aussteller wird nicht mit ausgewertet. (Damit wird auch für ein selbstgeneriertes Zertifikat, mit dem ein PDF-Dokument signiert wird, eine gültige Signatur bescheinigt.) Das Zertifikat muss also manuell kontrolliert werden.