Ponowna wymiana klucza, ponowne połączenie czy ponowna autoryzacja: czego potrzebujesz?
Ponowna wymiana klucza zmienia klucze sesji, ponowne połączenie odbudowuje połączenie, a ponowna autoryzacja powtarza weryfikację tożsamości. Mylenie ich prowadzi do niewłaściwej poprawki.
Sesja działająca od godzin nie zachowa tych samych kluczy na zawsze i jest to zamierzone. Trzy różne zdarzenia nazywa się rotacją kluczy: nowy materiał sesji w ramach istniejącej asocjacji, pełna przebudowa połączenia i powtórzenie weryfikacji tożsamości. Każde ma inny wyzwalacz, inny koszt i inny podpis awarii. Wybierzesz niewłaściwe, a poprawka albo nic nie zrobi, albo bez powodu położy tunel.
Decyzja zależy od tego, która warstwa faktycznie wygasła.
Trzy operacje nazywane rotacją
Ponowna wymiana klucza tworzy świeże klucze ruchu w ramach istniejącej relacji sterowania, używając mechanizmu zdefiniowanego przez protokół. IKEv2 robi to nową podrzędną asocjacją bezpieczeństwa, TLS 1.3 komunikatem aktualizacji klucza, a WireGuard nowym uściskiem dłoni po osiągnięciu limitów czasu lub komunikatów. Adresy tunelu i uwierzytelniona tożsamość pozostają tam, gdzie były.
Ponowne połączenie odrzuca połączenie i buduje je od nowa od początku, co powtarza przydzielanie adresów, instalację tras i wszelkie negocjacje pierwszej próby.
Ponowna autoryzacja powtarza sam dowód tożsamości, który może obejmować dane logowania, certyfikat lub drugi czynnik. Może odbywać się z ponownym połączeniem lub bez niego, zależnie od produktu.
Co użytkownicy zauważają przy odnowieniu
Ponowna wymiana klucza powinna być prawie niewidoczna. Identyfikatory asocjacji się zmieniają, liczniki mogą się resetować, a aplikacje zachowują swoje gniazda; krótka pauza w jednym kierunku jest normalna podczas wymiany. Nowy identyfikator na liście stanu nie jest dowodem usterki. Linia dziennika po wymianie mówi, czy została ukończona.
Rzeczywiste zerwanie przy odnowieniu wskazuje konkretne miejsce. Niezgodność propozycji, wygasłe dane logowania lub zmiana ścieżki dają każda inną linię dziennika, i tylko jeden z nich naprawia się przez dostrojenie czasów życia.
Gdzie trzy operacje rozchodzą się w praktyce
Jeśli wygasł tylko materiał klucza, wymień klucz. Jeśli zmienił się adres peera, trasa lub powiązanie NAT i pakiety już nie docierają, połącz się ponownie. Jeśli organizacja wymaga okresowej weryfikacji tożsamości, to ponowna autoryzacja i żadne dostrajanie czasów życia jej nie zastąpi.
Wartości domyślne protokołów zwykle zawierają właściwą odpowiedź. WireGuard wymienia klucze po progu czasu i objętości danych bez działania użytkownika; czasy życia IKEv2 są negocjowane dla każdej asocjacji podrzędnej; tunele oparte na TLS rotują klucze w istniejącej sesji. Podnoszenie czasów życia, by uniknąć powtarzającego się błędu, odkłada awarię i wydłuża ekspozycję, jeśli klucz zostanie przejęty.
Jedno zastrzeżenie jest ważne dla długich sesji: sama częstotliwość nie tworzy tajności forward. Ta właściwość zależy od tego, jak klucze sesji wiążą się z długoterminowymi sekretami i czy stare klucze są niszczone, co jest kwestią projektu i implementacji, a nie ustawienia.
Wybierz wartości domyślne, potem zapisz etap
Zachowaj wartości domyślne dostawcy, chyba że udokumentowane wymaganie mówi inaczej, a jeśli w ogóle zmieniasz czasy życia, zmień je po obu stronach. Następnie zapisz, do którego etapu doszło każde zdarzenie, aby następny przypadek można było sprawdzić względem tego samego punktu uścisku dłoni.
swanctl --list-sas ip xfrm state | grep -E 'proto|replay-window' wg show journalctl -u strongswan --since '1 hour ago' | grep -i -E 'rekey|rekeyed|child'
Po poprawce wykonaj kontrolowane odnowienie i wyślij świeży ruch aplikacji przez nową asocjację. Tunel, który zgłasza ustanowienie, ale nic nie przekazuje, to awaria, dla której istnieje ta kontrola.