Komentář – S bezpečností je to těžké, a to nejenom ve světě IT. Protože čím důkladnější a „silnější“ bezpečnostní opatření zavádíte, tím vás to více stojí. Jak na nákladech, tak obvykle i na jednoduchosti používání. A ve světě IT i na znalostech a dovednostech, které k bezpečnému používání nejrůznějších technologií musí mít jejich autoři, správci i uživatelé.
Na druhé straně bezpečnost potřebujete a bezpečnostní opatření jednoduše zavádět musíte. Protože jinak si „protistrana“ na vašem řešení dříve či později přímo smlsne. Tedy spíše dříve než později, vzhledem k tomu, jak rychle eskalují aktivity nejrůznějších útočníků, ale i choutky všelijakých podvodníků či pouze nepřejících individuí.
Proto je vždy nutné hledat vhodné „vyvážení“: na jednu misku vah dát to, co je ve hře a jaká jsou rizika, a na druhou přísnost a náročnost bezpečnostních opatření i požadavků na všechny ty, kteří s příslušným řešením přijdou do styku. Jenže: teorie je hezká věc, zatímco praxe může být jiná a může ji významně ovlivnit řada dalších faktorů. Třeba snaha minimalizovat náklady či ušetřit si práci. Nebo i vlastnosti technologické platformy, zvolené pro realizaci konkrétního řešení.
Co je Národní elektronický nástroj a co je ve hře?
Stejné dilema kolem bezpečnosti museli řešit i autoři tzv. Národního elektronického nástroje, zkratkou NEN. Pokud nevíte, oč se jedná, pak vězte, že je to jakési ultimátní řešení pro oblast veřejných zakázek, které by v celé veřejné správě mělo nahradit všechna jiná, dosud používaná řešení (povinně od 1. 1. 2016).
Vlastně jde o určitou platformu, na které se setkává poptávka s nabídkou: z jedné strany zde zadavatelé zadávají své poptávky (vypisují veřejné zakázky) a z druhé strany potenciální dodavatelé podávají své nabídky. Vše pochopitelně již jen v elektronické podobě. A aby to mělo potřebnou právní relevanci, musí být všechny relevantní dokumenty a úkony svými autory elektronicky podepisovány. No a právě zde se dostáváme k avizovanému aspektu bezpečnosti.
U elektronického podepisování je největším bezpečnostním rizikem to, že se někdo jiný dostane k vašemu soukromému klíči. Protože právě tento soukromý klíč je tím, co je unikátní a charakteristické jen pro vás jako podepisující osobu – a co je nezbytnou „ingrediencí“ pro vytváření elektronického podpisu.
Jinými slovy: když něco elektronicky podepisujete, potřebujete k tomu svůj soukromý klíč. A z toho, že při vytváření podpisu byl použit právě váš soukromý klíč, je pak odvozováno to, že jste se podepsali právě vy. Že jde o váš podpis a že právě vy nesete všechny důsledky takového podpisu.
Jak asi tušíte, soukromý klíč si musíte chránit jako oko v hlavě a nesmíte ho poskytnout komukoli jinému. Či jen někomu jinému sdělit jeho hodnotu, protože soukromý klíč je ve své podstatě jen (jedno hodně velké) číslo. Protože jinak by se ten, kdo má váš soukromý klíč (kdo zná jeho hodnotu), mohl platně elektronicky podepisovat místo vás. Což si jistě nepřejete.
A mimochodem: to, abyste si soukromý klíč chránili jako oko v hlavě, drželi ho výhradně pod svou kontrolou a nezpřístupňovali komukoli jinému, po vás nepožaduje jen zdravý rozum: vyžaduje to i zákon (o elektronickém podpisu), stejně jako podmínky certifikačních autorit, které vám k vašemu soukromému klíči vydávají tzv. kvalifikovaný certifikát. Ten je nutný v případech, kdy váš elektronický podpis má mít právní relevanci (být obdobou vlastnoručního podpisu na listinném dokumentu).
V praxi se proto musí se soukromým klíčem nakládat velmi obezřetně. Vhodným a jednoznačně doporučovaným (byť zatím ne formálně vynucovaným) řešením je použití čipové karty, či tzv. USB tokenu. Tedy zařízení, ve kterém je soukromý klíč uzavřen tak, že jej nelze „vyndat“ (získat jeho hodnotu). Veškerá manipulace se soukromým klíčem, včetně jeho počátečního vygenerování, se totiž odehrává uvnitř čipové karty, resp. USB tokenu, a soukromý klíč kartu či token skutečně nikdy „neopouští“. Nicméně něco to stojí – čipová karta či USB token nejsou zdarma a mohou přijít i na několik (málo jednotek) tisíc korun.
Existuje ale i levnější, zato méně bezpečné řešení: nemít soukromý klíč na čipové kartě či tokenu, které stačí „zasunout“ do příslušného rozhraní či čtečky jen na dobu nezbytně nutnou, ale nechat soukromý klíč trvale nahraný „přímo v počítači“, a to v tzv. systémovém úložišti místního operačního systému.
To je místo, které je k takovémuto uchovávání (certifikátů i odpovídajících soukromých klíčů) určeno a kde soukromý klíč může (ale také nemusí) být chráněn heslem. Je to ale čistě softwarové řešení, které není zdaleka tak bezpečné jako hardwarové řešení (s čipovou kartou či USB tokenem). Případný útočník jej může prolomit, a stejně tak se může dostat i k heslu, pokud je jím soukromý klíč vůbec chráněn. Ale ke zneužití soukromého klíče stačit může i něco podstatně prozaičtějšího: když si k témuž počítači sedne nějaký jiný uživatel...
Dalo by se proto očekávat, že u něčeho takového, jako je NEN (Národní elektronický nástroj), kde může jít o nabídky a poptávky v opravdu hodně vysokých hodnotách, bude jednoznačně požadováno právě a pouze elektronické podepisování s využitím čipové karty či USB tokenu. Mimochodem, za dva roky to již bude explicitně vyžadovat nedávno schválené unijní nařízení jménem eIDAS, které nahradí (nejenom) tuzemskou právní úpravu elektronického podpisu.
Realita NENu, který byl nedávno (5. srpna 2014) spuštěn do otevřeného zkušebního provozu, je ale jiná. Možnost použití čipové karty (či USB tokenu) se v NENu teprve připravuje. A jako výchozí bylo naopak zvoleno takové řešení, nad kterým se lidé kolem bezpečnosti a elektronického podpisu nutně chytají za hlavu, aby si ji nevykroutili: NEN totiž standardně chce, aby mu jeho uživatelé svěřili svůj soukromý klíč. Uživatelské příručky NENu dokonce podrobně popisují, jak soukromý klíč „vyrvat“ ze systémového úložiště počítače (tzv. jej vyexportovat, což z čipové karty / tokenu z principu ani nejde), jak jej uložit do souboru a tento soubor následně aplikaci NEN předat (i s heslem, kterým si pro ochranu soukromého klíče zvolili).
Nejenže již pouhý export soukromého klíče a jeho uchovávání v jakémkoli souboru (který musí být někde uložen) je významným bezpečnostním rizikem. Stejným, ne-li větším rizikem je i samotné poskytnutí soukromého klíče aplikaci NEN. To je v ostrém rozporu nejenom se zdravým rozumem, všemi pravidly bezpečnosti i požadavky zákona a certifikačních politik. Je to dokonce i ve sporu se zadávací dokumentací samotného NENu, která požaduje vytváření samotného podpisu mimo aplikaci NEN a zdůvodňuje to zcela pragmaticky a zcela správně: „Uživatel vám přeci nesvěří svůj soukromý klíč“.
Přesto NEN požaduje právě to, aby mu jeho uživatelé svůj soukromý klíč výše popsaným způsobem svěřili. Přesněji: je to varianta elektronického podepisování, kterou NEN sám prezentuje jako výchozí. Při nedávném spuštění svého otevřeného zkušebního povozu tuto variantu („svěřte nám svůj soukromý klíč“) popisoval jako jedinou. Nejspíše proto, že použitá komponenta pro elektronické podepisování (na platformě Silverlight) standardně nemá přístup k certifikátům a soukromým klíčům umístěným v systémovém úložišti počítače – a proto požaduje buď určitou úpravu, nebo přímo samotný soukromý klíč.
Teprve následně, zřejmě v reakci na kritické připomínky od širší veřejnosti, autoři NENu trochu upravili svou uživatelskou dokumentaci. Řekli, jak je možné využít soukromé klíče uložené v systémovém úložišti počítače, a zveřejnili utilitu, která upraví komponentu pro elektronické podpisování v rámci aplikace NEN tak, aby s nimi dokázala pracovat.
Stále ale zůstali u toho, že „výchozí možností“ je ona varianta s přímým poskytnutím soukromého klíče. Tedy varianta, o které – alespoň podle mého názoru – neměli vůbec ani uvažovat. Natož ji implementovat a dodnes prezentovat jako výchozí.
Jiří Peterka