České vysoké učení technické v Praze Fakulta elektrotechnická. Bakalářská práce na téma. Bezpečnost informačního systému



Podobné dokumenty
Bezpečnost vzdáleného přístupu. Jan Kubr

SSL Secure Sockets Layer

VPN - Virtual private networks

Seminární práce do předmětu: Bezpečnost informačních systémů. téma: IPsec. Vypracoval: Libor Stránský

Č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

Analýza síťového provozu. Ing. Dominik Breitenbacher Mgr. Radim Janča

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

Identifikátor materiálu: ICT-3-03

Moderní komunikační technologie. Ing. Petr Machník, Ph.D.

Informatika / bezpečnost

UKRY - Symetrické blokové šifry

Přednáška 3. Opakovače,směrovače, mosty a síťové brány


Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP.

Asymetrická kryptografie a elektronický podpis. Ing. Mgr. Martin Henzl Mgr. Radim Janča ijanca@fit.vutbr.cz

6. Transportní vrstva

Josef Hajas.

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

Moderní metody substitučního šifrování

Model ISO - OSI. 5 až 7 - uživatelská část, 1 až 3 - síťová část

Počítačové sítě Transportní vrstva. Transportní vrstva

4. Síťová vrstva. Síťová vrstva. Počítačové sítě I. 1 (6) KST/IPS1. Studijní cíl. Představíme si funkci síťové vrstvy a jednotlivé protokoly.

Desktop systémy Microsoft Windows

Přednáška 10. X Window. Secure shell. Úvod do Operačních Systémů Přednáška 10

Šifrová ochrana informací věk počítačů PS5-1

Počítačové sítě. Lekce 4: Síťová architektura TCP/IP

Kryptografie, elektronický podpis. Ing. Miloslav Hub, Ph.D. 27. listopadu 2007

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování

OpenVPN. Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko. Ondřej Caletka (CESNET, z.s.p.o.) OpenVPN 3. března / 16

9. Sítě MS Windows. Distribuce Windows. Obchodní označení. Jednoduchý OS pro osobní počítače, pouze FAT, základní podpora peer to peer sítí,

Šifrová ochrana informací věk počítačů PS5-2

ISMS. Autentizace ve WiFi sítích. V Brně dne 5. a 12. prosince 2013

Počítačové sítě Teoretická průprava II. Ing. František Kovařík

Šifrová ochrana informací věk počítačů PS5-2

Od Enigmy k PKI. principy moderní kryptografie T-SEC4 / L3. Tomáš Herout Cisco. Praha, hotel Clarion dubna 2013.

MODELY POČÍTAČOVÝCH SÍTÍ

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Secure Shell. X Window.

Obsah. O autorech 9. Předmluva 13. KAPITOLA 1 Počítačové sítě a Internet 23. Jim Kurose 9 Keith Ross 9

Autentizace uživatelů

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Adaptabilní systém pro zvýšení rychlosti a spolehlivosti přenosu dat v přenosové síti

Správa webserveru. Blok 9 Bezpečnost HTTP. 9.1 Úvod do šifrování a bezpečné komunikace Základní pojmy

POPIS STANDARDU CEN TC278/WG4. 1 z 5. Oblast: TTI. Zkrácený název: Zprávy přes CN 4. Norma číslo:

5. Směrování v počítačových sítích a směrovací protokoly

PA159 - Bezpečnostní aspekty

12. Bezpečnost počítačových sítí

Počítačová síť a internet. V. Votruba

Elektronický podpis. Základní princip. Digitální podpis. Podpis vs. šifrování. Hashování. Jednosměrné funkce. Odesílatel. Příjemce

Protokoly: IP, ARP, RARP, ICMP, IGMP, OSPF

Inovace bakalářského studijního oboru Aplikovaná chemie

Počítačové sítě. Počítačová síť. VYT Počítačové sítě

3.17 Využívané síťové protokoly

JAK ČÍST TUTO PREZENTACI

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Y36PSI IPv6. Jan Kubr - 7_IPv6 Jan Kubr 1/29

Digitální podepisování pomocí asymetrické kryptografie

Analýza aplikačních protokolů

Počítačová síť. je skupina počítačů (uzlů), popřípadě periferií, které jsou vzájemně propojeny tak, aby mohly mezi sebou komunikovat.

