następny punkt » |
Opracowaniem protokołu IPSec zajęła się w 1992 roku samodzielna grupa robocza IETF (Internet Engineering Task Force). Pierwsze wersje zostały przedstawione w 1995 roku. Ipsec jest protokołem warstwy trzeciej (poziom protokołu IP) według modelu OSI zapewniającym:
IPSec jest integralną częścią protokołu IPv6 (adres 128 bitowy) lub Ipng (IP Next Generation). Ponieważ znajduje się jeszcze w fazie rozwojowej, więc stworzono specyfikację IPSec dla obecnie używanego IPv4.
Przezroczystość dla użytkownika oznacza, że nie musi on nawet wiedzieć o szyfrowaniu ruchu. Nie musi pamiętać żadnych haseł, czy trzymać w bezpiecznym miejscu prywatnych kluczy. IPSec umożliwia zabezpieczenie standardowych protokołów takich jak POP3, SMTP, HTTP bez nanoszenia jakichkolwiek poprawek do kodu ich serwerów i klientów. Rozwiązuje to odwieczny problem przesyłania haseł w postaci jawnej (np. POP3) lub innych cennych informacji (numery kart kredytowych).
Składniki IPSec:
Protokół AH zapewnia usługi związane z uwierzytelnieniem pakietu. Robi to za pomocą algorytmów typu MAC (Message Authentication Code). Dodatkowo zapewnia to również integralność przesyłanych danych. Protokół ESP zapewnia poufność danych i funkcjonalność protokołu AH. Oprócz mechanizmów MAC stosuje on algorytmy szyfrujące dane.
Skojarzenia zabezpieczeń definiują jednokierunkowe połączenie, które zabezpiecza transmitowane dane. Komunikacja pomiędzy dwoma urządzeniami w sieci wymaga co najmniej dwóch takich połączeń. Każde połączenie SA jest identyfikowane przez trzy parametry:
Każdy pakiet IPSec zawiera w nagłówku numer SPI, pozwalający na określenie informacji potrzebnych do odszyfrowania treści pakietu, sprawdzenia jego integralności lub potwierdzenia tożsamości nadawcy. Pozwala on zlokalizować SA, które określa:
Każdy generowany w urządzeniu pakiet musi być konstruowany zgodnie z przyjętą wcześniej polityką bezpieczeństwa. Zalecenia lETF definiują dwie bazy danych, w których przechowywane są informacje na temat sposobu traktowania wszystkich pakietów lP:
Zalecenia nie definiują budowy tych baz, wskazują jednak na konieczność implementowania ich dla każdego interfejsu sieciowego osobno (jeśli urządzenie posiada więcej niż jeden interfejs) i wskazują ogólne założenia, jakie powinny być przez nie spełnione.
Baza SPD musi określać sposób traktowania każdego pakietu lP - czy należy go odrzucić, przepuścić omijając mechanizm lPSec czy zastosować ochronę lPSec. W tym trzecim przypadku baza SPD powinna zawierać informacje o usługach bezpieczeństwa, jakie tego pakietu dotyczą (protokoły, algorytmy itp.). SPD musi posiadać interfejs zarządzający, umożliwiający tworzenie, modyfikację i usuwanie rekordów z bazy oraz pola służące do selekcji rekordów (pola selekcyjne).
Baza SAD jest powiązana z SPD dla ruchu wychodzącego - rekord SAD jest wyznaczany poprzez rekord SPD. W przypadku ruchu przychodzącego rekordy SAD identyfikowane są przez adres IP przeznaczenia, typ protokołu IPSec i SPI. Rekordy SAD tworzone są w chwili zestawiania połączenia bezpieczeństwa (SA) i zawierają parametry wynegocjowane dla tego połączenia:
Tryb transportowy: jest charakterystyczny dla bezpośrednich połączeń komputer - komputer. Polega na dodaniu za nagłówkiem IP (IPv4), a przed nagłówkiem warstwy transportowej lub za podstawowym nagłówkiem IP (IPv6) nagłówka protokołu bezpieczeństwa (AH lub ESP). Nagłówek IP nie jest więc ukrywany. Z tego powodu można go stosować tylko do transmisji w sieciach LAN (w WAN - problemy z fragmentacją i routingiem). Tryb transportowy stosuje się do komunikacji między komputerami i komunikacji komputerów z bramkami IPSec. W pakiecie szyfrowane są tylko dane. Oryginalny nagłówek IP pozostaje niezmieniony, ale może być podpisany. Zaletą tego rozwiązania jest to, że do każdego pakietu dodawanych jest tylko kilka bajtów. Tryb ten umożliwia urządzeniom sieci publicznej określanie adresu źródłowego i docelowego każdego pakietu. Pozostawienie nieszyfrowanego nagłówka umożliwia obcym prowadzenie analizy ruchu pomiędzy węzłami. Przesyłane dane mogą być jednak szyfrowane.
Tryb tunelowy: jest charakterystyczny dla połączeń sieć-sieć. Oryginalny datagram IP jest w całości szyfrowany stając się zawartością w nowym pakiecie IP. Funkcje szyfrowania, deszyfrowania, sprawdzania integralności i uwierzytelnienia realizują bramy (gateway) rozpoznające protokół IPSec. Źródłowa stacja kliencka wysyła pakiety do sieci odległej w takiej samej (niezaszyfrowanej) postaci jak do innych hostów swojej sieci lokalnej. Całą pracę związaną z zapewnieniem bezpiecznego przesyłania danych wykonują bramy na obu końcach zestawionego tunelu. Główną zaletą tego rozwiązania jest fakt, że systemy docelowe nie muszą być modyfikowane aby korzystać z IPSec. Ten tryb uniemożliwia analizę ruchu. Ukrywane jest prawdziwe źródło i miejsce przeznaczenia pakietu. Jedynym nie szyfrowanym (ale podpisywanym) elementem pakietu jest jego zewnętrzny nagłówek IP. Z zewnątrz możliwe jest więc określenie jedynie końców tunelu.
lPSec zapewnia mechanizmy manualnej i automatycznej wymiany kluczy. Pierwszy z nich polega na wpisywaniu przez administratora wszystkich kluczy używanych w zabezpieczanych połączeniach. W praktyce jest on używany tylko w małych, statycznych środowiskach. Nie jest to rozwiązanie skalowalne. Drugi umożliwia tworzenie większych rozwiązań i jest dobrze skalowalny. Umożliwia implementację wielu różnych systemów dystrybucji klucza. Negocjacjom podlegają wymagania odnośnie poziomów zabezpieczeń, które będą stosowane przez obie strony:
Podstawowe protokoły negocjacji i dystrybucji:
IETF zaleca system IKE (Internet Key Exchange). W protokole IKE budowa połączenia przebiega w dwóch etapach. Najpierw ustalana jest tożsamość węzłów i budowany jest bezpieczny, uwierzytelniony tunel między dwoma hostami, a później następuje negocjowanie SA. Uwierzytelnienie w tym procesie może być realizowane przez systemy takie jak Kerberos, klucze preinstalowane lub certyfikaty. Okresowo realizowana może być renegocjacja parametrów połączenia.
następny punkt » |