Úvod do kryptografie
2007 © Kamilla Amirová (xamirova[at]fd.cvut.cz)
Oblasti využití a zhodnocení metod šifrování

Možnosti realizace kryptografických algoritmů a návrh využití.
Hodnocení základních charakteristik algoritmů šifrování.
Použití kryptografických algoritmů v smart kartách.
Hodnocení kryptografických algoritmů DES a RSA.
Digitální podpis.
Standard SSL.
 
Možnosti realizace kryptografických algoritmů a návrh využití
Systémy šifrování dat předávaných v počítačových sítích se odlišují podle realizace a svých charakteristik v závislosti na použitém pracovním stupni modelu interakce otevřených systémů (modely OSI). Při přenosu ochráněných šifrováním dat mohou být v zásadě použity kanálový, síťový, transportní, přehlídkový, reprezentativní nebo užitkový úroveň modelu OSI. V praxi se to uskutečňuje obvykle bud’ na nejnižších a nebo na nejvyšších úrovních. Pokud se data šifrují na nižních úrovních, tak jde řeč o kanálovém šifrování. Pokud šifrování probíhá na vyšších úrovních, tak se to nazývá průběžným šifrováním. Oba přístupy mají svoje plusy a minusy.


V případě kanálového šifrování se chrání veškerá přenášená informace včetně služební. Tento způsob šifrování má následující přednosti: zabudování šifrovacích procedur na kanálovou úroveň umožňuje využít přístrojové prostředky, což napomáhá zvýšení výkonnosti systému. Avšak tento přístup má i závažné nedostatky:

Nejdůležitějšími charakteristikami prostředků šifrování pracujících na kanálové úrovni jsou:
- Rychlost šifrování;
- Použitý algoritmus;
- Režim práce;
- Typ rozhraní;
- Možnost práce v sítích s komutací paketů X.25;
- Druh možných k použití modemů;
- Protokoly výměny klíčové informace;
- Způsob vstupu klíčů;
- Realizace funkcí zpětného vyzvání, elektronického podpisu a jiné.

V zásadě jsou rychlosti šifrování rovné 64 Kb/s pro synchronní režim a 19,2 Kb/s pro asynchronní. Toto úplně stačí pro práci na přidělených telefonních linkách, ale jsou naprosto nepřijatelné pro výměnu zašifrované informace na spojovacích linkách z optických vláken. Pro tyto aplikace mohou být použity pouze vysoce rychlostní šifrátory CIDEC-HS, CIDEC-HSi, CIDEC-VHS firmy Cylink – světového lídra ve výrobě prostředků kanálového šifrování.
Studie v oblasti kanálového šifrování se provádějí zejména v zemích NATO. Z firem vyrábějících podobná zařízení jsou nejznámější: Cylink, Fredericks, Harris, GTE, E-Systems (USA), Newbridge Microsystems (Kanada), Siemens, Telefunken, Tele Security Timman (Německo), Philips USFA (Holandsko), Cryptech Belgie (Belgie), Plessy, Racal, Corros, Marconi (Velká Británie).
Pro kanálové šifrování, tj. v těch případech, kdy přenos informace začíná a končí v libovolných časových okamžicích a může se náhodně přerušit (nepřetržité proudy dat – hlasy, video atd.) se obvykle používají proudové šifry. Jejich hlavní předností je neexistence množení chyb (Koeficient rozmnožení chyby je rovný jedné), vysoká rychlost a uchování velikosti textu při šifrování. К nedostatkům patří nestabilita šifry při opakovaném použití klíče a taky posloupnost přístupu k informaci.

