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