ŽIACKA KNIŽKA, EDUPAGE ROZVRH HODÍN WEBMAIL
Informatika (Spojená škola sv. Jána Bosca v Novej Dubnici) - Šifrovanie a elektronický podpis

UPOZORNENIE: Nachádzate sa na starej verzii webu, informácie nie sú aktualizované od apríla 2011. Aktuálne informácie hľadajte na www.ssnd.sk

Šifrovanie a elektronický podpis

Obsah

Čo je vlastne šifrovanie?

Hneď na úvod by som chcel upozorniť na časté zamieňanie pojmov kódovanie a šifrovanie. Nie, nie je to to isté, hoci majú veľa spoločného. Kódovanie má za cieľ umožniť ukladanie informácií (zvyčajne ich číselnou reprezentáciou), či uľahčiť ich prenos v špecifických podmienkach (napríklad morzeovka, Braillovo písmo), šifrovanie sa snaží o znečitateľnenie dokumentu pre tých, ktorým nie je určený - ide teda o utajenie obsahu. Kým pri dekódovaní zakódovanej správy nám stačí poznať (spravidla verejne známy) postup, na dešifrovanie zašifrovanej správy musíme poznať i akési heslo, či kľúč.

Symetrické šifrovanie

Symetrické šifrovanie je v kryptografii klasikou a práve tým, čo si pod pojmom šifrovanie predstaví väčšina ľudí. Čo je preň charakteristické? Používa sa jediný kľúč, ktorým je možné dokument zašifrovať i dešifrovať. Niečo podobné, ako trezor - každý, kto má kľúč, môže si ho otvoriť a prezrieť dokumenty v ňom uložené, ako aj vkladať ďalšie dokumenty. Ak sa niekomu kľúč dostane do rúk, mohol by si ho skopírovať a získať tak prístup kedykoľvek.

Možno ste niektoré jednoduché šifrovanie už kedysi používali pri posielaní správičiek spolužiakom na nudných hodinách, uveďme si pár príkladov.

Veľmi jednoduchá šifra na detské hry by mohla vyzerať napríklad takto - každé písmenko zväčšíme o 2, teda namiesto A napíšeme C, namiesto B bude D, atď. Text AHOJ by po zašifrovaní bol CJQL. Táto šifra sa nazýva posuvná šifra (shift cipher). Ak zašifrovanú správu pošleme príjemcovi, tomu stačí vedieť, aký sme použili postup a poznať správny kľúč. Čo je v tomto prípade kľúčom? Je to číslo 2, o ktoré treba zase zmenšiť každé písmenko zašifrovanej správy.

A čo keď sa zašifrovaná správa dostane do rúk nepovolanej osobe, ktorá nepozná kľúč? Ak bude mať záujem dozvedieť sa obsah správy, asi mu v tom nezabránime, je veľmi ľahké túto jednoduchú šifru nalomiť i použitím toho najnevýhodnejšieho útoku - tzv. útoku hrubou silou (brute-force attack), ktorý vlastne predstavuje skúšanie všetkých možností. No koľko je tých všetkých možností? Ak budeme predpokladať iba písmenká bez diakritiky, máme toľko možností, koľko je písmen v abecede (26), vlastne o jednu menej, pretože zvýšenie o 0 nemá význam.

Poznámka: Abecedu pokladáme za cyklickú, teda po písmene Z nasleduje opäť A - napríklad zvýšenie o 25 je vlastne to isté, ako zníženie o 1, pretože z A sa stane Z, z B bude A, z C zase B, atď.

Skúsme uvedenú šifru vylepšiť, a to tak, že nebudeme písmenká konštantne zvyšovať (vlastne posúvať abecedu), ale ich úplne rozhádžeme. Napríklad namiesto A bude R (A -> R), B -> D, C -> K, D -> Z, a pod. Takáto šifra sa nazýva substitučná šifra (substitution cipher) a spomenutá posuvná šifra, ktorou sme sa zaoberali, je len jej podmnožinou. Čo je vlastne kľúčom pri substitučnej šifre? Už to nie je jediné číslo, ale celé usporiadanie, teda tzv. permutácia - ide o usporiadanú množinu 26 písmen, ktorá by v našom príklade začínala [R, D, K, Z, ...].

