Zanim możliwa będzie wymiana zabezpieczonych danych, między dwoma komputerami musi zostać wynegocjowany rodzaj kontraktu. W tym kontrakcie, określanym jako skojarzenie zabezpieczeń (SA, security association), oba komputery uzgadniają, w jaki sposób wymieniać i chronić informacje.

Klucze są tajnymi kodami lub liczbami wymaganymi do odczytania, zmodyfikowania lub zweryfikowania zabezpieczonych danych. Klucze w połączeniu z algorytmami (procesami matematycznymi) służą do zabezpieczania danych. W połączeniach IPsec występują dwie fazy (tryby) wykorzystujące klucze. Tryb główny występuje jako pierwszy i generuje współużytkowany klucz główny, który jest używany przez obie strony do bezpiecznej wymiany informacji o kluczu. W trybie szybkim klucz główny jest używany do zabezpieczenia ustanawiania jednego lub więcej kluczy sesji używanych do zapewnienia integralności danych lub szyfrowania.

System Windows automatycznie obsługuje generowanie kluczy i ma zaimplementowane następujące właściwości kluczy służące poprawie ochrony:

Ważne

Przystawka Zasady zabezpieczeń IP może być użyta do tworzenia zasad IPsec, które można stosować na komputerach z systemem Windows Vista i nowszymi wersjami systemu Windows, ale w przystawce tej nie są używane nowe algorytmy zabezpieczeń i inne nowe funkcje dostępne w tych nowszych wersjach systemu Windows. Aby utworzyć zasady IPsec dla tych komputerów, należy użyć przystawki Zapora systemu Windows z zaawansowanymi zabezpieczeniami. Przy użyciu przystawki Zapora systemu Windows z zaawansowanymi zabezpieczeniami nie można utworzyć zasad, które można zastosować do wcześniejszych wersji systemu Windows.

Dynamiczne generowanie kluczy

W protokole IPsec do sterowania częstotliwością generowania nowego klucza podczas komunikacji wykorzystuje się metodę określaną jako dynamiczne generowanie kluczy. Komunikacja jest wysyłana w blokach, a każdy blok danych jest zabezpieczany przy użyciu innego klucza. Uniemożliwia to intruzowi, który odczytał część komunikacji i odpowiadające jej klucze sesji, odczytanie pozostałej części komunikacji. Negocjowanie zabezpieczeń na żądanie i automatyczne zarządzanie kluczami jest realizowane przy użyciu usługi IKE (Internet Key Exchange) zdefiniowanej w specyfikacji RFC 2409.

Protokół IPsec pozwala sterować tym, jak często generowany jest nowy klucz. Jeśli nie skonfigurowano żadnych wartości, klucze są generowane automatycznie w domyślnych odstępach czasu.

Długości kluczy

Za każdym razem, gdy długość klucza zwiększa się o jeden bit, liczba możliwych kluczy podwaja się, co w sposób wykładniczy utrudnia złamanie klucza. Protokół IPsec oferuje wiele algorytmów tworzenia krótkich i długich kluczy.

Generowanie materiału klucza: algorytm Diffie'ego-Hellmana

Aby komunikacja zabezpieczona była możliwa, dwa komputery muszą mieć możliwość uzyskania klucza współużytkowanego (klucza trybu szybkiego lub klucza sesji) bez przesyłania tego klucza przez sieć i narażania go na ujawnienie.

Algorytm Diffie'ego-Hellmana (DH) jest jednym z najstarszych i najbezpieczniejszych algorytmów używanych do wymiany kluczy. Dwie strony publicznie wymieniają informacje służące do wygenerowania klucza, a system Windows dodatkowo chroni te informacje podpisem funkcji skrótu. Strony nigdy nie wymieniają rzeczywistego klucza, ale po wymianie materiału klucza każda z nich jest w stanie wygenerować identyczny klucz współużytkowany.

Materiał klucza DH wymieniany przez dwie strony może być oparty na 768, 1024 lub 2048 bitach materiału klucza, nazywanego grupą DH. Siła grupy DH jest proporcjonalna do siły klucza wyliczonego z wymiany DH. Silne grupy DH w połączeniu z długimi kluczami utrudniają złamanie klucza, gdyż wymaga to bardziej złożonych obliczeń.

