www.grise.pl

Sieci > Bezpieczeństwo > Model TCP/IP > Warstwa internetowa

Internet Protocol Security (IPSec)  IP wersja 6 (IPv6) 


2.2 Warstwa internetowa

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).

2.2.1 Internet Protocol Security (IPSec)

IPSec jest protokołem, który tworzy architekturę przeznaczoną do bezpiecznego przesyłania przez sieć pakietów IP. Obsługa IPSec jest opcjonalna w IPv4 i obowiązkowa w IPv6. Protokół ten działa bezpośrednio ponad IP, co pozwala mu chronić wszystkie protokoły z wyższych warstw modelu TCP/IP. Zastosowanie IPSec pozwala zapobiec wielu typom ataków, w tym podsłuchiwaniu pakietów, fałszowaniu adresów IP oraz przejmowaniu połączeń. Usługi zapewniane przez IPSec to [6]:
 - 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.
Architekturę zabezpieczeń IPSec przedstawia rysunek 2.5.

Rysunek 2.5 Architektura IPSec

Security Association

Bezpieczne połączenie (ang. Security Association - SA) określane jest też bezpiecznym tunelem lub skojarzeniem zabezpieczeń. SA identyfikowane jest jednoznaczną kombinacją 32-bitowej wartości (ang. Security Parameter Index - SPI), docelowego adresu IP i wykorzystywanego protokołu bezpieczeństwa (AH lub ESP). 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). Wraz z każdym SA w SAD przechowywane są następujące informacje:
 - docelowy adres IP, rodzaj protokołu IPSec, SPI – te trzy wartości są kluczem, który pozwala na odnalezienie SA w bazie SAD,
 - 32-bitowa wartość identyfikująca wychodzące pakiety (ang. sequence number counter) wykorzystywana do ochrony przed odtwarzaniem,
 - flaga kontrolująca zakres wartości identyfikującej pakiety (ang. sequence counter overflow),
 - okno służące do sprawdzania przychodzących pakietów (ang. anti-replay window),
 - parametry AH - algorytm uwierzytelniania i klucz wykorzystywany przez AH,
 - parametry uwierzytelniania ESP - algorytm uwierzytelniania i klucz wykorzystywany przez ESP,
 - parametry szyfrowania ESP - algorytm szyfrowania i klucz wykorzystywany przez ESP,
 - tryb pracy – transportowy lub tunelowy,
 - okres ważności SA (ang. lifetime) wyrażony w czasie i/lub jako maksymalna liczba bajtów.
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.

Security Protocol Mode

IPSec definiuje dwa tryby pracy tunelowy (AH) i transportowy (ESP). W trybie transportowym zabezpieczana jest tylko zawartość pakietów IP, a nagłówek pakietu pozostaje oryginalny. W trybie tunelowym zabezpieczany jest z kolei cały pakiet i dodawany jest nowy nagłówek IP. Tunelowy i transportowy tryb pracy ilustruje rysunek 2.6.

Rysunek 2.6 Dwa tryby pracy definiowane przez IPSec

Tryb transportowy służy do ochrony komunikacji pomiędzy hostami. Tryb tunelowy umożliwia natomiast zbudowanie wirtualnej sieci prywatnej opartej na protokole IPSec. Należy zaznaczyć, że tryb ten zapewnia również ograniczoną ochronę przed analizą przepływu pakietów. W trybie tunelowym realizowana jest bezpieczna komunikacja pomiędzy bramkami bezpieczeństwa (ang. security gateway) lub pomiędzy bramką bezpieczeństwa a hostem. Bramka bezpieczeństwa oznacza tutaj każde urządzenie, które potrafi przyjmować pakiety IP i przekształcać je na pakiety IPSec. Sposoby wykorzystania protokołu IPSec przedstawia rysunek 2.7.

Rysunek 2.7a Zabezpieczanie komunikacji z wykorzystaniem IPSec

Rysunek 2.7b Zabezpieczanie komunikacji z wykorzystaniem IPSec

Rysunek 2.7c Zabezpieczanie komunikacji z wykorzystaniem IPSec

Authentication Header (AH)

Protokół AH zapewnia integralność danych oraz uwierzytelnianie ich pochodzenia. Opcjonalnie może on także realizować ochronę przed odtwarzaniem. Brak szyfrowania w AH umożliwia swobodne rozpowszechnianie standardu. Są bowiem państwa, gdzie eksportowanie, importowanie lub stosowanie algorytmów szyfrujących jest prawnie zabronione [6]. Z tego powodu IPSec dostarcza dwa odrębne mechanizmy (AH i ESP), które mogą być wykorzystywane razem lub osobno. Rysunek 2.8 przedstawia strukturę nagłówka AH.

