Easy PDF signing

Easy digital signing of PDF documents without rebuilding them. Allows multiple signing.

Digitale Signaturen ersetzen zunehmend handschriftliche Unterschriften auf heutigen Dokumenten. Auf dem herkömmlichem Weg werden Dokumente auf Papier ausgedruckt, mit einem Stift unterschrieben und schließlich in mittelmäßiger Qualität wieder eingescannt. Dabei wird der Ausdruck später oft nicht mehr benötigt und entsorgt. Das verursacht Druckkosten, verbraucht Papier, erhöht die Dateigröße oft beträchtlich, verringert dabei aber die Lesbarkeit (und ganz nebenbei auch die Durchsuchbarkeit, weil Text durch ein Bild ersetzt wird) und ist einfach nur umständlich.

Durch digitale Signaturen dagegen wird die Echtheit eines digitalen Dokuments so wie es ist bestätigt. Dabei kommt starke kryptografische Mathematik zum Einsatz, die bei richtiger Anwendung mehr Glaubwürdigkeit hat als jeder Pinselstrich auf einem Stück Papier. Bei der Nutzung von anerkannten Zertifikaten kann die Echtheit der Unterschrift jederzeit, von jedem und ohne forensische Fähigkeiten geprüft werden. So herrscht jederzeit Klarheit über die Echtheit eines Dokuments und der digitale Arbeitsfluss wird nicht durch andere Medien unterbrochen.

Das Problem

Leider ist es ohne teure Programme oder ohne Vermeidung einiger Nachteile nicht so einfach, ein PDF-Dokument digital zu signieren. Natürlich bietet Adobe Acrobat diese Funktion an, dafür zahlt man aber schnell mehrere hundert Euro pro Lizenz. Ein paar kostenlose PDF-Softwaredrucker wie z. B. PDFCreator können ebenfalls Dokumente signieren, allerdings nur mit den bekannten Einschränkungen einer solchen Lösung: Sämtliche Hyperlinks und die Dokumentstruktur gehen dabei verloren – das Dokument wird zur flachen Ansicht des Bildschirms. Bereits vorhandene Signaturen sind dadurch ebenfalls gefährdet.

Die Lösung

Glücklicherweise unterstützen aber auch freie und kostenlose PDF-Bibliotheken für Anwendungsentwickler die digitale Signatur, so dass es zumindest auf diesem Weg möglich ist, diese Funktion zu nutzen. Kombiniert man mehrere dieser Bibliotheken auf geschickte Weise (nachdem man sie erstmal gefunden hat), lässt sich damit durchaus eine einfach zu bedienende Anwendung erstellen, die diese spezielle Aufgabe schnell und unkompliziert ermöglicht. Genau das ist dieses Programm zur einfachen PDF-Signierung.

Dafür wird einfach das zu signierende PDF-Dokument ausgewählt (Kontextmenü: Öffnen mit; Auswahldialog; oder Drag & Drop), ein Signaturgrund angegeben und die sichtbare Signatur visuell auf einer Dokumentseite platziert. Das zu verwendende Zertifikat kann direkt aus dem Windows-Zertifikatspeicher ausgewählt werden, die Auswahl wird für den nächsten Aufruf gespeichert. Ein Klick, und das Dokument ist signiert. Für alle Fälle wird das ursprüngliche, unsignierte Dokument als Sicherungskopie aufgehoben.

Compatibility: .NET Version 4.0 or newer Windows 10 Windows 8 Windows 7 64 bit

Bilder

Image
Einfache Ansicht
Image
Seitenvorschau
Image
Zertifikatauswahl
Image
Signaturdarstellung
Image
Öffnen der PDF-Datei

Download

Note: Releases after 2016-01-09 are no longer digitally signed because there are no more free code signing certificates available for open source developers. A commercial certificate from 200 € per year doesn’t pay for me. I’m sorry for the confusion this may cause with your next download.

EasyPdfSigningSetup-1.47.86_73e66d.exe9.5 MiBInstallation
Version 1.47.86 of 2015-02-17, Commit 73e66d

EasyPdfSigningChanges.txt823 BChange log of published versions

master.zipLatest source code directly from GitHub

Previous versions

You can also head over to GitHub to download any previous revision or check the issue tracker:

EasyPdfSigning repository on GitHub

Hinweise zur Verwendung

Signaturzertifikat erstellen

