Ověření elektronického podpisu Platanus - teorie

Ověření elektronického podpisu Platanus - teorie

Dostali jste ode mne oficiální elektronický dokument (fakturu, smlouvu, dokumentaci projektu apod.), otevřeli jste jej a vyskočilo na vás okénko, které vám sděluje cosi o neplatném elektronickém podpisu? Nevíte, co s tím — nikdy jste nic takového snad ani neviděli? Tento zápisek vám pomůže pochopit, co se děje.

Pokud jste ovšem „v obraze“ a jen hledáte přesný postup, můžete rovnou přeskočit na další díl.

Čte-li se vám lépe tištěný text, připravil jsem pro vás ucelený dokument signed-Elektronicky_podpis_Platanus.pdf (270 kB) s textem tohoto článku, na kterém si rovnou můžete elektronický podpis také vyzkoušet.

K čemu to je

Obyčejné papírové dokumenty, které ale mají mít určitou váhu, jednoduše opatřujeme naším vlastnoručním podpisem. Tím je k dokumentu (většinou) nezpochybnitelně připojena identita toho, kdo dokument podepsal, tj. znamená to: ano, byl(a) to on(a)! Můžeme se sice pokoušet podpis napodobit nebo jej různě kopírovat na upravený dokument, důkladná analýza by nás ale měla odhalit.

Ve světě elektronických dokumentů je vše složitější. Elektronické soubory jsou jenom shluky jedniček a nul, uspořádaných v nějakém formátu. Pro znalce není až tak těžké takový formát pochopit a dokument pozměnit (upravit třeba číslo konta na faktuře)...

A je tu další problém: odkud ten dokument přišel? Mohl jsem vám jej doručit osobně na disketě, ale to dnes už dost těžko, mnohem pravděpodobněji vám přišel emailem. Nemohl ten email někdo po cestě zachytit a upravit přílohu? Ale jistěže mohl! Email není žádný zaručený komunikační kanál — vy snad víte, kdo vám posílá spamy?

Shrňme si to: obyčejné elektronické dokumenty v dnešní době nemůžeme brát moc vážně — nemáme jistotu, že jej opravdu psal ten, o kom si to myslíme, ani nemůžeme vědět, jesti nebyl někdy během své existence pozměněn.

A právě proto byl vymyšlen koncept elektronického podpisu. Způsobů jeho praktické realizace se vynořilo hodně, tím v současnosti nejrozšířenějším ale je tzv. elektronický podpis založený na infrastruktuře veřejných klíčů (tenhle hrozivě složitý název zde nebudu příliš rozebírat a omezím se, stejně jako v celém článku, jen na takové detaily, které umožní základní pochopení věci).

Ať už ta slova znamenají cokoliv, praktickým důsledkem je to, že dokument, který je opatřen takovýmto typem podpisu, a jehož podpis je při ověření platný, dává příjemci jistotu v následujících věcech:

  • dokument podepsal člověk, jehož personálie jsou uvedeny v informacích připojených k podpisu (v tzv. osobním certifikátu),
  • od té doby, co byl dokument podepsán, nebyl žádným způsobem změněn,
  • (trochu méně podstatná vlastnost:) dokument zaručeně existoval někdy v době, po kterou je certifikát platný (obyčejně 1 rok).

Jak to funguje?

Poté, co jste si přečetli předchozí odstavec, si teď možná říkáte: no dobrá, dejme tomu, že mám jistotu, že dokument podepsala osoba, která je uvedená v certifikátu připojeném k podpisu, ale jak mám vědět, kdo to doopravdy je? — tedy že jde o konkrétní osobu – Matouše Boráka, se kterým jsem dohodnutý na převzetí dokumentu?

Důvěra ve třetí stranu

Dostáváme se k hlavnímu principu elektronických podpisů založených na infrastruktuře veřejných klíčů, a tím je princip důvěry ve třetí stranu – tzv. certifikační autoritu. Podle tohoto principu při ověřování podpisu nemusíte důvěřovat přímo mně ani nikomu jinému konkrétnímu, ale právě certifikační autoritě.

Certifikační autorita je instituce, která lidem vydává osobní certifikáty, jakési elektronické občanky, a umožňuje ostatním lidem zjistit jejich platnost, a dělá to všechno vysoce kompetentním a důvěryhodným způsobem.

