Chronione pakiety nie wygasają kryptograficznie, więc pakiet ważny pięć minut temu jest ważny nadal, ponieważ szyfrowanie i ochrona integralności nie mówią nic o tym, kiedy powstały bajty. Atakujący, który potrafi przechwycić i ponownie wysłać ruch, nie musi łamać szyfru. Dlatego każdy poważny protokół tunelowy niesie stan sekwencji obok swoich kluczy.

Mechanizm jest niewielki, a jego tryby awarii łatwo pomylić z utratą pakietów.

Ważny szyfrogram to nie świeży szyfrogram

Uwierzytelnienie odpowiada na jedno pytanie: czy te bajty przyszły niezmienione od posiadacza klucza. Nie odpowiada na pytanie, czy odbiorca widzi je po raz pierwszy. Odtworzony pakiet bezbłędnie przechodzi pierwszy test, i właśnie dlatego sama kontrola integralności nie może powstrzymać odtworzenia i dlatego protokół potrzebuje drugiej reguły dotyczącej akceptacji. Odbiorca, który tylko uwierzytelnia, nie ma obrony przed atakującym dysponującym nagraniem.

Ta reguła jest tania we wdrożeniu i tania w sformułowaniu: przyjmij dany chroniony pakiet raz, pod danym kluczem. Wszystko inne w tej dziedzinie wynika z tego, jak implementacja śledzi ten jeden raz.

Odczytanie odrzucenia z powodu odtworzenia jako błędu odszyfrowania kieruje cię do całkowicie niewłaściwego podsystemu.

Numer sekwencji i okno

IPsec ESP niesie numer sekwencji, a odbiorca utrzymuje okno przesuwne ostatnio zaakceptowanych wartości, przy czym specyfikacja ESP opisuje domyślny rozmiar okna i opcję jego rozszerzenia. WireGuard idzie inną drogą, z licznikiem na klucz i jawną kontrolą względem niego. Żadna z konstrukcji nie zakłada, że pakiety przychodzą w kolejności, bo rzeczywiste sieci je przestawiają. Obie tolerują przestawianie, a żadna nie toleruje powtórzenia.

To okno umożliwia tę tolerancję. Pakiet nieco za najwyższą zaobserwowaną wartością nadal może zostać przyjęty, jeśli nie został przyjęty wcześniej; pakiet znacznie dalej, albo taki, którego miejsce jest już oznaczone, jest odrzucany. Zwiększ okno, a tolerujesz więcej przestawiania kosztem większego stanu na asocjację.

Liczniki diagnostyczne pokazują, w którym przypadku jesteś. Odrzucenia z powodu odtworzenia zwiększają konkretny licznik, a nie ogólny błąd, a odczytanie tego licznika to pierwsza użyteczna obserwacja.

nstat -az | grep -i XfrmIn
ip -s xfrm state | head -n 30
wg show wg0 transfer

Stan należy do klucza, nie do hosta

Stan licznika jest powiązany z asocjacją bezpieczeństwa lub epoką klucza, więc zmiana klucza tworzy świeży kontekst i własną przestrzeń sekwencji. Wyczyszczenie licznika bez wymiany klucza albo ponowne użycie asocjacji po ręcznym resecie łamie założenie, na którym opiera się okno odbiorcy. Dlatego istnieje wymiana kluczy sterowana protokołem, a nie przycisk resetu widoczny dla operatora.

Gdy tunel zachowuje się źle po ręcznej interwencji, zapytaj, czy interwencja dotknęła stanu sekwencji. Konfiguracja, która wygląda identycznie, może zachowywać się inaczej, bo odziedziczony stan nie jest tym, którego oczekuje.

Zdiagnozuj przyczynę, zanim cokolwiek wyłączysz

Utrata, przestawianie, zduplikowany ruch i defekt implementacji objawiają się wszystkie jako retransmisje, a tylko jedna z nich jest problemem odtworzenia. Wyłączenie kontroli, aby uciszyć szum, usuwa właściwość, na której polegałeś, i utrudnia znalezienie pierwotnej przyczyny, bo teraz retransmisje nie mają żadnego wyjaśnienia.

Zbieraj ograniczone dowody: identyfikatory asocjacji, numery sekwencji i liczniki, bez ładunków. To wystarczy, by odróżnić duplikat od przestawionego przybycia, i nie zamienia twojego pliku diagnostycznego w kopię ruchu użytkownika.

Czego kontrola nie obiecuje

Ochrona przed odtworzeniem jest właściwością przetwarzania pakietów w obrębie jednego protokołu. Nie oznacza, że operator nie prowadzi logów, że strona nie może rozpoznać konta albo że sesja jest anonimowa. To odrębne pytania o odrębne systemy, a solidna konstrukcja przeciw odtwarzaniu nie odpowiada na żadne z nich.

Utrzymywane oprogramowanie z obsługiwanymi ustawieniami to praktyczna kontrola dostępna dla użytkownika. Pakietem zajmuje się protokół; wszystko inne pozostaje decyzją operacyjną.

Powiązane artykuły