Při průběžném šifrování se kryptografický algoritmus realizuje na jednom z vyšších úrovních modelu OSI. Šifrování podléhá jen obsažná část zprávy, kterou nutno předat po síti. Po zašifrování se ke zprávě přidává služební zpráva, která je nutná pro směrování dat. Dále to postupuje na nižší úrovni s cílem odeslání adresátovi. Ted’ zprávu nepotřebujeme pořad zašifrovat a dešifrovat při průchodu přes každý mezilehlý styčník spojovací síti. Zpráva zůstává v šifrované formě na celé cestě od odesilatele k adresátovi.
Hlavní problém, se kterým se setkají uživateli počítačových sítí, kde používá se průběžné šifrování je spojená s tím, že služební informace pro směrování zpráv se předává nezašifrovanou. Zkušený kryptoanalytik může získat užitečnou informaci.
V porovnání s kanálovým šifrováním průběžné šifrování se charakterizuje víc složitou práci s klíče, jelikož každý par uživatelů počítačové síti musí být vybaven stejnými klíče před tím, než budou moci komunikovat spolu.
Navíc protože kryptografický algoritmus se realizuje na vyšších úrovních modelu OSI, setkáváme se s rozdíly v komunikačních protokolech a rozhraních podle typu počítačové sítě a samých počítačů.
Pro průběžné šifrování (při paketovém přenosu informací, šifrování fajlů atd.) se používají blokové šifry.

Přednostmi blokových šifer jsou:
1. Odolnost vůči opakovanému použití jednoho a téhož klíče, a to i za přítomnosti prakticky neomezeného počtu párů otevření – šifrovaný text, získaných na jednom klíči;
2. Libovolnost přístupu k šifrovanému textu (s přesností na blok). 3. Možnost realizace na základě blokové šifry, gamovací šifra.

К nedostatkům patří:
1. Koeficient rozmnožení chyby je rovný délce bloku. Jednotlivá chyba v šifrovaném textu vyvolává zkreslení asi poloviny otevřeného textu při dešifrování. Toto vyžaduje použití výkonných kódů, které opravují chyby.
2. Blokovost šifrování. Ze dvou stejných bloků otevřeného textu vycházejí stejné bloky šifrovaného textu.
3. Významně nízká rychlost práce ve srovnání s gamováním (pro kvalitní šifry), podmíněnou složitostí realizace algoritmu jednoduché záměny v abecedách o velké kapacitě, protože je zřejmé, že pro dostatečné zabezpečení odolnosti délky bloku je tabulkové zadání takové operace nemožné.
4. Vysoká složitost realizace operací standardně používaných při vytváření blokové šifry, jakož i operace posunu, vyčlenění částí bloků v šifrovaném bloku atd.
5. Relativně velký objem paměti vyžadovaný pro archivaci vnitřních dat (zejména tabulek záměny pro rozptylovací transformace) používaných při šifrování.

Nejkritičtějším parametrem blokových šifer je rychlost šifrování, která může být nižší než u gamovací šifry až o několik desetinásobků. Nicméně možnost libovolného přístupu k jednotlivým částem zprávy a odolnost vůči opakovanému použití klíčů dělají tyto algoritmy přitažlivými pro použití jako standardu při ochraně informací.

Kombinace kanálového a průběžného šifrování dat v počítačových sítích vychází mnohem dražší než kanálové a průběžné zvlášť. Avšak právě takový přístup umožňuje nejlepším způsobem ochránit data přenášené po síti.

Velmi důležitým faktorem taky slouží softwarová a hardwarová realizace kryptografického algoritmu.