Um ein Dokument digital zu signieren, benötigt man ein Zertifikat mit dem dazugehörigen privaten Schlüssel. Solche Zertifikate bekommt man üblicherweise auf zwei Wegen.

  1. Man lässt sich ein SSL- bzw. S/MIME-Zertifikat von einer der bekannten Certificate Authorities ausstellen. Diese Zertifikate erfordern eine unterschiedlich genaue Prüfung der eigenen Identität, welche dann mit dem Zertifikat nachprüfbar bestätigt wird. Die Prüfungen reichen von der automatisierten einfachen Verifizierung einer E-Mail-Adresse bzw. Domain bis hin zur ausführlichen manuellen Einsendung von Kopien mehrerer Ausweisdokumente und Gewerbeanmeldungen. Je aufwändiger die Prüfung, desto höhere Kosten entstehen dabei. Kostenlose Zertifikate ohne Namensprüfung bekommt man bei StartCom (StartSSL) sowie mit Einschränkungen bei der Verwendbarkeit bei CAcert.
  2. Man erstellt sich selbst ein Zertifikat mit den passenden Werkzeugen. Diese selbstsignierten Zertifikate besitzen natürlich keine anerkannte Vertrauenskette. Sie sind daher zwar für Verschlüsselung und Signierung verwendbar, es wird ihnen aber niemand ohne weitere Kenntnisse vertrauen. Nur wenn der Empfänger das Zertifikat selbst geprüft hat, kann er sicher sein, von wem die Signatur stammt. Mit dem Programm xca (X Certificate and Key management) lassen sich relativ einfach Schlüssel und Zertifikate erstellen. Damit kann man sogar eine eigene Root-CA einrichten, die dann signierte Zertifikate erstellt, so dass der Empfänger nur einmal das Wurzelzertifikat importieren muss – so er dessen Sicherheit vertraut…

In Unternehmensumgebungen können für jeden Benutzer Zertifikate in einer Windows-Domäne bereitgestellt werden. In diesem Fall ist keine weitere Vorbereitung notwendig. Das Zertifikat ist dann bereits im System installiert und kann sofort genutzt werden.

Signaturprüfung in Adobe Reader

Zunächst scheinen Adobe Reader sowie Adobe Acrobat Pro keinem Zertifikat zu vertrauen. Deshalb werden Signaturen in PDF-Dokumenten zwar als gültig erkannt (da die Mathematik korrekt ist), aber nicht als vertrauenswürdig (da die verwendeten Zertifikate unbekannt sind). Der Benutzer muss den Zertifikaten selbst das Vertrauen aussprechen. Dazu muss man in den Unterschriftseigenschaften das Zertifikat des Ausstellers anzeigen, dort in der Liste links das oberste Zertifikat auswählen und es rechts unter Vertrauenswürdigkeit dann zu den vertrauenswürdigen Zertifikaten hinzufügen. Dadurch wird dem Wurzelzertifikat vertraut, das alle einzelnen Benutzerzertifikate signiert.

Achtung! Das Vertrauen für Zertifikate sollte sehr gewissenhaft ausgesprochen werden, da ansonsten gefälschte Unterschriften unerkannt bleiben können. Deshalb sollte man die vertrauenswürdigen Zertifikate genau prüfen. Ein Vertrauen aus einem bestehenden Dokument heraus ist allenfalls mit Dokumenten ratsam, die man gerade zuvor selbst signiert hat, aber keinesfalls mit Dokumenten, die aus unbekannter Quelle stammen!

Zertifikat funktioniert nicht?

Diese Anwendung verwendet die Eigenen Zertifikate aus dem Windows-Zertifikatsspeicher. Die Nutzung eigener pfx-Dateien ist derzeit nicht implementiert, aber prinzipiell möglich. Wenn ein ausgewähltes Zertifikat nicht verwendet werden kann (eine Fehlermeldung erscheint beim Signieren), kann das daran liegen, dass das Zertifikat als nicht exportierbar markiert ist. Diese Einstellung wird beim Import in Windows festgelegt. Da das Signaturverfahren nicht direkt mit dem Zertifikatspeicher arbeiten kann, sondern das gewählte Zertifikat intern auslesen muss, können nur Zertifikate verwendet werden, die exportierbar sind.

Offene Punkte

  • Aktualisierung der iTextSharp-Bibliothek über 5.3, damit wahrscheinlich Neuimplementierung des Signierungs-Codes
  • Unterstützung für Sperrung des Dokuments nach einer Signatur (Sperre hinzufügen und selbst beachten)
  • Unterstützung für Zertifizierungs-Signaturen (bislang nur Genehmigungs-Signaturen; im Code vorbereitet)
  • Verschiebung der Signaturposition in der Vorschau per Drag & Drop
  • Unterstützung eigener pfx-Dateien (im Code vorbereitet)
  • Englische Übersetzung mit TxLib (auch diese Website)
  • Anlegen von Profilen mit Optionen zur sichtbaren Signatur und zum Signaturgrund

Licence and terms of use

This software is released under the terms of the GNU GPL licence, version 3. You can find the detailed terms and conditions in the download or on the GNU website.

Diese Anwendung basiert auf anderen Projekten oder verwendet Bibliotheken, die ebenfalls unter einer Open-Source-Lizenz stehen. Weitere Angaben dazu befinden sich im Quelltext in der Datei EasyPdfSigning/README.txt.

Statistic data

  • Created on 2013-11-17, updated on 2015-02-17.
  • Ca. 1 330 lines of code, estimated development costs: 1 300 - 5 300 €