Flusso di lavoro degli accordi firmati
Spec: ETSI EN 319 142-2, §5.1 ETSI EN 319 142-2 §5.1 Spec: ISO 32000-2:2020, §12.8 ISO 32000-2:2020 §12.8 Evidence: Mixed evidence
In sintesi
Sezione intitolata “In sintesi”Un accordo firmato non è «un PDF con una firma sopra». È un documento preparato affinché la firma protegga i byte corretti. È firmato a un livello coerente con l’obbligo. È confezionato in modo da restare verificabile anche dopo la scadenza del certificato di firma. Questa pagina percorre lo scenario dal documento vuoto al contratto destinato a durare nel tempo. Dichiara con franchezza quali passaggi il motore cabla oggi e quali espone come superficie congelata.
Perché è importante
Sezione intitolata “Perché è importante”Un contratto che risulta verificabile il giorno della firma e fallisce tre anni dopo in una controversia è peggio dell’assenza totale di firma, perché qualcuno vi ha fatto affidamento. Il problema raramente è la crittografia. Di solito mancano una marca temporale o prove di revoca, e lo si scopre molto tempo dopo che il firmatario è passato ad altro.
Scegliere in anticipo l’obbligo di firma e produrre al momento della firma le prove richieste da quell’obbligo è la differenza tra un accordo che regge e uno che decade silenziosamente. È una decisione da prendere una sola volta, nel flusso di lavoro, anziché riscoprirla a ogni controversia.
In breve
Sezione intitolata “In breve”- Prima preparare, poi firmare. Una firma copre esattamente l’intervallo di byte su cui è stata calcolata. Assicurarsi che il documento sia definitivo — incluse eventuali revisioni accodate in seguito — prima di firmare, non dopo.
- Scegliere il livello in base all’obbligo, non il contrario. PAdES definisce una progressione: una firma di base, una con marca temporale, una con materiale di convalida incorporato e una rimarcata per la validità d’archiviazione a tempo indefinito (ETSI EN 319 142-2 §5.1).
- La validità a lungo termine è una struttura, non una proprietà. Consiste in un Document Security Store più una marca temporale di documento, scritti nel file (ISO 32000-2:2020 §12.8).
- Essere precisi sulla giuntura. Il metodo di alto livello
Document::setSignature()di NextPDF congela l’API pubblica, ma fallisce rapidamente anziché emettere un file non firmato. Il percorso cablato è l’orchestratore di livello più basso. Questa pagina non lascia intendere il contrario.
Come lo affronta NextPDF
Sezione intitolata “Come lo affronta NextPDF”NextPDF separa la decisione dal meccanismo. La decisione è quale livello PAdES l’obbligo richiede. Il meccanismo è come i byte vengono firmati e come viene trasportato il materiale di convalida. Trattare queste due cose come una sola porta i team a ritrovarsi con una firma valida ma non durevole.
Lo scenario si articola in quattro fasi.
- Prepare the document Compose the agreement and treat it as final. The signature will protect this exact byte range and nothing added outside it without a new revision.
- Choose the obligation B-B proves who. B-T adds trusted time. B-LT embeds the material to validate later. B-LTA re-stamps for indefinite validity.
- Sign A CMS signature is embedded in the signature dictionary over the byte range; a timestamp is requested from a TSA if the level needs one.
- Preserve For long-term levels, the Document Security Store and a document timestamp are written so the signature outlives its certificate.
L’enum dei livelli è reale e codifica l’obbligo in modo esplicito. B-B prova l’identità del firmatario. B-T aggiunge una marca temporale attendibile. Il «quando» viene richiesto con la stessa fermezza del «chi». B-LT incorpora i certificati e le risposte di revoca necessari per convalidare la firma dopo la scadenza del certificato di firma.
B-LTA aggiunge marche temporali di documento affinché la catena di fiducia possa essere estesa
a tempo indefinito tramite rimarcatura prima della scadenza di ciascun certificato di marca temporale. L’enum
indica quali livelli richiedono una marca temporale e quali richiedono materiale
di convalida incorporato, così che il motore possa rifiutare una combinazione impossibile
anziché produrre un file “firmato” in modo fuorviante.
Cosa dicono le prove
Sezione intitolata “Cosa dicono le prove”La progressione è fondata su standard. Evidence: Standard-backed Spec: ETSI EN 319 142-2, §5.1 ETSI EN 319 142-2 §5.1 descrive i livelli PAdES stratificati sui blocchi costitutivi EN 319 142-1, da una firma di base incorporata in poi. La struttura a lungo termine è fissata da Spec: ISO 32000-2:2020, §12.8 ISO 32000-2:2020 §12.8 : la convalida a lungo termine poggia su un Document Security Store e su un dizionario di marca temporale di documento scritti nel file.
Il modello dei livelli è fondato su codice. Evidence: Code-backed L’enum
SignatureLevel ha i quattro casi PAdES (B-B, B-T, B-LT,
B-LTA) con metodi predicativi per «richiede una marca temporale», «richiede
materiale di convalida incorporato» e «richiede marche temporali di documento». Il
metodo di alto livello Document::setSignature() è cablato a una protezione fail-fast che
solleva un messaggio diagnostico bloccante e azionabile anziché emettere un documento
non firmato — un comportamento verificabile, non un’affermazione.
Il comportamento di manutenzione a lungo termine è documentato a livello di capacità per il livello Premium: la superficie di archiviazione scrive il DSS e il VRI per ciascuna firma, verifica la completezza dell’archiviazione con un controllo di integrità e rimarca con una marca temporale di documento prima che il certificato di marca temporale scada. La documentazione afferma chiaramente che spetta al verificatore decidere.
Esempio pratico
Sezione intitolata “Esempio pratico”L’esempio mostra la decisione — la scelta dell’obbligo — usando l’enum reale. Il percorso di firma cablato è l’orchestratore di livello più basso. La chiamata di alto livello è mostrata solo per rendere esplicito il comportamento fail-fast.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
/** * Map a business obligation to a PAdES level. * * The obligation drives the level, not the reverse — choosing B-B for a * 10-year contract is a decision you do not want to make implicitly. */function levelForObligation(string $obligation): SignatureLevel{ return match ($obligation) { // Internal sign-off, short retention, signer identity is enough. 'internal_approval' => SignatureLevel::PAdES_B_B,
// Counterparty agreement: prove the moment of signing. 'counterparty_agreement' => SignatureLevel::PAdES_B_T,
// Regulated contract that must verify after cert expiry. 'regulated_contract' => SignatureLevel::PAdES_B_LT,
// Long-lived legal record: indefinite, re-stampable validity. 'long_term_legal_record' => SignatureLevel::PAdES_B_LTA,
default => throw new \InvalidArgumentException( "Unknown obligation: {$obligation}", ), };}
$level = levelForObligation('regulated_contract');
// The enum carries the obligation's implications with it.$needsTsa = $level->requiresTimestamp(); // true for B-T+$needsDss = $level->requiresDss(); // true for B-LT+$needsArchive = $level->requiresDocumentTimestamp(); // true only for B-LTAL’oggetto livello non è un’etichetta. Risponde a ciò che l’obbligo comporta, così che il cablaggio a valle non debba ricavarlo di nuovo.
Equivoco comune
Sezione intitolata “Equivoco comune”L’equivoco ricorrente è «la firma è valida, quindi abbiamo finito». La validità di oggi è necessaria ma non sufficiente. Una firma è calcolata su un intervallo di byte. Qualunque cosa accodata al di fuori di tale intervallo in una revisione successiva non è coperta da essa, ed è esattamente per questo che la preparazione precede la firma. Una firma che risulta verificabile ora può fallire in seguito, alla scadenza del suo certificato, a meno che il materiale di convalida non sia stato incorporato al momento della firma. «Valida» e «durevole» sono garanzie diverse, e solo l’obbligo indica quale delle due serva realmente.
Una trappola correlata, specifica di questo motore: presumere che il metodo di alto livello
setSignature() produca oggi un file firmato. Non lo fa. Fallisce rapidamente
di proposito. Considerare il messaggio diagnostico come il contratto.
Limiti e confini
Sezione intitolata “Limiti e confini”Document::setSignature()è una superficie pubblica congelata, non un firmatario cablato. Fallisce rapidamente con un messaggio diagnostico bloccante. Non emette mai un PDF non firmato al posto di uno firmato. Il percorso cablato è l’orchestratore a due fasi di livello più basso.- La manutenzione della convalida a lungo termine (DSS/VRI, controllo di integrità, ciclo di marca temporale d’archiviazione) è una capacità di livello Premium. Core non fornisce il ciclo di archiviazione. Vedere il confine più sotto.
- Una firma protegge esattamente il suo intervallo di byte. Le revisioni accodate in seguito sono separate. Il motore non estende retroattivamente la copertura.
- NextPDF produce e mantiene le strutture; non giudica. Se una firma sia attendibile dipende dalle ancore di fiducia e dalla policy del verificatore, che restano al di fuori del motore.
- B-LTA da solo non rende una firma eterna. Abilita la validità a tempo indefinito solo se il ciclo di rimarcatura viene eseguito secondo programma prima della scadenza di ciascun certificato di marca temporale.
- Questa pagina descrive il comportamento della superficie di archiviazione Premium. Non afferma alcuna accettazione da parte di un tribunale o di un’autorità specifici.
| Edition | Availability |
|---|---|
| Core | Core espone l’enum |
| Pro | La firma di base PAdES (B-B / B-T) tramite l’orchestratore è disponibile. |
| Enterprise | Aggiunge B-LT / B-LTA, la manutenzione del Document Security Store e del VRI per ciascuna firma, il controllo di integrità LTV e il ciclo d’archiviazione con marca temporale di documento per la validità a tempo indefinito. |
Documenti correlati
Sezione intitolata “Documenti correlati”- Profili di base PAdES — B-B, B-T, B-LT, B-LTA spiegati come progressione e come scegliere.
- Convalida a lungo termine — perché una firma che risulta verificabile oggi può fallire tra dieci anni, e come la LTV incorpora le prove.
- Guida alla decisione di integrazione — quale pacchetto dell’ecosistema si adatta a un flusso di lavoro di firma, inclusa la giuntura di approvazione umana in NextPDF Connect.
Glossario
Sezione intitolata “Glossario”- PAdES — PDF Advanced Electronic Signatures: la famiglia di profili ETSI che definisce come una firma elettronica avanzata viene trasportata in un PDF.
- Intervallo di byte — l’estensione contigua di byte del file su cui è calcolata una firma; il contenuto al di fuori di esso non è protetto da tale firma.
- Livello di firma (B-B / B-T / B-LT / B-LTA) — la progressione PAdES: chi ha firmato, quando, con materiale di convalida incorporato e rimarcabile per la validità d’archiviazione a tempo indefinito.
- TSA — Time-Stamping Authority: un servizio RFC 3161 che attesta che uno stato del documento esisteva in un dato istante UTC.
- DSS (Document Security Store) — l’archivio nel file di certificati, risposte OCSP e CRL necessari per convalidare una firma dopo la scadenza del suo certificato.
- LTV (Long-Term Validation) — mantenere una firma verificabile nel tempo incorporando le prove di convalida e rimarcandola.
- Fail-fast — rifiutare di produrre un artefatto fuorviante sollevando invece un errore azionabile, anziché emettere un file silenziosamente errato.