Hardwarová realizace. Většina prostředků kryptografické ochrany dat je realizováno ve formě specializovaných technických zařízení. Tyto zařízení zabudované ve spojovací vedení a uskutečňují šifrování celé přenášené informace. Hardwarová realizace šifrování má několik přednosti před softwarovou:
1. Větší rychlost než u softwarové realizaci. Kryptografické algoritmy se skládají s obrovského počtu složitých operací provádějících nad bity otevřených dat. Moderní univerzální počítače nedostatečně přizpůsobené k efektivnímu vykonání těch operací. Specializované zařízení umí dělat je o mnoho rychleji.
2. Snadněji ochránit fyzicky před proniknutím zvenku. Program běžící na počítače prakticky bezbranný. Zlomyslník může tajně vnést změny, aby snížit odolnost kryptografického algoritmu a nikdo ani nevšimne. Co se týká specializovaného technického zařízení, tak obvykle se to nachází ve zvláštním kontejneru, které brání jeho funkční schéma od změn. Čip se pokrývá shora speciální chemickou sestavou. A v důsledku pokusu odolat ochrannou vrstvu tohoto čipu přivádí ke samo zničení vnitřní logické struktury. Navíc proti magnetickému záření můžeme použit zaclonění čipu.
3. Hardwarové zařízení je jednodušší v instalaci. Velmi často potřebujeme šifrování v těch místech, kde doplňkové počítačové zařízení je absolutně zbytečným. Telefony, faxy, modemy je mnohem levněji vybavit hardwarovou realizaci šifrování, než vmontovat mikropočítače s příslušným programovým zabezpečením.

Ideálně šifrování musí být realizováno nenápadně pro uživateli. Aby to dosáhnout pomoci programového vybavení, šifrování musí být schováno hluboce do operačního systému. Provést to s odladěným OS není tak jednoduché. Ale napojit šifrovací blok k počítači s jedné strany a modem s druhé dokáže i neprofesionál. DES je typickým příkladem propastného rozdílu mezi softwarovou a hardwarovou implementací, neboť při šifrování hardwarových čipem je několiksetkrát rychlejší.

Softwarová realizace. Jakýkoliv kryptografický algoritmus může být realizován v programovém tvaru. Přednosti takové realizace je zřetelná: softwarovou realizaci šifrování se dá snadno kopírovat, jednoduchá v použití, snadno modifikovat podle konkrétních potřeb.
Každý rozšířený OS má zamontované šifrovací prostředky. Obvykle jsou určené pro šifrování jednotlivých souborů, práce s klíče se celkem ukládá na uživatele. Proto použití těch prostředků vyžaduje zvláštní pozornost, tj. v žádném případě uchovávat klíče na disku spolu s šifrovanými soubory a nezašifrované kopie souboru je nutno smazat hned po zašifrování.

Šifrování souborů. Na prví pohled šifrování souborů lze spodobit šifrování zpráv, kde odesilatel a adresát je stejná osoba (prostředím přenosu slouží počítačové zařízení uchování dat jako magnetní nebo optický disk, operativní pamět’). Nicméně není to tak jednoduché jak se může sdát.
Při přenosu dat po komunikačním kanálům zpráva nemá velkou hodnou. Pokus se ztratí po cestě od odesilatele k adresátovi, je možné se pokusit předat ji znovu. Při šifrování dat, které určené pro uložení ve formě počítačových souborů, proces vypadá úplně jinak. Jestli jste neschopní dešifrovat soubor z prvního pokusu sotva, že se Vám to podaří to udělat z druhého a nebo třetího pokusu. Vaše data budou ztracené navždy. To znamená, že je nutně zpracovat speciální mechanismy zabránění chybám v šifrovaném textu.

Při šifrování souborů (nezáleží jaký kryptografický algoritmus se používá) je potřeba pamatovat na takové zvláštnosti jak:

Nejlépe šifrovat každý soubor jednotlivým klíčem, a potom zašifrovat všechny klíče pomoci master-klíče (masterkey ). Tím samým uživateli budou vysvobozeni od zmatků organizace spolehlivého uschování velkého čísla klíčů. Rozlišení přístupu skupin uživatelů k různým souborům bude uskutečněno dělením množství všech klíčů na podmnožiny a šifrování těch podmnožin různými master-klíče. Odolnost takového kryptosystémy bude mnohem výš, než v případě použití jednotného klíče pro šifrování všech souborů na pevném disku, protože klíče použité při šifrování souborů lze udělat víc náhodnými a tak víc odolnými proti slovníkovému útoku.

