Peer-to-peer (P2P) systémy a jejich bezpečnost

Podobné dokumenty
Úvod do informačních služeb Internetu

Bezpečnost sítí, Firewally, Wifi. Ing. Pavel Píše

Zabezpečení v síti IP

Virtuální sítě 2.část VLAN

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

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

Výukový materiál zpracovaný v rámci projektu CZ.1.07/1.4.00/ , Modernizace výuky

schopni vysvětlit, co znamená protokol NFS a k čemu se používá; umět rozpoznat autorské dílo a znát autorská práva;

Použití programu WinProxy

Obsah. Úvod 13. Věnování 11 Poděkování 11

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

KLASICKÝ MAN-IN-THE-MIDDLE

File Transfer Protocol (FTP)

ISMS. Síťová bezpečnost. V Brně dne 7. a 14. listopadu 2013

Advanced IT infrastructure control: Do it better, safer, easier and cheaper. FlowMon ADS 3. Nová generace řešení pro analýzu provozu datové sítě

POČÍTAČOVÉ SÍTĚ A KOMUNIKACE

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

InternetovéTechnologie

POČÍTAČOVÉ SÍTĚ A KOMUNIKACE OBOR: INFORMAČNÍ TECHNOLOGIE

Firewally a iptables. Přednáška číslo 12

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

JAK ČÍST TUTO PREZENTACI

Inovace výuky prostřednictvím šablon pro SŠ

Komunikace mezi uživateli: možnost posílání dat na velké vzdálenosti

Autor. Potřeba aplikací sdílet a udržovat informace o službách, uživatelích nebo jiných objektech

Úvod do informatiky 5)

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

Sdílení dat. Autor : Bc.Jiří Lipár

Úvod Bezpečnost v počítačových sítích Technologie Ethernetu

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

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

SSL Secure Sockets Layer

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

