Praca_inżynierska_IPSec_ESP_AH_IKE.odt

(893 KB) Pobierz

WSTĘP

 

              Nieco ponad 19 lat temu, 17 sierpnia 1991 roku po raz pierwszy nawiązano łączność powszechnie już znanym i używanym protokołem IP (Internet Protocol)  między Uniwersytetem Warszawskim i Uniwersytetem w Kopenhadze. Tego samego roku nasz kraj uzyskał pierwszą klasę adresową IP – 148.81.0.0 co pozwoliło na dynamiczny rozwój sieci.

Początkowo dla potrzeb nauki i badań stworzono dwie sieci rozległe, 22 miejskie sieci komputerowe (MAN) i kilkaset lokalnych sieci komputerowych (LAN).

Aktualnie sieci w Polsce i na świecie to niezliczona ilość przewodów czy światłowodów, za pomocą których wysyłane są ogromne ilości mniej lub bardziej znaczących danych.

 

              Technologia IT a zwłaszcza dział teleinformatyki zdaje się być jednym z najszybciej rozwijających się rynków świata o czym między innymi świadczyć może fakt dostępności łącz internetowych udostępnianych przez providerów o coraz to większych przepływnościach.

 

              Techniki informatyczne w dzisiejszych czasach są coraz bardziej wszechobecne a wszelkiego rodzaju firmy coraz częściej i na większą skalę korzystają z transferu danych przez sieć. Bardzo często światowe giganty przemysłowe czy państwowe Ministerstwa Obrony Narodowej przesyłają poufne dane, które pod żadnym względem nie mają prawa zostać opublikowane czy nawet ujawnione.

W związku z powyższym podatność na wszelkiego rodzaju ataki czy podsłuchy z dnia na dzień rośnie i zagraża nie tylko wielkim koncernom lecz także mniejszym firmom na których ciężko wypracowany dobytek czekają wirtualni przestępcy.

 

              Ze względu na to, że coraz to większą wagę przywiązuje się do bezpieczeństwa w sieci postanowiłem się bardziej wgłębić w ten temat i przedstawić jeden z wielu ogólnodostępnych zbiorów protokołów zapewniających bezpieczne połączenie dwóch hostów jakim jest IPsec (Internet Protocol Security)

 

 

 

Tematem pracy, którą zamierzam przedstawić jest:

 

  ****************************************************************************

                                                        ***************************

 

              Przedstawione zostaną zagadnienia związane z zabezpieczaniem poufnych informacji oraz z praktycznym sposobem wykorzystania podprotokołów wchodzących w skład IPsec (Internet Protocol Security).

              Wszystkie informacje zawarte w poniższym dokumencie jedynie utrudniają a za razem zwiększają koszty ewentualnych ataków ze względu na to, że nie ma i najprawdopodobniej nie będzie możliwości zapewnienia stu-procentowego bezpieczeństwa zachowania poufności.

 

              W pierwszym rozdziale przeprowadzę dokładną analizę protokołu IPsec (Internet Protocol Security), przedstawię trzy najważniejsze podprotokoły z którymi jest nierozerwalnie związany oraz zaprezentuję dwa tryby pracy różniące się umiejscowieniem nagłówków pakietu dodawanych przez samego IPsec'a  oraz ich zastosowaniem.

              W rozdziale drugim przedstawię teoretyczne informacje na temat dwóch trybów pracy wykorzystywanych do bezpiecznej transmisji danych między dwoma stacjami końcowymi (end-to-end) oraz do transmisji zbiorowych informacji między bramami medialnymi (Geteway).

              W rozdziale trzecim zaprezentuję praktyczny sposób konfiguracji wraz z dokładnym opisem poszczególnych instrukcji wprowadzanych do plików konfiguracyjnych znanych z rozdziału pierwszego  trybów -  transportowego oraz  tunelowego.

 

 

 

 

 

 

 

 

DEFINICJE CZĘSTO UŻYWANYCH POJĘĆ

 