Inovace bakalářského studijního oboru Aplikovaná chemie

Úvod - Podniková informační bezpečnost PS1-2

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Jen správně nasazené HTTPS je bezpečné

Y36PSI Bezpečnost v počítačových sítích. Jan Kubr - 10_11_bezpecnost Jan Kubr 1/41

Hodinový rozpis kurzu Správce počítačové sítě (100 hod.)

Základy počítačových sítí Model počítačové sítě, protokoly

Průmyslová komunikace přes mobilní telefonní sítě. Michal Kahánek

Počítačové sítě. Lekce 3: Referenční model ISO/OSI

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl

Zero-knowledge protokoly. Autentizační protokoly & Autentizace počítačů. Zero-knowledge protokoly. Protokoly vyšší úrovně SSL/TLS. Komponenty SSL/TLS

ElGamal, Diffie-Hellman

Počítačové sítě pro V3.x Teoretická průprava II. Ing. František Kovařík

GRE tunel APLIKA ˇ CNÍ P ˇ RÍRU ˇ CKA

asymetrická kryptografie

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Josef J. Horálek, Soňa Neradová IPS1 - Přednáška č.11

Směrovací protokol Mesh (802.11s) na platformě Mikrotik

Systém Přenos verze 3.0

Uživatel počítačové sítě

Telekomunikační sítě Protokolové modely

PB169 Operační systémy a sítě

Protokol pro zabezpečení elektronických transakcí - SET

Vlastnosti podporované transportním protokolem TCP:

Zapomeňte už na FTP a přenášejte soubory bezpečně

Počítačové sítě internet

Bezpečnostní aspekty informačních a komunikačních systémů KS2

Správa přístupu PS3-2

CO JE KRYPTOGRAFIE Šifrovací algoritmy Kódovací algoritmus Prolomení algoritmu

Topologie počítačových sítí Topologie = popisuje způsob zapojení sítí, jejich architekturu adt 1) Sběrnicová topologie (BUS)

Projekt IEEE 802, normy ISO 8802

Technologie počítačových sítí 2. přednáška

Počítačové sítě ve vrstvách model ISO/OSI

PSK2-16. Šifrování a elektronický podpis I

Asymetrická kryptografie a elektronický podpis. Ing. Dominik Breitenbacher Mgr. Radim Janča

Internet protokol, IP adresy, návaznost IP na nižší vrstvy

Desktop systémy Microsoft Windows

Asymetrické šifry. Pavla Henzlová FJFI ČVUT v Praze. Pavla Henzlová (FJFI ČVUT v Praze) Asymetrické šifry 28.3.

Projekt: 1.5, Registrační číslo: CZ.1.07/1.5.00/ Digitální podpisy

Transkript:

České vysoké učení technické v Praze Fakulta elektrotechnická Bakalářská práce na téma Bezpečnost informačního systému Vedoucí práce: Ing. Josef Semrád Vypracoval: Jiří Kercl 2010 i

ii

Abstrakt Cílem této práce je seznámit se s virtuální privátní sítí a také s protokoly, které jsou využity při tunelování, šifrovaní a přenosu dat. Práce obsahuje otestování několika typů virtuálních privátních sítí a také jejich popis. Na konci práce je zhodnoceno finanční a bezpečnostní stránka, 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. Adresa: Jiří Kercl Pod Lesem 793 552 03 Česká Skalice V Praze dne 20.05.2010 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 ing. Josefu Semrádovi, který mi 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ýmové 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 Důvody budování a používání VPN... 3 2.2 Protokoly... 4 2.2.1 Tunelování a tunelové protokoly... 4 2.2.1.1 PPTP... 5 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/TLS... 11 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í, proudové a blokové šifry... 14 2.2.2.4 Asymetrické šifrování... 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 Blowfish... 21 2.2.4 Pro doplnění - Hašovací algoritmus... 22 2.2.5 Protokoly LAN... 24 2.2.5.1 TCP/IP (UDP)... 24 2.2.5.2 IPX/SPX... 26 2.2.5.3 NetBEUI... 26 3 Praktická část... 27 3.1 SSL certifikáty - OpenVPN... 28 3.1.1 Testy... 29 3.1.2 Bezpečnost OpenVPN... 32 3.2 Poptop PPTP... 33 3.2.1 Testy... 33 3.2.2 Bezpečnost Poptop VPN... 37 3.3 IPSec - CISCO VPN... 37 3.3.1 Koncentrátor... 38 3.3.2 Testy... 38 3.3.3 Bezpečnost Cisco VPN... 40 3.4 Shrnutí testovaných VPN... 41 4 Závěr... 42 5 Seznam použité literatury... 43 vi

