PAdES-Baseline-Mapping
Auf einen Blick
Abschnitt betitelt „Auf einen Blick“PAdES ist die in ETSI EN 319 142 standardisierte Profilfamilie für PDF Advanced Electronic Signatures. Sie definiert vier Baseline-Konformitätsstufen – B-B, B-T, B-LT und B-LTA –, wobei jede höhere Stufe der jeweils darunterliegenden weiteres Material hinzufügt. Diese Seite ordnet diese Stufen dem zu, was NextPDF erzeugt, und trennt dabei die Core-Oberfläche von den Pro- und Enterprise-Editionen. Das Mapping liegt auf Verhaltensebene: Es beschreibt, was die Engine ausgibt, nicht welche internen Klassen beteiligt sind.
Kurz gesagt: NextPDF Core erzeugt Signaturstrukturen, die auf die Stufen B-B und B-T ausgerichtet sind. Der Erzeugerpfad für B-LT und B-LTA wird mit den Pro- und Enterprise-Editionen ausgeliefert. Ob eine erzeugte Signatur auf einer bestimmten Stufe als konform akzeptiert wird, hängt vom Prüfer und von den Vertrauensankern ab, mit denen dieser Prüfer konfiguriert ist. Ein Erzeuger kann die Konformität nicht stellvertretend für den Prüfer zusichern.
Installation
Abschnitt betitelt „Installation“composer require nextpdf/core:^3Konzeptioneller Überblick
Abschnitt betitelt „Konzeptioneller Überblick“Eine digitale PDF-Signatur ist eine CMS-SignedData-Struktur, die im Contents-Eintrag des Signatur-Dictionaries abgelegt wird. Das ByteRange-Array benennt die Byte-Bereiche, die der Digest abdeckt – ISO 32000-2 §12.8.1. Das CMS-SignerInfo enthält die signierten Attribute, darunter content-type und message-digest – RFC 5652 §5.3. Der Message-Digest über diese Attribute wird nach dem in §5.4 beschriebenen Prozess berechnet. PAdES übernimmt das Attributmodell von CAdES und bettet es in dieses PDF-Signatur-Dictionary ein.
Die vier Baseline-Stufen bauen aufeinander auf:
- B-B enthält die Basissignatur mit ihren verpflichtenden signierten Attributen.
- B-T fügt ein Signatur-Zeitstempel-Attribut hinzu, das über den Signaturwert berechnet wird. Das Zeitstempel-Attribut belegt, dass die Signatur zum gestempelten Zeitpunkt existierte – ETSI PAdES §5.4.3. Das Token wird von einer RFC 3161-Zeitstempelautorität erzeugt – RFC 3161 §2.4.1.
- B-LT fügt im Document Security Store abgelegtes Material für die Langzeitvalidierung hinzu – Zertifikat-, OCSP- und CRL-Daten – ETSI PAdES §6.2.2, ISO 32000-2 §12.8.4.3 sowie die in ETSI EN 319 142-2 §6.3 beschriebene Platzierung der Validierungsdaten.
- B-LTA fügt einen Archiv-Dokument-Zeitstempel hinzu, um die Gültigkeit über lange Zeiträume zu erhalten – ETSI PAdES §6.2.2.
Die vier Stufen bauen strikt aufeinander auf – jede höhere Stufe behält alles bei, was die darunterliegende Stufe enthält, und fügt genau eine neue Materialschicht hinzu. Die Erzeugeredition, die den jeweiligen Schritt bereitstellt, ist am Übergang angegeben.
API-Oberfläche
Abschnitt betitelt „API-Oberfläche“Der Selektor für die Stufe ist das Enum SignatureLevel mit den Fällen PAdES_B_B, PAdES_B_T, PAdES_B_LT und PAdES_B_LTA. Seine Methoden requiresTimestamp(), requiresDss(), requiresDocumentTimestamp() und isAvailableInEnvironment() melden, was eine Stufe benötigt und ob die aktuelle Laufzeitumgebung dies erfüllen kann. In der Core-Distribution gibt isAvailableInEnvironment() für B-B und B-T den Wert true zurück und für B-LT und B-LTA den Wert false. Für B-LT und B-LTA gibt sie false zurück, weil der Erzeuger für die Langzeitvalidierung zur Laufzeit aufgelöst wird und nicht Teil des Open-Source-Pakets ist. Produktionscode verwendet den Vertrag SignerInterface statt dieser internen Typen.
Matrix der Stufenunterstützung
Abschnitt betitelt „Matrix der Stufenunterstützung“| Stufe | Was sie hinzufügt | Core (nextpdf/core) | Pro / Enterprise |
|---|---|---|---|
| B-B | Basissignatur mit verpflichtenden signierten Attributen | Erzeugt eine ausgerichtete Struktur; gegen synthetische Golden-Baselines getestet | Gleiche Oberfläche |
| B-T | Signatur-Zeitstempel über dem Signaturwert | Erzeugt eine ausgerichtete Struktur, wenn ein RFC 3161-Zeitstempeldienst bereitgestellt wird | Gleiche Oberfläche |
| B-LT | Validierungsdaten im Document Security Store | Erzeuger in Core nicht enthalten; die Auswahl von B-LT ohne das Enterprise-Paket schlägt sicher fehl | Erzeuger enthalten |
| B-LTA | Archiv-Dokument-Zeitstempel | Erzeuger in Core nicht enthalten; schlägt wie oben sicher fehl | Erzeuger enthalten |
„Erzeugt eine ausgerichtete Struktur“ bedeutet, dass die Engine eine Signatur ausgibt, deren Struktur den zitierten Klauseln folgt. Diese Struktur wird durch die Artefakte unter tests/Corpus/pades/ und tests/Golden/baselines/ des Projekts geprüft. Damit ist nicht ausgesagt, dass ein externer Validator die Ausgabe auf dieser Stufe zertifiziert. Siehe den Abschnitt zur Konformität.
Codebeispiel – Schnellstart
Abschnitt betitelt „Codebeispiel – Schnellstart“<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Contracts\SignerInterface;
/** * Sign a byte range with any SignerInterface implementation. * * @param SignerInterface $signer A Core or Premium signer. * @param string $byteRange The PDF byte range to sign. * * @return string Hex-encoded CMS SignedData for the PDF /Contents field. */function signByteRange(SignerInterface $signer, string $byteRange): string{ return $signer->sign($byteRange)->toHex();}Die Funktion hängt vom Vertrag SignerInterface ab, nicht von einer konkreten Klasse. Ein Core-Softwaresignierer (B-B oder B-T) und ein Premium-HSM-Signierer erfüllen ihn beide. Der Aufrufercode ändert sich nicht, wenn die Edition wechselt.
Codebeispiel – Produktion
Abschnitt betitelt „Codebeispiel – Produktion“<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Security\Signature\SignatureLevel;
/** * Resolve the highest baseline level the current runtime can produce. * * B-B and B-T are produced by the Core distribution. B-LT and B-LTA * require the Enterprise long-term-validation package; without it the * level reports unavailable so callers fail closed rather than emit a * structure that does not carry the validation material the level names. * * @return SignatureLevel The highest level available in this runtime. */function highestAvailableLevel(): SignatureLevel{ foreach ([ SignatureLevel::PAdES_B_LTA, SignatureLevel::PAdES_B_LT, SignatureLevel::PAdES_B_T, SignatureLevel::PAdES_B_B, ] as $level) { if ($level->isAvailableInEnvironment()) { return $level; } }
return SignatureLevel::PAdES_B_B;}isAvailableInEnvironment() liefert true für B-B und B-T ohne zusätzliches Paket. Für B-LT und B-LTA liefert sie nur dann true, wenn das Enterprise-Paket für die Langzeitvalidierung installiert ist. Wird eine nicht verfügbare Stufe gewählt, ohne dass eine Degradierung explizit gewählt wurde, löst dies eine typisierte Ausnahme für nicht erreichbare Stufen aus, deren Meldung das fehlende Paket nennt. Ein fehlkonfiguriertes Deployment schlägt deshalb sicher fehl, statt stillschweigend eine niedrigere Stufe auszugeben, als der Aufrufer angefordert hat.
Sonderfälle & Fallstricke
Abschnitt betitelt „Sonderfälle & Fallstricke“- Eine Signatur, die strukturell B-T ist, ist nicht dasselbe wie eine Signatur, die als B-T validiert wurde. Die Validierung erfolgt beim Prüfer mit dessen Vertrauensankern und dem aktuellen Stand der Sperrinformationen. Der Erzeuger kann das Ergebnis nicht zusichern.
- PAdES B-LT und B-LTA benötigen das NextPDF Enterprise-Paket (
nextpdf/enterprise). Ist es nicht installiert, schlägt der Signierer sicher fehl und B-LT/B-LTA sind nicht verfügbar. Die Core-Oberfläche stellt B-B/B-T über das öffentlicheNextPDF\Contracts\SignerInterfacebereit, während die Langzeitvalidierung hinterLtvManagerInterfaceliegt. Die Wahl einer nicht verfügbaren Stufe in der Core-Distribution schlägt standardmäßig sicher fehl. Die typisierte Ausnahme nennt das fehlende öffentliche Paket, keinen internen Typ. Die kontrollierte Degradierung auf eine niedrigere Stufe ist optional und niemals der Standard. - Der Byte-Range-Digest muss den Signaturwert ausschließen. Ein Digest, der auch die
Contents-Oktette abdeckt, kann niemals verifizieren – ISO 32000-2 §12.8.1. - Der Signatur-Zeitstempel in B-T wird über den Signaturwert gebildet, nicht über die Dokumentbytes. Der Archiv-Zeitstempel in B-LTA ist ein separater Dokument-Zeitstempel. Die beiden sind nicht austauschbar – ETSI PAdES §5.4.3 und §6.2.2.
- ETSI EN 319 142-1 (der Teil zu den Baseline-Stufen) ist nicht im Evidenzkorpus dieses Projekts enthalten. Aussagen zur Stufenstruktur sind hier an ETSI EN 319 142-2, das Profildokument
pades, ISO 32000-2 §12.8 sowie RFC 5652 / RFC 3161 verankert. Stufen-Namen und additive Struktur sind als in v3.x implementiert ausgewiesen. Es wird kein Konformitätstest-Ergebnis und keine Bestätigung durch Dritte behauptet.
Performance
Abschnitt betitelt „Performance“Der Aufwand steigt mit der Stufe. B-B besteht aus einer einzelnen Signieroperation und liegt bei einem Softwareschlüssel im einstelligen Millisekundenbereich. B-T fügt einen Netzwerk-Roundtrip zur Zeitstempelautorität hinzu. B-LT fügt einen Sperrinformationsabruf pro Zertifikat in der Kette hinzu. B-LTA fügt einen weiteren Dokument-Zeitstempel hinzu. Das Wanduhrbudget von 1500 ms deckt eine einzelne B-T-Signatur mit einer entfernten TSA über eine warme Verbindung ab. B-LT oder B-LTA an einem langsamen Sperrinformationsendpunkt überschreitet es und gehört aus dem Request-Pfad heraus. Das Reproduzierbarkeitsprofil ist structural, nicht bitwise. Ein Zeitstempel bettet den Signierzeitpunkt ein. Zwei Durchläufe unterscheiden sich daher in den Zeitstempelbytes, während die Dokumentstruktur identisch bleibt.
Sicherheitshinweise
Abschnitt betitelt „Sicherheitshinweise“Die von einer Signatur beanspruchte Stufe und die Stufe, auf der sie validiert wird, sind zwei verschiedene Sachverhalte. Diese Seite beschreibt ausschließlich die Erzeugeroberfläche. Die Langzeitvalidierung hängt davon ab, dass die Validierungsdaten zum Signierzeitpunkt erfasst werden und dass der Prüfer später denselben Ankern vertraut. Beides kann der Erzeuger nicht garantieren. Das Vertrauen in den Zeitstempel reduziert sich auf das Vertrauen in die Zeitstempelautorität, die das Deployment über einen injizierbaren Provider festlegt. Diese Seite ist mit export_control_class: legal-review-required markiert, weil sie kryptografische Signaturprofile betrifft. Gemäß der Zitierhygiene werden alle normativen Quellen paraphrasiert; keine wird wörtlich wiedergegeben.
Konformität
Abschnitt betitelt „Konformität“| Behauptung | Standard | Klausel | Nachweis |
|---|---|---|---|
Der Signaturwert wird DER-codiert als CMS-SignedData oder als TimeStampToken im Contents-Eintrag des Signatur-Dictionaries abgelegt. | ISO 32000-2 | §12.8.1 | |
Der Digest wird über die ByteRange-Bereiche berechnet und schließt den Signaturwert aus. | ISO 32000-2 | §12.8.1 | |
| Das Signatur-Zeitstempel-Attribut wird über dem Signaturwert berechnet (B-T). | ETSI PAdES (EN 319 142) | §5.4.3 | |
| Material für die Langzeitvalidierung wird im Document Security Store getragen (B-LT). | ETSI PAdES (EN 319 142) / ISO 32000-2 | §6.2.2 / §12.8.4.3 | , |
| Validierungsdaten werden in den DSS- und VRI-Dictionaries abgelegt. | ETSI EN 319 142-2 | §6.3 | , |
| Ein Archiv-Dokument-Zeitstempel erhält die Gültigkeit über lange Zeiträume (B-LTA). | ETSI PAdES (EN 319 142) | §6.2.2 | |
| SignerInfo trägt die signierten Attribute content-type und message-digest. | RFC 5652 | §5.3 | |
| Der Message-Digest wird über die DER-codierten signierten Attribute berechnet (Prozess aus §5.4). | RFC 5652 | §5.4 | |
| Der Zeitstempel wird bei einer RFC 3161-TSA angefordert; die Antwort enthält eine TSTInfo-Struktur. | RFC 3161 | §2.4.1 |
Alle Klauseln werden paraphrasiert. NextPDF gibt normativen Text nicht wieder. Den verbindlichen Wortlaut finden Sie in den veröffentlichten Standards. ETSI EN 319 142-1 ist nicht im Evidenzkorpus enthalten. Strukturelle Aussagen über die Baseline-Stufen sind an die obigen Quellen verankert und als in v3.x implementiert ausgewiesen.
Kommerzieller Kontext
Abschnitt betitelt „Kommerzieller Kontext“Core erzeugt B-B- und B-T-Signaturstrukturen. Der Erzeugerpfad für B-LT und B-LTA, die HSM- und PKCS#11-Schlüsselverwahrung sowie das FIPS 140-3-Krypto-Policy-Profil werden mit den Pro- und Enterprise-Editionen ausgeliefert. Core löst den Erzeuger für die Langzeitvalidierung zur Laufzeit auf. Die Open-Source-Engine trägt deshalb keine kommerzielle Abhängigkeit, und die SignerInterface-API ändert sich beim Upgrade nicht.
Siehe auch
Abschnitt betitelt „Siehe auch“- Security / Signing – die Implementierungsoberfläche für CMS, Zeitstempel, LTV, Vertrauenskette und Sperrinformationen.
- Contracts / Signing – die
SignerInterface-SPI und die Stabilitätsstufen. - Security – die Implementierungsoberfläche für Verschlüsselung und Signatur.
- Conformance – PDF/A- und Profildurchsetzung, die für signierte Archivierung geeignet ist.
- PAdES · PAdES B-T · DSS · CAdES – Glossarbegriffe.