Salta ai contenuti

Convalida a lungo termine

Spec: ETSI EN 319 142-1 Spec: RFC 6960 Spec: ISO 32000-2, §12.8.4 Evidence: Standard-backed

Una firma verificabile oggi si basa su fatti che non durano: un certificato che scade, server di revoca che non sono più raggiungibili, algoritmi di hash che si indeboliscono. La convalida a lungo termine registra le prove nel documento mentre sono ancora ottenibili. La firma può quindi essere controllata anni dopo senza dover interrogare servizi esterni.

L’aspetto insidioso di una firma digitale è che può smettere di essere verificabile senza segnali evidenti pur apparendo invariata. Nulla nel file cambia. L’autorità di certificazione smette di rispondere alle richieste relative a un certificato scaduto da tempo. Un validatore che dipendeva da quella risposta non può più ottenerla. Un contratto che era indiscutibilmente valido il giorno in cui è stato firmato diventa «impossibile da determinare» dieci anni dopo. Dieci anni dopo è proprio il momento in cui una controversia è più probabile e la posta in gioco è più alta. Se l’obbligo di conservazione si misura in anni, una firma senza convalida a lungo termine è un rischio che si manifesta solo più tardi.

  • La validità di una firma dipende da fatti esterni sensibili al tempo: la finestra di validità del certificato e lo stato di revoca fornito da un server.
  • Questi fatti diventano non più recuperabili dopo la scadenza del certificato: le autorità non sono obbligate a rispondere per sempre.
  • La convalida a lungo termine cattura le prove al momento della firma — certificati, risposte OCSP, CRL — e le incorpora nel Document Security Store (DSS) del documento.
  • Una marca temporale del documento dimostra poi che le prove stesse esistevano ed erano valide in quel momento, e può essere rinnovata prima che la protezione della marca temporale stessa si indebolisca.
  • Il risultato: il documento porta con sé la propria prova. La verifica non dipende più dal fatto che un server sia ancora raggiungibile.

Il principio è: «raccogliere la prova finché è possibile, poi sigillarla». Quando NextPDF produce una firma a lungo termine, raccoglie la catena di certificati e le risposte di revoca che dimostrano che il certificato usato per la firma era valido al momento della firma. Scrive questi dati nel DSS come valori incorporati anziché come collegamenti. Aggiunge poi una marca temporale del documento sull’intero insieme. Il punto sono proprio i valori incorporati. Un collegamento a un server di revoca è esattamente la dipendenza che la convalida a lungo termine serve a eliminare.

I livelli a lungo termine vengono scritti come revisioni separate del documento, accodate senza alterare l’intervallo di byte della firma originale. La prima firma continua a essere verificabile. Il materiale a lungo termine viene aggiunto intorno a essa, non al suo interno. Quando invecchia la protezione della marca temporale del documento stessa, il livello di archiviazione consente di sovrapporre un’altra marca temporale. Il risultato è una catena in cui ogni marca temporale garantisce tutto ciò che si trova al di sotto.

  1. Sign The signature and its signed attributes are written (B-B).
  2. Capture evidence Certificate chain, OCSP responses, and CRLs proving the certificate was valid at signing time are gathered.
  3. Embed in the DSS The evidence is written into the document as embedded values, not links (B-LT).
  4. Seal with a document timestamp A timestamp proves the embedded evidence existed and was valid at that moment (B-LTA).
  5. Renew before it weakens Another timestamp is layered before the previous one’s protection ages, extending verifiability.
Come la convalida a lungo termine mantiene una firma verificabile nel tempo: la firma viene creata, le prove vengono catturate mentre sono ancora ottenibili, le prove vengono sigillate da una marca temporale del documento e il sigillo viene rinnovato prima che si indebolisca.

Evidence: Standard-backed Il requisito è enunciato chiaramente da Spec: RFC 6960, §4.4.4 : un responder OCSP può conservare le informazioni di revoca oltre la scadenza di un certificato, e la data limite di archiviazione consente a un’applicazione di dimostrare se una firma fosse — o non fosse — affidabile il giorno in cui è stata prodotta anche se il certificato necessario per convalidarla è scaduto da tempo. Questa è, in sostanza, la ragione per cui la convalida a lungo termine esiste. Le risposte di revoca restano disponibili solo per un tempo limitato, quindi è necessario catturarle prima che quel periodo finisca.

Il meccanismo è definito da ETSI. Spec: ETSI EN 319 142-2, §5.5 stabilisce che il comportamento a lungo termine richiede un Document Security Store che contenga i dati di convalida come valori, seguito da una marca temporale del documento. Spec: ISO 32000-2, §12.8.3.3 collega il quadro: PAdES è CAdES CMS combinato con la convalida a lungo termine (§12.8.4) e il dizionario della marca temporale del documento (§12.8.5). E Spec: ETSI EN 319 142-2, §6.3.2.2 spiega perché la marca temporale viene apposta subito: dovrebbe essere applicata immediatamente dopo la firma, così che l’orario registrato sia il più vicino possibile al momento reale della firma.