Seznam obrázků Obr. 2.1 - Struktura protokolu PPTP[4]... 5 Obr. 2.2 - Schéma zapouzdření protokolu PPTP rámce PPP[6]... 7 Obr. 2.3 - Struktura protokolu L2F[7]... 7 Obr. 2.4 - Struktura protokolu L2TP[8]... 8 Obr. 2.5 - Struktura protokolu AH[9]... 9 Obr. 2.6 - Struktura protokolu ESP[10]... 10 Obr. 2.7 - Symetrické šifrování... 14 Obr. 2.8 - Asymetrické šifrování... 16 Obr. 2.9 Šifrování DES [11]... 19 Obr. 2.10 Šifrování AES[11]... 21 Obr. 2.11 Šifrování Blowfish... 22 Obr. 3.1 Topologie pro testování VPN... 28 Obr. 3.2 Přenos dat tunelem OpenVPN 1 klient... 30 Obr. 3.3 Zátěž CPU OpenVPN 1 klient... 30 Obr. 3.4 Přenos dat tunelem - OpenVPN 2 klienti... 31 Obr. 3.5 Zátěž CPU OpenVPN 2 klienti... 31 Obr. 3.6 Přenos dat tunelem - OpenVPN 6 klientů... 32 Obr. 3.7 Zátěž CPU OpenVPN 6 klientů... 32 Obr.3.8 - Nastavení VPN na straně klienta.... 34 Obr. 3.9 Trasování vně tunelu - Poptop 1 klient.... 34 Obr. 3.10 Zátěž CPU Poptop 1 klient.... 35 Obr. 3.11 Přenos dat tunelem Poptop - 2 klienti.... 35 Obr. 3.12 Zátěž CPU Poptop 2 klienti.... 36 Obr. 3.13 Přenos dat tunelem Poptop - 6 klientů... 36 Obr. 3.14 Zátěž CPU Poptop 6 klientů... 37 Obr. 3.15 Cisco VPN s použitím SSL a IPsec.... 38 Obr. 3.16 Upravená topologie pro použití ASA 5510.... 39 Obr. 3.17 Náhled webového rozhraní ASA 5510.... 39 vii

Seznam tabulek Tabulka 3.1. Sumarizace VPN #1.... 41 Tabulka 3.2. Sumarizace VPN #2.... 41 viii

1 Úvod ÚVOD V bakalářské práci 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 moji 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 pronajatý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 něčím, jež vypadá jako vyhrazené bod-bod spojení. A protože tyto operace probíhají po veřejné síti, implementace VPN je finančně méně nákladná 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 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. 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] - 3 -

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 například 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í ř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) - 4 -

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). PPTP 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. Protokol PPTP se vyskytuje ve dvou verzích. Starší verze (PPTPv1) má větší množství bezpečnostních děr, novější verze (PPTPv2) bohužel zachovává zpětnou kompatibilitu a umožňuje připojení i pomocí staršího protokolu. Tím jsou zvýšena bezpečnostní rizika. PPTPv1 je možné napadnout na úrovni autentizace (Microsoft CHAPv1) a MPPE protokolu (šifrování pomocí RC4). Při delší komunikaci (v řádu stovek KB) nebo několika přihlášeních je možné odhalit heslo kvůli nevhodnému použití algoritmů. PPTPv2 používá komplikovanější způsob, bohužel zajišťuje zpětnou kompatibilitu. Ve výsledku PPTPv2 není po stránce šifrování o mnoho silnější než PPTPv1. Z technologického hlediska je důležitý výsledek, úspěšný útok na obě verze VPN je možné realizovat do 10 minut. Obr. 2.1 - Struktura protokolu PPTP[4] - 5 -

TEORETICKÁ ČÁST 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 pokaždé 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. 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 firmwaru. 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í musí 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] - 6 -

