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:
Bilder
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.
EasyPdfSigningChanges.txt823 BChange log of published versions
master.zipLatest source code directly from GitHub
Previous versionsNotice: Due to a change in the versioning scheme the dates before 2015 are incorrect in this list.
EasyPdfSigningSetup-1.47.83_622a8f.exe9.5 MiBVersion 1.47.83 of 2015-02-17, Commit 622a8f
EasyPdfSigningSetup-173h.42740f.exe9.5 MiBVersion 173h of 2014-01-18, Commit 42740f
EasyPdfSigningSetup-0znm.f72397.exe9.4 MiBVersion 0znm of 2013-01-08, Commit f72397
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.
- 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.
- 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
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 €