
Co je revokace certifikátu?
Pokud ztratíte svou platební kartu, měli byste co nejrychleji požádat svou banku o její zablokování. Nechcete přeci, aby si někdo platil své nákupy z vašeho účtu. Pokud ztratíte kontrolu nad svým soukromým klíčem, měli byste co nejdříve požádat svou certifikační autoritu o revokaci příslušného certifikátu. Nechcete přeci, aby se někdo podepisoval vaším jménem.
Ve světě elektronického podpisu mohou nastávat situace, velmi podobné situacím ze světa bankovnictví a platebních karet: najednou zjistíte, že potřebujete znemožnit něco, co dříve bylo možné a co jste sami běžně používali. Třeba když vám ukradnou platební kartu, je ve vašem zájmu nechat ji co nejdříve zablokovat, aby s ní nemohl platit někdo jiný.
Na něco takového je pochopitelně pamatováno a tak banky mají mechanismy, jak platební kartu zablokovat. A jelikož všechny platební transakce prochází přes banku, která kartu vydala, může být takovéto zablokování stoprocentně účinné.
V případě elektronického podpisu je nebezpečím to, že někdo zjistí hodnotu vašeho soukromého klíče. Nemusí vám ho tedy nijak krást, což vlastně ani nejde, vzhledem k nehmotné podstatě soukromého klíče. Stačí jej okopírovat či jinak zjistit jeho hodnotu - a rázem se dotyčný může podepisovat vaším jménem.
Pochopitelně i ve světě elektronického podpisu je dopředu pamatováno na takovouto možnost, skrze existenci potřebných "blokačních" mechanismů. Ty ale musí fungovat trochu jinak, než zablokování platební karty.
Hlavní odlišnost je v tom, že zatímco platby vždy nějak "prochází" přes banku, kde mohou být zastaveny, ověřování platnosti elektronického podpisu probíhá distribuovaně, přímo u toho subjektu, který ověření provádí. Jak tedy tento subjekt přinutit, aby už on sám zkontroloval, zda nedošlo k nějaké obdobě zablokování platební karty? A co by vůbec mělo být touto obdobou ve světě elektronického podpisu?
Certifikáty nedohledáte a nezměníte
Ideálním řešením by bylo stáhnout z oběhu všechny certifikáty, vystavené k tomu soukromému klíči, který byl tzv. kompromitován, resp. nad kterým jeho oprávněný držitel ztratil výlučnou kontrolu. Protože právě certifikát je tím, co je nutné mít k dispozici, aby se nějaký elektronický podpis (či značka) vůbec mohl začít ověřovat.
Jenže certifikáty jsou volně šiřitelné a běžnou praxí je přikládat je ke každému jednotlivému podpisu. Takže nějak je "stáhnout všechny z oběhu" není z principu možné, protože nemáte šanci je všechny dohledat.
Další možností je pokusit se předčasně ukončit platnost certifikátu v čase. Zde si připomeňme, že každý certifikát má v sobě napsáno, jak dlouho (od kdy a do kdy) platí. A pouze po tuto dobu jeho vydavatel ručí za to, co je v certifikátu obsaženo.
Tuto dobu řádné platnosti certifikátu ale nemůžeme změnit. Již jen proto, že nedohledáme všechny exempláře certifikátu (viz výše). Ale pokud bychom je i dohledali, stejně bychom nemohli obsah certifikátu přepsat, protože každý certifikát je již z principu "pouze pro čtení": je elektronicky podepsán svým vydavatelem, přesněji opatřen jeho elektronickou značkou, a tak každý pokus o změnu obsahu certifikátu by tento podpis okamžitě zneplatnil.
Princip nástěnkyPřesto existuje možnost, jak platnost konkrétního certifikátu ukončit ještě dříve, než skončí řádná doba jeho platnosti. Tedy jak jej - k určitému časovému okamžiku - předčasně zneplatnit, resp. odvolat či tzv. revokovat. Jen se to musí udělat jinak, než jeho přepsáním.
Jelikož nemáme šanci dohledat všechny exempláře příslušného certifikátu, jediným možným řešením je umístit informaci o předčasném zneplatnění (odvolání, revokaci) někam jinam, než do samotného certifikátu - a současně přinutit každého, kdo s certifikátem pracuje, aby se na příslušné místo podíval a pozitivně si ověřil, že certifikát nebyl předčasně zneplatněn.
Můžeme si představovat, že jde o jakousi nástěnku, umístěnou u vydavatele certifikátu. Tedy u příslušné certifikační autority. A aby to bylo jednodušší, v každém certifikátu bývá uvedena přesná adresa této nástěnky (ve formě tzv. URL odkazu), a dokonce i adresa jejích záložních verzí.
CRL seznamy
Pro praktické fungování právě naznačené představy s nástěnkou je třeba ještě vyřešit řadu technických aspektů. Například to, jakým způsobem a v jakém formátu na ní budou příslušné informace zveřejňovány, jak často atd.
Zde existují dvě základní varianty. Jedna má "dávkový" charakter a pracuje s prostým seznamem revokovaných certifikátů, který je průběžně aktualizován a ve své aktuální podobě "vyvěšován" na nástěnku. Jde o tzv. CRL seznam (Certificate Revocation List, neboli: seznam revokovaných certifikátů).
Určitým problémem je ale to, že aktuálně dostupný CRL seznam ještě nemusí odrážet takové změny, ke kterým došlo v nedávné době - a tak by se vždy správně mělo počkat nějakou dobu na novější verzi tohoto seznamu. Dalším problémem pak je délka takovýchto seznamů: aby nepřerostla únosné meze, jsou informace o revokaci starších certifikátů z aktuálního seznamu zase vyřazovány a přestávají být (touto cestou) dostupné.
U druhé varianty takovéto problémy nenastávají, protože zde nejsou vyvěšovány žádné seznamy, ale nástěnka interaktivně odpovídá na dotazy ohledně platnosti certifikátů, skrze protokol OCSP (On-line Certificate Status Protocol). Jenže tuto variantu naše certifikační autority (s jedinou výjimkou) zatím nepodporují.
Metoda legislativního biče
Zastavme se ale ještě u dalšího aspektu: jak přinutit toho, kdo ověřuje platnost nějakého konkrétního elektronického podpisu či značky (nebo časového razítka, kterého se vše týká také), aby se na příslušnou nástěnku skutečně podíval a pozitivně ověřil, zda nedošlo k revokaci (odvolání, předčasnému zneplatnění) příslušného certifikátu?
Zde se v praxi uplatňuje účinná metoda "legislativního biče": v zákoně o elektronickém podpisu (č. 227/2000 Sb.), konkrétně v jeho paragrafu 5, je stanoveno, že pokud někdo neprovede všechny úkony, potřebné k ověření platnosti elektronického podpisu, a přesto se na jeho platnost spoléhá a jedná podle toho, nese i případnou škodu, pokud z toho nějaká vznikne. Přitom právě kontrola toho, zda došlo či nedošlo k revokaci certifikátu, je jedním z těchto "úkonů, potřebných k ověření platnosti".