Rysunek 2.8 Protokół AH

Opis poszczególnych pól nagłówka:
 - Next Header – wartość oznaczająca typ danych występujących po nagłówku,
 - Payload Length – długość chronionych danych,
 - SPI – identyfikator pozwalający rozróżnić różne konwersacje zmierzające do tego samego miejsca przeznaczenia, wskazuje SA, które ma być zastosowane do tego pakietu,
 - Sequence Number – identyfikator pozwalający realizować ochronę przed odtwarzaniem,
 - Authentication Data – dane uwierzytelniające.

W zależności od wybranego trybu nagłówek AH jest wstawiany przed lub za oryginalnym nagłówkiem IP. Należy zaznaczyć, że AH chroni również zewnętrzny nagłówek IP. Ochronie podlegają tylko te pola, których wartość nie ulega zmianie podczas transmisji. Gwarancję pochodzenia danych i ich integralność zapewniają dane uwierzytelniające. Cel ten może być realizowany przez pieczętowanie (ang. sealing) lub podpisywanie (ang. digital signature). Pieczęć lub też MAC (ang. Message Authentication Code) jest wynikiem obliczenia kryptograficznej funkcji mieszającej (ang. hash function) z tajnym kluczem. Wartość MAC zależy więc zarówno od danych jak i od klucza. Dzięki temu tylko osoby znające ten tajny klucz mogą obliczyć MAC. Podpisy cyfrowe wykorzystują z kolei własności szyfrowania asymetrycznego. W wyniku tego nadawca nie może zaprzeczyć podpisaniu przez siebie danych [6].

Encapsulating Security Payload (ESP)

Protokół ESP zapewnia tajność i integralność danych, uwierzytelnianie nadawcy oraz ochronę przeciw odtwarzaniu. Możliwe jest korzystanie tylko z wybranych usług ESP. Należy jednak pamiętać, że samo szyfrowanie pozbawione usług sprawdzania integralności i uwierzytelniania nadawcy jest podatne na wiele typów ataków. Strukturę protokołu ESP przestawia rysunek 2.9.

Rysunek 2.9 Protokół ESP

Znaczenie poszczególnych pól jest analogiczne jak w omawianym protokole AH. Jedynym dodatkowym polem jest tutaj wektor inicjalizujący (ang. Initialization Vector), który jest opcjonalny. Jest on wykorzystywany przez niektóre algorytmy szyfrujące, na przykład DES zastosowany w trybie CBC (ang. Cipher Block Chaining), CFB (ang. Cipher FeedBack) lub OFB (ang. Output FeedBack). Tryby te pozwalają na dodawanie „elementu nowości” do zaszyfrowanych danych, więc dla osoby podsłuchującej zakodowany ruch za każdym razem będzie wyglądał inaczej [6]. Oryginalne dane przenoszone są w pakiecie ESP. Wraz z danymi szyfrowane jest pole długości wyrównania (ang. Pad Length) i pole informujące o rodzaju przenoszonych danych (ang. Next Header). Jeśli wykorzystywane są usługi integralności i uwierzytelniania ESP to dane uwierzytelniające obliczane są po zaszyfrowaniu. Pozwala to odbiorcy sprawdzić autentyczność zanim przystąpi do odszyfrowywania. Istotne jest również to, że do szyfrowania i uwierzytelniania mogą być wykorzystywane różne klucze. Wymaga to wówczas wynegocjowania na poziomie nawiązywania skojarzenia SA. W przeciwieństwie do protokołu AH w ESP ochronie nie podlega zewnętrzny nagłówek IP. Standard IPSec jest bardzo elastyczny i dlatego zarówno w protokole AH jak i ESP można stosować różne algorytmy uwierzytelniania i szyfrowania. Przykładowe algorytmy to:
 - szyfrowanie (3DES, DES-CBC, RC5, CAST, IDEA, triple IDEA, Blowfish, RC4 i NULL w sytuacjach, kiedy szyfrowanie jest wyłączone),
 - uwierzytelnianie (HMAC-MD5, HMAC-SHA-1, DES-MAC, HMAC-RIPE-MD, KPDK-MD5 i NULL w sytuacjach, kiedy uwierzytelnianie jest wyłączone).

Replay protection