Komprese a šifrování. Algoritmy komprese dat jsou velmi dobré pro společné použití s kryptografickými algoritmy. Máme na to dvě příčiny:
Je třeba nezapomenout zkomprimovat soubor před tím, než bude zašifrován, nikoli po. Protože po šifrování souboru pomoci kvalitního kryptografického algoritmu získaný šifrovaný text se nedá zkomprimovat. Parametry šifrovaného textu budou blízké ke parametrům absolutně náhodného souboru písmen. Je vhodné poznamenat, že komprese může sloužit zvláštním testem pro kontrolu kvality kryptografického algoritmu. Pokud se dá šifrovaný text zkomprimovat, znamená to, že použitý algoritmus je vyměnit na více modernější.


Hodnocení základních charakteristik algoritmů šifrování.
Dobré kryptografické systémy se vytvářejí takovým způsobem, aby jejich otevření bylo co nejtěžším. Je možné sestavit systémy, které je v praxi nemožné otevřít (i když dokázat tento fakt obvykle nelze). Přitom se pro realizaci tohoto nevyžaduje příliš velké úsilí. Jediné, co se vyžaduje – pečlivost a základní znalosti. Nemůže být omluvy vývojáři, jestliže zanechal možnost otevření systému. Veškeré mechanizmy, které mohou být využity pro prolomení systému se musí zadokumentovat a informace musí být předána konečnému uživateli.
Teoreticky může být jakýkoliv šifrovací algoritmus používající klíč otevřen metodou prověrky všech hodnot klíče. Jestliže se klíč vybírá metodou hrubé síly (brute force), tak požadovaná kapacita počítače roste exponenciálně s nárůstem délky klíče. Klíč o délce 32 bitů vyžaduje 2^32 (kolem 10^9) kroků. Takový úkol může řešit jakýkoliv diletant a řeší se na domácím počítači. Systémy s 40-ti bitovým klíčem (například exportní americká varianta algoritmu RC4) požadují 2^40 kroků – takové kapacity mají většiny univerzit a také nevelké společnosti. Systémy s 56-ti bitovými klíči (DES) potřebují pro otevření dostatečné úsilí, avšak mohou být lehce otevřeny s pomocí speciální aparatury. Cena takové aparatury je dosti značná, ale je dostupná pro mafii, velké společnosti a vlády. Klíče o délce 64 bitů mohou být v současné době možná otevřeny velkými státy a v nejbližších několika letech mohou být dostupné i pro zločinecké organizace, velké podniky a menší státy. Klíče o délce 80 bitů se mohou stát v budoucnosti zranitelnými. Klíče o délce 128 bitů se pravděpodobně stanou nedostupnými pro otevření metodou hrubé síly v nejbližší budoucnosti. Je možné používat i mnohem delší klíče. Na konci nebude těžké dosáhnout toho, že energie potřebná pro otevření (počítaje, že na jeden krok se spotřebuje minimální kvantově-mechanický kvant energie) přesáhne hmotnost slunce nebo vesmíru. Avšak délka klíče to ještě není vše. Mnohé šifry lze otevřít a nepoužít všechny možné kombinace. Obecně lze říci, že je velmi těžké vymyslet šifru, kterou by nebylo možné otevřít jiným efektivnějším způsobem. Projektování vlastních šifer může být příjemným cvičením, ale pro reálné využití se nedoporučuje používat vlastní šifry, jestliže nejste odborníkem na slovo vzatým a nejste přesvědčení na 100% o tom, co děláte.

Obecně lze říci, že se doporučuje držet stranou od nepublikovaných nebo tajných algoritmů. Často není zpracovatel takového algoritmu přesvědčen o jeho spolehlivosti nebo, že spolehlivost záleží na tajnosti samotného algoritmu. Avšak lze říci, že ani jeden algoritmus jehož utajenost záleží na tajnosti samotného algoritmu není spolehlivý. Konkrétně, maje šifrovací program, je možné najmout programátora, který jej rozloží a obnoví algoritmus metodou zpětného inženýrství. Zkušenost ukazuje, že většina tajných algoritmů, které se v důsledku staly vlastnictvím společnosti, byly nespolehlivé.

