V předchozím dílu tohoto seriálu jsme si vysvětlili, proč je možnost ověřit platnost konkrétního elektronického podpisu zcela záměrně a programově omezována v čase: proč je vše nastaveno tak, aby ověření po určité době již nebylo možné. Tedy pokud včas neuděláme určitá opatření k tomu, abychom možnost ověření prodloužili. Důvodem je právě snaha vynutit si aplikaci takových opatření, která dokážou předejít možnost záměny podepsaného dokumentu nějakým kolizním dokumentem. Tedy dokumentem, který je jiný, ale má stejný otisk (hash), a tím i stejný elektronický podpis.
Jak již víme z minulého dílu, vhodným opatřením je časové razítko. Musíme jej ale přidat včas neboli ještě dříve, než skončí možnost ověření elektronického podpisu. Tím ji prodloužíme o určitou dobu (obvykle o několik málo let), ale opět ne natrvalo, resp. na libovolně dlouho. Proto ještě předtím, než takto prodloužená doba skončí, musíme přidat další časové razítko. A po čase zase další atd.
Další překážky
Pokud budeme popisovaným způsobem přidávat časová razítka, vyřešíme tím ale jen část celého problému: pouze tu, která se týká nebezpečí záměny původně podepsaného dokumentu nějakým kolizním dokumentem. Dalším nepříjemným problémem je to, že po delší době již nemusí být k dispozici všechny „podklady“, které k ověření platnosti podpisu nutně potřebujeme.
Připomeňme si, že než můžeme nějaký podpis prohlásit za platný, musíme zkontrolovat integritu podepsaného dokumentu. Pak musíme zvolit tzv. posuzovaný okamžik, ke kterému budeme platnost podpisu ověřovat (viz minulý díl). To je v praxi okamžik uvedený v nejstarším kvalifikovaném časovém razítku. No a pak musíme ověřit, že certifikát, na kterém je podpis založen („podpisový“ certifikát), byl k posuzovanému okamžiku stále ještě platný a nebyl k tomuto okamžiku revokovaný neboli předčasně zneplatněný. To samé pak musíme ověřit pro všechny nadřazené certifikáty, což jsou v praxi certifikáty certifikační autority, která vydala „podpisový“ certifikát.
Problém ale nastává v případě, kdy některý z těchto certifikátů nemáme k dispozici. Bývá sice zvykem je přikládat k samotnému podpisu, ale není to podmínkou. Ovšem pro možnost ověření platnosti podpisu je dostupnost certifikátů nezbytná. Takže bez nich platnost podpisu ověřit nemůžeme.
V praxi ale bývá větší problém s nedostupností informací o revokaci příslušných certifikátů. Přitom ověření toho, že žádný z certifikátů nebyl k posuzovanému okamžiku revokován, je další nutnou podmínkou k tomu, abychom nějaký podpis mohli prohlásit za platný. Takže ani bez informací o revokaci se opravdu neobejdeme.
Vložené revokační informace
Jak již víme z předchozích dílů, informace o revokaci certifikátů mohou být zpřístupňovány dvěma způsoby: skrze tzv. CRL seznamy, vydávané dávkově (tj. „jednou za čas“), nebo v reálném čase skrze protokol OCSP (Online Certificate Status Protocol) na principu dotaz/odpověď. V obou případech ale platí, že jejich dostupnost není věčná. Není garantováno, že příslušné informace budou bez problémů dostupné i po více letech. V případě první varianty (CRL seznamů) se stávají nedostupnými dokonce velmi brzy. Jakmile skončí řádná doba platnosti certifikátu, jsou informace o jeho eventuální revokaci vyřazeny z aktuálního seznamu CRL.
Naštěstí existuje poměrně jednoduché řešení problému s jejich nedostupností po delší době, a to získat revokační informace (ať již v podobě CRL seznamu či odpovědi OCSP serveru) v době, kdy jsou ještě dostupné, a „přibalit“ je k samotnému podpisu, podobně jako se k němu obvykle připojuje podpisový certifikát a další jemu nadřazené certifikáty. Dokonce to může být provedeno i později, až po vzniku podpisu. A může tak učinit kdokoli, nejenom podepsaná osoba. Například ten, kdo elektronický dokument získal, od toho, kdo jej podepsal.
Způsob, jakým se revokační informace „přibalují“ k elektronickému podpisu, je samozřejmě závislý na používaném programu, ale obvykle je vše záležitostí několika málo kliknutí. Dokonce je možné i to, aby revokační informace byly přidávány k podpisu automaticky již při jeho vzniku. Zde je ale jeden velký háček. V případě, kdy je takto přidáván aktuálně dostupný CRL seznam, je nutné si uvědomit, že ještě nemusí obsahovat informace o revokacích, ke kterým došlo těsně před vznikem podpisu. Vzhledem k tomu, jak vydávání CRL seznamů funguje a jaké lhůty klade zákon na zveřejnění informací o revokaci, je třeba počkat nejméně 24 hodin a teprve pak přidat aktuální CRL seznam (tj. seznam vydaný nejméně 24 hodin po vzniku podpisu).
Koncept LTV
Přidávání („přibalování“) všeho potřebného, co je nezbytné pro pozdější ověření platnosti elektronického podpisu, je základem konceptu LTV (Long Term Validation) neboli elektronických podpisů s možností dlouhodobého ověření. Nejde skutečně o nic jiného než o přidávání všech relevantních certifikátů a revokačních informací ještě v době, kdy jsou dostupné – a jejich následné využití tehdy, kdy je platnost ověřována. Pochopitelně přitom musí být vyřešeno i to, jak certifikáty a revokační informace k podpisům „přibalovat“. Musí tedy být použity takové formáty elektronických dokumentů a podpisů, které to umožňují. Které vytvářejí jakýsi „kontejner“, do něhož lze kromě samotného podpisu (a časového razítka, resp. razítek) přidat i certifikáty a revokační informace, ať již v podobě CRL seznamů či odpovědí OCSP serverů.
Samozřejmě také musí být zajištěny celistvost a neměnnost celého podepsaného dokumentu i s příslušným „kontejnerem“, tak aby nikdo nemohl zaměnit původně podepsaný dokument jiným (kolizním) dokumentem nebo vložený certifikát jiným (kolizním) certifikátem atd. Toho docílíme opakovaným přidáváním časových razítek, viz úvod článku.
Autor vyučuje na pražské Matematicko-fyzikální fakultě UK problematiku počítačových sítí a působí jako nezávislý konzultant a publicista