TEORETICKÁ ČÁST 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. 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 1. 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 1. - 7 -

TEORETICKÁ ČÁST 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. 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. - 8 -

TEORETICKÁ ČÁST 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 nebo mezi dvěmi IP podsítěmi. Tento protokol obsahuje dva bezpečnostní protokoly: Authentication Header (AH) a Encapsulating Security Payload (ESP). AH Umožňuje ověření pravosti (authentication) ve větším rozsahu než ESP tím, že ověřuje větší množství polí paketu. Při obdržení paketu obsahujícího AH a kladně vyhodnoceným kontrolním součtem je jistota ve dvou věcech a to, že paket nebyl modifikován (integrita) při cestě sítí, a že pochází od důvěryhodného zdroje (autentičnost). Oproti ESP nešifruje obsah. Podobně jako ESP nabízí možnost ochrany před tzv. replay útoky pomocí sekvenčního čísla, jehož hodnota se s každým odeslaným paketem zvětšuje. 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ý diagram. 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. - 9 -

TEORETICKÁ ČÁST ESP Jedná se o jeden z protokolů, který zajišťuje možnost ověření autentičnosti, podobně jako AH, ovšem ne v takové míře, ESP ověřuje jen data. Jeho stěžejní vlastnost je to, že zabraňuje odposlechu obsahu přenášených dat pomocí symetrických šifrovacích algoritmů, zpočátku jen NULL a DES, nyní podporuje silnější, mezi něž patří např. 3DES, AES, Blowfish, atd. Další možnost využití je při ověření integrity. 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. Protokoly AH a ESP potřebují pro svou činnost několik SA (security association - pro daný směr a protokol), klíč, algoritmus a další. Tyto parametry je možné nastavit manuálně. Ovšem klíče a šifrovací algoritmus musí být sdílený mezi články ve VPN síti a výměna klíčů pro symetrické šifry je kritický problém. Proto byl vynalezen způsob pro automatické vyjednání klíčů a dalších podrobností zajištujících bezpečné spojení a to pomocí Internet Security Association Key Management (ISAKMP), který je implementačně nezávislý tím, že umožňuje pro výměnu použít libovolný protokol. ISAKMP umožňuje zabezpečené - 10 -

TEORETICKÁ ČÁST spojení od začátku do konce relace, včetně výměny klíčů pomocí Internet Key Exchange (IKE) protokolu, který řeší mnoho problémů týkajících se výměny klíčů. 2.2.1.5 SSH/SSH2 SSH byl původně určen jako zabezpečená alternativa k telnetu a dalším nezabezpečeným vzdáleným shellům, jako jsou rsh (spuštění příkazů na vzdáleném počítači), rlogin (přihlášení na vzdálený počítač) a rcp. Tyto shelly zasílají heslo v nezabezpečené formě, a tím umožňují jeho odposlech. 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. SSH2 není zpětně kompatibilní s SSH1. SSH1 je označen jako zastaralý. Je to kvůli bezpečnostním nedostatkům. V dnešní době se na většině serverů využívá SSH2, ale je možné najít i takové organizace, kde se využívá software bez podpory SSH2, a proto není možné podporu SSH1 úplně odstranit. U všech verzí je důležité, aby byl klíč před schválením ověřen. Pokud k ověření nedojde, tak může dojít k dešifrování informací, které jsou klasifikovány jako důvěrné. 2.2.1.6 SSL/TLS 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ě. Tento protokol byl vyvinut firmou Netscape v roce 1996 jako nekomerčně otevřený (je možné ho využít pro soukromé i komerční účely). SSL je protokol zabezpečující data na přechodu mezi aplikační a transportní vrstvou (protokolem TCP/IP). Šifrování přenášených dat a autentizaci serveru lze zajistit pomocí digitálních certifikátů. SSL není nijak omezeno pouze na protokol HTTP. SSL je možno použít i pro bezpečné připojení prostřednictvím FTP, NNTP, ale i k poštovním službám přes SMTP, POP3, IMAP4 a řadu dalších protokolů. Oproti klasickým protokolům se bude jméno zabezpečených protokolů lišit jen o písmeno "s" (např. FTPS). SSL využívá tyto kryptografické systémy: RSA, Diffie-hellman, DSA, RC2,RC4,DES, 3DES, AES. Také využívá následující hašovací funkce: MD5, SHA Protokol TLS (Transport Layer Security) je nástupcem SSL a běží ve vrstvě pod aplikačními protokoly (HTTP, FTP, SMTP, NNTP, XMPP) a také nad spolehlivým transportním protokolem (např. TCP). - 11 -