Uwaga

W oknie dialogowym Algorytmy zabezpieczeń IKE 768 bitów odpowiada ustawieniu Niskie (1), a 1024 bity odpowiadają ustawieniu Średnie (2).

Protokół IPsec używa algorytmu DH w celu dostarczenia materiału dla wszystkich pozostałych kluczy szyfrowania. Algorytm DH nie zapewnia uwierzytelniania. W implementacji protokołu IPsec w systemie Microsoft Windows tożsamości są uwierzytelniane po wymianie DH, zapewniając ochronę przed atakami typu „pośrednik”.

Ochrona kluczy

Poniższe funkcje określają bazowe liczby pierwsze (materiał klucza) oraz siłę klucza głównego i klucza sesji.

Okresy istnienia klucza

Od okresów istnienia klucza zależy to, kiedy generowany jest nowy klucz. Nie określają one sposobu generowania klucza. Okres istnienia klucza pozwala na wymuszenie ponownego wygenerowania klucza po upłynięciu określonego czasu. Jeśli na przykład komunikacja trwa 10 000 sekund i określony jest okres istnienia klucza równy 1 000 sekund, w trakcie całej komunikacji generowanych jest 10 kluczy. Zapewnia to, że nawet jeśli osoba nieupoważniona odcyfruje część komunikacji, pozostała jej część jest chroniona. Okres istnienia klucza można określić zarówno dla klucza głównego, jak i klucza sesji. Ilekroć upłynie okres istnienia klucza, skojarzenie zabezpieczeń jest negocjowane ponownie. Ponadto klucz jest odświeżany lub generowany ponownie. Ilość danych przetwarzanych przez jeden klucz nie powinna przekroczyć 100 megabajtów (MB).

Limit odświeżania klucza sesji

Użycie limitu odświeżania klucza sesji trybu szybkiego jest stosowane, ponieważ powtarzające się generowanie klucza na podstawie klucza sesji trybu szybkiego zwiększa ryzyko złamania współużytkowanego hasła algorytmu Diffie'go-Hellmana.

Załóżmy na przykład, że Alicja używająca komputera A wysyła wiadomość do Bartka używającego komputera B, a po kilku minutach wysyła do niego drugą wiadomość. Ten sam materiał klucza sesji może zostać użyty ponownie, ponieważ skojarzenie zabezpieczeń zostało ustanowione niedawno. Aby nie powtórzyło się to zbyt wiele razy, można ustawić mniejszą wartość dla limitu odświeżania klucza sesji.

Jeśli włączone jest doskonałe utajnienie przekazywania (PFS, perfect forward secrecy) klucza głównego, limit odświeżania klucza sesji trybu szybkiego nie jest używany. Ustawienie limitu odświeżania klucza sesji na wartość 1 jest równoważne włączeniu doskonałego utajnienia przekazywania klucza głównego. Jeśli ustawiony zostanie zarówno okres istnienia klucza głównego trybu głównego, jak i limit odświeżania klucza sesji trybu szybkiego, limit osiągnięty jako pierwszy spowoduje ponowne wygenerowanie kluczy. Domyślnie zasady IPsec nie określają limitu odświeżania klucza sesji.

Grupy Diffie'ego-Hellmana

Grupy Diffie'ego-Hellmana (DH) są używane do określenia długości bazowych liczb pierwszych (materiału klucza) dla wymiany DH. Siła każdego klucza uzyskanego z wymiany DH zależy częściowo od siły grupy DH, na której oparte są te liczby pierwsze.

Każda grupa DH określa długość materiału klucza, który ma być użyty. Grupa 1 ochrania 768 bitów materiału klucza, grupa 2 - 1024 bity, a grupa 3 - 2048 bitów. Jeśli używana jest większa grupa, klucz uzyskany z wymiany DH jest większy i trudniejszy do złamania przez intruza.

