Vyšlo v časopise Computerworld č. 9/2012, dne 4.5.2012, v rámci seriálu Elektronický podpis v praxi
Vytištěno z adresy: http://www.earchiv.cz/b12/b0504001.php3

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ěnky

Př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.

Informace o zneplatnění konkrétního certifikátu, dostupná na webu vydavatele (certifikační autority)

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é.

Odkaz na aktuální verzi CRL seznamu, umístěný přímo v certifikátu

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".