Vytváření elektronických podpisů občanským průkazem

Podle §3 zákona č. 328/1999 Sb., o občanských průkazech platí, že:

  • Do kontaktního elektronického čipu lze zapsat data pro vytváření elektronických podpisů spolu s kvalifikovaným certifikátem pro elektronický podpis obsahujícím data pro ověřování elektronických podpisů odpovídající těmto datům a s daty nezbytně nutnými pro užívání elektronického podpisu. Data a kvalifikovaný certifikát podle věty první zapisuje do kontaktního elektronického čipu držitel.
  • Do kontaktního elektronického čipu lze zapsat kryptografické klíče spolu s certifikátem sloužícím k autentizaci držitele občanského průkazu vůči informačním systémům, vydaným kvalifikovaným poskytovatelem služeb vytvářejících důvěru, (dále jen „autentizační certifikát“) odpovídajícím těmto klíčům. K zápisu kryptografických klíčů a autentizačního certifikátu je oprávněn pouze držitel občanského průkazu.

Držitel si tedy může do čipu občanského průkazu nechat vydat kvalifikované a autentizační certifikáty. Certifikáty pro občanský průkaz musí být vydány kvalifikovaným poskytovatelem služeb vytvářejících důvěru, zjednodušeně kvalifikovanou certifikační autoritou.

Spolu s každým certifikátem musí být v čipu občanského průkazu uložen také kryptografický klíč, přesněji dvojice soukromý klíč + veřejný klíč:

  • veřejný klíč lze zveřejnit (je uložen v certifikátu)
  • soukromý klíč je nutno chránit – nikdy neopustí bezpečné prostředí čipu občanského průkazu.

Klíče certifikátů, uložené občanském průkazu lze použít:

  • Klíče kvalifikovaných certifikátů pro vytváření elektronických podpisů. Občanský průkaz splňuje požadavky na kvalifikovaný prostředek pro vytváření elektronických podpisů, takže vytvořené podpisy, pokud kvalifikovaný certifikát obsahuje informaci o tom, že je uložen v kvalifikovaném prostředku, mají legislativně srovnatelnou váhu jako vlastnoruční podpis a to v celé EU díky nařízení eIDAS.
  • Klíče autentizačních certifikátů pro autentizaci vůči informačním systémům, např. webovým stránkám, internetovým službám apod.
    Pozor! Nezaměňovat s identifikační funkcí občanského průkazu.

Ochrana klíčů v čipu občanského průkazu

Jak je uvedeno výše, certifikáty s veřejnými klíči jsou určeny ke zveřejnění. Naproti tomu soukromé klíče svázané s certifikáty musí mít jejich držitel pod svou výhradní kontrolou. Kdyby došlo k prozrazení či odcizení soukromého klíče, mohl by neoprávněný držitel:

  • V případě klíče kvalifikovaného certifikátu elektronicky podepisovat dokumenty, uzavírat smlouvy apod. jménem oprávněného držitele.
  • V případě klíče autentizačního certifikátu by se mohl vydávat za oprávněného držitele. Mohl by se přihlašovat k elektronickým systémům či službám jménem oprávněného držitele a v těchto systémech by mohl zjišťovat informace a provádět úkony, určené pro oprávněného držitele.

Naštěstí má čip občanského průkazu vlastnosti, které umožňují vysokou míru ochrany soukromých klíčů:

  • Provádí všechny operace se soukromými klíči uvnitř čipu. Díky schopnosti provádět kryptografické operace v čipu nemusí soukromý klíč opustit bezpečné prostředí čipu. (Mimo prostředí čipu by hrozilo přečtení či zkopírování klíče.)
  • Neumožňuje export soukromých klíčů. Pokud je jednou soukromý klíč zapsán v čipu, neexistuje způsob, jak jej z čipu přečíst, zkopírovat či exportovat.
  • Umožňuje generovat klíče přímo v čipu. U klíče, který je generován v čipu, je jistota, že v čipu existuje jediná kopie (originál) klíče. Je tak garantováno, že nikdo nemůže neoprávněně zneužít kopii klíče. Generování klíčů v čipu je tedy velmi výhodné pro klíče, u kterých by při zneužití vznikla značná škoda. Např. pro klíče kvalifikovaných certifikátů občanský průkaz vyžaduje generování v čipu!
  • Chrání klíče i při odcizení občanského průkazu. Provedení operace se soukromým klíčem je podmíněno zadáním příslušného přístupového kódu (PINu nebo QPINu). Při odcizení občanského průkazu nemá neoprávněný uživatel možnost soukromé klíče zneužít, neboť nezná hodnoty přístupových kódů. Riziko, že by hodnotu kódu uhodl, je velmi malé: každý z kódů má povolen maximální počet neúspěšných zadání. Po dosažení maximálního počtu pokusů se hodnota daného kódu zablokuje.