TEORETICKÁ ČÁST Protokol TLS dovoluje aplikacím komunikovat po síti způsobem, který zabraňuje odposlouchávání nebo falšování zpráv. TLS poskytuje svým koncovým bodům autentizaci a soukromí při komunikaci s Internetem. Typicky je autentizován pouze server (je zaručena jeho totožnost), zatímco klient zůstává neautentizován. Díky tomu si může být koncový uživatel jistý, s kým probíhá komunikace. Jako další úroveň zabezpečení je označena vzájemná autentizace, u které je vyžadováno použití infrastruktury veřejných klíčů (PKI). TLS využívá tyto kryptografické systémy: RSA, Diffie-Hellman, DSA, RC2, RC4, IDEA, DES, 3DES, AES, Camellia. Také využívá následující hašovací funkce: MD2, MD4, MD5, SHA-1, SHA-2). - 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. 2.2.2.2 Klíč a délka klíče Pojem klíč je často neoddělitelně spojen s pojmem zámek. Určité chráněné věci jsou přístupné pouze s vlastnictví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ě. 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íčů. - 13 -

TEORETICKÁ ČÁST 2.2.2.3 Symetrické šifrování, proudové a blokové šifry 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.7). 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 té, 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.7 - Symetrické šifrování Symetrické šifry se dělí na další dvě kategorie a to na šifry proudové a šifry blokové. 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. Mezi proudové šifry patří například RC4, FISH, Helix, SEAL, WAKE a další. Blokové šifry - Blokové šifry pracují s pevným počtem bitů. Tyto bloky jsou pomocí klíče zašifrovány a výstupem je příslušná část šifrovaného textu. Některé algoritmy provádějí několikanásobné šifrování bloku dokola, aby se zvýšila bezpečnost. Blokové šifry jsou na - 14 -

TEORETICKÁ ČÁST šifrování dat v praxi využívány častěji než proudové. Mezi blokové šifry patří například algoritmy DES, AES, IDEA, Blowfish. Rozdělení proudových šifer Synchronní - Synchronní proudová šifra je taková, která nevyužívá k šifrování text (původní ani šifrovaný). Data jsou šifrována pomocí klíče a stavu, ve kterém se funkce nachází. Při dešifrování je proto potřeba mít stejný klíč a postupně procházet ekvivalentními stavy. Pokud se při přenosu ztratí jediný bit (nebo přibude), pak se synchronizace ztratí. Pro zachování synchronizace se proto používají další mechanizmy. Asynchronní tyto proudové šifry se využívají k šifrování i dešifrování mimo klíče i předchozích n bitů šifrovaného textu. Tím se zvyšuje bezpečnost, ale při ztrátě jednoho bitu se následujících n bitů zprávy dekóduje špatně. Po těchto n bitech se další data již dekódují opět správně. Módy blokových šifer[11] ECB (Electronic CodeBook mode) - tento mód se nijak významně neliší od normálního algoritmu šifry. Jedná se o to, že v případě, kdy se stejný blok otevřeného textu šifruje vždy na jeden a ten samý blok šifrového textu, můžeme šifrovací algoritmus nahradit překladovou tabulkou (coodebook). Indexem do této tabulky bude blok vstupního (otevřeného) textu a každá položka bude obsahovat blok výstupního (šifrového) textu příslušný k danému indexu. CBC (Cipher Block Chaining mode) - tento mód rozšiřuje standardní algoritmus blokové šifry o zpětnou vazbu, která zavádí do šifrování i-tého bloku otevřeného textu výsledek šifrování bloku (i - 1). To znamená, že každý blok je použit pro modifikaci šifrování následujícího bloku. Důsledkem toho je závislost bloku šifrového textu nejen na příslušném bloku otevřeného textu, ale též na všech předchozích blocích. CFB (Cipher-FeedBack mode) - v tomto módu se bloková šifra chová jako proudová šifra s vlastní synchronizací. OFB (Output-FeedBack mode) - tento mód je téměř stejný jako CFB, ale narozdíl od CFB se na uvolněné místo v posuvném registru vkládají bity podklíče ki. Counter mode - Tento mód provozu blokové šifry je obdobný OFB. Ovšem namísto posuvného registru se používá čítač (tím se ztrácí jakákoliv zpětná vazba). Po každém zakódování jednoho bloku se hodnota čítače změní o konstantu, zpravidla se zvětší o - 15 -