Matematicky zdatnejším čitateľom je zrejmé, že existuje 26! rôznych kľúčov, čo je asi 4 × 1026. Je to veľmi veľa, a preto sa táto šifra na prvý pohľad zdá byť pomerne silná. Lenže pozor, na šifru nie je vôbec treba útočiť hrubou silou! Predpokladajme, že poznáme prvé slovo pôvodného textu, napr. AHOJ. Potom už poznáme zámenu 4 písmen. Ak ich dosadíme v celom texte na príslušné miesta, môžeme začať postupne hádať - dopĺňať písmenká tam, kde sa akosi hodia. Najhoršie je teda začať, ale i s tým sa dá vysporiadať.

Pre každý jazyk je možné vytvoriť určitú tabuľku pravdepodobnosti výskytu jednotlivých písmen v bežnom texte - napr. pre anglický jazyk je najčastejším písmenkom E (p = 0,127 s veľkým náskokom), takže ak máme pred sebou zašifrovaný anglický text, zistíme si najčastejšie sa vyskytujúce písmeno v zašifrovanom texte a môžeme ďalej predpokladať, že vyjadruje písmeno E. Podobne sa dajú podľa výskytu usporiadať i dvojice a trojice písmen (v angličtine dvojice TH, HE, IN, .., trojice THE, ING, AND, ...). Po nacvičení postupu dokážeme text dešifrovať za menej ako hodinu. Čím je dlhší, tým lepšie pre útočníka. A ak využijeme pomoc počítača, ktorý nám veľmi rýchlo vie previesť štatistickú analýzu a dosádzať písmenká, šifru nalomíme prakticky hneď.

Na ukážku (a získanie predstavy) uvedené príklady stačia. Ak by sme spojili viacero takýchto jednoduchých šifier (text zašifrujeme najskôr jednou, potom tento zašifrovaný text opäť zašifrujeme, ale už inou šifrou - kľúčom by bola postupnosť všetkých použitých čiastkových kľúčov), získame už pomerne silnú šifru, ktorú je veľmi obtiažne nalomiť. Takto fungujú i známe symetrické šifry DES a AES.

Teraz, keď už vieme, o čo ide pri symetrickom šifrovaní, zamyslime sa nad samotným používaním. Predpokladajme, že máme k dispozícií veľmi silnú šifru, ktorú prakticky nie je možné nalomiť bez znalosti kľúča a predstavme si situáciu, kedy chce Alica poslať Bobovi tajnú správu. Ak obaja poznajú kľúč, nie je žiaden problém - Alica ním správu zašifruje, pošle ju Bobovi, Bob si ju týmto kľúčom zase dešifruje. Pridajme ešte ďalšiu osobu - Oskara, ktorý sa chce dozvedieť obsah prenášanej správy. Ako správny záškodník, Oskar má prístup ku komunikačnému kanálu, ktorým Alica komunikuje s Bobom (týmto kanálom môže byť klasická pošta, telefónna linka, kábel počítačovej siete a podobne) - teda dokáže všetko odpočúvať. Čo teda zachytí Oskar? Iba bezcennú podobu správy - prenáša sa predsa zašifrovaná. Ak majú Alica i Bob bezpečne uschovaný kľúč, nemusia sa báť, že by si správy čítal i niekto iný.

Čo sa však stane, ak chce Alica poslať správu Bobovi, no ten nemá Alicin kľúč? Práve tu je slabina symetrického šifrovania. Alica nemôže kľúč poslať verejným (odpočúvaným) kanálom, ktorý sleduje Oskar. Lenže každý komunikačný kanál je potenciálne odpočúvaný - nemôžu vylúčiť, že Oskar odpočúva, a teda to musia predpokladať. Ak teda nemajú žiaden zaručene bezpečný komunikačný kanál, nezostáva im nič iné, iba sa stretnúť a osobne si odovzdať kľúč - potom už budú môcť bezpečne komunikovať i v budúcnosti. Osobné stretnutie a odovzdanie kľúča sa nám síce môže javiť ako celkom dobrý nápad, ale čo ak sa nachádzajú na druhom konci sveta?

Asymetrické šifrovanie