Zarówno pakiety chronione przez AH, jak i przez ESP przenoszą unikalny numer identyfikujący pakiet (ang. sequence number). Numer ten pozwala na realizację ochrony przed odtwarzaniem. Oznacza to, że dany pakiet może być odebrany tylko raz i to przez określony okres czasu. W momencie nawiązania skojarzenia SA wartość identyfikatora jest zerowana. Od tego momentu identyfikator jest zwiększany wraz z każdym wysyłanym pakietem. Baza SAD, która przechowuje te informacje, sprawdza również czy zakres 32-bitowej wartości identyfikatora nie został przekroczony. Jeśli tak to sesja musi zostać nawiązana ponownie. Odbiorca pakietu sprawdza, czy identyfikator mieści się w zakresie dopuszczalnych wartości (ang. sliding window). Sytuację, w której pakiet o identyfikatorze N może być jeszcze zaakceptowany przedstawia rysunek 2.10.

Rysunek 2.10 Ochrona przed odtwarzaniem - pakiet N akceptowany

Pozycja przesuwającego się okna decyduje o akceptacji pakietu:
 - jeśli identyfikator znajduje się po lewej stronie okna to pakiet jest odrzucany,
 - jeśli identyfikator mieści się w oknie to pakiet jest akceptowany,
 - jeśli identyfikator jest po prawej stronie okna to pakiet jest akceptowany, a okno przesuwane w prawo.
Oczywiście warunkiem zaakceptowania pakietu jest pomyślne uwierzytelnienie, więc okno nigdy nie jest przesuwane wcześniej. Sytuację, w której pakiet o identyfikatorze N nie będzie już akceptowany przedstawia rysunek 2.11.

Rysunek 2.11 Ochrona przed odtwarzaniem - pakiet N odrzucany

Schemat działania IPSec

Działania wykonywane przy wysyłaniu pakietu

1. Sprawdzenie czy i w jaki sposób wychodzący pakiet ma być zabezpieczony:
     - sprawdzenie polityki bezpieczeństwa w SPD,
     - jeśli polityka bezpieczeństwa każe odrzucić pakiet to pakiet jest odrzucany,
     - jeśli pakiet nie musi być zabezpieczany to jest wysyłany.

2. Ustalenie, które SA powinno być zastosowane do pakietu:
     - jeśli odpowiednie skojarzenie nie jest jeszcze nawiązane to należy zwrócić się do IKE z prośbą o nawiązanie odpowiedniego SA.

3. Odszukanie SA w bazie SAD.

4. Wykonanie zabezpieczeń wykorzystując algorytmy, parametry i klucze zawarte w SA:
     - wynikiem jest stworzenie nagłówka AH lub ESP,
     - dodatkowo może zostać również utworzony nowy nagłówek IP (w trybie tunelowym).

5. Wysłanie powstałego pakietu IP.

Działania wykonywane przy odbieraniu pakietu

1. Sprawdzenie nagłówka IPSec:
     - odszukanie odpowiedniego SA w SAD na podstawie SPI zawartego w nagłówku i postępowanie zgodnie z informacjami zawartymi w SA,
     - jeśli SA wskazywany przez SPI nie istnieje, to pakiet jest odrzucany.

2. Sprawdzenie czy i jak pakiet powinien być zabezpieczony:
     - sprawdzenie polityki bezpieczeństwa w SPD,
     - jeśli polityka bezpieczeństwa każe odrzucić pakiet to pakiet jest odrzucany,
     - jeśli zabezpieczenia pakietu nie odpowiadają polityce bezpieczeństwa to pakiet jest odrzucany,
     - jeśli pakiet był zabezpieczony prawidłowo to przesyłany jest dalej.

Ustanawianie SA

Zastosowanie IPSec wymaga ustanowienia bezpiecznego tunelu pomiędzy komunikującymi się stronami. Wynegocjowane muszą być parametry bezpiecznego połączenia, w tym klucze i algorytmy kryptograficzne. Wiąże się z tym również zarządzanie kluczami. Określenie to oznacza generowanie, dystrybucję, przechowywanie i usuwanie kluczy.

ISAKMP