Z výše uvedených vlastností je zřejmé, že soukromé klíče jsou v čipu občanského průkazu velmi dobře chráněny a že se držitel občanského průkazu může na ochranu klíčů spolehnout. Největším rizikem pro soukromé klíče je tak držitel občanského průkazu sám: pokud si nastaví přístupové kódy na hodnoty, které lze snadno uhodnout anebo pokud si hodnoty přístupových kódů zapíše a poznámky nosí spolu s občanským průkazem. V takovém případě mu hrozí, že v případě odcizení občanského průkazu získá neoprávněný uživatel přístup k přístupovým kódům a tím i k soukromým klíčům.

Mobilita klíčů a certifikátů

Klíče a certifikáty nejsou vázány na počítač uživatele - jsou uloženy v čipu občanského průkazu. Uživatel může tedy své klíče a certifikáty snadno přenášet mezi počítači. Pokud např. potřebuje elektronicky podepsat dokument, může to s občanským průkazem provést kdekoli, kde jsou instalovány ovladače občanského průkazu a je dostupná čtečka karet. Je však třeba být opatrný při použití cizího počítače: může obsahovat malware či keylogger, kterým lze odposlechnout zadávanou hodnotu přístupových kódů. Na cizím počítači by se občanský průkaz měl raději používat se čtečkou s klávesnicí, která eliminuje riziko odcizení přístupového kódu.)

Kódy pro ochranu operací s certifikáty

Před vydáním certifikátu si uživatel v občanském průkazu musí nastavit hodnoty kódů PUK, PIN a QPIN. Nastavení provede na na svém PC, pomocí aplikace eObčanka - správce karty.
Pro nastavení hodnoty PUK musí být v občanském průkazu nastavena hodnota IOK.

Pořízení certifikátu

Certifikát do občanského průkazu může vydat kvalifikovaný poskytovatel služeb vytvářejících důvěru, zjednodušeně kvalifikovaná certifikační autorita. V České republice provozuje svou činnost několik kvalifikovaných certifikačních autorit. Lze také zvolit kvalifikovaného poskytovatele z jiného státu EU. U některých z těchto poskytovatelů může uživatel požádat o vydání certifikátu do občanského průkazu.

Jednotlivé certifikační autority se mohou lišit:

  • způsobem, jakým vydávají certifikáty
  • podmínkami, které musí žadatel o certifikát splnit
  • poplatky za vydávaní certifikátů

Uživatel by si měl prostudovat podmínky pro vydávání certifikátů od jednotlivých certifikačních autorit a rozhodnout se, u které certifikační autority o certifikát požádá. Postup vydání certifikátu se může pro jednotlivé certifikační autority lišit. Technicky ale platí, že vydání certifikátu má tyto fáze:

  • Vytvoření žádosti o certifikát (v průběhu přípravy žádosti se generuje klíčový pár: soukromý + veřejný)
  • Ověření totožnosti žadatele (na základě osobních dokladů)
  • Vydání certifikátu

V případě kvalifikovaných certifikátů se klíčový pár generuje vždy v čipu občanského průkazu. Generování klíčového páru je třeba provádět na PC, na kterém je instalován software eObčanka (používají se ovladače karty). Proces generování klíčů schvaluje držitel občanského průkazu zadáním PIN. Vytvoření žádosti o kvalifikovaný certifikát navíc uživatel schvaluje zadáním QPIN. Vydaný certifikát si uživatel importuje do čipu občanského průkazu – buď pomocí nástroje, dodaného certifikační autoritou, nebo pomocí aplikace eObčanka – Správce karty.

Používání certifikátů

Uživatel si certifikát obvykle pořizuje za nějakým účelem: potřebuje elektronicky podepisovat nebo se někam certifikátem přihlašovat. Aby to mohl provádět, potřebuje – kromě certifikátu v občanském průkazu – také aplikaci, pomocí níž bude elektronicky podepisovat, nebo do níž se bude přihlašovat. Takovou aplikaci by měl dodat (či alespoň doporučit) provozovatel systému, pro který uživatel potřebuje elektronicky podepisovat nebo do nějž se potřebuje uživatel přihlašovat. Aplikace, v nichž lze elektronicky podepisovat nebo do nichž se lze přihlašovat, nejsou dodávány s občanským průkazem.