Osobní certifikát vydaný autoritou je pak vlastně jen určitý shluk informací o osobě, pro kterou byl vydán, tj. její jméno, adresa, u podnikatelů IČ a další údaje, jako např. doba platnosti certifikátu, apod. Certifikát sám o sobě je chráněn „razítkem“ autority a při jakémkoliv pokusu o „sáhnutí do jeho vnitřností“ okamžitě pozbývá platnosti. Je to ekvivalent běžné „papírové“ občanky, avšak dokonce nejspíš odolnější proti zfalšování.

Opravdu, získat takový oficiální certifikát není jen tak. Žadatel se musí osobně dostavit na certifikační autoritu, která si jej důkladně prověří (včetně předložení dvou fyzických dokladů totožnosti), vyplnit několik formulářů a vše několikanásobně stvrdit svým vlastnoručním podpisem. Celá tato „buzerace“ slouží k tomu, aby vydaný certifikát obsahoval opravdu ověřené informace a celý proces byl naprosto neprůstřelný.

Vazba certifikátu na podpis

Tak dobrá, zase možná pochybujete, řekněme, že věřím tomu, že k podpisu je připojený certifikát, který jednoznačně patří Matouši Borákovi. Jak ale můžu vědět, že ten certifikát k podpisu někdo nepodstrčil? Řeknu vám to.

Ještě jsme totiž nezmínili jednu kriticky důležitou součást certifikátů používaných v elektronických podpisech – veřejný klíč. Je to — co jiného — zase nějaký shluk bajtů, ale to nás v tuto chvíli nemusí vůbec zajímat, podstatné je, že veřejný klíč (jako každý kryptografický klíč) slouží ke kódování zpráv a především, že je jednoznačně a „nerozlučně“ spárován s tzv. privátním klíčem.

Co to znamená? Chytré matematické hlavy vymyslely speciální kódovací funkce, které pracují na principu ne jednoho, ale dvojice klíčů. Funguje to následovně: vezmu zprávu a zakóduji ji svým privátním klíčem. Výsledek předám příjemci, ten si někde sežene můj veřejný klíč a pomocí něj zprávu zase rozkóduje. A fígl je v tom, že se mu to nepovede ničím jiným než právě oním druhým klíčem z páru, veřejným klíčem.

Jenže jak to souvisí s elektronickým podpisem? Mám pocit, že už se to trochu rýsuje: chci-li podepsat nějaký dokument, vezmu svůj privátní klíč a pomocí něj dokument zakóduji do nějaké datové zprávy. Tu přibalím k dokumentu a vše pošlu příjemci. Ten si vyhledá můj veřejný klíč, s jeho pomocí datovou zprávu rozkóduje a pokud výsledek odpovídá samotnému dokumentu, má jistotu, že tento dokument byl zakódován (tj. podepsán) právě mnou, neboť použitý veřejný klíč je jednoznačně spojen s mým osobním certifikátem.

Otisk dokumentu

Ale jelikož kódování je výpočetně náročná činnost a protože výše uvedený postup způsobí, že se dokument vlastně přenáší dvakrát (v otevřené formě a zakódovaný), ve skutečnosti se nepodepisuje celý dokument. Místo toho se z něj nejprve vypočítá nějaká malá datová zpráva, která se k dokumentu jednoznačně váže (tj. říká ano, toto je právě ten a ten dokument!). Říká se jí otisk dokumentu neboli „hash“. A vazba je to opravdu ultimativní — stačí změnit jediné písmenko v dokumentu a jeho otisk se rázem úplně změní.

Výše uvedený základní postup při elektronickém podepisování tedy prakticky probíhá následovně:

odesílatel nejprve:

  • vypočte otisk dokumentu,
  • tento otisk pak zakóduje svým privátním klíčem a výsledek přiloží k dokumentu jako jeho elektronický podpis,
  • k obojímu ještě přibalí svůj osobní certifikát, ve kterém je uložen mj. také jeho veřejný klíč
  • to vše zašle příjemci

