S certifikáty se setkáváme častěji, než si uvědomujeme. V elektronickém světě je najdeme prakticky všude: v internetových prohlížečích, v poštovních klientech, komunikačních programech, aplikacích pro vytváření elektronického podpisu, v mobilních telefonech…
Certifikát je obecně jakýkoliv dokument, který prokazuje nějakou skutečnost. Ve světě elektronických certifikátů pak jde o dokument (soubor), který nese povolení vydavatele používat službu a/nebo zdroje či přístup.
Podobně jako v případě třeba elektronického podpisu a podpisu klasického (= ručního) bychom mezi papírovými a elektronickými certifikáty našli mnoho shodných i odlišných znaků. Asi největším rozdílem je skutečnost, že má-li být certifikát považovaný za platný, musí být při každém použití jeho platnost ověřena v reálném čase (nebo alespoň v čase blízkém času reálnému). Jinak se stává tuctovým souborem, který si může vytvořit každý jen trochu zkušený uživatel. Ač je použití certifikátů různé a ač jsou požadavky na ně mnohdy ještě pestřejší, měly by obecně splňovat několik základních znaků. Předně z nich musí být patrný účel vydání – tedy proč existují, k čemu opravňují, co z nich plyne. Dále musí obsahovat identifikační údaje (a to jak subjektu, jemuž je vydán, tak subjektu, který jej vydal). Tedy informace, podle nichž lze oprávněný subjekt jednoznačně identifikovat. Jde o jakési zajištění, aby s certifikátem nemohl ve svůj prospěch operovat někdo neoprávněný. V nepočítačovém světě se tato skutečnost ověřuje třeba pomocí osobních dokladů, ve světě kybernetickém pak pomocí různých zástupných atributů (např. pomocí hesla nebo vlastnictví SIM karty).
Certifikát musí také obsahovat unikátní a jednoznačné sériové číslo, aby bylo možné bezpečně ověřit jeho pravost a celkový počet vydaných certifikátů. Dvě bankovky se stejným sériovým číslem by asi také nebudily příliš velkou důvěru.
Velmi důležité je v počítačovém světě – na rozdíl od toho papírového – vymezení platnosti certifikátu, datum počátku a konce jeho platnosti. Zatímco klasický certifikát obsahuje zpravidla jen datum vydání nebo datum, od kdy je platný, elektronický musí mít stanovený nějaký okamžik, po němž platnosti automaticky pozbývá. Je to dáno několika skutečnostmi, ale tou nejvýznamnější je bezpečnost. Jde hlavně o to, že informační technologie postupují vpřed mílovými kroky, a pokud by se někomu podařilo v nejbližší době odhalit slabinu použitého kryptografického algoritmu nebo vytvořit dostatečně výkonný systém, mohl by začít vytvářet jako na běžícím pásu falešné certifikáty. Proto je nutné vytvořit před touto možností nějaký „obranný val“: v případě známého nebo blížícího se problému by se ohrožené typy certifikátů jednoduše přestaly vydávat – a ty již vydané by během krátké doby samy od sebe pozbyly platnosti. Proto jsou certifikáty obvykle vydávané na dobu jednoho roku, jen zřídkakdy na roky dva nebo tři. Na certifikáty s dlouhodobější platností lze narazit jen zcela výjimečně a jsou v podstatě automaticky považované za méně důvěryhodné.
Certifikát v elektronické podobě by měl obsahovat informace sloužící k ověření integrity certifikátu. Tedy k získání jistoty, že s obsahem certifikátu nebylo nikterak neoprávněně manipulováno (že je platný, úplný a že nebylo nic změněno). Papírový certifikát zpravidla může obsahovat jen ověření platnosti (speciální použitý papír, hologram, ochranné známky – v podstatě je na tom podobně jako třeba papírové platidlo).
A nakonec jsou to další atributy, které mohou, ale nemusí mít souvislost s účelem certifikátu. Jde třeba o rodné číslo, funkci, nějaké komentáře či doplňující informace apod.
Jen upozorňujeme, že certifikát nemusí být vystavený pro fyzickou osobu, ale třeba pro server nebo službu. Funguje přitom stejně: ověřuje totožnost. V případě použití serverového certifikátu se tak nemůže stát, že budeme třeba aktualizace programů stahovat z podstrčeného hackerského počítače, který se touto cestou snaží do našeho systému propašovat škodlivý kód.
Normy a standardy
Výše uvedená pravidla platí v podstatě obecně, a to z větší části v elektronickém i reálném světě (na rozdíly jsme vysloveně upozornili). Samozřejmě se lze setkat i s dalšími atributy v certifikátech, např. s elektronickým podpisem certifikační autority (coby vydavatele certifikátu).
Poměrně přesně celou problematiku elektronických certifikátů řeší norma x509 (její první verze byla vydaná již v roce 1988, nyní je platná verze 3), která stanovuje přesný obsah a formu certifikátů, stejně jako způsoby jejich ověřování. Tato norma má několik výhod. Při jejím dodržování jsou např. certifikáty a aplikace navzájem kompatibilní. Dále je tato norma prověřená odbornou veřejností i praxí, takže neskrývá žádné záludnosti. Navíc ošetřuje jednu základní podmínku: stanovuje taková pravidla hry, která brání tomu, aby bylo možné certifikát jakkoliv zfalšovat. A v neposlední řadě lze certifikáty vystavené a používané podle x509 používat v různých aplikacích. Jinými slovy: jeden normalizovaný certifikát může plnit několik úkolů, od elektronického podepisování přes přihlašování k systému (intranet, elektronické bankovnictví…) až třeba po ověřování přítomnosti.
Podle x509 jsou informace v certifikátu popsané jazykem ASN.1, který byl vytvořený pro popis obecných datových struktur. Zápis je bez problémů čitelný pro člověka, ale pro strojové zpracování je nutné jej převést do binární formy (což v daném případě odpovídá kódování DER či CER). Pokud je pro další usnadnění práce certifikát převeden do kódování Base64, jsou vlastní data certifikátu umístěna mezi dva řetězce: úvodní -----BEGIN CERTIFICATE----- a koncový -----END CERTIFICATE-----.
Normy ale pochopitelně platí jen tehdy, pokud jsou závazné (nejlépe pod hrozbou sankcí) nebo pokud je někdo prostě dodržuje. V praxi se lze setkat s mnoha proprietárními řešeními, které z toho či onoho důvodu využívají vlastní formát, strukturu a politiku certifikátů. Nemusí to být nutně na škodu, ve speciálních případech to dokonce může být žádoucí – ale v běžném provozu jednoznačně převládají výhody normalizovaného formátu nad nějakými neověřenými pokusy.
Základní princip fungování
Pokud dnes hovoříme o elektronickém certifikátu, pak nejčastěji ve spojení s elektronickým podpisem nebo internetovým bankovnictvím. Proto právě na jejich příkladu si předvedeme princip fungování certifikátů, což se následně dá velmi jednoduše zevšeobecnit pro další případy nasazení.
Pokud se chceme elektronicky podepisovat, potřebujeme mít osobní certifikát vystavený oprávněnou a uznávanou certifikační autoritou. Tedy nezávislým subjektem, který má přesně danou politiku, přesně daná pravidla hry a který veřejně ručí za poskytované služby. Logika věci je jednoduchá: místo toho, abychom důvěřovali či nedůvěřovali desítkám či stovkám tisíc entit (narazíme přitom na nepřekonatelné problémy – jak třeba dostatečně důvěryhodně ověřit totožnost někoho z jiného koutu planety), stačí důvěřovat (či nedůvěřovat) několika málo certifikačním autoritám. Opět použijeme přirovnání k reálnému světu: kdyby si občanské průkazy vyráběl každý doma, asi by měly jiný stupeň důvěryhodnosti, než když je na základě přesně definovaných postupů vydává uznávaná instituce. (Pro úplnost dodáváme, že i ve světě certifikátů existují tzv. self-signed certficates, certifikáty podepsané sebou samým. Ty se ale využívají v podstatě jen k testovacím účelům, protože jejich důvěryhodnost je nulová.)
Osobní certifikát získáme tak, že vytvoříme elektronicky podepsanou žádost a předáme ji při dodržení stanovených pravidel certifikační autoritě. Stanovená pravidla jsou třeba osobní návštěva a prokázání totožnosti dvě různými osobními doklady: certifikační autorita ručí za to, že stejně nebo velmi podobně (ale v rámci jasně stanovených a veřejně definovaných mantinelů) nakládá s každým zájemcem o své služby.
Pokud certifikační autorita shledá, že je vše v pořádku a v souladu s pravidly, vydá vytoužený certifikát. Ten obsahuje výše uvedené informace (případně i další podle potřeby), dále veřejný podepisovací klíč dotyčné osoby a v neposlední řadě elektronický podpis certifikační autority. Tím se certifikační autorita zaručila (často i finančně – existují přitom různé třídy certifikátů, na které jsou různé záruky) za tento osobní certifikát. Ten je pak možné v souladu s pravidly používat.
Na základě stanovených kritérií lze certifikát zneplatnit. Buď sám od sebe expiruje (uplyne doba, na kterou byl vydán), odvolá jej certifikační autorita (dodatečně zjistí jakékoliv porušení pravidel) nebo majitel (už jej nepotřebuje, někdo mu ukradl zařízení s certifikátem apod.). Proto je zapotřebí při každé transakci s certifikátem ověřovat jeho platnost: nejen dobu trvání apod., ale je dobré na webu certifikační autority zjistit, zda certifikát není na seznamu CRL (Certificate Revocation List, seznam odvolaných certifikátů). Protože v tom případě je certifikační autorita krytá a akceptování neplatného certifikátu je jen vaším problémem. Jakmile se certifikát jednou z jakéhokoliv důvodu dostane (byť i nedopatřením) na CRL, už na něm zůstane navždy. Nevede cesta zpět, zpětná platnost odvolaného certifikátu je absolutní tabu.
Všechna výše uvedená bezpečnostní opatření jsou důležitá, protože samotný certifikát je pouze datový soubor – a bez určité obezřetnosti by jej bylo možné velmi snadno zfalšovat, napodobovat apod.
Speciálním případem certifikátů je technologie elektronického podepisování a komunikace PGP (Pretty Good Privacy), která je založena nikoliv na důvěře či nedůvěře k certifikačním autoritám, ale na ověřování totožnosti na základě tzv. řetězců důvěry. Zjednodušeně se dá říci, že pokud věřím Adamovi a Adam věří Evě, pak i já věřím Evě – přestože jsem se s ní nesetkal, ale vycházím z logiky, že věřím Adamovi, který za mě „prolustroval“ Evu. V praxi je to samozřejmě trochu složitější. Jednotliví uživatelé si za certifikáty navzájem „ručí“. Problém je každopádně v tom, že tento systém neposkytuje žádné skutečné, vymahatelné a dokladovatelné záruky (spoléhá na vzájemnou kontrolu jednotlivých prvků, takže je decentralizovaný) a je poměrně jednoduché ho i při dodržení stanovených podmínek zneužít.
Certifikáty hrají v současnosti významnou roli – a jejich důležitost do budoucna bezesporu poroste s tím, jak využíváme více elektronických služeb, více elektronicky komunikujeme, více elektronicky přistupujeme k datům a informacím. Certifikáty jsou dnes jednou z velmi mála možností (a v podstatě jedinou univerzální) – navíc velmi levnou, jednoduchou a dostupnou – jak v elektronickém světě prokazovat svoji reálnou totožnost.