Č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 vlastnoruční podpis V Praze dne 30.12.2008
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 2
Úvod ................................................................................................................................... 1 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
ÚVOD
1 Ú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-
TEORETICKÁ ČÁST
2 Teoretická část 2.1 Seznámení s VPN 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-
TEORETICKÁ ČÁST
2.2 Protokoly 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 StartControl-Connection-Reply; 3Stop-Control-Connection-Request; 4Stop-ControlConnection-Reply; 5Echo-Request; 6Echo-Reply. Call Management - 7Outgoing-Call-Request; 8Outgoing-Call-Reply; 9Incoming-CallRequest; 10Incoming-Call-Reply; 11Incoming-Call-Connected; 12Call-ClearRequest; 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, DiffieHellman ) 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
- 16 -
1 , kde n je délka haše. 2n
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 -
TEORETICKÁ ČÁST Oba klíče se odvozují jako součin z dvou velkých prvočísel x a y . Jedná se o prvočísla, která mají více jak 100 míst. z = x⋅ y
V dalším kroku je zvolen šifrovací klíč s . Tato hodnota musí být taková, aby čísla
s a ( x − 1) ⋅ ( y − 1) byla nesoudělná. Za pomoci Eulerova rozšířeného algoritmu se vypočte dešifrovací klíč k , pro něhož platí:
s ⋅ k = 1(mod( x − 1) ⋅ ( y − 1)) Pro provedení tohoto kroku není už hodnota x a y dále potřeba. I přesto musí zůstat tato hodnota tajná, aby nevznikla slabina v algoritmu. Dále se rozdělí data na bloky o velikosti, která jsou menší než z . Po tomto kroku je možné pomocí RSA RC4 šifrovat a dešifrovat. Šifrování: a = b s ⋅ mod z Dešifrování: b = a k ⋅ mod z
2.2.3.3 IPSec šifrování IPSec používá k šifrování dat v L2TP tunelu algoritmus DES nebo 3DES. Použitím kombinace kryptograficky založených algoritmů a klíčů jsou informace velmi dobře zabezpečené. Diffie – Hellmanův algortimus umožňuje bezpečnou výměnu sdíleného klíče, aniž by byl klíč samotný odeslán skrze síťové připojení.
DES Metoda DES[15] (Data Encryption Standart) byla vytvořena v 70. letech 20 století firmou IBM a roce 1976 byl DES přijat jako federální standart a jeho oficiální popis byl vydán roku 1977. V algoritmu je využito pouze standardních logických a aritmetických operací nad
čísly, aby se dal snadno hardwarově implementovat. Se softwarovou implementací se původně v definici nepočítalo. Později se připustila i softwarová implementace, která má název DEA(Data Encryption Algorithm)
- 18 -
TEORETICKÁ ČÁST Kvůli zvýšení bezpečnosti DES byla, od vzniku této metody zvětšena délka šifrovacího klíče, která neměla vliv na změnu šifrování, a proto zůstal princip zachován. DES je symetrická bloková šifra s blokem o velikosti 64 bitů. Klíč má délku 56 bitů místo 64 bitů, protože každý 8. bit je použit pro paritní zabezpečení. Z tohoto důvodu je algoritmem ignorován. Celý algoritmus je založen na opakování šestnácti šifrovacích kroků – rundách. V těchto krocích se za použití klíče provede substituce a následná permutace. DES na počátku vezme blok o 64 bitech otevřených dat, která se rozdělí na pravou a levou polovinu. Každá polovina má délku 32 bitů. Na začátku rundy se posunou bity klíče a vybere se 48 bitů z 56-ti bitového klíče. Pravá strana se pomocí expanzivní permutace rozšíří na 48 bitů a ve sčítačce se tyto bity sečtou a znovu permutují a výsledek ještě zkombinuje s levou polovinou. Pravá polovina se nemění a stává se novou levou polovinou v další rundě. A celý cyklus se opakuje. Před první rundou se musí ještě provést počáteční permutace, při níž se transponuje vstupní 64 bitový blok. I přes neznalost této permutace není ovlivněna bezpečnost algoritmu. Jakmile se provede počáteční permutace, dojde k redukci klíče o paritní bity na 56 bitů. Algoritmus DES je obvykle užíván v módu CBC či CFB. Vysoká rychlost celé metody je dána také menším rozměrem klíče. Po uplynutí 16 rund, kdy v poslední rundě nedochází k závěrečnému vyměnění levé a pravé strany, přijde na řadu konečná permutace, která je opakem počáteční. Je to z důvodu použití DESu jako pro šifrování, tak pro dešifrování bez použití jiných metod. Mezi šifrováním a dešifrováním je rozdíl v tom, že je nutné dešifrovat pomocí klíčů v opačném pořadí. Dešifruje se klíč K16, pak K15, atd. Dále je také nutné provést ve správném pořadí posuny klíčů.
3DES 3DES[15] je zesílená varianta kryptografického standartu. Využívá dvojnásobně dlouhý klíč, tj. 112 bitů. Algoritmus DES je použit třikrát, v prvním a třetím kroku šifruje (pomocí první části klíče), v druhém kroku dešifruje (pomocí druhé části klíče). Někdy je 3DES implementována tak, že v třetím kroku používá rovněž odlišný klíč. Celková délka klíče pak dosahuje 168 bitů. Algoritmus 3-DES je považován za mnohem bezpečnější než standardní algoritmus DES. Rychlost 3-DES je téměř třikrát menší než rychlost DES
- 19 -
TEORETICKÁ ČÁST Výhodou 3-DES je skutečnost, že aplikace používající DES lze jednoduše převést na používání 3-DES (pokud se neukáže kritickou právě rychlost šifrování).
2.2.3.4 VPNd šifrování VPDn(Virtual Private Network daemon)[16] spojuje dvě počítačové sítě na síťové vrstvě pomocí TCP/IP nebo také pronajatou linku připojenou k sériovému rozhraní (viz. Obr. 2.6). Všechna data, která jsou přenesena mezi dvěmi sítěmi, jsou zašifrovaná pomocí nepatentovaného šifrovacího algoritmu Blowfish. VPNd není zamýšlen jako náhrada existujícího zabezpečeného softwaru jako je například ssh nebo tunelovací příslušenství v operačním systému. Je brán jako prostředek pro bezpečnou transparentní síť, která vzájemně spojuje potenciálně nezabezpečené kanály.
Obr. 2.6 – VPNd šifrování
2.2.3.5 Blowfish Jedná se o symetrickou blokovou šifru s velikostí bloků 64 bitů a maximální velikosti klíče 448 bitů. Její autor je Bruce Schneier, který ji poprvé zveřejnil roku 1994. Tato šifra je nelicencovaná a také nemá copyright. Blowfish je také používán jako standardní šifra v operačním systému OpenBSD
- 20 -
TEORETICKÁ ČÁST Tento algoritmus tvoří dvě části. První část je expanze klíče, která převádí klíč s libovolnou délkou (délka může být max. 56B) na několik polí podklíčů. Druhá se nazývá šifrování dat. To je prováděno po blocích 64 bitů v šestnácti rundách. Každá runda provádí substituci, která je závislá na kódovaných datech a klíči, a dále permutaci závislou pouze na klíči. V tomto algoritmu jsou všechny operace typu XOR a sčítání 32-bitových slov. Kromě toho všeho se v každé rundě provádějí čtyři operace výběru dat z pole vypočteného indexu. U algoritmu je použit velký počet podklíčů. Tyto podklíče jsou uloženy v pěti polích a musejí se vypočítat ze zadaného klíče před začátkem procesu šifrování nebo dešifrování. První pole se označuje P-pole (P-box), má 18 32-bitových položek (P1-P18). Zbývající čtyři pole se označují jako S-pole (S-box). Každé z těchto S-polí má 256 32-bitových položek (S0S255)[17].
Obr. 2.7 – Šifrování Blowfish
- 21 -
TEORETICKÁ ČÁST 2.2.4 Protokoly LAN Pro komunikaci serveru a VPN klienta musejí mít obě strany nainstalován stejný soubor síťových (transportních) protokolů. Převážně se jedná o TCP/IP, ale nemusí to být vždy pravidlem. Dokonce i PPTP připojení, které vyžaduje IP ve veřejné síti, přes kterou je tunel vybudován, může ke komunikaci používat IPX/SPX nebo dokonce NetBEUI.
2.2.4.1 TCP/IP TCP/IP[18] je zkratka pro Transmission Control Protocol / Internet Protocol. Tento soubor protokolů se dnes používá jak na Internetu, tak také na platformách jako UNIX, Banyan VINES, Microsoft LAN Manager či Novell NetWare.
TCP/UDP Před každou výměnou dat mezi dvěma uzly musí být nejprve navázáno spojení a po přenosu zase zrušeno. TCP protokol posílá data po jednotlivých bytech, očekává tedy že mu budou data předávána od jeho vyšší vrstvy v tzv. oktetech. Ty pak kumuluje do vyrovnávacího bufferu, obvykle o 64 kb velikosti a posílá dále. Celý mechanismus sdružování jednotlivých bytů do bloků je plně v režii protokolu TCP, který se přenosem větších celků snaží optimalizovat využití přenosových cest. Pro vyšší vrstvu je tento mechanismus neviditelný - vyšší vrstva pracuje s představou proudu jednotlivých bytů. Pro některé aplikace však nemusí být přenos přes vyrovnávací buffer příliš vhodný. Proto zde existuje přímý odesílací mechanismus nazývaný push, kterým si lze odeslání dat vynutit, aniž by byl buffer plný. Efektivita přenosu je právě dána paketovým přenosem. Při chybě v přenosu se nemusí posílat celý „balík“ dat, ale jen chybný paket. Při přenosu používá protokol TCP tzv. kladné potvrzování (positive acknowledgement), což znamená, že se potvrzují jen úspěšně přijatá data a naopak na „nepřijatá, chybná“ data vůbec nereaguje. Chybně vyslaná data se posílají opětovně po určité době (po vypršení časového limitu – time out). Ovšem bylo by značně neefektivní, kdyby protokol čekal na každé „dobré“ potvrzení. V praxi se přenos provádí tak, že se vyšle několik bloků dat ještě dříve než je přijata informace o tom, že byla data úspěšně přijata tzv. kontinuálního potvrzování (continuous acknowledgement). Dalším protokolem transportní vrstvy je protokol UDP (User Datagram Protocol), který je rychlejší, ale méně spolehlivější oproti protokolu TCP. Tento protokol vyšle data aniž by navazoval jakékoliv spojení s nějakým uzlem. Na rozdíl od TCP posílá data v celém bloku. Očekává tedy od své bezprostředně vyšší vrstvy vždy celý blok dat, který se snaží přenést
- 22 -
TEORETICKÁ ČÁST opět jako celek (v rámci jediného tzv. uživatelského datagramu), a na straně příjemce jej předává své bezprostředně vyšší vrstvě opět jako celek.
IP Je protokol síťové vrstvy a u každého paketu ověřuje jeho korektnost a obhospodařuje adresování, a to tak, aby pakety mohly být směrovány nejen přes řadu uzlů, ale dokonce i přes řadu sítí pracujících s různými komunikačními protokoly – např. Ethernet, FDDI nebo X.25. Dále zajišťuje, aby byly pakety posílány ve správném pořadí a co možná nejvhodněji, co se týče cesty přenosu.
2.2.4.2 IPX/SPX Protokol Internet Package Exchange/Sequenced Packet Exchange (IPX/SPX)[19] využívá jako svůj protokol pro sítě LAN firma Novell. Je tedy vyžadován pro všechny sítě NetWare před verzí 5.0. Verze NetWare 5.0 je první verzí, která je schopna bez problému běžet na protokolu IP. Protokoly IPX/SPX jsou optimalizovány pro nasazení v prostředí lokálních sítí, a v prostředí sítí rozlehlých jsou prakticky nepoužitelné. Z tohoto důvodu vyžadují minimální konfiguraci a oproti TCP/IP nabízí vyšší rychlost.
IPX Protokol IPX slouží pro vysílání, směrování a příjem paketů v IPX intersíti. Na rozdíl od linkových protokolů dokáže přenášet pakety i v heterogenním prostředí tvořeném vzájemně propojenými sítěmi s nekompatibilní linkovou vrstvou (např. Ethernet, Token Ring). Slouží jako základní přenosový prostředek pro ostatní protokoly vyšších vrstev, které jsou přenášeny jako součást datové části paketu IPX. Přenos paketů prostřednictvím IPX není zabezpečený. Jde o datagramovou službu.
SPX Protokol SPX (Sequenced Packet Exchange) připadne svými funkcemi do transportní vrstvy modelu OSI. Přenáší se v datové části protokolu IPX. Umožňuje řízení toku dat mezi komunikujícími aplikacemi v intersíti IPX. Protokol zabezpečuje sekvenční výměnu paketů s potvrzováním příjmu a opakováním přenosu paketů při jejich ztrátě nebo poškození.. Protokol je spojově orientovaný, což znamená, že mezi komunikujícími procesy je spolehlivá potvrzovaná transportní služba.
- 23 -
TEORETICKÁ ČÁST 2.2.4.3 NetBEUI Protokol NetBEUI (NetBios Exteded User Interface) je odvozený od aplikačního programového rozhraní NetBIOS firmy IBM. Protokol původně vyvinula firma 3COM ve spolupráci s Madge Network Liited. Protokol je značně rozšířený díky firmám IBM a Microsoft, které ho použily ve svých operačních systémech (OS2, LanServer, LanManager, Windows 3.11, 95, NT). V současné době je protokol na ústupu, protože nepodporuje směrování a je výhodný jen pro menší skupiny (do 20 uživatelů). Protokol nepředpokládá použití služeb síťové vrstvy, proto je použitelný jenom v rámci samostatné sítě LAN, nebo v LAN propojených pomocí mostů. Protokol je nesměrovatelný.
- 24 -
PRAKTICKÁ ČÁST
3 Praktická část 3.1 OpenVPN OpenVPN je multiplatformní opensource VPN a je šířen pod licencí GNU/GPL (protokol OpenVPN je obsažen na CD). Jedná se jak o server, tak zároveň i o klienta (architektura klient-server). Používá se k vytváření sítí VPN mezi různými lokalitami na základě protokolu SSL/TLS nebo předem vyměněných klíčů. Umožňuje bezpečný transport dat (tunelování) po jediném TCP nebo UDP portu přes nezabezpečenou síť. Mezi podporované systémy patří Linux, MS Windows 2000/XP/Vista, MacOS X, OpenBSD, FreeBSD NetBSD a také Solaris. Podle vývojářů by mělo být možno provozovat Open VPN i na 64 bitových systémech. OpenVPN dokáže pracovat v několika módech a v několika procesech najednou. Díky tomu může být jeden počítač jak serverem, tak i klientem zároveň. Na základě oficiálního přidělování portů organizací IANA je předvolený port pro OpenVPN stanoven jako UDP port 1194. Může se nicméně použít jakýkoli jiný TCP nebo UDP port. Od verze 2.0 pak na serveru může být jediný port použit pro několik tunelů. OpenVPN má tři základní možnosti nastavení. Prvním je server, kdy OpenVPN umožňuje klientům připojovat se k němu. Druhým je mód klient, kdy se naopak OpenVPN připojuje k serveru. A třetím je bridge, neboli síťový most, kdy je možné spojit například dva konce neveřejných sítí[20].
3.1.1 Bezpečnostní režimy Při zabezpečení šifrování je možné využít jak symetrické tak asymetrické šifrování. V případě symetrického šifrování je konfigurace velmi jednoduchá, ale problém nastává v případě, že je potřeba předat klíč (přes zabezpečený komunikační kanál) na druhou stranu tunelu
jiné
osobě,
která
nutně
nemusí
být
věrohodná.
Řešením je použití Public Key Infrastructure. Každá strana vlastní dva klíče: veřejný klíč je přístupný každému a soukromý klíč je tajný. Tento proces je používán OpenSSL, volně šiřitelnou open source implementací SSL integrovanou s OpenVPN, k ověření stran VPN před zahájením šifrování dat.
- 25 -
PRAKTICKÁ ČÁST Tab 3.1 - Porovnání jednotlivých bezpečnostních režimů Režim OpenVPN Režim šifrování Implementace Rychlost Využití CPU Výměna klíčů Obnova šifrovacích klíčů: Autentikace stran:
Statické klíče
SSL
symetrický jednodušší rychlejší nižší ANO NE NE
asymetrický a symetrický složitější pomalejší vyšší NE ANO ANO
3.1.2 Test VPN Test OpenVPN byl proveden na PC se systémem Windows XP a jako režim šifrování byl nastaven SSL certifikát. Operační systém Windows XP byl nainstalován jak na straně serveru, tak také na stranách klientů. Bylo testováno připojení klientského PC a serveru ve stejné síti a dále klienta - PC s ADSL připojením na internet a serveru. Druhý typ připojení je využíván při práci s VPN nejčastěji. A nemusí se jednat pouze o připojení přes ADSL, je možné využít jakékoliv jiné, například CDMA. Pro šifrování přenosu byly vygenerovány certifikáty SSL (přiloženo na CD). Na straně serveru se nachází certifikát a klíč určen pro server a u klienta zase certifikát a klíč určený pro klienta. Zároveň musí být na obou stranách certifikát certifikační autority, pomocí které byly certifikáty serveru a klienta podepsány, a tento certifikát se používá pro ověření platnosti. Při prvním testu byl připojen server i klient do kolejní sítě. 1Výpis trasy k astro.mk.cvut.cz [147.32.96.49] proveden na PC s klientem s nejvýše 30 směrováními: 1
< 1 ms
< 1 ms
< 1 ms kerberos-nat.nat.mk.cvut.cz [192.168.6.1]
2
< 1 ms
< 1 ms
< 1 ms astro.mk.cvut.cz [147.32.96.49]
Další výpis ukazuje trasu vedenou přes tunel VPN, kde IP adresa serveru je 10.0.1.100: 1
2 ms
1 ms
1 ms 10.0.1.100
Přes šifrovaný tunel byla poslána data o velikosti 10 MB a byla změřena 2rychlost přenosu. Výsledek měření je zobrazen na obrázku 3.1.
1 2
Výpis trasy byl proveden pomocí příkazu tracert v příkazové řádce systému WinXP. Měření rychlosti bylo provedeno pomocí volně stažitelného programu Network Speed.
- 26 -
PRAKTICKÁ ČÁST
Obr. 3.1 – Přenosu dat tunelem (test 1) Rychlost linky byla 10 Mbps a její vytížení skoro 99%. Z obrázku 3.2. lze vyčíst, že šifrování v tunelu má zanedbatelný vliv na přenosovou rychlost. Z grafu na obrázku je patrné vytížení linky.
Obr. 3.2 – Vytíženost linky (test 1) Při sledování přenosové rychlosti (Obr 3.3) se také zaznamenalo vytížení CPU. 3
Zátěž CPU se pohybovala mezi 20 %-50 %. Z toho bylo minimálně 10 % způsobeno
běžícími procesy na pozadí systému.
Obr. 3.3 – Vytíženost CPU po dobu přenosu (test 1) Druhý test byl proveden na notebooku, který byl připojen na VPN server přes ADSL. Bylo využito 4 Mbit ADSL. Na obrázku 3.4 je zobrazeno trasování z počítače na server mimo tunel a na dalším (Obr. 3.5) uvnitř tunelu.
3
Test byl proveden na CPU AMD Athlon 3000+, 1.80Ghz.
- 27 -
PRAKTICKÁ ČÁST
Obr. 3.4 – Trasování vně tunelu (test 2)
Obr. 3.5 – Trasování uvnitř tunelu (test 2) Skrz tunel bylo posláno 10 MB dat. Výsledek přenosu je vidět na obrázku 3.6.
Obr. 3.6 – Přenosu dat tunelem (test 2)
Obr. 3.7 – Vytíženost linky (test 2)
Obr. 3.8 – Vytíženost CPU po dobu přenosu (test 2)
- 28 -
PRAKTICKÁ ČÁST Shrnutí • OpenSource • Více platformová podpora. • Podpora režimů tunel nebo client/server • Možnost použití sdíleného klíče a/nebo SSL certifikátů • Jednoduchá konfigurace • Bezpečnost • Vysoká odolnost při použití na nekvalitních linkách • Volitelná komprese • Podpora HTTP a SOCKS proxy.
3.2 PPTP Další testovanou VPN byla PPTP ve Windows XP. Systém XP byl jak na straně serveru, tak na straně klienta. Klientské PC bylo připojeno do Internetu přes CDMA. Na obrázku 3.9 je cesta od klienta na serveru mimo tunel a na dalším (Obr 3.10) je trasování provedeno skrz tunel.
Obr. 3.9 – Trasování vně tunelu
Obr. 3.10 – Trasování uvnitř tunelu
- 29 -
PRAKTICKÁ ČÁST
Obr.3.11 - Nastavení VPN na straně klienta.
Skrz tunel byla poslána data o velikosti 1 MB. Tato velikost byla zvolena z důvodu horší přenosové rychlosti, která byla způsobena horším příjmem signálu. Výsledek přenosu je na obrázku 3.12.
Obr. 3.12 – Přenosu dat tunelem Rychlost VPN byla stejná jako rychlost CDMA. Jak probíhal přenos je možné vidět na obrázku 3.13.
Obr. 3.13 – Vytíženost linky
- 30 -
PRAKTICKÁ ČÁST Na straně serveru4 nebyla téměř zaznamenána žádná zátěž způsobená přenosem dat přes VPN. Bylo to způsobeno nízkou rychlostí přenosu. Shrnutí • Dobrá podpora PPTP na většině operačních systémů • Méně dokonalá bezpečnost než Ipsec • Snadná konfigurace
3.3 CISCO VPN U CISCO VPN (Obr. 3.14) je možno použít pro zajištění bezpečnosti IPSec nebo SSL VPN. Při použití metody přes IPSec je potřeba mít nainstalovaného klienta VPN na pracovní stanici. Tato metoda chrání téměř libovolný typ provozu a je s ní možné připojit také vzdálené sítě. Klient je poskytnut od firmy Cisco zdrama. Pokud se použije SSL VPN, tak je možné připojit pouze jednotlivé uživatele nebo podporované aplikace. Toto spojení se musí navázat za použití webového prohlížeče. Při realizaci VPN pomocí IPSec je využit koncept Cisco Easy VPN. Díky tomuto konceptu je možné centralizovat všechna bezpečnostní nastavení do centrální sítě, čímž se zlepší správa vzdálených uživatelů. Na počítači, kde je nainstalován klient, se provede pouze minimální nastavení a hlavní bezpečnostní nastavení se nastaví Easy VPN serverem, který je umístěn v centrále. Jako server je možné použít PIX firewall, VPN koncentrátor nebo směrovač. V případě klienta je možné použít aplikaci Cisco VPN klient, PIX firewall, popřípadě VPN hardware klienta[21].
4
Jako server slouží PC Intel Pentium 4 s 512 MB RAM
- 31 -
PRAKTICKÁ ČÁST
Obr. 3.14 – Cisco VPN s použitím SSL a IPsec
3.3.1 Koncentrátor Koncentrátor je specializované zařízení produkované firmou Cisco na zakončování VPN přístupů. Mohou koncentrovat přístup jak přes IPsec, tak i SSL. U VPN koncentrátorů je zajištěna podpora technologie Network Admission Control. Přístup stanice do sítě přes IPSec VPN může koncentrátor omezit v případě, že stanice nevyhovuje stanoveným pravidlům. To může nastat, pokud není například nainstalovaný osobní firewall, antivirový program nebo veškeré záplaty. Vše záleží na nastavení. U této VPN se nepovedlo provést otestování přenosu. Je to z důvodu placeného řešení celé Cisco VPN. Shrnutí • Placené řešení • Více platformová podpora • Centralizace bezpečnostních nastavení • Možnost použití Ipsec nebo SSL certifikátů • Složitější konfigurace • Bezpečnost • Využití CISCO technologii
- 32 -
ZÁVĚR
4 Závěr Při srovnání virtuálních privátních sítí se nedá říci, že je některá špatná a jiná zase dobrá. Při spojení dvou počítačů je možné využít jeden typ, pro správu serverů v soukromé síti další a pro komerční využití zase další. Mezi komerční účely je možné zařadit připojování zaměstnanců vzdáleně do firmy, propojení externího skladu s Je zbytečné platit něco, co se nevyužije. Proto je velice důležité, aby bylo jasné, co se od dané VPN čeká. Vybrání správné VPN pro středně velkou firmu může zaviset na dvou věcech. První je finanční stránka pořízení a nákladů spojených s provozem sítě. Druhá je bezpečnost. Z pohledu finanční stránky je nejdražší řešení od společnosti Cisco. Pořízení se pohybuje v tisích korunách. Pokud nejsou prostředky na toto pořízení, je možné jako alternativu využít OpenVPN, která je plně zdarma a je možné vše stáhnout z internetu. A nezáleží na tom, jestli je potřeba verze pro server nebo pro klient. Pro obě strany je použit stejný software, v kterém se rozlišuje strana serveru a klienta podle nastavení. Zdarma není pouze OpenVPN, ale i jiné VPN, například FreeS/WAN nebo Tinc VPN. Případně je zde ještě možnost využití VPN, která je integrována v operačním systému. Pořízení je tedy už v ceně při nákupu operačního systému nebo může být také zdarma. Zdarma je v open source systemech. Z finančního hlediska se vyplatí pořídit některouz open source VPN. Z pohledu bezpečnosti je nejlepší využít IPsec VPN, které mají výborné šifrování. Do IPsec se nechá zařadit Cisco VPN nebo FreeS/WAN. Na dalším místě za IPsec je šifrování pomocí certifikátů SSL. U tohoto typu také záleží, jaktý software je využit při tvorbě certifikátů. Je možné využít open source jako OpenSSL nebo plně placená řešení od různých firem. SSL šifrování je možné využít i Cisco VPN, ale nebude možné propojit celé sítě mezi sebou, pouze půjde připojit jednotlivé uživatele do firemní LAN. Pro středně velkou firmů se vyplátí více použít VPN s certifikáty SSL. Většinou není potřeba propojovat velké segmenty sítí, ale spíše vzdálené uživatele. Pomocí certifikátů je možné sledovat, který uživatel je připojen. Toto řešení není finančně moc náročné a po stránce nastavení také nepatří mezi nejobtížnější. Bezpečnost je také dostačující.
- 33 -
SEZNAM POUŽITÉ LITERATURY
5 Seznam použité literatury [1]
LUHOVÝ, K.: VPN (1) – historie, definice a důvody budování [online]. 2003, [cit. 2008-22-05]. Dostupný z:
[2]
GRUPTA, M.:Building a Virtual Private Network. Premier Press. 2003, 448 s. ISBN:1931841810
[3]
SCOTT, C., WOLFE, P., ERWIN, M.: Virtual Private Networks, Second Edition. O'Reilly, Januar 1999, 225 s. ISBN: 1-56592-529-7
[4]
PPTP:Point to Point Tunneling Protocol [online]. 2005 [cit. 2008-05-06]. Dostupné z:
[5]
EISINGER, J.: Exploiting known security holes in Microsoft's PPTP Authentication Extensions (MS-CHAPv2 ) [online], University of Freiburg ,[cit.2008-27-05] Dostupné z: < http://penguinbreeder.org/pptp/download/pptp_mschapv2.pdf>
[6]
Protokol PPTP (Point-to-Point Tunneling Protocol) [online]. 2005 [cit. 200805-06]. Dostupné z:
[7]
L2F: Layer 2 Forwarding Protocol [online]. 2005 [cit. 2008-14-06]. Dostupné z:
[8]
L2TP: Layer 2 Tunneling Protocol [online]. 2005 [cit. 2008-22-06]. Dostupné z:
[9]
IPsec AH: IP Authentication Header [online]. 2005 [cit. 2008-25-06]. Dostupné z:
[10] IPsec ESP: IP Encapsulating Security Payload [online]. 2005 [cit. 2008-25-06]. Dostupné z: [11] TANERBAUM S. A.: Computer Networks, Fourth Edition. Prentice Hall, March 2003, 384 s. ISBN: 0-13-066102-3 [12] KLÍMA, V.: Hašovací funkce, principi, příklady a kolize [online], 2005 [cit. 2008-30-06] Dostupné z: < http://www.cryptofest.cz/slides/klima_cryptofest_2005.pdf> [13] RSA [online]. Wikipedia - The Free Encyclopedia, [cit. 2008-08-07] Dostupné z: [14] CORMEN H. T., LEISERSON E. C., RIVEST L. R., STEIN C.: Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001, 887 s. ISBN: 0262-03293-7 [15] Kryptologie: Šifrovací algoritmus DES [online].2006-22-03 [cit. 2008-15-07] Dostupné z: [16] Virtual Private Network Daemon [online]. Open Source Hosting, [cit. 2008-2507] Dostupné z:
- 34 -
SEZNAM POUŽITÉ LITERATURY [17] Popis šifry Blowfish [online]. ČVUT v Praze, [cit. 2008-14-08] Dostupné z: < http://moon.felk.cvut.cz/~pjv/Jak/_info/i677/html/blowfish.htm> [18] DOSTÁLEK L., KABELOVÁ A.: Velký průvodce protokoly TCP/IP a systémem DNS, 2. aktualizované vydání. Vydavatelství a nakladatelství Computer Press, 2000, 435 s. ISBN: 80-7226-323-4 [19] IPX/SPX [online]. Wikipedia – The Free Encyclopedia, [cit. 2008-02-09] Dostupné z: < http://en.wikipedia.org/wiki/IPX/SPX> [20] Welcome to OpenVPN [online]. OpenVPN Technologies, Inc., 2008,[cit. 200812-12] Dostupné z: < http://www.openvpn.org/> [21] Cisco Systems, Inc [online]. Cisco Systems, Inc., 1992-2009,[cit. 2008-18-12] Dostupné z: < http://www.cisco.com/>
- 35 -