Veľmi významným krokom v kryptografii bolo vytvorenie postupov asymetrického šifrovania. Čím sa líši od symetrického? Namiesto jediného kľúča, ktorý slúži zároveň na šifrovanie i dešifrovanie, sa tu používa dvojica kľúčov (key pair). Ak jedným z nich správu zašifrujeme, je možné ju dešifrovať iba tým druhým. Pochopiteľne, tieto dva kľúče sú akosi matematicky zviazané, teda patria k sebe a boli spolu vygenerované. Avšak platí, že znalosť jedného z dvojice kľúčov nepostačuje na získanie toho druhého.

Nazvime zatiaľ jeden kľúč šifrovací, ten druhý dešifrovací. Keďže zašifrovanú správu by mal vedieť dešifrovať dešifrovacím kľúčom iba ten, pre koho je určená a nikto iný, potom by sme mohli dešifrovací kľúč označiť ako súkromný a keďže zašifrovať správu pre nejakého príjemcu šifrovacím kľúčom by mal mať možnosť každý, šifrovací kľúč označíme ako verejný. Ďalej už budeme používať iba tieto dva pojmy, teda verejný kľúč slúži na šifrovanie (je voľne k dispozícii pre verejnosť), súkromný kľúč sa použije na dešifrovanie (jeho vlastník si ho drží v bezpečí).

Vráťme sa k Alici a Bobovi. Alica chce poslať Bobovi tajnú správu. Prečítať ju môže iba Bob, teda má byť dešifrovateľná iba jeho súkromným kľúčom, z čoho ďalej vyplýva, že ju Alica musí zašifrovať jeho verejným kľúčom. Aký bude teda postup?

  1. Bob si vygeneruje svoju dvojicu kľúčov. Jednu jeho časť zverejní (verejný kľúč), druhú si ponechá (súkromný kľúč).
  2. Alica si skopíruje Bobov verejný kľúč.
  3. Alica zašifruje správu Bobovým verejným kľúčom.
  4. Alica pošle zašifrovanú správu Bobovi.
  5. Bob prijatú správu dešifruje svojim súkromným kľúčom.

Treba si uvedomiť jednu zaujímavosť - keďže je správa zašifrovaná Bobovým verejným kľúčom, dokáže ju dešifrovať jedine on, teda po zašifrovaní ju už nedokáže dešifrovať ani Alica, ktorá ju zašifrovala! (Dá sa však očakávať, že to nebude potrebovať.)

A čo na to zvedavý Oskar? Komunikačným kanálom najskôr putuje verejný Bobov kľúč (ktorý je však normálne k dispozícii pre všetkých, teda i pre Oskara), potom už len zašifrovaná správa. Čo sme teda získali asymetrickým šifrovaním? Odstránili sme závažný nedostatok symetrického šifrovania - nie je potrebné, aby sa Alica a Bob osobne stretli a odovzdali si kľúč.

Pre úplnosť dodajme, že ak chce Bob odpísať Alici, musí si nahrať jej verejný kľúč a správu zašifrovať ním.

Algoritmus šifrovania RSA

A ako to vlastne celé funguje? V krátkosti môžeme povedať, že ide o operácie s obrovskými (rozumej napr. 100-miestnymi) prvočíslami v zvyškovom priestore prirodzených čísel. Pre matematicky zdatnejších zvedavcov uvediem zjednodušenú ukážku asymetrickej RSA šifry - zjednodušenie spočíva v tom, že nebudeme pracovať s obrovskými prvočíslami, ale iba s malými, aby sme to zvládli (pri znalosti postupov) i na kalkulačke. Pre dve náročnejšie operácie uvediem i program v C++.

V našom príklade vidno hlavný princíp asymetrickej kryptografie - čísla A a B (súkromný a verejný kľúč) sú spolu akosi zviazané. Ak ľubovoľné číslo X umocníme číslom B (= 3533), získame číslo Y, ktoré keď zase umocníme číslom A (= 6597), dostaneme pôvodné číslo X. Deje sa to samozrejme v zvyškovom priestore celých čísel ZN (N = 11413), preto X musí byť menšie ako N.