Délky klíčů používaných v kryptografii s otevřeným klíčem jsou obvykle značně větší než v symetrických algoritmech.Zde není problém ve výběru klíče, ale v obnovení klíče podle otevřeného. V případě RSA je problém ekvivalentní rozložení na násobitele velkého celého čísla, které je součinem dvojice neznámých prostých čísel. V případě určitých jiných kryptosystémů je problém ekvivalentní výpočtu diskrétního logaritmu podle modulu velkého celého čísla (takový úkol se uvažuje podle obtížnosti, jako analogický úloze rozložení na násobitele). Jsou kryptosystémy, které používají jiné problémy.

Abychom získali představu o stupni složitosti otevření RSA, řekněme, že modul o délce 256 bitů se lehce faktorizuje obyčejným programátorem. Klíče o 384 bitech mohou být otevřeny výzkumnou skupinou na univerzitě nebo společnosti. 512 bitové klíče se nacházejí na hranicích možností velkých států. Klíče o délce 768 bitů, pravděpodobně nebudou spolehlivé po delší dobu. Klíče o délce 1024 bitů mohou být pokládány za spolehlivé do té doby, než dojde k významnému rozvoji v algoritmu faktorizace; klíče o délce 2048 bitů většina pokládá za spolehlivé na desetiletí. Podrobnější informace o délkách klíčů je možné získat z článku Bruce Scheiera.

Také je důležitá jednoduchost (složitost) realizace. Jestliže se šifra těžko realizuje, tak není potřebná. Je důležité zdůraznit, že stupeň spolehlivosti kryptografického systému se určuje jeho nejslabším článkem. Nesmí se upustit žádný aspekt při projektování systému – od výběru algoritmu až do politiky použití a rozšíření klíčů.


Hodnocení kryptografických algoritmů DES a RSA



Symetrické algoritmy mají menší délku klíče a pracují rychleji, než asymetrické algoritmy. Podle názoru amerického kryptologa U. Diffy (jeden z objevitelů kryptosystémů s otevřeným klíčem) asymetrické systémy musíme považovat za úplně jinou modifikaci univerzálních kryptosystémů. Kryptografie s otevřeným klíčem a kryptografie s privátním klíčem jsou určené pro řešení absolutně různých problémů spojených s utajením informace. Symetrické kryptografické algoritmy slouží pro šifrování dat a pracují mnohem rychleji než asymetrické algoritmy. Avšak kryptografie s otevřeným klíčem se úspěšně používá tam, kde kryptografie s privátním klíčem se nedá moc použit, například, v práci s klíče a s velkým počtem kryptografických protokolů.


Použití kryptografických algoritmů v smart kartách.
Dnes se velmi progresivně sít’ Internet využívá jako platforma pro obchodní transakce. Bezpečnost se stává prvořadným problémem pro internetové aplikace. Některé aplikace jsou velmi citlivé k programovému vybavení, tj. obsahují v sobě ochranné mechanismy. Vysoký stav bezpečnosti může být dosáhnut koncepci ověření, která založená na smart kartách a transakčními protokoly. Typické bankovní aplikace jsou realizované na smart kartách, kde se používá symetrický algoritmus šifrování DES a asymetrický algoritmus RSA.

Smart karty jsou perfektní prostředky aby zajistili požadovaný úroveň bezpečnosti. V posledních letech technologie smart karet je rapidně rozvíjela a dosáhla výšky, kdy se smart karty dá snadno integrovat do veřejných infrastruktur. Dnes smart karty disponují objemem paměti až 64KB pro uložení klíčů, certifikátů, jiné informace, mají v sobě kryptografické koprocesory, které umožňují generovat digitální podpisy pomoci kryptografických algoritmů RSA a DSA (Digital Signature Algorithm) s délkou klíčů 1024 bitů. Globální Systém Mobilních Komunikací (The Global Systém for Mobile Communications), který pochází z Groupe Speciál Mobile (GSM) standardu, používá smart karty jako Subscriber Identification Modules (SIMs) pro identifikaci uživatele a poskytovatele služeb a ověření. Takže smart karty jsou využívané jako ID karty (identity card) pro bankovnictví a kreditní karty pro zákazníky, zaměstnance firem a nebo občany.