V praxi existuje řada jak komerčních, tak volně dostupných aplikací, v nichž lze certifikáty z občanského průkazu použít:

  • Pomocí e-mailových klientů lze elektronicky podepisovat odesílané e-maily. Příjemce zprávy může podpis zkontrolovat a ověřit tím původce zprávy. Bude pak mít jistotu, že odesílatelem zprávy je právě ta osoba, jejíž osobní údaje jsou uvedeny v certifikátu.
  • Pomocí kancelářských aplikací lze elektronicky podepisovat dokumenty, např. ve formátu PDF nebo DOC(X). Příjemce podepsaného dokumentu může podpis kdykoli ověřit a prokázat, že autorem je osoba, jejíž osobní údaje jsou uvedeny v přiloženém certifikátu.
  • Pomocí webových prohlížečů se lze přihlašovat k webovým stránkám (tzv. SSL autentizace). Provozovatel webových stránek má po přihlášení jistotu, že s ním (přes internet) komunikuje osoba, jejíž údaje jsou uvedeny v předaném certifikátu.

Kromě komerčně dostupných aplikací může vznikat celá řada informačních systémů “na míru” - za specifickým účelem. Provozovatel takových systémů může využít certifikátů v občanském průkazu pro elektronické podepisování či přihlašování (autentizaci).

Ovladače čipu občanského průkazu

Pokud mají být na nějakém zařízení (PC či mobilním telefonu) používány certifikáty z občanského průkazu, musí být na tomto zařízení instalovány kryptografické ovladače čipu občanského průkazu. Ovladače se:

Aplikace třetích stran pak prostřednictvím ovladačů využívají kryptografické funkce občanského průkazu: vytvoření elektronického podpisu, přihlášení atd.

Ovladače občanského průkazu se starají také o zobrazování oken pro zadání PIN či QPIN. Aplikace třetích stran se proto nemusí starat o schvalování operací s občanským průkazem – tuto činnost zajistí příslušný ovladač.

Ovladače občanského průkazu hrají také významnou roli při správě certifikátů v čipu. Pomocí ovladačů mohou volající aplikace požádat o vygenerování páru klíčů, importovat do čipu klíč či certifikát. Díky standardizovaným ovladačům mohou např. certifikační autority integrovat občanský průkaz do svých procesů a aplikací pro vydání certifikátu.

Počet klíčů a certifikátů

Do občanského průkazu lze najednou uložit až 16 klíčů s certifikáty. Prostor čipu je pro uložení klíčů a certifikátů rozdělen na kontejnery, do každého lze uložit jeden klíč a k němu jeden certifikát.

  • 4 pozice pro klíče kvalifikovaných certifikátů, klíče pro algoritmus RSA. Klíče délky 2048 bitů. Klíče do těchto kontejnerů nelze importovat ze souboru, je nutno klíče generovat v čipu.
  • 4 kontejnery pro klíče kvalifikovaných certifikátů, klíče pro algoritmus ECC. Klíče délky 256, 384 či 521 bitů. Klíče do těchto kontejnerů nelze importovat ze souboru, je nutno klíče generovat v čipu.
  • 4 kontejnery pro klíče autentizačních certifikátů, klíče pro algoritmus RSA. Klíče délky 2048, 3072 či 4096 bitů. Klíče lze v těchto kontejnerech generovat nebo je lze do kontejnerů importovat ze souboru.
  • 4 kontejnery pro klíče autentizačních certifikátů, klíče pro algoritmus ECC. Klíče délky 256, 384 či 521 bitů. Klíče lze v těchto kontejnerech generovat anebo je lze do kontejnerů importovat ze souboru.

Většina kvalifikovaných certifikačních autorit dnes používá kryptografický algoritmus RSA. Držitelé občanských průkazů tedy v dohledné době budou využívat především certifikáty a klíče pro algoritmus RSA. (Pozice pro klíče a certifikáty algoritmu ECC zatím zůstanou nevyužity.) Ve střednědobém horizontu se očekává relativní slábnutí algoritmu RSA. Předpokládá se, že certifikační autority budou na tuto situaci reagovat přechodem na modernější algoritmus ECC, založený na eliptických křivkách. Občanský průkaz je na tuto (budoucí) změnu připraven. Držitelé nebudou muset pro využívání certifikátů s kryptografií ECC vyměňovat své občanské průkazy. Jakmile budou certifikační autority připraveny, mohou využívat pozice pro klíče a certifikáty s kryptografií ECC.

Uživatel může počet aktuálně uložených certifikátů zjistit pomocí aplikace eObčanka – Správce karty. Správce karty pomůže uživateli nejen zobrazit informace, ale také např. smazat z čipu nepotřebné certifikáty a klíče. (Např. expirované certifikáty pro elektronický podpis není třeba v čipu uchovávat, je třeba nahradit je novými a původní certifikáty – i s klíčem – z čipu vymazat.)