ISAKMP (ang. Internet Security Association and Key Protocol Management) jest przeznaczony do negocjacji, ustanawiania, modyfikowania i usuwania bezpiecznych połączeń i ich parametrów. Jest to protokół ramowy i nie definiuje algorytmów używanych do generowania kluczy. ISAKMP określa formę negocjowania bezpiecznego tunelu dla dowolnego typu mechanizmów bezpieczeństwa [6]. W szczególności może to być IPSec i protokoły AH lub ESP. Dopełnienie ISAKMP stanowią dokumenty DOI (ang. Domain of Interpretation), które określają parametry negocjacji dla konkretnego zastosowania. Pozwala to na szerokie wykorzystywanie protokołu zarządzania kluczami. Pierwszy etap ISAKMP ma na celu zabezpieczenie dalszej komunikacji. W tym celu uczestnicy są uwierzytelniani i negocjowane są podstawowe parametry bezpieczeństwa. Nawiązywane jest pierwsze bezpieczne połączenie nazywane ISAKMP SA. Jest ono dwukierunkowe. W drugim etapie negocjowane są parametry konkretnego mechanizmu bezpieczeństwa (na przykład AH lub ESP) dla SA. Komunikacja na tym etapie jest chroniona (uwierzytelnianie, szyfrowanie) dzięki ISAKMP SA.

IKE

IKE (ang. Internet Key Exchange) korzysta z ISAKMP tworząc protokół do negocjowania bezpiecznych połączeń IPSec. Podstawowe operacje wykonywane kolejno przez IKE to:
 - uwierzytelnienie obu stron wybraną metodą (współdzielony klucz, certyfikat cyfrowy),
 - nawiązane bezpiecznego kanału na potrzeby IKE (ISAKMP SA),
 - bezpieczne uzgodnienie parametrów SA (algorytmy kryptograficzne, klucze),
 - ewentualna renegocjacja parametrów połączenia.
Renegocjacja parametrów bezpiecznego połączenia umożliwia na przykład zmianę klucza sesji po upłynięciu określonego czasu. Ważne jest także zwrócenie uwagi na certyfikaty cyfrowe, czyli klucze publiczne podpisane przez nadrzędny urząd certyfikujący (ang. Certificate Authority - CA). CA jest zaufaną stroną poręczającą ważność certyfikatów. Do jego zadań należy wciąganie certyfikatów na listę, ich dystrybucja oraz usuwanie [6]. Uwierzytelnianie tą metodą jest proste, bezpieczne i zapewnia dużą skalowalność. Certyfikaty wydają się więc być najlepszym rozwiązaniem, zwłaszcza, że PKI (ang. Public Key Infrastructure) staje się powoli światowym standardem.

2.2.2 IP wersja 6 (IPv6)

IPv6 to nowa wersja protokołu IP, który ma zastąpić obecną wersję 4. Głównym powodem stworzenia IPv6 było wyczerpywanie się zasobów adresów IP w Sieci. Według niektórych przewidywań miało to już nastąpić w latach 1995-1996. Podjęto jednak działania mające na celu maksymalne wykorzystanie pozostałych, nie przydzielonych adresów IP. Kolejnym krokiem było stworzenie IPv6, który rozwiązywał problem brakujących adresów (pole adresu IPv6 jest 128-bitowe). Wraz z tworzeniem nowego protokołu rozwiązano cały szereg problemów i ograniczeń IPv4 (szyfrowanie, autoryzacja, trasowanie według nadawcy, dynamiczna konfiguracja). Dla wielu ludzi te własności stanowią główną zaletę IPv6, a problem z adresami stanowi tylko powód, dla którego zaakceptują resztę [23]. Istotna jest obowiązkowa obsługa IPSec we wszystkich implementacjach IPv6. Pozwala to na zapewnienie integralności i tajności danych oraz na uwierzytelnianie nadawcy. Kolejną sprawą jest uproszczenie protokołu IP. Ilustruje to rysunek 2.12 i rysunek 2.13. Rysunki te porównują nagłówki protokołów IPv4 oraz IPv6.

Rysunek 2.12 Nagłówek IPv4, 20 bajtów + opcje, 13 pól [8]

Rysunek 2.13 Nagłówek IPv6, 40 bajtów, 8 pól

IPv6 zapewnia całościowe i jednolite bezpieczeństwo (ang. End-to-End Security Model). Realizowana jest zasada, że im prostsza architektura IP, tym wyższy poziom bezpieczeństwa. Przedstawia to rysunek 2.14.

Rysunek 2.14 Architektura IPv6

Rysunek 2.15 pokazuje z kolei jak złożona i skomplikowana może być realizacja tego samego zadania w IPv4. Utrudnieniem jest translacja adresów sieciowych i złożone tablice trasowania.

Rysunek 2.15 Architektura IPv4



Wstecz  Spis treści  Dalej