Untersuche eine PDF auf Signaturfelder, zähle Signatur-Marker und analysiere das ByteRange-Integritätsfenster.
Untersuche eine PDF auf Signaturfelder, zähle Signatur-Marker und analysiere das ByteRange-Integritätsfenster. Untersuche eine PDF auf Signaturfelder, zähle Signatur-Marker und analysiere das ByteRange-Integritätsfenster.
Hintergrund
Wie PDF-Signaturen funktionieren
Eine digitale Signatur auf einem PDF ist kein auf die Seite gemalter Stempel (auch wenn es zusätzlich eine visuelle Signaturdarstellung geben kann). Es ist ein kryptografisches Objekt: ein Signaturwörterbuch, dessen /Contents-Wert eine DER-codierte PKCS#7-SignedData-Struktur enthält. Diese Struktur enthält das Zertifikat des Signierenden, den Digest-Algorithmus und eine Signatur, die über einen präzisen Ausschnitt der PDF-Bytes berechnet wurde. Das /ByteRange-Array im Signaturwörterbuch beschreibt genau, welche Bytebereiche der Datei von der Signatur abgedeckt werden: typischerweise [0, a, b, c], was „Bytes 0..a-1 und b..b+c-1" bedeutet. Alles innerhalb dieser Bereiche ist signiert; alles außerhalb – der Signaturwert selbst – ist es nicht. Dieses Design erlaubt es, ein PDF zu signieren, ohne dessen endgültige Länge im Voraus zu kennen.
Warum ByteRange für die Manipulationserkennung wichtig ist
Um eine Signatur zu verifizieren, hasht ein Prüfer die Bytes in den signierten Bereichen und vergleicht sie mit dem in die PKCS#7-Struktur eingebetteten Digest. Wenn jemand das PDF nach dem Signieren bearbeitet, ändern sich die abgedeckten Bytes, der neu berechnete Hash weicht ab, und die Verifizierung schlägt fehl – das ist das Manipulationssignal. Das /ByteRange definiert daher das Integritätsfenster: Eine Signatur kann nur die Bytes schützen, die sie abdeckt. Eine Signatur, deren Bereiche nicht das gesamte Dokument abdecken, lässt den Rest der Datei für unentdeckte Änderungen offen. Dieser Prüfer meldet, ob der Bereich vorhanden ist und ob er bei Byte 0 beginnt und Kopf plus Schwanz abdeckt – die Form, die jedes Signierwerkzeug erzeugt.
Was dieses Werkzeug prüft
Es parst das PDF mit der gebündelten pdf-lib-Bibliothek (Apache-2.0) und meldet: die Seitenzahl; die Anzahl der im AcroForm gefundenen Signaturfelder; die Anzahl der /FT /Sig-Marker im rohen Byte-Stream; ob ein /ByteRange-Array existiert; und ob dieser Bereich die kanonische Form [0, head, tailStart, tailLen] hat. Ein PDF ohne Marker hat überhaupt keine Signaturen. Ein PDF mit Markern, aber ohne parsebaren Bereich ist ungewöhnlich und lohnt einen genaueren Blick. Die vollständige kryptografische Verifizierung – Neuberechnung von Hashes und Validierung der Zertifikatskette – erfordert die vollständige Kette des Signierenden und einen Trust-Store; diese Seite konzentriert sich auf die Strukturanalyse, die offenbart, ob Signaturen existieren und ob das Integritätsfenster intakt ist.
Die Ergebnisse interpretieren
Mehr als ein Signatur-Marker bedeutet meist mehrere Signaturen oder ein inkrementelles Update, das das Dokument neu signierte. Ein verschlüsseltes PDF kann Signaturwörterbücher vor dem Parser verbergen; der ignoreEncryption-Modus wird verwendet, sodass die Struktur dennoch gemeldet wird. Bedenke: Dieses Werkzeug prüft Struktur, nicht Identität. Es kann dir nicht sagen, ob der Signierende wirklich der ist, der er vorgibt zu sein – dafür muss das Zertifikat gegen eine vertrauenswürdige Root verifiziert werden. Nutze es als erste Triagestufe für Dokumente, die du erhältst, und folge dann für Wichtiges mit der vollständigen Signaturverifizierung deiner Plattform. Die Analyse läuft vollständig in deinem Browser; dein PDF wird nie hochgeladen.
Häufig gestellte Fragen
Verifiziert dieses Werkzeug die Signatur kryptografisch?
Es führt eine Strukturanalyse durch: Es erkennt Signaturfelder, zählt /FT /Sig-Marker und prüft die Form des ByteRange-Integritätsfensters. Die vollständige Hash-Neuberechnung und Zertifikatsketten-Validierung erfordern die Kette des Signierenden und einen Trust-Store, die eine Browserseite offline nicht bereitstellen kann.
Was bedeutet ein leerer ByteRange-Bericht?
Wenn kein /ByteRange-Array gefunden wird, aber Signatur-Marker existieren, verwendet das PDF möglicherweise ein ungewöhnliches Signatur-Layout oder ist beschädigt. Ein PDF ohne Marker und ohne ByteRange hat einfach keine Signaturen.
Was ist ein inkrementelles Update und warum ist es wichtig?
Viele PDF-Werkzeuge hängen Änderungen ans Ende der Datei an, statt sie neu zu schreiben. Jedes Anhängen kann Objekte hinzufügen oder ersetzen, und eine erneute Signatur erscheint als neuer Marker. Das ist der Grund, warum ein signiertes PDF mehr als einen Signatur-Marker zeigen kann.
Kann ein verschlüsseltes PDF dennoch geprüft werden?
Ja, mit Einschränkungen. Der Prüfer lädt mit ignoreEncryption, sodass Signaturwörterbücher weiterhin sichtbar sind. Der rohe Byte-Scan nach /FT /Sig funktioniert unabhängig von der Verschlüsselung, weil er den Klartext-Stream durchsucht.
Wird mein PDF irgendwo hochgeladen?
Nein. Das PDF wird mit FileReader gelesen und vollständig in deinem Browser mit der gebündelten pdf-lib-Bibliothek geparst. Das Beispiel-PDF wird ebenfalls lokal erzeugt. Nichts verlässt dein Gerät.
Was sind PKCS#7 / CAdES / PAdES?
PKCS#7 ist das Containerformat, das die Signaturdaten enthält (heute als CMS standardisiert). PAdES ist das PDF-Profil dieses Formats, das von europäischen E-Signatur-Regeln verwendet wird; es fügt Langzeit-Validierungsattribute hinzu, sodass Signaturen über Jahre verifizierbar bleiben.