Čísla A a B sú navzájom inverzné v zvyškovom priestore ZF. Ak by niekto poznal F, vedel by z B vypočítať A a naopak. V našom jednoduchom príklade sa dá z N zistiť F - stačí číslo N rozložiť na prvočísla (je súčinom prvočísel P a Q), tieto o 1 znížiť a vynásobiť ich. Treba si však uvedomiť, že v skutočnosti sa ako P a Q používajú približne 100-ciferné prvočísla (pre 512-bitové šifrovanie). Prakticky nie je možné rozložiť 200-ciferné číslo N na súčin dvoch 100-ciferných prvočísel.

Ako funguje šifrovanie na internete

Hoci by to malo byť každému zrejmé, radšej pripomeniem, že všetky údaje, ktoré sa posielajú po internete prostredníctvom klasického HTTP protokolu (čiže internetové stránky, obsah formulárov na nich, obrázky), či ostatných protokolov, napr. POP3 (na prevzatie e-mailových správ zo servera), sú prenášané v čitateľnej podobe (nešifrovane), a teda ich môže získať prakticky ktokoľvek. Vzhľadom na to, že programové nástroje slúžiace na zachytávanie citlivých informácii sú ľahko dostupné, nemusí ísť ani o nijakého počítačového piráta (atraktívnejšie znie hackera, hoci správne sa jedná o crackera) - dokáže to, žiaľ, hocikto.

Vaše heslá, prístupové kódy, ako aj samotné texty správ (je jedno, či e-mailov, SMSiek, diskusných príspevkov, ...), už možno dávno skončili v rukách niekoho ďalšieho a vy o tom ani neviete... Ak pristupujete na internet kdesi v škole, či na internáte, môžete si tým byť takmer istí. Ale nebuďme pesimisti, pozrime sa radšej, ako tomu predísť. No predsa šifrujme! Nápad to nie je zlý, ale ako na to? Našťastie je to jednoduchšie, ako sa na prvý pohľad možno zdá, veľa námahy nás to stáť nebude - no je k tomu potrebná podpora zo strany cieľového servera.

Okrem klasického HTTP protokolu existuje aj jeho šifrovaný variant - HTTPS, môžete sa v tejto súvislosti stretnúť aj so skratkou SSL, čo je vlastne prídavná šifrovacia vrstva, ktorá pod obyčajným HTTP protokolom vytvorí zabezpečený kanál. Ak ho podporuje váš obľúbený server, na ktorý musíte posielať nejaké neverejné údaje (zvyčajne heslo), stačí vám do internetového prehliadača namiesto zvyčajného http://www.nieco.sk napísať https://www.nieco.sk - teda pridať písmenko S k názvu protokolu. Šifrované spojenie ponúka každý lepší freemail, či portál, ktorý to myslí s bezpečnosťou svojich používateľov vážne - príkladom buď napríklad Orangeportal, T-zones, SZM. Každý internetový prehliadač vám nejakým spôsobom dá najavo, že sa nachádzate na zabezpečenej stránke - napríklad Internet Explorer túto skutočnosť vyjadruje žltým zámkom v pravej časti stavového riadku. Ak naň kliknete, zobrazia sa vám detailné informácie o zabezpečení, okrem iného aj sila šifrovania – 40-bitové je veľmi slabé, je možné ho v relatívne krátkom čase prelomiť, no 128-bitové šifrovanie je v súčasnosti úplne bezpečné. Niektoré servery nemajú šifrované všetky prenosy, ale iba proces prihlasovania sa (teda login a heslo sa prenesú zašifrovane, ale ostatné texty v čitateľnom tvare).

SSL dokáže kryť nielen protokol HTTP, ale i poštové protokoly POP3, SMTP a iné. Dôležité je šifrovať všetko, kde sa prenášajú heslá (napr. vždy pri sťahovaní pošty z poštového programu cez POP3 či IMAP4).

Skúsme sa teraz zamyslieť, aký druh šifrovania by bolo možné použiť. Symetrické, či asymetrické?

Na symetrické šifrovanie je potrebné mať spoločný kľúč. Ak ideme komunikovať s internetovou bankou, musí mať rovnaký kľúč, ako máme my, no nesmie ho mať nikto iný. Samozrejme, že po internete ho prenášať nemôžeme. Povedzme, že by sme si do banky osobne zašli zobrať nejaký ten kľúč. Ale pôjdeme ho brať i ku každému prevádzkovateľovi freemailu, či dokonca ku každému, kto prevádzkuje akékoľvek stránky s možnosťou šifrovaného prístupu? Zdá sa, že tadiaľto cesta nevedie.