Na podstawie ustawień skonfigurowanych w oknie dialogowym Algorytmy zabezpieczeń IKE usługa IKE negocjuje, która grupa ma zostać użyta, zapewniając, że negocjacje nie zakończą się niepowodzeniem z powodu niedopasowanych grup DH między dwoma komputerami.

Jeśli włączone jest doskonałe utajnienie przekazywania klucza sesji, nowy klucz DH jest negocjowany podczas pierwszej negocjacji skojarzenia zabezpieczeń trybu szybkiego. Ten nowy klucz DH usuwa zależność klucza sesji od wymiany DH, która jest przeprowadzana dla klucza głównego.

Jeśli komputer inicjujący używa doskonałego utajnienia przekazywania klucza sesji, nie jest wymagane, aby komputer odbiorczy również używał doskonałego utajnienia przekazywania klucza sesji. Jeśli jednak komputer inicjujący nie używa doskonałego utajnienia przekazywania klucza sesji, a komputer odbiorczy - tak, negocjacja kończy się niepowodzeniem.

Grupa DH jest taka sama zarówno dla negocjacji skojarzenia zabezpieczeń trybu głównego, jak i trybu szybkiego. Gdy jest włączone doskonałe utajnienie przekazywania klucza sesji, to mimo tego, że grupa DH jest ustawiana w trakcie negocjacji skojarzenia zabezpieczeń trybu głównego, wpływa ona na każde generowanie klucza podczas ustanawiania klucza sesji trybu szybkiego.

Doskonałe utajnienie przekazywania

W przeciwieństwie do okresów istnienia klucza doskonałe utajnienie przekazywania klucza (PFS, perfect forward secrecy) określa sposób generowania klucza, a nie to, kiedy jest generowany. W szczególności doskonałe utajnienie przekazywania zapewnia, że złamanie jednego klucza pozwala tylko na dostęp do danych chronionych przez ten klucz, a niekoniecznie do całej komunikacji. Aby to osiągnąć, doskonałe utajnienie przekazywania zapewnia, że klucz używany do ochrony transmisji (w jakimkolwiek trybie) nie może być użyty do wygenerowania dodatkowych kluczy. Ponadto jeśli klucz został uzyskany z określonego materiału klucza, materiału tego nie można użyć do wygenerowania innych kluczy.

Doskonałe utajnienie przekazywania klucza głównego trybu głównego wymaga ponownego uwierzytelniania i wiąże się z dużym użyciem zasobów. W przypadku włączenia tej opcji usługa IKE musi ponownie uwierzytelniać tożsamości, zwiększając obciążenie kontrolerów domeny, jeśli do uwierzytelniania używany jest protokół Kerberos v5. Dla każdej negocjacji w trybie szybkim wymagana jest nowa negocjacja w trybie głównym.

Doskonałe utajnienie przekazywania klucza sesji trybu szybkiego może być używane bez ponownego uwierzytelniania i wiąże się z mniejszym użyciem zasobów. Doskonałe utajnienie przekazywania klucza sesji prowadzi do nowej wymiany DH mającej na celu wygenerowanie nowego materiału klucza. Wymaga ono tylko czterech komunikatów i nie wymaga uwierzytelniania.

Doskonałe utajnienie przekazywania nie musi być włączone na obu komputerach, ponieważ nie jest ono częścią negocjacji skojarzenia zabezpieczeń. Jeśli komputer odpowiadający wymaga doskonałego utajnienia przekazywania, a skojarzenie zabezpieczeń trybu szybkiego komputera nadającego wygasło, komputer odpowiadający po prostu odrzuca komunikację z komputera nadającego i wymaga nowej negocjacji. Komputer nadający powoduje wygaśnięcie skojarzenia zabezpieczeń trybu głównego i ponownie podejmuje negocjacje. Doskonałe utajnienie przekazywania można ustawić niezależnie dla klucza głównego (trybu głównego) i klucza sesji (trybu szybkiego).

Wymiana kluczy

Zanim możliwa będzie wymiana zabezpieczonych danych, między dwoma komputerami musi zostać wynegocjowany rodzaj kontraktu. W tym kontrakcie (skojarzeniu zabezpieczeń) oba komputery uzgadniają, w jaki sposób będą wymieniać i chronić informacje.

