CAdES-T: een veelzijdig en duurzaam formaat voor elektronische handtekeningen

Een handtekening is niet voor altijd geldig

Een elektronische handtekening is niet voor altijd geldig. Ze is geldig op een datum. De formulering verrast in eerste instantie, maar ze laat zich goed verklaren.

Een handtekeningcertificaat heeft een levensduur. Het verloopt, en het kan vervroegd worden ingetrokken, bijvoorbeeld als de privésleutel ervan is gecompromitteerd. Wat gebeurt er dan met een document dat met zo'n certificaat is ondertekend? Moet het als niet-ondertekend worden beschouwd?

Nee. Maar op één voorwaarde: kunnen bewijzen wanneer het is ondertekend.

Handgeschreven handtekening, elektronische handtekening

Een handgeschreven handtekening verbindt een persoon met een document, maar zegt niets over de inhoud ervan: niets belet dat er achteraf een bladzijde wordt gewijzigd. En de verificatie vereist een deskundigheid die lastig kan zijn.

Een elektronische handtekening beantwoordt aan deze beperkingen omdat ze wordt berekend op basis van het document zelf. Ze biedt drie garanties:

  • Integriteit: de handtekening heeft betrekking op de vingerafdruk van het document. Eén gewijzigde byte, en de verificatie mislukt.
  • Identiteit: de ondertekeningssleutel is verbonden aan een certificaat dat is uitgegeven door een autoriteit die de identiteit van de houder heeft geverifieerd.
  • Onweerlegbaarheid: de privésleutel blijft onder de exclusieve controle van de ondertekenaar, in het bijzonder wanneer die nooit een smartcard of een token verlaat.

Daar komt een verifieerbare datum bij, zodra de handtekening van een tijdstempel is voorzien. Dat is precies wat de handgeschreven handtekening het meest ontbeert: een met de hand geschreven datum is niet meer dan een bewering.

De handtekeningformaten

De eIDAS-verordening erkent verschillende door ETSI genormeerde handtekeningformaten. Ze onderscheiden zich in de eerste plaats door het bestandstype waarop ze van toepassing zijn:

  • XAdES voor XML-documenten
  • PAdES voor PDF, waarbij de handtekening in het document wordt opgenomen
  • JAdES voor JSON, met name uitwisselingen tussen applicaties
  • CAdES voor elk bestandstype

CAdES is het algemene formaat. Omdat het niets veronderstelt over de structuur van het ondertekende bestand, wordt de handtekening er niet in opgenomen: ze vergezelt het. Men spreekt van een losgekoppelde handtekening. Dat is wat het mogelijk maakt een afbeelding, een archief, een versleuteld bestand of een propriëtair formaat te ondertekenen zonder het ooit aan te raken.

Niveau T, dat de datum toevoegt

Elk van deze formaten kent vervolgens niveaus:

  • Niveau B (Basic): de handtekening alleen, met de onmisbare attributen
  • Niveau T (Timestamp): een tijdstempeltoken komt bij de handtekening
  • Niveau LT (Long Term): de voor de verificatie noodzakelijke elementen, certificaatketen en intrekkingsbewijzen, worden in de handtekening ingebed
  • Niveau LTA (Long Term Archive): archiveringstijdstempels worden toegevoegd en daarna in de loop van de tijd vernieuwd

Het verschil tussen LT en LTA ligt in wat men wil beschermen. Niveau LT beantwoordt een probleem van beschikbaarheid: over tien jaar is de intrekkingsdienst van de autoriteit misschien verdwenen, dus bewaart men vandaag al, in de handtekening, de bewijzen die de verificatie ervan mogelijk zullen maken. Niveau LTA beantwoordt daarnaast een probleem van veroudering van sleutels en algoritmen: een algoritme dat vandaag als veilig geldt, blijft dat niet onbeperkt, en hetzelfde geldt voor de gebruikte sleutels. Ten slotte heeft ook het certificaat van de tijdstempel-autoriteit een einde van zijn levensduur. Een archiveringstijdstempel verzegelt daarom periodiek het geheel, bewijzen inbegrepen, waarbij elk nieuw token de geldigheid van de keten verlengt voordat het vorige verzwakt.

Een CAdES-T-handtekening bevat dus een tijdstempeltoken, uitgegeven door een vertrouwde autoriteit, dat bevestigt dat de handtekening op dat precieze moment bestond.

Een document tijdstempelen, een handtekening tijdstempelen

Dat zijn twee verschillende mogelijkheden, en ze bewijzen niet hetzelfde.

Een document tijdstempelen, dat wil zeggen de vingerafdruk ervan, bewijst het bestaan van het bestand op die datum. Het zegt niets over de auteur ervan: een tijdstempel is geen handtekening.