A čo šifrovanie asymetrické? Banka vystaví svoj verejný kľúč, my si ho nahráme (resp. nahrá si ho náš internetový prehliadač) a zašifrujeme ním odosielané prihlasovacie údaje (opäť to za nás vykoná prehliadač). Zatiaľ je to všetko fajn. Lenže ako bude banka posielať odpovede nám? Asi by nám vadilo, keby si informácie o stave nášho účtu, či o transakciách mohol prezerať i niekto iný - takto si bezpečnú transakciu nepredstavujeme. Aby nám banka mohla odpovedať cez šifrované spojenie, museli by sme aj my vystaviť svoj verejný kľúč. To sa už zdá byť reálnejšie, no netreba zabúdať na fakt, že nie každý aktívne používa šifrovanie, teda nie každý má svoj vlastný kľúč. Prehliadač si však môže nejaký ten dočasný kľúč vygenerovať, slúžiť bude len na jedno použitie. A pritom by nemusel byť ani asymetrický (matematicky náročnejší, a teda pomalší), veď aj obyčajný symetrický kľúč sa môže banke poslať zašifrovane...

Dospeli sme teda ku kombinácii asymetrického a symetrického šifrovania, zjednodušený postup bezpečnej transakcie by mohol byť takýto:

  1. prehliadač si náhodne vygeneruje dočasný symetrický kľúč;
  2. prehliadač si nahrá verejný asymetrický kľúč servera (napr. banky);
  3. prehliadač zašifruje dočasný kľúč verejným kľúčom servera a pošle ho serveru;
  4. ďalšia komunikácia už môže byť symetricky šifrovaná dočasným kľúčom.

Podrobnejšie informácií o tejto problematike nájdete napr. na stránkach Netscape pre vývojárov.

Elektronický podpis

Od problematiky šifrovania prejdeme k zdanlivo nesúvisiacemu podpisovaniu. Na čo vlastne podpis slúži? Vyjadrujeme ním súhlas s dokumentom, ktorý podpisujeme a zároveň tento podpis potvrdzuje, že sme dokument odsúhlasili naozaj my a nie niekto iný (príjemca musí samozrejme vedieť, ako náš podpis vyzerá). Prípadný falšovateľ by sa mohol pokúsiť o dve veci: napodobniť náš podpis pod akýkoľvek dokument; v nami podpísanom dokumente niečo prepísať či dopísať. Záleží na jeho šikovnosti a skúsenostiach, či sa mu to podarí alebo nie. No priznajme si, že bežný človek podvod sotva odhalí.

Nástup elektronických dokumentov vyvolal potrebu podpisovať aj tie. Ak vylúčime úvahy typu podpísanie štítku na diskete, dospejeme k záveru, že podpis elektronického dokumentu by mal tiež byť elektronický, aby ho bolo možné spolu s dokumentom prenášať v elektronickej forme.

Čo to ten elektronický podpis je? Spočiatku sa niektorí ľudia mylne domnievali, že ide o zdigitalizovanú formu klasického podpisu (teda naskenovaný obrázok). Je samozrejmé, že takýto podpis by nemal vôbec žiaden význam, pretože by nemal nijaký súvis s dokumentom a dal by sa ľahko kopírovať. Žiaľ, niekedy sa pojmom elektronický podpis označuje signatúra obsahujúca napr. naše meno, funkciu a názov firmy, v ktorej pracujeme - toto sa bežne pridáva na koniec e-mailu. Ani toto nie je pravý elektronický podpis.

Aký by teda mal byť? Malo by byť možné jednoznačne určiť, či:

