Tunelowanie to operacja, która pozwala na przesyłanie prywatnych danych wirtualnym kanałem poprzez sieć publiczną. Zestawienie takiego komunikacyjnego tunelu umożliwia bezpieczną wymianę informacji pomiędzy dwoma punktami w sieci Internet.
Do tunelowania używamy specjalnych protokołów, które zapewniają nam wybrane cechy bezpieczeństwa, lub wszystkie jednocześnie spośród: integralności, poufności i autoryzacji.
Protokół PPTP
Point-to-Point Tunneling Protocol jest protokołem pozwalającym na utworzenie tunelu w sieci publicznej. Tunel zestawiany jest między zdalnym klientem a serwerem. Protokół ten nie ma możliwości przeprowadzania transmisji szyfrowanej, co stanowi jego najpoważniejszą wadę. Na korzyść protokołu możemy zaliczyć dużą szybkość działania. Protokół ten zapewnia enkapsulację pakietów. Uwierzytelnianie realizowane jest poprzez mechanizm EAP. Tunelowanie realizowane jest przez oprogramowanie w systemie klienckim i serwerowym.
Obsługa protokołu jest realizowana w systemach Microsoft Windows już od wersji ’98 z roku 1998 do chwili obecnej.
Protokół L2F
To konkurencyjne rozwiązanie w stosunku do protokołu PPTP firmy Microsoft, zaprojektowane przez Cisco Systems. Protokół firmy Cisco działa na niższej warstwie modelu ISO/OSI, przez co nie wymaga trasowania TCP/IP tak jak jego konkurent PPTP. Tunelowanie realizowane jest przez router.
Protokół L2TP
Protokół ten jest połączeniem dwóch wyżej wymienionych rozwiązań; o połączeniu zadecydowała organizacja IETF (Internet Engineering Task Force). Oferuje tunelowanie ruchu IP, IPX oraz NetBeui przez dowolne medium w połączeniu punkt-punkt np. IP, X.25, Frame Relay, ATM.
Protokół IPSec
Protokół IPSec pracuje na warstwie trzeciej wg. Modelu ISO/OSI. Oparty jest o wynaleziony ponad 20 lat temu protokół IP, który pomimo znanych już wad (wyczerpująca się pula adresów IPv4, podatność na modyfikację pakietów) stanowi podstawę obecnej sieci Internet.
Protokół ten, stanowiący niejako rozszerzenie protokołu IP, implementuje mechanizmy bezpieczeństwa i uwierzytelniania. Odpowiednio wdrożony może zapewnić poufność i integralność danych wymienianych bezpiecznym kanałem. Przez poufność rozumiemy, że osoba trzecia po przechwyceniu transmisji nie będzie w stanie zrozumieć jej treści. Funkcja realizowana jest poprzez szyfrowanie transmisji kluczem symetrycznym. Zapewnienie integralności osiągnięto poprzez stosowanie skrótów kryptograficznych zamiast sum kontrolnych (sumy można łatwo przeliczyć i sfałszować pakiety)[1].
IPSec można wykorzystać zarówno w architekturze VPN Site-to-site jak i VPN Remote-client.
Obecnie jest najbardziej zaawansowanym zestawem protokołów kryptograficznych i –co za tym idzie – powszechnie stosowanym.
OpenVPN jako przykład protokołu opartego o SSL
OpenVPN jest bezpłatnym pakietem oprogramowania, dzięki któremu możemy zestawić bezpieczny tunel pomiędzy dwoma hostami korzystając z protokołu SSLv3/TLS. Do jego niewątpliwych zalet należą
- Łatwość konfiguracji
- Budowę opartą na protokole SSL[2]
- Dostępność dla platform Linux, BSD, rodziny systemów Windows oraz Windows Mobile
Protokół SSL opracowano w roku 1995 przez firmę Netscape; od tego czasu przeszedł szereg modyfikacji i obecnie rozwijany jest pod nazwą TLS. Protokół ten podczas pracy wykorzystuje algorytm RSA oraz proces wymiany klucza publicznego X.509.
[1] M.Serafin, Sieci VPN – Zdalna praca i bezpieczeństwo danych, Warszawa 2008, Helion, s.33
[2] Źródło internetowe: http://openvpn.net/index.php/open-source/245-community-open-source-software-overview.html