Poufność (confidentiality) – koncentruje się wokół utrzymania w tajemnicy danych lub informacji , do których dostęp powinna mieć tylko i wyłącznie określona grupa uwierzytelnionych osób. Informacją poufną mogą być np. dane osobowe lub numery kart kredytowych

 

Uwierzytelnienie (authentication) -

 

Integralność danych (data integrity) -

 

Dostępność (availability) -

 

Niezaprzeczalność (non-repudiation) -

 

Autentyczność (authenticity) -

 

Kryptografia (cryptography) – nauka o …

 

 

SPIS SKRÓTÓW ORAZ ICH OZNACZEŃ

              IPsec -

              AH -

              ESP -

              SP -

              SPD -

              SA -

              SAD -

              RSA -

              x.509 -

             

1 . Analiza zbioru protokołów wchodzących w skład IPSec (Internet Protocol Security)

 

              Wraz z rozwojem i rozrastaniem sieci rozległych powstawało coraz to więcej mniej lub bardziej zaawansowanych narzędzi służących do zwiększania bezpieczeństwa i poufności danych przesyłanych w sieci. Do najbardziej popularnych a za razem  najskuteczniejszych należą takie protokoły jak SSH (Secure Shell), OpenVPN (Open Virtual Private Network), PPTP (Point-to-Point Tunneling Protocol) czy też będący przedmiotem poniższej pracy IPSec (Internet Security Protocol). Bardzo często są one powodem sporów ze względu na to, że wiele osób ma zupełnie odmienne zdanie na temat sensowności ich zastosowania między innymi ze względu na mnożącą się ilość nagłówków w wysyłanych pakietach, co w rezultacie prowadzi do obciążenia sieci a za razem zmniejszenia wydajności transferu informacji.

              IPSec (Internet Security Protocol) nie jest najczęściej wybieranym sposobem zabezpieczeń transmisji poufnych informacji przez administratorów sieci na rzecz aktualnie bardziej popularnego ze względu na prostotę konfiguracji rozwiązania, którym jest połączenie OpenVPN z SSH.

              Coraz więcej jednak można spotkać pozytywnych informacji na temat korzyści jakie płyną z zastosowania zbioru protokołów IPSec (Internet Security Protocol), który w najbliższym czasie może zmienić swoją pozycję w tym rankingu chociażby dlatego, że pozwala na stosowanie własnych algorytmów kryptograficznych czy też ze względu na fakt wsparcia najnowszej wersji protokołu IP v.6 (Internet Protocol version 6). Nie jest to jeszcze powszechnie stosowane rozwiązanie lecz nieustannie rosnąca ilość komputerów z dostępem do sieci rośnie a pula adresów  w starszej wersji IP v.4 (Internet Protocol version 4) stale się kurczy.

 

              Protokół IPSec (Internet Security Protocol) powstały w 1992 roku jest ciągle rozwijany przez grupę naukowców z IPSec Working Group IETF (Internet Engineering Task Force). Stworzony został z myślą o bezpiecznej, niezaprzeczalnej i poufnej wymianie informacji między dwoma hostami pracującymi w obrębie sieci lokalnej (LAN) lub sieci rozległej (WAN). Za bezpieczny transfer informacji  w sieci LAN i WAN odpowiedzialne są dwa nieco odmienne tryby pracy (tryb tunelowy oraz tryb transportowy {~2.1 – 2.2}).

              W skład protokołu IPSec  (Internet Security Protocol)  wchodzą takie podprotokoły  jak AH (Authentication Header), ESP (Encapsulating Security Payload) i ISAKMP(Internet Security Association and Key Management Protocol)), które między innymi wykorzystywane są do identyfikacji oryginalności danych, zapewnienia integralności czy automatyczngo generowania kluczy kryptograficznych lub do ich odświeżania.

 

              1.1. Podprotokół AH (Authentication Header)

 

              Jednym z trzech protokołów wykorzystywanym przez IPsec jest protokół AH (Authentication Header). Podprotokół opisany w dokumentacji RFC 4302 oferuje uwierzytelnienie źródła, niezaprzeczalność oraz integralności danych.

