OMG WTF PDF

Auf dem letztjährigen 27c3 gab es einen Vortrag über das PDF und die daraus resultierenden Sicherheitsprobleme. Gehalten wurde der Vortrag von Julia Wolf. Sie geht darin auf interessante Features und Eigenschaften des Formats ein. Der Vortrag ist wirklich super und ein bisschen technischen Hintergrund und das Verständnis der englischen Sprache vorausgesetzt sollte man sich ihn anschauen. Hier ein paar mir bis eben unbekannte Fakten:

  • Adobe Acrobat hat 15 Mio Zeilen Code (der Linux Kernel hat 10 Mio)

  • 400 Seiten Formatbeschreibung

  • JavaScript Code im Dokument, der beim Anzeigen ausgeführt wird

  • OpenGL rendering

  • eingebettetes Flash!!1! m(

  • eingebettetes Audio und Video

  • beliebige Programme ausführen (mittlerweile ‘gefixed’)

  • 16 verschiedene Kompressionsalgorithmen werden unterstützt, die gleichzeitig verwendet werden können

  • viele Möglichkeiten um den potentiell gefährlichen Code, den man einbetten will zu obfuskieren

Hier gibts den Direktlink zum Video oder alternativ ist es hier als Flash eingebettet: hier die Seite mit dem eingebetteten Video.

Der Vortrag zeigt sehr schön, dass Adobe dort (genau wie bei Flash) ein gigantisches _wir-können-alles-und-das-auf-37-verschiedene-Varianten-_Format spezifiziert hat, das sie selbst nicht mehr unter Kontrolle haben. Alle PDF-Reader, die versuchen, die Spezifikation zu implementieren, rennen seit Jahren hinter aus dem Format resultierenden Sicherheitsproblemen hinterher und die Codeumfänge steigen und steigen.

Wofür brauchen wir eigentlich das PDF? Ich glaube das was 95% der Leute wollen ist ein Dateiformat, dass

  • unabhängig vom Betriebssystem und Endgerät gleich aussieht

  • Text, Grafik und Bilder enthalten kann

  • in das Schriften eingebettet werden können

  • an einen Drucker gesendet werden kann

Dieser Teil lässt sich ohne Probleme mit Postscript umsetzen. Das Format mag auch nicht besonders schön sein aber es erfüllt seinen Zweck, wird von Druckern unterstützt, etc.

Weitere 4.9% der Leute brauchen wahrscheinlich noch

  • signierte Dokumente (kann man auch extern lösen - PGP)

  • geschützte Dokumente (nicht druckbar,… - will man als Anwender eigentlich nicht haben)

  • Formulare

Alles weitere (<0.1%) halte ich für überflüssig und bin mehr genervt, wenn ich dynamisches, blinkendes oder rotierendes in einem Dokument finde. Damit mag so mancher Designer seine feuchten Träume ausleben können aber mir kann niemand erzählen, dass das den Anwender irgendwie voran bringen würde (und darum sollte es schließlich gehen!). Die breite Mehrheit der Dokumente nutzt solche Funktionen zum Glück auch nicht.

Was praktisch dennoch passiert ist, dass auf quasi jedem Windows-PC der Adobe Reader installiert ist, der all die netten Features inklusive der Sicherheitslücken unterstützt und von einem Großteil der Benutzer nicht ordentlich aktualisiert wird.

Schreibe doch bitte mal jemand ein neues, freies, elegantes Dateiformat, das nur die Kernfeatures unterstützt. Dann kommt auch keiner in die Verlegenheit in den Readern irgendwelchen unsicheren Bullshit einzubauen. Und bis dahin nutzen wir alle Postscript. Danke!