← Back to all articles

RFC 3161-tijdstempels uitgelegd, hoe je een digitale handtekening juridisch duurzaam maakt

SealDoc Team · · 5 min read

Er is een vraag die opduikt zodra iemand een digitaal archief auditeert: hoe weet je dat dit document bestond op de datum die hij claimt? Een gewone digitale handtekening beantwoordt die vraag niet. Een handtekening bewijst wie tekende, niet wanneer. De getekende bytes bevatten een tijdstempel die de ondertekenaar zelf heeft geschreven, en die kan elke datum zijn die hij wil. Voor de meeste interne use cases maakt dat niet uit. Voor juridisch bindende archieven, fiscale retentie en chain-of-custody-disputen maakt het heel veel uit.

Het antwoord is RFC 3161, de internetstandaard die het Time-Stamp Protocol (TSP) definieert. Hij is ouder dan de meeste lezers verwachten (gepubliceerd in 2001), zit overal in de EU-compliancestack, en zijn werking is eenvoudiger dan de afkorting doet vermoeden.

Wat een RFC 3161-tijdstempel werkelijk is

Een RFC 3161-tijdstempel is een klein ondertekend token, uitgegeven door een Time-Stamping Authority (TSA). De flow ziet er zo uit:

  1. Je berekent een SHA-256-hash van het document dat je wil tijdstempelen. De TSA ziet het document zelf nooit, alleen de hash.
  2. Je stuurt de hash naar een TSA in een TimeStampReq-bericht.
  3. De TSA retourneert een TimeStampResp met een TimeStampToken. Het token is een CMS-structuur, getekend door het certificaat van de TSA, en bevat: de hash die je stuurde, de geclaimde tijd van de TSA, het policy-OID van de TSA en een cryptografische nonce die de jouwe echoot.
  4. Je hangt het token aan je archief, naast het document.

Dat token is de tijdstempel. Het zegt, in cryptografische vorm: “een TSA waarvan het certificaat doorloopt naar een vertrouwde root heeft beweerd dat deze hash op deze UTC-tijd bestond”. Omdat het document via hash wordt geïdentificeerd, kun je het document niet retroactief wijzigen zonder de tijdstempel ongeldig te maken. Omdat de TSA tekent, kun je de tijd niet retroactief wijzigen zonder de handtekening van de TSA te vervalsen.

Daarom zijn tijdstempels non-repudiabel. Beide partijen (jij en elke toekomstige auditor) kunnen het token verifiëren zonder de TSA opnieuw te contacteren.

Waarom een gewone tijdstempel niet volstaat

De klok op je server klopt niet. We zeggen dat met vertrouwen omdat elke klok overal er met enige marge naast zit, en een rechtbank geeft niet om NTP-drift. De juridische waarde van een zelfgeclaimde tijdstempel is ongeveer dezelfde als de juridische waarde van een handgeschreven datum op een papieren bon: hij is suggestief, niet bewijskrachtig.

Een RFC 3161-tijdstempel is wel bewijskrachtig omdat:

  • De TSA een gereguleerde entiteit is, geauditeerd onder normen als ETSI EN 319 421.
  • De klok van de TSA via traceerbare middelen is gesynchroniseerd met UTC (vaak een nationale tijdsdienst of atomaire klokreferentie).
  • Het certificaat van de TSA is uitgegeven door een vertrouwde CA waarvan de root in de EU Trusted List (LOTL) staat.
  • Het tijdstempel-token offline verifieerbaar is door iedereen die de certificaatketen van de TSA bezit, voor onbepaalde tijd.

Het juridische kader dat dit afdwingbaar maakt in de EU is eIDAS (Verordening EU 910/2014, herzien door 2024/1183). eIDAS definieert een “gekwalificeerde elektronische tijdstempel” als één uitgegeven door een TSA op de EU Trusted List. Zo’n tijdstempel geniet het juridische vermoeden van juistheid in alle lidstaten. Een niet-gekwalificeerde tijdstempel is nog steeds nuttig, maar krijgt het automatisch vermoeden niet.