Integralność zapewniana jest poprzez sumę kontrolną generowaną i umieszczaną jako kod identyfikujący wiadomość za pomocą funkcji skrótu jak np. MD5. Niezaprzeczalność zaś, osiągana jest poprzez zastosowanie silnych algorytmów kryptograficznych jak np. RSA

              Opisywany protokół nie współpracuje z translacją adresów NAT (Network Address Translation) ze względu na to, że  chroni on większą część pakietu w tym pola adresowe przesyłanego nagłówka IP.

 



Rys. 1.1 Nagłówki pakietu IP przed i po jego modyfikacji w przypadku tryby tunelowego i transportowego

 

Dodawany nagłówek protokołu AH (Authentication Header) składa się z następujących pól:

 

Next Header  (Następny nagłówek) – zawiera identyfikator kolejnego nagłówka

Payload Length (Rozmiar ładunku) – specyfikuje długość nagłówka AH, podaną w jednostkach 32 bitowych

Reserved (Zarezerwowane) - pole przewidziane do późniejszego wykorzystania, jeśli wartość jest różna od 0 pakiet zostanie odrzucony przez odbiorcę

Security Parameters Index - SPI (Indeks Parametrów Bezpieczeństwa) -  identyfikator jednoznacznie określający sposób traktowania pakietu po stronie odbiorcy. Prościej mówiąc jest to ustalany losowo i stały dla całego połączenia 32 bitowy łańcuch stanowiący identyfikator dla związków bezpieczeństwa. SPI jest jawnie przesyłany w każdym nagłówku AH (Authentication Header) lub ESP (Encapsulating Security Payload). Wartość SPI równe 0 oznacza przypadek szczególny dla którego nie utworzono SA (Security Association)

Sequence Number (Liczba sekwencji) – numer sekwencji pakietu, z kolejnymi pakietami wzrasta o 1. Po osiągnięciu wartości 2^32 tworzone jest nowe połączenie z numerem startującym od 0.

Authentication Data (Dane Uwierzytelniające) -  dane uwierzytelniające o zmiennej długości (wielokrotność 32 bitów) potrzebne do weryfikacji pakietu przez odbiorcę.

 



Rys 1.2. Nagłówek AH (Authentication Header)

 

              1.2. Podprotokół ESP (Encapsulating Security Payload)

 

Drugim protokołem bezpieczeństwa w IPsec jest ESP (Encapsulating Security Payload) opisany w dokumentacji RFC 2406 lub RFC 4303, oferuje te same możliwości co AH. Dodatkowo  dostarcza wsparcie dla poufności przesyłanych danych, która osiągana jest przez szyfrowanie ładunku pakietu np. algorytmem DES (Data Encryption Standard).

              Algorytm DES (Data Encryption Standard) jest symetrycznym szyfrem blokowym, który na samym początku dzieli informację jawną na 64-bitowe ciągi, które następnie muszą przejść szereg nieskomplikowanych operacji.

 

W skład nagłówka ESP wchodzą następujące pola:

 

Security Parameter Index (SPI) – identyfikator określający sposób postępowania z pakietem po stronie odbiorcy. Dzięki SPI, odbiorca przyporządkowuje jedną ze znanych sobie sesji IPSec i stosuje odpowiednie algorytmy kryptograficzne do odszyfrowania wiadomości.

Sequence Number – kolejny, ciągle inkrementowany numer pakietu . Wykorzystywany w celu uniemożliwienia ataków przez powtórzenia (Reply Attacks).

Payload Data – pole o zmiennej długości zawierające właściwe dane pakietu oraz jeśli jest to potrzebne wektor inicjalizacyjny algorytmu szyfrowania.

Padding – w przypadku gdy użycie szyfrowania wymaga zastosowania algorytmu blokowego a nie pasuje do niego długość danych wprowadza się dopełnienie o możliwej wielkości od 0 do 255 bitów.

Pad length – obowiązkowe pole określające długość dopełnienia.

...

Zgłoś jeśli naruszono regulamin