Technologie počítačových sítí

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIV Windows server 2003 (seznámení s nasazením a použití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

Systémy pro sběr a přenos dat

Počítačové síťě (computer network) Realizují propojení mezi PC z důvodu sdílení SW (informací, programů) a HW(disky, tiskárny..)

Bezpečnostní aspekty informačních a komunikačních systémů PS2-1

Při konfiguraci domácího směrovače a bezdrátové sítě se setkáte s obrovským počtem zkratek, jejichž význam je jen málokdy dostatečně vysvětlen.

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

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

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

5/8 INSTANT MESSAGING A JEHO BEZPEČNOST V PODNIKOVÝCH SÍTÍCH

Semestrální projekt do předmětu SPS

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

Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany

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

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

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

Představení Kerio Control

Přehled služeb CMS. Centrální místo služeb (CMS)

Národní šetření výsledků žáků v počátečním vzdělávání

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.

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

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

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Audit bezpečnosti počítačové sítě. Předmět: Správa počítačových sítí Jiří Kalenský

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

Inovace výuky prostřednictvím šablon pro SŠ

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

1 Protokol TCP/IP (Transmission Control Protocol/Internet Protocol) a OSI model

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

Informační a komunikační technologie. 3. Počítačové sítě

Maturitní okruhy pro 1.KŠPA Kladno, s.r.o. Počítačové sítě a komunikace

Obrana sítě - základní principy

Internet. Jak funguje internet. Připojení do internetu

1. Směrovače směrového protokolu směrovací tabulku 1.1 TTL

Bezdrátové sítě Wi-Fi Původním cíl: Dnes

Internet. Počítačová síť, adresy, domény a připojení. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Obsah. Část I Základy bezpečnosti...9 Kapitola 1 Základy obvodového zabezpečení Kapitola 2 Filtrování paketů...27

Analýza aplikačních protokolů

Ochrana mobilních uživatelů před hrozbami Internetu mimo firemní prostředí. Simac Technik ČR, a.s.

Advanced IT infrastructure control: do it better, safer, easier and cheaper. FlowMon ADS Moderní řešení detekce průniků a anomálií

FlowGuard 2.0. Whitepaper

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

Jak ochráníte svoji síť v roce 2015? Michal Motyčka

Uživatelský manuál WEB SERVICE V3.0 IP kamer Dahua

Audit bezpečnosti počítačové sítě

Radim Dolák Gymnázium a Obchodní akademie Orlová

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

Univerzita Tomáše Bati ve Zlíně Fakulta managementu a ekonomiky. Instant Messeging

Počítačové sítě. IKT pro PD1

CISCO CCNA I. 8. Rizika síťového narušení

Studentská unie ČVUT v Praze, klub Silicon Hill. 22. února Ondřej Caletka (SU ČVUT) IPv6 nové (ne)bezpečí? 22.

Projektování distribuovaných systémů Lekce 2 Ing. Jiří ledvina, CSc

Referenční rozhraní. Jiří Kosek. Ministerstvo informatiky ČR. ISSS 25. března 2003

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í,

Škodlivý kód, útok na aplikace. Ing. Miloslav Hub, Ph.D. 5. prosince 2007

SOU Valašské Klobouky. VY_32_INOVACE_02_18 IKT DNS domény. Radomír Soural. III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Jak vybrat správný firewall. Martin Šimek Západočeská univerzita

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

Přístup k transportní vrstvě z vrstvy aplikační rozhraní služeb služby pro systémové aplikace, služby pro uživatelské aplikace DNS

Michal Andrejčák, Klub uživatelů ŘS MicroSCADA, Hotel Omnia Janské Lázně, SDM600 Stručný popis a reference.

Informační a komunikační technologie. 1.7 Počítačové sítě

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.

ANALÝZA TCP/IP 2 ANALÝZA PROTOKOLŮ DHCP, ARP, ICMP A DNS

FlowMon ADS 3. Nová generace řešení pro analýzu provozu datové sítě. Pavel Minařík

Transkript:

Peer-to-peer (P2P) systémy a jejich bezpečnost Ladislav Beránek Katedra informatiky, Pedagogická fakulta, Jihočeská universita, Jeronýmova 10, 37001 České Budějovice beranek@pf.jcu.cz Abstrakt V současné době vzrůstá obliba různých peer-to-peer (dále P2P) systémů, zejména těch, které jsou vytvořené na infrastruktuře Internetu, na protokolech TCP/IP. Tyto systémy jsou stále oblíbenější, protože umožňují vytvoření kooperativních skupin uživatelů, anonymní sdílení souborů a případně i netradiční způsoby řešení dostupnosti informací či způsobů autentizace. Objevují se nové systémy P2P a jsou vytvářeny nástroje a knihovny umožňující programování těchto systémů. V následujícím textu budou popsány základní principy P2P systémů s cílem prezentovat typické vlastnosti peer-to-peer systémů, které mohou pomoci při programování P2P systémů, naznačit problematiku programování v jazyce Java na standardech JXTA a popsat některé bezpečnostní aspekty těchto systémů. 1. ZÁKLADNÍ PRINCIPY PEER-TO-PEER SYSTÉMŮ: Základní principy sítí peer-to-peer se dají shrnout do několika bodů: princip sdílení zdrojů každý účastník P2P systému (uzel) poskytuje některé zdroje ostatním uzlům (účastníkům) sítě peer-to-peer. Tyto zdroje mohou být fyzické jako je např. výpočetní výkon svého počítače nebo diskový prostor (resp. přístup k souborům na svém disku) nebo logické jako je např. určitý druh služby nebo specifická znalost, princip decentralizace části systému nebo dokonce celý systém nejsou řízeny centrálním prvkem. Každý prvek systému funguje jako klient i server. Příkladem plně decentralizovaného systému je např. Gnutellea a Freenet. Způsob adresování klientů v P2P systémech je nezávislé na DNS systému, který je centralizovaný a hierarchický. princip samoorganizace předchozí princip znamená, že v plně decentralizovaném systému P2P neexistuje centrální prvek, který by centrálně koordinoval aktivity nebo který by udržoval centrální databázi o celém P2P systému. Systém vykazuje samoorganizační chování, které je založeno na tom, jakou informaci mají jednotlivé uzly o okolních uzlech systému a jakým způsobem si tyto informace uzly vyměňují. Kromě toho architektura a funkce systémů P2P někdy zahrnuje takové další hlediska jako je např. požadavek účastníků na to, aby zůstali anonymní nebo skutečnost, že uzly v P2P systémech jsou často nespolehlivé např. z hlediska jejich stálé dostupnosti apod. 2. ARCHITEKTURA P2P SYSTÉMŮ V minulosti celý Internet (Arpanet) fungoval jako P2P systém. Každý uživatel Internetu se mohl pomocí služby telnet spojit přímo s jiným uživatelem a pomocí služby ftp si od něho případně stáhnout požadované soubory. Současné systémy mobilních telefonů nebo některé systémy pro e-commerce (např. ebay) nesou znaky P2P systémů. Největší popularitu však P2P systémy získaly existencí systémů pro sdílení souborů (zejména s hudebními skladbami) jako je Napster, Gnutella nebo Freenet a další. Architekturu P2P systémů na infrastruktuře lze popsat následujícím schématem: 1/9

Uživatel Používá QoS Aplikace Využívá Řídicí informace QoS Využívá Počítačová síť QoS Obr. 1: Vrstvová architektura P2P systémů Na úrovni síťové vrstvy (vrstva Počítačová síť) je Internet, který je svou podstatou P2P systémem. Každý prvek se může přímo spojit s jiným prvkem. Vrstva obsahující řídicí informace je vrstvou, která se stará o informace o členech daného P2P systému. Je vytvářena adresáři a databázemi. Její konkrétní implementace může být buď centralizovaná nebo decentralizovaná. Aplikační vrstva obsahuje logiku např. pro e-komerční systém nebo pro službu, která je pomocí P2P systému zajišťována. Opět může v konkrétní implementaci být centralizována nebo decentralizována. Funkce aplikační vrstvy jsou přístupné jednotlivým uživatelům využívajícím služby systémů P2P. Protokoly systémů P2P nejsou dosud standardizovány a proto se používají zpravidla proprietální protokoly. Např. AOL Messenger a ICQ používají proprietální protokol vyvinutý AOL. Kazaa, Morpheus a Music Sity využívají protokol FastTrack. Gnutella používá open source protokol gnutella. V následujících odstavcích popíšeme nejznámější P2P systémy, jejich základní architekturu a fungování. Princip fungování dalších P2P systémů je podobný těmto popsaným systémům. 2.1 Napster Z technického hlediska je Napster velmi jednoduchý centralizovaný P2P systém. Centrální server Napsteru udržuje centrální databázi hudebních skladeb ve formátu MP3/WMA, které nabízí účastníci připojení do systému. Účastníci se přihlašují k serveru a posílají seznam skladeb, které nabízejí. Noví uživatelé musí nejprve zřídit účet u centrálního serveru Napsteru. Každý uživatel může poslat dotaz na vyhledání serveru Napster a obdrží seznam uživatelů, kteří nabízejí poptávané skladby. Poptávající si může vybrat z tohoto seznamu toho, od něhož se bude snažit získat hledanou skladbu. Poté mu pošle požadavek a 2/9

stáhne si od něho požadovaný soubor s hudební skladbou. Napsater tedy není čistý P2P systém, ale kombinace architektury klient/server a P2P. Schéma systému je vidět z následujícího obrázku. Registrace: (uživatel, hudební soubory) Napster server Odpověď: (A má X.mp3) Dotaz na server: (kde naleznu skladbu X.mp3) A Stáhnutí skladby X.mp3 B Obr. 2: schéma P2P systému Napster Protokol, který Napster používá ve svých interakcích nebyl nikdy publikován. Existují definice protokolu, avšak ne příliš podrobně popsané, jako např. [3]. Z dostupných údajů však lze soudit, že protokol je komplikovaný a nepříliš konzistentní. 2.2 Gnutella Z technického hlediska je Gnutella decentralizovaný systém pro sdílení souborů, jehož účastníci vytvářejí virtuální síť pomocí protokolu Gnutella, což je jednoduchý protokol pro vyhledávání distribuovaných souborů. Na začátku se však musí ten, kdo má zájem o účast v systému, spojit s někým, kde je již v systému Gnutella zaregistrovaný. Tato registrace ale není součástí standarního protokolu Gnutelly. Protokol samotný sestává z několika základních zpráv: ping oznamuje dostupnost a testuje dostupnost ostatních účastníků. Nenese žádnou informaci, pong odpověď na Ping. Nese informaci o IP adrese a čísle portu odpovídajících účastníků, dále informaci o počtu a celkové velikosti sdílených souborů v kb, Query dotaz při vyhledávání, QueryHit vracejí účastníci, kteří mají požadovaný soubor. Nese informaci o jejich IP adrese, čísle portu, dále nese informaci o výsledku vyhledávání, Push požadavek na stáhnutí požadovaného souboru. Nese informaci o identifikaci účastníka, který má požadovaný soubor, index požadovaného souboru, IP adresu a číslo portu účastníka, kam se má soubor poslat. Tyto zprávy jsou předávány všem účastníkům. Používá se přitom zjednodušený mechanismus všesměrového vysílání. Poté, co uživatel přijme zprávu, sníží hodnotu TTL pole zprávy (pole 3/9

time-to-live). Jestliže uživatel přijme zprávu s dotazem Query, zkontroluje nejdříve své lokální úložiště souborů a jestliže najde poptávaný soubor, odpoví zprávou QueryHit. Současně uživatel, pokud je TTL větší než 0, přepošle zprávu všem dalším uživatelům P2P sítě, které zná. Odpověď je posílána stejnou cestou, jakou byl poslán dotaz. Zjednodušené navazování spojení v systému Gnutelly vypadá následovně: Účastník A kontaktuje účastníka B a posílá zprávu Ping. B odpovídá zprávou Pong a přeposílá zprávu Ping dalším účastníkům C a D. Tito účastníci odpovídají zprávou Pong a přeposílají Ping Po nějaké době zná A počet aktivních účastníků. A C B D Uživatel A posílá zprávu Ping Uživatel B odpovídá Pong odpovědí Uživatel C odpovídá Pong odpovědí Uživatel D odpovídá Pong odpovědí Uživatel E odpovídá Pong odpovědí E Obr. 3: Gnutella navazování spojení Postup přeposílání inicializačních zpráv Ping/Pong popsaný nahoře může být použit i v případě odesílání dotazů. Když účastník obdrží odpověď QueryHit, nejprve se pokusí spojit s účastníkem uvedeným v QueryHIt a pomocí zjednodušené metody http GET se snaží získat soubor. Jestliže hledaný účastník je za firewallem, může poslat Push zprávu (stejnou cestou, kterou održel QueryHit) účastníku za firewallem. Zpráva Push specifikuje, kde účastník za firewallem může kontaktovat iniciátora dotazu pomocí pasivní GET session. Jestliže oba účastníci jsou za firewallem, není stáhnutí souboru možné. 4/9

GET X.mp3 A Stahování X.mp3 C C má X.mp3 Kdo má X.mp3 B D E Obr. 4: Gnutella - vyhledávací mechanismus E má X.mp3 2.3 Další P2P systémy Freenet je P2P systém určený pro publikaci, sdílení a hledání souborů dat. Jeho cílem je poskytnutí infrastruktury, která chrání anonymitu autorů a čtenářů. Architektura je navržena tak, aby nebylo možné snadno zjistit původ souboru nebo místo původu dotazu při hledání souborů dat. Vzhledem k tomu, že data jsou šifrována, a to jak uložená data tak i posílaná, je obtížné vůbec zjistit, co se v souborech skrývá. Vedle tohoto aspektu ochrany anonymity má Freenet ještě jeden zajímavý koncept: adaptivní způsob směrovacího schématu pro efektivní směrovací dotaz na fyzické umístění účastníků, kteří s největší pravděpodobností nabízejí poptávaný soubor. Freenet udržuje směrovací tabulky, které jsou dynamicky měněny při hledání a stahování dat, aby se zlepšila účinnost hledání. Freenet také používá dynamické replikace populárnějších souborů tak, že tyto soubory migrují mezi účastníky a mohou být tak nalezeny rychleji a s větší pravděpodobností. Protokol Freenet nevyžaduje centrální server jako Napsater a ve srovnání s Gnutellou nepoužívá méně efektivního mechanismu broadcástů. Existuje další množství P2P systémů sítí, např. komerčního charakteru FastTrack nebo výzkumné peer-to-peer sítě např. Chord, Pastry a P-Grid a další jako např. ICQ aj. Jak již bylo řečeno principy jejich základního fungování se příliš neliší od principů systému popsaných v předcházejících odstavcích. Tyto sítě mohou garantovat odpověď na dotaz nebo mohou vytvářet samo-organizovanou překryvnou síť. Obsahují adresování dle hašovaného obsahu souborů, adaptivní způsoby směrování, dynamické cachování, replikace a automatický failover, multicástové kaskády pro skupinovou komunikaci, šifrování aj. 5/9

3. PROGRAMOVÁNÍ P2P SYSTÉMŮ IT komunita rozeznala potenciál P2P systémů a již v roce 2000 se pod vedením Intelu vytvořila skupina s cílem vytvořit nový standard pro vyvíjející se trh P2P. Také firma SUN se snaží o vytvoření standardů P2P systémů. Jedná se o projekt JXTA, jehož cílem je navržení minimálního standardu P2P systému, který může být modifikován podle účelu, ke kterému P2P systém bude navrhován. Podrobně je projekt JXTA popsán např. v [5]. Jedná se tedy o projekt pro vytvoření standardů peer-to-peer sítí, které by umožnily snadné propojování zařízení (mobilní telefony, PDA, PC k serveru na síti) za účelem komunikace a spolupráce. Na projekt JXTA navazuje projekt vytváření P2P socketů [8]. P2P sockety, které se snažíme používat k vytváření našich P2P aplikací, jsou právě určeny pro snadné vytváření P2P aplikací. Jsou založeny na standardu JXTA a nativně umožňují průchod NAT nebo firewaly, aniž se programátor musí dopodrobna touto problematikou zabývat zabývat. Používají porty používané pro webové servere nebo webové služby. P2P sokety pracují na základě JXTA peer-to-peer sítě. Ta zahrnuje webový server (Jetty), servlet a JSP engine (Jetty a JAsper) která umožňuje, aby P2P klienty mohly používat existující servlety a JSP. Dále využívají XML-RPC klienta a server (Apache XML-RPC) pro dosažení a využití P2P koncových bodů XML-RPC, HTTP/1.1 klienta (Apache Common HTTP-Client), který může kontaktovat P2P webový server. P2P sokety také zavádějí implementaci java.net.socket a java.net.serversocket které mohou vytvářet na síti JXTA něco jako distribuovaný uživatelsky přívětivý nezabezpečený DNS systém. Pomocí těchto soketů na JXTA se P2P aplikace dají programovat. Například chceme-li naprogramovat, aby člen P2P sítě inzerovat jednoduchou službu www.jcu.programovani, která může být dosažena jinými účastníky P2P sítě, vytvoříme následující kód: // člen sítě vytvoří službu jménem "www.jcu.programovani" na virtuálním portu 100 java.net.serversocket server = new P2PServerSocket("www.jcu.programovani ", 100); // na portu 100 čeká na spojení s klientem java.net.socket client = server.accept(); // klient je akceptován; nyní probíhá komunikace InputStream in = client.getinputstream(); OutputStream out = client.getoutputstream(); // aplikace může nyní provádět specifické funkce Strana klienta je také tak jednoduchá // vytvoř spojení se členem nabízející službu na " www.jcu.programovani " na virtuálním portu 100 java.net.socket socket = new P2PSocket("www.jcu.programovani ", 100); // nyní začni komunikovat InputStream in = socket.getinputstream(); OutputStream out = socket.getoutputstream(); Účastníci sítě mohou nyní spolu komunikovat a využívat služby, i v případě, že jsou nedosažitelní za NAT nebo firewallem. Mohou publikovat své služby na P2P distribuovaném jmenném systému, aniž by k tomu potřebovaly nakonfigurovaný DNS server. Zde byla zmíněna jednoduchá ukázka, programování P2P aplikací pomocí P2P soketů je samozřejmě složitější. Nicméně stojí za to, se tím zabývat, problematika je to velmi zajímavá a může mít spousty aplikací. 6/9

Co se týče principu obejití ochranných síťových prvků: projekt JXTA, jak již bylo naznačeno, podporuje činnost rendezvouz serverů nebo web proxy. Takový server může jednak pomáhat jiným uzlům, aby mohly iniciovat spojení a jednak pracovat jako proxy, která směruje informace mezi členy P2P systému. P2P sokety jsou založeny na použití HTTP protokolu, který používá jako standardní nebo pro tunelování svého vlastního protokolu. Spojení protokolem http firewally zpravidla povolují. Pokud je však firewall dobře nakonfigurovaný, neumožní však spojení pomocí HTTP protokolu, které je iniciováno zvenku. P2P sítě JXTA však toto umějí obejít. Přístup je založen na veřejně adresovatelném uzlu nazývaném rendezvous server, s kterým se účastnící chránění firewallem již mohou spojit. Takový uzel funguje jako prostředník, který umožní uzlu uvnitř sítě chráněné firewallem komunikaci s uzlem vně této sítě. Klient P2P Kontaktuje B, Rendezvous server aby se mohl spojit s A C B Sdělí A, aby kontaktoval C firewall Kontaktuje C, vytváří přímou komunikaci mezi A a C, která prochází firewallem A Klient P2P Obr. 5: Vytváření spojení mezi servery pomocí rendezvous serveru 4. BEZPEČNOST P2P SYSTÉMŮ Současné P2P systémy nemají v sobě zabudovány bezpečnostní mechanismy, které se standardně používají v architektuře klient/server. P2P systémy určené pro malé skupiny lidí, kteří se většinou znají mezi sebou, se sice mohou bez těchto mechanismů obejít, ale v současné době se P2P systémy rozšířily v prostředí Internetu, kde je mohou využívat i miliony anonymních uživatelů. Přesto bezpečnostní mechanismy implementované v P2P systémech zůstávají omezené, přestože na druhé straně v sobě P2P systémy zahrnují stále více sofistikovaných funkcí, jako je například zajištění šířky pásma při stahování souborů pro daného uživatele a další funkce. Výsledkem uvedené situace je to, že provozování P2P systémů s sebou nese zvýšená bezpečnostní rizika a to zejména, jsou-li P2P systémy používány v rámci podnikových počítačových sítí. Problematiku bezpečnosti P2P systémů můžeme rozdělit do dvou základních oblastí [9]: Bezpečnostní rizika vyplývající z architektury a fungování P2P systémů (tj. zejména situace, kdy pracovní stanice účastníka P2P systému se stává v P2P systému klientem a zároveň serverem, a to nezabezpečeným serverem). Důsledkem je zejména možnost úniku privátních dat ze sdílených disků uživatelů P2P systémů, nízká obranyschopnost proti škodlivému software (malware), jako jsou viry, červi, trojské koně a software typu spyware, a proti útokům typu DoS (Denial of Services). 7/9

Bezpečnostní rizika vyplývající z bezpečnostních nedostatků jednotlivých P2P aplikací nebo z činnosti uživatelů, kteří z největší míry z neznalosti, z podcenění nebezpečí v důsledku a nízkého bezpečnostního povědomí instalují P2P klienty na podnikové počítače. P2P systémy mohou být provozovány tak, aby obcházely firewally, antivirovou kontrolu a umožnili anonymitu v rámci P2P systému (anonymní přístup do systému, nemožnost sledování provozu). Z toho plynou další hrozby specifické pro P2P systémy jako jsou možnost odkrytí IP nebo MAC adres, plýtvání přenosovými kapacitami, možnost prozrazení privátních dat a další. 4.1 Přehled bezpečnostních rizik P2P systémů 4.1.1 Škodlivý software Současné P2P systémy umožňují snadnou distribuci škodlivého software (malware), jako jsou viry, červi, trojské koně a další. Většina P2P systémů totiž vytváří přímé tunely a tak obejdou zabezpečení, kterou poskytují NAT a proxy servery. Je zřizováno přímé spojení na uživatelské úrovni. To je daleko nebezpečnější než e-mail, protože spojení je přímé a živé. Může tak dojít k snadnému zavlečení nejen virů, červů, trojských koní ale i software, které umožní odposlouchávání dat (spyware), například obchodní data nebo přístupová hesla a které může být i obtížné odstranit. Jako příklad snadné distribuce škodlivého software na P2P systémech lze uvést systém stahování souborů na P2P systému FreeNet. Zde je poptávaný soubor kopírován postupně na stanice účastníků systémů, až se dostane na stanici účastníka, který daný soubor požadoval. Nelze si představit lepší mechanismus pro šíření škodlivého software. 4.1.2 Riziko prozrazení dat Jedno z největších rizik provozu P2P systémů na podnikových počítačích je krádež dat. Uživatelé většiny P2P systémů musejí nabídnout data (např. hudební soubory) nebo určitou část své diskové kapacity do P2P systému. Nebezpečí z takového sdílení diskových kapacit a dat je zřejmé. Mezi citlivá data patří ale i adresy stanic účastníků. Jak již bylo uvedeno, většina P2P systémů je navržena tak, aby bylo možné obcházet firewally, antivirovou kontrolu, vytvářejí přímé tunely, čímž obejdou zabezpečení, kterou poskytují NAT a proxy servery. P2P systémy umožňují získat IP nebo MAC adresy účastníků nebo i údaje o rychlosti připojení účastníků. Například Gnutella umožňuje zobrazit IP adresu stanice, ze které si účastník stahuje požadovaný soubor. To je dobrý výchozí bod pro potenciálního útočníka. 4.1.3 Útoky typu DoS Každý účastník P2P aplikace při své činnosti v rámci P2P systému potřebuje určitou šířku pásma. P2P systémy jako jsou Napster, Gnutella a další jsou využívány pro získání souborů, hudebních, obrazových textových a dalších. Tyto soubory formátu MP3, AVI, MPG, JPG, GIF a další jsou většinou velmi velké, desítky i stovky MB. Již samo stahování souborů několika účastníky může způsobit problémy na počítačové síti nehledě na cílené útoky typu DoS, ke kterým je P2P systém vzhledem ke své architektuře citlivý. 4.1.4 Bezpečnostní rizika jednotlivých aplikací U většiny současných P2P systémů jsou bezpečnostní funkce slabé, testování na bezpečnost aplikace se neprovádí nebo se provádí povrchně. Např. některé P2P systémy jsou 8/9

navrženy tak, aby maximalizovaly sdílení diskových kapacit účastníků. Zatímco dřívější verze P2P systému Kazaa pouze vybízely k většímu sdílení kapacity lokálního disku, ale bez defalutní volby, současné verze vytvářejí při instalaci klienta systému překryvné okno požadující nastavení sdílení diskové kapacita, přičemž defaultně je nastaveno sdílení celého disku. Nepozorný uživatel se tak může dostat do situace, že celý jeho disk bude sdílený v P2P systému. Jaké z toho nebezpečí hrozí pro jeho data je zřejmé. Podobných bezpečnostních slabin nebo opomenutí tvůrce P2P systémů by se dalo nalézt více. Problematika zabezpečení P2P aplikací však není jednoduchá a nedostatky mohou vyplývat i z nedokonalosti použité platformy. Například aplikace vytvářené pomocí zmíněných P2P soketů na JXTA síti mají některé bezpečnostní nedostatky, které vyplývají z toho, že vývoj těchto soketů je v určitém stadiu vývoje: snadný spoofing jmen účastníků P2P sítě a IP adres (neexistuje žádný mechanismus, který by jednoznačně přiřadil specifickému účastníku jméno nebo IP adresu), síť je náchylná k útokům typu DoS, kdy účastník zaplaví síť požadavky nebo pokusy o vytváření server soketů, P2P sokety v současné době ještě neodpovídají JVM Security Manager architektuře. Jakmile je účastník připojen k P2P síti, jiní účastníci mohou využít nedostatků vrstvy P2P soketů k jeho kompromitaci. LITERATURA [1] A. Oram et. All. Peer-to-peer: Harnessing the Power of Disruptive Technologies. O Reilly&Association, March 2001 [2] Napster homepage. http://www.napster.com [3] Napster protocol specification, April 7 2001. http://opennap.sourceforge.net/napster.txt [4] Gnutella protocol specification, www.gnutella.com [5] Sun Microsystems' JXTA platform.jxta.org [6] The Peer-to-Peer Working Group www.p2pwg.org [7] p2psockets.jxta.org/docs/tutorials [8] www.onjava.com/pub/a/onjava/2003/12/03/p2psockets.htm [9] Beránek, L.: Peer-to-peer sítě a jejich bezpečnost II., DSM, 2005, č.1, roč. IX, s. 34-36 9/9