Bankovní institut vysoká škola Praha Katedra informačních technologií a elektronického obchodování K 108
Síťové ochrany a jejich aplikace Bakalářská práce
Autor:
Vlček Jan Informační technologie, manager projektů inf.systémů
Vedoucí práce:
Ing. Vít Fabera Ph.D.
Odborný konzultant:
Ing. Milan Fabula
Praha
březen, 2009
Prohlášení: Prohlašuji, že jsem bakalářskou práci zpracoval samostatně a za použití literatury uvedené v seznamu. V Praze dne 22.3.2009
Vlček Jan
2
Poděkování: Chtěl bych poděkovat Ing. Vítu Faberovi, Ph.D. za velikou vstřícnost, kterou prokázal při vedení mé práce, odborný dohled a věcné připomínky. Dále děkuji svému odbornému konzultantovi Ing. Milanu Fabulovi, který mi pomohl s praktickým řešením problémů. Také bych chtěl poděkovat svým rodičům za psychickou podporu bez které bych práci nikdy nedokončil.
3
Anotace: Tato bakalářská práce se zaměřuje na ochranu sítí a jejich aplikací. Porovnává náročnost implementací, jak na úrovni hardwarové, tak softwarové. Dále zkoumá různé druhy útoků a způsoby jejich předcházení.
Počet stran:
56
Počet odstavců:
418
Počet řádek:
1866
Počet slov:
13789
Počet znaků:
97638
4
ÚVOD………………………………………………………………………………………………….…...6 1.HACKING……………………………………...……………………………...……….. ………………7 1.1.Druhy hackerských útoků…………………………………………………………...………………. ...8 1.1.1.Útoky na hesla…………………………………………………………………………....... …….......9 1.1.2 Takzvané čmuchání………………………………………………………………...… .9 1.1.3 Předstírání IP adresy ……………………………………………………...….... ……………... .…..9 1.1.4 Útoky založené na společném plánování………………………………………. …………………. 10 1.1.5 Únos sezení………………………………………………………………………………....……….10 1.1.6.Uhodnutí pořadového čísla…………………………………………….............................................11 1.1.7 Falšování webu……………………………………………………………………………..……….12 2. FIREWALLY………………………………………………………………………………....…….…14 2.1.Bezpečnost firewallů…………………………………………………………………………..………16 2.2.1 Jeden z prvních firewallů………………………………………………………………….………...17 2.2.2 Přístupy do Internetu………………………………………………………………………………..18 2.2.3 Příklady některých druhů firewallů…………………………………………………………………18 2.2.4 Jaký firewall zvolit………………………………………………….…………………………...…..20 2.2.5. Demilitarizované zóny…………………………………………………………………………...…21 2.2.6 Firewall on firewall……………………………………………………………………………..…..22 2.2.7 Aplikační protokoly.…………………………………………………………………………………22 2.2.8 Elektronická pošta…………………………………………………………………………………..23 2.2.9 Pošta přicházející na SMTP……………………………...……………………………….………...24 2.2.10Internet frontend……………………………………………………..……………………………..25 2.1.11 Personální firewall….……………………………………………...………………………..…….31 3 BIOMETRICKÉ IDENTIFIKACE..................………………………………………………………32 3.1 Popisy některých druhů biometrických identifikátorů…...….……….……………………………..…34 3.1.1 Optické senzory…………….…………………………...….……………………………….……….34 3.1.2 Ultrazvukové senzory…………………………………….………………………………………….34 3.1.3 Kapacitní senzory………….…………………………....………….………...……………………...35 3.1.4 Teplotní senzory……………………………………………………………….…………..………...35 3.1.5 Verifikace tvaru ruky…………………………………………………………………………….….35 3.1.6 Verifikace obličeje……………………………………………………………….………………….35 3.1.7 Verifikace hlasu………………………………………………………………….………………….36 3.1.8 Verifikace sítnice………………………………………………………………………….…………36 3.1.9 Verifikace duhovky………………………………………………………………………………….36 4.BEZPEČNOST A KRYPTOGRAFIE ……………………...……………………………..37 4.1 Kódování a šifrování……………………………………………………........………………………..38 4.1.1 Symetrické šifrování……………………………………………………………….………..……….38 4.1.2 Blokové a proudové šifry…………………………………………….…………….………………..39 4.1.3 Blokové šifry……………………………………………………………………….…….………….39 4.1.4 Proudové šifry…………………………….…………………………………...……….……………40 4.1.5 Kvalita šifer……………………………….…………………………………..……….…………….40 4.1.6 Požadavky na kvalitní šifrovací algoritmus………………...……………………………………….40 4.2.1 Zveřejňování šifrovacích algoritmů……….…………………………………………………..…….41 4.2.2 Blow fish...……………………………………………………………………………..……………42 4.2.3 Rc2…………………………………………………………………………………………………..46 4.2.4 Rc4…………………………………………………………………………………………..………46 4.2.5 Idea……………………………………………………………………………….…………………46 4.2.6 Cast………………………………………………………………………………………………….47 4.2.7 AES…………………………………………………………………………….………………....….47 4.2.8 Shrnutí……………………………………………………...………………….…………………….48 4.3.1 Asymetrické šifrování………………………………………………………….………………...…..48 4.3.2 Kombinace metod šifrování (praktické použití)………….…………………………………….……51 4.3.3 Správa klíčů……………………………………………………………………………………..…..51 4.3.4 Certifikační autorita a certifikáty………………………………………………………………..…..52 Závěr…………………………………………………………………………………………………...…54
5
Úvod Cílem této práce je blíže specifikovat problematiku ochrany sítí hned z několika hledisek. V úvodu popisuje některé vybrané tipy útoků a hacking jako takový. Druhá kapitola je věnována firewallům od jejich vzniku, popisu nejzákladnějších tipů a jejich implementaci v praxi. V kapitole třetí se budeme zabývat hardwarovými prvky zabezpečení systémů jakými jsou biometrické identifikátory a různé tipy senzorů. Poslední kapitola popisuje Kryptografii jako jednu ze složek softwarových ochran sítí, například Šifrovací algoritmy a různé tipy šifer. Bohužel je dnes těžké odhadnout vypočítavost lidí, kteří tyto sítě napadají ať už z důvodů se obohatit, nebo jen tak pro zábavu. Proto by mělo být naším cílem tyto sítě chránit všemi prostředky, jak technickými, tak i programovými, které máme k dispozici a neustále sledovat novinky z této oblasti.
1.Hacking Vznik pojmu hacking, či hacker (tj. ten kdo provádí hacking ) sahá zhruba do 70. let dvacátého století. Programátoři, kteří pracovali na tehdejších počítačích, si často potřebovali poradit s nepříliš dobře fungujícím programem. Zásahy do programů, které je měli přimět k tomu, aby fungovali lépe a efektivněji, se označovaly anglickým termínem hacks. Toto slovo je obtížně přeložitelné, doslova znamená záseky. Je zřejmé, že úloha tehdejších hackerů byla pozitivní, neboť vylepšovali programy. Postupně se toto označení začalo používat pro počítačové nadšence, kteří analyzovali systémy, aby zjistili, jak fungují, případně se snažili odhalit a napravit chyby, které se v nich vyskytovali, nebo na ně alespoň upozornit. Na významovém posunu pojmu hacker měla a má nemalý vliv medializace problému.
Hacking v dnešním pojetí znamená proniknutí do počítačového systému jinou než standardní cestou, tedy při obejití nebo prolomení jeho bezpečnostní ochrany. Osoba provádějící hacking se nazývá hacker. Motivace hackera k jeho činnosti může být různá. V prvopočátcích hackingu se většinou jednalo o snahu zjistit, jak systém funguje, případně odstranit jeho chyby. Často také docházelo k hackingu proto, aby si hacker vydobyl ve své komunitě slávu a image tím, do jakého systému se mu podařilo nabourat. Hackeři tohoto typu neměli v úmyslu cílový systém jakkoli poškodit, a také k tomu, až na výjimky, nedocházelo. Časem ale došlo k nástupu nového typu hackerů, jejichž pohnutky jsou výrazně materiální, kdy účelem jejich činnosti je především obohatit se. Tito programátoři raději hledají trhliny v počítačových (ale také jiných komunikačních) systémech než by je zpracovali. Ačkoliv se většina hackerů pokouší proniknout do systémů pro osobní požitek, existuje mnoho těch, kteří se podílejí na průmyslových a špionážních sabotážích. Ať už pro osobní zadostiučinění nebo pro jakékoliv průmyslové záměry, představují hackeři neobyčejné nebezpečí pro počítačovou síť připojenou k internetu.
7
1.1 Druhy hackerských útoků Existuje několik základních typů útoků, které hackeři mohou vézt na sítě připojené k internetu:
● útoky na hesla
● útoky založené na sdílení v síti a „čmuchání“ v paketech
● útoky založené na předstírání IP adresy
● útoky založené na společenském plánování
● útoky založené na únosu sezení
● útoky s úmyslem využít zranitelnost technologie
● útoky založené na uhodnutí pořadového čísla
8
1.1.1 Útoky na hesla Útoky na hesla jsou historicky jedním z nejoblíbenějším způsobů přístupu k on-line sítím. Na začátku se hackeři pokoušeli nabourat do síťových systémů vkládáním jednoho přístupového jména a jednoho hesla. Hacker zkoušel heslo po heslu, dokud nezačalo fungovat. Hackeři ale brzy přišli na to že by mohli napsat jednoduché programy, které by zkoušeli hesla na za ně. Tyto programy zpravidla cyklují a zkoušejí a vyzkoušejí všechna slova ze slovníku, ve kterém jsou uvedena potencionální hesla. Tyto rychlé automatizované útoky se staly známými jako slovníkově orientované útoky (dictionary-based attacks).
1.1.2 Takzvané čmuchání Takzvané čmuchání (z angl.sniff) v paketech je snad nejobtížnějším typem nabourávání sítí. Každý paket přenášený po internetu může putovat přes obrovské množství počítačů před tím, než dorazí ke svému cíly. Použitím čmuchala paketů mohou hackeři zachytit pakety (včetně paketů s uživatelskými jmény a hesly, přenosy čísel kreditních karet, pakety e-mailů atd.) cestující mezi jednotlivými místy na internetu. Když hacker zachytí paket, může ho otevřít a ukrást jméno počítače, uživatelské jméno a heslo přidružené k paketu.
1.1.3 Předstírání IP adresy Těží ze způsobu adresování paketů, který používá protokol TCP/IP při přenosu. Počítače při přenosu dat z jednoho na druhý s každým přenosem uvádí také identifikaci odesílajícího a přijímacího počítače. Když hackeři používají IP spoofing k napadení sítě, znamená to, že poskytují chybné informace o svém počítači. Stručně řečeno, hacker tvrdí, že je hostitelem v rámci interní sítě nebo jinak chráněné sítě, tím že okopíruje TCP/IP adresu hostitele. To umožní hackerovi získat vnitřní (ne však vnější) přístup k systému a systémovým službám. Kdysi namáhavou, časově náročnou práci tohoto útoku jsou dnes schopny provést automatické nástroje během 20 sekund a tím se z předstírání IP adresy stala jednoduchá záležitost.
9
1.1.4 Útoky založené na společném plánování Jsou častější a nebezpečnější v souvislosti s rostoucím počtem uživatelů, kteří jsou připojeny k internetu a sítím. Obvyklým příkladem společenského plánování je pro hackera poslání e-mailu, který naznačuje, že hackerem je systémový administrátor. Často e-mail uživatele nabádá, aby poskytli své heslo e-mailem „administrátorovi“, aby mohl pracovat na systému. Útoky založené na společenském plánování závisí na tom, kolik toho uživatelé ví o počítačích a sítích. Nejlepší ochranou je v tomto případě (ale také v řadě jiných) proškolení a poučení uživatelů.
1.1.5 Únos sezení Je poměrně populární útok, částečně proto, že únos sezení dovoluje jak import, tak export dat ze systému. Při tomto způsobu napadnutí „holýma rukama“ najde útočník existující spojení mezi dvěma počítači, obecně serverem a klientem. Po vniknutí buď přes nechráněný směrovač nebo nevhodný firewall může útočník detekovat příslušná čísla TCP/IP adres během výměny mezi počítači. Jakmile útočník získá adresu legitimního uživatele, unese uživatelovo sezení tím, že simuluje čísla adresy uživatele. Poté, co útočník unese sezení, odpojí hostitelský počítač legitimního uživatele a získá volný přístup k souborům, ke kterým může přistupovat legitimní uživatel. Útoky s úmyslem využít zranitelnost technologie zahrnují některé útoky na bezpečné přístupy a také mnoho dalších. Každý větší operační systém je zranitelný. Některé jsou přístupnější než jiné. Na druhé straně, pravděpodobnost, že nějaký hacker objeví místo zranitelnosti, je velmi malá.
10
1.1.6 Uhodnutí pořadového čísla Představuje nejjednodušší hackerský útok. Každý počítač na síti má jedinečnou IP adresu. Každý síťový počítač připojí ke všem vysílaným paketům cílovou IP adresu a jedinečné číslo nazvané pořadové číslo (sequence number). V rámci spojení TCP akceptuje přijímací počítač na druhé straně pouze pakety se správnou IP adresou a správným pořadovým číslem. Některá bezpečnostní zařízení, včetně směrovačů, povolují vysílání v síti pouze počítačům s určitými IP adresami.
Útok uhodnutím sekvenčního čísla TCP/IP využívá pro získání přístupu do sítě způsoby, kterými se v síti adresují počítače a řadí výměny paketů. Hacker hádá pořadové číslo TCP/IP v podstatě ve dvou krocích. V prvním kroku se pokusí určit IP adresu, obecně buď pozorováním paketů na internetu, zkoušením čísel uzlů po řadě nebo připojením se k uzlu webovým prohlížečem a hledáním jeho IP adresy ve stavovém řádku.
Hacker ví, že u jiných počítačů dané sítě bude část adresy stejná jako adresa serveru, pokouší se proto hledat takovou IP adresu, která mu umožní průchod směrovačem a zajistí přístup do sítě jako internímu uživateli. Například, jestliže má systém IP adresu 192.0.0.15, hacker, který ví že v síti může být připojeno maximálně 256 počítačů, zkouší hádat všechna čísla, které representuje poslední bajt této série. IP adresa vypovídá mimo jiné o tom, kolik počítačů je do sítě připojeno. V tomto případě nastavení dvou nejvýznamnějších bitů (128 plus 6= 192) v největším bajtu indikuje, že je síť třídy C. Hacker nejdříve monitoruje požadovaná čísla paketů procházejících mezi počítači této sítě. Pak se pokusí uhádnout následující pořadové číslo, čímž se vloží mezi server a uživatele. Jelikož má také IP adresu serveru, může hacker skutečně generovat pakety se správnými pořadovými čísli a správnými IP adresami, což umožní zachytit vysílání s uživatelem. Jakmile získá hacker interní přístup do systému uhodnutím požadovaného čísla, získává i přístup k veškerým informacím vysílaným komunikačním systémem serveru včetně souborů hesel, přihlašovacích jmen, důvěrných dat i jakýchkoliv jiných informací procházejících sítí.
11
1.2.7 Falšování webu Při tomto druhu útoku vytvoří hacker přesvědčivou, nicméně falešnou kopii celého webového uzlu. Falešný web vypadá stejně jako skutečný. Jinými slovy, falešný uzel obsahuje stejné stránky a odkazy jako skutečný uzel. Celý však podléhá řízení hackera, takže veškerá komunikace mezi prohlížečem oběti a webem jde přes hackera. Tento útok umožňuje hackerovi pozorovat nebo modifikovat všechna data jdoucí od oběti na webovský server a navíc i řídit zpáteční provoz od serveru k oběti. Hacker má tedy mnoho možností.
V průběhu útoku hacker zaznamenává obsah stránek, které oběť navštěvuje. Když oběť vyplní HTML formulář, prohlížeč odešle tato data serveru. Jenomže mezi server a klienta je vložen hacker, který tak zaznamená všechny údaje vyplněné klientem. Kromě toho může hacker zaznamenat i data, kterými server odpověděl klientovi. Vzhledem k tomu, že většina on-line obchodů používá formuláře, hacker má možnost získat čísla účtů, hesla i jiné důvěrné informace, které oběť vloží do falešného formuláře.
Hacker může pozorování uskutečnit dokonce i v případě, že oběť navázala zdánlivě bezpečné spojení. Ať již zdánlivě bezpečné spojení používá SSL nebo S-HTTP, hacker může spojení zfalšovat. Jinými slovy, přestože prohlížeč oběti zobrazuje bezpečnostní ikonu (obvykle obrázek zámku, nebo klíče), může se stát, že oběť vysílá přes nebezpečné spojení. Hacker je rovněž schopen modifikovat jakákoliv data, procházející v obou směrech mezi obětí a serverem. Když si například oběť objedná 100 kusů nějakého zboží, hacker může změnit jak číslo produktu, tak jeho množství, nebo adresu dodávky a nechat si tak poslat například 200 kusů téhož zboží na účet oběti. Hacker může modifikovat také data, která server vrací. Hacker nemusí uchovávat obsah celého webu. Všechno je totiž dostupné on-line, takže v případě potřeby si hacker příslušnou stránku stáhne ze skutečného webu a uživateli pak poskytne falešnou kopii. Požadavek na stránku prochází strojem hackera. Hacker tedy může vyhledat každou novou stránku, o kterou oběť požádá. Falšující server ve skutečnosti potřebuje uchovávat stažené stránky pouze v průběhu páchání útoku.
12
Prvním krokem hackera je přepsat všechny lokátory URL na některé webovské stránce tak, aby ukazovaly na server hackera místo na skutečný server. Předpokládejme pro tuto chvíli, že hackerův server je na doméně hacker.cz. Hacker přepíše URL tak, že například vloží http://www.hacker.cz/ před každou adresu. Potom se například z adresy http://www.abc.cz/ stane http:/www.hacker.cz/www.abc.cz/ Při návštěvě přepsané webové stránky vypadají falešné URL normálně. Klepne-li návštěvník takového webu na odkaz http://www.hacker.cz/ protože touto adresou URL začíná. Zbytek URL řekne serveru hackera, odkud má vzít požadovaný dokument. Poté, co hacker vyhledá požadovaný skutečný dokument, přepíše všechny URL v dokumentu stejným způsobem jako předtím. Jinými slovy doplní http://hacker.cz/ před každé URL na vyžádané stránce. Nakonec hackerův server poskytne přepsanou stránku prohlížeči.Vzhledem k tomu, že na přepsané stránce ukazují všechna URL zpátky na hackerův server, pokud zvolíme další odkaz z nové stránky, hackerův server požadavek opět zachytí. Takto zůstane uživatel uvězněn ve falešném webu hackera a může donekonečna cestovat po odkazech, aniž by falešný web opustil. Pokud bude vyplněn formulář na stránce falešného webu, bude to vypadat, jako by byl zpracován správně pravý formulář. Falešné formuláře fungují zcela přirozeně, protože práce s formulářem je integrovaná v základních webových protokolech. Prohlížeč zakóduje vyplněný formulář jako HTTP požadavek a webový server odpoví použitím obyčejného HTML. Ze stejného důvodu mohou hackeři falšovat kterýkoliv URL a kterýkoliv formulář. Stejně jako jdou požadavky na stránky přes server hackera, jdou tudy i informace vyplněné obětí. Hacker má tedy možnost pozměnit informace před odesíláním skutečnému serveru tak, jak si bude přát. Změnit může i odpověď skutečného serveru. Obzvlášť zákeřnou stránkou předstírání webu je to, že útok funguje i v případě požadavku stránky přes bezpečné spojení. Jestliže se například uživatel pokusí navázat spojení s bezpečným s bezpečným webem (požitím protokolu S-HTTP) přes falešný web, bude okno prohlížeče vypadat jako obvykle. Hackerův server dodá stránku a prohlížeč informuje, že je bezpečně připojen k serveru, protože bezpečné spojení má. Naneštěstí je to bezpečné spojení se serverem hackera a ne s požadovanou webovou stránkou. Zahájení útoku vyžaduje akci ze strany oběti. Aby mohl útok začít, hacker musí nějakým způsobem oběť do falešného webu vlákat. Jinými slovy musí hacker zajistit, aby oběť klepla myší na falešný odkaz.
13
2. Firewally Firewall je systém tvořený jedním, nebo více počítači vyhrazený k „bezpečnému“ oddělení vnitřní sítě od Internetu tak, aby mohli uživatelé vnitřní sítě přistupovat k informacím dostupným na Internetu. Firewall využívá všech mechanismů, tj. filtrace, wrappery, proxy, bránu či SOCKS.
Co přináší Firewall nového kromě toho, že je realizován na vyhrazených počítačích? Firewall ukládá informace o provozu do souborů (logů), ze kterých lze nejenom vyčíst dílčí akce, ale i vytvářet sumární přehledy (reporty). Původní Firewally používaly běžný, neupravený operační systém, kdy správce firewallu musel periodicky ručně procházet logy a vyhodnocovat je, zda nedošlo k nějakému bezpečnostnímu incidentu. Nevýhodou těchto firewallů bylo, že se na bezpečnostní incidenty přišlo až s určitým časovým odstupem.
Aktivní firewally nezapisují vzniklé události jenom do logu, ale je na nich možné stanovit jistá pravidla, kdy vzniklá událost může způsobit jistou akci (alert). Akcí je pochopitelně spuštění či ukončení nějakého programu. Ve většině případů ale nejde o obecné spuštění nějakého programu, ale nejčastěji o:
● Odeslání elektronické pošty, SMS apod. s informací o události na předem zadanou adresu.
● Ukončení proxy, či filtru na kterém k události došlo.
● Zapsání IP adresy potencionálního útočníka na černou listinu
● Ukončení práce celého systému
● Spuštění obecného programu
Standardní knihovny TCP/IP nejsou schopny předat aplikační vrstvě zaručenou informaci, z jakého síťového rozhraní (z jaké sítě) datový rámec přišel. Takže při použití klasické proxy máme vždy obavu, nepodvrhuje-li nám náhodou někdo
14
z Internetu paket, jako by přišel z vnitřní sítě. Tomu se však umí většina filtrů bránit dostatečně efektními metodami, aniž by se proxy musela o tuto věc starat. V závislosti na typu firewallu je snaha, aby firewall řešil i zabezpečení na linkové vrstvě tj. aby firewall ošetřil i stavy, kdy:
● IP-datagramy s adresou odesílatele z vnitřní sítě přicházejí z Internetu.
● IP-datagramy s adresou odesílatele z Internetu přicházejí z vnitřní sítě.
● Uživatelé vnitřní sítě se pokouší přes firewall napadnout servery ve vnitřní síti, na které běžně nemají přístup. Tj. útočníci z vnitřní sítě se chtějí od firewallu „odrazit“ na servery ve vnitřní síti.
U firewallu je každé síťové rozhraní označeno buď jako vnitřní, jako vnější či jako rozhraní pro DMZ. Toto označení je u některých firewallů jen formální pro účely konfigurace, u jiných firewallů se pak opravdu na linkové vrstvě kontroluje, přicházejíli IP-datagramy na rozhraní na které přicházet mají.Všechny ostatní situace se pak označují za potencionální bezpečnostní incidenty a generují příslušné události. Některé služby jako je filtrace, proxy či NAT. provádí firewall sám. Jiné služby, jako je zjišťování virů v datech procházejících firewallem či autentizace klientů, může vyžadovat od aplikací běžících i na jiných počítačích specializovaných pouze na tyto účely. Takové počítače jsou zpravidla umístěny ve vnitřní síti. Firewall pak pracuje jako klient těchto serverů.
15
2.1 Bezpečnost firewallů Z hlediska operačního systému je u firewallu vyžadována bezpečnost třídy C2. Z běžně používaných firewallů pouze Cyberguard Knighstar používá bezpečnost třídy B. Základem každého Firewallu je vždy buď proxy (např. firewally, Raptor, Gautlet či MS Proxy), nebo filtrace (Firewall-1 či CISCO FIX). Mnohé firewally pak podporují jak proxy,tak filtraci. V takovém případě můžeme pro některé aplikace využít filtraci a pro jiné proxy.
Pojem firewall není přesně vymezen. Existuje i norma zabývajíci se firewally: RFC2979. Jedná se však o velice útlou, a tudíš ne příliš ne příliš „výživnou“ normu, která by problematiku obšírně vymezila.Tato norma specifikuje firewall jako agenta, který sleduje datový provoz mezi vnitřní sítí a Internetem, a zjistí li provoz, který považuje za neodpovídající či dokonce nebezpečný, tak jej zablokuje. I tato norma říká, že firewall pracuje buď jako filtr nebo cílový bod z hlediska protokolu TCP, nebo je firewall kombinací obou technik.
Firewall pracuje jako cílový bod v případě protokolu http, kdy klient navazuje spojení s proxy a proxy pak navazuje spojení jménem klienta dále do Internetu. Obdobně u protokolu SMTP firewall příjme elektronickou poštu a posléze ji předá dalším spojením dále. V případě že firewall končí jako koncový bod spojení, je vidět jak ze strany klienta, tak ze strany cílového serveru. V případě že firewall pracuje jako filtr, pak se ani klient ani server nemusí o existenci firewallu ani dozvědět. Norma RFC-2979 říká, že firewally pracují jako koncové body spojení by měly podporovat jen takovou podmomnožinu protokolů, která je bezpečná, měly by podporovat veškerá rozšíření protokolů zabývajících se kontrolami (validity check) a měly by být provozovány v bezpečném prostředí.
16
2.2.1 Jeden z prvních firewallů Jeden z prvních firewallů se jmenuje SEAL. Ten byl řešen třemi počítači původně se systémem ULTRIX později pak počítači se systémem DEC OSF/1 ( DEC OSF dnes bývá označovaný jako COMPAQ True64 UNIX).
Firewall SEAL byl řešen třemi počítači:
● Počítačem gatekeeper, na kterém běží proxy. Dále zde může běžet webový server firmy, FTP server a podobně. V případě velkých firem je možné místo jednoho počítače gatekeeper použít i více systémů: jeden pro proxy, druhý pro webový server a podobně.
● Počítačem gate, který slouží jako filtr na úrovni protokolů IP, TCP a UDP.
● Počítačem mailgate sloužícím jako poštovní server vnitřní sítě. Jelikož je tento počítač v podstatě ve vnitřní síti, odesílají se sem logy z počítačů gatekeeper a gate.
●
Nedochází zde ke komplikacím s DNS. Pro doménu firma.cz ve vnitřní síti slouží
jako jmenný server počítač mailgate a pro doménu firma.cz v Internetu slouží počítač gatekeeper (mailgate je pak slave serverem systému gatekeeper).
● Problémy s elektronickou poštou jsou také eliminovány. Pošta pro doménu firma.cz je v Internetu směrována na gatekeeper, který ji mechanicky předává na mailgate. Obdobně pošta z vnitřní sítě je předávána ze systému mailgate na gatekeeper, který ji odešle dále do Internetu. Pro elektronickou poštu se povolí pouze komunikace mezi systémy gatekeeper a mailgate. Toho lze dosáhnout filtrací na systémy gate.
17
2.2.2 Přístupy do Internetu Pokud chce klient přistupovat např. protokolem HTTP z vnitřní sítě do Internetu, kontaktuje proxy běžící na systému gatekeeper. Tato proxy pak jménem klienta zprostředkuje spojení do Internetu. Jinými slovy, červená síť musí mít adresy použitelné v Internetu, tj. přidělené poskytovatelem Internetu, protože klientská část proxy bude používat tuto adresu. Avšak červená síť musí být adresována i ve vnitřní síti, protože klient bude kontaktovat proxy z vnitřní sítě proxy ležící na červené síti.
Z firewallu SEAL se vyvinul firewall Alta Vista (dnes RAPTOR). Cílem bylo zredukovat firewall na jeden počítač oddělující vnitřní a vnější síť. Na takto vytvořený systém vznikly extrémní nároky na bezpečnost. Výsledkem je „jednopočítačový“ firewall zabezpečující veškeré funkce a teoreticky nevyžadují nějakou bezpečnostní součinnost ani směšovačů 1 a 2. Tento firewall zpracovává procházející informace od linkové vrstvy až po aplikační vrstvu. Avšak z bezpečnostních důvodů by na „jednopočítačovém“ firewallu neměly být spouštěny jakékoliv jiné aplikace než aplikace realizující samotný firewall. Tj. neměl by zde např. běžet podnikový webový či poštovní server atd. (o použití firewallu k editaci textů ani nemluvě, protože to by znamenalo navíc ještě nějaký přístup nepovolaných osob k systému). To má za následek, že většina firem si stejně zakoupí další dva systémy: jeden pro webový server a druhý pro poštovní server.
2.2.3 Příklady některých druhů firewallů Jiným tipem firewallu je TIS Firewall Tookit. Jedná se o soubor programů, který je možné zkompilovat na operační systém typu UNIX. Tento soubor programů obsahuje jednotlivé funkce potřebné pro činnost firewallu. Firewall si pak můžeme postavit podle našich potřeb „na míru“. Od tohoto firewallu je pak odvozen komerční firewall Gauntlet, který je doplněn o celou řadu moderních funkcí.
TIS Firewall Tookit vychází z představy použít firewall na klasickém operačním systému typu UNIX a vytvořit z něj jednopočítačový firewall. Filosoficky nám může vzniknout jedno z následujících zapojení:
18
● Firewall se dvěma síťovými rozhraními, jedním do Internetu a druhým do vnitřní sítě. Toto řešení se dříve nepovažovalo za bezpečné, protože je použit neupravený operační systém UNIX, který by zajišťoval i bezpečnost na linkové vrstvě. Dnešní unixové systémy mají velmi sofistikované IP filtry, které na síťové i linkové vrstvě zajišťují bezpečnost velmi kvalitně.
Např. Linux má svoje filtry ipchains a ibtables, ve FreeBSD pak najdete velmi kvalitní IPFILTER a IPFIREWALL.
● Firewall s jedním síťovým rozhraním, který je vytvořen dvěma směrovači s filtrací, mezi kterými je umístěn systém UNIX, označovaný jako ochranná bašta (bastion host). Filtr na směrovači 1 umožní komunikaci mezi baštou Internetem a filtr na směrovači 2 zase umožní komunikaci pouze mezi vnitřní sítí a baštou.
V dnešní době pokročilých směrovačů s propracovanou filtrací bych osobně použil na místo dvou pouze jeden směrovač s více rozhraními. Při porovnání zjistíme, že jsme dospěli ke stejnému závěru jako při popisu ochrany vnitřní sítě pomocí filtrace.
Dnes se mnohým může zdát, že TIS Firewall Toolkit již zastaral, že je lépe koupit komerční firewall. Avšak historie se opakuje. Stále existuje početná skupina architektů, kteří si budou chtít svůj firewall udělat sami. Tato skupina dnes často používá operační systém Linux nebo FreeBSD. V Linuxu je populární obdoba NAT (resp. NAPT), označována jako maškaráda. Avšak i tito tvůrci dnes někdy sáhnou po některých komponentách z TIS Firewall Tookitu a zkompilují si je. Pokud potřebují firewallem propustit protokol FTP, je proxy vždy lepší řešení a ve srovnání s reflexivními filtry kombinovanými s pasivním FTP je použití proxy z TIS Firewall Toolkitu velice elegantní. Drobnou komplikací je u TIS firewall Toolkitu jeho licence, která neumožňuje přímo zasahovat do kódu ani jej distribuovat, natož pak vydělávat na komerční podpoře tohoto systému.
19
2.2.4 Jaký firewall zvolit Ač se může zdát, že firewallů je velké množství, a výběr tedy nebude jednoduchý, po určitém seznamování se s firewally zjistíme, že neexistují dva, které by měli stejné vlastnosti, pak při posouzení všech vlastností, které pro danou situaci potřebujeme, dojdeme k zjištění, že vyhovuje pouze jeden či dva firewally.
Hledám-li firewall, kladu si následující otázky:
1. Je vůbec možné propojit konkrétní vnitřní síť s Internetem? Tedy nejsou na síti např. utajovaná data? Takové sítě s Internetem nepropojují ani firewallem, ani nikterak jinak. Firewall také není určen pro ochranu před zasazováním utajovaných dat zaměstnance z vnitřní sítě. Firewall může provádět i jistou filtraci na úrovni aplikačního protokolu, jsou-li ale zcizována data, např. před odesláním šifrována, pak taková filtrace je stejně neúčinná. S Internetem se tak propojují pouze sítě, na kterých chráníme komerční data nebo data vyžadující ochranu osobních údajů. 2. Je vůbec nutná ochrana firewallem? Je třeba si sepsat seznam rizik, která hrozí z Internetu, a na základé tohoto seznamu se rozhodnout. 3. Budeme vytvářet vícepočítačový komplex či provozovat firewall v prostředí jiného operačního systému, než je UNIX nebo Windows? Je třeba provézt analýzu jen pro tento případ. 4. Chceme provozovat konfekční firewall nebo si jej chceme udělat na míru např. na bázi firewall
systému Linux? Musíme však počítat s tím, že pokud architekt, který takový navrhoval, z firmy odejde dostaneme se do svízelné
situace.
5. Budeme vyžadovat firewall jehož základem je filtrace nebo proxy? 6. V případě proxy: budeme chtít Firewall na bázi systému UNIX, nebo Windows? Tj. má naše firma k dispozici správce operačního systému UNIX nebo Windows? Je třeba si také zvážit bezpečnost a stabilitu jednotlivých operačních systémů. 7. V případě volby operačního systému UNIX bych pak vybíral firewall na bázi toho UNIXu, který se ve firmě běžně provozuje. 8. Firewallu na bázi operačního systému třídy B bych dal přednost zejména v případě, že se bude provozovat Internetový FrontEnd na bázi operačího systému třídy B.
20
V každém případě je nutné si uvědomit, že zakoupením firewallu zabezpečení sítě zdaleka neskončí. Vaše síť i komunikační požadavky se budou měnit, ve firewallu a dalších systémech se budou nacházet chyby, jejichž rychlá oprava bude více než nutná, a i další podmínky se budou velmi rychle měnit. Znamená to, že bezpečnostní stav, ale spíše proces, a s tím je potřeba počítat. Východiskem je zajistit si dobrý bezpečnostní tým, který bude proces zabezpečení zajišťovat, nebo zakoupit tuto službu od důvěryhodného partnera.
2.2.5 Demilitarizované zóny S DMZ jsme se již setkali. DMZ je síť chráněná filtrací, jež je omezeně dostupná jak z Internetu, tak i z vnitřní sítě. V případě že použijeme filtraci na směrovači 1, pak jako další DMZ je síť s webovým serverem. Každá z těchto DMZ má jiné bezpečnostní charakteristiky. Zatímco DMZ za třetím rozhraním firewallu je vhodná pro umístění aplikačních serverů, tak DMZ za směšovačem 1 je vhodná pro umístění webového serveru s informacemi o firmě. Podobně jako DMZ se označuje i síť s poštovním serverem. Tato síť již však není dostupná z Internetu. Toho lze využít k umístění serverů určených pro autentizaci či pro virovou ochranu apod. Na DMZ zpravidla umísťujeme aplikační servery, abychom do Internetu zpřístupnili aplikace provozované ve vnitřní síti. Postupujeme přitom následovně: aplikace provozovaná ve vnitřní síti má informace uloženy v databázi. Tu část databáze, kterou potřebuje aplikační server na DMZ, v pravidelných intervalech replikujeme do DMZ.
Nabízí se možnost, aby se v DMZ neudržovala replika databáze, ale aby se aplikace běžící na aplikačním serveru přímo dotazovaly databáze aplikace ve vnitřní síti. To však není z bezpečnostního hlediska přípustné, protože útočník po prolomení takové aplikace běžící na aplikačním serveru by se mohl odrazit od aplikačního serveru a útočit přímo proti aplikaci ve vnitřní síti.
21
2.2.6 Firewall on firewall Na cestě mezi klientem a cílovým serverem nemusí být pouze jeden firewall, ale může jich být i více. Podobně může být i více filtrů proxy. Použití dvou (resp.více) firewallů za sebou může mít dva různé důvody:
1.
Vnitřní síť v sobě obsahuje nějakou ještě citlivější síť (např. síť s centrálními
servery). Pak je z bezpečnostního hlediska žádoucí, aby citlivá síť byla oddělena od zbytku vnitřní sítě firewallem zamezujícím běžným zaměstnancům přístup na citlivou síť. Celá vnitřní síť je pak oddělena od Internetu dalším firewallem.
2. Informací udržovaných ve vnitřní síti si zvláště ceníme, proto jejich ochranu chceme zvýšit zdvojením firewallu. V takovém případě většinou volíme dva různé firewally od dvou různých výrobců. Např. firewall 1 volíme na bázi proxy a firewall 2 na bázi filtrace (či opačně). Vznikne nám pak soustava DMZ. Pro jednotlivé aplikace pak můžeme projektovat tu nejvhodnější DMZ. Je třeba si uvědomit, že přímo adresovatelná z Internetu by měla být pouze DMZ 1.
2.2.7 Aplikační protokoly Na firewallu konfigurujeme průchody pro jednotlivé aplikační protokoly. Mnohé aplikační protokoly se vzhledem k firewallu chovají podobně, takže v principu řešíme tuto problematiku pro jednotlivé aplikační protokoly.
Součástí protokolu HTTP je podpora proxy. Výhodou použití proxy je paměť cache, která může zrychlit komunikaci mezi klientem a serverem. U protokolu HTTP se snažíme vyhnout filtraci nejenom proto, že filtrace nám nenabídne cache, ale zejména také proto, že mnohé servery používají nestandardní čísla portů, což je pro filtrace značně nepříjemné. Protokol FTP se zase špatně filtruje. Protokol FTP je proxy bezproblémová, kdežto filtrace obtížná. Navíc mnohé proxy pro HTTP jsou kombinovány s bránami s FTP. Brána FTP/HTTP umožňuje pouze některé funkce protokolu FTP a prakticky nám neumožňuje např. odeslání souborů na server pomocí prohlížeče.
22
Tyto protokoly jsou klasické protokoly na bázi klient/server, pro které se nepoužívají cache. Lze je proto snadno filtrovat i snadno pro ně spustit proxy. Obě řešení mají výhody i nevýhody. U protokolu SSL (reps. HTTPS) se většinou podřizuje řešení pro protokol HTTP, protože tunel pro SSL bývá součástí proxy pro HTTP.
2.2.8 Elektronická pošta Elektronická pošta spolu s DNS je vždy jádrem problému každého firewallu. Architekturu elektronické pošty ve firmě je vhodné vyřešit ještě před volbou firewallu. Základní otázkou pro řešení elektronické pošty ve firmě je, kde bude umístěn poštovní server firmy:
1.
Na Internetu tj. elektronická pošta zaměstnanců bude např. na poštovním serveru
poskytovatele Internetu či na samostatném serveru v Internetu.
2. V DMZ To má výhodu, že elektronickou poštu je možné vybírat jak z vnitřní sítě, tak i z Internetu. Toto řešení volí i vetší firmy. Avšak ty si budují ve vnitřní síti poštovní servery a jeden poštovní server umístí na DMZ. V případě, že zaměstnanec vyjede na cesty, přesměruje si elektrickou poštu na poštovní server na DMZ.
3. Poštovní server bude ve vnitřní síti.První dva případy lze řešit jednoduše, protože ve vnitřní síti jsou klienti protokolů SMTP, POP3 či IMAP4 a v Internetu (resp. Na DMZ) je poštovní server. Všechny tyto lze snadno filtrovat či pro ně spustit generické proxy. Nebo ještě efektivnější – spustit transparentní proxy. Problémem je jak spouštět příchozí poštu z Internetu na poštovní server umístěný ve vnitřní síti. V případě ochrany vnitřní sítě filtrací je nutné zúžit filtraci na filtraci mezi dvěma SMTP servery. Např. jeden umístíme na DMZ a druhý do vnitřní sítě. Pak zvolíme komunikaci na portu 25/tcp mezi dvěma těmito servery a jakoukoliv jinou komunikaci na 25/tcp zakážeme. Zejména u firem připojených k Internetu přes komutované linky si elektronickou poštu elektronickou poštu necháváme v Internetu směrovat na poštovní serveru poskytovatele Internetu. Po navázání spojení si pak poštu stahujeme z poštovního serveru poskytovatele. V tomto případě mnohdy stačí neumisťovat další poštovní server na DMZ, ale napsat filtr oboustranně mezi poštovním serverem poskytovatele a poštovním serverem ve vnitřní síti.
23
2.2.9 Pošta přicházející na SMTP server ve vnitřní síti Trochu odlišná je situace, kdy firewall založený na proxy. V takovém případě spouštíme nějaký zjednodušený poštovní server přímo na Firewallu ( tzv. SMTP-proxy ). Tento zjednodušený server přijímá poštu z Internetu určenou pro vnitřní síť a ukládá ji do fronty. Před uložením do fronty mohou být aktivovány i antivirové programy, které v poště vyhledávají viry.
V pravidelných intervalech se pak spouští SMTP klient, který z fronty předává došlou poštu na poštovní server ve vnitřní síti či odesílá poštu z vnitřní sítě do Internetu. Činnost SMTP klienta již není bezpečnostně problematická, tou je existence SMTP serveru přijímacího poštu. SMTP server přijímá jednak poštu z Internetu určenou pro vnitřní síť a jednak poštu z vnitřní sítě určenou pro Internet. Jelikož se v poštovních serverech v minulosti objevili chyby vedoucí až k prolomení systému, je vždy při spouštění poštovního serveru vyžadována ostražitost. Poštovní server býval spouštěn se superuživatelskými privilegii, aby mohl zapisovat příchozí poštu do poštovních schránek jednotlivých uživatelů. To však na firewallu nebývá nutné, protože by zde žádní uživatelé své účty neměli mít. Pokračuje proto, aby poštovní server měl přístup pouze k poštovní frontě.
Přesto se často SMTP server spouští tak, aby přijímal poštu pouze od klientů z IP adresy 127.0.0.1, tj. pouze z lokálního systému. Navíc se spustí na atypickém portu, k jehož použití není třeba superuživatelskývh privilegií. Na IP adresách síťových rozhranní firewallu a portu 25/tcp je pouze spuštěna SMTP proxy, která zjišťuje, nejedná-li se třeba o útočníka. Případně pak zavolá antivirové programy na přijatou poštu. Teprve takto prověřenou poštu předá poštovnímu serveru běžícímu na portu 2525/tcp.
U konferencí založených na elektronické poště i na bázi protokolu NNTP jsme uvedli, že se snažíme zásadně severy neumisťovat ve vnitřní síti. Snad pouze v případě, že je konference striktně omezena na vnitřní síť, je možno o příslušném serveru ve vnitřní síti uvažovat.
Synchronizace času je velmi důležitá nejen pro správný chod systému ve vnitřní síti, ale je důležitá i v případě prokazování času útoku zejména vlastními zaměstnanci. Může se
24
totiž stát, že by zaměstnanec posunul systémový čas na dobu, kdy byl prokazatelně mimo pracoviště, provedl útok a pak vrátil čas zpět. V takovém případě se pak marně hledá útočník z Internetu. Při podezření na manipulaci s časem je dobré si prohlédnout log úplně jiných služeb, než na které byl proveden útok. Pokud totiž útočník nebyl důsledný, můžeme v záznamech najít nesrovnalosti v posloupnosti zápisu do logu.
Zásada je abychom ve vnitřní síti měli tři nezávislé zdroje času. Protože zpravidla máme jeden firewall, může být jedním ze zdrojů času pouze čas získaný protokolem NTP z Internetu.
Jelikož synchronizace času protokolem NTP běží nad protokolem UDP, nemá smysl komplikovat propojení mezi vnitřní sítí a Internetem např. reflexivními filtry. Stačí synchronizovat čas na firewallu z Internetu a firewall pak prohlásit jako jeden ze tří časových serverů vnitřní sítě.
Při komunikaci protokolem NTP s časovými servery v Internetu a pomocí filtrace na přístupovém směrovači nastavíme, abychom komunikovali pouze s jedním až třemi vybranými servery v Internetu. Ostatní komunikaci protokolem NTP zakážeme Pro synchronizaci času v malých firmách většinou postačí synchronizace času z Internetu. Pak je dobré ji brát ze tří NTP serverů v Internetu.
2.2.10 Internet frontend Zatímco jsme se v předchozích kapitolách zabývali zejména problematikou ochrany uzavřené sítě ve smyslu poskytnout maximum služeb poskytovaných Internetem „svým“ uživatelům, nyní se pokusíme zaměřit na problém přesně opačný. Tím je v současnosti čím dál aktuálnější otázka, jak co nejefektivněji nabízet své služby klientovi přistupujícímu z Internetu k aplikacím, jejichž zdroje jsou ve vnitřní síti. Přitom však nesmíme zapomenout na bezpečnost vnitřní sítě před útokem zvenčí.
Zároveň s tím je často nezbytné (zejména v případech elektronického bankovnictví ) autentizovat klienta. Všechny tyto (často protichůdné) požadavky nám může pomoci splnit systém Internetový FrondEnd Virtual Valut, který na své hardwarové platformě dodává firma Hewlet-Packard. Pokud nahlédneme do česko-anglického slovníku, 25
zjistíme že slovo Valut může znamenat trezor, sklepení, nebo také žumpu. O tom, který z překladů je nejvýstižnější, nechť si čtenář udělá názor sám. V dalším textu se pokusím popsat činnost tohoto systému včetně jednoduchých příkladů konfigurace.
Systém je postaven na modifikovaném operačním systému HP-UX 11.00, což je víceméně typický představitel „BSD like“ UNIXu. Modifikace pak spočívá v implementaci rysů tzv. „B-class security“. Zejména z marketingových důvodů
( aby
nebyl použitelný po klienty vyžadující o řád dražší systémy splňující všechna kritéria příslušné normy) nejsou záměrně některé prvky B-class security implementovány.
Konkrétně se jedná o následující komponenty:
●
Síťová část systému : je pojata jako klasické rozhraní TCP/IP. Rozdělení na
„compartmenty“ (systémové rozdělení, které bude popsáno dále) je realizováno „natvrdo“ až po vstupu dat do systému na základě přiřazení síťové komponenty (nebo obecně řečeno příslušného vstupně-výstupního rozhraní) tomu kterému compartmentu.
● Grafická část (X-windows) : oficiálně není HP vůbec podporována, protože systém se v praxi instaluje na servery výkonnostní typové řady minimálně „L“ vlase, ke kterým se nedodává grafická karta a jedinou administrativní komponentou pro systém by měl být sériový terminál. V praxi však CDE funguje, dokonce jsou terminálová okna jednotlivým „compartmentů“ označena různými barvami. Jedná se však pouze o kosmetické úpravy, mezi různými „compartmenty“ můžeme volně přes clip board kopírovat data. To by nám klasický security „B“ class security systém neumožnil, a pokud využijeme příslušná privilegia a změníme „compartment“, ke kterému náležíme, okraj okna to samozřejmě „nepozná“.
● Systém volitelně umožňuje činnost bez zapnutého auditu, respektive v případě nemožnosti auditu lze zvolit, zda se má systém zastavit nebo pouze ukončit auditing. Toto bývá využíváno při útocích na systémy „C“ class security: hacker nejprve vyvolá událost, která způsobí masivní nárůst dat, tvořících výstup auditu, poté vyčká na přetečení disku a pak již „beze stop“ provede útok.
26
V rámci přesné specifikace používáme v literatuře následující termíny: Pod pojmem Virtual Valut si můžeme představit souhrn vlastního operačního systému plus nadstavbu tohoto systému, zahrnující v sobě nástroje pro integraci hotových aplikací do uvedeného prostředí, pro správu a řízení tohoto systému přes webové rozhraní, modifikovaný webový server Natscape ePlanet a některé další nástroje. Vlastní upravený OS, na kterém tato nadstavba funguje, se v literatuře označuje Virtual Valut Operation Systém (VVOS) a tyto dva termíny (VV-VVOS) bývají často zaměňovány. V operačním systému „B-class“ security jsou veškerá data rozdělena do tzv. compartmentů (oddělení), například letectvo, námořnictvo, pěchota apod. V našem případě se jedná o dva compartmenty:“Inside“ a „Outside“. Na základě tohoto rozdělení pak můžeme jednotlivá data ještě roztřídit do tzv. senzitivity levelů (doslovný překlad „úroveň citlivosti“ zní alespoň pro mne poněkud nejasné, proto se v tomto případě budu držet původní anglické fráze). V operačních systémech „B-class security level“ využívaných zejména v armádě, je toto rozdělení dat použito obecně pro oddělení dat různého stupně senzitivity a utajení. Například složka „letectvo“ je v rámci daného systému viditelná složce „letectvo tajné“, ale nikoli naopak. Složky s atributem „námořnictvo“, nebo dokonce „námořnictvo tajné“, nemohou sdílet data se složkami „letectvo“. Pokud ano, pak pouze přes přesně definované programové rozhraní. Přecházet mezi těmito úrovněmi je umožněno po přidělení určitých práv. U operačních systémů třídy „B“ je toto oddělení dat natolik striktní, že například ani není možné překopírovat v Xwindows přes clipboard data z okna s atributem „ letectvo“ do okna s atributem „námořnictvo“. Takto striktně ovšem VVOS nepracuje, ale přesto si musíme zvyknout na některé zvláštnosti – například, že „root“ zde není všemocný jako ve většině ostatních uniových systémů, ale je pouze jedním ze souboru systémových uživatelů, z nichž každý má striktně vymezené pravomoci. Předpokládá se, že ve firmách investující do tak drahého softwaru, jakým je Virtual Valut, bude i každého systémového uživatele představovat samostatný fyzický správce (obdobně jako například v bankovnictví je k otevření trezoru minimálně dvou lidí: klíčníka, který má klíč, ale nikdy nesmí znát heslo, a likvidátora, který zná heslo, ale nikdy nesmí dostat do ruky klíč). Po korektním nainstalováním a nakonfigurováním systému je přesto doporučeno uživatele „root“ „penzionovat“ (rétore), což je do verze VVOS 10.24 nevratná operace a po vlastních zkušenostech s administrací takového systému před tím krokem varuji. V popisované verzi VVOS 11.04 je již tento krok vratný (on v podstatě byl vratný i v předchozích verzích – po restartu systému do jednouživatelského režimu a 27
manuální editaci databází tcb), ale přesto si dle mého názoru tímto způsobem přivodíme pouze následné komplikace.
V rámci VVOS jsou implicitně použity celkem čtyři systémové úrovně:
● „systém low“ alias „systém“ alias „syslo“: nejnižší úroveň, s právem být čten ze všech ostatní úrovní. Typické použití: do této úrovně jsou například instalovány programové produkt, které mají být použitelné kýmkoliv a odkudkoliv. Pro ostatní systémové úrovně je read only. Proto na této úrovni jsou i veškeré konfigurační soubory, /etc/passwd, bezpečnostní tcb databáze, soubor stínových hesel apod.
● „system inside“ – může být člen z úrovně vyšší a číst z úrovně „system“. Může předávat informace nadřízené úrovni syshi. Typické použití : Do této úrovně jsou umisťovány data a programy i obsluha hardwarových prostředků komunikující s vnitřní sítí, která poskytuje klientovi vlastní službu. Typicky se tedy jedná o interface „vnitřní“ síťové karty, výstupy Oraclovského klienta, CGI skriptu a podobně.
● „system outside“ – může být člen z úrovně vyšší a číst z úrovně „system“. Může předávat informace nadřízené úrovni syshi. Typické použití: V této úrovni běží programy, které jsou určeny k prezentaci a vytvoření uživatelského rozhraní pro klienta. Jde tedy zejména o netscape iPlanet server (modifikovaná verze, označována jako verze „4.0“) Na tomto senzitivity levelu najdeme případné výstupy těchto programů (např. logy serveru iPlanet).
● „system hight“ alias „syshi“ alias „system inside-outside“ – může číst ze všech nižších úrovní. Typické použití:Auditing. V souladu s filosofii rozdělení systému de jednotlivých compartmentů je umožněno do systémové úrovně „systém inside outside“ ze všech ostatních úrovní zapisovat, ale není čitelný. Tj. typické použití pro auditing.
Jak již bylo uvedeno v popisu jednotlivých úrovní, vlastní klientská webová stránka včetně webového serveru je umístěna na úrovni system, takže i v případě potencionálního průniku na vnější stranu systému je pro útočníka read only. Webové servery však běží vně systému a jsou tam logicky zapisovány i jejich logy. „Vnější“ síťová karta je tedy rovněž přiřazena senzitivity levelu „outside“. Při správně 28
nakonfigurovaném Virtual Valutu na „vnější“ straně nenaslouchá nic než porty webových serverů. Dokonce i DNS je možné z principu nakonfigurovat (tedy alespoň podle dokumentace k systému) pouze tak, aby se obracelo s dotazy na jmenné servery vnitřní sítě. Elektronická pošta je zpracována rovněž serverem umístěným na „vnitřní straně“. Na systému neběží program sendmail, nahrazuje jej primitivní poštovní klient mtasmtp. (Čtenář se nesmí nechat zmýlit tím, že systém reaguje na příkaz sendmail včetně obvyklých přepínačů: jedná se pouze o symbolický link na mtasmtp). Odkud je patrné, že i kdyby se potencionálnímu útočníkovi podařilo proniknout do Virtual Valutu (což není u systému s rysy „B-class security“ zcela triviální), ocitne se na straně „outside“ a jeho případná destruktivní činnost může poškodit „pouze některé obrázky“ nebo části webových serverů, což relativně bezcenná data, která jsou snadno obnovitelná z pásky. V tomto faktu spočívá největší „kouzlo“ systému Virtual Valut. Čtenáře jistě napadne otázka, jak je tedy vlastně realizována komunikace se scripty na vnitřní straně?
K tomuto účelu slouží relativně jednoduchý program, o kterém jsem se letmo zmínil již výše, nazývaný „důvěryhodná brána“ („trushed gateway agent“ alias „tga“). Tento program, který se spouští při startu systému jako daemon, je jediný legální prostředek, který dokáže „přeštítkovat“ data s atributem „outside“ na data s atributem „inside“ a zprostředkovat spuštění CGI scriptu na „vnitřní“ straně. Program tga je pochopitelně v seznamu ACL.
Jakákoliv změna jeho kontrolního součtu způsobí vyhlášení poplachu. Mnohé čtenáře napadne, zda není slabé místo v systému v tom, že šifrovaný kanál SSL končí na outsider straně a odkud se holá data předávají důvěryhodné bráně. Dle dokumentace vyjádření pracovníků HP je tento problém řešen tak, že běžící webový server i tga musí mít komplementární systémová oprávnění, aby se TCP spojení mezi nimi mohlo uskutečnit, a toto je „v kompetenci“ jádra systému.
Vraťme se nyní k vysvětlení pojmu prostředí, na který jsem se odkazoval výše. Jedná se o to, že se scriptu běžícímu v prostředí úrovně inside snažíme nastavit nejmenší práva, která potřebuje ke své činnosti (analogicky, jako při konfiguraci „klasického“ webového serveru, konfigurujeme virtuální webové servery tak, aby běžely pod uživatelem „nobody“ ). Z toho vyplývá, že i klasické CGI scripty na klasickém webovém serveru 29
by měli běžet pod uživatelem typu „nobody“. CGI scripty jsou totiž samy o sobě, zvláště jsou-li psány v interpreteru typu PERL nebo jde-li o shellové scripty, značně problematická záležitost. Proto jsou na systému Virtual Valut předdefinováni uživatelé www a www (inside www a outside www). Pod uživatelem owww běží procesy vnějšího webového serveru, logicky v úrovni „systém outside“. Pokud tga zprostředkuje spuštění procesu (CGI scriptu) na vnitřní straně, běží tento proces v úrovni „system inside“ navíc pod „bezmocným“ uživatelem iwww. Toto vše je stanoveno v sekci „environment entry“ v konfiguračním souboru tgad. Conf, jehož příklad je uveden výše. Chci-li však používat např. script, který umožňuje klientovi, aby si například zaslal vyžadované informace e-mailem (tj. musím na vnitřní straně spustit program mail), nemám k tomu pod uživatelem iwww dostatečné pravomoci. Musím si tedy v případě potřeby zavézt jiného uživatele s omezenými právy, který však smí volat program mail, a nastavím jej v tgad.conf jakožto výkonného uživatele v dalším „enviroment entry“ ( v dalším případě jde o uživatele postak, který má uid 1035 v sekci mail).
Až do této chvíle jsem tajil, jakým způsobem se je vlastně předávána informace mezi outside a inside prostředím – jak se tgad „dozví“, který cgi script má na inside vlastně spustit? V dodané dokumentaci k systému se uvádí, že stačí vytvořit soubor nulové délky na místě outside webového CGI scriptu, který má název daného CGI scriptu a konkretně nastavená práva. Pak by již při pokusu o spuštění tohoto souboru měl zareagovat tgad deamon a spustit script na vnitřní straně. Poté by se na cílovém stroji mělo provézt založení případných systémových uživatelů a přidělení nezbytných oprávnění. Virtual Valut má poměrně propracovaný mechanizmus tzv. rolí, ke kterým se vztahují příslušná práva (obdobně jako to známe ze strany uživatelů např. ORACLE). Opatrní musíme být rovněž při zálohování. Pokud použijeme standardní prostředky typu tar, cpio, nebo dumb, získáme po obnově data bez bezpečnostních atributů (Virtual Valut operation System používá modifikované souborové systémy UFS nebo vxfs, které navíc obsahují informace o bezpečnostních atributech). Je proto nutné použít příkaz spax, který v sobě uchování těchto informací podporuje, resp. program bbtcreate, který nám vytvoří bootovatelné médium s kompletní zálohou systému ( obsahuje dd uloženou bootovací část a poté klasické spaxové zálohy jednotlivých filesystému, ze kterých můžee v případě potřeby získat obnovovaná data). Připravovaná verze Virtual Valut 4.5 již bude mít namísto serveru iplanet integrovánu aktuální verzi Apache.
30
Pravděpodobně tím budou eliminovány některé z nedostatků kritizovaných uživateli a komentované s tím, se nejedná o chybu, ale „vlastnost“. V podstatě lze vlastnosti tohoto bezesporu zajímavého produktu shrnout konstatováním, že i přes výše popsané výhrady v součastné době nemá ve světě e-bussinesu žádnou konkurenci a jeho použití může při správné konfiguraci výrazně zvýšit bezpečnost poskytované aplikace i vnitřní sítě.
2.2.11 Personální firewall Tak jsme si firewallem zabezpečili intranet, ale co když se svým PC přihlásím přímo na Internet? Dobré je si takové PC zabezpečit tzv. personálním firewallem, jehož cílem není bránit síť, ale pouze daný počítač. tj. aktivovat si na PC software, který zamezuje útočníkům přístup během jeho připojení do Internetu. Takový software lze koupit od několika firem, nebo je minimálně možné aktivovat aplikaci kterou nám připravil Microsoft. V novějších operačních systémech Microsoftu je tzv. „brána firewall připojení k Internetu“. Jedná se o aktivaci filtrů, které umožní přistupovat z jiných počítačů jen na vyjmenované služby běžící na mém počítači. Sofistikovanější personální firewally od jiných výrobců pak mohou obsahovat i databáze znalostí známých typů útoků a veškeré kontakty cizích počítačů vyhodnocovat proti této databázi (tzv. intrusion detection). Při detekci takového útoku mohou být personální firewally obdobně aktivní jako jsou aktivní klasické firewally. Tyto programy jsou ale zajímavější zejména v případě, že v Internetu provozujeme nějaký důležitý samostatný server.
31
3. Biometrické identifikace Co jsou to identifikační biometrické znaky a proč se vůbec zavádí ? Biometrická měření a moderní identifikace osob podle tzv. biometrických znaků jsme nejdříve znali spíše ze sci-fi literatury, nebo z filmů Hvězdné války a o agentu Bondovi. Identifikaci hledaných osob podle otisků prstů pak v policejní daktyloskopii. Ověřování oprávněných osob ke vstupu běžně na světě používají například v jaderných elektrárnách, vojenských a bezpečnostních programech nejvyššího utajení, také při evidenci pohybu cizinců a migrantů na územích řady států světa. V závěru minulého století se bezpečnostní systémy využívající genetických znaků osob začaly zavádět v bankovnictví, nebo třeba při kontrolách na letištích a v přístavech. Významným impulzem podporujícím nové způsoby identifikace osob, ale i zásahy do osobnostních práv občanů, jsou zejména reakce civilizovaného světa na teroristické útoky 11. září 2001 v USA.
Zvýšená bezpečnost a obrana proti terorismu se staly naší každodenní součástí života společnosti. Zákonodárství se tak pomalu přizpůsobovalo nové situaci a následné teroristické útoky v ostatních částech světa, také Evropy, jen potvrdily správnost nastoupeného směru. V současnosti ve světě dochází k rychlému rozvoji právě biometrických technologií a k jejich uplatňování. Dříve biometrie používala testování DNA (podle tkáně, slin, vlasů, krve …). Fyzických a fyziologických aspektů odlišení lidí a ověření jejich totožnosti je ale rozhodně více. Vedle verifikace otisku prstů se používá například analýza tvaru a obrazu prstu, rozpoznávání duhovky, analýza sítnice oka, celkové rozpoznávání obličeje, geometrie tvaru ruky, také třeba rozpoznávání tvaru ucha, detekce pachu těla, rozpoznávání a analýza hlasu, již uvedená analýza vzorku DNA, ale třeba také analýza potních pórků. Pro posouzení osoby mají význam také charakteristické rysy chování každého člověka, verifikace vlastnoručního podpisu a psaného textu vůbec, nebo i analýza způsobu chůze. Skutečností 21. století už jsou nejrůznější technologie shromažďování biometrických vzorků lidí a vytváření šablon těchto vzorků v digitalizované formě. Ale třeba i vkládání čipových karet nebo napsání hesla či provedení otisku prstu v počítačích. Bankomaty v Anglii už například experimentálně zavedly analýzu duhovky vedle PINu, stejně tak na letišti Heatrow. Vzhledem k tomu, že zavádění těchto bezpečnostních opatření a nových technologií souvisí s osobními údaji, mnohdy citlivými etnickými či zdravotními údaji, je k identifikaci osob podle biometrických znaků důležitá i snaha a spolupráce osoby, jejíž 32
identifikace se zjišťuje. Proto důsledného pojmenování celého procesu a zavádění nové legislativy. Už například 91. Mezinárodní konference práce (ILO) v červnu 2003 projednala a schválila Úmluvu č. 108 o povinné identifikaci pomocí biometrie u námořníků. Stanovila tak, jaké doklady k ověření identity, právě s biometrickými znaky, musí mít námořníci při vstupu na území cizích států. V EU se také už dlouhou dobu vedou diskuse o zavedení biometrických znaků do osobních průkazů a ID karet občanů Unie. Směrnice 95/46/ES definovala „osobní údaje“ a doporučila používání biometrických systémů, které neuchovávají stopy v paměti terminálu přístupového zařízení a ani je neukládají do centrální databáze. Stanovila nejen korektní přístup k celé problematice, ale i bezpečnostní opatření typu kódování biometrické šablony a ochranu tzv. kódovacích klíčů. Biometrická data tak lze tedy používat za identifikátor obecně použitelný ve smyslu uvedené Směrnice. Nařízení Rady (ES) č. 2252/2004 z 13. 12. 2004 o normách pro bezpečnostní a biometrické prvky v cestovních pasech a cestovních dokladech vydaných členskými státy ES, ale i legislativa EU nejen zdůraznily nezbytnost bezpečnější identifikace osob a také přenesly svůj díl odpovědnosti na jednotlivé země a národní legislativy. Hnacím motorem je zejména zájem všech států o posílení vlastní bezpečnosti, identifikace jako účinný nástroj v boji proti hrozbám terorismu, ale i požadavky USA na doplnění cestovních dokladů a víz o biometrické znaky. Obecným trendem doby se vedle přijímání antiteroristických zákonů tak stalo rozšíření většiny osobních dokladů o čipy, včetně ukládání stanovených biometrických znaků. Řada států si takto provedené doklady stanovila
ve
svých
zákonech
třeba
pro
přistěhovalce.
Z těchto důvodů a za této situace přistupuje k přísnějším opatřením také vláda ČR ve svém návrhu novelizace zákona o cestovních dokladech. Novela zavádí zpracování dokladů v nosiči dat (v pasech) s biometrickými údaji a ověřování totožnosti občanů také porovnáním biometrických údajů. Nové cestovní doklady se strojově čitelnými údaji tak budou muset obsahovat nejen digitální fotografie obličeje, ale i otisky prstů rukou a další bezpečnostní prvky stanovené ES. Podle návrhu zákona, který by měl platit od 1. 1. 2006, se předpokládá že povinnost digitální fotografie se v pasech objeví do 28. 8. 2006 a digitální otisky prstů do poloviny roku 2008.
33
3.1 Popisy některých druhů biometrických identifikátorů Verifikace otisku prstu se opírá o fakt, že otisk prstu je jedinečný a zůstává neměněn po celý život. Verifikace otisku prstu je nejčastěji používanou biometrickou metodou. Senzor otisku prstu snímá a vyhodnocuje přiložené otisky. Podle způsobu snímání rozeznáváme několik různých typů senzorů. Z neskenovaného otisku je vytvořena jeho předloha podle relativního umístění charakteristických rýh a prohlubní. Tato předloha je poté porovnávána se vzorem uloženým v databázi.
Senzory otisků prstů se používají u různě vysokých stupňů zabezpečení. Jejich nevýhodou je, že u nich poměrně často nastává jev chybného odmítnutí podle typu snímací metody a úrovně zašpinění otisku prstu.
Protože existuje několik metod snímání otisku prstů, senzorů je také několik druhů. Liší se mezi sebou kromě metody snímání také různými parametry, např. náchylností k zašpinění. Důsledkem zašpiněného prstu může být chybné odmítnutí, což je zejména u optických a tepelných senzorů častým jevem.
3.1.1 Optické senzory Optické senzory patří mezi nejstarší technologie snímání otisku prstu. Hlavní princip spočívá v přidržení prstu nad skleněnou podsvětlenou vrstvou. Optický senzor zachycuje digitální obraz otisku použitím viditelného světla. Světlo se odráží z prstu a prochází přes tuto vrstvu do CCD snímače, který zachycuje vizuální obraz otisku. Nevýhoda tohoto typu je, že je poměrně náchylný k chybám. Například pouhý špinavý prst vede ke špatnému obrazu. Z toho vyplývá nutnost opakovaného skenování prstu a vyšší nároky na údržbu, protože nečistoty z rukou zůstávají na skenovaní plošce.
3.1.2 Ultrazvukové senzory Ultrazvukové senzory na rozdíl od optických, které měří odražené světlo, měří odraženou zvukovou vlnu. Technologie funguje na podobných principech jako sonar.
34
Jejich výhodou je, že ultrazvuk snadno pronikne i nečistotami, které by znehodnotili obraz zachycený pomocí optického snímače.
3.1.3 Kapacitní senzory Kapacitní metoda snímání měří velikosti elektrického pole mezi rýhami a prohlubněmi v papilárních liniích prstu. Měření se provádí pomocí několika desítek tisíc kondenzátorů, které jsou sestaveny do organizované sítě. Pomocí této sítě je sestaven obraz otisku. Kapacitní senzory patří k přesnějším systémům identifikace otisku prstů.
3.1.4 Teplotní senzory U teplotního senzoru senzor snímající otisk prstu měří teplotní rozdíly mezi jednotlivými rýhami na prstu a vytváří z nich digitální obraz prstu. U tohoto druhu senzoru, na rozdíl od jiných, je nutné přejet po ploše senzoru. Poté je výsledný obraz složen pomocí různých metod zpracování obrazů.
3.1.5 Verifikace tvaru ruky Metoda verifikace tvaru ruky je založena na měření fyzikálních charakteristik ruky prstů. Hlavními zkoumanými parametry je délka a šířka dlaně a jednotlivých prstů, boční profil ruky apod. Používá se speciální snímač, který vytváří 3D obrázky a získaná data ukládá do devíti bitové hodnoty. Tímto je metoda velmi vhodná v aplikacích, kde je omezená paměť pro ukládání těchto dat. Z tohoto důvodu a z hlediska snadného používání je také velmi vhodná do aplikací, kde je více uživatelů.
3.1.6 Verifikace obličeje Verifikace obličeje je dnes nejvíce zkoumanou biometrickou metodou. Veškerá technologie vychází z faktu, že lidský obličej obsahuje kolem 80 typických rysů. K úspěšné identifikaci osoby stačí rozpoznání 14 až 20 z nich. Metoda rozpoznání obličeje vychází ze srovnání obrazu z kamery s obrazem uloženým v databázi. K jednoznačné identifikaci slouží tvar obličeje a poloha rtů, nosu, očí, nebo obočí. V centrální databázi je uložena relativní poloha, tedy vzdálenost očí, úhel od špičky
35
nosu k oku apod. Tento druh verifikace nachází uplatnění např. u docházkových systémů zaměstnanců, kde by mohl zcela nahradit stávající tzv. „píchačky“.
3.1.7 Verifikace hlasu Metoda rozpoznávání hlasu osoby vychází z rozšířené analýzy hlasu zaznamenaného mikrofonem. Předpokladem jednoznačnosti je, že žádná osoba nemá stejný tvar hlasivek, ústní dutiny, jazyka nebo zubů a tudíš ve výsledku má jedinečný hlas. K nejúspěšnějším technikám ověřování hlasu porovnávání vzorků řeči z hlediska spektra. Nevýhodou této metody může být nastydnutí uživatele, kdy se z důvodu nachlazených dýchacích orgánů nebo nosu změní hlas. Naopak výhodou metody je její snadné používání, rychlost a spolehlivost.
3.1.8 Verifikace sítnice Pro ověření osoby pomocí její sítnice se používá digitální obraz struktury sítnice v okolí slepé skvrny oka. Sítnice je světlo-citlivý povrch na zadní straně oka. Je složena z velkého množství nervových buněk převádějící světlo na nervové signály. Slepá skvrna na zadní straně oka je místo kde z něj vystupují nervová zakončení. Verifikace sítnice je velice přesnou metodou identifikace. Její používání vyžaduje od uživatele, aby se díval do přesně vymezeného prostoru, což může být pro některé osoby nepříjemné a někdy až nemožné, pokud používají brýle. Z těchto důvodů nemá tato metoda rozšířenou oblast používání a její použití se shrnuje na oblasti vůbec nejvyššího stupně zabezpečení.
3.1.9 Verifikace duhovky Verifikace duhovky je druhá metoda, která využívá jedinečnosti oka. Duhovka obsahuje tolik jedinečných charakteristických znaků, že je mnohonásobně přesnější metodou než např. verifikace otisku prstu. Duhovky dvojčat jsou různé a dokonce duhovky jednoho člověka jsou také odlišné. Proto je tato metoda velice přesnou metodou identifikace.
36
4. Bezpečnost a kryptografie Výměna informací v elektronické podobě je trendem dnešní doby. Ne každá informace je však určená očím a uším každého. Jinak řečeno, data je často třeba chránit. S mezinárodními normami (ITSEC a ITSEM) můžeme definovat základní bezpečnostní cíle, jejichž plnění by měl důvěryhodný systém zajistit.
1.důvěrnost informací Systém musí zabezpečit, že neautorizované subjekty nebudou mít možnost přístupu k důvěrným informacím.
2.integrita Systém musí zabezpečit informace proti neautorizované modifikaci.
3.neodmítnutelnost odpovědnosti Systém musí zabezpečit prevenci proti ztrátě schopnosti přesvědčit třetí nezávislou stranu o přímé odpovědnosti subjektu za odeslání, případně přijetí zprávy.
Otázkou zůstává jak tohoto stavu dosáhnout. Fyzická ochrana přenosu je často náročná, většinou však nemožná. Nelze si představit ochranu byť jen několik kilometrů dlouhé linky tak, aby z ní nebylo možné signál odposlechnout. Často se navíc využívá komutované linky, která na každém uzlu k odposlechu přímo vybízí. Jistou bezpečnost snad nabízí spojení pomocí optického kabelu, ale ani v tomto případě nelze mluvit o vysokém stupni ochrany. Nabízí se tedy možnost logické ochrany dat. Tato možnost se nazývá šifrování a již dlouhou dobu se jí zabývá věda zvaná kryptologie. Ta se skládá z kryptografie, vědy o tvorbě šifer, a z kryptoanalýzy, vědy o jejich luštění. Kryptografie kromě symetrických a asymetrických šifrovacích algoritmů studuje kryptografické nástroje, jako jsou generátory náhodných čísel, hašovací funkce, digitální podpisy, kryptografické protokoly apod. Kryptoanalýza se zabývá nejen přímým luštěním, tj. hledáním klíčů nebo otevřených textů ze šifrovaných zpráv, ale v poslední době zejména odhalováním teoretických slabin šifer. Cílem je najít metody, které, i když nevedou přímo k otevřenému textu, ukazují, že šifra není tak silná, jak by měla teoreticky být. Logická ochrana dat tedy znamená zašifrovat data na straně odesilatele, odeslat je a na straně příjemce zase dešifrovat. 37
4.1.Kódování a šifrování Šifrování se často zaměňuje s pojmem kódování. Není divu, kódování je také proces převodu informace z jedné formy do druhé. Kódování k tomu ale nepoužívá žádnou utajovanou informaci. Proces zakódování a dekódování je zcela veřejný a může ho provést každý. Typickým příkladem jsou kódy ASCII, Latin 2 apod.
U šifrování, šifrovacího algoritmu ale vždy existuje “něco tajného” - například klíč. Klíč je pak v tomto smyslu tajná náhodná posloupnost bitů, znaků o různé délce. Délka klíče je dána rozumným poměrem mezi bezpečností šifrování a délky procesu šifrovaní. Ostatně kdyby nic tajného v šifrovacím algoritmu nebylo, zašifrovat a odšifrovat data by mohl kdokoliv a smysl těchto operací by se zcela vytratil. Výjimkou je, že u asymetrických šifer (viz dále) musíme dovolit, aby jeden z klíčů byl veřejný.
Jak již bylo naznačeno, existuje více druhů šifrování. V zásadě rozlišujeme dvě šifrovací metody, symetrické šifrování (s tajným klíčem) a asymetrické šifrování (s veřejným klíčem).
Základní otázkou této studie tedy je, na jakém principu fungují zabezpečený přenos, šifrovací algoritmy, bezpečnostní protokoly a jaký na to může mít vliv typ kódování a další vlastnosti vektorových formátů prostorových dat.
4.1.1 Symetrické šifrování Metoda symetrické šifry znamená, že stejný klíč, který byl užit k zašifrování zprávy na straně odesilatele bude užit i na straně příjemce pro dešifrování zprávy. Z toho vyplývá nutnost před začátkem komunikace předat důvěryhodným kanálem šifrovací klíč spolu s dalšími údaji (konkrétní typ algoritmu) druhé straně. Současná komerčně dostupná výpočetní technika aplikuje tyto algoritmy téměř v reálnem čase. Na druhé straně i nejmodernější výpočetní technika je schopna dešifrovat data bez znalosti příslušných klíčů jen za relativně dlouhé časové období a s velkými finančními náklady. Pomocí matematických metod lze poměrně přesně vyčíslit náklady a čas potřebný k dešifrování dat, které jsou šifrovány definovaným algoritmem. Volbou délky klíče lze navíc tento výsledek výrazně ovlivnit. Při použití klíče s délkou 40 bitů je možné zdolat šifru za pomocí paralelního algoritmu s použitím 1200 propojených počítačů za necelé 4 38
hodiny. Doba dešifrování s délkou klíče roste velmi rychle (128 bitů – 1000 počítačů a 3.1022 let). USA, které jsou na špičce v šifrovacích technologiích většinu algoritmů a technologií patentovala, navíc jsou zde šifry považovány za zbraně a proto podléhají vývozní kontrole. Omezení se týkají především délky klíčů u vybraných šifrovacích algoritmů a to tak, že pro NSA (National Security Agency - Národní bezpečnostní agentura) bylo otázkou chvilky dešifrovat zprávy s povolenými krátkými klíči. Je nutné však říct, že v posledních letech a také v době kdy tato studii vzniká se v tomto směru mnohé mění a omezení již nejsou tak přísná. Použití symetrických algoritmů představuje způsob, jak zabezpečit důvěrnost transakcí definovaným způsobem s možností přesného stanovení hrozeb, kterým toto zabezpečení odolává.Tyto
algoritmy
však
neřeší
důležitý
požadavek
neodmítnutelnosti
odpovědnosti. Nelze totiž určit, která strana zprávu odeslala a která přijala.
4.1.2 Blokové a proudové šifry I když následující informace platí pro symetrické i asymetrické šifry, většinou se pojmy blokové a proudové šifry spojují se symetrickými algoritmy. U asymetrických šifer se totiž vždy implicitně předpokládá, že se jedná o blokovou šifru.
4.1.3 Blokové šifry Blokové šifry zpracovávají více znaků otevřeného textu najednou. V současné době je to téměř výhradně blok 64 bitů, zatímco po přijetí standardu AES to bude blok 128 bitů. V základním režimu činnosti bloková šifra zašifruje celý tento blok a vznikne tak stejně dlouhý blok šifrovaného textu. Jistě je možné, aby šifrovaný blok byl delší, ale nepoužívá se to. Protože se vlastně jedná o jakousi záměnu bloku za blok, nazývá se tento základní režim “elektronická kódová kniha" (ECB, Electronic Code Book). V tomto případě je kódová kniha velmi dlouhá. Má 264 nebo 2128 položek typu “otevřený blok – zašifrovaný blok" a je “vygenerována" tajným šifrovacím klíčem. Označíme-li šifrovací klíč K, otevřený text OT a šifrovaný text ŠT, pak zašifrování a odšifrování formálně zapisujeme jako ŠT = EK(OT) a OT = DK(ŠT); písmena E a D pocházejí z anglického encrypt (zašifruj) a decrypt (rozšifruj).
39
4.1.4 Proudové šifry Pokud chceme zašifrovat jen několik bitů či bajtů otevřeného textu, nebo v případech, kdy jsou data získávána jako proud bitů a je potřeba je okamžitě šifrovat, používají se proudové šifry. Nejpoužívanější proudové šifrovací algoritmy používají tzv. heslo (running key, key stream), které je s otevřeným textem sloučeno nějakou jednoduchou operací bit po bitu nebo bajt po bajtu (nejčastěji je to operace XOR).
4.1.5 Kvalita šifer Proudové i blokové šifrovací algoritmy mají tu výhodu, že k šifrování velkých objemů dat nepotřebují dlouhý klíč. Musí ale zajistit, aby bez znalosti tohoto klíče nebylo možné luštit otevřený text. To na kvalitní šifrovací algoritmy klade vysoké nároky. Například u blokové šifry každý bit šifrovaného textu musí složitě záviset na každém bitu šifrovacího klíče a každém bitu otevřeného textu; navíc změna jediného z těchto bitů musí vést k nepredikovatelné změně v šifrovém textu apod. Vzhledem k pokrokům v oblasti kryptografie a kryptoanalýzy v posledních 30 letech jsou však už známy osvědčené postupy, jak tvořit kvalitní algoritmy a hodně jich bylo také navrženo a je používáno. V současné době se proto dřívější problém výběru kvalitního šifrovacího algoritmu přesouvá spíše k otázce jeho všeobecného používání z důvodu kompatibility, tj. na výběr standardu.
4.1.6 Požadavky na kvalitní šifrovací algoritmus Návrh by měl pocházet od zkušených odborníků (nejlépe od týmu kryptografů a kryptoanalytiků s praktickými zkušenostmi). Známé požadované teoretické kryptografické vlastnosti: 1.statistické - vzájemná nekorelovanost otevřeného textu, šifrovaného textu a klíče... 2.analytické - konfúze, difúze, úplnost, lavinovitost... 3.odolnost proti všem známým kryptoanalytickým útokům. Předpokládá se, že případný útočník dokonale zná šifrovací algoritmus a jeho cílem je například otevřený text nebo šifrovací klíč.
40
4.2.1 Zveřejňování šifrovacích algoritmů Z teoretického hlediska se zásadně uvažuje, že případný útočník šifrovací algoritmus zná. Je to nezbytný předpoklad, protože pokud se útočník na nějaký systém zaměří, s určitými náklady dokáže popis algoritmu vždy získat. Při návrhu algoritmů se proto s tím, že luštitel zná algoritmus, počítá jako se samozřejmostí. V posledních letech se veřejnost algoritmu prosazuje v oblastech, kde jsou šifry široce veřejně používány (např. internetové prohlížeče apod.). To je určitě správná tendence. Světová kryptografická veřejnost také očekává, že brzo bude možné používat bezpečný šifrovací algoritmus (AES) i v komerčních produktech, jako je právě komunikace na internetu nebo bankovní aplikace (což umožní zrušené embargo na vývoz amerického softwaru se silnou kryptografií). Naproti tomu v uzavřených komunitách, jako jsou ozbrojené síly nebo vnitřní systémy bank a podobně, může být situace jiná. Utajování informací o algoritmech a jiných bezpečnostních opatřeních má za cíl znesnadnit případnému útočníkovi jeho činnost a zabránit útoku všemi možnými prostředky (jaký bankovní sejf banka používá, si také nechává pro sebe...). U ozbrojených sil je tomu podobně - ani zde se nezveřejňuje nic, co není nezbytně nutné. V těchto případech je tedy utajení algoritmu určitě na místě. Následuje popis konkrétních symetrických šifrovacích algoritmů, které jsou běžně používány.
Název algotitmu
Používaná
Typ šifry Použití
délka klíče BLOWFISH
64,448
Bloková
původně státní správa (USA)
RC2
40, 128
Bloková
Internet
RC4
40, 128
Proudová Internet
AES
128, 192, 256
Bloková
nový
všeobecný
standard
státní
správa
(USA) CAST
40, 80, 128
Bloková
původně (Kanada)
IDEA
128
Bloková
Internet
GOST
256
Bloková
státní správa (Ruská federace)
Tabulka 01 - stručný přehled symetrických šifrovacích algoritmů
41
4.2.2 Blow fish Šifra Blowfish byla navržena B. Schneiderem a poprvé byla zveřejněná v roce 1994. Jedná se o symetrickou blokovanou šifru s velikostí bloku 64 bitů a délkou klíče nejvýše 448b(tj.56B). Již od samotného vzniku se uvažovalo, že bude zcela volnánepatentovaná, nelicencovaná a bez copyrightu-alternativa k DESu. Přestože byla tato šifra poskytnuta veřejnosti a měla k ní tedy přístup celá řada kryptoanalytiků, doposud není veřejně znám případ prolomení této šifry (v podobě, v jaké byla definována). Algoritmus je tvořen dvěma částmi: část expanze klíče a část šifrovacích dat. Expanze klíče převádí klíč s libovolnou délkou (nejvíce však 56B) na několik polí podklíčů, čítající dohromady 4168B. Tato expanze bude popsána dále v části generování podklíčů. Šifrování dat je prováděno na blocích 64 bitů v šestnácti rundách. Každá runda provádí permutaci závislou na klíči a substituci závislou jak na kódovaných datech tak i klíči. Všechny operace použité v algoritmu jsou XOR a sčítání 32-bitových slov. Navíc jsou v každé rundě prováděny 4 operace výběru dat z pole vypočteného indexu. Blowfish používá velký počet podklíčů, které musí být vypočteny ze zadaného klíče ještě před samotným šifrováním, resp. dešifrováním dat. Podklíče jsou uloženy celkem v pěti polích. První pole, označované jako P-pole nebo P-box, má celkem 18 32bitových položek, dále označovaných jako P1, P2…..,P18. Zbývající pole jsou označována jako S-pole nebo S-boxy. Každý S-box má 256 32-bitových položek. Pokud budeme pokračovat s S-boxem i (i=1, 2 ,3 ,4), pak jednotlivé položky budeme označovat Si,0,Si,1,….Si,255. Šifrování a dešifrování vstupem(označujme ho x) je 64bitové slovo, která se rozdělí na dvě 32-bitová slova xL a xR (xL zahrnuje bity 32…63, xR pak bity 0…31 vstupu x). Šifrování probíhá v 16-ti rundách, což můžeme zapsat následujícím cyklem: For i = 1 to 16 do Begin xL = xL XOR Pi xR = F(xL) XOR xR swap xL, xR (provede záměnu obou parametrů) end ´
42
Po tomto cyklu následuje ještě tato série příkazů: Swap xL, xR (odstraní poslední swap v cyklu) xR = xR XOR P17 xL = xL XOR P18 Posledním krokem je spojení xL a xR do výstupního 64-bitového bloku zašifrovaného textu. Celý postup je zachycen na obr. 1
Obr.1 Algoritmus šifrování
43
Obr. 2 principielní schéma funkce F
Funkce F rozdělí 32-bitové vstupní slovo y na čtvrtiny a, b, c, d.Tyto části po řadě představují jednotlivé byty (tj. 8 bitů) vstupního slova z leva doprava (tj. a představuje bity 24…31, b bity 16..23 atd.) a používají se jako indexy do S-boxů. Výstupní hodnota funkce je pak definována následovně (grafické vyjádření viz. Obr. 2). F (y) = ((S1,a + S2,b mod 2x32) XOR S3, c) + S4, d mod 2x32 Dešifrování pak probíhá stejným způsobem jako šifrování s tím rozdílem, že položky Pboxu (tj. Pi ) jsou použity v opačném pořadí. Generování podklíčů: 1. Inicializace P-boxu a S-boxu pomocí pevně definovaného řetězce, který tvoří desetinná část čísla µ v hexadecimálním zápise. Inicializace probíhá v tomto pořadí: P1, P2,……P18, S1, 0, S1, 1,…..S1, 1, S1, 255, S2, 0, S2, 1……, S2, 255, S3, 0,….S3, 1…, S3, 255, S4, 0, S4, 1,…..S4, 255. 2. XOR P1 s prvními 32 bity klíče, XOR P2 s dalšími 32 bity klíče, a tak pokračuje dále pro všechny bity klíče (což nám při nejdelším možném klíči vyjde až P14). Pak opakujeme stejný postup pro zbývající položku P-boxu s cyklickým procházením bitů klíče. 3. Nyní vezmeme podklíče vytvořené v P-boxu pomocí předchozích kroků a aplikujeme Blowfish-algoritmus šifrování na nulový řetězec (tj. 64-bitové vstupní slovo pro algoritmus má všechny bity nulové).
44
4. Výsledek předchozího kroku (tj. 64-bitové výstupní slovo z algoritmu) použijeme k náhradě 64 bitů tvořených P1 a P2. 5. Výstup kroku 3 zašifrujeme pomocí Blowfish-algoritmu (nyní již s pozměněnými podklíči v P1 a P2). 6. Nahradíme P3 a P4 výstupem z kroku 5. 7. Tímto způsobem (tj. šifrový výstup Blowfish-algoritmu použijeme k náhradě dalších podklíčů a znovu zašifrujeme) pokračujeme v nahrazování dalších podklíčů v P-boxu a pak v jednotlivých S-boxech.
Celý tento iterativní postup modifikace podklíčů pak tvoří 521 interací na druhou.
Základní algoritmus tak jak byl uveden v předchozí části lze samozřejmě modifikovat. Lze například změnit velikost bloků, po kterých je otevřený text šifrován. Blowfish s menší velikostí bloku (Blowfish-32s blokem 32 bitů, Blowfish-16 s 16-bitovým blokem) jsou označovány jako Mini-Blowfish- jejich použití je vhodné například pro kryptoanalytické použití, ale pro implementaci zabezpečení se jejich použití nedoporučuje. Je třeba si uvědomit, že se změnou délky bloku (ta by měla být každopádně dělitelná čtyřmi kvůli funkci F) se změní i délka podklíčů a též struktura Sboxů-při zmenšení bloku se počet položek zmenší, při zvětšení se počet položek zvětší. Lze též použít několikanásobné zašifrování otevřeného textu pomocí více klíčů. Tuto možnost rozšíření uvádím především proto, že je používána také u jiných blokových šifer (např. DES) a tedy je to aspoň teoreticky možné rozšíření. Ovšem zda takovéto rozšíření vede ke zvýšení bezpečnosti si netroufám odhadovat (neměl jsem k dispozici závěry žádné kryptoanalýzy Blowfishe)-tato otázka úzce souvisí s algebraickými vlastnostmi šifry, především z vlastností „grupovosti“(tj. zda šifra netvoří grupu). Další modifikace může vycházet ze změny počtu rund (a tedy i struktury P-boxu)-každopádně není pro skutečné použití vhodné tento počet snižovat.
45
4.2.3 Rc2 Algoritmus RC2 byl publikován jako Internet Draft (RFC 2268) v roce 1977. Podobně jako DES je to 64bitová bloková šifra. Délku klíče lze volit v rozsahu 1 až 128 bitů, nejčastěji se používá v délce 128 bitů (americké verze) a 40 bitů (exportní verze). V současné době je však již možné používat za jistých podmínek plnou verzi i u nás. Je široce používán na Internetu, je například obsažen ve standardech S/MIME ver. 3.0 a SSL 3.1 (viz bezpečnostní protokoly). Algoritmus navrhl R. Rivest pro společnost RSA.
4.2.4 Rc4 Algoritmus RC4 je proudová šifra opět z dílny R. Rivesta. RC4 nebyl dodnes oficiálně publikován. Přesto je jednou z nejčastějších proudových šifer na Internetu. Popis byl zveřejněn neznámým hackerem v roce 1994, který získal jeho kód z jednoho programu. Díky tomu je také algoritmus předmětem veřejných diskusí a výzkumu. Je obsažen v S/MIME ver. 3.0 i SSL ver. 3.0. Vedle DES je nejpoužívanějším algoritmem na Internetu. Umožňuje volit délku klíče až 256 bitů, nejpoužívanější je opět v délce 40 nebo 128 bitů. Je trochu anomální v tom, že nevyužívá techniku inicializačního vektoru, a proto se na každou zprávu musí generovat nový náhodný šifrovací klíč. Ten se pak komunikujícímu
protějšku
musí
předat
jinou
bezpečnou
cestou,
například
prostřednictvím asymetrického systému.
4.2.5 Idea Algoritmus IDEA (International Data Encryption Algorithm) je dnes velmi dobrým algoritmem vyvinutý v ETH Curych Jamesem L. Massey a Xuejia Laii, publikovaný v roce 1990. IDEA se svým 128 bitovým klíčem je dnes považována za bezpečný algoritmus. Navíc je k dispozici její velmi rychlá softwarová implementace. Nevýhodou je, že jde o firemní algoritmus podléhající patentové ochraně a tudíž se za komerční použití musí platit.
46
4.2.6 Cast Algoritmus CAST vznikl za účelem vytvoření volně šiřitelného a použitelného algoritmu. Byl publikován na internetu jako RFC 2144 v květnu 1997 a jako freeware ho začalo používat mnoho firem ve svých produktech (včetně Microsoftu). Je tzv. Feistelovou šifrou a pracuje v rundách. Používá 40 až 128bitový klíč. Při klíči do 80 bitů (včetně) se použije 12 rund, jinak 16 rund. Komerční produkty většinou podporují 80 a 128bitové klíče.
4.2.7 Aes AES (Advanced Encryption Standard) nahrazuje svého předchůdce DES. Výběr tohoto algoritmu trval čtyři a půl roku a ve veřejné soutěži zvítězil algoritmus s původním názvem Rijndael. Novou šifru schválil 26.11.2001 americký Národní úřad pro standardizaci (NIST) v publikaci FIPS PUB 197 jako federální standard USA s účinností od 26.5.2002. Očekává se, že AES bude mít životnost 20 až 30 let. AES podporuje tři délky klíčů, a to 128, 192 a 256 bitů. Současné lidské technologie ani veškeré pozemské síly nestačí na to, aby mohly útočit hrubou silou na 128 bitový klíč, a žádné vhodné ani nejsou ve výhledu (snad jen kvantové počítače, ale to je otázka nejméně 10 až 15 let). AES zpracovává vstupní blok o délce 128 bitů, což je dvojnásobek bloku, který dosud používaly všechny šifrovací standardy (DES, TripleDES a další). Ve starších produktech tedy bude nahrazení délky bloku zpracovávaných dat a změna velikosti klíče dost často znamenat velký zásah do zdrojových kódů. Oproti tomu výhodou délky bloku, ale i nových procesů šifrování a dalších kryptologických opatření bude velká rychlost i bezpečnost šifrování. AES jako i starší blokové šifry pracuje v tzv. rundách a to 10, 12 nebo 14 podle délky klíče. AES je tedy veřejně dostupný standard, za jehož použití se neplatí žádné licenční poplatky. Očekává se, že se nejen v USA, ale i ve světě stane převládajícím symetrickým algoritmem, jako tomu bylo u algoritmu DES před 25 lety.
47
4.2.8 Shrnutí V dnešní době máme na výběr z velkého množství symetrických algoritmů ať už pro placené použití (RC2, RC4, IDEA) nebo zdarma (CAST, TripleDES a nově i AES). Důležité pro tuto studii je zjištění, že jak blokové, tak proudové šifry pracují na úrovni znaků. S šifrováním vektorových formátů prostorových dat se znakovým (ASCII) kódováním by tedy neměly vznikat žádné problémy.
4.3.1 Asymetrické šifrování (s veřejným klíčem) Oproti symetrické kryptografii se zde užívá dvojice klíčů. Tuto dvojici klíčů si vygeneruje uživatel pomocí některého z běžně dostupných SW produktů a stává se tak jejich jediným majitelem. Princip spočívá v tom, že data šifrovaná jedním z klíčů lze v rozumném čase dešifrovat pouze se znalostí druhého z dvojice klíčů a naopak. Jeden z nich, takzvaný privátní klíč je s maximální bezpečností ukrýván majitelem (čipové karty, diskety v trezoru...), zatímco druhý klíč je zveřejněn. Známe-li tedy vlastníka veřejného klíče, kterým jsme zprávu dešifrovali, známe odesilatele. Protože je veřejný klíč obecně znám všem, nelze zprávu zašifrovanou podle výše popsaného postupu považovat za zašifrovanou v plném smyslu slova (důvěrnou), ale pouze za podepsanou. Tímto způsobem lze za pomocí asymetrické kryptografie řešit integritu dat a neodmítnutelnost odpovědnosti na straně odesilatele. Jestliže příjemce pošle podepsané potvrzení o přijetí zprávy, je zajištěna neodmítnutelnost odpovědnosti i ze strany příjemce. Není tak ovšem vyřešena otázka důvěrnosti zpráv, tedy nečitelnosti pro neautorizované subjekty. K tomu lze využít šifrování zpráv pomocí veřejného klíče adresáta. Při zašifrování zprávy tímto klíčem máme jistotu, že ji přečte pouze adresát se svým privátním klíčem. Celý systém pro šifrování a podepisování zpráv pomocí asymetrické kryptografie pracuje tedy následujícím způsobem. Zpráva je obvykle na straně odesilatele nejprve podepsána, podepsán je čitelný text zprávy, a potom šifrována. Na straně příjemce je zpráva nejprve dešifrována privátním klíčem příjemce, čímž je zajištěna adresnost zprávy a teprve potom je pomocí veřejného klíče ověřena identifikace odesilatele.
48
Zpráva
Zpráva
Privátní klíč odesilatele
Veřejný klíč odesilatele
Podepsaná zpráva
Podepsaná zpráva
Veřejný klíč adresáta
Privátní klíč adresáta
Přenos dat
Podepsaná a důvěrná zpráva
Podepsaná a důvěrná zpráva
Obr.01 - přenos adresované, zašifrované (důvěrné) a podepsané (autorizované) zprávy
Další možností je, že odesilatel zprávy nejprve vypočte hash hodnotu zprávy a tu zašifruje svým privátním klíčem čímž vznikne digitální podpis zprávy. Potom zprávu zašifruje veřejným klíčem adresáta („znečitelní“ pro neautorizované subjekty). Takto upravená zpráva je spolu s digitálním podpisem předána (zaslána po síti, předána na disketě...) adresátovi. Ten nejprve zprávu dešifruje za pomocí svého privátního klíče a tím se zpráva stane čitelná. Podpis ověří výpočtem hash hodnoty zprávy a jejím srovnáním s dešifrovanou hash hodnotou z digitálního podpisu.
Zpráva
Zpráva
funkce (hash) Hash hodnota zprávy
funkce (hash)
Veřejný klíč adresáta
Privátní klíč odesilatele
Digitální Zašifrovaná podpis zpráva
Původní hash hodnota zprávy
Veřejný klíč odesilatele
Přenos dat
Vypočtená hash hodnota zprávy Privátní klíč adresáta
Digitální Zašifrovaná podpis zpráva
Obr.02 - bezpečná komunikace s využitím digitálního podpisu
Tímto způsobem lze splnit kritéria bezpečnosti z úvodu. Protože je však při tomto postupu třeba nejméně jednou zašifrovat celou zprávu pomocí asymetrického algoritmu („znečitelnění“ zprávy), což by v případě delších zpráv trvalo na obou komunikujících stranách neúměrně dlouho, není toto užití v bezpečné komunikaci typické. Častěji se k šifrování zpráv (větších objemů dat) používá model, ve kterém je asymetrická kryptografie použita pouze ke tvorbě digitálního podpisu a bezpečné výměně klíčů pro symetrickou kryptografii, která je užita k vlastnímu šifrování přenášených dat. Tato komunikace vyžaduje dohodu o formátu přenášených dat a systému jejich šifrování. Síla tohoto modelu pak spočívá v tom, že pro každý přenos se používá jiných klíčů pro symetrické šifrování a proto jejich rozluštěním, získá luštitel (cracker) pouze obsah
49
jedné zprávy, na kterou byly tyto klíče použity. U této metody pak volba délky asymetrických klíčů už nemusí záviset na rychlosti spojení ani objemu přenášených dat, ale můžeme ji volit pouze podle potřeby zabezpečení.
klíče pro symetrické šifrování
Zpráva funkce (hash)
Zpráva
Hash hodnota zprávy
Původní hash hodnota zprávy
klíč pro symetrické š.
Privátní klíč odesilatele
Digitální podpis
funkce (hash)
Veřejný klíč adresáta
šifrované klíče (symetrické š.)
Přenos dat
Vypočtená hash hodnota zprávy
Privátní klíč adresáta
klíč pro symetrické šifrování
Veřejný klíč odesilatele Zašifrovaná zpráva (symetrickou šifrou)
klíče pro symetrické šifrování
Digitální podpis
Zašifrovaná zpráva (symetrickou šifrou)
šifrované klíče (symetrické š.)
Obr.03 - komunikace s využitím digitálního podpisu a šifrováním zprávy symetrickou šifrou
Z výše napsaného lze tedy vyvodit, že je zbytečné se v této studii podrobně zabývat jednotlivými asymetickými šiframi a proto je zde uveden jen stručný tabulkový přehled nejznámějších z nich. Více viz [w06].
Název
Popis
algoritmu RSA
Rivest-Shamir-Adleman,
algortimus
pro výměnu
klíčů,
digitální
podpis, šifrování dat D-H
Diffie-Hellman, algoritmus pro výměnu klíčů (ustavení společného klíče)
DSA
Digital Signature Algorithm, algoritmus pro digitální podpis
ElGamal
El-Gamalův algoritmus (varianty pro digitální podpis i šifrování)
ECDSA
Algoritmus pro DSA, realizovaný na eliptických křivkách (EC)
50
4.3.2 Kombinace metod šifrování (praktické použití) Aplikace asymetrických algoritmů je výrazně pomalejší než užití algoritmů symetrických. Je to dáno matematickou podstatou asymetrických algoritmů. Proto se mnohdy při tvorbě podpisu nešifruje privátním klíčem odesilatele celá zpráva, ale nejprve se na data použije takzvaná hashovací funkce. Hashovací funkce je jednosměrná transformace, která z variabilních vstupních veličin vrací jednoznačnou hodnotu (textový řetězec) pevné délky, která se jmenuje hash hodnota. Hash hodnota představuje zhuštěnou hodnotu dlouhé zprávy ze které byla vypočtená, ve významu „digitálního otisku prstu“ velkého dokumentu. Opačný proces je nemožný. Příkladem nejznámějších algoritmů hashovacích funkcí jsou MD2, MD5 a SHA-1, s nově vzniklým šifrovacím algoritmem AES jsou to pak SHA-256, SHA-384 a SHA-512. Výpočet hash hodnoty zprávy je velmi rychlý. Nejprve se při podpisu zprávy vypočte hash hodnota zprávy, která bývá výrazně kratší než podepisovaná zpráva, a ta se zašifruje některým asymetrickým algoritmem (RSA) s použitím privátního klíče. Výsledkem je takzvaný digitální podpis, který je potom odeslán jako příloha zprávy nebo v samostatném bloku. Výhodou digitálního podpisu hash hodnoty zprávy je, že splňuje stejná bezpečnostní kritéria jako podpis celého dokumentu, provedení však trvá nesrovnatelně kratší dobu.
Kontrola digitálního podpisu zprávy u příjemce probíhá tak, že ke zprávě je podle dohodnutého algoritmu (MD5) samostatně dopočítána nová hash hodnota a ta je potom srovnávána s dešifrovanou (pomocí veřejného klíče předpokládaného odesilatele) hash hodnotou obsaženou v dodatku zprávy. Obě hodnoty si musí být rovny.
4.3.3 Správa klíčů Zřejmě nejproblematičtějším bodem bezpečné komunikace je správa a uchování klíčů. Při užití symetrické kryptografie je třeba s maximální možnou mírou bezpečnosti uchovávat klíče se seznamem komunikačních partnerů. Tento požadavek je však v rozporu s nutností poměrně časté změny klíče v souvislosti s dobou rozkódovatelnosti těchto algoritmů. Jednodušší situace je při užití asymetrické kryptografie. Nestačí však střežit jen svůj privátní klíč. Je také nutné uchovávat veřejné klíče všech komunikujících účastníků a k nim jednoznačnou identifikaci vlastníků těchto klíčů. Předání klíčů je před začátkem vůbec první vzájemné komunikace bezpečným kanálem nezbytnou nutností. Při větším počtu vzájemně komunikujících subjektů to může být
51
problém dosti závažný. Uchování těchto informací se tak stává nejslabším článkem bezpečné komunikace a může zcela znehodnotit snahy o vysoké utajení přenášených dat.
4.3.4 Certifikační autorita a certifikáty Řešením problému zprávy, distribuce a uchování klíčů je využití služeb Certifikační autority. Certifikační autorita je veřejně dostupný server (obdobně jako veřejné wwwservery). Tyto instituce se podobají státním notářům. Certifikační autorita vystupuje při vzájemné komunikaci dvou subjektů jako třetí nezávislý důvěryhodný subjekt, který prostřednictvím jím vydaného certifikátu jednoznačně svazuje identifikaci subjektu s jeho dvojicí klíčů respektive s jeho digitálním podpisem. Certifikát se tak stává jakýmsi elektronickým průkazem totožnosti. Certifikáty obsahují ve své nejjednodušší formě veřejný klíč, jméno a další údaje zajišťující nezaměnitelnost subjektů. Běžně používané certifikáty též obsahují datum počátku platnosti, datum ukončení platnosti, jméno certifikační autority, která certifikát vydala, sériové číslo a některé další informace. Certifikační autorita garantuje jedinečnost subjektů podle užité identifikace subjektu. To je zajištěno legislativními a technickými pravidly provozu instituce Certifikační autority. Splnění těchto požadavků potvrdí Certifikační autorita podepsáním dokumentu svým privátním klíčem a následným vydáním tohoto certifikátu. Znamená to, že certifikát je podepsaným dokumentem se všemi důsledky z toho plynoucími, tedy zejména autorizace (Certifikační autorita jako garant pravosti dokumentu) a integrita dat (nelze zaměnit klíč nebo identitu klienta). Tím, že Certifikační autorita zaručuje správnost jí vydaného certifikátu, odstraňuje nutnost smluvní důvěryhodné výměny klíčů mezi dvěma subjekty navzájem a jejich dohoda spočívá pouze v domluvě o společně uznávané Certifikační autoritě. Důležité je, že se utajovaná data na straně klienta redukují pouze na bezpečné uchovávání privátního klíče, protože ostatní je řešeno certifikáty. Ty si můžeme kdykoliv ověřit se znalostí veřejného klíče certifikační autority, respektive jejího certifikátu. Existence Certifikační autority také umožňuje důvěryhodnou komunikaci subjektů, které se navzájem fyzicky nikdy nepotkali nebo neabsolvovali složitou proceduru vzájemné důvěryhodné výměny svých klíčů.
52
Tvorba certifikátu má 6 kroků:
1.generování klíčů. Každý potenciální žadatel o certifikát si nejprve sám pomocí dostupného SW vybavení vygeneruje dvojici klíčů pro použití v asymetrické kryptografii. 2.příprava identifikačních dat. Žadatel o certifikát shromáždí podle požadavků certifikační autority osobní identifikační materiály nutné pro vydání certifikátu, jako IČO, DIČO, resp. číslo OP, rodné číslo a podobně. 3.předání veřejných klíčů a identifikačních údajů certifikační autoritě. Žadatel předá certifikační autoritě data nutná pro vydání certifikátu spolu s doklady o jejich pravosti. 4.ověření informací. Certifikační autorita si na příslušných místech ověří, že může vydat žadateli certifikát. 5.tvorba certifikátu. Certifikační autorita vytvoří digitální dokument příslušného formátu a ten poté podepíše svým privátním klíčem. 6.předání certifikátu. Podle dohody je certifikát žadateli předán (disketa), zaslán, nebo zveřejněn.
Doba platnosti certifikátů je omezená a je uvedena v každém certifikátu. Tato veličina je velmi důležitá. Pokrok ve zvyšování výkonnosti výpočetní techniky a možnost objevení mezer v protokolech nebo algoritmech by ve velkém časovém horizontu mohl způsobit, že by se certifikáty staly nespolehlivé. Běžné certifikáty jsou proto vydávány s platností 6 měsíců, nejvíce 1 rok. I během této doby je možné zrušit platnost certifikátu. Důvodem pro toto opatření může být například vyzrazení privátního klíče.
Zrušený certifikát je zařazen do seznamu zneplatněných certifikátů (CRL). Seznam zneplatněných certifikátů je tedy jakási černá listina, na které jsou uvedeny neplatné certifikáty, jejichž doba platnosti ještě nevypršela. Tento seznam je obdobou případu seznamu zrušených kreditních karet. Banka nemůže donutit klienta aby neužíval svou kreditní kartu, stejně jako certifikační autorita nemůže zabránit klientovi v užívání certifikátu. Při každé transakci pomocí certifikátů je možné si pomocí této listiny certifikát ověřit. Seznam zneplatněných certifikátů je veřejná listina podepsaná certifikační autoritou a chráněná tedy stejně jako certifikát.
53
Závěr Od dob kdy se na počítačové sítě začali ukládat důležitá data je téma bezpečnosti na prvním místě. Hlavním důvodem jsou stále cennější údaje, které tyto sítě obsahují. Už totiž nejde pouze o soubory, které například uchovávají vaše přístupová hesla k bankovnímu účtu. Počítačové sítě uchovávají již tak zásadní informace, které můžou dokonce ohrozit samotný život váš, nebo vaší rodiny. A právě proto jsem si toto téma vybral. Jsem si samozřejmě vědom toho, že až se práce dostane ke čtenáři může být většina témat zastaralá, ale tak už to ve světě informatiky bohužel chodí.
54
Seznam použité literatury: 1. Libor Dostálek.
Velký průvodce protokoly TCP/IP (bezpečnost).
2. Libor Dostálek
Atributové certifikáty
3. Libor Dostálek
Velký průvodce protokoly TCP/IP
4. J. Horák
Bezpečnost malých sítí
5. Andrew Lockhard Bezpečnost sítí na maximum 6. Různé zdroje z Internetu
55
Seznam zkratek URL HTTP DMZ SMTP POP3 IMAP4 DNS FTP NTP UDP HTML IP SSL TCP
Uniform Resource Locator Hyper Text Transfer Protocol Demilitarized Zone Simple Mail Transfer Post Office Protocol Internet Message Access Protocol Domain Name Server File Transfer Protocol Network Time Protocol User Datagram Protocol Hypertex Markup Language Internet Protocol Secure Sockets Layer Transmission Protocol
56