Vráťme sa k teórii asymetrickej kryptografie. Spomínali sme si dvojicu kľúčov a že ak jedným z nich správu zašifrujeme, je možné ju dešifrovať iba tým druhým. Jeden sme nazvali súkromný, druhý verejný. Šifrovalo sa pritom vždy kľúčom verejným a dešifrovalo kľúčom súkromným. Čo ak by sme to skúsili obrátiť? Alica by správu mohla zašifrovať nie Bobovým verejným kľúčom, ale svojím súkromným. Ako by bolo možné takúto správu dešifrovať? Jedine použitím Alicinho verejného kľúča. Takže by ju mohol dešifrovať úplne každý. Zdanlivo je takýto postup hlúposť, avšak nie je. Totiž každý, kto túto správu dešifruje Aliciným verejným kľúčom, má istotu, že bola zašifrovaná Aliciným súkromným kľúčom, ktorý má jedine Alica, čiže Alica je určite odosielateľom tejto správy. Tiež vieme, že nikto správu nemohol zmeniť v zašifrovanej forme, pretože inak by ju nebolo možné úspešne dešifrovať. Práve toto potrebujeme pre elektronický podpis!

Ak by sme sa však s týmto uspokojili, vyskytli by sa problémy - každý podpísaný dokument by bol vlastne zašifrovaný. Bolo by ho síce možné dešifrovať verejným kľúčom podpisujúceho, no jednak by to bolo nepraktické - pred každou prácou s podpísaným dokumentom by sme ho najskôr museli dešifrovať, a to aj vtedy, keď možno práve nepotrebujeme overovať, či je dokument naozaj pravý - a čo je horšie, nie každý má na počítači nainštalovaný nejaký šifrovací systém, ktorý by mu dokument mohol dešifrovať. Napríklad sa zamyslime nad situáciou, že posielame e-mail do diskusnej skupiny a chceme ho podpísať. Tento mail by boli schopní prečítať iba tí, ktorí používajú šifrovanie a majú náš verejný kľúč. Ale čo ostatní - veľká väčšina účastníkov diskusnej skupiny?

Oveľa praktickejšie by bolo, keby sa dal podpis iba akosi priložiť k dokumentu. Teda dokument by bol nešifrovaný a pri ňom by bol akýsi krátky dodatok - elektronický podpis. A takto to aj naozaj je. Ako je to možné?

Je to vďaka takzvanému hashu. Hash predstavuje akýsi výťah (či výcuc) dokumentu. Pre hash je typické, že dva rôzne dokumenty majú dva rôzne hashe. Ak dokument mierne zmeníme (stačí jediné písmenko v dlhom texte), hash sa zmení úplne. Ďalšou dôležitou vlastnosťou je, že z hashu nie je možné spätne zistiť pôvodný dokument – je teda jednosmerný. V praxi sa používajú hlavne dve verejné hashovacie funkcie: MD5 (Message Digest 5) a SHA-1 (Secure Hash Algorithm). Algoritmy oboch hashovacích funkcií sa líšia, no majú rovnaký cieľ. Hash SHA-1 je o niečo dlhší (160 bitov, MD5 má 128 bitov), no a keďže je aj pomalší, považuje sa za lepší ako MD5 - je totiž odolnejší voči útoku hrubou silou.

Na nasledujúcich ukážkach sa sami môžete presvedčiť o vlastnostiach hashovacích funkcií:

  Text: Zavazujem sa vyplatit sumu 10000 Sk
  MD5: 8f9109429dd1176a9573e949d966842f
  SHA-1: edeb2aae43eeb300f89df76f56c26978fa3fc1b6
  Text: Zavazujem sa vyplatit sumu 90000 Sk
  MD5: 62962a22377d87c396cb9b3232156d7a
  SHA-1: debddfc5c6fdf8438413f39b85408eb7d00f66a5
  Text: Zavazujem sa vyplatit sumu 100000 Sk
  MD5: ab4069646d668d1db877e90113cd18ba
  SHA-1: 0dc5681cbedd9eb2786b5e7848ace84323abe182

Spojením hashovacej funkcie a asymetrického šifrovania dostávame skutočný elektronický podpis, šifrovať sa nebude celý dokument, ale iba jeho hash. Zjednodušený postup elektronického podpisovania teda bude:

  1. vypočíta sa hash H1 dokumentu, ktorý sa má podpísať;
  2. hash H1 sa zašifruje súkromným kľúčom odosielateľa;
  3. zašifrovaný hash H1 sa doplní ďalšími informáciami (napr. identifikáciou podpisovateľa), čím vznikne elektronický podpis, ktorý sa priloží k pôvodnému dokumentu.

