Jak už jsme si řekli v předchozím článku, digitální podpis umožňuje ověřit, že zprávu podepsal vlastník odpovídajícího soukromého klíče. To samo o sobě ovšem nijak neidentifikuje skutečnou osobu, která daný klíč vlastní. A právě digitální certifikát je tím instrumentem, který umožňuje spolehlivě identifikovat skutečného odesilatele zprávy.

Abychom mohli podpisu opravdu důvěřovat, musí certifikát vydávat nějaký třetí, nezávislý subjekt. Tímto subjektem je takzvaná certifikační autorita (v zákoně 227/2000 Sb. o elektronickém podpisu se nazývá poskytovatel certifikačních služeb). Vydáním certifikátu certifikační autorita stvrzuje, že subjekt, kterému byl certifikát vydán, skutečně vlastní daný pár klíčů. Přirozeně certifikační autorita musí být dostatečně důvěryhodná organizace, protože jí důvěřují obě komunikující strany. Certifikát by se s trochou fantazie dal přirovnat k občanskému průkazu. Občanský průkaz vlastně spojuje identifikační údaje s jedinečným identifikátorem konkrétní osoby, kterým je v tomto případě její podoba (reprezentovaná fotografií). V případě certifikátu je tímto identifikátorem veřejný klíč.

Jak certifikát vypadá?

Jedná se o datový soubor, uložený ve standardním, mezinárodně platném formátu. Pro certifikáty se používá mezinárodní norma X.509, která jednoznačně popisuje strukturu certifikátu. Každý certifikát musí obsahovat následující údaje:

  1. Sériové číslo. Číslo musí být vždy unikátní, certifikační autorita tedy nemůže vydat dva certifikáty se shodným sériovým číslem.
  2. Datum počátku a konce platnosti certifikátu. Doba platnosti certifikátu zpravidla souvisí s tím, k jak silnému klíči je certifikát vydán. Asymetrická kryptografie totiž využívá matematické náročnosti určitých algoritmů (například u zřejmě nejpoužívanějšího algoritmu RSA je to výpočetní náročnost faktorizace velkých čísel), takže pokud by k příliš slabému klíči byl vydán certifikát s dlouhou dobou platnosti, mohlo by se stát, že díky růstu výpočetní síly počítačů by mohl být nalezen párový klíč metodou hrubé síly ještě v době platnosti certifikátu. Nejběžnější doba platnosti certifikátu je jeden rok.
  3. Identifikační údaje subjektu, kterému je certifikát vydán. Tyto údaje si certifikační autorita musí spolehlivě ověřit, například v případě osobního certifikátu kontrolou dokladu totožnosti.
  4. Veřejný klíč. Nejčastěji se používá délka klíče 1024 bitů. Kromě vlastního klíče je součástí certifikátu také typ algoritmu, který bude pro podepisování používán.
  5. Identifikační údaje subjektu, který certifikát vydal, tedy certifikační autority.


Kromě těchto údajů může certifikát obsahovat ještě další informace, například omezení účelu, pro který může být certifikát použit (podpis elektronické pošty, podpis kódu, identifikace klienta či serveru, atd.), cesta k certifikátům certifikační autority, cesta k seznamu zneplatněných certifikátů a podobně. Norma X.509 v současně používané verzi 3 umožňuje definovat různá rozšíření, takže například v případě testovacích certifikátu, které jsou vydávány bez ověření totožnosti (a s omezenou dobou platnosti), je vhodné přidat do certifikátu informaci o tom, že certifikát je určen pouze pro testování (a tudíž není příliš důvěryhodný).

Protože certifikát je běžný datový soubor, je třeba zabránit, aby také on sám nemohl být nějakým způsobem zfalšován. Certifikační autorita proto certifikát podepíše svým vlastním soukromým klíčem a tento podpis připojí k certifikátu. Z toho vyplývá jedna důležitá vlastnost – abychom mohli ověřit platnost tohoto podpisu, a tím i platnost certifikátu, musíme mít k dispozici také certifikát certifikační autority. Ten je zpravidla ke stažení na stránkách certifikační autority.

