IKE (Internet Key Exchange)
Przed zestawieniem tunelu IPSec konieczne jest ustalenie związków bezpieczeństwa (Security Association). Może być to realizowane ręcznie albo przy użyciu protokołu IKE. IKE posiada dwie wersje (IKEv1 oraz IKEv2). W tym wpisie będę odwoływał się do wersji IKEv1. Wszystkie informacje o IKE można znaleźć w poniższych RFC:
https://www.ietf.org/rfc/rfc5996.txt
https://www.ietf.org/rfc/rfc2409.txt
Protokół IKE bazuje na algorytmie Diffiego-Hellmana, który pozwala w bezpieczny sposób wyznaczyć bezpieczny klucz sesji.
Nawiązanie bezpiecznej sesji IKE składa się z z dwóch faz.
- faza 1 – ISAKMP phase 1 w trakcie której tworzy się IKE SA
- faza 2 – w trakcie której tworzy się IPSEC SA
W fazie 1 następuje uwierzytelnienie stron komunikujących się między sobą, wybór algorytmów uwierzytelniania, ochrony poufności, integralności, sposób wyboru klucza sesji, ustalenie klucza sesji itp. Wynikiem tej fazy jest ISAKMP SA – security association, które służy dalszej ochronie komunikacji odbywającej się w fazie 2. Utworzone w fazie pierwszej SA jest dwukierunkowe. Standardowo kanał wymiany kluczy działa na porcie UDP/500. Faza 1 może być przeprowadzana w jednym z dwóch trybów:
W trybie main mode przy preshared keys wymienianych jest 6 wiadomości pomiędzy stronami do utworzenia IKE SA. W trybie aggressive mode IKE SA jest tworzone po 3 wiadomościach.