Príjemca prijme dokument a elektronický podpis. Bude sa chcieť presvedčiť, či nebol dokument nejakým spôsobom zmenený a či ho podpísal ten, kto ho odoslal - overuje podpis:

  1. verejným kľúčom odosielateľa dešifruje priložený hash H1;
  2. z prijatého dokumentu vypočíta hash H2;
  3. ak sú hashe H1 a H2 rovnaké, dokument nebol pri prenose zmenený a naozaj ho podpísal odosielateľ.

Samozrejme, že všetky uvedené činnosti vykonáva program pre elektronické podpisovanie..

Certifikačná autorita

Asymetrická kryptografia sa nám môže zdať byť úplne dokonalá, no predsa len sa nájdu slabé miesta. Prvou hrozbou je odcudzenie súkromného kľúča. Každému je (malo by byť) jasné, že si ho má chrániť, no môže sa stať, že sa ocitne v rukách niekoho iného – či už vinou nepozornosti alebo vďaka obyčajnej krádeži. Súkromný kľúč síce môže byť doplnený aj heslom, ktoré bude vyžadované pri každom jeho použití, no táto ochrana nie je dostatočná.

Druhou hrozbou je podstrčenie cudzieho kľúča. Zoberme si našu známu trojicu Alica, Bob a Oskar. Alica chce poslať tajnú správu Bobovi, najskôr si teda musí od neho nahrať verejný kľúč. Oskar však nespí, zachytí túto požiadavku a hneď na ňu aj odpovie - pošle Alici svoj verejný kľúč, tváriac sa, že ho posiela Bob. Nič netušiaca Alica ním tajnú správu zašifruje, Oskar si ju chytí a dešifruje. Ak chce, môže ju následne zašifrovať Bobovým verejným kľúčom a poslať ďalej Bobovi, ktorý ani nepostrehne, že ju poslal niekto iný... Oskar môže podobným spôsobom podstrčiť svoj verejný kľúč aj Bobovi (ktorý ho bude pokladať za Alicin), vďaka čomu môže zachytávať všetku ich komunikáciu.

Oba tieto problémy však je možné riešiť zavedením akejsi kontrolnej inštitúcie, takzvanej certifikačnej autority (CA). Táto bude mať dve hlavné úlohy:

  1. Potvrdzovať pravosť kľúča: Kto si vygeneruje svoj kľúč, nahlási to CA a doloží svoju totožnosť. Potom CA podpíše verejný kľúč, teda vystaví akýsi certifikát potvrdzujúci, že tento verejný kľúč patrí tejto osobe (či organizácii) a nikomu inému. Podpísaný verejný kľúč dotyčný zverejní a každý, kto si ho nahrá, si môže overiť, že je pravý.
  2. Kontrolovať platnosť kľúča: Ak je niekomu odcudzený kľúč, nahlási to CA, ktorá kľúč odvolá (revokuje). Kto ide používať niečí verejný kľúč, najskôr sa u CA presvedčí, či ešte stále platí (nebol medzičasom odvolaný).

Teraz sa natíska otázka - ako zistíme, či certifikát naozaj vydala CA (a nie niekto iný)? Opäť je potrebné mať verejný kľúč, tentoraz certifikačnej autority, no i ten by mohol byť podvrhnutý. Tento pomerne závažný problém je vyriešený jednoducho - internetové prehliadače priamo obsahujú verejné kľúče takzvaných koreňových CA (root CA). V Internet Exploreri nájdete všetky certifikáty v ponuke Tools (Nástroje) / Internet Options (Možnosti internetu), záložka Content (Obsah), tlačidlo Certificates (Certifikáty). V Opere je to ponuka File / Preferences / Security - Manage Certificates.

Tie CA, o ktorých pravosti sme presvedčení a dôverujeme ich certifikátom, sú označené ako dôveryhodné CA (trusted CA). Všetky koreňové CA sú automaticky dôveryhodné.