Lange-termijn-geldigheid, de echte reden waarom archieven tijdstempels nodig hebben

Hier het subtielere probleem dat tijdstempels oplossen. Een digitale handtekening is geldig zolang het certificaat van de ondertekenaar geldig is. Certificaten verlopen (typisch 1 tot 3 jaar), worden ingetrokken, of de uitgevende CA wordt opgeheven. Vijf jaar verder kan de handtekening op je factuur cryptografisch intact zijn, maar juridisch niet meer verifieerbaar omdat de vertrouwensketen is opgelost.

De oplossing is een tijdstempel rond de handtekening leggen op het moment dat de handtekening nog geldig is. De tijdstempel bewijst: “deze handtekening was geldig toen aangebracht”. Ook al verloopt het certificaat later, het cryptografisch verslag van zijn geldige toestand blijft bewaard. Dat is het principe achter PAdES Long-Term Validation (LTV) en CAdES-A-profielen.

Voor PDF/A-3-archivering is de praktische structuur:

  1. Maak de PDF/A-3 met de ingebedde XML-factuur.
  2. Breng een digitale handtekening aan.
  3. Pas een RFC 3161-tijdstempel toe op de handtekening.
  4. Optioneel: tijdstempel om de paar jaar opnieuw, voordat een TSA-certificaat in de keten verloopt (dat is wat “archival timestamping” betekent).

Een correct gearchiveerde factuur heeft minstens de eerste drie stappen. De vierde maakt een 30-jarig archief mogelijk zonder ingreep bij elke certificaatrotatie.

Een tijdstempel zelf verifiëren

Je hoeft de TSA niet meer te vertrouwen dan de cryptografie vereist. Een tijdstempel verifiëren omvat:

  1. Parse het TimeStampToken (CMS-structuur, ASN.1).
  2. Extraheer de message imprint (hash + algoritme).
  3. Bereken zelf de hash van het document met hetzelfde algoritme. Vergelijk.
  4. Verifieer de handtekening van de TSA op het token met het certificaat van de TSA.
  5. Verifieer dat het certificaat van de TSA doorloopt naar een vertrouwde root, en geldig was op het geclaimde tijdstip van de tijdstempel.
  6. Optioneel: controleer het certificaat van de TSA tegen revocatiegegevens die op archiveringstijd zijn vastgelegd.

OpenSSL kan dit allemaal vanaf de commandoregel (openssl ts -verify -in token.tsr -data file.pdf -CAfile chain.pem). Het is geen black box.

Waar SealDoc inpast

Wanneer de SealDoc-pipeline een PDF/A-3-factuur produceert, voert hij de tijdstempelstap automatisch uit. Het evidence pack dat we naast elke uitgegeven factuur genereren bevat:

  • Het PDF/A-3-bestand met de ingebedde XML.
  • Het losstaande RFC 3161-tijdstempel-token.
  • Een manifest met SHA-256-hashes van elk artefact in het pack.
  • De TSA-certificaatketen op uitgiftemoment, vastgelegd voor latere offline verificatie.

Dat volstaat om een belastingaudit waar dan ook in de EU te doorstaan, ongeacht of de auditor internettoegang heeft tot de oorspronkelijke TSA. Je kunt het hele pack offline herverifiëren met OpenSSL of elke PAdES-bewuste library. Het Factur-X-bestand erin is onafhankelijk te controleren op /check, en de tijdstempel is onafhankelijk te controleren met de tools die elke auditor al op zijn machine heeft.

De conclusie

Een digitale handtekening zonder vertrouwde tijdstempel is een handtekening met een ontkenbare datum. Een RFC 3161-tijdstempel van een EU-genoteerde TSA maakt daar een juridisch duurzaam record van, offline verifieerbaar, decennia geldig. Archiveer je gestructureerde facturen voor het 7-tot-10-jaarsvenster dat de meeste EU-belastingwetten eisen, dan is dit geen optionele laag. Het is de laag die het archief de moeite waard maakt.


← Back to all articles