České vysoké učení technické v Praze Fakulta elektrotechnická Diplomová práce Utajení hovorů v síti IP (VoIP) Michal Vaněk Vedoucí práce: ing. Josef Semrád Studijní program: Elektrotechnika a informatika, dobíhající magisterský Obor: Informatika a výpočetní technika květen 2008
iv
Poděkování Na tomto místě bych rád poděkoval vedoucímu mé diplomové práce ing. Josefu Semrádovi za zájem, připomínky a čas, které věnoval mé práci. Poděkovat bych chtěl také ing. Janu Rudinském za řešení technických problému při zprovozňování jednotlivých úkolů. Dále bych chtěl poděkovat dr. Lukáši Kenclovi a všem lidem z projektu ACC v RDC v Dejvicích, za všechny připomínky, rady a nápady. Nakonec bych chtěl poděkovat rodině za podporu a porozumění během studia. v
vi
Prohlášení Prohlašuji, že jsem svou diplomovou práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu 60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon). V Uherském Hradišti 20.5. 2008............................................................. vii
viii
Abstract Today s VoIp boom is similar to boom of Internet in 90s. Much cheaper phone calls, independence from building new specialized networks, ability to connect everywhere you want, these are only few advantages from classical PSTN network. There is one big disadvantage too. Security area. Security in VoIP systems needs different procedures like it was in PSTN. Many new problems appeared. In this thesis I am describing mostly open source VoIP technologies, focusing on analysis of security issues and finding the best solution for given part of the VoIP architecture. Key words: SIP, H.323, MGCP, MEGACO/H.248, VPN, IPsec, TLS, SNORT, Skype, IAX, RTP, SRTP, ZRTP, Zfone, SCTP, Asterisk Abstrakt Boom, který v dnešní době zažívá VoIP je srovnatelný s dobou, kdy se začal využívat internet v devadesátých letech. Mnohem levnější hovory, nezávislost na vybudování nových sítí, možnost připojení se kdekoliv na světě, to je jen zlomek výhod oproti PSTN. Je zde také ale podstatná nevýhoda a tou je právě zabezpečení. Bezpečnost VoIP vyžaduje jiné postupy, než bylo zvykem u PSTN. V práci možné technologie popisuji, analyzuji a snažím se najít co nejlepší řešení pro daný provek VoIP sítě. Klíčová slova: SIP, H.323, MGCP, MEGACO/H.248, VPN, IPsec, TLS, SNORT, Skype, IAX, RTP, SRTP, ZRTP, Zfone, SCTP, Asterisk ix
x
Obsah Seznam obrázků Seznam tabulek xiv xv 1 Úvod 1 2 Signalizační protokoly pro VoIP 3 2.1 H.323..................................... 3 2.2 SIP - Session initation protocol....................... 6 2.2.1 Session Description Protocol..................... 8 2.3 Gateway Decomposition........................... 8 2.3.1 MGCP - Media Gateway Control Protocol............. 8 2.3.2 MEGACO/H.248........................... 9 2.4 IAX - Inter Asterisk Exchange........................ 10 2.5 Další protokoly pro VoIP........................... 12 2.5.1 Jabber/XMPP - Jingle........................ 12 2.6 Skype..................................... 12 3 Protokoly pro přenos hlasu 15 3.1 RTP...................................... 15 3.2 RTCP..................................... 16 3.3 SCTP..................................... 17 4 Bezpečnost VoIP systémů obecně 21 4.1 Možné útoky na VoIP............................ 21 4.1.1 Misrepresentation (Falešné informace)............... 22 4.1.2 Theft of Services (Krádež služby).................. 22 4.1.3 Unwanted Contact (Nevyžádaná spojení).............. 22 4.1.4 Eavesdropping (Odposlouchávání).................. 22 4.1.5 Interception and Modification (Zachytávání a modifikace)..... 23 4.1.6 Service Abuse (Zneužití služeb)................... 23 4.1.7 Intentional Interruption of Service (Přerušení služeb)....... 23 4.1.8 Specific Denial of Service (DoS)................... 23 4.1.9 Loss of Power............................. 24 4.1.10 Resource Exhaustion......................... 24 4.1.11 Performance Latency......................... 24 4.1.12 Physical Intrusion (Fyzické napojení)................ 24 4.2 SPIT - VoIP Spam.............................. 24 4.3 Bezpečnostní závěr.............................. 25 5 Univerzální bezpečnostní protokoly 27 5.1 TLS Transport Layer Security....................... 27 5.1.1 Bezpečnost.............................. 28 5.2 IPsec...................................... 28 5.3 VPN - Virtual private network........................ 29 5.3.1 OpenVPN............................... 29 xi
5.4 VoIP VPN................................... 30 5.5 Ochrana pro hraniční prvky......................... 30 5.5.1 VoIP firewall a SIP firewall...................... 30 5.5.2 NIPS and NIDS............................ 31 5.6 Obecná doporučení.............................. 31 5.7 Srovnání možností a závěr.......................... 32 6 Zabezpečení signalizačních protokolů 33 6.1 Zabezpečení signalizace SIPu........................ 33 6.1.1 Shrnutí bezpečnostních možnosti SIPu............... 34 6.2 H.323..................................... 34 6.3 XMPP/Jingle................................. 36 6.4 Media Gatewayes............................... 37 6.4.1 MGCP................................. 37 6.4.2 Megaco/H.248............................. 37 6.5 IAX...................................... 37 6.6 Skype..................................... 38 6.7 Srovnání zabezpečení............................ 38 7 Mechanismy pro zabezpečení hovoru 41 7.1 SRTP a SRTCP................................ 41 7.2 ZRTP..................................... 42 7.3 Mikey..................................... 42 7.4 Zfone...................................... 43 7.5 Srovnání protokolů.............................. 43 7.6 Shrnutí zabezpečení pro přenos hlasu.................... 44 8 VoIP klienti a VoIP servery 45 8.1 VoIP klienti.................................. 45 8.1.1 Ekiga................................. 45 8.1.2 X-Lite................................. 45 8.1.3 SJphone................................ 45 8.1.4 Minisip................................ 46 8.2 Přehled serverů pro IP telefonii....................... 48 8.2.1 SIP Express Router (SER)...................... 48 8.2.2 Asterisk................................ 48 8.2.3 H.323plus............................... 49 8.3 Závěr...................................... 49 9 Testování VoIP klientů a serverů prakticky 51 9.1 Nastavení skriptu pro program SIPp.................... 51 9.2 Testování VoIP klientů............................ 52 9.3 Testování SIP proxy a registrar serverů................... 55 9.3.1 Testování Asterisku.......................... 55 9.3.2 Testování SER serveru iptel.org................... 56 9.3.2.1 Test SIP URI v INVITE zprávě.............. 56 9.3.2.2 Test SIP URI v INVITE paketu 2............. 57 9.4 Registration hijacking............................. 57 xii
9.4.1 Při vypnuté autentizaci........................ 57 9.4.2 Při zapnuté autentizaci........................ 59 9.5 Odposlouchávání RTP paketů........................ 60 9.6 Zrušení sestaveného hovoru.......................... 61 9.7 Možnosti obrany............................... 61 9.8 Závěr...................................... 62 10 Zabezpečení proti DoS pomocí systému SNORT 63 10.1 Popis situace................................. 63 10.2 Ochrana proti DoS - Snort Inline...................... 64 10.2.0.1 Konfigurace Snort Inline.................. 64 10.3 Implementace zabezpečení a testování.................... 65 10.4 Testování................................... 65 10.5 Závěr...................................... 65 11 Závěr 67 12 Literatura 69 A Seznam použitých zkratek 71 B Nástroje pro útoky 73 B.1 Wireshark................................... 73 B.2 SIPp - výkonnostní tester pro SIP servery................. 73 B.3 SiVus - The VoIP Vulnerability Scanner.................. 73 B.4 Cain Abel................................... 74 B.5 Nmap..................................... 74 C UAC XML pro testování klientů 75 D Scénář pro testování Asterisku 77 E Registration hijacking pakety 78 F Ukázka pravidel pro Snort Inline 80 G Obsah přiloženého DVD 81 xiii
Seznam obrázků 2.1 Příklad průběhu signalizace pro RAS, H.255 a H.245 mezi terminály T1 a T2 přes gatekeeper.............................. 4 2.2 Architektura H.323 sítě........................... 5 2.3 H.323 Stack - soubor protokolů....................... 6 2.4 SIP architektura............................... 7 2.5 SIP zpráva.................................. 8 2.6 Architektura a použití protokolu MGCP.................. 9 2.7 Architektura a použití protokolu MEGACO/H.248............ 10 2.8 Využití protokolu IAX............................ 10 2.9 Struktura rámce Full Frame......................... 11 2.10 Struktura rámce Mini Frame........................ 11 2.11 Decentralizovaná architektura sítě protokolu XMPP........... 12 2.12 Architektura sítě Skype........................... 13 3.1 Struktura RTP paketu............................ 15 3.2 Struktura RTCP paketu........................... 17 3.3 Struktura SCTP paketu........................... 18 4.1 Možnost obrany proti SPITu......................... 25 5.1 Architektura VoIP VPN sítě......................... 30 6.1 H.323 Baseline Security Profile........................ 35 6.2 H.323 Signature Security Profile....................... 35 6.3 H.323 Voice Encryption........................... 36 6.4 H.323 Hybrid Security Profile........................ 36 7.1 Struktura paketu SRTP........................... 41 7.2 GUI aplikace Zfone.............................. 43 9.1 Příklad útoku REGISTRATION hijacking................. 60 10.1 Architektura automatizovaného call centra od IBM............ 63 G.1 Obsah přiloženého DVD........................... 81 xiv
Seznam tabulek 3.1 Srovnání trasportních protokolů 4. vrstvy.................. 19 5.1 Srovnání bezpečnostních protokolů a dalších bezpečnostních možností.. 32 6.1 Možnosti zabezpečení protokolu SIP..................... 34 6.2 Možnosti zabezpečení MG protokolů.................... 38 7.1 Protokoly pro přenos hlasu a jejich možnosti................ 44 8.1 VoIP klienti a jejich možnosti........................ 47 8.2 VoIP servery a ústředny........................... 50 9.1 10 invites/s.................................. 53 9.2 100 invites/s.................................. 53 9.3 500 invites/s.................................. 53 9.4 Výsledky testování Asterisku......................... 56 xv
xvi
KAPITOLA 1. ÚVOD 1 1 Úvod Voice over Internet Protocol (zkratkou VoIP) [2] je technologie, umožňující přenos digitalizovaného hlasu v těle paketů rodiny protokolů UDP/TCP/IP prostřednictvím počítačové sítě nebo jiného média, prostupného pro protokol IP. Využívá se pro telefonování prostřednictvím Internetu, intranetu nebo jakéhokoliv jiného datového spojení. Technologie VoIP postupně nahrazuje klasickou PSTN sít. VoIP na rozdíl od PSTN nepoužívá uzavřenou sít, ale veškerý provoz probíhá po Internetu. To přináší problémy s tarifikací, nouzovým voláním, zabezpečením datového toku atd. Hovor ve VoIP probíhá ve 2 fázích. Nejprve je potřeba hovor sestavit pomocí signalizace. Signalizací se zabývají signalizační protokoly, neznámější jsou protokoly H.323 nebo SIP. Jakmile jsou dohodnuty podmínky hovoru(porty, šifrování, hlasový kodek... ), probíhá přenos hlasu protokolem např RTP. VoIP je stále ještě velmi mladá technologie, přestože již překonala počáteční problémy, zbývá jich ještě spousta vyřešit (nouzová volání, bezpečnost a další). Řešení nouzových volání pro protokol SIP je stále ještě ve fázi vývoje. Věnují se mu na Kolumbijské univerzitě - NY pod vedením prof. Henninga Schulzrinnea (spoluautor protokolů RTP, SIP). Moje práce se věnuje druhému z témat. Bezpečnosti IP telefonie. Bezpečnost IP telefonie neznamená jen zabezpečení hovoru proti odposlechu, jak může napadnout každého laika. U bezpečnosti jde také o způsob zabezpečení dat tak, aby přišla ve stejné podobě tak jak odešla, zda měl k datům přístup ještě někdo jiný a jak je modifikoval. Obecně je potřeba zabezpečit důvěrnost, autentičnost a integritu. Bezpečnost je také otázkou stability systému, ochrana uživatelů před zneužitím jejich účtů... Práce je pojata jako návrhově-srovnávací. Cílem je popsat technologie, které se používají dnes v oblasti VoIP. Dále analyzovat stávající bezpečnostní možnosti pro jednotlivé technologie, pokusit se odhalit jejich nedostatky a pokud to jde, navrhnout zlepšení situace. V kapitolách 2 a 3 představuji nejpoužívanější protokoly pro signalizaci a pro přenos hovoru. Čtvrtá kapitola se věnuje obecně možným útokům v oblasti VoIP. V kapitole 5 se věnuji obecným bezpečnostním standardům, které jsou využitelné nejen pro VoIP technologii a jsou dále uváděny jako jedna z bezpečnostních možností. Kapitola 6 konkrétně představuje možnosti zabezpečení signalizace. Je zde uvedeno srovnání jednotlivých řešení a doporučení nejlepšího řešení pro danou technologii. Kapitola 7 se zabývá důvěrností při přenosu hlasu. V kapitole 8 představuji konkrétní open source technologie využívané v oblasti VoIP, jak na klientské, tak serverové straně. V kapitole 9 ukazuji prakticky některé z útoků na SIP protokol. Cílem je ukázat, že i nezkušený uživatel, může použitím několik volně dostupných programů zahltit VoIP sít a způsobit tak spoustu problémů. Kapitola 10 je jakýmsi praktickým úvodem do využití NIPS systémů ve VoIP.
2 KAPITOLA 1. ÚVOD
KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP 3 2 Signalizační protokoly pro VoIP Signalizační protokoly slouží pro navázání komunikace mezi volajícími, správu a modifikaci parametrů hovoru. Přes tyto protokoly se přenáší jak citlivé uživatelské údaje, tak informace které se týkají parametrů spojení. Mezi nejznámější protokoly v dnešní době patří SIP a H.323. Signalizace hovoru se pro oba protokoly SIP a H.323 mírně liší, principiálně je však podobná. O tom, které jsou další signalizační protokoly a jak vypadá architektura sítě, která využívá tyto protokoly, pojednává tato kapitola. Většina obrázků je převzata z [23]. Ukázka, jak vypadá signalizace hovoru pro protokol H.323, je na obr. 2.1. Popis jednotlivých kroků signalizace 1. T1 posílá RAS zprávu ARQ (admission request) gatekeeperu pro povolení přístupu. 2. Gatekeeper potvrzuje přístup příkazem ACF (admission confirmation). 3. T1 posílá H.255 zprávu setup terminálu T2. 4. Terminál odpovídá zprávou call proceeding - probíhá sestavení spojení. 5. a 6. T2 se registruje u gatekeeperu (stejně jako T1 v bodech 1. a 2.). 7. T2 posílá alerting zprávu o sestavení spojení. 8. T2 potvrzuje sestavení spojení zprávou connect. 2.1 H.323 Protokol H.323 [1], [9] je jedním z hlavních standardů pro VoIP komunikaci. Dále je také nejpoužívanějším protokolem pro videokonference. Protokol H.323 využívá pro přenos informací služeb protokolu TCP. To zajišt uje spolehlivý přenos mezi jednotlivými účastníky spojení. Vlivem výše zmíněných nedostatků IP sítě však může využití služeb protokolu TCP s sebou přinést i problémy, které se projeví velkým zpožděním relací protokolu H.323. Na vlastnostech protokolu se výrazně projevila skutečnost, že tvůrci protokolu měli velice blízko k technologiím telefonních sítí a poněkud opomněli výhodné vlastnosti a zvyklosti ze sítí počítačových. Protokol definuje v síti několik center a na jejich existenci a funkčnosti je závislá funkčnost celého systému. Tento přístup vnáší do celého systému potenciální nebezpečí selhání celku z důvodu poruchy pouze jedné z jeho částí. Odborníci z prostředí počítačových sítí se snaží maximálně oprostit od tohoto modelu a celý systém decentralizovat a tím zvýšit jeho odolnost proti možným poruchám. Na druhou stranu existence těchto center přináší řadu výhod, které umožňují například možnost adresace s využitím telefonních čísel, sběr dat nutných pro tarifikaci provozu, definovat centrálně brány pro určité směry atd 2.2.
4 KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP Obrázek 2.1: Příklad průběhu signalizace pro RAS, H.255 a H.245 mezi terminály T1 a T2 přes gatekeeper
KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP 5 Obrázek 2.2: Architektura H.323 sítě Logická topologie sítě pro přenos hlasových dat s využitím protokolu H.323 je definovaná pomocí několika základních pojmů: Entita - Každá komponenta H.323, včetně terminálů, bran (Gateway), řadičů spojení (Gatekeeper), řadičů konferencí (Multipoint Controller) a dalších jednotek nutných pro zajištění spojení. Koncový bod (Endpoint) - Jedná se o koncové terminály, brány (Gateway) a řadiče konferencí (Multipoint Controler). Každý koncový bod sítě H.323 může sestavovat a rušit spojení, případně být volán. Každé hovorové spojení v síti H.323 začíná a končí vždy koncovým bodem. Brána (Gateway) - Bránou se rozumí rozhraní mezi sítí H.323 a jinými sítěmi. Brána je koncovým bodem H.323 sítě a zajišt uje v reálném čase dvoucestnou komunikaci mezi koncovými body H.323 a koncovými body jiných sítí. Řadič spojení (Gatekeeper) - Řadič spojení je H.323 entita zajišt ující překlad adres a řízení přístupu pro všechny H.323 koncové body tj. terminály, brány a ostatní příslušenství. Řadič spojení může pomocí signalizace dohlížet nad všemi službami, které sít nabízí koncovým účastníkům, včetně řízení, dohledu a sběr tarifních informací. Řadič konference (Multipoint Controler) - Řadič konference (zkráceně označovaný MC) je stanicí, která řídí v reálném čase konferenci více uživatelů. Přesná a úplná definice jednotlivých pojmů je součást doporučení ITU-T H.323.
6 KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP Obrázek 2.3: H.323 Stack - soubor protokolů 2.2 SIP - Session initation protocol Protokol SIP [18], [9] vychází z osvědčených a praxí ověřených protokolů jako HTTP (Hyper Text Transfer Protocol), či SMTP (Simle Mail Transfer Protocol). Protokol je znakově orientovaný a při odchycení velmi dobře čitelný obr. 2.5. To umožňuje použití (v IP síti) běžných technických prostředků pro diagnostiku přenosu, jako například softwarový nástroj tcpdump, známý z prostředí operačního systému Unix, k monitorování druhu a obsahu přenášených paketů. Není proto nutný nákup speciálního programového vybavení, případně zařízení pro diagnostiku provozu jako např. u protokolu H.323. Na rozdíl od protokolu H.323 je použita strategie maximální decentralizace řízení 2.4, protokol nedefinuje žádná centrální místa v síti, komunikace probíhá výlučně mezi koncovými body. Tento přístup podstatně zvyšuje odolnost celého systému vystavěného na službách protokolu SIP jak proti výpadkům některých jeho částí, tak proti výpadkům IP sítě. Na druhou stranu je velký problém se sběrem údajů nutných pro zpoplatňování hovorů. Není téměř možné využít systém zpoplatňování telekomunikačních služeb známý z prostředí tradičních telefonních sítí. Zpoplatňování telefonních hovorů je nutné převádět na platby za množství přenesených dat do okolních sítí, či paušální poplatky. V doporučení IETF pro protokol SIP jsou definovány čtyři základní prvky sítě: Uživatelský agent (User Agent) - Uživatelská aplikace, umožňující koncovým účastníkům sítě obousměrnou komunikaci pomocí protokolu SIP. User Agent (UA) je dále rozdělen na dvě části: 1. UA Client - klientská část UA sloužící k sestavování a řízení odchozích relací 2. UA Server - serverová část UA sloužící k přijetí a řízení příchozích relací SIP Proxy Server - provádí funkce jako: hledání účastníka v koncové síti, směrování hovorů (spolupráce s Firewallem či NATem), zprostředkování styku s jinou sítí. SIP Redirect Server - směruje volání jiným serverům v síti. SIP Registrar - slouží k registraci koncových uživatelů
KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP 7 Obrázek 2.4: SIP architektura Přesná definice pojmů je součástí patřičných doporučení RFC od IETF. Při sestavování spojení se vždy využívá doménové jméno stroje v síti IP. V prvním kroku se provede hledání IP adresy koncového účastníka případně SIP serveru pomocí DNS (Domain Name Service). Při dalším kroku se sestaví spojení s koncovým účastníkem, případně se využije služeb nějakého SIP serveru, není-li možné sestavit spojení přímo (například když je účastník umístěný za Firewallem či NATem, nebo je mobilní). Směruje-li se spojení mimo sít SIP protokolu, musí volající účastník vždy sám rozhodnout, kterou bránu pro spojení použije a znát její doménovou, případně IP adresu. Identifikace uživatele v síti: Identifikace koncového uživatele v síti probíhá pomocí Uniform Resource Identifier (URI). Struktura identifikační hlavičky vypadá následovně: sip:user[:password]@host[:port][;uri-parameters][?headers] Takto zavedená identifikační struktura definuje jak uživatele, tak i server, od kterého se očekává, že zná adresu uživatele. Pro následující příklad je uživatel michalvanek a server iptel.org. michalvanek@iptel.org Protokol SIP umožňuje také vytvoření kódovaného připojení Secure SIP, které v identifikační hlavičce místo prefixu sip zavádí prefix sips. Toto kódování je vytvořeno za použití Transport Layer Security (TLS). Velké množství registračních serverů podporuje službu registrace jednoho uživatele současně na více telefonů. SIP URI tak nekoresponduje pouze s jedním telefonem, ale se všemi, na kterých je uživatel dostupný. Všechny tyto telefony pak mohou být adresované a zvonit současně. Nastavení parametrů přenosu: Pro dohodnutí parametrů přenosu multimediálních dat jako je zvukový kodek, číslo portu, frekvence vzorkování nebo použitý transportní protokol se využívá Session Description Protocol (SDP). Tento protokol je podobně jako SIP textový.
8 KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP Obrázek 2.5: SIP zpráva 2.2.1 Session Description Protocol Session Description Protocol (SDP) je určený pro přenos parametrů, které jsou důležité pro stanovení spojení. Jedná se o textový protokol a je definován IETF RFC 4566 [5]. Používá se pro popis multemidiálních sessions, žádostí o hovor, výběr portu, kodeku a další parametry nutné pro započetí spojení (distribuce klíčů pro zabezpečení spojení). SDP tedy nenese daný hovor, ale pomáhá koncovým uživatelům domluvit si podmínky, za jakých bude hovor uskutečněn, a zajistí potvrzení pro obě strany. SDP byl původně vyvinut jako komponenta Session Announcement Protocol (SAP), získal však velkou oblibu ve spojení s RTP, SRTP a SIP, proto se stal samostaným formátem pro popis multicastových sessions. 2.3 Gateway Decomposition Media Gateway Control Protocols slouží pro adresování zařízení v síti, která sestávají z rozprostřených VoIP bran. Tyto brány obsahují Media Gateways (MGs) a Media Gateway Controllers (MGCs). Pro okolí se tváří jako jedna Gateway. MGCs umožňují komunikaci mezi MGs a ostatními komponenty sítě, jako jsou H.323 Gatekeeper nebo SIP Proxy Server. MGs jsou určeny pro konverzi přenášeného audio signálu mezi obvodově přepínanými sítěmi a paketovými sítěmi. MGCs slouží pro ovládání jednotlivých MCs, které má ve své správě. Jako příklady těchto protokolů můžeme uvést Media Gateway Control Protocol (MGCP) a protokol Megaco/H.248. 2.3.1 MGCP - Media Gateway Control Protocol Media Gateway Control Protocol [15] [2] je určen pro komunikaci jednotlivých VoIP bran. Jedná se o doplňkový protokol k H.323 a SIP. MGCP je definovaný IETF a je textového tvaru, podobně jako SIP. MGCP má 2 hlavní části - Call Agent a Media Gateway, která se stará o přenos hovoru mezi IP sítěmi a PSTN. Další částí je Signalling Gateway, která je připojena k PSTN. Call Agent se stará o řízení hovoru a podporuje další funkce při přenosu hlasu - např. konverze hlasu z formátu TDM do formátu VoIP.
KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP 9 Obrázek 2.6: Architektura a použití protokolu MGCP Popis architektury MGCP: Jádrem MGCP je MGC server neboli Call Agent, je povinný prvkem MGCP protokolu. Stará se o řízení hovorů, konferencí a podporuje jednotlivé služby. MG jsou nezbytné pro hovory a konference, avšak nespravují jednotlivé fáze hovoru. MGs provádí příkazy na základě požadavků od MGC call agentů. MGCP předpokládá vzájemnou synchronizaci jednotlivých Call Agentů pomocí tzv. koherentních příkazů avšak nedefinuje vlastní mechanismus, jak se daná synchronizace má provést. 2.3.2 MEGACO/H.248 Protokol MEGACO [16] byl vyvinut IETF a ITU-T jako kompromis mezi protokoly MGCP a MDCP. Roku 1999 vznikla jeho specifikace H.GCP (H-series, Gateway Control Protocol) později označena jako H.248. Později byly tyto standardy sjednoceny pod společným názvem MEGACO/H.248.V MEGACO zůstalo stejné jako v MGCP - sémantika řídících příkazů, řídící signály, přenos po UDP. rozdíly mezi MEGACO/H.248 a MGCP: rozšířené služby a možnosti pro konferenční hovory jednodušší navazování konferenčních hovorů vylepšená syntaxe pro jednodušší zpracování zpráv podpora přenosu po TCP a UDP možnost volby mezi textovým a binárním kódováním rozšířený popis balíčků Architektura Megaco/H.248 je v základě stejná jako u MGCP - obr. 2.7, ale model protokolu je zcela odlišný. Megaco specifikuje dvě základní entity:,,terminations (zdroj multimediálního toku) a,,context (množina zdrojů, zapojených do volání). Doporučený port pro textový režim protokolu je 2944 (UDP, TCP) a 2945 pro binární podobu protokolu.
10 KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP Obrázek 2.7: Architektura a použití protokolu MEGACO/H.248 Obrázek 2.8: Využití protokolu IAX 2.4 IAX - Inter Asterisk Exchange IAX [2] [26] [3] je protokol původně určený pro komunikaci mezi softwarovými ústřednami Asterisk. V dnešní době je však široce podporován softwarovými switchi a dalšími PBX ústřednami obr. 2.8. Používá se jak pro komunikaci mezi servery, tak i pro komunikaci klient-server. Dnes se ve většině případů používá druhá verze protokolu IAX2. Základní vlastnosti: IAX2 je VoIP protokol, který pro přenos signalizace a dat využívá jeden datový tok [3]. Příkazy a parametry jsou posílány v binárním formátu. Jedná se tedy o binární protokol. Byl vyvinut proto, aby využil výhod z prostředí PSTN v paketově přepínaných sítích. Pro komunikaci mezi koncovými body se využívá samostatného UDP datového toku - jak pro data tak pro signalizaci. Hlas je přenášen v hovorovém pásmu, což umožňuje lepší propustnost přes firewall a lze lépe využít překladu adres. Tato vlastnost jej odlišuje od protokolů SIP, H.323 a MGCP, které využívají další RTP stream pro přenos informací. IAX2 podporuje slučování (trunking)a multiplexování kanálů přes jeden spoj. Při slučování jsou data z různých hovorů sloučena dohromady do paketů tak, že jeden IP datagram může přenášet informace od více hovorů, což umožňuje snížení latence hovoru. Jedná se o velkou výhodu pro VoIP uživatele, kde IP hlavičky zabírají velkou část šířky pásma. Přihlášení k sítí je velmi podobné jako u protokolu SIP. Využívá se URI adresa v daném
KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP 11 Obrázek 2.9: Struktura rámce Full Frame formátu. Obrázek 2.10: Struktura rámce Mini Frame iax:[username@]host[:port][/number[?context]] Struktura rámců: IAX využívá pro přenos dat 2 typů rámců, dle požadavků týkající se spolehlivosti doručení. Doručení garantují tzv. Full Frames obr. 2.9. Používají se zejména pro identifikaci účastníků a další synchronizační údaje ohledně signalizace. Můžou také přenášet multimediální informace. Mini Frames obr. 2.10 se používají pro přenos multimediálních dat a jejich doručení není zaručeno. Popis struktury rámců: F - určuje, zda se jedná o rámec typu Full Frame nebo Mini Frame Source call number - specifikuje číslo volání, které používá vysílací klient k jedinečné identifikaci volání R bit - určuje, zda byl rámec opětovně přenášen Destinationcall number - specifikuje číslo volání, které použije vysílající k identifikaci volání na straně příjemce. Tato hodnota je shodná s hodnotou Source call number na straně příjemce Timestamp - časová známka Seqno - počítadlo odeslaných Full Frame rámců ISeqno - počítadlo přijatých Full Frame rámců Frametype - definuje typ zprávy obsažené v rámci (definováno deset typů) C bit - popisuje, jak je následujících 7b Subclass kódováno. Pokud C=l pak je hodnota Sub-class interpretována jako mocnina dvou. Pokud C=0, interpretuje se jako 7b číslo
12 KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP Obrázek 2.11: Decentralizovaná architektura sítě protokolu XMPP 2.5 Další protokoly pro VoIP 2.5.1 Jabber/XMPP - Jingle Jabber [24] [2] je komunikační protokol založený na XML pro posílání zpráv (Instant messaging). Výhodou je otevřenost protokolu a z ní vyplývající velké množství klientů a snadná implementace nových funkcí. Následníkem protokolu Jabber je protokol XMPP. Extensible Messaging and Presence Protocol (XMPP) [24] [2], neboli rozšiřitelný protokol pro posílání zpráv a zjištění stavu, původně vznikl jako protokol pro instant messaging sít Jabber. XMPP je implementací obecného značkovacího jazyka XML. Specifikace jsou zcela otevřené a dostupné všem, kdo mají zájem o implementaci software s podporou XMPP. Servery XMPP protokolu běží standardně na TCP portu 5222. Pro vzájemnou komunikaci serverů je pak vyhrazen port 5269. Sít protokolu XMPP není centralizovaná do jednoho místa obr 2.11, jako je zvykem u většiny ostatních IM, ale je distribuovaná na servery po celém světě, na kterých je možno si založit uživatelské konto. Identifikátory uživatelů jsou v základním tvaru syntakticky i sémanticky podobné e-mailovým adresám. Identifikátor uživatele pro přihlášení k síti XMPP. uzivatel@server.com IM služba společnosti Google, nazvaná Google Talk, taktéž pracuje na protokolu XMPP. Google dokonce s touto službou přinesl rozšíření sloužící k internetové telefonii, jehož specifikace zveřejnil a následně se staly základem XEP dokumentů pod názvem Jingle, které se dále rozvíjejí. Jinlge je tedy signalizačním protokolem Googlu. 2.6 Skype Skype je peer-to-peer program, který umožňuje provozovat internetovou telefonii (VoIP) a Instant messaging [6] [2]. Vzhledem k tomu, že Skype výchází z technologie P2P, odpovídá tomu taky jeho architektura. Architektura sítě skype je decentralizovaná obr 2.12. Hlavním prvkem architektury je centrální Skype login server, Super Node, což je uživatel, přes kterého jsou směrovány další hovory a nakonec koncový uživatele Node. Přestože je Skype uzavřený protokol, bylo již provedeno několik pokusů o jeho rozkódování pomocí zpětného inženýrství. Dle Philla Zimmermana (tvůrce PGP), tyto snahy nemůžou
KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP 13 Obrázek 2.12: Architektura sítě Skype ohrozit zabezpečení a funkce Skype, jelikož malými změnami v kódu lze vše změnit a může se začít od začátku. Z důvodu, že je Skype uzavřený protokol, není mu v této práci věnováno tolik prostoru, prestože pro své světové rozšíření by si to jistě zasloužil.
14 KAPITOLA 2. SIGNALIZAČNÍ PROTOKOLY PRO VOIP
KAPITOLA 3. PROTOKOLY PRO PŘENOS HLASU 15 3 Protokoly pro přenos hlasu Plynulý přenos hlasu je nejdůležitejší vlastností VoIP. Po sestavení hovoru pomocí signalizačního protokolu nastává přenos hlasu protokolem čtvrté vrstvy. Tyto protokoly pracují na páté, aplikační vrstvě TCP/IP modelu. Mezi tyto protokoly patří protokol RTP a jeho sesterský protokol RTCP. Protokoly pro přenos VoIP se tedy nerozumí protokoly TCP, UDP příp. SCTP, které se využívají obecně pro přenos jakýchkoliv dat a pracují na čtvrté(transportní) vrstvě. Jelikož protokol SCTP je poměrně nový a na své prosazení ve VoIP teprve čeká, je mu věnován závěr kapitoly. 3.1 RTP Real-time Transport Protocol (RTP) definuje standardní paketový formát pro doručování zvukových a video dat po internetu [17] [2]. RTP byl původně vyvíjen jako protokol pro výběrové vysílání, ale používán byl v mnoha unicast aplikacích. Protokol se často používá v streaming media systémech (proudění mediálních dat), ve spojení s RTSP jako Video telefonní konference nebo videokonference, ve spojení s H.323 nebo SIP, čímž je protokol technickým základem VoIP technologie. Funkcionalita RTP zahrnuje: určení užitečného zatížení číslování sekvencí časové razítkování sledování přenosu RTP zajišt uje nepřerušovaný přenos hlasových paketů na internetu. Struktura RTP paketu - obr 3.1. Ver - (2 bity) verze protokolu(souč. 2.0) Obrázek 3.1: Struktura RTP paketu
16 KAPITOLA 3. PROTOKOLY PRO PŘENOS HLASU P - 1 bit pro indikaci paddingu na konci RTP paketu X - 1 bit pro indikaci zda je použito rozšíření protokolu CC - (4 bity) CSRC identifikátor M - (1 bit) používá ho aplikační vrstva, při použití slouží jako indikace speciálních dat pro konkrétní aplikaci PT - (7 bitů) payload type SSRC - indikace synchronizace zdroje CSRC - zdrojové ID Extension header - obsahuje délku EHL(extension header length0, kromě vlastních 32 bitů 3.2 RTCP Real-time Transport Control Protocol (RTCP) je sesterským protokolem protokolu RTP [17]. RTCP umožňuje vnější kontrolu dat pro RTP tok. Zajišt uje pro RTP zapouzdření a přenos multimediálních dat, sám však žádný přenos dat nepodporuje. Využívá se pro přenos řídícich signálů mezi účastníky spojení při hovoru. Základní funkcí RTCP je poskytnout zpětnou vazbu o kvalitě hovoru pro protokol RTP. RTCP shromažd uje statistiky o spojení a další informace, jako je počet odeslaných paketů, bytů, ztracených paketů, jitter a round trip delay. Aplikace můžou daná data využít pro zvýšení kvality hovoru, pravděpodobně omezením datového toku nebo použitím jiného kodeku. Existuje několik typů RTCP paketů obr. 3.2: ender report paket Receiver report paket Source Description RTCP Paket Goodbye RTCP Paket Application Specific RTCP paket. RTCP jako takový sám nenabízí žádné zabezpečení nebo autentizaci. Pro tyto účely byl vyvinut protokol SRTCP.
KAPITOLA 3. PROTOKOLY PRO PŘENOS HLASU 17 3.3 SCTP Obrázek 3.2: Struktura RTCP paketu Stream Control Transmission Protocol (SCTP) je transportní protokol, který navrhla v roce 2000 pracovní skupina IETF Signaling Transport (SIGTRAN) zabývající přenosem telefonní signalizace (SS7) po IP [19] [2]. Odtud pochází požadavek na několik navzájem nezávislých kanálů, které jsou přepravovány paralelně. Právě to je zřejmě největší odlišností SCTP od stávajících transportních protokolů. Po navázání spojení, kterému se v terminologii SCTP říká asociace, po něm lze přenášet řadu navzájem nezávislých proudů (stream). V rámci každého z nich dokáže SCTP garantovat doručení všech dat ve správném pořadí. Případný výpadek (a pozdější opakování, čili zdržení) v některém z proudů se však nijak netýká proudů ostatních. Jejich komunikace pokračuje bez přerušení. SCTP je transportní protokol, mezi které patří TCP a UDP. SCTP má oproti předchozím dvěma protokolům velké výhody (tab. 3.1), bohužel ve VoIP systémech se zatím nijak významně neprosadil. SCTP má mnohem jednodušší strukturu než UDP nebo TCP viz obr. 3.3. Skládá se ze 2 hlavních částí. 1. hlavička o velikosti 12 bytů 2. data chunks, které tvoří zbytek paketu. Chunků je několik typů, pro různé typy přenášených dat.
18 KAPITOLA 3. PROTOKOLY PRO PŘENOS HLASU Obrázek 3.3: Struktura SCTP paketu Výhody protokolu SCTP Multihoming - situace, kdy komunikující uzel má několik IP adres. Dostupné adresy si partneři vyměňují při vytvoření asociace, může se jednat o libovolnou směs IPv4 a IPv6 adres. Během komunikace je jedna z nich brána jako primární a na ni jsou odesílána data. Pro opakování však vybírá jinou a pokud má primární adresa častější problémy s dostupností, přejde odesílatel na jinou (je-li k dispozici). SCTP monitoruje všechny cesty a udržuje si přehled o jejich stavu. Doručení dat v balících (chunks) pomocí proudů eliminuje nechtěné, chybějící bloky dat, jako je tomu v případě TCP. Výběr a sledování cesty - Můžete si vybrat hlavní (primární) adresu a pokud má primární adresa častější problémy s dostupností, přejde odesílatel na jinou (je-li k dispozici). Ověřovací a potvrzovací mechanismy - SCTP komplikuje některé útoky směřující k nedostupnosti služeb (DoS). Zajišt uje ověření opakujících se a chybějících balíků. Pro úplnost ještě uvádím srovnání protokolů UDP, TCP a SCTP v tab. 3.1:
KAPITOLA 3. PROTOKOLY PRO PŘENOS HLASU 19 vlastnost UDP TCP SCTP spojově orientovaný ne ano ano spolehlivý transport ne ano ano Preserve message boundary ano ne ano uspořádané doručení ne ano ano neuspořádané doručení ano ne ano datový checksum ano ano ano velikost checksum (bit) 16 16 32 MTU ne ano ano řízení toku ne ano ano vícenásobný tok dat ne ne ano multihoming ne ne ano slučování ne ne ano Tabulka 3.1: Srovnání trasportních protokolů 4. vrstvy
20 KAPITOLA 3. PROTOKOLY PRO PŘENOS HLASU
KAPITOLA 4. BEZPEČNOST VOIP SYSTÉMŮ OBECNĚ 21 4 Bezpečnost VoIP systémů obecně Bezpečnost ve VoIP se v dnes stává stále diskutovanějším a diskutovanějším tématem. V minulosti byla vynaložena práce zejména na standardizaci protokolů, jak signalizačních, tak pro přenos hovoru a na zabezpečení nezbývalo tolik času. Dnes už je standardizace hotova a přiklání se velký význam k zabezpečení a na analýzu možných rizik. Jak jsem se zmínil v úvodu, VoIP využívá Internet pro přenos informace a nikoliv vlastní sít jako tomu bylo u PSTN. Tato skutečnost odhalila úplně jiné bezpečnostní hrozby a rizika, které poskytovatelé telekomunikačních služeb neznali. Jak při zabezpečování VoIP, tak při obecném zabezpečování komunikace nejen po internetu je třeba zaručit aby u dat byla zachována: důvěrnost autentičnost integrita Důvěrnost přenášené zprávy znamená, že nikdo, kromě odesílatele a příjemce, nebude moci získat vlastní obsah informace, která je přenášena. Realizuje se pomocí symetrických a asymetrických šifrovacích technik. Autentičnost zaručuje, že zpráva která dorazí od odesílatele k příjemci je skutečně od osoby, se kterou komunikujeme. Obvyklá realizace je pomocí hashovacích technik - MD5, SHA1. Integrita zprávy znamená, že informace, která je odeslána od odesílatele, dorazí v té samé podobě také k příjemci. Popřípadě budeme moci zjistit, zda zpráva byla v průběhu přenosu modifikována. Většinou se realizuje jako kontrolní součet s využitím MD5 nebo SHA1. Jakmile jsou zaručeny uvedené 3 možnosti, můžeme předpokládat, že komunikace probíha po bezpečném kanálu. Další možností porovnat sílu zabezpečení je analýzou konkrétních kryptovacích algoritmů a technik, testování závislosti velikostí klíčů na časových možnostech dešifrování, úspěšnost prolomení pomocí různých hackerských metod. Dané téma se přímo zabezpečení VoIP netýká, proto se mu budu věnovat pouze v případech, kdy je to potřeba zdůraznit. Typickým příkladem je doporučení využít 128b klíče místo 32b z důvodu snadné možnosti prolomení apod. 4.1 Možné útoky na VoIP Aby jsme mohli skutečně efektivně zabezpečit veškerou komunikaci v rámci VoIP (signalizace, přenos multimediálních dat), musíme mít k dispozici co největší počet scénářů útoků. Daný seznam vypracovala organizace Voice over IP Security Alliance (VOIPSA) [13], [25] na základě analýzi všech možných bezpečnostních rizik. útoku.
22 KAPITOLA 4. BEZPEČNOST VOIP SYSTÉMŮ OBECNĚ 4.1.1 Misrepresentation (Falešné informace) Útoky, které pro komunikaci využívají falešné nebo zavádějící informace. Tyto útoky zahrnují doručování zpráv, které obsahují chybnou informaci o identitě, oprávnění nebo obsahu. Misrepresenting Identity - Prezentace falešných osobních údajů (ID uživatele, jméno, email a jiné osobní údaje) Misrepresenting Authority - Používání cizího hesla, klíče nebo certifikátu za účelem klamání jiných osob nebo úřadů. Misrepresenting Rights - Používání cizích hesel, klíče a certifikátů za účelem získání jinak nepovoleného přístupu. Misrepresenting Content - Napodobování hlasové nebo textové informace. 4.1.2 Theft of Services (Krádež služby) Tyto útoky jsou zaměřeny na modifikaci účtovacích údajů na straně poskytovatele služeb a nezákonné používání placených služeb. 4.1.3 Unwanted Contact (Nevyžádaná spojení) Jedná se o všechna spojení, která vyžadují předchozí potvrzení nebo obejdou předchozí zamítnutí. Harrassment Všechna volání, která trápí nebo obtěžují uživatele. Extortion - Obdoba útoku Harrassment s tím rozdílem, že dochází k omezování svobody a psychickému útoku. Unwanted Lawful Content - Zahrnuje VoIP SPAM a jiné nevyžádané služby. 4.1.4 Eavesdropping (Odposlouchávání) Útočník směřuje své aktivity na monitorování signalizačních a mediálních dat. Při tomto útoku nedochází k modifikaci přenášených dat. Call Pattern Tracking - Nezákonné shromažd ování a následná analýza silového provozu. Je to obecná technika pro odhalování identit. Traffic Capture - Ukládání silového provozu. Jedná se o základní metodu pro zachytávání komunikace mezi účastníky komunikace. Number Harvesting - Metoda pro shromažd ování identifikačních údajů, mezi které patří ID uživatele, URL, email a jiné identifikační údaje, které se mohou vztahovat např. na entity sítě. Signal Reconstruction - Metody jsou určeny pro zachytávání sít ového provozu a následné extrakce audio, video nebo textové informace (rozhovor, hlasová zpráva, fax, video, text). Následně může být použito pro opětovnou rekonstrukci dat, získávání osobních nebo identifikačních údajů.
KAPITOLA 4. BEZPEČNOST VOIP SYSTÉMŮ OBECNĚ 23 4.1.5 Interception and Modification (Zachytávání a modifikace) Tato třída útoků popisuje metody, pomocí nichž může útočník nahlížet jak do signalizačních dat, tak i do dat, která přenáší informace a modifikovat je. Call Black Holing - Definuje metody, pomocí kterých útočník může odejímat nebo zabránit průchodu paketů. To má za následek přerušení komunikace. Call Rerouting - Přesměrování paketů za účelem odklonění komunikace. Fax Alteration - Změna dat jak v informační části, tak ve stavové části. Conversation Alteration - Změna audio, video, textových nebo identifikačních údajů. Úmyslné snížení kvality služeb (QoS) v průběhu komu- Conversation Degrading - nikace. Conversation Impersonation and Hijacking - Metoda pro vložení, smazání, přidání nebo změnu jakékoliv části komunikace. Může být použito i na data, která jsou zapouzdřena nebo zakódována. False Caller Identification - Signalizace nepravdivé identifikace uživatele. 4.1.6 Service Abuse (Zneužití služeb) Jedná se o kategorii útoků, které nevhodně používají komunikační služby. Call Conference Abuse - Zatajení identity za účelem zneužití VoIP služeb volání. Premium Rate Service (PRS) Fraud - Metoda pro umělé zvyšování provozu za účelem zvýšení plateb. Improper Bypass or Adjustment to Billing - Metoda pro vyhýbání se poplatkům, měnění fakturačních údajů. 4.1.7 Intentional Interruption of Service (Přerušení služeb) Útoky, které se zaměřují na přerušení služeb lze rozdělit do několika kategorií. 4.1.8 Specific Denial of Service (DoS) Množina útoků, které jsou specifické pro určité VoIP protokoly nebo samotné aplikace. Request Flooding - Útoky, které jsou prováděny zasíláním velkého množství platných/neplatných dotazů. Útoky tohoto druhu mohou vést k velkému vytížení výpočetní kapacity nebo restartu zařízení. Malformed Requests and Messages - Některé kontrolní zprávy ve VoIP jsou podle specifikace úmyslně neukončené, aby bylo možné přidávat dodatečné informace. Stinná stránka této specifikace spočívá v nemožnosti kontrolovat jednak správné provedení všech platných zpráv, tak i přesné rozpoznání neplatných zpráv. U platných, ale rozsáhlých zpráv, proto nastává riziko, že mohou být odstraněny.
24 KAPITOLA 4. BEZPEČNOST VOIP SYSTÉMŮ OBECNĚ QoS Abuse - Tato forma útoků umožňuje útočníkovi napadnout vyjednávání o parametrech přenosu při sestavování hovoru. To může zahrnovat např. změnu nastavení zvukového kodeku, změnu portu nebo IP adresu příjemce. Spoofed Messages - Jedná se útok, který umožňuje vložení falešné signalizační zprávy do toku zpráv tak, že příjemce přijme tuto zprávu jako platnou. U těchto útoků bývá časté např. vložení zprávy pro ukončení hovoru nebo zprávy typu BUSY. Call Hijacking - Při oslabení zabezpečení je systém náchylný na útoky, při kterých jsou zcizena data mezi jednotlivými koncovými body VoIP sítě. Mezi tyto data mohou patřit jak signalizační údaje, tak přenášená mediální data. Výsledkem může být, že obět nebude schopna dosáhnout služeb sítě. 4.1.9 Loss of Power Jedná se o útoky, které se soustředí na odpojení systému od dodávky energie. Na obranu proti tomuto druhu útoku je vhodné instalovat zdroj záložního napájení nebo jinak zabezpečenou dodávku energie. 4.1.10 Resource Exhaustion Zaměřují se na vytížení výpočetních prostředků zařízení. Může se jednat o pamět ové vytížení, vytížení CPU nebo zatížení sítě a tím zmenšení šířky pásma. 4.1.11 Performance Latency Dotýká se jak signalizačních tak i mediálních dat, kde se může projevit ztráta paketů, latence nebo proměnné zpoždění paketů. Aby byla komunikace provozu schopná, neměla by latence přesáhnou dobu 200 ms, jitter by mělo být menší jak 25 ms a množství ztracených paketů by nemělo být vetší jak 5. 4.1.12 Physical Intrusion (Fyzické napojení) Fyzické napojení může vyžadovat překonání fyzické obrany jako jsou bezpečnostní systémy, zámky. K tomuto druhu napadení lze přiřadit útok na zařízení nebo firmy, které poskytují silové služby, napojení na datové vodiče (bezdrátové spojení, optické linky). 4.2 SPIT - VoIP Spam VoIP spam je rozšíření nežádoucích, automaticky vytáčených, nahraných telefonních hovorů využitím technologie VoIP. VoIP spam se označuje zkratou SPIT(Spam over Internet Telephony). VoIP systémy, podobně jako e-mail a další internetové aplikace jsou citlivé k zneužití ze třetích stran, které dokážou provádět nevyžádané hovory. Tele prodejci a další různé systémy využívající telekomunikační služby rádi využívají VoIP pro zvýšení zisků. SPIT je k tomu přímo ideální, jelikož náklady na provoz jsou téměř nulové.
KAPITOLA 4. BEZPEČNOST VOIP SYSTÉMŮ OBECNĚ 25 Základním protokolem, který bývá zneužit pro SPIT je SIP. SIP je dnes nejrozšířenější VoIP protokol, jak už bylo zmíněno v předchozách kapitolách. SIP používá stejný formát kontaktu jako e-mail, a proto je pro SPIT přímo ideální. Lze předpokládat, že pravidla, kterými se lze bránit SPAMu, budou účinná a na obranu proti SPITu obr.4.1. Obrázek 4.1: Možnost obrany proti SPITu SIP byl navržen tak, aby podporoval jednoduché zjištění dostupnosti účastníka. Bohužel to také znamená, že volající bude již předem znát, zda je účastník dostupný a v případě že ano, pokusí se jej kontaktovat, např v 03 : 00 ráno. Testovací program pro generování SPITu 1 byl vyvinut skupinou Black Hat. Jeho použití je pouze na vlastní zodpovědnost, dle přiložené licence. SPIT je jedním z dalších velkých bezpečnostních problému dnešního internetu. Vzhledem k velikosti a náročnosti řešení problému, nebude mu v práci již dále věnována pozornost. 4.3 Bezpečnostní závěr Jak vyplývá z názvu kapitoly, možností, jak vyzkoušet odolnost systému, je opravdu velké množství. Z hlediska operátora jsou nejvýznamější útoky typu Registration spoofing/hijacking, Toll Fraud a DoS. Každý z těchto útoků má jiný dopad. Registration hijacking a Toll Fraud mají za následek, že oprávněný uživatel není schopen telefonovat a v nejhorším případě mu k jeho účtu přibude pár dalších, jistě velmi drahých hovorů. Prokázat, že hovory nejsou vaše není nic jednoduchého. Po DoS útoku zůstává systém nefunkční, což v některých případech může vést k hromadným žalobám, a to může vést až ke krachu operátora. Třetím v pořadí je odposlech hovorů, který může do problémů dostat samotné uživatele. Zkuste zavolat disidentům do Číny a mluvit s nimi o lidských právech. 1 http://www.hackingvoip.com/tools/spitter.tar.gz
26 KAPITOLA 4. BEZPEČNOST VOIP SYSTÉMŮ OBECNĚ Ochrana proti výše zmíněným útokům je zajisté možná, věnuje se jí následující kapitola. Všeobecným doporučením zůstává pravidelná aktualizace systému, firewall, antivirový a antispyware software.
KAPITOLA 5. UNIVERZÁLNÍ BEZPEČNOSTNÍ PROTOKOLY 27 5 Univerzální bezpečnostní protokoly Možností ochrany dat proti zneužití je velké množství. Při použití bezpečnostních protokolů, rozlišujeme jednotlivé protokoly tím, s kterou sít ovou vrtsvou pracují. Protokoly TLS, SSL zabezpečují přenos pouze pro konkretní aplikaci přes nezabezpečené médium, zatímco protokoly IPSec, VPN, openvpn zajist ují bezpečný přenos pro všechny pakety, jelikož pracuji na nižší, sít ové (3.) vrstvě. Další bezpečnostní prvky jsou VoIP firewally a NIPS systémy. VoIP firewall je rozšířením klasického firewallu a umožňuje využití RTP. NIPS chrání systém proti D-DoS útokům. VoIP firewall ani NIPS se nestarají o vlastní zabezpečení dat, přesto jsou velmi důležitým prvkem ve VoIP intrastruktuře. 5.1 TLS Transport Layer Security Protokol Transport Layer Security (TLS) [27] [2] a jeho předchůdce, Secure Sockets Layer (SSL), jsou kryptografické protokoly, poskytující možnost zabezpečené komunikace na Internetu pro služby jako WWW, elektronická pošta, internetový fax a další datové přenosy. Mezi protokoly SSL 3.0 a TLS 1.0 jsou drobné rozdíly, ale v zásadě jsou stejné. Zde použitý termín TLS se týká obou dvou, pokud není z kontextu zřejmý opak. Protokol(y) TLS umožňují aplikacím komunikovat po síti způsobem, který zabraňuje odposlouchávání či falšování zpráv. Pomocí kryptografie poskytuje TLS svým koncovým bodům autentizaci a soukromí při komunikaci Internetem. Typicky je autentizován pouze server (tedy jeho totožnost je zaručena), zatímco klient zůstává neautentizován. To znamená, že koncový uživatel (at člověk či aplikace, jako třeba webový prohlížeč) si může být jist s kým komunikuje. Další úroveň zabezpečení při níž oba účastnící hovoru mají jistotu s kým komunikují je označována jako vzájemná autentizace. Vzájemná autentizace vyžaduje nasazení infrastruktury veřejných klíčů (PKI) pro klienty. TLS zahrnuje tři základní fáze: 1. dohodu účastníků na podporovaných algoritmech 2. výměnu klíčů založenou na šifrování s veřejným klíčem a autentizaci vycházející z certifikátů 3. šifrování provozu symetrickou šifrou Během první fáze se klient a server dohodnou na používaných kryptografických algoritmech. Současné implementace podporují následující možnosti: pro kryptografii s veřejným klíčem: RSA, Diffie-Hellman, DSA pro symetrické šifrování: RC2, RC4, IDEA, DES, Triple DES, AES, Camellia pro jednosměrné hešování: Message-Digest algorithm (MD2, MD4, MD5), Secure Hash Algorithm (SHA-1, SHA-2)
28 KAPITOLA 5. UNIVERZÁLNÍ BEZPEČNOSTNÍ PROTOKOLY 5.1.1 Bezpečnost TLS zahrnuje řadu bezpečnostních opatření: Klient používá veřejný klíč CA k ověření jejího podpisu v serverovém certifikátu. Lze-li digitální podpis CA ověřit, klient přijme serverový certifikát jako platný certifikát vydaný důvěryhodnou CA. Klient ověřuje, zda je vydávající certifikační autorita na seznamu důvěryhodných CA. Klient kontroluje dobu životnosti serverového certifikátu. Autentizační proces se zastaví, pokud doba jeho platnosti vypršela. K ochraně před útoky typu Man-in-the-Middle porovnává klient aktuální DNS jméno serveru se jménem z certifikátu. Ochrana před několika známými útoky (včetně man-in-the-middle), jako je snaha o použití nižší (méně bezpečné) verze protokolu nebo slabšího šifrovacího algoritmu. Opatření všech aplikačních záznamů pořadovými čísly a používání těchto čísel v MAC. Používání ověřovacího kódu zprávy rozšířeného o klíč, takže jen vlastník klíče dokáže MAC ověřit. Definováno v RFC 2104. Jen v TLS. Zpráva ukončující inicializaci (Finished) obsahuje hash všech zpráv vyměněných v rámci inicializace oběma stranami. Pseudonáhodná funkce rozděluje vstupní data na poloviny a zpracovává každou z nich jiným hashovacím algoritmem (MD5 a SHA-1), pak je XORuje dohromady. To poskytuje ochranu, pokud by byla nalezena slabina jednoho z algoritmů. Jen v TLS. SSL v3 je proti SSL v2 vylepšeno přidáním šifer založených na SHA-1 a podporou autentizace certifikáty. Další vylepšení SSL v3 zahrnují lepší inicializační protokol a vyšší odolnost proti útokům typu man-in-the-middle. 5.2 IPsec Ipsec (IP security) [4] je soubor protokolů pro bezpečnou komunikaci prostřednictvím IP protokolů pomocí autentizací a kryptování každého paketu v datovém toku. IPsec také obsahuje sadu protokolů pro stanovení kryptografických klíčů. IPsec protokoly pracují na sít ové (třetí) vrstvě OSI modelu. Další rozšířené internetové bezpečnostní protokoly jako SSH, SSL nebo TLS pracují se čtvrtou transportní vrstvou OSI modelu. Daná vlastnost činí IPsec velmi flexibilním, a proto je vhodný pro ochranu protokolů čtvrté vrstvy, včetně UDP a TCP, jakožto nejrozšířenejších internetových protokolů. Hlavní výhodou IPsecu oproti ostatním protokolům vyšších vrstev je to, že aplikace využívající IPsec nemusí být naprogramované pro využití IPsecu jako kryptovacího protokolu ačkoliv SSH nebo jiné protokoly jsou v aplikacích implementované.