Il motore di NextPDF implementa questo nei livelli B-LT e B-LTA: valori di revoca incorporati nel DSS, una marca temporale del documento che li sigilla e il ciclo di archiviazione che rinnova il sigillo — scritti come revisioni accodate che lasciano intatto l’intervallo di byte della firma originale.

Il livello che si sceglie è la decisione a lungo termine. L’API rende esplicito il requisito prima di impegnarsi.

<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// B-LT embeds validation material; B-LTA adds the renewable seal.
$level = SignatureLevel::PAdES_B_LTA;
$level->requiresDss(); // true → certificates + revocation embedded
$level->requiresDocumentTimestamp(); // true → a document timestamp seals the DSS
// The high-level seam produces the level end to end: it embeds the DSS
// dictionary and appends the DocTimeStamp revision in one call.
$document
->setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)
->save();
// The engine produces this only if the deployment can supply what it needs
// (a TSA, and revocation data reachable at signing time). It fails with an
// actionable error rather than embedding nothing and reporting success.

Il punto di integrazione di alto livello mostrato sopra — setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save() — è ora collegato end-to-end; le versioni precedenti esponevano l’enum del livello ma non il punto di integrazione che lo produce. Ciò che scrive è la struttura: il dizionario DSS e la revisione DocTimeStamp descritta da Spec: ISO 32000-2, §12.8 . Tale struttura non viene testata per la conformità di profilo, e il punto di integrazione non asserisce nulla sulla conformità ETSI o sulla validità legale. I livelli B-LT e B-LTA richiedono sia Pro sia Enterprise; su qualsiasi altro livello il punto di integrazione fallisce in modo sicuro anziché produrre un risultato parziale. Anche un documento cifrato fallisce in modo sicuro per B-LT e B-LTA — il DSS e la marca temporale del documento non vengono scritti su contenuto cifrato invece di essere scritti in modo errato.

La scelta non può essere applicata a posteriori a basso costo. Le prove di revoca devono essere catturate al momento della firma, mentre le risposte esistono ancora. Decidere «aggiungeremo la convalida a lungo termine in seguito» significa di solito decidere «non avremo le prove quando ne avremo bisogno».

L’equivoco è: «la convalida a lungo termine rende una firma valida per sempre». Non rende nulla valido. Preserva la capacità di controllare una validità che era stata stabilita al momento della firma. Se il certificato era già revocato quando il documento è stato firmato, incorporare tale fatto non salva la firma. Documenta invece il fallimento in modo permanente. La convalida a lungo termine è un meccanismo di conservazione delle prove, non di creazione delle prove. Un secondo equivoco è credere che B-LTA sia una soluzione «imposta e dimentica». La marca temporale di archiviazione si basa su algoritmi che a loro volta invecchiano. Senza rinnovo, un file B-LTA finisce per ereditare la stessa fragilità da cui doveva sottrarsi.

NextPDF raccoglie e incorpora le prove e scrive le marche temporali. Non è responsabile della veridicità delle prove né della pianificazione del loro rinnovo. Le risposte di revoca valgono solo quanto l’autorità che le ha emesse e il momento in cui sono state recuperate. La connettività verso tale autorità al momento della firma resta una responsabilità del deployment. Il motore non può inventare una risposta di revoca che non è riuscito a ottenere. Il rinnovo dell’archiviazione è un processo operativo. Il motore può aggiungere un’altra marca temporale, ma non può decidere quando la politica di conservazione lo richiede. Che i dati incorporati siano in seguito giudicati sufficienti è una questione di validatore e politica, trattata in Convalidare correttamente una firma. Questa pagina non asserisce l’ammissibilità legale, che dipende dalla giurisdizione, dal firmatario e dal certificato.

Disponibilità della convalida a lungo termine per livello:

Long-term validation (DSS embedding and the archival timestamp loop) — edition availability
Edition Availability
Core Not in this edition
Pro

PAdES B-T — una marca temporale affidabile sul valore della firma — è disponibile, ma il materiale di convalida incorporato (DSS) non fa parte di B-T.

Enterprise

PAdES B-LT e B-LTA: valori di certificato e di revoca incorporati nel DSS, la marca temporale del documento che li sigilla e il ciclo di archiviazione rinnovabile.

  • Convalida a lungo termine (LTV) — incorporare le prove necessarie per verificare una firma in modo che la verifica non dipenda in seguito da servizi esterni.
  • Document Security Store (DSS) — la struttura PDF che contiene certificati e dati di revoca incorporati per la convalida a lungo termine.
  • Risposta OCSP — una dichiarazione firmata sullo stato di revoca di un certificato in un dato momento (Online Certificate Status Protocol, RFC 6960).
  • CRL — Certificate Revocation List; un elenco firmato di certificati revocati.
  • Marca temporale del documento — una marca temporale RFC 3161 applicata all’intero documento, che dimostra che le prove incorporate esistevano ed erano valide in quel momento.
  • Ciclo di archiviazione — aggiunta ripetuta di una nuova marca temporale del documento prima che la protezione della precedente si indebolisca, estendendo la verificabilità.