PAdES-baseline mapping
In het kort
Sectie met titel “In het kort”PDF Advanced Electronic Signatures (PAdES) is de profielenfamilie die in ETSI EN 319 142 is gestandaardiseerd. De norm definieert vier baselineconformiteitsniveaus — B-B, B-T, B-LT en B-LTA — waarbij elk hoger niveau materiaal toevoegt aan het niveau eronder. Deze pagina koppelt die niveaus aan wat NextPDF produceert. Ze maakt onderscheid tussen het Core-oppervlak en de Pro- en Enterprise-edities. De mapping is gedragsgericht: ze beschrijft wat de engine uitvoert, niet de interne klassen.
Korte versie: NextPDF Core produceert handtekeningstructuren die zijn afgestemd op B-B en B-T. Het productiepad voor B-LT en B-LTA wordt geleverd in de Pro- en Enterprise-edities. Of een geproduceerde handtekening op een bepaald niveau als conform wordt geaccepteerd, hangt af van de verifier en de daarin geconfigureerde vertrouwensankers. Een producer kan conformiteit niet namens de verifier vaststellen.
Installatie
Sectie met titel “Installatie”composer require nextpdf/core:^3Conceptueel overzicht
Sectie met titel “Conceptueel overzicht”Een digitale PDF-handtekening is een Cryptographic Message Syntax-structuur (CMS) van het type SignedData, opgeslagen in de Contents-vermelding van het handtekeningwoordenboek. De ByteRange-array benoemt de bytebereiken die door de digest worden gedekt — ISO 32000-2 §12.8.1. CMS SignerInfo bevat de ondertekende attributen, waaronder content-type en message-digest — RFC 5652 §5.3. De message-digest over die attributen wordt berekend volgens het proces in §5.4. PAdES gebruikt het attribuutmodel van CMS Advanced Electronic Signatures (CAdES) binnen het PDF-handtekeningwoordenboek.
De vier baselineniveaus zijn additief:
- B-B bevat de basishandtekening met de bijbehorende verplichte ondertekende attributen.
- B-T voegt een handtekeningtijdstempelattribuut toe dat over de handtekeningwaarde wordt berekend. Het tijdstempelattribuut bewijst dat de handtekening op het moment van het tijdstempel bestond — ETSI PAdES §5.4.3. Een RFC 3161 Time-Stamping Authority produceert het token — RFC 3161 §2.4.1.
- B-LT voegt langetermijnvalidatiemateriaal toe — certificaten, Online Certificate Status Protocol (OCSP)-gegevens en certificate revocation list (CRL)-gegevens — geplaatst in de Document Security Store — ETSI PAdES §6.2.2, ISO 32000-2 §12.8.4.3 en de plaatsing van validatiegegevens zoals beschreven in ETSI EN 319 142-2 §6.3.
- B-LTA voegt een archive document time-stamp toe om de geldigheid over langere perioden te behouden — ETSI PAdES §6.2.2.
De vier niveaus zijn strikt additief — elk hoger niveau behoudt alles wat het niveau eronder bevat en voegt precies één nieuwe materiaallaag toe. De overgangslabels tonen welke producer-editie elke stap levert.
API-oppervlak
Sectie met titel “API-oppervlak”Gebruik de enum SignatureLevel om een niveau te selecteren. De enum definieert de cases PAdES_B_B, PAdES_B_T, PAdES_B_LT en PAdES_B_LTA. De methoden requiresTimestamp(), requiresDss(), requiresDocumentTimestamp() en isAvailableInEnvironment() rapporteren de vereisten van elk niveau en of de huidige runtime daaraan kan voldoen. In de Core-distributie geeft isAvailableInEnvironment() de waarde true terug voor B-B en B-T en false voor B-LT en B-LTA. De methode geeft false terug voor B-LT en B-LTA omdat de producer voor langetermijnvalidatie tijdens runtime wordt opgelost en geen deel uitmaakt van het opensourcepakket. Productiecode hoort het contract SignerInterface te gebruiken in plaats van deze interne typen.
Matrix met niveauondersteuning
Sectie met titel “Matrix met niveauondersteuning”| Niveau | Wat het toevoegt | Core (nextpdf/core) | Pro / Enterprise |
|---|---|---|---|
| B-B | Basishandtekening met verplichte ondertekende attributen | Produceert afgestemde structuur; getest tegen synthetische golden baselines | Hetzelfde oppervlak |
| B-T | Handtekeningtijdstempel over de handtekeningwaarde | Produceert afgestemde structuur wanneer een RFC 3161-tijdstempeldienst wordt aangeleverd | Hetzelfde oppervlak |
| B-LT | Validatiegegevens in de Document Security Store | Producer wordt niet meegeleverd in Core; B-LT selecteren zonder het Enterprise-pakket faalt gesloten | Producer meegeleverd |
| B-LTA | Archive document time-stamp | Producer wordt niet meegeleverd in Core; faalt gesloten zoals hierboven | Producer meegeleverd |
“Produceert afgestemde structuur” betekent dat NextPDF een handtekening produceert waarvan de structuur de geciteerde clausules volgt. De artefacten tests/Corpus/pades/ en tests/Golden/baselines/ van het project dekken die structuur af. Het betekent niet dat een externe validator de uitvoer op dat niveau certificeert. Zie de sectie over conformiteit.
Codevoorbeeld — snelstart
Sectie met titel “Codevoorbeeld — snelstart”<?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();}De functie is afhankelijk van het contract SignerInterface, niet van een concrete klasse. Zowel een Core-softwaresigner (B-B of B-T) als een Premium-signer met hardware security module (HSM) voldoet eraan. De aanroepende code verandert niet wanneer de editie verandert.
Codevoorbeeld — productie
Sectie met titel “Codevoorbeeld — productie”<?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() geeft true terug voor B-B en B-T zonder extra pakket. De methode geeft alleen true terug voor B-LT en B-LTA wanneer het Enterprise-pakket voor langetermijnvalidatie is geïnstalleerd. Wanneer een niet-beschikbaar niveau wordt geselecteerd zonder degradatie te kiezen, werpt NextPDF een getypeerde uitzondering voor een onbereikbaar niveau, waarvan de melding het ontbrekende pakket benoemt. Een verkeerd geconfigureerde implementatie faalt daarom gesloten in plaats van stilzwijgend een lager niveau uit te voeren dan de aanroeper heeft aangevraagd.
Randgevallen & valkuilen
Sectie met titel “Randgevallen & valkuilen”- Een structurele B-T-handtekening is niet hetzelfde als een handtekening die als B-T is gevalideerd. Validatie verloopt in de verifier met de vertrouwensankers en de actualiteit van de intrekkingsgegevens van die verifier. De producer kan de uitkomst niet vaststellen.
- PAdES B-LT en B-LTA vereisen het NextPDF Enterprise-pakket (
nextpdf/enterprise). Als het niet is geïnstalleerd, faalt de signer gesloten en zijn B-LT/B-LTA niet beschikbaar. Core levert B-B/B-T via de publiekeNextPDF\Contracts\SignerInterface; langetermijnvalidatie blijft achterLtvManagerInterface. Een niet-beschikbaar niveau selecteren in Core faalt standaard gesloten. De getypeerde uitzondering benoemt het ontbrekende publieke pakket, niet een intern type. Soepele degradatie naar een lager niveau is opt-in, nooit de standaard. - De byte-range-digest moet de handtekeningwaarde uitsluiten. Als de digest ook de
Contents-octetten dekt, kan verificatie nooit slagen — ISO 32000-2 §12.8.1. - In B-T wordt de handtekeningtijdstempel over de handtekeningwaarde berekend, niet over de documentbytes. In B-LTA is de archieftijdstempel een afzonderlijke document time-stamp. Ze zijn niet onderling uitwisselbaar — ETSI PAdES §5.4.3 en §6.2.2.
- ETSI EN 319 142-1 (het deel over de baselineniveaus) maakt geen deel uit van het bewijscorpus van dit project. De claims over de niveaustructuur hier zijn verankerd aan ETSI EN 319 142-2, het profieldocument
pades, ISO 32000-2 §12.8 en RFC 5652 / RFC 3161. De namen van de niveaus en de additieve structuur worden beschreven zoals geïmplementeerd in v3.x. Deze pagina claimt geen conformiteitstestresultaat of attestatie door een derde partij.
Prestaties
Sectie met titel “Prestaties”De kosten nemen toe met het niveau. B-B is één enkele ondertekeningsbewerking en duurt enkele milliseconden met een softwaresleutel. B-T voegt één netwerkroundtrip naar de Time-Stamping Authority toe. B-LT voegt één ophaalactie voor intrekkingsgegevens per certificaat in de keten toe. B-LTA voegt nog een document time-stamp toe. Het wandbudget van 1500 ms dekt één enkele B-T-handtekening met een externe Time-Stamping Authority (TSA) via een warme verbinding. B-LT of B-LTA met een traag intrekkingseindpunt overschrijdt dat en hoort buiten het verzoekpad thuis. Het reproduceerbaarheidsprofiel is structural, niet bitwise. Een tijdstempel bevat het ondertekeningsmoment, dus twee runs verschillen in de tijdstempelbytes terwijl de documentstructuur identiek blijft.
Beveiligingsnotities
Sectie met titel “Beveiligingsnotities”Het niveau dat een handtekening claimt en het niveau waarop ze wordt gevalideerd, zijn verschillende feiten. Deze pagina beschrijft alleen het producer-oppervlak. Langetermijnvalidatie hangt af van validatiegegevens die op het ondertekeningsmoment zijn verzameld en van de verifier die later dezelfde ankers vertrouwt. De producer kan geen van beide garanderen. Vertrouwen in tijdstempels komt neer op vertrouwen in de Time-Stamping Authority; de implementatie pint die vast via een injecteerbare provider. Deze pagina is gemarkeerd als export_control_class: legal-review-required omdat ze betrekking heeft op cryptografische handtekeningprofielen. Alle normatieve bronnen worden geparafraseerd en geen enkele wordt gereproduceerd, conform de citatiehygiëne.
Conformiteit
Sectie met titel “Conformiteit”| Claim | Standaard | Clausule | Bewijs |
|---|---|---|---|
De handtekeningwaarde wordt DER-gecodeerd opgeslagen als CMS SignedData of een TimeStampToken in de Contents-vermelding van het handtekeningwoordenboek. | ISO 32000-2 | §12.8.1 | |
De digest wordt berekend over de ByteRange-bereiken en sluit de handtekeningwaarde uit. | ISO 32000-2 | §12.8.1 | |
| Het handtekeningtijdstempel-attribuut wordt berekend over de handtekeningwaarde (B-T). | ETSI PAdES (EN 319 142) | §5.4.3 | |
| Langetermijnvalidatiemateriaal wordt gedragen in de Document Security Store (B-LT). | ETSI PAdES (EN 319 142) / ISO 32000-2 | §6.2.2 / §12.8.4.3 | , |
| Validatiegegevens worden geplaatst in de DSS- en VRI-woordenboeken. | ETSI EN 319 142-2 | §6.3 | , |
| Een archive document time-stamp behoudt de geldigheid over lange perioden (B-LTA). | ETSI PAdES (EN 319 142) | §6.2.2 | |
| SignerInfo bevat de ondertekende attributen content-type en message-digest. | RFC 5652 | §5.3 | |
| De message-digest wordt berekend over de DER-gecodeerde ondertekende attributen (proces uit §5.4). | RFC 5652 | §5.4 | |
| Het tijdstempel wordt aangevraagd bij een RFC 3161 TSA en geeft een TSTInfo-structuur terug. | RFC 3161 | §2.4.1 |
Alle clausules worden geparafraseerd. NextPDF reproduceert geen normatieve tekst. Raadpleeg de gepubliceerde standaarden voor de gezaghebbende bewoording. ETSI EN 319 142-1 maakt geen deel uit van het bewijscorpus. Structurele claims over de baselineniveaus zijn verankerd aan de bovenstaande bronnen en worden beschreven zoals geïmplementeerd in v3.x.
Commerciële context
Sectie met titel “Commerciële context”Core produceert B-B- en B-T-handtekeningstructuren. Het productiepad voor B-LT en B-LTA, HSM- en PKCS#11-sleutelbeheer en het FIPS 140-3 cryptobeleidsprofiel worden geleverd in de Pro- en Enterprise-edities. Core lost de producer voor langetermijnvalidatie tijdens runtime op, zodat de opensource-engine geen commerciële afhankelijkheid heeft. De SignerInterface-API verandert niet bij een upgrade.
Zie ook
Sectie met titel “Zie ook”- Security / Signing — het implementatieoppervlak voor CMS, tijdstempels, langetermijnvalidatie (LTV), vertrouwensketen en intrekking.
- Contracts / Signing — de service provider interface (SPI)
SignerInterfaceen de stabiliteitsniveaus. - Security — het implementatieoppervlak voor versleuteling en handtekeningen.
- Conformance — PDF/A- en profielafdwinging die past bij ondertekende archivering.
- PAdES · PAdES B-T · DSS · CAdES — woordenlijsttermen.