Elektronický podpis má svoje významné uplatnenie aj vo vzťahu občan - štát. Aby sme mohli s úradmi komunikovať elektronickou cestou, je elektronický podpis nevyhnutný. Štát však rozhodne nebude akceptovať certifikát, ktorý si vydáme my sami, taktiež mu nebude stačiť ani certifikát hocakej CA. Na komunikáciu s úradmi štátnej správy budeme potrebovať certifikát od štátom uznanej (akreditovanej) certifikačnej autority - je to CA, ktorá spĺňa požadované kritériá a akreditoval ju Národný bezpečnostný úrad (akreditovanej CA dôveruje aj štát). Aby nám bol takýto certifikát vydaný, budeme samozrejme musieť preukázať svoju totožnosť a zaplatiť príslušný poplatok. Prvou akreditovanou certifikačnou autoritou na Slovensku je Certifikačná autorita EVPÚ sídliaca v Novej Dubnici.

Šifrované internetové stránky v praxi

Teraz, keď už sme si vyjasnili princíp, skúsme navštíviť nejaké internetové stránky cez šifrované spojenie. Konkrétne informácie, ktoré tu uvediem, sa samozrejme časom môžu zmeniť.

Začnime nejakou internetovou bankou - napr. prihlásenie do Tatrabanky. Internet Explorer zobrazí v stavovom riadku žltý zámok, v Opere sa zatvorí (zamkne) symbol zámku, ktorý je zvyčajne otvorený - toto symbolizuje zabezpečené spojenie. Ak v Internet Exploreri poklepeme po tomto symbole, zobrazia sa nám detaily o certifikáte - kto ho vydal, dokedy platí a podobne. Zistíme, že certifikát vydala dôveryhodná koreňová CA VeriSign, voči ktorej prehliadač nemá žiadne výhrady. Certifikát má platnosť 2 roky.

Teraz skúsme nejakú stránku, ktorej zabezpečenie nie je natoľko dôležité, ako v prípade banky, napr. freemail na portáli SZM. Hneď nás privíta varovanie - certifikát vydala CA, ktorej nedôverujeme. Po zobrazení detailov zistíme, že tento podozrivý certifikát vydala spoločnosť, ktorá stránky prevádzkuje, teda ho vlastne vydali sami sebe. Teoreticky je možné, že nám ho niekto cestou podstrčil - jednoducho nemáme istotu, že je pravý, chýba tu dôveryhodná CA. Je málo pravdepodobné, že by sa niekto unúval falšovaním, môžeme si ho teda nainštalovať či importovať, čím ho my sami označíme ako dôveryhodný (a v budúcnosti sa už varovanie pre tento certifikát nezobrazí). Ak by sme sa predsa len na cudzom mieste obávali, že niekto ho možno sfalšoval a odchytí naše údaje, mohli by sme si na dôveryhodnej sieti (napr. doma, ak sme na internetovej prípojke sami) vopred certifikát zobraziť, na lístok odpísať jeho odtlačok (hash) a pri prístupe z nedôveryhodnej siete tento odtlačok vždy porovnať s odloženým lístočkom napríklad v peňaženke (čo už však zaváňa paranojou :) Tiež si všimnime čas platnosti - takmer 30 rokov! Jednoducho povedané - freemail a portál nie je banka, preto sa tu kladie menší dôraz na bezpečnosť. Stále je však i takýto certifikát veľkým prínosom, nakoľko zabraňuje odchytávaniu prístupových údajov zo siete.

Nikto nie je neomylný! Ak ste v článku našli chyby, nezrovnalosti, či sa Vám zdá, že niektorá časť nie je jasne formulovaná, budeme radi, ak nás na tieto nedostatky upozorníte - kliknutím na meno autora mu môžete zaslať správu.

Požiadavky

Čo by mali vedieť aj prváci:
Čo je to šifrovanie, ako sa líši od kódovania, na akom princípe pracuje elektronický podpis.
Čo by mali poznať maturanti:
Význam pojmov šifrovanie, kódovanie, certifikačná autorita, hash, elektronický podpis, rozdiely symetrického a asymetrického šifrovania, postup pri prenose správy použitím asymetrického šifrovania, postup elektronického podpisovania a overovania podpisu.
Praktická časť:
Overenie certifikátu internetovej stránky so šifrovaným spojením.

↑

Spojená škola sv. Jána Bosca v Novej Dubnici