Mappatura dei livelli baseline di PAdES
In sintesi
Sezione intitolata “In sintesi”PAdES è la famiglia di profili PDF Advanced Electronic Signatures standardizzata da ETSI EN 319 142. Definisce quattro livelli baseline di conformità — B-B, B-T, B-LT e B-LTA — nei quali ogni livello superiore aggiunge materiale a quello precedente. Questa pagina mette in relazione tali livelli con ciò che NextPDF produce e distingue la superficie Core dalle edizioni Pro ed Enterprise. La mappatura è comportamentale: descrive ciò che il motore emette, non le classi interne.
La situazione, in breve, è questa. NextPDF Core produce strutture di firma allineate ai livelli B-B e B-T. Il percorso di produzione B-LT e B-LTA è fornito nelle edizioni Pro ed Enterprise. Il fatto che una firma prodotta venga accettata come conforme a un determinato livello dipende dal verificatore e dai trust anchor con cui è configurato. Un produttore non può attestare la conformità per conto del verificatore.
Installazione
Sezione intitolata “Installazione”composer require nextpdf/core:^3Panoramica concettuale
Sezione intitolata “Panoramica concettuale”Una firma digitale PDF è una struttura CMS SignedData memorizzata nella voce Contents del dizionario della firma. L’array ByteRange indica gli intervalli di byte coperti dal digest — ISO 32000-2 §12.8.1. Nel CMS, SignerInfo trasporta gli attributi firmati, inclusi gli attributi content-type e message-digest — RFC 5652 §5.3. Il message digest su tali attributi viene calcolato secondo il processo §5.4. PAdES riprende il modello di attributi CAdES e lo incorpora in tale dizionario della firma PDF.
I quattro livelli baseline sono additivi:
- B-B trasporta la firma di base con i relativi attributi firmati obbligatori.
- B-T aggiunge un attributo di marca temporale della firma, calcolato sul valore della firma. Tale attributo dimostra che la firma esisteva nell’istante attestato dalla marca temporale — ETSI PAdES §5.4.3. Il token è prodotto da una Time-Stamping Authority RFC 3161 — RFC 3161 §2.4.1.
- B-LT aggiunge il materiale di validazione a lungo termine — certificati, OCSP e CRL — inserito nel Document Security Store — ETSI PAdES §6.2.2, ISO 32000-2 §12.8.4.3 e la collocazione dei dati di validazione descritta in ETSI EN 319 142-2 §6.3.
- B-LTA aggiunge una marca temporale del documento di archivio, così che la validità possa essere mantenuta per lunghi periodi — ETSI PAdES §6.2.2.
I quattro livelli sono rigorosamente additivi: ogni livello superiore conserva tutto il materiale trasportato dal livello inferiore e aggiunge esattamente un nuovo strato. L’edizione del produttore che fornisce ciascun passaggio è indicata nella transizione.
Superficie dell’API
Sezione intitolata “Superficie dell’API”Il selettore di livello è l’enum SignatureLevel, con i casi PAdES_B_B, PAdES_B_T, PAdES_B_LT e PAdES_B_LTA. I suoi metodi requiresTimestamp(), requiresDss(), requiresDocumentTimestamp() e isAvailableInEnvironment() indicano ciò di cui un livello necessita e se il runtime corrente è in grado di soddisfare tali requisiti. Nella distribuzione Core isAvailableInEnvironment() restituisce true per B-B e B-T e false per B-LT e B-LTA. Per B-LT e B-LTA restituisce false perché il produttore di validazione a lungo termine viene risolto in fase di esecuzione e non fa parte del pacchetto open source. Il codice di produzione usa il contratto SignerInterface anziché questi tipi interni.
Matrice di supporto dei livelli
Sezione intitolata “Matrice di supporto dei livelli”| Livello | Cosa aggiunge | Core (nextpdf/core) | Pro / Enterprise |
|---|---|---|---|
| B-B | Firma di base con attributi firmati obbligatori | Produce una struttura allineata; testata rispetto a baseline golden sintetiche | Stessa superficie |
| B-T | Marca temporale della firma sul valore della firma | Produce una struttura allineata quando viene fornito un servizio di marcatura temporale RFC 3161 | Stessa superficie |
| B-LT | Dati di validazione nel Document Security Store | Produttore non fornito in Core; la selezione di B-LT senza il pacchetto Enterprise fallisce in modalità fail-closed | Produttore fornito |
| B-LTA | Marca temporale del documento di archivio | Produttore non fornito in Core; fallisce in modalità fail-closed come sopra | Produttore fornito |
«Produce una struttura allineata» significa che il motore emette una firma la cui struttura segue le clausole citate. Tale struttura viene verificata tramite gli artefatti tests/Corpus/pades/ e tests/Golden/baselines/ del progetto. Non equivale a dichiarare che un validatore esterno certifichi l’output a tale livello. Vedere la sezione sulla conformità.
Esempio di codice — Avvio rapido
Sezione intitolata “Esempio di codice — Avvio rapido”<?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();}La funzione dipende dal contratto SignerInterface, non da una classe concreta. Lo soddisfano sia un signer software Core (B-B o B-T), sia un signer HSM Premium. Il codice chiamante non cambia al variare dell’edizione.
Esempio di codice — Produzione
Sezione intitolata “Esempio di codice — Produzione”<?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() restituisce true per B-B e B-T senza alcun pacchetto aggiuntivo. Restituisce true per B-LT e B-LTA solo quando è installato il pacchetto di validazione a lungo termine Enterprise. La selezione di un livello non disponibile senza consenso esplicito alla degradazione solleva un’eccezione tipizzata per livello irraggiungibile, con un messaggio che indica il pacchetto mancante. Un deployment configurato in modo errato va quindi in errore in modalità fail-closed anziché emettere silenziosamente un livello inferiore a quello richiesto dal chiamante.
Casi limite e insidie
Sezione intitolata “Casi limite e insidie”- Una firma strutturalmente B-T non equivale a una firma validata come B-T. La validazione spetta al verificatore, con i trust anchor e lo stato di revoca aggiornato configurati per tale verificatore. Il produttore non può attestare l’esito.
- PAdES B-LT e B-LTA richiedono il pacchetto NextPDF Enterprise (
nextpdf/enterprise). Quando non è installato, il signer va in errore in modalità fail-closed e B-LT/B-LTA non sono disponibili. La superficie Core fornisce B-B/B-T tramite il contratto pubblicoNextPDF\Contracts\SignerInterface, con la validazione a lungo termine dietroLtvManagerInterface. La selezione di un livello non disponibile nella distribuzione Core va in errore in modalità fail-closed per impostazione predefinita. L’eccezione tipizzata indica il pacchetto pubblico mancante, non un tipo interno. La degradazione controllata a un livello inferiore è facoltativa, mai l’impostazione predefinita. - Il digest del byte range deve escludere il valore della firma. Un digest che includa anche gli ottetti di
Contentsnon potrà mai essere verificato — ISO 32000-2 §12.8.1. - La marca temporale della firma in B-T è applicata al valore della firma, non ai byte del documento. La marca temporale di archivio in B-LTA è una marca temporale del documento separata. Le due non sono intercambiabili — ETSI PAdES §5.4.3 e §6.2.2.
- ETSI EN 319 142-1 (la parte relativa ai livelli baseline) non è presente nel corpus di evidenze di questo progetto. Le affermazioni sulla struttura dei livelli qui riportate sono ancorate a ETSI EN 319 142-2, al documento di profilo
pades, a ISO 32000-2 §12.8 e a RFC 5652 / RFC 3161. I nomi dei livelli e la struttura additiva sono dichiarati come implementati in v3.x. Non viene rivendicato alcun risultato di test di conformità, né alcuna attestazione di terze parti.
Prestazioni
Sezione intitolata “Prestazioni”Il costo cresce con il livello. B-B consiste in una singola operazione di firma e richiede pochi millisecondi con una chiave software. B-T aggiunge un round trip di rete verso la Time-Stamping Authority. B-LT aggiunge un recupero dei dati di revoca per ogni certificato nella catena. B-LTA aggiunge un’ulteriore marca temporale del documento. Il budget di 1500 ms di wall time copre una singola firma B-T con una TSA remota su una connessione già stabilita. B-LT o B-LTA verso un endpoint di revoca lento superano tale budget e devono restare al di fuori del percorso della richiesta. Il profilo di riproducibilità è structural, non bitwise. Una marca temporale incorpora l’istante di firma. Due esecuzioni differiscono pertanto nei byte della marca temporale, mentre la struttura del documento rimane identica.
Note di sicurezza
Sezione intitolata “Note di sicurezza”Il livello che una firma dichiara e il livello a cui viene validata sono aspetti distinti. Questa pagina descrive unicamente la superficie del produttore. La validazione a lungo termine dipende dalla raccolta dei dati di validazione al momento della firma e dal fatto che il verificatore consideri attendibili gli stessi trust anchor in seguito. Né l’uno né l’altro possono essere garantiti dal produttore. L’attendibilità della marca temporale dipende dall’attendibilità della Time-Stamping Authority, che il deployment vincola tramite un provider iniettabile. Questa pagina è contrassegnata come export_control_class: legal-review-required perché riguarda profili di firma crittografica. Tutte le fonti normative sono parafrasate e nessuna è riprodotta, secondo le regole di igiene delle citazioni.
Conformità
Sezione intitolata “Conformità”| Affermazione | Standard | Clausola | Evidenza |
|---|---|---|---|
Il valore della firma è memorizzato con codifica DER come CMS SignedData o come TimeStampToken nella voce Contents del dizionario della firma. | ISO 32000-2 | §12.8.1 | |
Il digest è calcolato sugli intervalli ByteRange ed esclude il valore della firma. | ISO 32000-2 | §12.8.1 | |
| L’attributo di marca temporale della firma è calcolato sul valore della firma (B-T). | ETSI PAdES (EN 319 142) | §5.4.3 | |
| Il materiale di validazione a lungo termine è trasportato nel Document Security Store (B-LT). | ETSI PAdES (EN 319 142) / ISO 32000-2 | §6.2.2 / §12.8.4.3 | , |
| I dati di validazione sono collocati nei dizionari DSS e VRI. | ETSI EN 319 142-2 | §6.3 | , |
| Una marca temporale del documento di archivio mantiene la validità per lunghi periodi (B-LTA). | ETSI PAdES (EN 319 142) | §6.2.2 | |
| SignerInfo trasporta gli attributi firmati content-type e message-digest. | RFC 5652 | §5.3 | |
| Il message digest è calcolato sugli attributi firmati con codifica DER (processo §5.4). | RFC 5652 | §5.4 | |
| La marca temporale è richiesta a una TSA RFC 3161 e restituisce una struttura TSTInfo. | RFC 3161 | §2.4.1 |
Tutte le clausole sono parafrasate. NextPDF non riproduce il testo normativo. Consultare gli standard pubblicati per la formulazione autorevole. ETSI EN 319 142-1 non è presente nel corpus di evidenze. Le affermazioni strutturali sui livelli baseline sono ancorate alle fonti sopra indicate e dichiarate come implementate in v3.x.
Contesto commerciale
Sezione intitolata “Contesto commerciale”Core produce strutture di firma B-B e B-T. Il percorso di produzione B-LT e B-LTA, la custodia delle chiavi HSM e PKCS#11 e il profilo di crypto-policy FIPS 140-3 sono forniti nelle edizioni Pro ed Enterprise. Core risolve il produttore di validazione a lungo termine in fase di esecuzione. Il motore open source non introduce quindi alcuna dipendenza commerciale e l’API SignerInterface non cambia con l’aggiornamento.
Vedere anche
Sezione intitolata “Vedere anche”- Security / Signing — la superficie di implementazione per CMS, marca temporale, LTV, catena di trust e revoca.
- Contracts / Signing — l’SPI
SignerInterfacee i livelli di stabilità. - Security — la superficie di implementazione per cifratura e firma.
- Conformance — l’applicazione di PDF/A e dei profili associata all’archiviazione firmata.
- PAdES · PAdES B-T · DSS · CAdES — termini del glossario.