Zum Inhalt springen

Die Standardlandschaft

Spec: ISO 32000-2 Spec: ETSI EN 319 142-1 Spec: RFC 3161 Spec: WCAG 2.2 Evidence: Standard-backed

Eine PDF-Engine ist nicht an ein einziges Dokument gebunden, sondern an eine kleine Föderation von Dokumenten, die von verschiedenen Gremien verfasst wurden und sich gegenseitig referenzieren. Diese Seite kartiert diese Föderation so, wie NextPDF sie verfolgt. Sie beschreibt zugleich den Weg, den eine Klausel von „ein Standard schreibt es vor“ bis zu „die Engine tut es, und ein Test belegt es“ zurücklegt.

Sie richtet sich an erfahrene Entwicklerinnen und Entwickler, die wissen müssen, welches Dokument ein Verhalten regelt, bevor sie entscheiden, ob sie die Auslegung von NextPDF vertreten können.

„PDF-Unterstützung“ ist eine Behauptung, die eine Frage verbirgt: Unterstützung wovon genau? Die Kernsyntax ist ISO 32000-2. Signaturen laufen über ETSI. Zeitstempel sind ein IETF-Protokoll. Das HTML und CSS, das die Engine rendert, ist W3C. Die zugrunde liegende Kryptografie ist NIST. Die Barrierefreiheit der Ausgabe ist ebenfalls W3C.

Wenn eine Bibliothek diese Dokumente als einen einzigen, undifferenzierten Block behandelt, lässt sich ein Fehler nicht schlüssig analysieren. Wenn ein Validator eine signierte Rechnung ablehnt, lautet die erste sinnvolle Frage nicht: „Ist das PDF kaputt?“ Sie lautet: „Welche Klausel welchen Standards wurde nicht erfüllt, und von welcher Seite?“ Um diese Frage stellen zu können, brauchen Sie eine Karte, die die Gremien benennt, und eine ehrliche Darstellung, wie aus einer Klausel ein Verhalten wird.

  • NextPDF verfolgt fünf Standardisierungsgremien. ISO ist für das Format zuständig. ETSI ist für die europäischen Signaturprofile zuständig. IETF ist für die Übertragungsprotokolle zuständig (Zeitstempel, kryptografische Primitive per Referenz). W3C ist für HTML, CSS und die Barrierefreiheitskriterien zuständig. NIST ist für die zugelassenen kryptografischen Algorithmen zuständig.
  • Diese Dokumente bilden Pfade, keine bloße Liste: Eine einzige Fähigkeit für ein signiertes PDF durchläuft ISO → ETSI → IETF → NIST, wobei jede Schicht normativ auf die nächste verweist.
  • Eine Klausel wird nicht dadurch zu Verhalten, dass man sie liest. Sie wird zu Verhalten, indem sie paraphrasiert und zitiert, auf eine Anforderung abgebildet, implementiert und durch einen Test fixiert wird. Die Seite, die das Verhalten beschreibt, weist ihre Evidenzstufe aus.
  • Wo eine Klausel verpflichtend ist, enthält sie ein normatives Schlüsselwort (ein shall, ein must). NextPDF behandelt diese Schlüsselwörter als Vertrag. Ein should ist eine Empfehlung, die NextPDF als solche dokumentiert, nicht als Garantie.

ISO 32000-2 steht im Zentrum. Der Standard definiert, was eine konforme Datei ist. Eine konforme Datei muss jede Anforderung des Dokuments einhalten, darf dabei aber jedes Feature weglassen, das das Dokument nicht ausdrücklich verlangt Spec: ISO 32000-2, §6 . Er legt auch die Pflicht eines Schreibers fest: Alles, was NextPDF in einer Datei erzeugt oder ändert, muss dem Format entsprechen und mit den bereits vorhandenen Elementen konsistent bleiben Spec: ISO 32000-2, §6 . Genau diese Klausel ist der Grund, warum die Engine sich weigert, eine strukturell inkonsistente inkrementelle Aktualisierung auszugeben. Das ist keine Vorliebe von NextPDF, sondern die Regel des Formats selbst.

