![drukuj stronę drukuj stronę](/img/layout/drukuj.png)
![poleć znajomemu poleć znajomemu](/img/layout/polec_znajomemu.png)
Klasyfikacja i analiza wybranych mechanizmów bezpieczeństwa w sieciach VPN
1. Protokoły VPN warstwy łącza danych Protokoły VPN warstwy łącza danych działają poniżej warstwy sieci (w modelu TCP/IP), co oznacza, że mogą one chronić informacje warstwy sieci i warstw wyższych. Co więcej, chroniony może być nie tylko ruch IP, ale także ruch innych protokołów, np. IPX (ang. Internetwork Packet Exchange).
Najczęściej protokoły VPN warstwy łącza danych wykorzystują protokół PPP (ang. Point-to-Point Protocol), który używany był do zabezpieczenia połączeń modemowych. Dany protokół VPN służy przeważnie do utworzenia tunelu, przez który może się komunikować protokół PPP. Dla przykładu w PPTP (ang. Point-to-Point Tunneling Protocol) szyfrowanie i uwierzytelnianie dokonywane jest przez PPP, a nie przez protokół VPN. PPP wykorzystuje do szyfrowania algorytm DES, natomiast to uwierzytelniania stosowane są algorytmy PAP (ang. Password Authentication Protocol) oraz CHAP (ang. Challenge Handshake Authentication Protocol). Kilka lat temu odkryto pewne niedoskonałości wyżej wymienionych protokołów, dlatego też protokoły VPN warstwy łącza danych często korzystają z dodatkowych protokołów, aby zapewnić większe bezpieczeństwo połączeń VPN [2]. Najczęściej używane protokoły VPN warstwy łącza danych to: PPTP i L2TP.
1.1. Point-to-Point Tunneling Protocol
PPTP (ang. Point-to-Point Tunneling Protocol) jest protokołem, który pozwala ustanowić wirtualny tunel w sieci IP, przez który może być nawiązane połączenie PPP. Standard PPTP nie modyfikuje protokołu PPP, a raczej dostarcza mechanizmów umożliwiających zastosowanie PPP w sieci pakietowej, takiej jak Internet [3].
Protokół PPTP został opracowany przez firmę Microsoft, aby zapewnić zdalne dostęp poprze publiczną sieć do serwera (bramy VPN). PPTP może wykorzystywać do uwierzytelnienia takie algorytmy jak: PAP, CHAP, MS-CHAP i EAP. Pomimo faktu, że PPP używany jest głównie do zabezpieczania pojedynczych połączeń, np. modemowych, protokół PPTP może być ustanowiony ze zwykłego połączenia LAN.
PPTP wykorzystywany był głównie w starszych systemach operacyjnych: Windows 95, 98 i ME. W nowszych systemach, tj. Windows 2000, XP, 2003 i Vista, częściej wykorzystuje się protokół L2TP lub IPSec.
W protokole PPTP dostępne są następujące usługi [4]:
- szyfrowanie - szyfrowanie wewnątrz datagramu PPP dokonywane jest przy użyciu protokołu MPPE (ang. Microsoft Point-to-Point Encryption). MPPE używa algorytmu szyfrującego RSA RC4 i stosuje 40, 56 lub 128 bitowe klucze, które w celu zwiększenia bezpieczeństwa są często zmieniane podczas komunikacji.
- kompresja - kompresja danych zawarta w datagramie PPP dokonywana jest za pomocą protokołu MPPC (ang. Microsoft Point-to-Point Compression). Kompresja danych przed ich wysłaniem zmniejsza liczbę bitów potrzebnych do przesłania danej informacji, w związku z tym przyspiesza kompresję.
- uwierzytelnianie - uwierzytelnianie dokonywane jest za pomocą jednej z metod dostępnych w protokole PPP. Może to być PAP, CHAP, MS-CHAPv1, MS-CHAPv2 lub EAP.
- przesyłanie danych - dane warstwy sieci umieszczane są w datagramach PPP, które z kolei enkapsulowane są w pakiety PPTP. Oznacza to, że przez PPTP przesyłać można dane różnych protokołów warstwy sieci, np. IP, IPX, NetBEUI i inne.
- przyznawanie adresów - protokół PPTP może dynamicznie przyznawać adresy punktom końcowym danego połączenia.
Architektura protokołu PPTP
Protokół PPTP działa na zasadzie architektury klient - serwer [4].
Urządzenie pełniące rolę klienta określane jest jako PAC (ang. PPTP Access Concentrator). Jego zadaniem jest nawiązanie bezpiecznego połączenia z serwerem i przesyłanie danych w pakietach PPP.
Urządzenie pełniące rolę serwera nazywane jest PNS (ang. PPTP Network Server). Jego zadaniem jest odbieranie ruchu od PAC, sprawdzanie zabezpieczeń, odszyfrowywanie i przekazywanie danych.
Pomiędzy PAC a PNS ustanawiane są dwa rodzaje połączenia [3]:
- połączenie kontrolne - służy do kontroli i zarządzania połączeniem właściwym. Połączenie to wykorzystuje TCP, dlatego też PAC i PNS muszą obsługiwać protokół TCP/IP.
- połączenie właściwe - służy do wymiany danych i używa protokołu GRE (ang. Generic Route Encapsulation). Protokół GRE zapewnia dostarczenie danych, kontrolę przepływem danych oraz zapobieganie zatorom.
Problemy występujące w sieciach VPN wykorzystujących PPTP
Z implementacją sieci VPN z wykorzystaniem protokołu PPTP związane są pewne problemy, z których najważniejsze zostały opisane niżej [4]:[/list]
1.2. Layer Two Tunneling Protocol
L2TP (ang. Layer Two Tunneling Protocol) jest protokołem, który łączy w sobie cechy protokołu PPTP oraz L2F (ang. Layer 2 Forwarding - protokół opracowany przez firmę Cisco). L2TP jest bardzo często wykorzystywany, podobnie jak PPTP, do transportu pakietów PPP poprzez sieć szkieletową, np. sieć IP. Można go także stosować do pracy z innymi protokołami niż PPP. W celu zwiększenia poziomu bezpieczeństwa pakiet L2TP może być umieszczony wewnątrz pakietu IPSec. Rozwiązanie takie łączy w sobie bezpieczeństwo IPSec z zaletami PPP, np. dynamiczne przydzielanie adresów, wsparcie dla innych protokołów niż IP. Technikę taką określa się jako L2TP over IPSec lub L2TP/IPSec [4].
Protokół L2TP nie stosuje żadnych algorytmów szyfrujących, dlatego też przy tworzeniu bezpiecznych sieci VPN korzysta się z L2TP/IPSec w celu zapewnienia odpowiedniego poziomu poufności.
L2TP enkapsuluje dane w pakiety PPP lub inne (w zależności od implementacji) i wysyła je poprzez sieć IP. W przeciwieństwie do PPTP, L2TP nie stosuje GRE. Zamiast tego stosowany jest protokół UDP - zarówno do transportu pakietów zawierających dane i transportu pakietów kontrolnych. Z kolei pakiety UDP chronione są przez IPSec ESP w trybie transportowym [4].
Architektura L2TP
Protokół L2TP tworzy połączenie (tunel) pomiędzy dwoma punktami końcowymi nazywanymi jako LCCE (ang. L2TP Control Connection Endpoints). Jeśli ramki przetwarzane są w LCCE na poziomie warstwy łącza danych to dany LCCE określany jest jako LAC (ang. L2TP Access Concentrator). Jeśli ramki przetwarzane są na poziomie warstwy sieci to dany LCCE określany jest jako LNS (ang. L2TP Network Server). Dane urządzenie może pracować jako LAC dla jednych sesji i jako LNS dla innych, dlatego też pojęcia LAC i LNS należy rozpatrywać w odniesieniu do danej sesji L2TP.
Istnieją trzy rodzaje architektury L2TP [5]:
- LAC-LNS - z jednej strony LAC odbiera ruch z łącza, na którym działa protokół warstwy łącza danych, np. PPP. Ruch przesyłany jest dalej z wykorzystaniem protokołu L2TP poprzez sieć szkieletową, np. sieć IP. Z drugiej strony LNS logicznie zakańcza połączenie L2TP i przekazuje dalej dane do innych urządzeń, z wyjątkiem sytuacji, gdy komputer PC pełniący rolę LNS sam jest adresatem wiadomości. Ustanowienie sesji jest inicjowane przez LAC (Incoming Call) lub przez LNS (Outgoing Call). Przykład takiej architektury przedstawiono na rysunku 1.
- • LAC-LAC - w modelu tym oba urządzenia LCCE pełnią rolę LAC. Każde z urządzeń LAC przekazuje dane protokołu warstwy łącza danych dane sieci do drugiego z urządzeń za pomocą L2TP. Każde z urządzeń może zainicjować sesje. Przykład takiej architektury pokazano na rysunku 2.
- • LNS-LNS - w modelu tym oba urządzenia LCCE pracują jako LNS. Typowo połączenie inicjowane jest z poziomu użytkownika, np. tunel zainicjowany z komputera PC przez użytkownika. Przykład tej architektury ilustruje rysunek 3.
Protokół L2TP wykorzystuje różne bezpieczne metody uwierzytelnienia, np. EAP, ale wspiera także starsze rozwiązania takie jak: PAP, CHAP, MS-CHAP. Ponadto wykorzystuje protokół DHCP (ang. Dynamik Host Configuration Protocol), który zajmuje się dynamicznym przyznawaniem adresów IP urządzeniom.
Zgodnie z dokumentem RFC 4667 (ang. Request for Comments) [6], główna architekturą wykorzystywaną przy tworzeniu sieci VPN warstwy łącza danych jest architektura LAC-LAC.
Zasada działania L2TP
LCCE tworzą i utrzymują sesję połączenia. Protokół L2TP jest więc protokołem połączeniowym. Pomiędzy urządzeniami istnieje jeden tunel (jedno połączenie), ale przesyłane są dwa rodzaje danych:[/list]
LCCE używają protokołu UDP jako środka transportu dla pakietów danych i pakietów kontrolnych. Istnieje możliwość stosowania implementacji L2TP, która nie korzysta z UDP. Nazywana jest ona jako L2TP over IP. Sprawia ona jednak problemy przy pracy z urządzeniami dokonującymi translacji PAT.
W celu zapewnienia uwierzytelnienia, poufności, integralności danych i ochrony przed powtórzeniami, protokół L2TP stosuje się razem z IPSec. Zanim powstanie tunel L2TP, pomiędzy dwoma urządzeniami LCCE musi być ustanowiony tunel IPSec. Dopiero wtedy dane L2TP mogą być enkapsulowane w ESP. Budowę pakietów L2TP/IPSec pokazano na rysunkach 4 i 5.
|
REKLAMA |
![](/img/layout/nl.png)
REKLAMA |