Elektronische Signatur bei PDF mit PHP überprüfen

21/03/2011 - 17:12 von Andreas Meile | Report spam
Hallo zusammen

Als typische Anwendung für die SuisseID[1] habe ich ein Testportal für die
Möglichkeit eines Online-Vertragabschlusses kreiert. Die Interessierten von
Euch dürfen es gerne selber einmal ausprobieren:

https://laborpc1.meilebiz.ch/VertragDemo/

Hinweis: Wenn mir jemand die Stamm- und Zwischenzertifikate der Trustcenters
beim nPA[2] bzw. österreichischen Bürgerkarte[3] geben kann (.cer/.crt per
E-Mail), damit ich sie noch ergànzen kann, dann müsste es prinzipiell auch
damit funktionieren.

Bis und mit der dynamischen Generierung des Vertrags-PDFs (nach
erfolgreicher X.509-Authentifizierung kann man noch seine Adresse eingeben,
wo dann anschliessend mit FPDI[4] das Vertragsdokument anhand der
Adressdaten generiert wird) klappt alles wunderbar, auch das Hochladen per
<INPUT type="file" ..> der signierten Version und Abspeichern in ein
Verzeichnis auf dem Webserver làuft soweit ohne Probleme.

Das Problem bzw. Herausforderung: Damit bei einer realen Anwendung der
Dienst (z.B. VoIP-Zugang, Webhosting, Bankkonto, Versicherung usw.) nach dem
Hochladen sofort freigeschaltet werden kann, suche ich noch einen Weg per
PHP-Script, um

1.) Qualifizierte Signatur am PDF auf Gültigkeit überprüfen, dabei auch
Common Name herausextrahieren (soll schliesslich zum Namen passen).
2.) PDF-Inhalt auf Verànderungen überprüfen. Überlegung hier: Vermutlich
wird beim Signieren nur etwas an die Ausgangs-PDF-Datei angehàngt -> jetzt
müsste man nur diesen Signatur-Anhangsel subtrahieren können, dann müsste
die übrige Datei binàrmàssig wieder identisch sein, so dass sie byteweise
mit demjenigen aus der FPDI-"Druckerpresse" verglichen werden könnte.

Hinweise werden dankend entgegengenommen. :-)

Andreas

[1] http://www.suisseid.ch/
[2] http://www.personalausweisportal.de/
[3] http://www.buergerkarte.at/
[4] http://www.setasign.de/products/pdf...ions/fpdi/
Teste die PC-Sicherheit mit www.sec-check.net
 

Lesen sie die antworten

#1 Ethan Sharps
22/03/2011 - 16:17 | Warnen spam
Am 21.03.2011 17:12, schrieb Andreas Meile:

1.) Qualifizierte Signatur am PDF auf Gültigkeit überprüfen, dabei auch
Common Name herausextrahieren (soll schliesslich zum Namen passen).



Wie ist den die Unterschrift abgespeichert? (Format)

Überlegung hier: Vermutlich
wird beim Signieren nur etwas an die Ausgangs-PDF-Datei angehàngt



Vermutungen helfen keinen. Das solltest Du schon abklàren.

Problem an der Sache ist (daher wohl auch die ausbleibenden Antworten),
das der ganze Spaß noch viel zu neu ist. Ich hab mir. z.B. kurz vor ende
des normalen Ausweises auch noch einen neuen, nicht elektronischen
geholt. Dieser ganze elektronische Spielkram geht mir einfach zu weit in
Richtung glàserner Bürger und vielen anderen gehts wohl auch so. Anders
kann man auch kaum den Ansturm an den letzten Tagen des alten Ausweises
in den Meldeàmtern von DE erklàren.

müsste man nur diesen Signatur-Anhangsel subtrahieren können, dann müsste
die übrige Datei binàrmàssig wieder identisch sein, so dass sie byteweise
mit demjenigen aus der FPDI-"Druckerpresse" verglichen werden könnte.



Sorry aber das klingt alles sehr naiv wenn man bedenkt das Du keine
Ahnung hast wie signiert wird.

Wenn wirklich eine Datei elektronisch unterschrieben werden soll so
würde ich zuerst mal davon ausgehen das die entsprechende Signatur nicht
in der Datei selbst abgelegt wird. Das würde die Datei (gerade
Binàrformate andere aber u.U. auch) sonst unbrauchbar machen, bzw. diese
könnten nur noch mit einer speziellen Software genutzt werden die vorher
benötigte Daten extrahiert. Das bezweifle ich aber stark! Nur weil
Nutzer A etwas elektronisch unterschreibt muss ja nicht Nutzer B gleich
eine spezielle Software installieren um z.B. eine PDF-Datei die signiert
ist lesen zu können.

Das würde man dann eher Verschlüsselung oder Verschleierung nennen.

Dazu muß nachwievor der jeweilige nutzte PDF-Reader ausreichen. Die
Verifizierung einer Signatur ist ja wieder eine ganz andere Sache.

Gruß

Ähnliche fragen