Von diesem Zentrum aus verweist ISO 32000-2 nach außen. Die Signaturbehandlung wird „mittels Referenz“ über die Normenreihe ETSI EN 319 142 für PAdES definiert. ETSI wiederum referenziert IETF RFC 3161 für das Zeitstempel-Token und die NIST-FIPS-Reihe für die Hash- und Signaturalgorithmen. Eine Fähigkeit ist daher ein Pfad durch mehrere Dokumente, von denen jedes für seine eigene Schicht normativ ist.

  1. Step 1 of 5: ISO 32000-2 §12.8 signatures
  2. Step 2 of 5: ETSI EN 319 142-1 PAdES baseline
  3. Step 3 of 5: RFC 3161 timestamp token
  4. Step 4 of 5: NIST FIPS 180-4 hash strength
  5. Step 5 of 5: WCAG 2.2 tagged output
Der Standards-Pfad, den ein einzelnes langfristig validierbares signiertes PDF durchläuft: ISO definiert den Container und verweist für das Signaturprofil auf ETSI; ETSI verlangt einen IETF-Zeitstempel; die kryptografischen Primitive sind NIST-zugelassen; die gerenderte Ausgabe wird an der W3C-Barrierefreiheit gemessen. Jeder Pfeil ist eine normative Referenz, keine lose Verknüpfung.

Die riskante Variante der Standardarbeit besteht darin, eine Klausel zu lesen und dann Code aus der Erinnerung daran zu schreiben. NextPDF geht bewusst den längeren Weg, weil dieser Weg prüfbar bleibt:

  1. Retrieve The clause is read from the standard, not from memory.
  2. Cite It is paraphrased and pinned with a chunk digest, never quoted.
  3. Classify Its keyword (shall / should / may) sets whether it is a contract or a recommendation.
  4. Map The obligation becomes a concrete engine requirement.
  5. Implement The requirement is built into the pipeline.
  6. Pin A test holds the behaviour against drift.
  7. Tag The page that describes it declares its evidence level.
Der Weg von einer normativen Klausel zu einem getesteten Engine-Verhalten: die Klausel abrufen und zitieren, ihre Verpflichtung anhand ihres normativen Schlüsselworts klassifizieren, sie auf eine Engine-Anforderung abbilden, sie implementieren, sie mit einem Test fixieren und die dokumentierende Seite mit ihrer Evidenzgrundlage kennzeichnen. Eine Klausel, die vor dem Test stehen bleibt, ist eine Behauptung, kein Verhalten.

Der Schritt „klassifizieren“ ist die Stelle, an der die meisten Mehrdeutigkeiten geklärt werden. Spezifikationen kodieren ihre Anforderungsstufen in Schlüsselwörtern: die bekannte Familie MUST, SHALL, SHOULD, MAY. Die Bedeutung dieser Schlüsselwörter ist durch die IETF-Konvention für Anforderungsschlüsselwörter festgelegt, mit der späteren Präzisierung, dass nur die Großbuchstabenformen normativ sind; anschließend wird sie mit der beschreibenden Prosa der jeweiligen Spezifikation zusammengedacht Spec: RFC 2119 Spec: RFC 8174 . NextPDF liest ein shall als harte Grenze, die die Engine nicht überschreitet, und ein should als Empfehlung, der die Engine folgt und die sie als Empfehlung dokumentiert — niemals als Versprechen. Diese Unterscheidung ist der Unterschied zwischen einer ehrlichen Fähigkeitsaussage und einer Überbehauptung.