TEORETICKÁ ČÁST jedničku. Namísto čítače je možné použít i např. generátor náhodných čísel (pro dešifrování je však vždy nutno použít stejnou posloupnost hodnot, která byla použita pro šifrování). 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.8) - 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 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.8 - 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 - 16 -

TEORETICKÁ ČÁST š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.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]. 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 ( 1) ( y 1) x byla nesoudělná. Za pomoci Eulerova rozšířeného algoritmu se vypočte dešifrovací klíč k, pro něhož platí: s k ( mod( x 1) ( y 1) ) = 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. - 17 -

TEORETICKÁ ČÁST Š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, 3DES nebo AES. Použitím kombinace kryptograficky založených algoritmů a klíčů jsou informace velmi dobře zabezpečené. DES Metoda DES [15] (Data Encryption Standart) byla vytvořena v 70. letech 20. století firmou IBM a v 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). 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 se 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. - 18 -

TEORETICKÁ ČÁST 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é 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 jak 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, poté K15, atd. Dále je také nutné provést ve správném pořadí posuny klíčů. Tato šifra má bohužel v dnešní době slabiny, které ji dovolují prolomit t útokem hrubou silou do 24 hodin. Mezi jednu ze slabin je považována délka klíče. Obr. 2. 9 Šifrování DES [11] 3DES 3DES [15] je zesílená variantaa kryptografického standardu. 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 3-DES implementována tak, že ve třetím kroku používá rovněž odlišný klíč. Celková délka - 19 -

TEORETICKÁ ČÁST 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. 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 nenastane problém právě s rychlostí šifrování). Nevýhodou 3DES je jeho rychlost. Oproti novější AES je daleko pomalejší a z tohoto důvodu se přestává používat. AES[11] AES je zkratka pro Advanced Encryption Standard a nazývá se též Rijndael (odvozeno od jmen autorů Daemon, Rijmen). Jedná se o symetrický blokový šifrovací algoritmus s velikostí bloku 128 bitů a délka klíče může být 128,196 nebo 256 bitů. Díky délce klíče a velikosti bloků je odolný vůči útokům, které prolomily DES. Je také odolný proti metodám lineární a diferenciální kryptoanalýzy. AES je iterativní šifra, kde se počet rund N r mění podle délky klíče: Nr = N k + 6, kde N k je délka klíče. N r je 10,12 nebo 14 rund. Díky této skutečnosti je potřeba zajistit konfúzi vzhledem ke klíči. Algoritmus pracuje s prvky Galoisova tělesa GF (2 8 ) a s polynomy, jejichž koeficienty jsou prvky z GF (2 8 ). Bajt s bity (b 7,...,b 0 ) je proto chápán jako polynom b 7 x 7 + +b 1 x 1 +b 0 a operace násobení bajtů odpovídá násobení těchto polynomů modulo m(x) = x 8 + x 4 + x 3 + x 1 + 1 Rundovní klíče AES využívá 4 + N r x 4 rundovních 32b klíčů, které se derivují ze šifrovacího klíče definovaným způsobem. Než se zahájí 1.runda, tak se provede úvodní zašumění (na otevřený text se naxorují první 4 rundovní klíče). Na počátku každé rundy se vždy vstup naplní postupně zleva doprava a shora dolů po sloupcích do matice 4x4 B A = (a ij ) kde i,j se rovná 0, 1, 2, 3. Na každý bajt matice A se zvlášť aplikuje substituce, daná pevnou substituční tabulkou SubBytes. Řádky matice A se cyklicky posunou postupně o 0-3 bajty doleva (operace ShiftRows), 1 řádek o 0, 2 řádek o 1, 3 řádek o 2 a 4 řádek o 3. Tím dochází k transpozici na úrovni bajtů. Dále se na každý jednotlivý sloupec matice aplikuje operace MixColumns, která je substitucí 32 bitů na 32 bitů. (Všechny výstupní bity jsou nějakou lineární kombinací vstupních bitů). - 20 -