Obr.


Rozvoj čipových karet v devadesátých letech minulého století podpořily bezpečnostní, ekonomické a marketingové důvody. Čipové (smart) karty jednoznačně zvyšují bezpečnost bezhotovostních plateb, takže se předpokládá další expanze jejich využití. Tvrzení o bezpečnosti čipových karet potvrzuje fakt, že se až doposud nevyskytl jediný padělek takové karty. Platby jsou navíc rychlejší, mohou probíhat v off-line.

Běžné typy smart karet
Mezi velkého počtu druhů smart karet můžeme rozpoznat několik závažných skupin: jednoduché smart karty, které orientované na systém souborů bez veřejného klíče (simple file-system-oriented smart cards without public key capability), pokročilé smart karty orientované na systém souborů s veřejným klíčem (advanced file-system smart cards with public key capability), Java karty, Windows-powered smart karty, MULTOS (multi-application operating system) smart karty.

Smart karty orientované na systém souborů bez veřejného klíče (simple file-system-oriented smart cards without public key capability) zajišťují systém souborů, kde čtení a zápis souborů můžou být chráněné různorodými podmínkami přístupu. Tyto karty podporují jen symetrické kryptografické algoritmy jako například, DES nebo 3-DES (trojnásobný DES). Příkladem smart karet této kategorie je IBM MFC 4.1, GeldKarte (Německo).

Pokročilé smart karty orientované na systém souborů s veřejným klíčem (advanced file-system smart cards with public key capability) používají kryptografie s otevřeným klíčem. Zahrnují v sobě privátní klíče a přiřazené certifikáty. Klíčový par se obvykle vytvoří v kartě, privátní klíč nikdy neopouští kartu. Je používán jen pro generování digitálního podpisu nebo pro dešifrování session keys (běžných klíčů) a data v malém množství. Příklady karet této kategorie jsou IBM MFC 4.22, IBM MFC 4.3, Gemplus GPK4000**, Gemplus GPK8000**, and others from Schlumberger, Giesecke & Devrient, etc.

Java Karty dovolují vytvoření uživatelských příkazů na kartě. Programy, které realizují uživatelské příkazy jsou kartové aplety (applets). Jsou realizované s použitím podmnožin programovacího jazyka Java, spoléhající se na knihovny jazyka Java upravených pro použití v smart kartách. Příkladem Java karet je Gemplus GemXPresso** card. Bezkontaktní Java karta byla nedávno vyvinutá ve výzkumné laboratoře IBM Zurich.

Windows pro Smart Karty. Smart karty s operačním systémem „Windows for Smart Card“ dovolují realizaci uživatelských příkazů. Je možné realizovat příkazy, které používají funkce z interní kryptografické knihovny karty pro poskytnutí funkce generování digitálních podpisů, uložení a čtení certifikátů. Ten to typ smart karet byl vyvinut společnosti Microsoft.

Smart karty MULTOS poskytují rozhraní systému souborů a navíc vypracované prostředí pro uživatelské aplikace. Vyvíječi aplikací můžou vytvořit tyto uživatelské aplikace pomoci nového jazyka nazvaného MEL (MULTOS Executable Language). Jazyk Assembler může být použit s jazykem MEL, pro jazyky C a Java je poskytován překladač na jazyk MEL.


Digitální podpis.
Rovněž velmi krásným využitím kryptografických metodů je vypracování digitálního podpisu. V základě technologie digitálního podpisu leží kryptografické algoritmy s otevřeným klíčem jako, na příklad, RSA a nebo DSA. Digitální podpis představuje nejúčinnější prostředek pro zajištění integrity odesílaných dat (například zadání transakcí) a bezpečné ověření jejich odesilatele. Použití digitálního podpisu je proto omezeno na případy, kdy je jako komunikační prostředek používán počítač (například Corporate Banking nebo Internet banking).