„Konform“ ist selten ein einzelnes Bit. Die Signaturstandards sind gestuft: Das europäische Profil für Langzeitsignaturen mit Archivierung existiert etwa eigens dafür, Zeitstempel-Token hinzuzufügen, die eine Signatur lange nach ihrer Erstellung validierbar halten Spec: ETSI EN 319 122-1, §6 . Das ist eine strikt stärkere Aussage als eine bloße Basissignatur. Der Barrierefreiheitsstandard folgt demselben Muster: Eine Konformitätsstufe wird nur erreicht, wenn jedes Erfolgskriterium auf dieser Stufe erfüllt wird, und eine Aussage gibt die Stufe an, die sie tatsächlich erreicht hat Spec: WCAG 2.2, §5.2.1 . NextPDF nennt daher das Profil und die Stufe, kein uneingeschränktes „konform“.

Diese Seite ist Evidence: Standard-backed : Jede Aussage ist an eine Klausel gebunden, paraphrasiert und mit einem Digest zitiert, sodass die nächste prüfende Person sie erneut gegen die Quelle verifizieren kann.

SchichtGremiumAnkerklausel (paraphrasiert)Was sie in NextPDF regelt
FormatISODie von einem Schreiber erzeugten oder geänderten Elemente müssen konform sein und konsistent bleiben Spec: ISO 32000-2, §6 Das PDF, das die Engine ausgibt
KonformitätISOEine konforme Datei erfüllt alle Anforderungen; zusätzliche Features sind optional Spec: ISO 32000-2, §6 Was „gültige Ausgabe“ bedeutet
SignaturprofilETSIDie Stufe „Langzeit mit Archivierung” fügt Zeitstempel für die spätere Validierung hinzu Spec: ETSI EN 319 122-1, §6 Das PAdES-Profil, auf das eine Signatur abzielt
Vertrauenswürdige ZeitIETFEin Zeitstempeldienst beweist, dass ein Datum vor einem Zeitpunkt existierte Spec: RFC 3161, §2 Das Dokument-Zeitstempel-Token
KryptografieNISTZugelassene Hashes unterscheiden sich in der Sicherheitsstärke, die sie verleihen Spec: NIST FIPS 180-4, §1 Der Digest-Algorithmus unter einer Signatur
Barrierefreie AusgabeW3CEine Konformitätsstufe erfordert jedes Kriterium auf dieser Stufe Spec: WCAG 2.2, §5.2.1 Barrierefreiheitsaussagen zu gerenderten PDFs

Die zitierten Digests sind im citations-Frontmatter dieser Seite festgehalten. Keiner der Standardtexte wird hier wiedergegeben. Die Regel, die diese Entscheidung bestimmt, steht auf einer eigenen Seite. Siehe Zitierdisziplin.

Sie führen die Standardlandschaft nicht aus; Sie lesen sie, um zu entscheiden, was Sie von der Engine verlangen. Konkret ist ein langfristig validierbarer Signieraufruf eine Aussage darüber, welchen Punkt auf dem Pfad Sie benötigen:

examples/36-sign-pades-b-b-and-b-t.php
<?php
declare(strict_types=1);
use NextPDF\Core\Document;
use NextPDF\Security\Signature\CertificateInfo;
use NextPDF\Security\Signature\DigitalSigner;
use NextPDF\Security\Signature\SignatureLevel;
// The signature level is a coordinate on the ISO -> ETSI -> RFC trail.
// PAdES B-B is the ETSI baseline CMS SignedData the Core engine produces;
// B-T adds an RFC 3161 timestamp, and B-LT/B-LTA add the DSS and document
// timestamps that keep a signature validatable after the certificate
// expires. The level you name is the point on the trail you are asking for.
$certInfo = CertificateInfo::fromFiles(
certPath: 'signer-cert.pem',
keyPath: 'signer-key.pem',
);
// The functional signing path is the direct two-phase signing engine.
// (Document::setSignature() records intent but its writer seam is not yet
// wired and fail-fasts on output — see the PadesOrchestrator docblock.)
$signer = new DigitalSigner(
certInfo: $certInfo,
level: SignatureLevel::PAdES_B_B,
);
$result = $signer->sign(file_get_contents('agreement.pdf'));
printf(
"PAdES %s CMS: %d bytes, timestamp=%s\n",
SignatureLevel::PAdES_B_B->value,
$result->getSize(),
$result->hasTimestamp() ? 'yes' : 'no',
);