TEORETICKÁ ČÁST Jako poslední operace rundy se provede transformace AddRoundKey, kdy se jednotlivé sloupce matice A zleva doprava naxorují 4 odpovídající rundovní klíče. Tím je jedna runda popsána a začíná další. Po poslední rundě se šifrovaný text jen vyčte z matice A. Při odšifrování se používají operace inverzní k operacím, které jsou použity při zašifrování, protože jsou všechny reverzibilní. Obr. 2. 10 Šifrování AES[11] 2.2.3.4 Blowfish Jedná se o symetrickou blokovou šifru s velikostí blokůů 64 bitů a maximální velikostí klíče 448 bitů. Její autor je Bruce Schneier, který ji poprvé zveřejnil roku 1994. Tato šifra je nelicencovaná a také nemá copyright. 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á - 21 -

TEORETICKÁ ČÁST š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 (S0- S255)[17]. Obr. 2.11 Šifrování Blowfish 2.2.4 Pro doplnění - 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ý - 22 -

TEORETICKÁ ČÁST 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 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, pokud 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. - 23 -

TEORETICKÁ ČÁST 2.2.5 Protokoly LAN Pro komunikaci serveru a VPN klienta musí 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í, jež 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.5.1 TCP/IP (UDP) 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 Protokol TCP je spolehlivá doručovací spojovací služba (před výměnou dat musí být ustaveno spojení). Data jsou přenášena v segmentech. Spolehlivost je dosažena přiřazením pořadového čísla každému přenášenému segmentu, přičemž přijetí všech segmentů dalším hostitelem se ověřuje potvrzením jejich přijetí. U každého odeslaného segmentu musí během určité dobry přijímající hostitel vrátit potvrzení (ACK) přijatých bajtů. Nedojde-li k potvrzení, jsou data přenesena znovu. Protokol TCP používá komunikaci na bázi bajtových proudů, v níž jsou data TCP segmentu považována za sled bajtů bez hranic záznamů. TCP porty TCP port zajišťuje místo pro doručování TCP segmentů. Porty s čísly pod 1024 jsou dobře známými porty a jsou přiřazovány organizací IANA (Internet Assigned Numbers Authority). TCP vyjednávání TCP spojení je inicializováno přes třícestné vyjednávání. Jejím účelem je synchronizace pořadového čísla a potvrzovacích čísel obou stran spojení a výměna velikosti TCP oken. 1. Klient pošle na server TCP segment s počátečním pořadovým číslem pro připojení a velikostí okna označující velikost vyrovnávací paměti klienta určené k ukládání segmentů přicházejících ze serveru. - 24 -

TEORETICKÁ ČÁST 2. Server odešle zpět TCP segment obsahující počáteční pořadové číslo vybrané serverem, potvrzení klientského pořadového čísla a velikost okna označující velikost vyrovnávací paměti serveru určené k ukládání segmentů přicházejících od klienta. 3. Klient pošle na server TCP segment obsahující potvrzení pořadového čísla serveru. K ukončení spojení používá TCP podobný přenos. Tím se zaručí, že oba hostitelé ukončili přenos, a že byla doručena všechna data. UDP Protokol UDP poskytuje datagramovou nespojovanou službu, která nabízí nespolehlivé doručení dat přenášených pomocí zpráv. To znamená, že není zaručeno ani dodání datagramů, ani správné seřazení doručených paketů. Protokol UPD neobnovuje ztracená data jejich opětovným přenosem. Protokol UPD je používán aplikacemi, jež nevyžadují potvrzení přejatých dat, a které zpravidla přenášejí najednou malý objem dat. Příkladem aplikací a služeb používajících UDP jsou datagramové služby NEJBIOS a SNMP. UDP porty Aby aplikace mohla používat protokol UPDE, musí dodat adresu IP a číslo UDP portu cílové aplikace. Port poskytuje umístění pro odesílání zpráv. Port funguje jako vícenásobná fronta zpráv (může přijímat více zpráv najednou). Každý port má vlastní jedinečné identifikační číslo. UDP porty jsou oddělené od TCP portů, i když některé z nich používají stejná čísla. IP Je protokol síťové vrstvy. 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. - 25 -