Princip digitálního podpisu
Digitální podpis (digital signature) je nejčastěji výtah zprávy zašifrovaný něčím privátní klíčem. Tomuto procesu se říká podepsání. Digitální podpis první dvě funkce, obě jsou pro bezpečnost systému důležité:
- Integrita – digitální podpis indikuje, zda nedošlo k modifikaci souboru nebo zprávy
- Autentizace – digitální podpis umožňuje matematicky ověřit, kdo zprávu podepsal

Kromě toho může plnit ještě třetí funkci, která může být někdy velmi důležitá – nepopiratelnost. Nepopiratelnost znamená, že jakmile zprávu podepíšete a odešlete, nemůžete nikdy v budoucnu tvrdit, že nejste autorem této zprávy. Nemůžete svou zprávu zapřít, protože byla podepsána vaším privátním klíčem, o němž se předpokládá, že jej vlastníte pouze vy.

Digitální podpis je vytvořen takto: Nejprve je z podepisovaných dat vypočten kryptografický kontrolní součet. Z kryptografického kontrolního součtu je na základě tajného klíče vypočten digitální podpis.

Podobně probíhá i ověření digitálního podpisu: Příjemce ověří, že digitální podpis vyhovuje veřejnému klíči odesilatele. Vypočte kryptografický kontrolní součet přijatých dat a porovná jej s kryptografickým kontrolním součtem, který obdržel od odesilatele. Pokud součty odpovídají, je ověřeno, že data nebyla po odeslání klientem změněna.
Příjemce má k dispozici pouze veřejný klíč odesilatele. Pouze veřejným klíčem odesilatele lze ověřit jeho digitální podpis. Tento klíč ovšem nemůže být použit pro vytvoření platného digitálního podpisu. Veřejný klíč může být znám komukoli.

Digitální podpis je velmi složitý, zašifrovaný číselný kód, který je pro každého uživatele ojedinělý obdobně jako otisk prstu, a který je právně ověřitelný. Podstata digitálního podpisu spočívá v "označkování" elektronického dokumentu, ze kterého je zřejmá nezpochybnitelná identita autora. K podepisování dokumentu slouží privátní, tajné klíče. Ke čtení dokumentu a ověření podpisů slouží veřejné klíče.

V současné době se pro vytváření digitálních podpisů nejčastěji používají kombinace algoritmu pro výtah zprávy MD5 a kryptografického mechanismu s veřejným klíčem RSA. Další možnost spočívá v použití algoritmu SHA (Secure Hash Function) a ElGamalova mechanismu veřejného klíče – tyto algoritmy dohromady vytvářejí algoritmus DSA (Digital Signature Algorithm).


Standard SSL.
Mezi nejmodernější metody zabezpečení komunikace po internetu patří v současné době bezesporu standard SSL (Secure Socket Layer), který definuje univerzální bezpečnostní protokol využívaný zejména pro zabezpečení komunikace s webovými servery, a tudíž i aplikacemi pro e-business a internetové bankovnictví. SSL technologie umožňuje dvě funkce: šifruje informační tok mezi klientem a serverem a vytváří základ pro vzájemnou klient/server autentizaci. SSL bylo vyvinuto firmou Netscape Communication v roce 1994. Je podporováno populárními klientskými aplikacemi (Netscape Navigator, Microsoft Internet Explorer), většinou serverových aplikací (Netscape, Microsoft, Apache, Oracle, NSCA a dalších) a certifikačními autoritami jako je ve světě VeriSign a u nás I. CA. Dřívější verze SSL 2.0 umožňovala pouze autentizaci serveru (pouze server potřeboval certifikát). Současná verze SSL 3.0 zajišťuje i autentizaci klienta (server i klient se musí prokázat certifikátem).
Předností využití standardu SSL je kromě vysoké úrovně bezpečnosti i nezávislost klienta na konkrétním počítači a jeho maximální komfort.

