PDF-Metadaten und versteckte Daten
Zuletzt aktualisiert:
Dokument-Metadaten sind die Informationen, die eine Datei über sich selbst jenseits des Seiteninhalts mit sich trägt: wen ihre Felder als Autor nennen, welche Anwendung sie erzeugt hat, wann sie nach eigenen Angaben erstellt und geändert wurde und welches frühere Material noch in ihr steckt. Ein PDF kann zwei überlappende Metadatensysteme, eine Kette früherer Revisionen, vollständige eingebettete Dateien und unsichtbar gezeichneten Text enthalten; ein JPEG-Foto enthält ein Kamera-Tagebuch; selbst ein einfacher PNG-Screenshot nennt die Software, die ihn erstellt hat. Dieser Artikel geht jede dieser Verstecke durch, erklärt, warum die Daten normales Bearbeiten überleben und wie die echten Lecks passiert sind. Um eine eigene Datei beim Lesen zu prüfen, lassen Sie das Werkzeug zur Dokumenten-Forensik laufen — es arbeitet lokal in Ihrem Browser — und für die Lesestruktur-Seite derselben Dateien siehe Ihre PDFs sind Teil der Barrierefreiheit Ihrer Website.
Zwei Metadatensysteme fahren in jedem PDF mit
Das ältere der beiden ist das Info-Wörterbuch, eine kleine Menge von Schlüssel-Wert-Paaren im Trailer der Datei: Title, Author, Creator (die Anwendung, die das Originaldokument erstellt hat), Producer (die Anwendung, die das PDF erstellt hat), CreationDate und ModDate. Diese Felder werden beim Export automatisch geschrieben, und die meisten Dokumentautoren öffnen nie den Eigenschaften-Dialog, der sie zeigen würde — genau deshalb lecken sie. Ein Bericht, der von einem persönlichen Laptop exportiert wurde, trägt den Kontonamen des Laptops als Autor. Ein Dokument, das aus der Vorlage des Vorjahres begonnen wurde, nennt noch immer den Autor des Vorjahres. Nichts davon ist auf der gedruckten Seite sichtbar, und alles ist für jeden Empfänger der Datei nur einen Eigenschaften-Dialog entfernt.
Das neuere System ist XMP, ein in das Dokument eingebettetes XML-Paket, aufgebaut auf Adobes Extensible Metadata Platform und beschrieben zusammen mit der PDF-Spezifikation selbst, ISO 32000-2. XMP wiederholt viel desselben Terrains in Namensräumen: dc:title für den Titel, pdf:Producer, xmp:CreateDate und xmp:ModifyDate, plus Felder, die das alte Wörterbuch nie hatte, etwa das Ersteller-Werkzeug. Zwei Systeme wären harmlos, wenn sie im Gleichschritt gehalten würden, aber das werden sie nicht: Ein Werkzeug aktualisiert das Info-Wörterbuch und ignoriert XMP, ein anderes schreibt XMP neu und lässt das Wörterbuch veralten, ein drittes entfernt das eine und behält das andere. Das Ergebnis: Eine einzige Datei erzählt routinemässig zwei leicht unterschiedliche Geschichten über sich selbst — und die Uneinigkeit ist selbst Information, denn sie verzeichnet, dass mehr als ein Werkzeug zu mehr als einem Zeitpunkt seine Hände an dem Dokument hatte.
Inkrementelle Updates: der gelöschte Absatz, der nie ging
PDF wurde für reines Anhänge-Bearbeiten entworfen. Wenn ein Editor eine Änderung inkrementell speichert, schreibt er die Datei nicht neu: Er hängt die geänderten Objekte, einen neuen Querverweis-Abschnitt und einen neuen Trailer ans Ende an und verkettet über einen /Prev-Zeiger zurück zum vorherigen Trailer. Jede Revision endet mit ihrer eigenen %%EOF-Markierung, also liefert das Zählen dieser Markierungen eine Untergrenze dafür, wie oft die Datei so gespeichert wurde — und jede frühere Revision bleibt physisch in den Bytes vorhanden und lesbar. Öffnen Sie eine solche Datei in einem gewöhnlichen Betrachter, sehen Sie nur die neueste Revision. Lesen Sie die Bytes oder rollen Sie die Kette zurück, ist der frühere Zustand des Dokuments noch da: die alte Zahl in der Tabelle, die vorherige Fassung der Klausel, der vor der Veröffentlichung gelöschte Absatz.
Das ist der Mechanismus hinter den Schwärzungsfehlern, die es immer wieder in die Nachrichten schaffen. Ein Team muss einen Bericht mit zurückgehaltenen Namen oder Zahlen veröffentlichen, also zeichnet jemand schwarze Rechtecke über die empfindlichen Passagen — eine Zeichenoperation, die das Aussehen der Seite ändert und nichts darunter berührt — oder löscht den Text in einem Editor, der dann inkrementell speichert und die gelöschten Objekte in einer früheren Revision belässt. Die veröffentlichte Datei sieht sauber aus. Tage später markiert ein Leser die „geschwärzte“ Region, kopiert sie und fügt die Originalworte in einen Texteditor ein; oder ein Forscher analysiert die Revisionskette und stellt wieder her, was entfernt wurde. Echte Schwärzung ist eine andere Operation als Abdecken: Der zugrunde liegende Inhalt muss aus dem Inhaltsstrom entfernt und die Datei vollständig neu geschrieben werden, damit die Bytes selbst nicht mehr enthalten, was die Seite nicht mehr zeigt. Wenn eine Datei, die Sie veröffentlichen wollen, mehrere %%EOF-Markierungen trägt, steckt ihre Geschichte noch in ihr — gehen Sie davon aus, dass ein motivierter Leser diese Geschichte lesen wird.
Eingebettete Dateien und versteckter Text: die Fracht, die niemand auflistet
Ein PDF kann vollständige Dateien in sich selbst tragen. Das Format definiert einen Namensbaum für eingebettete Dateien, erreichbar über die Objekte /EmbeddedFiles und /Filespec, und Autorenwerkzeuge nutzen ihn für Quell-Tabellen, Datenanhänge und Portfolio-Dokumente. Das Anhänge-Panel, das sie offenbaren würde, öffnen die meisten Leser nie, also reist eingebettete Fracht lautlos: Veröffentlichen Sie die polierte PDF-Zusammenfassung, veröffentlichen Sie womöglich auch die Arbeits-Tabelle dahinter, komplett mit ihren eigenen Metadaten, ihren Entwurfsblättern und ihren Kommentaren. Dasselbe gilt umgekehrt für Empfänger — ein Anhang in einem empfangenen PDF erbt das Vertrauen des Dokuments um ihn herum, und deshalb verdienen eingebettete Dateien eine Zeile in jeder Prüfliste statt einer Entdeckung durch Zufall.
Text kann sich verstecken, ohne eine eigene Datei zu sein. PDF zeichnet Text mit einem Render-Modus, und Modus 3 — gesetzt mit dem Operator 3 Tr — zeichnet weder Füllung noch Strich: Die Zeichen sind im Inhaltsstrom, sie lassen sich markieren, durchsuchen und extrahieren, und sie sind auf der Seite völlig unsichtbar. Ein Teil des unsichtbaren Texts ist legitim und wertvoll: Die OCR-Ebene hinter einer gescannten Seite ist genau das, versteckter Text, der ein Bild durchsuchbar macht. Das Problem ist alles andere, was in Modus 3 oder seinen Verwandten landet — weisser Text auf weissem Grund, Text, der aus der sichtbaren Seite herausgeschnitten ist, eine für Suchmaschinen hinzugefügte Stichwort-Ebene — denn ein Leser, der die Text-Ebene extrahiert, erhält Worte, die die Seite nie gezeigt hat. Wenn die versteckte Ebene der sichtbaren widerspricht, sagt die Datei zwei Dinge zugleich, und nur eines davon wurde Korrektur gelesen.
Auch Bilder führen Tagebuch: PNG-Blöcke und JPEG-Exif
Eine PNG-Datei ist eine Folge benannter Blöcke, und mehrere Blocktypen existieren nur, um Text zu tragen: tEXt, sein komprimierter Bruder zTXt und das internationalisierte iTXt. Exportwerkzeuge schreiben sie gewohnheitsmässig — ein Schlüsselwort Software, das den Editor nennt, eine Ersteller-Werkzeug-Zeichenkette, manchmal ein ganzes eingebettetes XML-Profil — und sie überleben jeden Zuschnitt und jede Skalierung, die die Blockliste intakt lässt. Der tIME-Block fügt einen Zeitstempel der letzten Änderung hinzu, ein eXIf-Block kann einen vollständigen Kamera-Metadatenblock tragen, und Bytes, die nach dem schliessenden IEND-Block angehängt wurden, ignoriert jeder Betrachter, während sie in der Datei bleiben. Ein Screenshot, der wie ein neutrales Bild eines Fensters aussieht, kann also die Software der Maschine nennen, sich selbst datieren und Daten tragen, die sein Autor nie gesehen hat.
JPEG-Fotos gehen weiter. Die Datei ist eine Kette von Marker-Segmenten: APP0 trägt den JFIF-Header, APP1 trägt entweder einen Exif-Block oder ein XMP-Paket — manchmal beides. Die Exif-IFD0-Felder lesen sich wie das Tagebuch einer Kamera: Make und Model des Geräts, das DateTime, zu dem das Bild aufgenommen oder zuletzt geändert wurde, die Software, die es verarbeitet hat, und in erweiterten Verzeichnissen GPS-Koordinaten. Handyfotos, die direkt aus der Kamerarolle veröffentlicht wurden, haben Organisationen und Einzelpersonen gleichermassen blamiert, indem sie sie präzise zu einer Zeit und an einem Ort verorteten, die das Bild selbst nie zeigte. Kommentar-Segmente (COM) fügen freien Text des letzten Werkzeugs hinzu, das die Datei gespeichert hat, überzählige Bytes können nach der Bildende-Markierung sitzen, und das Werkzeug, das all dies liest — Phil Harveys ExifTool, in den Quellen aufgeführt — ist ein kostenloser Download, was bedeutet, dass auch Ihre Empfänger es lesen können.
Zeitstempel gegenprüfen, dann vor dem Veröffentlichen bereinigen
Ein einzelner Zeitstempel ist eine Behauptung; mehrere Zeitstempel sind eine Geschichte, die sich gegen sich selbst prüfen lässt. Ein Erstellungsdatum, das nach dem Änderungsdatum liegt, kann kein Dokument beschreiben, das von einem Werkzeug in einem Durchgang erzeugt wurde. Ein Info-Wörterbuch-Datum, das vom XMP-Datum für dasselbe Ereignis abweicht, verzeichnet zwei Werkzeuge mit zwei Uhren. Ein Datum in der Zukunft verzeichnet eine falsch gestellte Uhr, ein von Hand bearbeitetes Feld oder eine aus Teilen zusammengesetzte Datei. Selbst das PDF-Datumsformat lädt zur Mehrdeutigkeit ein — die D:-Zeichenkette darf ihre Zeitzone auslassen und lässt Leser raten, von welcher Uhr die Zahlen stammen. Behandeln Sie jede Unstimmigkeit so, wie ein Prüfer eine Bilanzdifferenz behandelt: Sie hat meist eine unschuldige Erklärung — Vorlagen-Wiederverwendung, eine Laptop-Uhr, ein Optimierer, der die Datei beim Hochladen neu geschrieben hat — und sie ist zu wägende Evidenz, niemals ein Urteil für sich allein. Metadatenfelder kann jeder mit kostenlosen Werkzeugen bearbeiten, also bekräftigen oder widersprechen sie einer Geschichte; beweisen können sie sie nicht.
Bereinigen ist deshalb ein Arbeitsablauf, kein Knopf. Erstens: prüfen — lassen Sie die Datei durch das Werkzeug zur Dokumenten-Forensik laufen und notieren Sie, was sie einem Fremden erzählen würde: Autoren- und Werkzeugnamen, Revisionszahl, eingebettete Dateien, versteckter Text, Zeitstempel, die miteinander streiten. Zweitens: an der Quelle korrigieren, wo Sie können — korrigieren Sie die Dokument-Eigenschaften in der Autoren-Anwendung, statt ihre Ausgabe zu flicken. Drittens: eine frische, vollständige Neuschreibung exportieren — Drucken nach PDF, ein dedizierter Bereiniger oder ExifTool für Bilder — denn eine vollständige Neuschreibung verwirft frühere Revisionen, verwaiste Objekte und überzählige Daten in einer Weise, wie es inkrementelles Speichern nie tun wird. Zuletzt: die Kopie erneut prüfen, die Sie tatsächlich versenden, nicht die, die Sie versenden wollten. Und behalten Sie die Unterscheidung, auf der der ganze Artikel ruht: Interne Originale sollten ihre Metadaten behalten, denn Herkunft, Archivwert und sogar Barrierefreiheit — ein Dokumenttitel ist ebenfalls ein Metadatum — hängen davon ab. Bereinigen Sie die veröffentlichte Kopie und bewahren Sie den Datensatz zu Hause intakt auf.