Verhindern Sie die Textextraktion aus einem PDF-Dokument durch Verschleierung des Textes.

Blogkategorie: PDF ; .NET

18.05.2020

VintaSoft Imaging .NET SDK unterstützt die Verschleierung der Textkodierung für alle Schriftarten.

Wozu dient dies? Beispielsweise veröffentlichen Sie ein Dokument mit freiem Zugriff (oder geben es an Dritte weiter) und möchten verhindern, dass der Text des Dokuments einfach per Kopieren/Einfügen in einem beliebigen PDF-Viewer extrahiert werden kann.

Lösung 1: Verhindern Sie die Textextraktion mithilfe von Flags in den Sicherheitseinstellungen des PDF-Dokuments. Die Einhaltung dieser Einstellungen hängt jedoch von der Anwendung ab, mit der der Benutzer das Dokument anzeigt. Der Text kann leicht extrahiert werden, wenn der PDF-Viewer die Sicherheitseinstellungen des PDF-Dokuments ignoriert.

Lösung 2: Entfernen Sie die Informationen zur Textkodierung vollständig, mischen Sie die Glyphen der Schriftart und die Symbolcodes auf der Seite. Dies kann mithilfe der in VintaSoft PDF .NET Plug-in bereitgestellten Funktion zur Verschleierung der Textkodierung erfolgen. Der Verschleierungsmechanismus entfernt die Informationen zur Textkodierung vollständig, vermischt die Glyphen von Symbolen in der Schriftart und auf der Seite und dupliziert Schriftarten und Symbolglyphen. Der so verschleierte Text kann nur per OCR extrahiert werden.

Lassen Sie uns die Verschleierung eines einfachen PDF-Dokuments (document-without-text-obfuscation.pdf) mithilfe der VintaSoft PDF Editor Demo-Anwendung überprüfen.

Das Dokument umfasst zwei Seiten. Vier Sätze wurden mit drei verschiedenen Schriftarten verfasst.

Der erste Satz auf der ersten und zweiten Seite wurde mit derselben Schriftart verfasst.
Text before text encoding obfuscation in PDF document

Das Textextraktionsfeld und der Schriftartenanzeigedialog zeigen an, dass alle Symbole die korrekte Textkodierung aufweisen.
Text characters before text encoding obfuscation in PDF document

Der Dialog zur Textkodierungsverschleierung kann über das Anwendungsmenü aufgerufen werden: Text -> Textkodierung verschleiern -> Einstellungen:
Standard settings for text encoding obfuscation in PDF document

Lassen Sie uns die Verschleierung mit den Standardeinstellungen durchführen und das Ausgabedokument mit verschleiertem Text überprüfen: document-with-default-text-obfuscation.pdf.

Die Dokumentprüfung zeigt, dass die Schriftarten vollständig geändert wurden und die Glyphen zufällig verschoben wurden. Der extrahierte Text kann im Textextraktionsfenster angezeigt werden.
Text after text encoding obfuscation in PDF document

Da der erste Satz auf beiden Seiten mit derselben Schriftart geschrieben wurde, sind die Symbole des ersten Wortes (grün hervorgehoben) auf beiden Seiten identisch:
The same word is written using one font after text encoding obfuscation in PDF document

Sie könnten sagen: "Ich schreibe ein einfaches Programm und extrahiere den Text. Ich erstelle manuell eine Zeichentabelle und dekodiere den Text." Ja. Das ist möglich, insbesondere wenn nur wenige Schriftarten im Dokument vorhanden sind. Deshalb haben wir die Verschleierungseinstellungen implementiert, die die Dekodierung nahezu unmöglich machen.

Öffnen wir erneut den Dialog zur Textverschlüsselung und: Settings for strong text encoding obfuscation in PDF document

Anschließend verschleiern wir die Textkodierung im PDF-Dokument erneut und überprüfen das resultierende PDF-Dokument mit verschleiertem Text: document-with-strong-text-obfuscation.pdf.

Nun können wir beobachten, dass für den Buchstaben "e" unterschiedliche Glyphen verwendet wurden und der extrahierte Text Symbole dieses Buchstabens mit unterschiedlichen Codes enthält.
The same character is written using different glyphs after text encoding obfuscation in PDF document

Das Wort "Text" aus der ersten Zeile wird nun mit verschiedenen Schriftarten geschrieben.In jeder Schriftart werden Glyphen zufällig angeordnet und dupliziert. Die Ergebnisse dieser Wortextraktion von der ersten und zweiten Seite unterscheiden sich daher deutlich:
The same word is written using different fonts after text encoding obfuscation in PDF document