Časová razítka RFC 3161 vysvětlena: jak učinit digitální podpis právně trvalým
Při první kontrole digitálního archivu vyvstane jedna otázka: jak víte, že tento dokument existoval k datu, které uvádí? Běžný digitální podpis na tuto otázku neodpovídá. Podpis dokazuje kdo podepsal, nikoli kdy. Podepsané bajty obsahují časové razítko zapsané podepisujícím, ale podepisující může zapsat jakékoli razítko. Pro většinu interních případů na tom nezáleží. Pro právně závazné archivy, daňové uchování a spory o průkaznost dokumentů to záleží hodně.
Odpovědí je RFC 3161, internetový standard definující protokol časového razítka (Time-Stamp Protocol, TSP). Je starší, než by většina čtenářů čekala (vydán v roce 2001), je všude v zásobníku shody EU a způsob, jakým funguje, je jednodušší, než zkratka naznačuje.
Co je časové razítko RFC 3161
Časové razítko RFC 3161 je malý podepsaný token vydaný autoritou časového razítka (Time-Stamping Authority, TSA). Průběh vypadá takto:
- Vypočítáte hash SHA-256 dokumentu, který chcete orazítkovat. TSA nikdy nevidí samotný dokument, jen hash.
- Hash odešlete TSA ve zprávě
TimeStampReq. - TSA vrátí
TimeStampRespobsahujícíTimeStampToken. Token je struktura CMS podepsaná certifikátem TSA a obsahuje: vámi odeslaný hash, čas tvrzený TSA, OID politiky TSA a kryptografický nonce odrážející váš. - Token připojíte k archivu spolu s dokumentem.
Tento token je časové razítko. Říká kryptografickou formou: “TSA, jejíž certifikát je zakotven v důvěryhodném kořenu, tvrdí, že tento hash existoval v tomto čase UTC.” Protože je dokument identifikován hashem, nelze ho zpětně změnit bez zneplatnění razítka. Protože TSA podepisuje, nelze zpětně změnit čas bez padělání podpisu TSA.
Proto jsou razítka neodmítnutelná. Obě strany (vy i budoucí auditor) mohou token ověřit bez kontaktu s TSA.
Proč běžné razítko nestačí
Hodiny na vašem serveru jsou nepřesné. Říkáme to s jistotou, protože každé hodiny jsou všude nepřesné v určité míře a soud se o drift NTP nezajímá. Právní hodnota samostatně tvrzeného časového razítka se přibližně rovná právní hodnotě ručně psaného data na tištěné účtence: je to indicieí, nikoli důkazem.
Časové razítko RFC 3161 je průkazné, protože:
- TSA je regulovaný subjekt, auditovaný podle standardů jako ETSI EN 319 421.
- Hodiny TSA jsou synchronizovány s UTC traceovatelnými prostředky (často národní časová služba nebo reference atomových hodin).
- Certifikát TSA vydává důvěryhodná CA, jejíž kořen je na důvěryhodném seznamu EU (LOTL).
- Token časového razítka lze ověřit offline kýmkoli v držení řetězce certifikátů TSA, bez omezení.
Právním rámcem, který toto v EU vymahatelně zajišťuje, je eIDAS (Nařízení EU 910/2014, revidované v 2024/1183). eIDAS definuje “kvalifikované elektronické časové razítko” jako razítko vydané TSA na důvěryhodném seznamu EU. Takové razítko požívá právní presumpci přesnosti ve všech členských státech. Nekvalifikované razítko je stále užitečné, ale automatickou presumpci nezíská.
Dlouhodobá platnost: skutečný důvod, proč archivy potřebují razítka
Zde je subtilnější problém, který razítka řeší. Digitální podpis je platný, dokud je platný certifikát podepisujícího. Certifikáty expirují (typicky 1 až 3 roky), jsou zrušeny nebo jejich vydávající CA ukončí činnost. Za pět let může být podpis na vaší faktuře kryptograficky neporušený, ale právně neověřitelný, protože řetězec důvěryhodnosti zanikl.
Řešením je zabalit razítko kolem podpisu v okamžiku, kdy je podpis ještě platný. Razítko dokazuje: “tento podpis byl platný při aplikaci.” I když certifikát později expiruje, je zachován kryptografický záznam jeho platného stavu. Toto je princip za PAdES Long-Term Validation (LTV) a profily CAdES-A.
Pro archivaci PDF/A-3 je praktická struktura:
- Vytvoříte PDF/A-3 s vloženou XML fakturou.
- Aplikujete digitální podpis.
- Aplikujete razítko RFC 3161 na podpis.
- Volitelně opětovně orazítkujete každých několik let před expirací certifikátu TSA v řetězci (toto je smysl “archivního razítkování”).
Správně archivovaná faktura má alespoň první tři kroky. Čtvrtý je to, co umožňuje 30letý archiv bez zásahu při každém cyklu rotace certifikátů.
Vlastní ověření razítka
Nemusíte důvěřovat TSA více, než kryptografie vyžaduje. Ověření razítka zahrnuje:
- Parsování
TimeStampToken(struktura CMS, ASN.1). - Extrakci otisku zprávy (hash + algoritmus).
- Vlastní výpočet hashe dokumentu stejným algoritmem. Porovnání.
- Ověření podpisu TSA na tokenu pomocí certifikátu TSA.
- Ověření, že certifikát TSA je zakotven v důvěryhodném kořenu a byl platný v tvrzeném čase razítka.
- Volitelně: kontrola certifikátu TSA vůči revokačním datům zachyceným při archivaci.
OpenSSL to vše zvládne z příkazové řádky (openssl ts -verify -in token.tsr -data file.pdf -CAfile chain.pem). Není to černá skříňka.
Kde se SealDoc uplatňuje
Když pipeline SealDoc produkuje fakturu PDF/A-3, krok razítkování probíhá automaticky. Balíček důkazů generovaný spolu s každou vydanou fakturou obsahuje:
- Soubor PDF/A-3 s vloženým XML.
- Oddělený token razítka RFC 3161.
- Manifest se hashy SHA-256 každého artefaktu v balíčku.
- Řetězec certifikátů TSA v době vydání, zachovaný pro pozdější offline ověření.
To postačuje pro daňový audit kdekoli v EU, bez ohledu na to, zda má auditor přístup k internetu a k původní TSA. Celý balíček lze ověřit offline pomocí OpenSSL nebo jakékoli knihovny kompatibilní s PAdES. Soubor Factur-X uvnitř lze nezávisle ověřit na /check a razítko lze nezávisle ověřit nástroji, které každý auditor již má na svém počítači.
Závěr
Digitální podpis bez důvěryhodného razítka je podpis s popiratelným datem. Razítko RFC 3161 od TSA na seznamu EU z toho činí právně trvalý záznam, ověřitelný offline, platný po desetiletí. Pokud archivujete strukturované faktury pro 7-až-10-leté okno, které většina daňových zákonů EU vyžaduje, nejde o volitelnou vrstvu. Je to vrstva, která z archivu dělá archiv.