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:
- Šifrování na kanálové úrovni celé informace, včetně služebních dat
transportních protokolů komplikuje mechanizmus směrování síťových paketů a
vyžaduje rozšifrování dat v zařízeních pomocné komutace (stavidla,
převaděče atd.);
- Šifrování služební informace může přivést k objevení se statistických
zákonitostí šifrování dat. Má to vliv na spolehlivost ochrany a způsobuje
omezení při využití kryptografických algoritmů.
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:
- Dost často se stává, že po šifrování souboru zůstává ho
nezašifrovaná kopie a zapomíná se na jiném magnetném disku, počítače a
nebo ve formě výpisu;
- Velikost bloku v blokovém algoritmu šifrování může významně
převyšovat velikost jednotlivé porce dat v souboru. V důsledku čeho
konečná délka zašifrovaného souboru bude mnohem víc, než délka
výchozího;
- Rychlost šifrování souborů pomoci zvoleného k tomuto účelu
kryptografického algoritmu musí odpovídat rychlostem, na kterých pracují
vstupní/výstupní jednotky současných počítačů;
- Rychlost šifrování souborů pomoci zvoleného k tomuto účelu
kryptografického algoritmu musí odpovídat rychlostem, na kterých pracují
vstupní/výstupní jednotky současných počítačů;
- Práce s klíče je dost složitá, protože různí uživateli obvykle mají
přístup nejen k různým souborům a taky k jejích jednotlivým částím;
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:
- Při otevření šifra kryptoanalytik se spoléhá na nadbytečnost
(redundance), co je velmi typické jakémukoliv otevřenému textu. Komprese
pomáhá zbavit se té nadbytečnosti.
- Šifrování dat je docela komplikovaná operace. Při použití komprese
se délka otevřeného textu zmenšuje a tím samým se krátí doba procesu
šifrování.
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.