Netidee Blog Bild
PDF-Signatur für NGINX-Server
Automatische Installation von Software auf Linux (24.10.2022)
Förderjahr 2021 / Projekt Call #16 / ProjektID: 5822 / Projekt: open-pdf-sign

Für uns war es von Anfang an wichtig, dass unsere Open source Software, schlussendlich auch sehr einfach und schnell verwendet werden kann. Nur so, unseren Gedanken nach, kann sie sich schnell verbreiten und praktisch zum Einsatz kommen.

Genau das ist auch unser Ziel, jedes sollte PDF signiert sein. Darum wollten wir direkt dort ansetzen, wo es sich am ehesten anbietet, PDFs zu signieren, nämlich am Webserver. Erstens ist dieser fast immer nur mit SSL erreichbar, es existieren also schon Zertifikate, die wir verwenden können, die Konfiguration des Webservers liefert uns genauere Informationen zu den verwendeten Dateien. Zweitens sind diese Zertifikate bereits einer Domain zugeordnet und drittens werden die meisten PDFs ursprünglich über Webserver dem Endnutzer zum Download zur Verfügung gestellt. Wir haben also an dieser Stelle alle Teile die wir für eine Signatur benötigen: Die zu signierenden PDFs, Informationen zur Domain, auf der diese zum Download bereitgestellt werden, und die Schlüsselpaare, um eine Signatur durchführen zu können.

Hinsichtlich der Serverauswahl haben wir in unserer Recherche herausgefunden, dass der Webserver NGINX mit 34 % Marktanteil die größte Verbreitung hat. Direkt dahinter folgt der Apache-Webserver mit 31%. (Quelle: https://news.netcraft.com/archives/2022/08/26/august-2022-web-server-survey.html

Wenn wir beide Server unterstützen, könnten wir mit open-pdf-sign somit über zwei Drittel des Internetverkehrs abdecken. Das würde es uns ermöglichen, einen großen Teil aller PDFs im Internet zu signieren. Für weitere Server und weniger verbreitete Systeme stünde dann ohnehin unser dokumentierter Quellcode zur Verfügung, der es interessierten Entwicklern und der Community ermöglicht, open-pdf-sign auch auf solchen Servern zu unterstützen. 

Unser Vorbild für die Vorgangsweise hier ist LetsEncrypt die mit ihrem einfach Installer den komplizierten Prozess ein Zertifikat zu bekommen, um eine Website mit SSL abzusichern, revolutioniert haben. Sowohl Installer als auch die Ausstellung von Zertifikaten sind bei LetsEncrypt nicht nur sehr einfach, sondern insbesondere auch kostenlos. 

Das ist auch der Grund, warum sich unser Subprojekt, der Open-pdf-sign Installer sehr stark an das LetsEncrypt-Pendant "Certbot" anlehnen sollte. Zum Glück ist Certbot auch Open Source und mit MIT-Lizenz versehen. Dies hat es uns erlaubt, auf die Vorarbeit dieses Projekts aufzubauen, anstatt beispielsweise eigene Parser programmieren zu müssen. 

Dennoch hat sich herausgestellt, dass die Implementierung schwieriger als gedacht war. Wir ziehen darum einmal mehr den Hut vor dem "Certbot"-Entwicklerteam, das eine sehr große Anzahl an Webservern und eine automatische Installation unterstützt. Das archaische Format von NGINX, die sehr wenigen Tools und die schlechte Dokumentation haben die Implementierung leider um einiges verzögert. Schlussendlich haben wir es aber dennoch geschafft und wir befinden uns nun endlich im Endspurt zu unserem anfangs gesetzten Ziel: Dem zur Verfügung stellen einer Lösung, die das Signieren von PDFs so einfach gestaltet, dass einem schlicht weg die Ausreden fehlen.

Philipp Omenitsch

Profile picture for user superphil0
Philipp Omenitsch hat Inforamtik an der TU Wien studiert und ist Gründer von netzbeweis.com und stresscoach.app

Skills:

AI | KI
,
Machine Learning
,
mobile App
CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.

    Weitere Blogbeiträge

    Datenschutzinformation
    Der datenschutzrechtliche Verantwortliche (Internet Privatstiftung Austria - Internet Foundation Austria, Österreich) würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Zur Personalisierung können Technologien wie Cookies, LocalStorage usw. verwendet werden. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl: