Dajbych.net


Jak se podepisovat elektronicky?

, 17 minut čtení

eidas logo

Úřady nemají ve zvyku zveřejňovat informace tak, že je dají na své webové stránky, ale tím, že je vytištěné na papíře vylepí na vstupní dveře. Může se vám tak snadno stát, že si na webu zjistíte, kdy má úřad otevřeno, a když tam dorazíte, zjistíte, že má zavřeno. Je proto praktičtější podávat a podepisovat dokumenty elektronicky. Technicky to je poměrně komplikované, a jak to zpravidla bývá, ve státním provedení ještě komplikovanější.

Co to je

Elektronický podpis (pro lidi mimo IT) znamená kde co. V podání finanční správy se může jednat třeba jen o pouhou komprimaci dat. Na podatelnu nejdete s vyplněným formulářem, ale s jeho komprimovanou podobou. Přesněji s jednoznačným identifikátorem elektronicky vyplněného a podaného formuláře. Celý proces elektronizace má vlastně 4 stupně, přičemž všechny z nich běží současně. Je to podobné, jako souběžná podpora operačních systémů Windows 7, 8, 8.1 a 10.

Intuitivně si můžete ušetřit spoustu práce tím, že přeskočíte 2. a 3. krok. Nicméně agilní přístup je dnes moderní. Zdá se, že jen zasvěcení lidé ví, proč se nedělá servis letadel za letu, ale vždy na zemi v hangáru, kde provádění prací nemůže ohrozit žádné cestující.

Osobním certifikátem se dají podepisovat emaily či dokumenty. Podpis je důvěryhodný natolik, nakolik je důvěryhodná certifikační autorita (CA), respektive všechny certifikační autority v řetězci. Od podpisů, které bude uznávat stát, bych čekal, že osobní certifikáty pro státní účely bude vydávat státní CA. Takto to však postavené není. Stát některé již zavedené certifikační autority považuje za kvalifikované (QCA). Ty vydávají kvalifikované osobní certifikáty. Zatímco běžným certifikátem se vytvářejí běžné elektronické podpisy, kvalifikovaným certifikátem se vytvářejí kvalifikované elektronické podpisy. U státní správy s běžným (komerčním) elektronickým podpisem neuspějete. (Nebo jednoduše pro geeky – v operačním systému státní správy jsou nainstalovány jen certifikáty kvalifikovaných certifikačních autorit.)

Je národní tradicí, že Česko musí mít vždy něco extra. Jak asi víte, certifikát může mít různá rozšíření. Nás zajímají dvě:

Je asi naivní myslet si, že naprosto každý vydaný kvalifikovaný certifikát v EU bude mít IK MPSV, že ano. Podle nařízení EU tedy teoreticky státní správa nesmí odmítnout žádný elektronický podpis certifikátem od QCA z kteréhokoli členského státu s rozšířením QSCD. Národní rozšíření, kterým IK MPSV, nejsou povinná. V praxi však považuji za naprostou ztrátu času dožadovat se něčeho takového.

Názvosloví

Aby toho nebylo málo, Finanční správa používá pro změnu pojem zaručený elektronický podpis (ZAREP). Je to podpis vytvořený běžným (komerčním) osobním certifikátem, který je rozšířen o IK MPSV. (Ten samý pojem však používá i EU, ale myslí se tím něco úplně jiného.) Pokud je podpis vytvořený akreditovanou (kvalifikovanou) certifikační autoritou, jedná se o kvalifikovaný elektronický podpis (ne však z pohledu EU). Pokud je navíc kvalifikovaný certifikát rozšířen o IK MPSV, jedná se o uznávaný elektronický podpis. Aby byl podpis kvalifikovaný i z pohledu EU, musí mít certifikát příznak uložení soukromého klíče v kvalifikovaném prostředku (QSCD). Pokud ho nemá, jedná se (z pohledu EU) o (jiný) zaručený elektronický podpis (založený na kvalifikovaném certifikátu). Pokud ho má, jedná se o (skutečný) kvalifikovaný elektronický podpis (QES – Qualified Electronic Signature).

V čem je zakopaný pes

K problematice související s eObčankou je sepsáno mnoho kvalitních článků. Za sebe bych jen uvedl, že jakýsi příznak, kterého si všímáte jen když víte, že ho máte hledat, dělá rozdíl mezi tím, jestli dostanete skutečně certifikát, se kterým můžete vytvářet kvalifikované elektronické podpisy, nebo pouze zaručené elektronické podpisy, založené na kvalifikovaném certifikátu. Kvalifikovaný elektronický podpis totiž musí být uložený na zařízení, ze kterého nejde exportovat privátní klíč. A to znamená, že toto zařízení musíte použít ve chvíli, kdy vytváříte žádost o certifikát. Podle logiky EU totiž může kvalifikované elektronické podpisy vytvářet pouze Qualified Signature Creation Device (QSCD). Vyplývá to z nařízení EU č. 910/2014 (eIDAS). Takovým zařízením může být (ne však pouze) eOP.

Celé to na mě působí jako marketingový trik na občany. Myslím si, že vytváření kvalifikovaných certifikátů by mělo být možné jen s příznakem uložení na QSCD a také že by měl být každý kvalifikovaný certifikát vystavený tuzemskou certifikační autoritou rozšířený o IK MPSV. Jinak můžete obdržet kvalifikovaný certifikát, který nebude pro české úřady platný (ač je to v rozporu s právním řádem EU).

K čemu to je

Podnikající fyzická osoba zvyklá proplouvat byrokratickou džunglí jako ledoborec ledovým příkrovem to má jednoduché. Té nepřijde nic zvláštní. (Ač je to vlastně smutné.) Nepodnikající fyzické osobě bych vřele doporučil zajít na úřad, byť vzdálený několik kilometrů, klidně pěšky. Bude to mít rychlejší. Elektronický podpis se hodí, nebo je dokonce k některým úkonům povinný. Zdravotní pojišťovny vyřešili elektronické podání sami už dávno a ČSSZ si vystačí s eOP (občanským průkazem s elektronickým čipem) i bez kvalifikovaného osobního certifikátu.

S úřady jde také komunikovat pomocí datových schránek. Vzhledem k tomu, že až soud musel nařídit zveřejnění jejich bezpečnostního auditu a vzhledem k tomu, že Česká pošta do těchto schránek odesílá spam i vzhledem k tomu, že při programování klienta pro ně se mi při používání jejich API v HTTP odpovědi objevovaly chybové hlášky z interní databáze, nesvěřil bych datové schránce ani rezervaci lístku do kina, natožpak komunikaci s úřady. Nehledě na to, že jakmile ji jednou máte, máte povinnost ji používat i k jiným úkonům (například daňovému přiznání), které dříve bylo možné vyřídit papírově v kamenné pobočce státní správy. A ještě k tomu schránku nelze zrušit. Naproti tomu takový certifikát vám prostě jednoho dne nakrásně expiruje a úřadu řeknete jen: „Hm, smůla. Máte mě tu na podatelně zas.“

Co budete potřebovat

Hardwarové vybavení

Občanský průkaz s elektronickým čipem, čtečku čipových karet, pár stovek na certifikát, tiskárnu, několik listů A4, propisku, emailovou adresu, podporovaný operační systém (většinou jsou podporované Windows, macOS a Linux) a hezké počasí na procházku do Czech POINTu (či jiné kvalifikované certifikační autority).

Relativně důležitý je správný výběr čtečky. Z hlediska technického je třeba, aby čtečka splňovala normu ISO/IEC 7816, podporovala protokol CCID a komunikační standard PC/SC. Na Windows chcete také zařízení, jehož ovladač je WHQL (Windows Hardware Quality Labs). V neposlední řadě je v dnešní době vhodné, aby ovladač fungoval v režimu Integrita paměti v Izolaci jádra v Zabezpečení zařízení v Zabezpečení Windows. Je také velice dobrý nápad mít zařízení, které má hardwarovou klávesnici pro zadávání pinů. To má svůj bezpečnostní důvod. Pokud bude váš operační systém napaden keylogerrem, nebude mu to nic platné. Pin, který zadáváte přímo do čtečky karet, totiž nevidí operační systém (pouze firmware čtečky) a tudíž ho nemůže odposlechnout libovolná aplikace, kterou máte zrovna spuštěnou (byť jen na pozadí). A o její instalaci vlastně nemusíte ani tušit.

Přeji vám hodně štěstí při hledání zařízení, které splňuje průnik všech bezpečnostních i technických požadavků. Za sebe mohu doporučit Gemalto IDBridge CT710 v kombinaci s Windows 10 verze 20H2 build 19042.630 (v čase psaní tohoto článku). Funguje mi i při zapnuté integritě paměti. (Měl jsem s tím problém jen když jsem tu integritu zapínal. Starší ovladače nebyly kompatibilní. Stačilo jen zařízení odinstalovat i s ovladači, zapnout integritu paměti, připojit zařízení znovu a nechat Windows Update dělat svoji práci.) Zařízení vidí Windows jako Ezio Shield PinPad. Ezio je název produktové řady Gemalta. To nedávno koupil Thales Group.

Softwarové vybavení

Aplikace eObčanka – identifikace slouží jako prostředek mezi webovým prohlížečem a ovladačem čtečky čipových karet (smart card reader). Je psaná v .NETu, což mě příjemně překvapilo. V Microsoft Store ji nenajdete, takže ji aktualizujete jak pitomci a musíte periodicky kontrolovat www vydavatele, jestli náhodou nevydal novější verzi. (Klasické přenesení odpovědnosti z poskytovatele služby na koncového uživatele.) Uživatelské rozhraní je pěkné. Za mě 4,5 hvězdiček z 5 (půl hvězdičky za to, že není v Microsoft Store).

Aplikace eObčanka – správce karty je z technického hlediska podobná. Slouží k ovládání eOP – zobrazení uložených certifikátů, jejich importu i mazání, změnu přístupových pinů a podobně. Pokud vaše čtečka podporuje hardwarové zadání pinu a máte správné ovladače, nezadává se pin přes tuto aplikaci, ale přes čtečku. Jak se dále dočtete, není to bohužel samozřejmost. Za mě jedno velké mínus za to, že když tato aplikace chce zadat IOK, na hardwarovou čtečku napíše, že chce zadat PIN. Po nějaké době si na to totiž zvyknete, a až po vás jiná aplikace bude chtít skutečný PIN, budete zadávat IOK. Občanku si tak můžete po třech neúspěšných zadání snadno zablokovat.

Podání žádosti

Podání žádosti (CSR – certificate signing request) je spojené s notnou byrokratickou omáčkou. Podle mého názoru úplně zbytečnou.

Tato část je specifická pro konkrétní certifikační autoritu. Já jsem si zvolil společnost PostSignum, protože jsem chtěl dát státu (a jeho státním společnostem) šanci zlepšit si u mě reputaci. Dopadlo to však s naprosto opačným efektem. Příště si raději připlatím a využiji jistě kvalitnějších služeb I.CA či eIdentity. Tento postup bych doporučil také uživatelům macOS, nebo těm, kteří používají svoji oblíbenou linuxovou distribuci, ať už je jakákoliv.

To hlavní, v čem se dá všechno úplně zpackat, je čtení návodů. Nesmíte se řídit návodem od PostSignum, ani se nesmíte řídit tím, jak vás navádí samotná aplikace iSignum. Pokud totiž při generování žádosti necháte zaškrtnuté pole Zálohovat privátní klíč a zároveň je vybrán kvalifikovaný prostředek, aplikace se vás zeptá, jestli chcete odeslat žádost i přes to, že nejde zálohovat privátní klíč. Dělá to dojem, že je záloha privátního klíče hrozně důležitá. Jenže ve skutečnosti se jedná právě o to, o co z bezpečnostního hlediska určitě nestojíte. Chcete mít z občanky QSCD. Správné nastavení je tedy toto:

I když to uděláte jinak, v reálu se nic neděje. České úřady to nepotřebují. Pro ně je kvalifikovaným certifikátem i certifikát bez příznaku uložení na QSCD, což je to, co dostanete, když klíč vygeneruje nikoliv tohoto zařízení, ale váš operační systém. Vlastně to nemusíte chápat jako bug, ale feature. Certifikát s geograficky omezenou platností je něco, co je v elektronickém světě skutečný unikát.

Pokud však nechcete být v zahraničí za blbce, je dobré mít vše správně. Stalo se mi totiž, že mi v Londýně nefungoval biometrický pas. Pravděpodobně proto, že byl vydaný před polovinou roku 2008 a elektronický čip v něm ještě neobsahoval digitální otisky prstů. Pokud vám totiž české úřady něco vydají, neznamená to ještě, že to splňuje standardy běžné ve vyspělých zemích.

Nezapomeňte si zažádat o IK MPSV. To se zase pro přehlednost vyplňuje jinde, a sice na listině Údaje pro vydání certifikátů. Pokud by váš certifikát IK MPSV neměl a privátní klíč by byl vygenerován na kvalifikovaném prostředku, měl byl být elektronický podpis teoreticky platný ve všech členských státech EU. Tedy i v Česku. Teoreticky. Když neuvažujeme státní implementaci, natož prováděcí předpisy, že ano.

Nezapomeňte také požádat o kvalifikovaný certifikát. Teoreticky by měl Finanční správě stačit komerční certifikát s IK MPSV, ale jiné státní úřady se mohou zase cítit předpisy EU více vázány a kvalifikovaný certifikát vyžadovat.

Každý vydaný certifikát se musí zveřejnit, jinak není důvěryhodný. Protože však z principu musí obsahovat vaše osobní údaje, potřebuje k tomu CA váš souhlas. Zajímavé však je, když ji ten souhlas nedáte. Co se stane pak, nikdo neví. Státní správa totiž musí akceptovat i takový podpis, který byl vytvořený certifikátem, který není veřejně dostupný.

Přestože je možné Smlouvu o poskytování certifikačních služeb uzavřít i na dobu neurčitou, vyhnul bych se tomu. Když každý certifikát jednou expiruje, tak proč by smlouvy neměly?

Narozdíl od I.CA nebo eIdentity, u PostSignum nejde vygenerovat a poslat žádost přes webový prohlížeč. PostSignum inzeruje proprietární aplikaci jako tu nejsnazší možnost. Předem upozorňuji, že to první, co budete muset po spuštění této aplikace udělat, je zjistit, kam se automaticky nainstalovala, změnit její chování tak, aby DPI řídil OS a pak ji znovu spustit, abyste v ní byli schopni něco přečíst. Toto umístění si někam poznamenejte, protože po jejím použití ji ze systému jednoduše neodinstalujete. Nemá totiž klasický Microsoft Windows Installer, ale něco proprietárního, co kamsi kopíruje jakési soubory, které se pak spouští.

Nemožnost podat žádost přes webový prohlížeč přitom nechápu, protože je to možnost z principu multiplatformní a CA tak nemusí programovat obslužné aplikace pro všechny myslitelné operační systémy (Windows, macOS, Linux) v kombinaci se všemi možnými instrukčními sadami (x86, x86-64, ARM, ARM64). To máte celkem 12 kombinací, na kterých si musíte ohlídat funkčnost kryptografických knihoven. Paráda. Dočkáme se v budoucnu podpory architektur Power ISA či RISC-V? Nevím. Tuším ale, že Chromium na ně bude portované mnohem dříve.

Prý je ještě „lepší“ možností vygenerovat si žádost sám a donést ji na poštu na úložišti s USB sběrnicí (od typu použité paměti lidově nazývaného jako flashka). Pokud tak učiníte, použitou flashku rovnou vyhoďte. Po návratu z pošty není bezpečné ani její připojení k operačnímu systému za účelem zformátování. Leda že byste vlastnili speciální hardware, který neumí nic jiného než formátování flashek. Pokud se domníváte, že přeháním, přečtěte si, čím byl Stuxnet.

Počítačovou síť České pošty totiž nelze považovat za bezpečnou prostě už jen z toho důvodu, že je vůbec možné k počítači v její síti připojit flashku odkudkoli zvenčí. Situace je možná vážnější, než si někteří lidé připouští.

Instalace certifikátu

Certifikát s příznakem uložení na QSCD

K importu certifikátu od QCA (veřejná část certifikátu bez privátního klíče) jde použít eObčanka – správce karty. Nejprve si ji musíte přepnout do rozšířeného zobrazení a poté můžete k již vygenerovanému privátnímu klíči importovat vystavený certifikát.

Pokud jste vygenerovali žádost pomocí aplikace iSignum, stačí v ní po převzetí certifikátu kliknout na tlačítko Stažení certifikátu, poté na *Zkontrolovat vydané certifikáty *a nově nalezený certifikát na eOP nainstalovat touto cestou. Je to vlastně hodně snadné a pokud certifikát jen obnovujete, vygenerování nového certifikátu tímto způsobem zabere jen minutu. Musíte však mít s Českou poštou platnou smlouvu o poskytování certifikačních služeb.

Certifikát k privátnímu klíči uloženému ve Windows

Pokud vám stačí mít certifikát uložený ve Windows, stačí ho jen nainstalovat. Je však lepší mít certifikát na eOP, protože to zaručí, že bude chráněn dalším heslem a bude přístupný pro operační systém jen po dobu, kdy je eOP fyzicky ve čtečce.

Přesun privátního klíče z Windows do eOP je velice snadný. Aplikace iSignum to zvládne za vás. Stačí export privátního klíče z Windows do souboru (formát PKCS#12, přípona souboru PFX) a jeho následný import do eOP.

Alternativně můžete použít pro export mmc.exe, přidat modul snap-in Certifikáty pro uživatelský účet, najít váš certifikát a ten exportovat i s privátním klíčem. K importu můžete použít aplikaci eObčanka – Správce karty.

Po úspěšném importu nezapomeňte certifikát z Windows smazat. Myslím tím jak odstranění certifikátu z úložiště certifikátů ve Windows, tak i odstranění souboru s privátním klíčem (samozřejmě ne jeho pouhé přesunutí do koše).

Pointa všeho je mít privátní klíč v zařízení, odkud už nejde exportovat. Nicméně zase ho musíte v aplikaci zaregistrovat do operačního systému. To je z toho důvodu, aby měl operační systém vůbec přehled o tom, jaké certifikáty jsou hypoteticky dostupné. To se dělá v aplikaci eObčanka – Správce karty.

Když to uděláte, je trošku matoucí, že se pak Windows tváří jako když je privátní klíč uložený na pevném disku vašeho PC (což je hrůzostrašná představa). Ve skutečnosti ale není. Pokud si ho však nějaká aplikace vyžádá, je tento požadavek přesměrován na příslušný hardware (tj. kvalifikovaný prostředek). Nicméně protože je tento prostředek připojen většinou přes USB, může k němu aplikace přistupovat přímo a úložiště certifikátů ve Windows obejít. Oba způsoby jsou možné. V praxi je tedy zaregistrování certifikátu do Windows potřeba jen kvůli tomu, aby mohly elektronický podpis používat i ty aplikace, které umí číst certifikáty jen z úložiště certifikátů ve Windows. Takovou aplikací je například Microsoft Outlook.

Použití v aplikacích Daňového portálu Finanční správy

Pokud jste chtěli vůči finanční správě elektronicky podepisovat, až do 1. 9. 2020 jste museli mít Internet Explorer a doplněk ActiveX. Podpis jste realizovali otevřením souboru s vaším privátním klíčem přímo v prohlížeči. Podpora tohoto prohlížeče však skončí k 9. 3. 2021. Patrně i z tohoto důvodu vydala Finanční správa aplikaci ePodpisFS. Na první pohled by možná bylo předmětem údivu proč až teď, ale ve srovnání s Jižní Koreou na tom nejsme zas tak špatně. I ona se totiž zbavila závislosti jejich digitálního ID na doplňku postaveném na ActiveX až v tomto roce. Nicméně vzhledem k tomu, že ActiveX je z roku 1996, je to minimálně pozoruhodné.

Již umiňovaná aplikace ePodpisFS je psaná v Javě. Po jejím spuštění je ihned k dispozici její test. Kliknutím na tlačítko Spustit test proběhne hledání těch osobních certifikátů ve vašem operačním systému, které jsou kvalifikované a nejsou expirované či zneplatněné. Během testu se dokonce kontroluje, jestli je současná verze aplikace stále aktuální.

Aplikace má normální instalátor, takže jde i normálně odinstalovat. Verze pro Windows je zatím jen 32bitová, i když odstavec s podporovanými operačními systémy tvrdí něco jiného. Zajímalo by mě, kdy se dočkáme verze pro ARM64. Apple představil svůj procesor M1 předevčírem a Microsoft svůj SQ1 už více jak před rokem. Myslete tedy při výběru svého počítače na to, že někdy také můžete chtít platit daně.

Do Daňového portálu se jde pomocí této aplikace a kvalifikovaného certifikátu i přihlásit. Potíž je však v tom, že portál nezná váš IK MPSV. Je škoda, že si portál sám nehlídá seznamy vydaných kvalifikovaných certifikátů. Věděl by z nich, které IK MPSV má spárovat se svými uživatelskými účty. Nejprve je nutné se do Daňového portálu přihlásit kliknutím na Přihlásit NIA. Což znamená přes Portál národního bodu pro identifikaci a autentizaci.

Přihlašování a podepisování jsou dvě naprosto odlišné operace. Když už ale máte čtečku čipových karet a OP s kontaktním čipem, můžete se přes NIA přihlásit jím. K tomu certifikát potřeba není. Ten je potřeba jen k podpisu.

Podání a podepsání písemnosti je možné učinit několika způsoby. Jeden z nich je:

Aplikace už vás pak navede. Nejprve vyberete druh úložiště (operační systém, nebo kvalifikovaný prostředek) a poté konkrétní certifikát. Další kroky jsou závislé na konkrétním hardwaru, nicméně zadávání PINu přímo do čtečky funguje dle očekávání.

Pokud je PIN (a tentokrát se tím myslí opravdu PIN, nikoliv IOK) zadaný správně, čtečka vydá aplikaci ePodpisFS privátní klíč k certifikátu. Jím pak dokument podepíše a odešle.

Shrnutí

Proč nemůže stát vydat občanský průkaz (OP) s již nainstalovaným kvalifikovaným certifikátem s IK MPSV s příznakem uložení na bezpečném prostředku (se zakázaným exportem privátního klíče), který by měl datum expirace shodné s koncem platnosti průkazu? Vždyť naprostá většina kryptografických čipových karet dokáže generovat privátní klíč v čipu samotném. Fyzicky k tomu může docházet v momentě, kdy si OP vyzvedáváte.

Zálohování privátního klíče, tedy ani jeho export, by nemusel být zapotřebí. Kdybyste ztratili průkaz, nevadilo by to. Místo obnovení certifikátu ze zálohy byste prostě měli certifikát nový. A jako bonus by mohl úřad hned při nahlášení ztráty OP automaticky zneplatnit certifikát, který je na něm uložený.

Mít aplikace na Microsoft Storu je z bezpečnostního hlediska dvousečné. Sice by se aplikace aktualizovaly automaticky, na druhou stranu by se musel Microsoft zavázat, že je ze storu neodstraní bez souhlasu vlády. Protože kdyby se tak stalo, přestaly by fungovat všechny elektronické podatelny. Obdobné by to bylo u Applu a jeho Mac App Storu. Na druhou stranu verze těchto aplikací pro Linux by fungovaly pořád, takže by si lidé v případě nutnosti nainstalovali Linux a jeli by dál. Proto si myslím, že je podpora Linuxu důležitá. Bez vládních aplikací pro Linux není možné, aby se objevily i v obchodech aplikací svázaných s komerčním proprietárním operačním systém.

Závěrem

Elektronické podpisy nejsou ani zdaleka takové, jaké by měly být. Na celé věci mi přijde nejtěžší obstarat si kvalifikovaný certifikát a bezpečná manipulace s jeho privátním klíčem. Kdybyste ho obdrželi rovnou s OP, kde vaši totožnost ověřují tak jako tak, bylo by vše mnohem jednodušší. Aplikace eObčanka a ePodpisFS mi přijdou dostatečně vyspělé a pokud půjde vývoj současným tempem dál, třeba bude jednou stát ve spolupráci s EU placení daní víc zjednodušovat než znepříjemňovat. Současné přihlašování osobním certifikátem je však z doby kamenné, možná i za hranou zákona. V certifikátu totiž není uvedeno, že je možné ho takto používat. Jak chce Finanční správa chtít po daňových poplatnících, aby neobcházeli zákony, když to sama dělá? Navíc z hlediska toho, co je na internetu běžné, to je naprosto nedůvěryhodné. Osobním certifikátem se totiž běžně přihlašuje již ve fázi navazování spojení se serverem pomocí TLS (transport layer security). Norma ke klientským certifikátům je z roku 2008. Funguje všude. Proč ale dělat věci jednoduše, když to jde i složitě?