Aby umożliwić ustanowienie tego skojarzenia między dwoma komputerami, grupa robocza IETF (Internet Engineering Task Force) opracowała metodę negocjowania skojarzenia zabezpieczeń i wymiany kluczy o nazwie IKE (Internet Key Exchange), która:

  • Centralizuje zarządzanie skojarzeniami zabezpieczeń, skracając czas połączenia.

  • Generuje współużytkowane klucze tajne, które są używane do zabezpieczenia informacji, i zarządza tymi kluczami.

Ten proces chroni nie tylko komunikację między komputerami, ale również komputery zdalne, które żądają bezpiecznego dostępu do sieci firmy. Ponadto jest on przeprowadzany, ilekroć negocjacje prowadzi nie komputer docelowy, a brama zabezpieczeń.

Definicja skojarzenia zabezpieczeń

Skojarzenie zabezpieczeń (SA) jest kombinacją wynegocjowanych kluczy, protokołu zabezpieczeń i indeksu parametrów zabezpieczeń (SPI, security parameters index), która określa zabezpieczenia używane do ochrony komunikacji między komputerem nadawczym a odbiorczym. Indeks SPI jest unikatowym identyfikatorem w skojarzeniu zabezpieczeń używanym do odróżnienia wielu skojarzeń zabezpieczeń istniejących na komputerze odbiorczym. Wiele skojarzeń może na przykład istnieć, jeśli dany komputer w sposób zabezpieczony komunikuje się z wieloma komputerami jednocześnie. Ma to miejsce zazwyczaj wtedy, gdy komputer jest serwerem plików lub serwerem dostępu zdalnego, który obsługuje wielu klientów. W takich sytuacjach komputer odbiorczy używa indeksu SPI do określenia, które skojarzenie zabezpieczeń jest używane do przetwarzania pakietów przychodzących.

Skojarzenie zabezpieczeń trybu głównego

W celu zapewnienia pomyślnej i zabezpieczonej komunikacji usługa IKE przeprowadza operację dwufazową. W każdej z faz poufność i uwierzytelnianie są zapewnione przez użycie algorytmów szyfrowania i uwierzytelniania uzgodnionych przez oba komputery podczas negocjacji. Dzięki rozdzieleniu zadań na dwie fazy tworzenie kluczy może przebiegać bardzo szybko.

W trakcie pierwszej fazy dwa komputery ustanawiają zabezpieczony, uwierzytelniony kanał. Jest to nazywane skojarzeniem zabezpieczeń trybu głównego. Usługa IKE automatycznie zapewnia wymaganą ochronę tożsamości podczas tej wymiany.