Die Wahl von PAdES_B_LTA statt einer bloßen Basisstufe ist kein Performance-Regler. Sie entscheidet darüber, wie weit die Verpflichtung entlang des Standardpfads reicht. B-LT und B-LTA ziehen die DSS- und Archiv-Zeitstempel-Schichten heran und erfordern zur Laufzeit das Enterprise-LTV-Paket. Statt stillschweigend herabzustufen, weigert sich die Engine, vorzutäuschen, eine niedrigere Stufe erfülle eine höhere.

Die Falle besteht darin, „NextPDF ist standardkonform“ als eine einzige, vollständige Garantie zu lesen. Diese Garantie gibt es nicht, und keine ehrliche Engine gibt sie. Konformität gilt pro Standard, pro Klausel und pro Stufe. NextPDF zielt auf die PDF-2.0-Basislinie, benannte PAdES-Profile und angegebene Barrierefreiheitsstufen — jeweils abgegrenzt, jeweils zitiert. Eine Behauptung ohne eine Klausel und eine Stufe dahinter ist Marketing, und Insider_ druckt sie nicht.

Die zweite, subtilere Falle besteht darin, ein normatives should für ein Versprechen zu halten. Es ist eine Empfehlung. NextPDF dokumentiert Empfehlungen als Empfehlungen. Die Garantien der Engine werden aus den shall-Klauseln gebildet, und dieser Unterschied ist entscheidend.

Diese Seite ist die Karte, nicht das Gelände. Sie zählt nicht jede Klausel auf, die NextPDF implementiert, und sie ist kein Konformitätszertifikat. Der Nachweis für ein konkretes Verhalten steht auf der Themenseite, zu der dieses Verhalten gehört, zusammen mit deren eigener Evidenzstufe — zum Beispiel PDF 2.0: was sich geändert hat für das Format-Delta.

Auch die Standardlandschaft verändert sich. Neue Ausgaben erscheinen. Referenzen werden neu ausgerichtet. Eine hier zitierte Klausel ist an den Korpus-Snapshot gebunden, der im citations dieser Seite festgehalten ist. Wenn ein vorgelagerter Standard überarbeitet wird, wird das Zitat erneut gegen die neue Klausel validiert und nicht einfach als fortbestehend angenommen. Wo diese Seite eine Fähigkeit der Premium-Stufe benennt, tut sie das auf der Ebene, welchen Standard sie erfüllt, niemals auf der Ebene des internen Mechanismus.

  • PDF 2.0: was sich geändert hat — das konkrete ISO 32000-2-Delta, auf das die Formatschicht dieser Karte verweist.
  • Dokumentation als Produkt — warum die Disziplin, Klauseln auf Verhalten abzubilden, als Engineering behandelt wird.
  • Zitierdisziplin — die Regel, die entscheidet, wie eine Klausel hier zitiert wird und was eine Evidenzstufe bedeutet.
  • Standardisierungsgremium — eine Organisation, die eine Spezifikation veröffentlicht (ISO, ETSI, IETF, W3C, NIST). Jedes Gremium verantwortet eine andere Schicht des PDF-Stacks.
  • Normative Klausel — eine Anforderung in einem Standard, identifiziert durch ihr Schlüsselwort (shall/must für verpflichtend, should für empfohlen, may für optional).
  • Standards-Pfad — eine geordnete Kette von Spezifikationen, die eine einzelne Fähigkeit durchläuft, wobei jedes Dokument normativ auf das nächste verweist.
  • Konformitätsstufe — eine abgestufte Ebene der Konformität (ein ETSI-Basisprofil, eine WCAG-Stufe). Eine Aussage gibt die tatsächlich erreichte Stufe an, kein uneingeschränktes „konform“.
  • PAdES — PDF Advanced Electronic Signatures, die ETSI EN 319 142-Familie von Signaturprofilen, auf die ISO 32000-2 für das PDF-Signieren verweist.