TEORETICKÁ ČÁST 2.2.5.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ží k přenosu mezi jednotlivými stanicemi sítě jednak vlastních dat souborů, jednak paketů vyšších protokolů. Jedná se o bezspojový datagramový protokol, který pracuje na úrovni síťové vrstvy ISO/OSI modelu. Nezajišťuje kontrolu správnosti přenosu, tu v této protokolové sadě provádějí vyšší protokoly (např. SPX). SPX Jedná se o spojově orientovaný protokol, který pracuje na úrovni transportní vrstvy modelu OSI/ISO. Na rozdíl od IPX však realizuje zajištěné přenosy paketů. Po příchodu každého paketu do cílového uzlu totiž kontroluje jeho správnost a pokud zjistí chybu, vyžaduje jeho opakované zaslání. 2.2.5.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 jeho způsob adresování 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ů. - 26 -

3 Praktická část PRAKTICKÁ ČÁST Jako server[server] pro měření sloužilo PC s těmito parametry: CPU: INTEL Core 2 DUO T7100 1,79 GH MEM:14GB DDR 2 Síť.karta: Ethernet LAN 100 Mbit/s (Realtek) Operační systém: Windows XP Service Pack 3, Ubuntu 9.10 Jako 1.klient[ADI] byl použit notebook ASUS F5RSeries s těmito parametry: CPU: Intel Celeron M440 MEM: 512 DDR2 Síť.karta: Attansic L2 Fast Ethernet 10/100 Base-T Adapter Wireless: Asus 802b/g Operační systém: Windows XP Service Pack 3 Jako 2.klient[WIN7] bylo použito PC s těmito parametry: CPU: INTEL Core 2 DUO E7300 2,66GHz MEM: 4GB DDR 2 Síť.karta: Ethernet LAN 1000 Mbit/s (Realtek) Operační systém: Windows 7 Jako Wi-fi router/access point je použit MSI RG60SE 802.11b/g/sg. Při měření byla simulována topologie, které je na obrázku 3.1. Červený rámeček na tomtéž obrázku poukazuje na oblast, jež byla při měřeních využívána. Rychlost sítě byla 56 MBitů/s. Měření propustnosti jednotlivých VPN bylo provedeno pomocí programu JPerf 2.0.2. Z tohoto programu jsou vygenerovány jednotlivé grafy s vytížením linky. Program JPerf si velikost zasílaných dat určuje sám tak, aby maximálně linku vytížil. U každého měření je příklad ukázky textového výpisu z programu. Celé výpisy jsou umístěny na CD jako příloha. Simulace zatížení linky a serveru pomocí šesti klientů byla také proveda pomocí programu Jperf. Tento program umí emulovat datový přenos více počítačů. - 27 -

PRAKTICKÁ ČÁST Pro zjištění, jak která VPN zatěžuje procesor, byl použit program Process Monitor v 2.91. Následně získaná data byla vložena do Excelu a byly vytvořeny grafy, z kterých je zatížení možné vyčíst v závislosti na čase. Celkem byly provedeny u každého typu VPN 3 testy. Při prvním byl připojen k serveru pouze jeden klient, při druhém dva klienti a při třetím bylo simulováno šest klientů. Data se do šifrovaného tunelu zasílala po dobu 60 sekund a po celou dobu byla sledována rychlost v tunelu a také vytížení procesoru na straně serveru danou VPN Bezpečnost každého řešení je popsána za kapitolou Testy. Bezopečnost není zaměřena na prolomení šifrování dat v tunelu z důvodu náročnosti jak časově tak také technické. Zaměření je zde na rizika spojená s instalcí software dané VPN, případně nastavení. Obr. 3.1 Topologie pro testování VPN 3.1 SSL certifikáty - 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 - 28 -

PRAKTICKÁ ČÁST 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]. 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. 3.1.1 Testy Jako režim šifrování byl nastaven SSL certifikát. 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íč, které jsou určeny 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. Rychlost linky je zobrazena jako 10MB/s, tato rychlost je ale pouze informativní. Rychlost samotná záleží na jak výkonném počítači VPN běží. Při všech testech se rychlost držela na 10 MBitové úrovni sítě. Tunel VPN byl vytížen na 99% u všech 3 testů. - 29 -