příjemce pak:

  • vypočte otisk přijatého dokumentu,
  • vezme z přiloženého certifikátu veřejný klíč odesílatele a s pomocí něj rozkóduje otisk, který je součástí podpisu,
  • porovná svůj vypočtený otisk s tím z podpisu a pokud jsou shodné, má jistotu, že podepsaný dokument je právě ten, který má před sebou,
  • pak se podívá, čí že je to vlastně veřejný klíč, kterým rozluštil podpis — tj. podívá se do přibaleného certifikátu,
  • aha, tady se píše, že je to „ten a ten“ odesílatel – můžu tomu věřit? a podívá se, kdo vydal tento certifikát
  • v případě, že byl certifikát vydán autoritou, které příjemce důvěřuje, má jistotu také v tom, že dokument podepsal opravdu ten člověk, který je v certifikátu uvedený

Uf! Vypadá to příšerně složitě, že? Útěchou nechť vám je fakt, že všechny tyhle složitosti za vás při ověřování podpisu počítač udělá sám a vy to všechno můžete s klidem zase zapomenout…

Zneplatnění certifikátu

Ještě než tak učiníte nám tu ale zbývá ještě jedna věc. Pořád dokola jsme mluvili o privátním klíči a veřejném klíči. Ty názvy něco evokují. Ano, je to tak, zatímco veřejný klíč je opravdu veřejná informace, kterou si může kdokoliv vyhledat, privátní klíč je věc nesmírně citlivá. Vždyť kdyby se někdo dostal k mému privátnímu klíči, mohl by mým jménem podepisovat dokumenty a nikdo by nepoznal, že to nebylo mou „rukou“! Tady by nepomohla žádná grafologická analýza, bity a bajty jsou prostě stejné, ať jsou vytvořeny kýmkoliv.

Privátní klíč si tedy musí každý vlastník hlídat jako oko v hlavě. Svět ale není dokonalý, co když se přecejen stane, že se k mému klíči dostane někdo, kdo nemá? Například zloděj, který mi ukradl notebook, nebo pokud klíč prostě ztratím a někdo jej najde? Pro tyhle případy poskytují certifikační autority záchrannou službu zvanou zneplatnění neboli revokace certifikátu.

Jakmile já, jako vlastník privátního klíče a příslušného certifikátu, zjistím, že už svůj privátní klíč nemám pod svou výhradní kontrolou, okamžitě bych měl informovat certifikační autoritu, která certifikát vydala, a nechat certifikát zneplatnit. Je to podobné situaci, kdy zoufalí voláte do banky a necháte zablokovat svou ukradenou kreditní kartu. Autorita pak informaci o zneplatnění certifikátu přidá do seznamu zneplatněných certifikátů, který je veřejně dostupný na internetu.

Co z toho vyplývá pro ověřování elektronického podpisu? Vyplývá z toho poslední povinnost při ověření podpisu a tou je právě kontrola seznamu zneplatněných certifikátů. Příjemce by měl vždy při ověřování podpisu zkontrolovat tento seznam, aby měl jistotu, že certifikát podpisu nebyl mezitím zneplatněný a že je tedy vše v pořádku. Když to neudělá, pak přestože je jinak podpis třeba platný, chybí tu ta absolutní jistota, že ve skutečnosti nebyl podpis někým zneužit. Je zřejmé, že v praxi je k tomuto kroku kontroly nutné být připojen k internetu.

Shrnutí

Pokud jste zvládli dočíst až sem, vězte, že jste právě vstřebali kompletní základy rozsáhlé problematiky elektronických podpisů založených na infrastruktuře veřejných klíčů. Gratuluji!

Co tedy musíte (resp. váš počítač musí) udělat pro ověření elektronicky podepsaného dokumentu:

  • musíte ověřit otisk dokumentu, čímž se ujistíte, že nebyl po podepsání pozměněn,
  • musíte ověřit, že přiložený certifikát by vydán certifikační autoritou, které důvěřujete; pokud ano, pak máte jistotu, že člověk uvedený v certifikátu je ten, kterého očekáváte, a že právě on dokument podepsal,
  • a konečně musíte ověřit, že se certifikát nenachází na seznamu zneplatněných certifikátů, čímž získáte jistotu, že podpis nebyl někým zneužit.

Nyní byste již měli tušit, co se děje, když na vás vyskočí ono v úvodu zmiňované okénko. V každém případě můžete směle přikročit k ověření podpisu v praxi.

úvodní obrázek převzat z passiveaggressivenotes

Toto je jeden z mála zápisků, který má podle mne stále nějakou hodnotu a přežil tudíž velkou přestavbu tohoto webu v srpnu 2011. Ostatní staré zápisky skončily nemilosrdně v digitální popelnici.

tagy: security, cz