Abb. 1. Das inkrementelle Speicherverfahren, auf dem digitale PDF-Signaturen basieren. Laut den Testergebnissen ist dies der effektivste Weg, um Dokumente zu fälschenTheoretisch authentifizieren digitale PDF-Signaturen den Autor eines Dokuments zuverlässig. In der Praxis wird die PDF-Verarbeitung jedoch normalerweise von einer proprietären Software ausgeführt, die die Validierung nicht korrekt durchführt. Spezialisten der Ruhr-Universität in Bochum (Deutschland) beschrieben
verschiedene Möglichkeiten zur Fälschung digital signierter PDF-Dokumente , die in den meisten PDF-Viewern und Online-Überprüfungsdiensten funktionieren.
Der Schutz vor allen Angriffen wird nur in einem einzigen Programm bereitgestellt und funktioniert sogar unter Linux.
PDF-Struktur
Abb. 2. PDF-DokumentstrukturDer Aufbau des PDF-Dokuments ist in Abb. 2 dargestellt. 2. Beim schrittweisen Speichern von Änderungen am PDF-Dokument werden dem
Hauptteil neue Objekte sowie eine neue
Xref- Tabelle mit einer Beschreibung der neuen Objekte und ein neuer
Trailer mit Links zum
Katalog hinzugefügt (siehe Abb. 1). Ein Verzeichnis ist das Stammobjekt einer PDF-Datei, definiert die Struktur des Dokuments und kann optional die Zugriffsberechtigungen bestimmen.
Jedes Objekt beginnt mit der Objektnummer und der Versionsnummer, die mit jeder Aktualisierung des Objekts zunehmen.
Abb. 2. Struktur des PDF-ObjektsSignaturerstellung
Das Hinzufügen einer digitalen Signatur zu einem PDF-Dokument basiert auf einem inkrementellen Speichermechanismus (siehe Abbildung 1). Wenn Sie beim inkrementellen Speichern eine Signatur hinzufügen, wird dem Dokument der folgende Inhalt hinzugefügt:
- neuer Katalog mit einem neuen Perms- Parameter, der Berechtigungen zum Ändern des Dokuments definiert; Dieser Parameter bezieht sich auf das Signaturobjekt .
- Signaturobjekt (
5 0 obj
) mit Informationen zu den kryptografischen Algorithmen, die zum Hashing und Signieren des Dokuments verwendet werden, mit dem Parameter Contents
, der den hexadezimal codierten PKCS7-Blob enthält. Er speichert Zertifikate und den Wert der Signatur, die mit dem privaten Schlüssel erstellt wurde, der dem öffentlichen Schlüssel entspricht im Zertifikat. Der ByteRange
Parameter bestimmt, welche Bytes der PDF-Datei am Eingang der Hash-Funktion zur Berechnung der Signatur verwendet werden (Paare a, b
und c, d
), ByteRange
welcher Teil der Datei signiert ist.
- Eine neue Xref- Tabelle mit einem Link zu einem neuen Objekt
- neuer Trailer .
In Abb. Abbildung 3 zeigt ein vereinfachtes Diagramm einer digital signierten PDF-Datei.
Abb. 3. Vereinfachtes digital signiertes PDF-DateilayoutGemäß den aktuellen Spezifikationen
wird empfohlen , die gesamte Datei mit Ausnahme des PKCS7-Blobs zu signieren.
Die Überprüfung der Unterschrift erfolgt durch die Anwendung, in der das PDF-Dokument geöffnet wird. Es extrahiert sofort die Signatur aus der PDF-Datei und überprüft mithilfe von kryptografischen Operationen ihre Richtigkeit. Anschließend wird überprüft, ob dem X.509-Zertifikat, dessen Schlüssel zum Signieren verwendet wurden, vertraut werden kann.
Normalerweise vertrauen nicht alle PDF-Reader dem im Betriebssystem integrierten Keystore. Wie der Firefox-Browser verteilen sie ihren eigenen Schlüsselspeicher und ermöglichen es dem Benutzer normalerweise, einen Speicher mit vertrauenswürdigen Zertifikaten anzugeben. Mit dieser Funktion können Sie nur bestimmten Zertifikaten vertrauen, z. B. Ihrer eigenen Zertifizierungsstelle.
Fälschung digitaler Signaturen
Die Forscher beschreiben drei Möglichkeiten, um Inhalte in signierten PDFs zu fälschen.
- Universal Signature Forgery (USF);
- ISA-Angriff (Incremental Saving Attack)
- Angriff auf einen Signatur-Wrapper (Signature Wrapping Attack, SWA).
Universal Signature Fake (USF)
Ein USF-Angriff deaktiviert die
Signaturüberprüfung in einer Anwendung, die eine PDF-Datei öffnet. Gleichzeitig wird dem Benutzer eine normale Nachricht über die erfolgreiche Validierung der Signatur gesendet. Dies erfolgt durch Bearbeiten des
Signaturobjekts im Dokument: Entweder wird in diesem Dokument ein falscher Datensatz erstellt oder der Link zum Objekt wird aus der Datei gelöscht. Obwohl der PDF-Viewer nicht überprüfen kann, ob die Signatur korrekt ist, zeigt das Programm in einigen Fällen immer noch seine Anwesenheit an, was den Zielen des Angreifers entspricht.
Die Forscher formulierten 18 USF-Angriffsvektoren, von denen acht in Abb. 1 dargestellt sind. 4.
Abb. 4. Acht Angriffsvektoren zur Umgehung der Überprüfung der digitalen SignaturAlle diese Methoden funktionieren, wenn der PDF-Viewer die digitale Signatur nicht korrekt überprüft.
Inkrementeller Retentionsangriff (ISA)
Diese Angriffsklasse besteht darin, die Struktur und den Inhalt in einem zusätzlichen Abschnitt eines Dokuments neu zu definieren. Die Idee ist, dass die Signatur basierend auf dem in
ByteRange
angegebenen
ByteRange
wird und der zusätzliche Abschnitt nicht in diesen Bereich fällt, wie in Abb. 2 gezeigt. 5.
Abb. 5. Wenn Sie dem zusätzlichen Abschnitt Inhalte hinzufügen, wird die digitale Signatur nicht verletztEs gibt verschiedene Möglichkeiten, um nach Dokumentänderungen zu suchen und die entsprechende Warnung im PDF-Viewer zu blockieren.
Signature Wrapper Attack (SWA)
Schließlich können Sie mit der letzten Angriffsklasse die Signaturüberprüfung umgehen, ohne sie inkrementell zu speichern. Verschieben Sie jedoch den signierten Teil der PDF-Datei an das Ende des Dokuments und verwenden Sie den
xref
Zeiger im signierten
Trailer erneut für die geänderte XRef-Tabelle. Um zu vermeiden, dass das verschobene Teil verarbeitet wird, kann es gleichzeitig in ein fremdes Objekt, z. B. einen
Stream oder ein
Wörterbuch, eingeschlossen werden .
Abb. 6. Vergleich von Original- und geänderten PDF-DokumentenAngriffsleistung
Die Forscher testeten die Wirksamkeit jeder Angriffsart in verschiedenen Programmen zum Anzeigen von PDF.
Unter Linux kann nur
Adobe Reader 9 nicht getäuscht werden . In allen anderen Programmen wird die Signaturüberprüfung auf eine oder mehrere Arten umgangen.

Die Situation mit den Online-Überprüfungsdiensten für digitale PDF-Signaturen ist nicht besser.