Een handtekening tijdstempelen bewijst dat de ondertekening van het document vóór die datum heeft plaatsgevonden, en dus dat het certificaat nog geldig was op het moment waarop ze werd gezet. (En aangezien de handtekeningwaarde de vingerafdruk van het document al dekt, geldt het datumbewijs ook voor het document!)

Een handtekening tijdstempelen, dat is wat niveau T doet.

Verifiëren is niet alleen een vingerafdruk herberekenen

Een handtekening verifiëren bestaat niet alleen uit het vergelijken van twee vingerafdrukken. Het is het beantwoorden van een rechtsvraag: was het certificaat van de ondertekenaar geldig op de door het token bevestigde datum?

Dat veronderstelt drie verschillende controles:

  • Viel die datum binnen de geldigheidsperiode van het certificaat?
  • Was het certificaat op die datum ingetrokken? De vraag geldt voor het certificaat van de ondertekenaar, maar ook voor dat van de autoriteit die het heeft uitgegeven.
  • Leidt de certificeringsketen naar een erkende vertrouwde autoriteit?

Dat laatste punt verdient aandacht, want het volstaat niet dat een keten ergens naartoe leidt: het gaat erom hoe ver. Elke lidstaat publiceert een ondertekende eIDAS-vertrouwenslijst met de gekwalificeerde verleners van vertrouwensdiensten en de certificaten van hun autoriteiten. Deze nationale lijsten worden op hun beurt vermeld in een lijst van lijsten, gepubliceerd door de Europese Commissie, waarvan de handtekeningcertificaten in het Publicatieblad van de Europese Unie verschijnen.

Het is deze publicatieketen die het woord gekwalificeerd zijn betekenis geeft. Een autoriteit is niet gekwalificeerd omdat haar certificaat dat beweert, maar omdat een staat haar op zijn lijst heeft ingeschreven en omdat die inschrijving door iedereen verifieerbaar is. Deze lijsten bewaren de geschiedenis van de statussen, waardoor de enige vraag die hier telt beantwoord kan worden: was deze autoriteit gekwalificeerd op de datum van het token?

Want deze controles worden beoordeeld op de datum van het token en niet op het moment waarop het bestand wordt geopend. Een certificaat dat twee jaar geleden is verlopen, kan heel goed een geldige handtekening dragen. Omgekeerd draagt een certificaat dat nog geldig is een handtekening die weinig bewijst als de keten ervan naar geen enkele erkende autoriteit leidt.

Zonder bewijsbare datum sterft de handtekening met haar certificaat

Dat is het rechtstreekse gevolg. Een handtekening van niveau B, zonder token, levert geen enkel bewijs van haar eigen datum: de datum die ze bevat wordt door de ondertekenaar verklaard en is dus niet afdwingbaar. Op de dag dat het certificaat verloopt of wordt ingetrokken, kan niet langer worden vastgesteld dat de handtekening daaraan voorafgaat.

En meestal merkt niemand het voordat het nodig is. En er valt dan niets meer aan te doen.

CAdES-T in Sigalion Vault

Om al deze redenen hebben wij voor de ondertekening in Sigalion Vault gekozen voor het formaat CAdES-T, beschikbaar op macOS, Windows en Linux:

  • CAdES baseline-T (ETSI EN 319 122-1), losgekoppelde CMS-handtekening (RFC 5652), samen met het document in een ASiC-S-container
  • RFC 3161-token op de handtekeningwaarde, naar keuze tijdstempeling van Sigalion of eIDAS-gekwalificeerde tijdstempeling (aanbevolen)
  • Softwarecertificaat, smartcard of token (IDOpte, YubiKey), afhankelijk van de drager waarover u beschikt
  • Vertrouwde autoriteiten en eIDAS-kwalificatie uit de officiële vertrouwenslijst, intrekkingsstatus van de ondertekenaar en van zijn uitgever gecontroleerd op de door de tijdstempel bevestigde datum

Het geproduceerde bestand is een .asics-envelop die het document en zijn handtekening in een genormeerd formaat samenbrengt, verifieerbaar met tools die aan de ETSI-normen voldoen.

Ondertekenen, tijdstempelen, versleutelen: drie verschillende behoeften

Meer in het algemeen beantwoordt Vault drie verschillende, complementaire, maar vaak verwarde behoeften:

  • Ondertekenen, om de integriteit van het document en de identiteit van de auteur te waarborgen en diens instemming uit te drukken
  • Tijdstempelen, om te bevestigen dat het op een bepaalde datum bestond
  • Versleutelen, om de vertrouwelijkheid te waarborgen en het lezen voor te behouden aan de aangewezen ontvangers

De drie laten zich combineren: een document kan worden ondertekend en van een tijdstempel voorzien en vervolgens voor de ontvanger versleuteld, waarbij ook het geheel van een tijdstempel kan worden voorzien.