Princip protokolu SSL
Základem pro zajištění bezpečného spojení pomocí SSL jsou tzv. certifikáty.
Certifikát obsahuje údaje o svém majiteli, jeho veřejný klíč a údaje o certifikační autoritě, která certifikát vydala, přičemž tyto údaje jsou digitálně podepsány. Každá komunikující strana si pomocí veřejného klíče ověří digitální podpis certifikátu a zjistí z něj údaje o protistraně. Předpokladem je důvěra certifikační aurotitě, která certifikát vydala.
Pro šifrování jsou použity klíče, které jsou automaticky generovány na základě náhodně zvolených dat. Je přitom zabráněno tomu, aby tato data (a samozřejmě i samotné klíče) získala třetí strana, nebo je mohla předvídat.
Ověření identity serveru, se kterým klient komunikuje, zajišťuje automaticky internetový prohlížeč. Klient případně potvrdí, zda důvěřuje certifikační autoritě, která vydala certifikát protistrany.

SSL je založeno na vytvoření zabezpečeného kanálu mezi klientem (prohlížečem) a serverem.
Tento kanál garantuje důvěrnost každé zprávy, která se jím přenáší. SSL nešifruje žádné informace uložené na klientu ani na serveru. SSL zabezpečuje aplikační protokoly jako jsou
HTTP, NNTP a Telnet. SSL umožňuje bezpečnou výměnu informací při inicializaci TCP/IP
spojení, při kterém se klient a server domluví na konkrétní užité bezpečnosti a vykonají vzájemnou autentizaci certifikáty. Od tohoto bodu, pokud je šifrování aktivováno (počáteční
stav), SSL šifruje a dešifruje proud bytů použitého aplikačního protokolu. To znamená, že
všechny informace v HTTP požadavku i v HTTP odpovědi jsou plně zašifrované včetně URL,
které klient požaduje, potvrzených obsahů formulářů19, přístupových autorizačních informací
a všech dat vrácených serverem klientovi.

Protože HTTP+SSL (nebo „HTTPS“) a HTTP jsou dva různé protokoly, které typicky fungují na různých portech (443 a 80). Na stejném systému může běžet zabezpečený i nezabezpečený HTTP server zároveň. To znamená, že můžeme zpřístupnit některé informace všem uživatelům bez zabezpečení a jiné informace již určitým uživatelům užitím zabezpečení. Například v internetovém obchodu by měl být katalog produktů přístupný nezabezpečeně a objednávání a placení zabezpečeně.

SSL používá kryptografii s veřejným klíčem pro výměnu klíče sezení mezi klientem a serverem. Tento klíč je unikátně generován pro každé spojení mezi serverem a klientem a je použit pro šifrování HTTP transakcí (požadavku a odpovědi). Kryptografie s veřejným klíčem je užita jen pro vzájemné ověření a k zašifrování klíče sezení. SSL používá šifrování s privátním klíčem20 při šifrování další výměny informací. Každá transakce se provádí s různým klíčem sezení, takže i kdyby útočním „ukradl“ jeden klíč, v další komunikaci mu to nijak nepomůže.

Nové webové klientské aplikace mají již zabudovány klíče některých certifikačních autorit jako je VeriSign, další je možno samozřejmě doinstalovat. Tyto zabudované klíče umožňují klientské aplikaci ověřit legitimitu kontrolou identity serveru a identity CA, která danému serveru certifikát vydala. SSL vyžaduje, aby server měl digitální certifikát vydaný důvěryhodnou certifikační autoritou. Tento verifikační proces probíhá transparentně. Pokud klient (prohlížeč neboli uživatel) nedůvěřuje certifikační autoritě (nemá nainstalován její certifikát), která vydala serveru certifikát, klientská aplikace vypíše varovné hlášení.

Přidání každé bezpečnostní vrstvy zpomaluje serverové procesy. SSL není výjimkou. Avšak v aplikacích, kde je nutná zvýšená bezpečnost, SSL vysoce převyšuje risk.