Nic w certyfikacie ani adresie nie wyjaśnia, dlaczego iPhone, który w zeszłym roku łączył się z strongSwan, w tym roku zawodzi. Nic w adresie, wstępnie udostępnionym kluczu ani tożsamości klienta nie musiało się zmienić. Zmieniła się lista transformacji, o których wbudowany klient telefonu jest gotów negocjować, a gdy ta lista przestaje pokrywać się z listą serwera, wymiana kończy się, zanim ktokolwiek sprawdzi tożsamość.

Wiersz logu, który to rozstrzyga

Zwiększ poziom logowania dla tego połączenia i znajdź dwa wpisy, które rozstrzygają wynik: co zaproponował telefon i co wybrał serwer. Jeśli log kończy się bez wybranej propozycji i zgłasza, że nic nie pasowało, uwierzytelniania w ogóle nie próbowano. Nowy certyfikat i nowe hasło nic w tym miejscu nie zmieniają, bo oba są zużywane na późniejszym etapie. Żadne z nich nie może wpłynąć na wynik ustalony przed sprawdzeniem tożsamości.

Rozdziel oba kształty awarii, zanim cokolwiek zmienisz. Żadna zmiana transformacji nie uratuje odrzuconych danych logowania, a żadna poprawka danych nie uratuje odrzuconej transformacji. Wpis w logu, który nazywa wybraną propozycję, mówi, w którym z dwóch przypadków jesteś. Bez tego wpisu zgadujesz.

Wybrany wiersz nazywa propozycję przez jej zestaw transformacji, a nie przez przyjazną etykietę. Porównaj pola szyfrowania, integralności i grupy w tym wierszu z listą wysłaną przez telefon, bo niezgodność w choćby jednym polu wystarcza do przegranej.

Co zmieniło się w telefonie

Jedno wydanie iOS przycięło algorytmy, których jego klient jest gotów używać. Słabe skróty integralności, małe grupy Diffie-Hellman i propozycje wymieniające najpierw stare opcje przestały być akceptowalne.

Dłuższe listy nie są tu bezpieczniejsze. Wybór podąża za zaakceptowanym zbiorem telefonu i jego własną kolejnością preferencji, więc serwer ogłaszający szeroki katalog nadal może przegrać negocjację, gdy nowoczesne wpisy nie są tymi wybranymi. Preferuj krótką listę z nowoczesnymi wpisami na początku. Długa lista zaczynająca się od starych opcji zaprasza dokładnie tę awarię, której próbujesz uniknąć. Zaakceptowany zbiór to zewnętrzne ograniczenie, które przesuwa się przy każdej aktualizacji klienta, więc konfiguracja, która działała wczoraj, jest dowodem o wczoraj.

Jedna para, która nadal negocjuje

Dla obecnych telefonów wystarcza jedna nowoczesna kombinacja. Jedna negocjująca para wygląda tak:

ike=aes256-sha2_256-modp2048
esp=aes256-sha2_256

Wiersz ike niesie szyfrowanie, integralność i grupę Diffie-Hellman używane w czasie wymiany kluczy. Wiersz esp obejmuje tylko kanał danych, bo grupa została ustalona, zanim zaczął obowiązywać. Przeładuj połączenie lub zrestartuj demona, a następnie połącz telefon ponownie. Zachowaj tę wartość grupy tylko wtedy, gdy każdy obsługiwany przez ciebie klient ją jeszcze akceptuje, i nie rozszerzaj propozycji dla wszystkich tylko dlatego, że jeden stary partner potrzebuje więcej.

Trzy miejsca do naprawy, jedno zwykle jest zamknięte

  • Jedna nowoczesna propozycja dla każdego partnera. Słuszne, gdy wszyscy klienci to obecne telefony i komputery. Usuwa stare transformacje, zamiast negocjować wokół nich.
  • Druga definicja połączenia dla klientów Apple. Utrzymuje jednego starego partnera przy życiu i daje telefonowi propozycję, którą akceptuje. Kosztuje dodatkowy blok połączenia i czyni wyjątek widocznym.
  • Zmiana klienta. Rzadko dla ciebie otwarta: gdy system zarządzania lub aplikacja dostarcza profil, nie ma edytora propozycji, którego można dotknąć, a wbudowany klient żadnego nie udostępnia.

Wybierz drugą opcję, gdy urządzenia poza twoją kontrolą nie można zaktualizować. Wybierz pierwszą, gdy możesz wycofać starego partnera i wolisz nieść jedną politykę.

Tak czy inaczej wybór jest widoczny w konfiguracji i o to chodzi. Cichy powrót, który negocjuje w dół do starej transformacji, jest gorszy niż jawny blok, bo żaden przegląd nigdy go nie ujawni.

Udowodnij, potem zapisz

Połącz się ponownie i sprawdź na serwerze trzy osobne fakty: wybrano propozycję, połączenie pokazuje się jako ustanowione, a klient otrzymał adres. Ustanowiony uścisk dłoni bez adresu zdalnego wskazuje na pulę lub selektory ruchu i należy do osobnej zmiany. Traktowanie obu razem sprawia, że rozwiązana negocjacja wygląda na nierozwiązaną.

Zapisz zestaw transformacji, który został zaakceptowany, kiedy go zmieniłeś i którą kompilację klienta zweryfikowałeś. Następna aktualizacja może znów przesunąć wymaganie, a wartości, które działały, to pierwsza rzecz, którą chcesz mieć obok nowych.

Powiązane artykuły