Ewelina HRYSZKIEWICZ Wojskowa Akademia Techniczna, Wydział Elektroniki, Instytut Telekomunikacji, ul. Gen. S. Kaliskiego 2, 00-908 Warszawa email:ewelina.hryszkiewicz@interia.pl Konferencja naukowo-techniczna Dzisiejsze spojrzenie na spuściznę Nikoli Tesli, Warszawa, Muzeum Techniki, 21-22 listopada 2007 r. KONCEPCJA APLIKACJI VoIP WYKORZYSTUJĄCEJ MECHANIZMY IPSec W ostatnich latach widoczny jest gwałtowny rozwój techniki VoIP (Voice over IP). Główną jej zaletą jest wysoka efektywność oraz relatywnie niska cena. Jednocześnie jej wadą jest brak gwarancji jakości oraz poufności i bezpieczeństwa rozmów, co może prowadzić do niekontrolowanych i niepożądanych podsłuchów. Dzieje się tak, ponieważ współczesne sieci pakietowe nie mają wbudowanych zabezpieczeń przed podsłuchem, dlatego zaistniała konieczność zaprojektowania mechanizmu, który by zapewnił poufność usług telefonicznych. Artykuł przedstawia propozycję takiego mechanizmu, który zapewniłby przenoszenie usługi VoIP w warunkach ograniczonej prywatności. 1. Charakterystyka telefonii VoIP Działanie aplikacji VoIP oparte jest na czterech grupach protokołów, odpowiadających za Sygnalizację (H.323, SIP, H.248). Kodowanie mowy (np. G.711, G.723). Transport danych (RTP, UDP, TCP). Listę uzupełniają je dodatkowo takie protokoły jak: SDP, RTSP, RSVP. [1] Działanie VoIP polega na przetworzeniu sygnału analogowego na postać cyfrową, poddaniu przetworzonego dźwięku kompresji i następnie zakodowaniu tak, aby zapewniona była poufność przesyłanych informacji. Otrzymane dane dzielone są na pakiety i wysłane protokołem sieciowym. Po stronie odbiorcy procedura jest powtarzana w odwrotnej kolejności, aby odbiorca mógł usłyszeć nasz przekaz. Opłaty za rozmowy telefoniczne są na ogół znacznie niższe niż w telefonii tradycyjnej. Opóźnienia pakietów mowy muszą być niewielkie, zalecenie ITU-T Y.1541 określa graniczne wartości parametrów QoS (tabela 1.1.) [2, 3]. Opóźnienie pakietu [ms] Tabela 1.1. Parametry transmisji mowy pakietowej Wariancja opóźnienia Współczynnik pakietów pakietu utraconych do nadanych [ms] [-] Pakietowa stopa błędów [-] Klasa 0 100 50 1*10-3 1*10-4 Klasa 1 400 50 1*10-3 1*10-4 Na opóźnienie pakietu ma wpływ wiele czynników między innymi: proces konwersji sygnałów, czas kompresji zakodowanej mowy, czas pakietyzacji oraz buforowanie pakietów w nadajniku i odbiorniku, opóźnienie transmisji, depakietyzacja, dekompresja i konwersja mowy do postaci analogowej w odbiorniku (Rys. 1.1.).
Rys. 1.1. Elementy składowe opóźnienia transmisji w sieci IP Równie istotnym parametrem jest jitter pakietów. Jest on związany z możliwością przesyłania pakietów różnymi drogami i różnym czasem przetwarzania pakietów w sieci IP. W takim przypadku pakiety docierają do celu z różnym opóźnieniem a nawet w różnej kolejności. 2. Charakterystyka wykorzystywanej aplikacji PC_Phone Właściwość oprogramowania open source sprawia, że każdy użytkownik może dokonać zmian w kodzie programu według własnych potrzeb. Jest to dużą zaletą tego typu programów. Aplikacja PC-Phone jest przystosowana do pracy zarówno w sieci IPv4 jak i IPv6.Ma konstrukcję modułową. Elementem zarządzającym całością aplikacji jest centrala PC-Phone, której zadaniem jest zarządzanie przepływem informacji pomiędzy modułami programowymi i siecią IP. Przepływ informacji odbywa się za pomocą interfejsów gniazdowych. W aplikacji dostępna jest również brama telefoniczna, która umożliwia realizację połączeń z użyciem tradycyjnej sieci ISDN.. Aplikacja wykorzystuje szereg portów, które umożliwiają: połączenie z interfejsem użytkownika; komunikacje z bramą; połączenie z usługą książki telefonicznej; wymianę danych z wybraną centrala partnera. W usłudze książki telefonicznej rejestrują się użytkownicy aplikacji. Dodatkowo występują trzy foldery z kodami źródłowymi wykorzystywanych w aplikacji kodeków, które są dołączane do programu na etapie linkowania (Rys. 2.1.) [3]. Rys. 2.1. Schemat komunikacji między modułami w aplikacji PC-Phone W celu zestawienia połączenia telefonicznego użytkownik wykorzystuje interfejs graficzny PC_Phone. Interfejs umożliwia użytkownikowi zarejestrowanie w książce adresowej (Rys. 2.2).
Rys. 2.2. Interfejs graficzny użytkownika Moduły programowe zaimplementowano w języku programowania C zaś interfejs graficzny w języku Tcl/Tk (język do programowania interfejsów graficznych). 3. Dodanie modułu szyfrującego IPSec do aplikacji PC_Phone Sieci TCP/IP mają wiele problemów z bezpieczeństwem. Spowodowane jest to tym, że protokoły TCP/IP były projektowane z myślą o pracy w środowisku zaufanym. Zakładano także fizyczne bezpieczeństwo połączeń. Dzisiaj sieci TCP/IP używane są w zupełnie innych warunkach i dlatego podatne są na wiele typów ataków. Najczęściej spotykane to podsłuchiwanie (ang. packet sniffing), fałszowanie adresów IP (ang. IP spoofing) oraz przejmowanie połączenia (ang. connection hijacking). Właśnie dlatego IETF (ang. The Internet Engineering Task Force) stworzyło standard IPSec (ang. Internet Protocol Security).. W wersji IPv6 protokół IPSec traktowany jest jako integralna część protokołu IP. IPSec oferuje usługi: poufność (ang. confidentiality) szyfrowanie danych uniemożliwia ich podglądanie przez osoby trzecie, integralność (ang. integrity) gwarancja, że dane nie zostały zmodyfikowane podczas transmisji, uwierzytelnianie (ang. authenticity) kryptograficzne podpisanie danych zapewnia, że pochodzą one od nadawcy, ochrona przed odtwarzaniem (ang. reply protection) przechwycony pakiet, który zostanie wysłany ponownie nie zostanie zaakceptowany, kontrola dostępu (ang. access control) odmowa wynegocjowania parametrów bezpieczeństwa uniemożliwia nawiązanie połączenia. IPSec oferuje możliwość wykorzystania jednego z dwóch trybów pracy: transportowego i tunelowego (Rys. 3.1.) [4-7]:
Rys. 3.1. Tryb transportowy i tunelowy IPSec. Tryb transportowy jest typowy dla połączeń pomiędzy dwoma hostami końcowymi. W tym trybie zabezpieczeniu podlega segment danych pakietu IP, natomiast nagłówek IP pozostaje nie zmieniony. (Rys. 3.2.). Rys. 3.2. Tryb transportowy IPSec Tryb tunelowy SA wykorzystywany jest dla zabezpieczeń transmisji pomiędzy dwoma tzw. security gateways (routery, serwery dostępowe, firewall-e) lub pomiędzy hostem i security gateway. Zabezpieczeniu podlega w tym trybie cały pierwotny pakiet IP, stając się segmentem danych nowego pakietu IP wyposażanego w nowy nagłówek IP oraz znajdujący się pomiędzy nim i segmentem danych nagłówek IPSec. Tym sposobem także nagłówek, a nie tylko segment danych podlega ochronie IPSec. (Rys. 3.3). Rys. 3.3. Tryb tunelowy IPSec Doimplementowanie IPSec w aplikacji VoIP nastąpi w momencie wysyłania pakietów. Algorytm działania aplikacji typu VoIP z wbudowanym mechanizmem bezpieczeństwa został przedstawiony poniżej (Rys. 3.4)
Rys. 3.4. Przetwarzanie strumienia danych telefonicznych w aplikacji VoIP Bezpieczne połączenie (ang. Security Association - SA) określane jest też bezpiecznym tunelem lub skojarzeniem zabezpieczeń. SPI jest zawarty w nagłówku każdego przesyłanego pakietu. SA jest jednokierunkowe, więc typowa dwukierunkowa komunikacja wymaga dwóch bezpiecznych połączeń. Skojarzenia zabezpieczeń mogą być ustanawiane pomiędzy dwoma hostami, hostem i bramką lub dwoma bramkami. Wszystkie aktywne SA są przechowywane w bazie skojarzeń (ang. Security Association Database - SAD). Bezpośrednio z bazą SAD powiązana jest baza polityki bezpieczeństwa (ang. Security Policy Database - SPD). Baza SPD pozwala realizować określoną politykę bezpieczeństwa. SPD, podobnie jak SAD, dzieli ruch na przychodzący i wychodzący. Zabezpieczenia zawarte w SPD wskazują na skojarzenia SA umieszczone w bazie SAD. Przykładowe ustawienie asocjacji bezpieczeństwa, SA: # Definicja polityki bezpieczeństwa: add 3ffe:1::1 3ffe:1::2 esp 0x301 -m tunnel -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831; add 3ffe:1::2 3ffe:1::1 esp 0x201 -m tunnel -E 3des-cbc 0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831; # Polityka bezpieczeństwa spdadd 3ffe::/64 3ffe:2::/64 any -P in ipsec esp/tunnel/3ffe:1::1-3ffe:1::2/require; spdadd 3ffe:2::/64 3ffe::/64 any -P out ipsec esp/tunnel/3ffe:1::2-3ffe:1::1/require; Implementacja mechanizmów bezpieczeństwa IPSec realizowana będzie z wykorzystaniem aplikacji PC-Phone. W wykorzystywanej aplikacji mechanizmy bezpieczeństwa będą dostępne z poziomu gniazd programowych PF_KEY.Aplikacja zostanie zaimplementowana na platformie systemu operacyjnego Linuks. W tym celu wykorzystane zostaną dwa komputery z zainstalowaną aplikacją PC-Phone. (Rys. 3.5.). Komputer 1 3ffe:1::1 Komputer 2 3ffe:1::2 PC-Phone PC-Phone Rys. 3.5. Stanowisko laboratoryjne do badania mechanizmu bezpieczeństwa aplikacji VoIP 4. Podsumowanie i dalsze kierunki prac Proponowana przeze mnie koncepcja aplikacji VoIP wykorzystującej IPSec umożliwia bezpieczne połączenie telefoniczne. Dzięki temu efektywnie maksymalizowana jest poufność w trakcie przeprowadzanych rozmów.
Bibliografia [1] CHIP 04/2006 [2] A.Metkowska: Mechanizm wspierania jakości usługi VoIP w warunkach przeciążeń sieci Ipv6, Koszalin 2007 [3] A.Metkowska: Aplikacja VoIP dla sieci IP z przeciążeniami, SECON 2006 [4] R.Bryś, J.Jarmakiewicz: Koncepcja oraz realizacja środowiska eksperymentalnego do badania wzajemnego wpływu mechanizmów bezpieczeństwa IPSec i procedur gwarantowania jakości usług, Raport badawczy GRANT nr 0 T00A 16 25, ITK WAT, WIŁ 2005 [5] U.Ostrowska: Efektywny bezpieczny mechanizm realizacji usług transmisji mowy i danych dla mobilnych wąskopasmowych sieci IPv6; Koszalin 2007 [6] http://www.wykladowcy.wspa.edu.pl. [7] http://grise.top100.net.pl/net/bezpieczenstwo/r2b.htm