Informace obsažené v certifikátu jsou popsány pomocí jazyka ASN.1, což je jazyk určený pro popis obecných datových struktur. Zápis v tomto jazyce je poměrně dobře čitelný pro člověka, pro počítačové zpracování je ovšem nutné jej nějak zakódovat do binární formy. Pro certifikáty se většinou používá kódování DER, případně CER. Kvůli snazší práci s certifikátem jsou data ještě následně převedena do kódování Base64, v tomto případě jsou zpravidla vlastní data certifikátu vložena mezi dva řetězce, a sice mezi úvodní -----BEGIN CERTIFICATE----- a koncový -----END CERTIFICATE-----. Podstatné ovšem je, že všechny tyto formáty a kódy jsou popsány pomocí mezinárodních norem a s takto uloženými certifikáty by měla umět pracovat většina programů, které podporují elektronický podpis, a to i napříč jednotlivými počítačovými platformami. Pokud tedy obdržíte podepsanou zprávu, musí klient elektronické pošty kromě ověření platnosti podpisu umožnit také zobrazení vlastního certifikátu, takže si můžete ověřit informace o odesilateli zprávy. Certifikáty by také měly podporovat běžné operační systémy, takže pokud například ve správci souborů poklepete na soubor s certifikátem, měl by jej systém rozeznat a informace obsažené v certifikátu zobrazit v čitelné podobě.

Proces vydání certifikátu

Žadatel si nejprve ve svém počítači vygeneruje pár klíčů a poté vytvoří elektronickou žádost o certifikát. Jedná se opět o datový soubor ve standardním formátu (zpravidla podle normy PKCS#10), který obsahuje požadované identifikační údaje (v závislosti na typu certifikátu jsou požadovány odlišné údaje, například u osobního certifikátu bude zřejmě požadováno jméno a trvalé bydliště žadatele), veřejný klíč žadatele a dále některé doplňkové informace. Celá žádost je poté podepsána právě vygenerovaným soukromým klíčem. Tím žadatel o certifikát spolehlivě prokazuje, že je vlastníkem párového soukromého klíče. Nyní je třeba žádost doručit certifikační autoritě, která musí spolehlivě ověřit, že údaje uvedené v žádosti jsou pravdivé (v případě osobního certifikátu třeba kontrolou dokladu totožnosti žadatele) a že podpis žádosti je platný. V případě úspěšného ověření údajů certifikační autorita vystaví na základě žádosti platný certifikát. Certifikát je nyní třeba doručit žadateli, který si jej nainstaluje do systému (čímž se certifikát spojí s vygenerovaným soukromým klíčem) a může jej začít používat.

Přestože se vám možná tento postup zdá zbytečně složitý, není důvod se ničeho obávat. Ve skutečnosti je všechno téměř automatické, většinou stačí navštívit webové stránky certifikační autority, zvolit žádost o certifikát, a do zobrazeného formuláře vyplnit požadované údaje. Vygenerování klíčů i žádosti a její odeslání je potom zcela transparentní, někdy je pouze vyžadováno nahrání žádosti na disketu a osobní doručení do sídla certifikační autority. Vystavený certifikát si poté můžete jednoduše stáhnout z webu, může být zaslán emailem, případně opět předán osobně na paměťovém médiu.

Pro úplnost je třeba dodat, že existuje několik typů certifikátu podle toho, k jakému účelu a jakému subjektu jsou vydány. Certifikát tedy nemusí být vydán pouze fyzické osobě, ale třeba i firmě, která může například elektronicky podepisovat software, který produkuje. Velmi často se používá tzv. serverový certifikát, který slouží pro zabezpečenou komunikaci internetového prohlížeče se serverem pomocí protokolu SSL. Přirozeně pro různé typy certifikátu musí certifikační autorita ověřit jiné údaje, v případě firemního certifikátu to bude například výpis z obchodního rejstříku, u serverového certifikátu je třeba ověřit, že žadatel je vlastníkem domény, pro kterou je certifikát vydán.

Vyzkoušejte si sami

Jestliže jste po přečtení tohoto článku dostali chuť vyzkoušet si využití certifikátu v praxi, není nic jednoduššího. Většina certifikačních autorit totiž vydává takzvané testovací certifikáty, které mají sice omezenou dobu platnosti, ale umožní vám vyzkoušet si základní práci s certifikátem. Pokud byste si chtěli vyzkoušet také přijímání podepsaných emailů, můžete požádat někoho, kdo již má certifikát vystaven, aby vám poslal podepsaný email, můžete jej poslat sami sobě s použitím testovacího certifikátu nebo třeba využít služby na adrese http://poslatmail.caczechia.cz, kde si můžete nechat poslat ukázkový email na svou adresu. Zde si dokonce můžete nechat zaslat email s neplatným podpisem, a vyzkoušet si tak, jakým způsobem bude váš mailový klient na takovéto zprávy reagovat.

1 Příspěvěk v diskuzi

Odpovědět