Elementy negocjacji trybu głównego opisano w poniższych krokach.

  1. Negocjacja zasad. W ramach skojarzenia zabezpieczeń trybu głównego negocjowane są następujące cztery obowiązkowe parametry:

    • Algorytm szyfrowania (DES lub 3DES)

    • Algorytm wyznaczania wartości skrótu (MD5 lub SHA1)

    • Metoda uwierzytelniania (uwierzytelnianie przy użyciu protokołu Kerberos V5, certyfikatów lub klucza wstępnego)

    • Grupa Diffie'ego-Hellmana (DH) służąca do określenia bazowego materiału klucza. Dostępne grupy to 768 bitów - poziom niski (grupa 1), 1024 bity - poziom średni (grupa 2) lub 2048 bitów - poziom wysoki (grupa 3).

    • Jeśli do uwierzytelniania używane są certyfikaty lub klucze wstępne, tożsamość komputera jest chroniona. Jeśli jednak używany jest protokół Kerberos V5, tożsamość komputera nie jest zaszyfrowana, dopóki cały ładunek informacji o tożsamości nie zostanie zaszyfrowany w trakcie uwierzytelniania.

  2. Wymiana DH (wartości publicznych). Rzeczywiste klucze nigdy nie są wymieniane. Wymieniane są jedynie informacje wymagane przez algorytm ustalania klucza DH do wygenerowania współużytkowanego klucza tajnego. Po tej wymianie usługa IKE na każdym komputerze generuje klucz główny, który jest używany do ochrony uwierzytelniania.

  3. Uwierzytelnianie. Komputery próbują uwierzytelnić wymianę kluczy DH. Bez uwierzytelnienia wymiany kluczy DH komunikacja jest narażona na atak typu „pośrednik”. Jeśli to uwierzytelnienie nie powiedzie się, dalsza komunikacja jest niemożliwa. Do uwierzytelnienia tożsamości używany jest klucz główny w połączeniu z algorytmami i metodami negocjacji. Cały ładunek informacji o tożsamości (w tym typ tożsamości, port i protokół) jest mieszany i szyfrowany przy użyciu kluczy wygenerowanych podczas wymiany DH w kroku drugim. Niezależnie od tego, jaka metoda uwierzytelniania jest używana, ładunek informacji o tożsamości jest chroniony przed modyfikacją i interpretacją.

    Komputer nadawczy przedstawia komputerowi odbiorczemu ofertę potencjalnego skojarzenia zabezpieczeń. Komputer odbiorczy nie może zmodyfikować tej oferty. Jeśli zostanie ona zmodyfikowana, komputer inicjujący odrzuci wiadomość komputera odbiorczego. Komputer odbiorczy wysyła albo odpowiedź akceptującą ofertę, albo zawierającą oferty alternatywne.

    Dla komunikatów przesyłanych w tej fazie obowiązuje automatyczny cykl pięciu ponownych prób. Jeśli odpowiedź zostanie odebrana przed końcem tego cyklu, rozpoczyna się standardowy proces negocjowania skojarzenia zabezpieczeń. Jeśli zezwalają na to zasady IPsec, po krótkiej przerwie rozpoczyna się komunikacja niezabezpieczona. Takie zachowanie nazywa się powrotem do zwykłego tekstu. Nawet jeśli nastąpi powrót do zwykłego tekstu, próba wynegocjowania komunikacji zabezpieczonej jest ponawiana co 5 minut.

    Nie ma żadnego limitu liczby możliwych wymian informacji. Liczba ustanawianych skojarzeń zabezpieczeń jest ograniczona tylko zasobami systemowymi.

Skojarzenie zabezpieczeń trybu szybkiego

W tej fazie negocjowane są skojarzenia zabezpieczeń dla sterownika IPsec.

