🏷️Varianten, Sicherheit und Versionen

Neben dem Kernformat gibt es ISO-Teilmengen für bestimmte Zwecke – sie verbieten Funktionen oder verlangen zusätzliche Angaben. Dazu kommen Verschlüsselung, Signaturen und Formulare, die alle mit denselben Objekten gebaut sind.

📅Versionsgeschichte 1.0 (1993) bis 2.0 (2017/2020)

PDF 2.0 · 2017 · ISO 32000-2:2017
  • erste PDF-Version ohne Adobe als Herausgeber
  • AES-256 (Revision 6); RC4 und ältere Verfahren veraltet
  • XFA und Info-Dictionary veraltet, UTF-8-Strings, Associated Files

🧾ISO-Teilmengen und PDF 2.0

PDF/A
ISO 19005 · -1 (2005, auf PDF 1.4) · -2 (2011, PDF 1.7) · -3 (2012) · -4 (2020, PDF 2.0)

Langzeitarchivierung: die Datei muss in Jahrzehnten noch gleich aussehen.

  • alle Schriften eingebettet
  • keine Verschlüsselung, kein JavaScript
  • keine externen Inhalte, Farben über OutputIntent/ICC eindeutig
  • XMP-Metadaten mit PDF/A-Kennung
  • PDF/A-3 erlaubt eingebettete Dateien beliebigen Typs (z. B. XML-Rechnung bei ZUGFeRD/Factur-X)
PDF/X
ISO 15930 · X-1a (2001) · X-4 (2008/2010) · X-6 (2020, PDF 2.0)

Druckvorstufe: verlässlicher Austausch mit der Druckerei.

  • OutputIntent (Druckbedingung) Pflicht
  • TrimBox bzw. ArtBox je Seite
  • Schriften eingebettet, keine Verschlüsselung
  • X-1a: nur CMYK/Sonderfarben, keine Transparenz; X-4: Transparenz und ICC-Farbe erlaubt
PDF/UA
ISO 14289 · -1 (2012, PDF 1.7) · -2 (2024, PDF 2.0)

Universal Accessibility: nutzbar mit Screenreader und anderen Hilfsmitteln.

  • Tagged PDF: vollständiger Strukturbaum (/StructTreeRoot), /MarkInfo << /Marked true >>
  • Alternativtexte für Bilder, logische Lesereihenfolge
  • Dokumentsprache /Lang, Titel mit /DisplayDocTitle true
  • Artefakte (Kopfzeilen, Deko) als solche gekennzeichnet
PDF 2.0
ISO 32000-2:2017, überarbeitet 2020

Die erste unter ISO entwickelte Vollversion – keine Teilmenge, sondern der neue Basisstandard.

  • AES-256 (Security-Handler-Revision 6); RC4 und AES-128 veraltet
  • XFA-Formulare und das Info-Dictionary veraltet (Metadaten per XMP)
  • Text-Strings auch in UTF-8 (mit BOM EF BB BF)
  • Associated Files, seitenweise OutputIntents, Black-Point-Compensation

Konformität wird in den XMP-Metadaten erklärt (z. B. pdfaid:part="2", pdfaid:conformance="B") und mit Prüfprogrammen wie dem freien veraPDF getestet. Weitere Teilmengen: PDF/E (Technik, ISO 24517) und PDF/VT (variabler Datendruck, ISO 16612-2).

🔐Verschlüsselung

💡 Was wird verschlüsselt?
Nur Strings und Streams. Die Objektstruktur – Dictionaries, Namen, Zahlen, xref-Tabelle – bleibt lesbar. Man sieht also, dass es 10 Seiten gibt, aber nicht, was darauf steht.
✅ User- und Owner-Passwort
Das User-Passwort öffnet das Dokument mit den Rechten aus /P. Das Owner-Passwort gewährt alle Rechte. Ohne User-Passwort öffnet sich die Datei für jeden – dann schützt nur noch die Rechte-Bitte.
Echt: qpdf --encrypt --user-password=beispiel-user --owner-password=beispiel-owner --bits=256
<< /Filter /Standard /V 5 /R 6 /Length 256
   /CF << /StdCF << /AuthEvent /DocOpen /CFM /AESV3 /Length 32 >> >>
   /StmF /StdCF /StrF /StdCF
   /O <…> /U <…> /OE <…> /UE <…> /Perms <…>
   /P -4 >>

