České vysoké učení technické v Praze Fakulta elektrotechnická Bakalářská práce na téma Informační a komunikační systém střední firmy Vedoucí práce: Ing. Josef Semrád Vypracoval: Jiří Kercl 2008 i
ii
Abstrakt Cílem této práce je seznámit se virtuální privátní sítí a také s protokoly, které jsou využiti při tunelování, šifrovaní a přenosu dat. Práce bude obsahovat otestování několika typů virtuálních privátních sítí s jejich popisem. Na konci bude zhodnoceno jak po stránce finanční tak po stránce bezpečnostní, který typ se hodí pro středně velkou firmu. Abstract The aim of this writing is to get familiar with private virtual web and also protocols, which are used during tunneling, encryption and data transmission. My work will include testing of several types of virtual private webs with their descriptions. At the end there will be an evaluation regarding the financial and security parts to know which type of web is suitable for medium size company. iii
Prohlášení Prohlašuji, že jsem bakalářskou práci na téma Informační a komunikační sytém střední firmy vypracoval samostatně a použil k tomu pouze literaturu, kterou uvádím v seznamu přiloženém k bakalářské práci. Práci lze zveřejnit nebo zapůjčit jen s mým souhlasem a se souhlasem vedoucího práce. Adresa: Jiří Kercl Pod Lesem 793 552 03 Česká Skalice V Praze dne 30.12.2008 vlastnoruční podpis iv
Poděkování Rád bych touto cestou poděkoval několika lidem, kteří mi pomáhali, poskytovali cenné rady, či mě jinak podporovali při tvorbě této práce. Děkuji panu Josefu Semrádovi, který mě pomohl vybrat správnou literaturu pro čerpání informací a vedl mě při tvorbě této práce. Děkuji také slečně Adéle Býmpové za korekci textu a poskytnutí cenných rad ohledně technického zpracování a sazby této práce. Nakonec děkuji i mé rodině za finanční a psychickou podporu, bez které by tato práce také nemohla vzniknout. v
Obsah Seznam obrázků...vii Seznam tabulek...viii 1 Úvod... 1 2 Teoretická část... 2 2.1 Seznámení s VPN... 2 2.1.1 Historie VPN... 2 2.1.2 VPN Význam... 3 2.1.3 Důvody budování a používání VPN... 3 2.2 Protokoly... 5 2.2.1 Tunelování a tunelové protokoly... 5 2.2.1.1 PPTP... 6 2.2.1.2 L2F... 7 2.2.1.3 L2TP... 8 2.2.1.4 IPSec... 9 2.2.1.5 SSH/SSH2... 11 2.2.1.6 SSL... 11 2.2.1.7 CIPE... 12 2.2.2 Šifrování... 13 2.2.2.1 Šifrovací algoritmy... 13 2.2.2.2 Klíč a délka klíče... 13 2.2.2.3 Symetrické šifrování a módy blokových šifer... 14 2.2.2.4 Asymetrické šifrování... 15 2.2.2.5 Hašovací algoritmus... 16 2.2.3 Šifrovací protokoly... 17 2.2.3.1 MMPE... 17 2.2.3.2 RSA RC4... 17 2.2.3.3 IPSec šifrování... 18 2.2.3.4 VPNd šifrování... 20 2.2.3.5 Blowfish... 20 2.2.4 Protokoly LAN... 22 2.2.4.1 TCP/IP... 22 2.2.4.2 IPX/SPX... 23 2.2.4.3 NetBEUI... 24 3 Praktická část... 25 3.1 OpenVPN... 25 3.1.1 Bezpečnostní režimy... 25 3.1.2 Test VPN... 26 3.2 PPTP... 29 3.3 CISCO VPN... 31 3.3.1 Koncentrátor... 32 4 Závěr... 33 5 Seznam použité literatury... 34 vi
Seznam obrázků Obr. 2.1 - Struktura protokolu PPTP... 6 Obr. 2.2 - Schéma zapouzdření protokolu PPTP rámce PPP... 7 Obr. 2.3 - Struktura protokolu L2F... 8 Obr. 2.4 - Struktura protokolu L2TP... 9 Obr. 2.5 - Struktura protokolu AH... 10 Obr. 2.6 - Struktura protokolu ESP... 11 Obr. 2.4 - Symetrické šifrování... 14 Obr. 2.5 - Asymetrické šifrování... 16 Obr. 2.6 VPNd šifrování... 20 Obr. 2.7 Šifrování Blowfish... 21 Obr. 3.1 Přenosu dat tunelem (test 1)... 27 Obr. 3.2 Vytíženost linky (test 1)... 27 Obr. 3.3 Vytíženost CPU po dobu přenosu (test 1)... 27 Obr. 3.4 Trasování vně tunelu (test 2)... 28 Obr. 3.5 Trasování uvnitř tunelu (test 2)... 28 Obr. 3.6 Přenosu dat tunelem (test 2)... 28 Obr. 3.7 Vytíženost linky (test 2)... 28 Obr. 3.8 Vytíženost CPU po dobu přenosu (test 2)... 28 Obr. 3.9 Trasování vně tunelu... 29 Obr. 3.10 Trasování uvnitř tunelu... 29 Obr.3.11 - Nastavení VPN na straně klienta.... 30 Obr. 3.12 Přenosu dat tunelem... 30 Obr. 3.13 Vytíženost linky... 30 Obr. 3.14 Cisco VPN s použitím SSL a IPsec... 32 vii
Seznam tabulek Tab 3.1 - Porovnání jednotlivých bezpečnostních režimů... 26 viii
1 Úvod ÚVOD V bakalářské praci bych se chtěl pokusit o jakési srovnání různých typů virtuálních privátních sítí a zjistit, jaký typ je vhodný pro středně velkou firmu.toto srovnání bych chtěl provést jak po stránce technologií využitých při implementaci, tak také otestovat přenos v zašifrovaném tunelu VPN. Hlavním zdrojem pro mojí práci je knižní literatura zabývající se tvorbou nebo správou virtuálních privátních sítí, případně popisující využité protokoly, a jako další zdroj bude sloužit internet. - 1 -
2 Teoretická část 2.1 Seznámení s VPN TEORETICKÁ ČÁST VPN je možné definovat různě. Jsou daná pouze obecná pravidla pro VPN, na základě kterých se definice může vytvořit. Podle toho se dá říci, že definicí může být nekonečné množství. Proto například jednoduchá obecná definice může třeba znít takto: VPN je síť, která využívá veřejné telekomunikační sítě k provádění soukromé datové komunikace. [1] Více formální definice se může vyjádřit tímto způsobem: VPN je privátní síť, kde privátnost je vytvořena určitou metodou virtualizace. VPN může být vytvořena v mnoha variantách - mezi dvěma koncovými systémy, mezi dvěma organizacemi, mezi několika koncovými systémy v rámci jedné organizace nebo mezi více organizacemi pomocí např. globální sítě Internet. Může být vytvořena také přímo mezi aplikacemi a samozřejmě také libovolnou kombinací všech uvedených možností..[1] Ještě více formální, ale jasná a asi nejpřesnější definice VPN zní: VPN je komunikační prostředí, ve kterém je řízen přístup ke komunikaci mezi jednotlivými entitami z definovaného souboru, je vytvořeno nějakou formou rozdělení společného komunikačního média, a kde tato nižší vrstva komunikačního média poskytuje síťové služby na ne-exkluzivní bázi. [1] 2.1.1 Historie VPN Termín VPN byl v minulosti spojován s takovými službami jako byla veřejná telefonní síť a Frame relay virtuální okruhy, ale nakonec se stal synonymem pro sítě založené na IP technologii. Než se tento koncept objevil, tak velké společnosti vynaložily značné prostředky na vystavění složitých privátních sítí, nyní společně nazývaných Intranet. Tyto sítě byly instalovány za použití drahých pronajmutých linek, Frame Relay a ATM pro připojení vzdálených uživatelů. V té době si ale malé a střední firmy nemohly dovolit vyhrazenou telefonní linku a byly odkázány používat pomalé komutované služby. Jak se internet stával víc a víc přístupný a šířka pásma rostla, začaly společnosti zpřístupňovat jejich Intranety přes web a vytvářely Extranety pro spojení interních a externích uživatelů. I přes cenovou dostupnost a rychlý vývoj Internetu, zde byl podstatný problém bezpečnost - 2 -
TEORETICKÁ ČÁST Řešení dnešních virtuálních privátních sítí tento nedostatek již překonalo za použití speciálních tunelovacích protokolů a složitých šifrovacích procedur. Integrity dat a soukromí je dosaženo tím, co vypadá jako vyhrazené bod-bod spojení. A protože tyto operace probíhají po veřejné síti, implementace VPN stojí významně méně než soukromá linka, ať už pronajatá nebo vlastní. Ačkoliv prvotní virtuální privátní sítě potřebovaly k implementaci rozsáhlou odbornost, technologie dospěla na takovou úroveň, na které je realizace jednoduchá a cenově dostupná pro firmy všech velikostí. 2.1.2 VPN Význam Virtuální privátní síť neboli Virtual Private Netvork (VPN) je termín složený ze tří slov. Dá se říci, že každé slovo označuje komponenty, na kterých je VPN založena. Nejlépe je začít slovem síť - Network, pod kterým je označena komunikace mezi počítači. Dalším slovem je virtuální Virtual. Při přenosu dat po lokálních sítích (LAN) nebo rozlehlých sítích (WAN) se používá různé přenosové medium, což může být nějaký typ kabelu nebo bezdrátová linka. Tato media spojují všechny počítače v dané síti. Ve virtuální síti ale takový typ přímého spojení nenajdeme. Spojovací tunel se vytváří skrze veřejnou síť - typicky Internet. Odesílání dat probíhá díky emulaci point-to-point linky a tento způsob přenosu dat je zabezpečen zapouzdřením dat. Poslední slovo je privátní Private. Tento výraz znamená šifrování dat při jejich cestě veřejnou sítí. Je možné poslat i nezašifrovaná data skrze tunel, tehdy se nehovoří o virtuální privátní síti, ale pouze o virtuální síti. Ve VPN se používá technologie, která se nazývá tunelové propojení. Díky této technologii je možné přenášet zabezpečená data tak, aby zůstala důvěrná, i když jsou posílána přes veřejnou síť. Toto je velmi důležité, protože pakety procházejí Internetem přes různé uzly, kde jsou snadno zachytitelné a napadnutelné. Při zašifrování nejsou zachycená data čitelná, pokud příjemce nemá šifrovací klíč. Hlavní důvod používání VPN je právě zajištění bezpečného přenosu dat.[2] 2.1.3 Důvody budování a používání VPN Pro budování a používání VPN existuje několik důvodů. Jejich společným jmenovatelem je požadavek na "virtualizaci" určité části komunikace. Jinak řečeno, je to požadavek na skrytí jisté části komunikace nebo přímo celé před "ostatním světem" a přitom využít efektivity společné komunikační infrastruktury. - 3 -
TEORETICKÁ ČÁST V dnešní době leží základní kritérium pro mnoho věcí v ekonomice. Stejně je tomu také při budování virtuálních privátních sítí. Dnešní komunikační systémy se vyznačují vysokými fixními náklady a relativně nízkými variabilními náklady závislými na přenosové kapacitě či šířce pásma. Proto je výhodné spojit větší počet diskrétních komunikačních služeb do společné výkonné platformy a "rozpustit" tak vysoké pevné náklady mezi velký počet klientů. V duchu této myšlenky je pak vybudování i provoz celé sady virtuálních sítí na společné fyzické komunikační základně levnější než vybudování a provoz fyzicky samostatných diskrétních sítí. Spojování jednotlivých komunikačních služeb do jedné společné a veřejné platformy má ale také své limity. Těmi jsou právě výše zmíněné požadavky na "privátnost" komunikace. Náročnost tohoto řešení je pak úměrná výši požadavků na bezpečnost a integritu dat jednotlivých komunikujících klientů či skupin.[3] - 4 -
2.2 Protokoly TEORETICKÁ ČÁST Ve VPN se nejčastěji používají tyto typy protokolů: tunelový - používá se pro vybudování tunelu, občas uváděný jako VPN protokol šifrovací používá se pro zabezpečení dat, někdy se také uvádí jako bezpečnostní protokol síťový/transportní - někdy uváděný jako LAN protokol a používá se ke komunikaci v privátní síti. 2.2.1 Tunelování a tunelové protokoly Tunelování u VPN je vytvoření logického připojení z bodu do bodu, kde je umožněno šifrování dat a autentizace. Obsah původního paketu je při přenosu nečitelný pro síť, po které se přenáší, protože se původní paket skryje uvnitř nového paketu. Není to klasické zapouzdřování v rámci protokolové hierarchie na vrstvách segmenty do paketů, pakety do rámců. Zde se mohou rámce zapouzdřovat do rámců, pakety do paketů nebo například rámce do transportního segmentu. Jakmile paket dosáhne cílového bodu tunelu, hlavička zapouzdření se odstraní a původní paket může být doručen do cílové destinace. Tunelováním se vyjadřuje zapouzdření, směrování a proces vypouzdření. Tunely jsou podporovány různými aktivními síťovými prvky jako jsou switche a routery, ale na druhou stranu je na ně tunelování také velice náročné. Týká se to zejména jejich procesní kapacity. Díky svým virtuálním charakteristikám jsou tunely náročnější na efektivním řešení směrování v síti, čímž může hrozit možnost vzniku lokálních směrovacích smyček, a dále jsou také náročné na diagnostikování problémů v sítích. Neméně zanedbatelná je i otázka týkající se režie, protože zapouzdřením pro přenos tunelem se u dat zvyšuje objem potřebných informací v záhlaví, délka rámce/paketu a tím také objem celkového provozu přenášeného tunelem. Tunelový protokol zapouzdřuje data, takže hlavičky originálních paketů jsou uschovány v zapouzdřených. Mezi tunelové protokoly patří Point-to-Point Tunneling Protocol (PPTP), Layer 2 Forwarding (L2F), Lyer 2 Tunneling Protocol (L2TP), IPSec, Secure Shell (SSH), Secure Shell 2(SSH2) a Krypto IP Encapsulating protocol (CIPE) - 5 -
TEORETICKÁ ČÁST 2.2.1.1 PPTP Tento protokol byl vyvinut vývojovou skupinou tvořenou společnostmi Microsoft,3COM, Ascend Communications a několika dalšími. PPTP je pohodlně a snadno nastavitelný oproti L2TP/Ipsec (požadují sdílený klíč nebo strojní certifikáty). Tento protokol je rozšířením protokolu Point-to-Point (PPP) od Microsoftu, který se využívá k vytváření linek WAN přes vzdálené připojení. Toto rozšíření slouží pro vylepšení mechanismů ověřování, komprese a šifrování PPP. Obr. 2.1 - Struktura protokolu PPTP[4] Lenght - Celková délka v oktetech včetně celé PPTP hlavičky PPTP message type typ zprávy. Možné hodnoty jsou: 1 Kontrolní zpráva, 2 Řídící zpráva. Magic cookie magic cookie je vždycky posláno jako konstanta 0x1A2B3C4D. Control Message Type hodnota může být: Control Connection Management - 1Start-Control-Connection-Request; 2 Start- Control-Connection-Reply; 3Stop-Control-Connection-Request; 4Stop-Control- Connection-Reply; 5Echo-Request; 6Echo-Reply. Call Management - 7Outgoing-Call-Request; 8Outgoing-Call-Reply; 9Incoming-Call- Request; 10Incoming-Call-Reply; 11Incoming-Call-Connected; 12Call-Clear- Request; 13Call-Disconnect-Notify Error Reporting - 14WAN-Error-Notify PPP Session Control - 15Set-Link-Info. - 6 -
TEORETICKÁ ČÁST Reserved 0 & 1 musí být nastaveno na 0. Protocol version číslo verze PPTP Framing Capabilities Indikuje typ rámcovaní, které může odesílatel poskytnout: 1 Asynchroni ; 2 - Synchroni Bearer Capabilities Indikuje schopnost nosiče, kterou může odesílatel poskytnout: 1 Analogový přístup; 2 Digitální přístup Maximum Channels Celkový počet individuálních PPP spojení, které může PAC podporovat Firmware Revision Obsahuje číslo revize firmawaru Host Name Obsahuje DNS jméno PAC nebo PNS Vendor Name Obsahuje specifický řetězec od výrobce, který popisuje, jaký PAC nebo PNS je použit Rámec PPP je šifrován metodou MPPE (Microsoft Point-to-Point Encryption) pomocí šifrovacích klíčů generovaných v průběhu ověřování MS-CHAP, MS-CHAP v2 nebo EAP-TLS. Klienti virtuálních privátních sítí musejí k šifrování přenášených rámců PPP používat ověřovací protokoly MS-CHAP, MS-CHAP v2 nebo EAP-TLS. Protokol PPTP využívá šifrování protokolu PPP a zapouzdření předem zašifrovaného rámce PPP. PPTP pracuje tak, že zapouzdří PPP rámec, který může být IP, IPX nebo NetBEUI paketem uvnitř Generic Routing Encapsulation (GRE) hlavičky. Po poskytnutí zdrojové a cílové adresy IP je vložena i IP hlavička. Zdrojová adresa je VPN klienta a cílová adresa je VPN serveru.[5] Obr. 2.2 - Schéma zapouzdření protokolu PPTP rámce PPP[6] 2.2.1.2 L2F Tuto technologii vyvinula společnost Cisto v roce 1996 a také ji zahrnula do vlastního IOS software. Tento protokol je oproti PPTP schopen používat protokoly ATM a Frame Relay k vybudování tunelu. A také nepotřebuje oproti PPTP k práci IP. L2F ještě navíc poskytuje autentizaci koncových bodů tunelu. - 7 -
TEORETICKÁ ČÁST Obr. 2.3 - Struktura protokolu L2F[7] Version verze L2F software, který vytvořil paket Protocol pole Protocol upřesňuje protokol nesený uvnitř L2F paketu Sequence sekvenční číslo určuje, jestli je bit S v L2F hlavičce nastaven na Multiplex ID tato položka identifikuje jednotlivé spojení uvnitř tunelu Client ID - The client ID (CLID) assists endpoints in demultiplexing tunnels. Length délka je velikost v oktetech celého paketu, včetně hlavičky a všech polí Offset toto pole určuje, zda je bit F v L2F hlavičce nastaven na 1. Key pole klíč určuje, zda je bit K v L2F hlavičce nastaven na 1. Toto je část ověřovacího procesu Checksum kontrolní součet paketu. Pole kontrolního součtu určuje, zda je bit P v L2F hlavičce nastaven na 2.2.1.3 L2TP Tento protokol vznikl spojením výhod protokolů PPTP od společnosti Microsoft a L2F od společnosti Cisco. L2PT může odesílaná data zapouzdřit stejně jako PPTP. Může je ale také zapouzdřit pro odesílání skrze X.25, ATM, Frame Relay. To je právě důvod, proč je možné jej použít pro vybudování tunelu skrz Internet. L2TP má oproti PPTP několik výhod. Může například vytvořit více tunelů mezi koncovými body, podporuje komprimaci hlaviček, je schopný autentizovat tunel a také pracuje i na jiných sítích než jsou IP za použití virtuálních obvodů ATM nebo Frame Relay. - 8 -
TEORETICKÁ ČÁST Obr. 2.4 - Struktura protokolu L2TP[8] T bit T určuje typ zprávy. 0 datová zpráva, 1 kontrolní zpráva L nastavení bitu L značí přítomnost pole Lenght, které určuje celkovou délku doručených paketů. Musí být nastaveno pro kontrolní zprávy. X bit X je reservován pro budoucí rozšíření. Všechny reservované bity jsou nastaveny v odchozí zprávě na 0 a jsou ignorovány v příchozích zprávách. S pokud je nastaven bit S, jsou přítomny obě pole Nr a Ns. S musí být nastaveno pro kontrolní zprávy. O pokud je tento bit nastaven, toto pole značí, že velikost offsetu je obsaženo v datech zprávy. Tento bit má pro kontrolní zprávy hodnotu 0 P když je Priorita (P) nastavena na 1, datová zpráva dostane přednostní zacházení ve vlastním sekvenčním zpracování a přenosu. Ver hodnota v poli Ver je vždy 002 a značí verzi 1 L2TP zprávy Length celková délka zprávy včetně hlavičky Tunnel ID identifikuje tunel, kterému patří kontrolní zpráva. Pokud tunel nemá ještě přiřazen žádné ID, musí být ID nastaveno na 0. Jakmile je ID obdrženo, všechny další pakety musí být poslány s touto hodnou ID Call ID identifikuje uživatelské spojení uvnitř tunelu, pro které platí kontrolní zpráva. Pokud kontrolní zpráva neplatí pro jediné uživatelské spojení uvnitř tunelu, musí být hodnota nastavena na 0 Nr Sekvence čísel, která je očekávána v další kontrolní zprávě, která má být přijata Ns Sekvence čísel pro data nebo kontrolní zprávu Offset size & pad toto pole specifikuje číslo bytů bez L2TP hlavičky, kde je očekáván začátek dat. Aktuální data uvnitř Offset pad nejsou definována. Jestliže je přítomno pole Offset, L2TP hlavička končí za posledním oktetem Offset pad. 2.2.1.4 IPSec Protokol IPSec je možno použít pro šifrování dat, která jsou přenášena tunelem vytvořeným jiným protokolem, např. L2TP. Je možno ho také použít právě k vybudování tunelu, tedy pokud pracuje v tunelovém režimu. V tunelovém režimu se používá IPSec pro zapouzdření IP paketů a také ho lze nakonfigurovat na ochranu dat mezi dvěma IP adresami - 9 -
TEORETICKÁ ČÁST nebo mezi dvěma IP podsítěmi. Tento protokol obsahuje dva bezpečnostní protokoly: Authentication Header (AH) a Encapsulating Security Payload (ESP). AH Pokud je AH použit samostatně, neposkytuje šifrování dat putujících tunelem. Zajišťuje integritu dat ověřováním, zda-li nebyla zfalšována a také autentizuje odesílatele. Při použití AH je zaručeno, že jakmile paket opustí koncový bod tunelu, nebude provedena změna v cílové nebo zdrojové adrese. Obr. 2.5 - Struktura protokolu AH[9] Next header identifikuje typ dalšího obsahu za ověřovací hlavičkou Payload Length specifikuje délku AH ve 32-bitových slovech (4 bytové jednotky) SPI libovolná 32-bitová hodnota, která v kombinaci s cílovou IP adresou a bezpečnostním protokolem, jednoznačně určuje bezpečné spojení pro daný datagram Sequence Number obsahuje jednotvárný vrůstající čítač hodnot, je povinný a musí být vždy přítomen Authentication Data pole s proměnlivou délkou obsahující kontrolní hodnotu integrity, která se vypočítá odečtením ověřovacích dat od ESP paketu ESP Pokud se použije režim ESP, tak jsou adresy původního zdroje a cíle obsaženy v originální zapouzdřené IP hlavičce. Vnější hlavička obvykle obsahuje adresy brány. Tunel ESP používá na šifrování DES a 3DES algoritmy. Při použití ESP není vnější hlavička nijak chráněna a není zaručena její integrita. Pro dosáhnutí zaručené integrity, zašifrování a zároveň autentizace, by se mělo použít AH a ESP najednou. - 10 -
TEORETICKÁ ČÁST Obr. 2.6 - Struktura protokolu ESP[10] Security association identifier - pseudo-náhodná hodnota identifikující bezpečné identifying the security spojení pro daný datagram Sequence Number - obsahuje jednotvárný vzrůstající čítač hodnot, je povinný a musí být vždy přítomen Payload Data pole proměnné délky obsahující data popsaná v poli Next Header Padding doplnění pro šifrování Pad length indikuje počet předchozích pad bitů Next header identifikuje typ dat obsažených v poli Payload Data, například zvětšená hlavička v Ipv6 Authentication Data - pole s proměnlivou délkou obsahující kontrolní hodnotu integrity, která se vypočítá odečtením ověřovacích dat od ESP paketu 2.2.1.5 SSH/SSH2 SSH byl původně určen jako zabezpečená alternativa k telnetu a k UNIXovým r příkazům, jako jsou rsh, rlogin a rcp. SSH využívá autentizaci obou účastníků komunikace, šifrování přenášených dat a ověření integrity dat. SSH2 je více bezpečná, efektivnější a přenosná verze SSH, která obsahuje SFTP. SFTP je totožné jako FTP, akorát je přenos kódován přes SSH2. 2.2.1.6 SSL SSL je zkratka pro Secure Sockets Layer a jedná se o protokol, navržený pro zajištění bezpečného přenosu dat přes počítačové sítě. Tuto bezpečnost zajišťuje pomocí šifrování. Veškerá data přenášená mezi klientem a serverem jsou před odesláním zašifrována a druhou stranou po přijetí opět rozšifrována. Internetový server musí být vybaven speciálním programem, který se stará o to, aby - 11 -
TEORETICKÁ ČÁST definovaná část WWW stránek mohla být klientskému prohlížeči skrze internet předána v zašifrované podobě. 2.2.1.7 CIPE Tento protokol byl navržen pro jednoduchost a účinnost, aby pracoval na již existujícím komunikačním zařízení, hlavně zapouzdřením v UDP paketech. Co se týkalo kompatibility s již existujícími protokoly jako IPSec - nebyl zájem ze strany uživatelů. CIPE je ovladač kernelu Linuxu, který může být použit k vytvoření zabezpečeného tunelu mezi dvěma IP podsítěmi. Data jsou šifrována na síťové vrstvě referenčního modelu OSI, a to se nazývá šifrování na nízké úrovni. Na rozdíl od šifrování na vysoké úrovni není potřeba v aplikačním software žádných změn, pokud jsou dvě sítě propojeny virtuální privátní sítí. - 12 -
TEORETICKÁ ČÁST 2.2.2 Šifrování Po vybudování tunelu se ještě musí zajistit bezpečnost spojení. Bez toho nebude tunel považován za bezpečný. Ochranu dat ve virtuálních privátních sítích je možno docílit použitím různých šifrovacích technologií a z toho u většiny implementací VPN je možnost si nastavit šifrovací metodu. Šifrováním je zajištěna bezpečnost dat putujících po virtuální privátní síti. Bez zabezpečení by byla tato data snadno zranitelná. 2.2.2.1 Šifrovací algoritmy Obecně jsou tři typy šifrovacích algoritmů: 1. Symetrické šifrování (také známé jako šifrování soukromým klíčem) používá jeden klíč pro kódovací a dekódovací proces. 2. Asymetrické šifrování (také známé jako šifrování veřejným klíčem) používá pár dvou klíčů, jeden pro kódovací a druhý pro dekódovací proces. 3. Hašovácí algoritmus (hašovací funkce) používá jednosměrnou matematickou funkci na vytvoření unikátní hašovací hodnoty k identifikaci dat, která jsou jedinečná od ostatních. Při použití hašovací hodnoty nemůže být původní zpráva rekonstruována ani se znalostí hašovacího algoritmu. 2.2.2.2 Klíč a délka klíče Pojem klíče je často neoddělitelně spojen s pojmem zámku. Určité chráněné věci jsou přístupné pouze s vlastněním správného klíče. U šifrování se při využití jednoho konkrétního klíče (z obrovské množiny možných klíčů) získá pro určitá otevřená data jedna jejich konkrétní transformace na šifrová data. Pouze pokud je znám správný klíč, je možné provést zpětnou transformaci šifrovaných dat na otevřená data. Tím, že množina možných klíčů je dostatečně veliká, je zajištěno, že pro potenciálního narušitele je nemožné získat otevřený text prostým vyzkoušením všech možných klíčů (útok hrubou silou, totální zkoušky). V ideálních situacích je klíč vybírán ze základní velké množiny klíčů tak, aby pravděpodobnost volby každého konkrétního klíče z této množiny byla stejná. Pokud klíče nejsou vybírány náhodně, ale určité konkrétní klíče mají podstatně vyšší pravděpodobnost, pak potenciální protivník má samozřejmě možnost vyzkoušet nejprve tyto pravděpodobnější klíče. Tímto způsobem pak může výrazně redukovat náročnost probírky všech klíčů a dopracovat se ke správnému klíči i v podstatně kratší době. - 13 -
TEORETICKÁ ČÁST V současném kryptování mají klíče vlastnost difúze. To značí, že při změně jednoho bitu klíče dojde v každém bitu šifrovaných dat k jeho změně s pravděpodobností jedna polovina. Délkou klíče se obvykle rozumí počet bitů jednotlivého klíče. Tento počet je roven dvojkovému logaritmu (logaritmu se základem 2) velikosti množiny klíčů. 2.2.2.3 Symetrické šifrování a módy blokových šifer Symetrické šifrování[11] (konvenční šifrování nebo šifrování soukromím klíčem), je založeno na jediném šifrovacím klíči (viz Obr. 2.4). Tento klíč musí znát obě zařízení jak pro šifrování, tak pro dešifrování. V tomto použití jednoho klíče je ale největší slabina symetrického šifrování. Toto nebezpečí vyplývá z toho, ze se klíč musí nějakým způsobem dostat k oběma stranám - té která chce informace posílat a i ta co je chce přijímat. Proto je pro přenos šifrovacího klíče potřeba použít nějaký zabezpečený přenos. Kromě problému s předáním klíče bezpečně, je další slabinou u tohoto šifrování také to, že používaný klíč je bezpečný do té doby, dokud jej nemá ještě někdo jiný. Pokud má být pro každou dvojici komunikujících stran jiný klíč, je potřeba n(n-1)/2 klíčů, kde n je počet účastníků. Obr. 2.4 - Symetrické šifrování Největší výhodou symetrického šifrování je nenáročnost na výpočetní výkon. Toto zatížení je měřitelně až 1000x menší než při šifrování asymetrickém. Symetrické šifry se dělí na další dvě kategorie a to na šifry proudové a šifry blokové. - 14 -
TEORETICKÁ ČÁST Proudové šifry - toto šifrování probíhá pomocí šifrovacího klíče postupně bit po bitu, tedy každý bit je zvláště zašifrován, a při dešifrování, je opět každý bit rozšifrován a následně složen do výchozí podoby například souboru s dokumentem. Blokové šifry - jde o rozšířenější šifrování, které výchozí bitový sled rozdělí na bitová slova a ty poté vhodně doplní bitovou šifrou, tak aby všechna slova měla shodnou velikost. V poslední době se nejvíce používá šifrování 64 bitů a 128 bitů, začaly se ale také již objevovat služby, které vyžadují šifrování pomocí 256 bitů. Pokud je jeden a ten samý blok dvakrát zašifrován tímtéž klíčem, je jako výsledný blok obdržen tentýž šifrovaný text (tato metoda se nazývá elektronická kódová kniha - Electronic Code Book mode čili mód ECB). Takováto informace však může být užitečná pro potenciálního narušitele. V praxi by bylo proto výhodnější, aby týmž blokům otevřeného textu odpovídaly různé bloky šifrového textu. Všeobecně jsou užívány následující dvě metody: mód CFB (Cipher Feedback mode): blok šifrovaných dat je získán zašifrováním minulého bloku šifrovaných dat (posledních 64 bitů) a přičtením části vzniklého šifrovaného bloku (obvykle v délce 1 byte) modulo dva k stejně dlouhému bloku otevřených dat. mód CBC (Cipher Block Chaining mode): blok šifrovaných dat je získán tak, že sečteme nejprve mod 2 blok otevřeného bloku dat s minulým šifrovaným blokem dat a výsledek zašifrujeme. Na druhou stranu tyto způsoby kryptování vyžadují k započetí celého procesu určitou konkrétní hodnotu (inicializační vektor IV). Inicializační vektor se má dynamicky měnit, aby nebylo možné získat určité statistiky při opakujících se prvních blocích zpráv. Pomocí módu OFB (Output Feedback mode) lze vlastně každou blokovou šifru využít jako zdroj binárního hesla a použít ji jako proudovou šifru. 2.2.2.4 Asymetrické šifrování Asymetrické šifrování[11] bylo vyvinuto Whitfieldem Diffem a Martinem Hellmanem. U asymetrického šifrování se využívá dvojice klíčů (viz Obr. 2.5) - veřejný a soukromý. Veřejný přístupný všem, a soukromý je dostupný jen tomu, kdo má právo šifrovanou zprávu odšifrovat. Tyto klíče je potřeba vygenerovat na začátku komunikace. Veřejný se umístí například na server dostupný lidem, kteří tento klíč budou používat pro šifrování a nebo se těmto lidem přímo pošle některou z dostupných elektronických cest. Hlavní výhodou - 15 -
TEORETICKÁ ČÁST asymetrického šifrování je, že k soukromým klíčům mají přístup pouze jejich majitelé. Mezi nejvýznamnější systémy asymetrického šifrování patří například tito tři zástupci - Elgamal (autor Tahel Elgamal), RSA (autoři - Ron Rivest, Adi Shamir, Leonard Adleman, Diffie- Hellman ) a nakonec DSA (Digital Signature Algorithm - autor David Kravitz) Obr. 2.5 - Asymetrické šifrování U asymetrického šifrování uživatel, který hodlá poslat zprávu (šifrovaně) si vyžádá veřejný šifrovací klíč příjemce, tímto zprávu zašifruje, a takto zašifrovanou ji pošle příjemci. Příjemce jakožto jediný vlastník svého privátního klíče zprávu odšifruje ale nikdo jiný s jiným šifrovacím privátním klíčem již ne pokud se o to pokusí vypadne mu po dešifrování holý nesmysl ve formě nespecifikovaného shluků znaků. 2.2.2.5 Hašovací algoritmus Nachází uplatnění v oblastech digitálního podpisu, při ověřování integrity dat a všude tam, kde je potřeba nějakým způsobem zajistit autenticitu. Základním principem hašovacích funkcí[12] je vygenerovat z řetězce libovolné konečné délky řetězec fixní délky - haš, který jednoznačně odpovídá vstupnímu řetězci. Pravděpodobnost toho, že náhodně vybraný text, jehož haš bude odpovídat nějaké konkrétní zadané haši, je 1 n, kde n je délka haše. 2-16 -
TEORETICKÁ ČÁST Jiná třída hašovacích funkcí, nazývaná autentizační kódy zprávy (Message Autentication Codes - MACs), umožňuje ověření zprávy použitím symetrických technik. MAC algoritmus dostane na vstup zprávu, kterou chceme zahašovat a privátní klíč. Výsledkem je takový řetězec fixní délky, u kterého je bez znalosti privátního klíče nemožné vyprodukovat totožný výstupní řetězec. Typické použití hašovací funkce pro ověření integrity dat funguje následujícím způsobem: Haš daného vstupního souboru x je vypočítána v čase t1. Tato hodnota je nějakým způsobem zabezpečena. V jiném čase t2 je tento test proveden znovu, aby se zjistilo, zda zpráva x byla změněna či nikoliv. Zpráva x0 je stejná jako x právě tehdy, když haš zprávy x0 je stejná jako zabezpečená haš zprávy x. Tímto je tedy problém integrity velikých souborů zredukován na problém porovnávání řetězců fixní (malé) délky. Při digitálním podepisování je zpráva, která může mít libovolnou, ale konečnou délku, zahašována některým známým hašovacím algoritmem a teprve výsledek této procedury je podepsaný privátním klíčem autora zprávy. Příjemce tedy přijme podepsanou zprávu v nešifrované podobě. Zprávu zahašuje stejným algoritmem jako pisatel a pomocí veřejného klíče odesílatele ověří správnost haše, kterou odesílatel podepsal svým privátním klíčem. 2.2.3 Šifrovací protokoly K šifrování v rámci VPN se používají následující protokoly: MPPE, IPSec šifrování, VPNd šifrování, SSH šifrování. 2.2.3.1 MMPE Tento protokol se využívá u sítí založených na protokolu PPTP nebo případně na telefonickém připojení za použití PPP. Používá RSA RC4 šifrovací algoritmus a také podporuje 40-bitový, 56-bitový nebo 128-bitový šifrovací klíč, který se často mění. Je to z důvodu zvýšení bezpečnosti. Frekvence změny záleží na nastavení, ale může být provedena s každým paketem. 2.2.3.2 RSA RC4 Jedná se o asymetrickou šifrovací metodu, která je zatím jedna z nejrozšířenějších. Používá Fermatovu větu a modulární aritmetiku[13]. Jde o část matematiky, která se zabývá zbytky po dělení celých čísel. Síla této šifry spočívá v tom, že dosud nebyla objevena metoda, jak rozložit velká čísla na prvočísla - faktorizace. V danou chvíli není ani zcela jisté zda je vůbec možné takovouto metodu objevit. Jakmile se ale tato metoda objeví, bude tato šifra nepoužitelná. I přes toto všechno je bezpečnost závislá na délce klíče[14]. - 17 -