Elementy negocjacji trybu szybkiego opisano w poniższych krokach.

  1. Negocjacja zasad. Komputery komunikujące się za pośrednictwem protokołu IPsec wymieniają następujące informacje wymagane do zabezpieczenia transferu danych:

    • Protokół IPsec (AH lub ESP)

    • Algorytm wyznaczania wartości skrótu zapewniający integralność i uwierzytelnianie (MD5 lub SHA1)

    • Algorytm szyfrowania, jeśli jest konieczny (DES lub 3DES)

    Po osiągnięciu zgody ustanawiane są dwa skojarzenia zabezpieczeń: jedno dla komunikacji przychodzącej, a drugie dla komunikacji wychodzącej.

  2. Odświeżenie lub wymiana materiału klucza sesji. Usługa IKE odświeża materiał klucza i generowane są nowe, współużytkowane klucze w celu zapewnienia integralności, uwierzytelniania i szyfrowania (jeśli je wynegocjowano). Jeśli wymagane jest ponowne wygenerowanie kluczy, zachodzi albo druga wymiana DH (zgodnie z opisem negocjacji w trybie głównym), albo odświeżenie oryginalnego klucza DH.

  3. Przekazanie skojarzeń zabezpieczeń i kluczy wraz z indeksem SPI do sterownika IPsec. Druga negocjacja w trybie szybkim ustawień zabezpieczeń i materiału klucza (mająca na celu zabezpieczenie danych) jest chroniona przez skojarzenie zabezpieczeń trybu głównego. Podczas gdy pierwsza faza zapewnia ochronę tożsamości, druga faza trybu szybkiego zapewnia ochronę danych poprzez odświeżenie materiału klucza przed wysłaniem danych. Jeśli wymagane jest ponowne wygenerowanie kluczy, co oznacza, że włączono doskonałe utajnienie klucza głównego, usługa IKE może przystosować ładunek wymiany kluczy do dodatkowej wymiany DH. W przeciwnym razie usługa IKE odświeża materiał klucza z wymiany DH przeprowadzonej w trybie głównym.

    W trybie szybkim powstaje para skojarzeń zabezpieczeń, każde z własnym indeksem SPI i kluczem. Jedno skojarzenie zabezpieczeń jest używane dla komunikacji przychodzącej, a drugie dla komunikacji wychodzącej.

    Algorytm ponownych prób przesłania komunikatów jest podobny do procesu opisanego w sekcji dotyczącej negocjacji w trybie głównym. Jeśli jednak podczas drugiej lub kolejnej negocjacji tego samego skojarzenia zabezpieczeń trybu głównego z jakiegokolwiek powodu przekroczony zostanie limit czasu, podejmowana jest ponowna próba wynegocjowania skojarzenia zabezpieczeń trybu głównego. Jeśli komunikat w tej fazie zostanie odebrany bez ustanowionego skojarzenia zabezpieczeń trybu głównego, zostanie on odrzucony.

    Używanie jednego skojarzenia zabezpieczeń trybu głównego do wielu negocjacji skojarzeń zabezpieczeń trybu szybkiego przyspiesza proces negocjacji. Dopóki skojarzenie zabezpieczeń trybu głównego nie wygaśnie, ponowne negocjowanie i uwierzytelnianie nie jest konieczne. Liczbę możliwych do przeprowadzenia negocjacji skojarzeń zabezpieczeń trybu szybkiego określają ustawienia zasad IPsec.

    Uwaga

    Generowanie zbyt dużej liczby kluczy z tego samego skojarzenia zabezpieczeń trybu głównego może narazić współużytkowany klucz tajny na atak oparty na znanym tekście zwykłym. Jest to atak przy użyciu szperacza, w którym osoba nieupoważniona próbuje określić klucz szyfrowania na podstawie zaszyfrowanych danych przy użyciu znanego tekstu zwykłego.

Okresy istnienia skojarzeń zabezpieczeń

Skojarzenie zabezpieczeń trybu głównego jest buforowane, aby umożliwić wiele negocjacji skojarzeń zabezpieczeń trybu szybkiego (o ile nie jest włączone doskonałe utajnienie przekazywania klucza głównego). Gdy upłynie okres istnienia klucza dla klucza głównego lub klucza sesji, skojarzenie zabezpieczeń jest negocjowane ponownie. Ponadto klucz jest odświeżany lub generowany ponownie.

Gdy zostanie osiągnięty domyślny limit czasu dla skojarzenia zabezpieczeń trybu głównego albo upłynie okres istnienia klucza głównego lub klucza sesji, do komputera odpowiadającego wysyłany jest komunikat „usuń”. Ten komunikat usługi IKE monituje komputer odbiorczy o spowodowanie wygaśnięcia skojarzenia zabezpieczeń trybu głównego. Zapobiega to utworzeniu kolejnego skojarzenia zabezpieczeń trybu szybkiego z wygasłego skojarzenia zabezpieczeń trybu głównego. Usługa IKE nie unieważnia skojarzenia zabezpieczeń trybu szybkiego, ponieważ tylko sterownik protokołu IPsec zawiera liczbę sekund lub bajtów, która spowodowała osiągnięcie okresu istnienia klucza.

Ustawiając znacznie różniące się okresy istnienia dla klucza głównego i klucza sesji, należy zachować ostrożność. Na przykład ustawienie okresu istnienia klucza głównego trybu głównego na osiem godzin i klucza sesji trybu szybkiego na dwie godziny może spowodować, że skojarzenie zabezpieczeń trybu szybkiego będzie używane jeszcze przez prawie dwie godziny po wygaśnięciu skojarzenia zabezpieczeń trybu głównego. Zdarzy się tak, gdy skojarzenie zabezpieczeń trybu szybkiego zostanie wygenerowane tuż przed wygaśnięciem skojarzenia zabezpieczeń trybu głównego.