Hashes gekürzt. Das Encrypt-Dictionary hängt am Trailer (/Encrypt); dann ist /ID Pflicht.

RevisionVerfahrenseitStatus
R 2RC4, 40 BitPDF 1.1unsicher
R 3RC4, 40–128 BitPDF 1.4unsicher
R 4RC4 oder AES-128 über Crypt-Filter (/CFM /AESV2)PDF 1.5 / 1.6veraltet
R 5AES-256 (Adobe Extension Level 3)Acrobat 9, 2008nie ISO – veraltet
R 6AES-256 (/CFM /AESV3)PDF 2.0 (bzw. Extension Level 8)empfohlen

Bis Revision 4 wird für jedes Objekt ein eigener Schlüssel aus Dateischlüssel + Objekt- und Generationsnummer (MD5) abgeleitet; ab Revision 5 gilt ein einziger 256-Bit-Dateischlüssel.

🎛️ Berechtigungen /P zusammenklicken

Eintrag im Encrypt-Dictionary
/P -4
11111111111111111111111111111100

Bit 32 links, Bit 1 rechts. Grau: fest vorgegeben (Bits 1–2 = 0, alle anderen = 1). /P ist eine vorzeichenbehaftete 32-Bit-Zahl – deshalb negativ.

⚠️ Berechtigungen sind eine Bitte an das Anzeigeprogramm. Ist nur ein Owner-Passwort gesetzt (User-Passwort leer), kann jedes Werkzeug die Datei entschlüsseln – z. B. qpdf --decrypt.

✍️Digitale Signaturen und /ByteRange

Eine Signatur kann nicht „in“ den Bytes stehen, die sie schützt. Deshalb wird im Signatur-Dictionary ein Platzhalter /Contents <000…> reserviert. Der Hash wird über alle Bytes außer diesem Platzhalter gebildet – beschrieben durch /ByteRange [start1 länge1 start2 länge2]. Danach wird die CMS-/PKCS#7-Signatur hexkodiert in den Platzhalter geschrieben.

% Signaturfeld (Formularfeld + Widget)
7 0 obj
<< /FT /Sig /T (Unterschrift1) /V 8 0 R
   /Type /Annot /Subtype /Widget /Rect [0 0 0 0] /P 3 0 R >>
endobj
% Signatur-Dictionary
8 0 obj
<< /Type /Sig /Filter /Adobe.PPKLite
   /SubFilter /ETSI.CAdES.detached
   /ByteRange [0 840 17226 1003]
   /Contents <3082…0000>        % 8192 Bytes reserviert, Rest mit 00 aufgefüllt
   /M (D:20260928120000+02'00') >>
endobj

Synthetisches Beispiel. /SubFilter /ETSI.CAdES.detached = PAdES (europäische eIDAS-Signaturen), /adbe.pkcs7.detached = klassisch.

signiert
/Contents <…Signatur…>
signiert
/ByteRange [0 840 17226 1003] · Dateilänge 18229

✅ Die ByteRange deckt die ganze Datei ab – bis auf den Platzhalter, in dem die Signatur selbst steht.

Werte synthetisch berechnet: a = Offset von „<“, b = a + 2·Bytes + 2, c = Dateilänge − b.

📝Formulare (AcroForm)

% im Katalog
/AcroForm << /Fields [10 0 R] /DA (/Helv 0 Tf 0 g)
             /DR << /Font << /Helv 11 0 R >> >> >>

% Textfeld = Feld-Dictionary + Widget-Annotation in einem Objekt
10 0 obj
<< /FT /Tx /T (name) /V (Erika Mustermann) /MaxLen 40
   /Type /Annot /Subtype /Widget /Rect [72 700 300 720]
   /P 3 0 R /AP << /N 12 0 R >> >>          % Aussehen als Form-XObject
endobj
💡 Feldtypen /FT
/Tx Text · /Btn Schaltflächen, Kontrollkästchen, Optionsfelder · /Ch Listen und Kombinationsfelder · /Sig Signaturfeld.
✅ Wert und Aussehen sind getrennt
/V ist der Wert, /AP das gezeichnete Aussehen (ein kleiner Content-Stream). Mit /NeedAppearances true bittet ein Erzeuger den Betrachter, die Darstellung selbst neu zu berechnen.
⚠️ XFA ist Geschichte
Die XML-basierten XFA-Formulare (seit PDF 1.5) sind in PDF 2.0 veraltet; viele Betrachter außer Acrobat unterstützen sie nicht.