W poprzednim artykule omawialiśmy definicję wirtualnych sieci prywatnych (ang. Virtual Private Networks, VPN), ich cel oraz różne sposoby użycia. Dzisiaj przeanalizujemy ich najczęściej występujące zastosowania, a także ich zalety oraz wady.
Już z samego założenia sieć VPN jest bardzo wszechstronną koncepcją, dlatego też ciężko jest od razu sklasyfikować czy poszczególne zastosowania są związane z VPN-em, czy nie. Do pewnego stopnia prekursor dzisiejszego internetu ARPANET, może być również rozważany w kategoriach sieci VPN. Co ciekawe, praktycznie wszystkie koncepcje związane z siecią, a co bardziej oczywiste — z protokołami, na początku funkcjonowały jako wyłącznie korporacyjne technologie. Dopiero później stawały się powszechnym „produktem” dla przeciętnego użytkownika.
Cóż, dzisiaj akurat nie interesują nas ani historia, ani korporacyjna infrastruktura. W tym artykule zamierzamy przeanalizować typowe implementacje VPN, które przeciętny użytkownik bez technicznej wiedzy może napotkać na swojej cyfrowej ścieżce.
Po pierwsze, zwróciliśmy uwagę na te zastosowania, które pomagają ochronić użytkownika, kiedy łączy się on z publiczną siecią Wi-Fi lub próbuje ominąć restrykcje związane z protokołem IP nakładane przez dostawcę internetu. Z reguły usługi VPN, które są przeznaczone do komercyjnego zastosowania przez typowego użytkownika, występują na popularnych systemach operacyjnych wraz z instrukcją „krok po kroku” i wskazówkami niezbędnymi do ustanowienia bezpiecznego połączenia.
Ostatnimi czasy rozwiązania do ustanawiania połączeń VPN poczyniły ogromny krok naprzód w zakresie uproszczenia tego procesu — użytkownik nie musi już przechodzić przez wszystkie etapy „technologicznego bełkotu”. Teraz musi jedynie podążać za nieskomplikowanymi instrukcjami, jak np. „zapłać tutaj”, „pobierz aplikację tutaj”, „naciśnij tutaj i korzystaj do woli”. Jednakże w niektórych przypadkach miałoby sens posiąść chociażby podstawową wiedzę m.in. czym różnią się od siebie poszczególne zastosowania sieci VPN.
Popularne implementacje VPN
PPTP (Point to Point Tunneling Protocol) został opracowany jakieś 20 lat temu, co jest równocześnie dużą zaletą i poważną wadą. Najistotniejszym atutem jest kompatybilność z niemalże każdym systemem operacyjnym (nawet starszymi wersjami), co sprawia, że to rozwiązanie jest bardzo powszechne i ogólnodostępne. Ponadto, w odróżnieniu od nowszych rozwiązań, nie wymaga wykorzystywania mocy obliczeniowej komputera.
Drugą stronę medalu łatwo uargumentować wiekiem tej technologii. Przy dzisiejszych realiach i wymogach bezpieczeństwa ma ona po prostu niewystarczający poziom ochrony. Zastosowane metody szyfrowania były absolutnie w porządku w połowie lat 90., ale dzisiaj już nie wystarczają — problem, który jest potęgowany przez wadliwą architekturę i szereg niedociągnięć w najpopularniejszej implementacji Microsoftu.
Ponadto w przypadku PPTP szyfrowanie nie jest oferowane domyślnie, więc cyberprzestępcy wystarczą niecałe 24 godziny, aby złamać hasło za pomocą dostępnego dzisiaj sprzętu. Niemniej jednak w sytuacjach, które nie wymagają „super bezpiecznego” połączenia lub gdy inne połączenia VPN nie są dostępne, zdecydowanie lepiej jest użyć protokołu PPTP ze słabszym szyfrowaniem, niż pozostać zupełnie niezabezpieczonym.
Kiedyś znalazłem się w dość kłopotliwej sytuacji. Pojechałem do kraju, który owiany jest złą sławą, jeżeli chodzi o regulacje dotyczące internetu (jeżeli wiesz, co mam na myśli). Korzystałem w tym czasie z firmowej poczty, której serwer PPTP jest zlokalizowany w moim rodzimym kraju. W trakcie mojego pobytu wysyłane e-maile były dostarczane do odbiorcy w granicach od dwóch dni do nawet dwóch tygodni. Mogę się jedynie domyślać, gdzie w tym czasie znajdowały się te wiadomości. Niestety zastosowanie alternatywnego i bardziej bezpiecznego połączenia za pomocą VPN-a wówczas było ograniczone. Dowodzi to, że protokół PPTP nie jest już wystarczająco silny, aby ochronić Cię przed tak wpływowymi podmiotami jak rządy czy korporacje.
L2TP (Layer 2 Tunneling Protocol) jest bardzo podobny do PPTP. Te dwa standardy zostały opracowanie i poświadczone praktycznie w tym samym czasie. Niemniej jednak to właśnie L2TP jest uważany za bardziej efektywny protokół dla sieci wirtualnych, będąc równocześnie — co ciekawe — bardziej wymagającym pod względem mocy obliczeniowej. Ten protokół jest zazwyczaj preferowany przez dostawców usług internetowych i użytkowników korporacyjnych. A nawiasem mówiąc, L2TP nie przewiduje domyślnego szyfrowania i przeważnie występuje w pakiecie z innymi protokołami (zazwyczaj IPSec).
IPSec (Internet Protocol Security) jest zbiorem protokołów, standardów i zaleceń przygotowanym do obsługi różnych rodzajów zabezpieczonych połączeń. Pierwszy wariant IPSec datuje się na początek lat 90., jednak nawet ta podstawowa koncepcja jest stale udoskonalana i aktualizowana zgodnie z postępem technologicznym, tak więc nie jest z pewnością sztywną specyfikacją.
To oczywiste, dla jakiego rodzaju podmiotów został opracowany ten protokół. IPSec obejmuje kilkanaście standardów (każdy z nich posiada więcej niż jedne zastosowanie), które mogą zostać wykorzystane do zapewnienia ochrony połączeń na każdym poziomie. Protokół ten bezspornie jest dobry pod względem architektury, niezawodności swoich algorytmów szyfrujących oraz wydajności.
Jednak nawet z całym zasłużonym szacunkiem, IPSec ma również swoje oczywiste wady. Po pierwsze, nie jest łatwy do skonfigurowania dla przeciętnego użytkownika komputera, a jeżeli zostanie to zrobione w nieprawidłowy sposób, bezpieczeństwo może być zagrożone. Ponadto, jak już wcześniej wspominałem, rozwiązanie to wykorzystuje kilka innych protokołów.
Po drugie, IPSec jest bardzo wymagający pod względem mocy obliczeniowej. Częściowo wada ta jest rekompensowana przez sprzętową akcelerację algorytmu szyfrowania AES (który z reguły jest oferowany w obecnych implementacjach IPSec wraz z innymi algorytmami). Akceleracja sprzętowa AES jest wdrożona we współczesnych procesorach zarówno w urządzeniach mobilnych, desktopowych, jak i w routerach Wi-Fi oraz innym sprzęcie.
Ku naszemu przerażeniu, technologie stworzone przez teoretyków (głównie z matematycznych „think tanków”) są wdrażane przez praktyków, którym czasem brakuje wiedzy i zrozumienia nauki. Wyniki badania opublikowanego w październiku 2015 roku ukazują jednoznacznie, że 66% połączeń IPSec jest do złamania już przy „umiarkowanym wysiłku”, a wielce prawdopodobne, że instytucje takie jak NSA posiadają odpowiednie zasoby i infrastrukturę do złamania szyfrowania.
Głównym problemem jest niewłaściwe wykorzystanie protokołów, które są często stosowane do nawiązywania bezpiecznego połączenia. Zagadnienie to nie dotyczy wyłącznie IPSec, ale również TLS (o którym jeszcze powiemy parę słów) oraz SSH, TOR czy OTR. Innymi słowy, istnieje prawdopodobieństwo niekompatybilności pomiędzy połączeniem VPN oraz innymi rodzajami bezpiecznego połączenia dla niektórych stron internetowych, serwerów pocztowych, komunikatorów czy innych narzędzi tego typu.
Oczywiście do przeprowadzenia takiego ataku wymagane są zacne zasoby obliczeniowe. Jednak akurat w tym przypadku badacze wykorzystali ogólnodostępne technologie chmury Amazona — skorzystali ze środków dostępnych w zasadzie dla każdego.
Dysponując takimi zasobami, czas na przygotowanie ataku może w optymistycznym scenariuszu trwać minuty, a w pesymistycznym — nawet miesiąc. Niektórzy eksperci byli mocno sceptyczni co do takiej weryfikacji koncepcji: jak powszechnie wiadomo, w rzeczywistości liczba narażonych systemów jest znacznie nisza. W każdym razie pewne aspekty badań powinny być brane pod uwagę na poważnie. W tym samym okresie twórcy potencjalnie podatnego oprogramowania przygotowują lub już zaprojektowali odpowiednie łaty oraz powiadomili swoich użytkowników.
VPN-y SSL (Secure Socket Layer) oraz TLS (Transport Layer Security), jak sugerują ich nazwy, należą do klasy rozwiązań bazujących na protokołach SSL oraz TLS, które niekiedy są uzupełnione innymi środkami ochrony. Każdy z Was może się natknąć na SSL/TLS podczas surfowania w internecie — przykładowo wiele stron go używa: przedrostek https w adresie URL, a zielona kłódka potwierdza, że strona używa tego protokołu dla zabezpieczenia połączenia.
Pierwsza implementacja tego protokołu datowana jest na koniec ubiegłego wieku, jednakże sama technologia zyskała na znaczeniu dopiero po 2000 r. Rozprzestrzenienie protokołów umożliwiło dokładne ich zbadanie oraz oszacowanie liczby luk w samej infrastrukturze oraz w różnych jej odmianach. SSL 3.0 zostało wycofane w czerwcu 2015 r. Najbardziej aktualną wersją jest TLS 1.2, jednak nadal daleko jej do osiągnięcia całkowitego bezpieczeństwa: tak naprawdę dużo zależy od konfiguracji (zobacz IPSec). Poza tym oba protokoły są obciążone wymogiem oferowania wstecznej kompatybilności (ze starszymi wersjami).
Za zaletę tego typu połączenia VPN można z pewnością uznać popularność protokołów SSL/TLS w internecie — większość publicznych sieci może z nimi śmiało współpracować. Jeżeli zaś chodzi o wady, można wymienić niską wydajność tego rozwiązania, złożoność konfiguracji, a także wymóg instalacji dodatkowego oprogramowania.
Wśród najbardziej popularnych odmian sieci SSL/TLS VPN są OpenVPN (SSL 3.0/TLS 1.2) oraz SSTP (SSL 3.0) od Microsoftu. SSTP jest nawet zintegrowany z systemem Windows „w standardzie”. Ze względu na swój otwarty charakter OpenVPN ma wiele odmian dla większości platform i rozwiązanie to jest uważane za najbardziej niezawodną implementację sieci VPN jak do tej pory.
Wnioski
Dokonaliśmy przeglądu najpopularniejszych odmian VPN-a znanych do tej pory. Technologia ta jednak nieustannie się rozwija, tworząc tym samym ogromną liczbę iteracji. Niektóre z nich są powszechne, inne powstały wyłącznie z myślą o konkretnych środowiskach, np. dla sektora przemysłowego lub telekomunikacji.
Jeżeli chodzi o typowych użytkowników, zdecydowanie polecam OpenVPN — ze względu na jego otwarty charakter, niezawodność i bezpieczeństwo. Niemniej jednak zarówno ta, jak i inne implementacje VPN-a mają szereg technicznych i prawnych wątpliwości, o których opowiem Wam w kolejnym artykule z tej serii.