Tempo attendibile: come una marca temporale dimostra il quando
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
In sintesi
Sezione intitolata “In sintesi”Una marca temporale risponde a un’unica domanda, sorprendentemente sfuggente: questi dati esistevano già? Non chi li ha prodotti, non se siano corretti — soltanto che, in un dato istante, questi byte esatti erano già nel mondo. Questa pagina costruisce l’idea dalle fondamenta: che cosa fa una Time-Stamp Authority, che cosa contiene davvero un token e perché un numero su un orologio diventa evidenza.
È il complemento dai primi principi alla pagina incentrata sul motore Marche temporali e tempo attendibile. Leggi prima questa se «tempo attendibile» suona come gergo.
Perché è importante
Sezione intitolata “Perché è importante”L’orologio del tuo computer è una confessione, non una prova. Puoi impostarlo a qualsiasi valore tu voglia, e così può chiunque altro. Nel momento in cui una data conta per una seconda parte — un contratto che doveva essere firmato entro una scadenza, un record che doveva esistere prima di una controversia — il tuo orologio è privo di valore come evidenza, perché lo controlli tu. L’intero problema del tempo attendibile è trovare un orologio che non puoi spostare.
Non è una preoccupazione di nicchia. Ogni PDF firmato a lunga vita vi si appoggia. Un certificato di firma prima o poi scade; anni dopo, un verificatore ha bisogno di sapere che la firma è stata apposta mentre il certificato era ancora valido. Senza un record indipendente del «quando», quella domanda non ha risposta onesta. Il tempo attendibile è la fondazione silenziosa su cui poggia l’intero edificio delle firme durevoli.
In breve
Sezione intitolata “In breve”- Una marca temporale dimostra che un dato esisteva prima di un istante dichiarato. È un limite superiore all’età, nulla di più.
- È prodotta da una terza parte, la Time-Stamp Authority (TSA), del cui orologio ti fidi proprio perché non è il tuo.
- La TSA non vede mai i tuoi dati. Firma un hash di essi, legato a un valore temporale, e restituisce un piccolo token firmato.
- Il token dimostra tre cose insieme: che i dati sono i dati (l’hash corrisponde), che il tempo è il tempo della TSA (la sua firma) e che la risposta corrisponde alla richiesta inviata (il nonce che riporta indietro, a protezione contro una risposta più vecchia ripetuta).
- Non dimostra chi ha scritto i dati, che i dati siano veri, né l’esatto momento di creazione. Soltanto: non più tardi di questo.
- La fiducia confluisce nella TSA. Una TSA pubblicamente attendibile è sufficiente per la maggior parte dei record; una TSA qualificata eIDAS porta con sé una presunzione giuridica nell’UE.
Come lo affronta NextPDF
Sezione intitolata “Come lo affronta NextPDF”Parti dal trucco al centro di tutto. Vuoi che un estraneo garantisca quando i tuoi dati esistevano, ma non puoi mostrargli i dati — potrebbero essere riservati, e in ogni caso potrebbero essere enormi. Quindi non lo fai. Calcoli un hash: un’impronta corta e a lunghezza fissa che cambia completamente se anche un solo byte dell’originale cambia, e dalla quale l’originale non può essere recuperato. Invii l’impronta, non il file.
La TSA prende quell’impronta, vi allega il proprio tempo corrente, firma la coppia con la propria chiave privata e restituisce un token di marca temporale (Spec: RFC 3161, §2.1RFC 3161 §2.1). Il token è il legame reso permanente: questa impronta, a questo tempo, garantita da me. Poiché il token è firmato, nessuno — nemmeno la TSA in seguito — può alterare il tempo senza rompere la firma. Poiché porta con sé la tua impronta, è inutile per qualsiasi altro file. E poiché la richiesta include un nonce casuale nuovo che la TSA riporta indietro immutato, puoi capire che la risposta corrisponde a questa particolare richiesta e non è il replay di una risposta più vecchia — il nonce attesta la freschezza, non chi ha chiesto (Spec: RFC 3161, §2.4.2RFC 3161 §2.4.2).
Pensa a un sigillo di ceralacca premuto su una lettera piegata. Il sigillo non legge la lettera; dimostra soltanto che la lettera era intera e presente quando il sigillo è stato impresso. Una marca temporale è un sigillo impresso da un orologio che non possiedi, su un’impronta dei tuoi dati.
- Fingerprint the dataCompute a one-way hash of the file or the signature value. The data itself never leaves your hands.
- Ask the authoritySend the hash and a fresh random nonce to the Time-Stamp Authority.
- The TSA seals a timeIt signs the hash bound to its own clock and echoes your nonce, producing a small signed token.
- Store the tokenFor a PDF, the token is placed inside the file so the proof travels with the document.
- Verify laterAnyone who trusts the TSA can check the token: its signature against the TSA certificate, the matching hash, the echoed nonce, and the time — then concludes an upper bound on age.
In un PDF, questo stesso meccanismo indossa due cappelli. Una marca temporale di firma sigilla quando una firma è stata apposta, marcando temporalmente il valore della firma. Una marca temporale di documento sigilla quando l’intero file esisteva, calcolando l’hash dell’intero PDF (escluso il placeholder che il token occuperà) e memorizzando il token restituito di nuovo in quel placeholder (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5). Il secondo tipo è ciò che una firma archivistica a lunga vita rinnova negli anni per mantenere fresca la propria fiducia.
Un dettaglio moderno che vale la pena conoscere: un formato di marca temporale più vecchio si vincolava a un unico algoritmo di hash per nominare il certificato della TSA stessa. Il profilo aggiornato consente a un token di nominare il proprio certificato con un digest corrente (Spec: RFC 5816, §2.1RFC 5816 §2.1), così il tempo attendibile non eredita silenziosamente la crittografia di ieri.
Esempio pratico
Sezione intitolata “Esempio pratico”Non si assembla a mano un token, e non si dovrebbe nemmeno volerlo. La cosa che vale la pena capire è il punto di innesto della fiducia: quale orologio si sceglie di credere. In NextPDF, chiedere un livello di firma che necessita di tempo attendibile rende quella scelta esplicita anziché implicita.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// A baseline signature trusts only the signer's own clock.$baseline = SignatureLevel::PAdES_B_B;$baseline->requiresTimestamp(); // false → no third party vouches for "when"
// Stepping up to B-T means a Time-Stamp Authority must be supplied:// from here on, "when" is attested by a clock you do not control.$timestamped = SignatureLevel::PAdES_B_T;$timestamped->requiresTimestamp(); // true → a TSA is now part of your trust model
// The decision is now visible at the call site, not buried in a default.// Choosing the TSA is choosing whose time becomes your evidence.Il senso dell’esempio non è l’API. È che «ho tempo attendibile?» è un fatto sì-o-no riguardo al tuo documento, deciso dal fatto che una TSA fosse o meno nel circuito — e il motore si rifiuta di lasciare che quel fatto sia ambiguo.
Equivoco comune
Sezione intitolata “Equivoco comune”La trappola è leggere una marca temporale come «questo è stato creato alle 14:32.» Non dice nulla del genere. Dice «questo esisteva non più tardi delle 14:32.» La differenza è l’intero punto. Una marca temporale è un limite superiore, mai un limite inferiore e mai un istante esatto. I tuoi dati potrebbero essere esistiti per anni prima che tu ti decidessi a marcarli temporalmente; il token tace su questo. Traccia una sola linea e dice: non oltre questo punto.
Un secondo equivoco, più costoso: che una marca temporale dimostri che il tuo documento sia genuino o corretto. Non fa né l’una né l’altra cosa. È indifferente al significato. Una bugia perfettamente marcata temporalmente è comunque una bugia — ora dimostrabilmente vecchia. L’autenticità viene dalla firma che dice chi; la verità viene dal mondo. La marca temporale parla sempre e soltanto del quando.
Limiti e confini
Sezione intitolata “Limiti e confini”La portata di una marca temporale si arresta esattamente dove si arresta il suo modello di fiducia. Dimostra un limite superiore all’età, e soltanto quello, e soltanto se ti fidi dell’autorità che l’ha sigillata.
Ci sono due livelli di autorità da distinguere. Una TSA pubblicamente attendibile si concatena a un certificato che il tuo software accetta già; i suoi token sono ampiamente verificabili e adatti per la maggior parte dei record. Una TSA qualificata eIDAS è un prestatore vigilato su una lista di fiducia dell’UE, e una marca temporale elettronica qualificata porta con sé una presunzione giuridica di accuratezza della data e di integrità dei dati — una presunzione che una marca temporale ordinaria non ha (Spec: eIDAS, Art. 41eIDAS Art. 41). Scegliere tra le due è una questione relativa al peso probatorio di cui hai bisogno, non a come funzionano i byte; la crittografia è la stessa.
Una marca temporale eredita anche la durata dei propri ancoraggi di fiducia. Il certificato della TSA può scadere o essere revocato, e l’algoritmo di hash che ha usato può invecchiare. È proprio per questo che i documenti a lunga vita non si marcano temporalmente una sola volta per poi andarsene — si rinnovano, sovrapponendo una nuova marca temporale di documento alla vecchia evidenza prima che la vecchia evidenza si indebolisca. Quel ciclo di rinnovo è un argomento a sé; vedi Validazione a lungo termine.
| Edition | Availability |
|---|---|
| Core | Supporta PAdES B-B e B-T. B-B è la firma baseline senza marca temporale; B-T richiede e incorpora una marca temporale di firma RFC 3161 verificata rispetto a una TSA fornita dal deployment, il cui orologio scegli tu. |
| Pro | Aggiunge i dati di validazione a lungo termine incorporati (certificati, OCSP, CRL) di cui B-LT ha bisogno per mantenere una firma verificabile dopo la scadenza dei suoi certificati. |
| Enterprise | Aggiunge il ciclo di rinnovo B-LTA, sigillando i dati di validazione sotto una nuova marca temporale di documento e ri-marcandoli prima che la protezione si indebolisca. |
Documenti correlati
Sezione intitolata “Documenti correlati”- Marche temporali e tempo attendibile — lo stesso meccanismo a livello di motore e di PAdES, con le regole di verifica esplicitate.
- Validazione a lungo termine — come il rinnovo delle marche temporali di documento mantenga una firma verificabile per anni.
- Come una firma dimostra chi ha firmato — la metà del «chi» della storia che questa pagina lascia da parte.
- Firme qualificate, spiegate — che cosa significa «qualificata», e perché una TSA qualificata porta con sé peso giuridico.
Glossario
Sezione intitolata “Glossario”- Time-Stamp Authority (TSA) — un servizio indipendente che emette token di marca temporale firmati. Ti fidi del suo orologio proprio perché non è il tuo.
- Token di marca temporale — il piccolo oggetto firmato che una TSA restituisce, legando un hash dei tuoi dati a un valore temporale (Spec: RFC 3161, §2.1RFC 3161 §2.1).
- Hash (message imprint) — un’impronta corta e a senso unico dei dati. La TSA firma questa, mai i dati stessi, così il tuo contenuto resta privato.
- Nonce — un valore casuale nuovo inviato con la richiesta e riportato immutato nella risposta, a mostrare che il token corrisponde a quella specifica richiesta e non è il replay di una vecchia risposta (attesta la freschezza, non l’identità del richiedente).
- Limite superiore — ciò che una marca temporale stabilisce: i dati esistevano non più tardi dell’istante dichiarato. Mai un esatto momento di creazione.
- Marca temporale qualificata eIDAS — una marca temporale di un prestatore UE vigilato che porta con sé una presunzione giuridica di accuratezza della data e di integrità dei dati.
- Marca temporale di documento — una marca temporale sull’intero file PDF, usata per ancorare e rinnovare le prove di validazione a lungo termine (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5).