Vertrouwde tijd: hoe een tijdstempel bewijst wanneer
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
In het kort
Sectie met titel “In het kort”Een tijdstempel beantwoordt één enkele, verrassend glibberige vraag: bestonden deze gegevens al? Niet wie ze maakte, niet of ze juist zijn — alleen dat deze exacte bytes op een bepaald genoemd moment al in de wereld waren. Deze pagina bouwt het idee van de grond af op: wat een Time-Stamp Authority doet, wat een token werkelijk bevat, en waarom een getal op een klok bewijs wordt.
Het is de metgezel vanaf de basis bij het engine-gerichte Tijdstempels en vertrouwde tijd. Lees deze eerst als “vertrouwde tijd” als jargon klinkt.
Waarom dit belangrijk is
Sectie met titel “Waarom dit belangrijk is”De klok van je computer is een bekentenis, geen bewijs. Je kunt hem op elke waarde zetten die je wilt, en dat kan iedereen. Op het moment dat een datum ertoe doet voor een tweede partij — een contract dat vóór een deadline moest worden ondertekend, een record dat vóór een geschil moest bestaan — is je eigen klok waardeloos als bewijs, omdat je hem beheert. Het hele probleem van vertrouwde tijd is het vinden van een klok die je niet kunt verzetten.
Dit is geen randverschijnsel. Elke langlevende ondertekende PDF leunt erop. Een ondertekeningscertificaat verloopt uiteindelijk; jaren later moet een verifieerder weten dat de handtekening werd gezet terwijl het certificaat nog geldig was. Zonder een onafhankelijk record van “wanneer” heeft die vraag geen eerlijk antwoord. Vertrouwde tijd is het stille fundament waarop het hele bouwwerk van duurzame handtekeningen rust.
De korte versie
Sectie met titel “De korte versie”- Een tijdstempel bewijst dat een stuk gegevens bestond vóór een opgegeven moment. Dat is een bovengrens op de leeftijd, niets meer.
- Het wordt geproduceerd door een derde partij, de Time-Stamp Authority (TSA), wier klok je vertrouwt juist omdat het niet de jouwe is.
- De TSA ziet je gegevens nooit. Hij ondertekent een hash ervan, gebonden aan een tijdwaarde, en geeft een klein ondertekend token terug.
- Het token bewijst drie dingen samen: de gegevens zijn de gegevens (de hash komt overeen), de tijd is de tijd van de TSA (zijn handtekening), en het antwoord past bij het verzoek dat je verzond (de nonce die hij terugkaatst, ter bescherming tegen een herhaald ouder antwoord).
- Het bewijst niet wie de gegevens schreef, dat de gegevens waar zijn, of het exacte moment van aanmaak. Alleen: niet later dan dit.
- Vertrouwen stroomt naar de TSA. Een publiek vertrouwde TSA is goed genoeg voor de meeste records; een eIDAS-gekwalificeerde TSA draagt een juridisch vermoeden in de EU.
Hoe NextPDF dit aanpakt
Sectie met titel “Hoe NextPDF dit aanpakt”Begin bij de truc in het hart van alles. Je wilt dat een vreemde instaat voor wanneer je gegevens bestonden, maar je kunt ze hem niet tonen — ze kunnen vertrouwelijk zijn, en in elk geval kunnen ze enorm zijn. Dus doe je dat niet. Je berekent een hash: een korte, vaste-lengte vingerafdruk die volledig verandert als ook maar één byte van het origineel verandert, en waaruit het origineel niet kan worden teruggewonnen. Je verstuurt de vingerafdruk, niet het bestand.
De TSA neemt die vingerafdruk, voegt zijn eigen huidige tijd toe, ondertekent het paar met zijn private sleutel, en geeft een tijdstempeltoken terug (Spec: RFC 3161, §2.1RFC 3161 §2.1). Het token is de binding permanent gemaakt: deze vingerafdruk, op dit tijdstip, door mij gewaarborgd. Omdat het token is ondertekend, kan niemand — zelfs de TSA niet achteraf — de tijd wijzigen zonder de handtekening te breken. Omdat het je vingerafdruk draagt, is het nutteloos voor elk ander bestand. En omdat het verzoek een verse willekeurige nonce bevat die de TSA ongewijzigd terugkaatst, kun je vaststellen dat het antwoord overeenkomt met dit specifieke verzoek en geen replay is van een ouder antwoord — de nonce attesteert versheid, niet wie het vroeg (Spec: RFC 3161, §2.4.2RFC 3161 §2.4.2).
Denk aan een lakzegel gedrukt over een gevouwen brief. Het zegel leest de brief niet; het bewijst alleen dat de brief heel en aanwezig was toen het zegel werd gedrukt. Een tijdstempel is een zegel gedrukt door een klok die je niet bezit, over een vingerafdruk van je gegevens.
- 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 een PDF draagt ditzelfde mechanisme twee petten. Een handtekeningtijdstempel verzegelt wanneer een handtekening werd toegepast, door de waarde van de handtekening van een tijdstempel te voorzien. Een documenttijdstempel verzegelt wanneer het hele bestand bestond, door de volledige PDF te hashen (met uitzondering van de placeholder die het token zal innemen) en het teruggegeven token terug op te slaan in die placeholder (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5). De tweede soort is wat een langlevende archiveringshandtekening door de jaren heen vernieuwt om zijn vertrouwen vers te houden.
Eén modern detail is het waard te kennen: een ouder tijdstempelformaat pinde zichzelf vast aan één hash-algoritme voor het benoemen van het eigen certificaat van de TSA. Het bijgewerkte profiel laat een token zijn certificaat in plaats daarvan met een actuele digest benoemen (Spec: RFC 5816, §2.1RFC 5816 §2.1), zodat vertrouwde tijd niet stilzwijgend de cryptografie van gisteren erft.
Praktisch voorbeeld
Sectie met titel “Praktisch voorbeeld”Je stelt een token niet met de hand samen, en dat zou je ook niet moeten willen. Wat het waard is om te begrijpen, is de naad van vertrouwen: welke klok je ervoor kiest te geloven. In NextPDF maakt het vragen om een handtekeningniveau dat vertrouwde tijd nodig heeft, die keuze expliciet in plaats van impliciet.
<?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.Het punt van het voorbeeld is niet de API. Het is dat “heb ik vertrouwde tijd?” een ja-of-nee-feit is over je document, bepaald door de vraag of een TSA in de lus zat — en de engine weigert dat feit dubbelzinnig te laten zijn.
Veelvoorkomend misverstand
Sectie met titel “Veelvoorkomend misverstand”De valkuil is een tijdstempel lezen als “dit is om 14:32 aangemaakt.” Het zegt niets dergelijks. Het zegt “dit bestond niet later dan 14:32.” Het verschil is het hele punt. Een tijdstempel is een bovengrens, nooit een ondergrens en nooit een exact moment. Je gegevens kunnen jaren hebben bestaan voordat je toekwam aan het tijdstempelen; het token zwijgt daarover. Het trekt één lijn en zegt: niet na hier.
Een tweede, kostbaarder misverstand: dat een tijdstempel bewijst dat je document echt of correct is. Het doet geen van beide. Het is onverschillig voor betekenis. Een perfect getijdstempelde leugen is nog steeds een leugen — nu aantoonbaar oud. Authenticiteit komt van de handtekening die wie zegt; waarheid komt van de wereld. De tijdstempel spreekt alleen ooit over wanneer.
Beperkingen en grenzen
Sectie met titel “Beperkingen en grenzen”Het bereik van een tijdstempel stopt precies waar zijn vertrouwensmodel stopt. Het bewijst een bovengrens op de leeftijd, en alleen dat, en alleen als je de autoriteit vertrouwt die het verzegelde.
Er zijn twee tiers van autoriteit het waard om te onderscheiden. Een publiek vertrouwde TSA chaint naar een certificaat dat je software al accepteert; haar tokens zijn breed verifieerbaar en prima voor de meeste records. Een eIDAS-gekwalificeerde TSA is een gesuperviseerde aanbieder op een EU-vertrouwde lijst, en een gekwalificeerde elektronische tijdstempel draagt een juridisch vermoeden van de juistheid van zijn datum en de integriteit van de gegevens — een vermoeden dat een gewone tijdstempel niet heeft (Spec: eIDAS, Art. 41eIDAS Art. 41). Tussen die twee kiezen is een vraag over het bewijsgewicht dat je nodig hebt, niet over hoe de bytes werken; de cryptografie is dezelfde.
Een tijdstempel erft ook de levensduur van zijn eigen trust anchors. Het certificaat van de TSA kan verlopen of worden ingetrokken, en het hash-algoritme dat het gebruikte kan verouderen. Precies daarom tijdstempelen langlevende documenten niet één keer en lopen ze niet weg — ze vernieuwen, en leggen een verse documenttijdstempel over het oude bewijs voordat het oude bewijs verzwakt. Die vernieuwingslus is een onderwerp op zich; zie Langetermijnvalidatie.
| Edition | Availability |
|---|---|
| Core | Supports PAdES B-B and B-T. B-B is the baseline signature with no timestamp; B-T requests and embeds a verified RFC 3161 signature timestamp against a deployment-supplied TSA whose clock you choose. |
| Pro | Adds the embedded long-term validation data (certificates, OCSP, CRLs) that B-LT needs to keep a signature verifiable after its certificates expire. |
| Enterprise | Adds the B-LTA renewal loop, sealing the validation data under a fresh document timestamp and re-stamping it before the protection weakens. |
Verwante documentatie
Sectie met titel “Verwante documentatie”- Tijdstempels en vertrouwde tijd — hetzelfde mechanisme op engine- en PAdES-niveau, met de verificatieregels uitgeschreven.
- Langetermijnvalidatie — hoe het vernieuwen van documenttijdstempels een handtekening jarenlang verifieerbaar houdt.
- Hoe een handtekening bewijst wie ondertekende — de “wie”-helft van het verhaal die deze pagina terzijde laat.
- Gekwalificeerde handtekeningen, uitgelegd — wat “gekwalificeerd” betekent, en waarom een gekwalificeerde TSA juridisch gewicht draagt.
Verklarende woordenlijst
Sectie met titel “Verklarende woordenlijst”- Time-Stamp Authority (TSA) — een onafhankelijke dienst die ondertekende tijdstempeltokens uitgeeft. Je vertrouwt haar klok juist omdat het niet de jouwe is.
- Tijdstempeltoken — het kleine ondertekende object dat een TSA teruggeeft, dat een hash van je gegevens aan een tijdwaarde bindt (Spec: RFC 3161, §2.1RFC 3161 §2.1).
- Hash (message imprint) — een korte eenrichtingsvingerafdruk van de gegevens. De TSA ondertekent deze, nooit de gegevens zelf, zodat je inhoud privé blijft.
- Nonce — een vers willekeurig getal dat met het verzoek wordt meegestuurd en ongewijzigd in het antwoord wordt teruggekaatst, wat aantoont dat het token overeenkomt met dat specifieke verzoek en geen herhaald oud antwoord is (het attesteert versheid, niet de identiteit van de aanvrager).
- Bovengrens — wat een tijdstempel vaststelt: de gegevens bestonden niet later dan het opgegeven moment. Nooit een exact aanmaakmoment.
- eIDAS-gekwalificeerde tijdstempel — een tijdstempel van een gesuperviseerde EU-aanbieder die een juridisch vermoeden van datumjuistheid en data-integriteit draagt.
- Documenttijdstempel — een tijdstempel over een volledig PDF-bestand, gebruikt om langetermijnvalidatiebewijs te verankeren en te vernieuwen (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5).