Powtórz atak - Replay attack

Atak odtwarzania (znany również jako atak odtwarzania ) jest postać sieci ataku w którym transmisja danych jest poprawny złośliwie lub wielokrotnym na zasadzie oszustwa lub opóźniony. Dokonuje tego inicjator lub przeciwnik, który przechwytuje dane i ponownie je przesyła, prawdopodobnie w ramach ataku polegającego na podszywaniu się przez podstawianie pakietów IP . To jedna z niższych wersji ataku typu man-in-the-middle . Ataki powtórkowe mają zwykle charakter pasywny.

Innym sposobem opisania takiego ataku jest: „atak na protokół bezpieczeństwa z wykorzystaniem powtórki wiadomości z innego kontekstu do zamierzonego (lub oryginalnego i oczekiwanego) kontekstu, w ten sposób oszukując uczciwego uczestnika (uczestników) do myślenia, że ​​pomyślnie ukończyli protokół działa."

Jak działa atak powtórki

Ilustracja powtórki ataku. Alicja (A) wysyła swoje zaszyfrowane hasło do Boba (B). Ewa (E) wącha hasz i odtwarza go.

Załóżmy, że Alicja chce udowodnić Bobowi swoją tożsamość. Bob prosi o jej hasło jako dowód tożsamości, który Alicja sumiennie dostarcza (prawdopodobnie po pewnej transformacji, takiej jak haszowanie (lub nawet solenie ) hasła); w międzyczasie Ewa podsłuchuje rozmowę i zachowuje hasło (lub skrót). Po zakończeniu wymiany Ewa (działająca jako Alicja) łączy się z Bobem; poproszona o dowód tożsamości, Ewa wysyła hasło (lub hash) Alicji odczytane z ostatniej sesji, którą Bob akceptuje, tym samym przyznając Ewie dostęp.

Zapobieganie i środki zaradcze

Atakom powtórkowym można zapobiec, oznaczając każdy zaszyfrowany komponent identyfikatorem sesji i numerem komponentu. Ta kombinacja rozwiązań nie wykorzystuje niczego, co jest od siebie współzależne. Ze względu na brak współzależności podatności jest mniej. Działa to, ponieważ dla każdego uruchomienia programu tworzony jest unikalny, losowy identyfikator sesji; w ten sposób poprzedni przebieg staje się trudniejszy do zreplikowania. W takim przypadku osoba atakująca nie byłaby w stanie wykonać powtórki, ponieważ przy nowym uruchomieniu zmieniłby się identyfikator sesji.

Identyfikatory sesji , znane również jako tokeny sesji, to jeden z mechanizmów, których można użyć, aby uniknąć ataków polegających na powtarzaniu. Sposób generowania identyfikatora sesji wygląda następująco.

  1. Bob wysyła jednorazowy token do Alicji, którego Alicja używa do przekształcenia hasła i wysłania wyniku do Boba. Na przykład użyje tokena do obliczenia funkcji skrótu tokenu sesji i dołączy go do używanego hasła.
  2. Po swojej stronie Bob wykonuje te same obliczenia z tokenem sesji.
  3. Tylko wtedy, gdy wartości Alicji i Boba pasują do siebie, logowanie się powiedzie.
  4. Załóżmy teraz, że osoba atakująca Eve przechwyciła tę wartość i próbuje użyć jej w innej sesji. Bob wysłałby inny token sesji, a kiedy Ewa odpowie swoją przechwyconą wartością, będzie ona inna niż obliczenia Boba, więc będzie wiedział, że to nie jest Alicja.

Tokeny sesji powinny być wybierane przez losowy proces (zazwyczaj stosowane są procesy pseudolosowe ). W przeciwnym razie Ewa może udawać Boba, prezentując żeton przewidywanej przyszłości i przekonać Alicję, by użyła tego żetonu w swojej transformacji. Ewa może następnie odtworzyć swoją odpowiedź w późniejszym czasie (kiedy wcześniej przewidziany token zostanie faktycznie przedstawiony przez Boba), a Bob zaakceptuje uwierzytelnienie .

Hasła jednorazowe są podobne do tokenów sesji, ponieważ hasło wygasa po użyciu lub po bardzo krótkim czasie. Mogą służyć do uwierzytelniania pojedynczych transakcji oprócz sesji. Można ich również użyć podczas procesu uwierzytelniania, aby pomóc w ustanowieniu zaufania między dwiema komunikującymi się ze sobą stronami.

Bob może również wysyłać jednorazy, ale powinien wtedy dołączyć kod uwierzytelniania wiadomości (MAC), który Alicja powinna sprawdzić.

Znacznik czasu to kolejny sposób na zapobieganie ponownemu atakowi. Synchronizację należy osiągnąć przy użyciu bezpiecznego protokołu. Na przykład Bob okresowo nadaje czas na swoim zegarze wraz z MAC. Kiedy Alicja chce wysłać Bobowi wiadomość, umieszcza w swojej wiadomości najlepsze oszacowanie czasu na jego zegarze, który jest również uwierzytelniony. Bob akceptuje tylko wiadomości, których sygnatura czasowa mieści się w rozsądnej tolerancji. Sygnatury czasowe są również implementowane podczas wzajemnego uwierzytelniania , kiedy zarówno Bob, jak i Alicja uwierzytelniają się nawzajem za pomocą unikalnych identyfikatorów sesji, aby zapobiec atakom typu powtórka. Zaletą tego schematu jest to, że Bob nie musi generować (pseudo-) liczb losowych, a Alicja nie musi prosić Boba o liczbę losową. W sieciach jednokierunkowych lub prawie jednokierunkowych może to być zaletą. Kompromis polega na tym, że powtarzanie ataków, jeśli są one wykonywane wystarczająco szybko, tj. w tym „rozsądnym” limicie, może się udać.

Środki zaradcze w określonych scenariuszach

Zapobieganie protokołowi Kerberos

Protokół Kerberos zawiera kilka środków zaradczych. W klasycznym przypadku ataku powtórkowego wiadomość jest przechwytywana przez przeciwnika, a następnie odtwarzana w późniejszym terminie w celu wywołania efektu. Na przykład, jeśli system bankowy byłby podatny na ten atak, komunikat powodujący transfer środków mógłby być odtwarzany w kółko, aby przelać więcej środków niż pierwotnie zamierzano. Jednak protokół Kerberos, zaimplementowany w Microsoft Windows Active Directory, obejmuje użycie schematu obejmującego znaczniki czasu, aby poważnie ograniczyć skuteczność ataków typu powtórka. Wiadomości, które przekroczyły „czas życia (TTL)” są uważane za stare i są odrzucane.

Zaproponowano ulepszenia, w tym zastosowanie schematu potrójnego hasła. Te trzy hasła są używane z serwerem uwierzytelniającym, serwerem przydzielającym bilety i TGS. Serwery te używają haseł do szyfrowania wiadomości z tajnymi kluczami między różnymi serwerami. Szyfrowania , który jest dostarczany przez te trzy klucze pomóc pomoc w zapobieganiu atakom przez powtórzenie.

Bezpieczny routing w sieciach ad hoc

Bezprzewodowe sieci ad hoc są również podatne na ataki typu powtórka. W takim przypadku system uwierzytelniania można ulepszyć i wzmocnić poprzez rozszerzenie protokołu AODV . Ta metoda poprawy bezpieczeństwa sieci Ad Hoc zwiększa bezpieczeństwo sieci przy niewielkim nakładzie. Gdyby występowały znaczne koszty ogólne, sieć byłaby narażona na ryzyko spowolnienia, a jej wydajność spadłaby. Utrzymując stosunkowo niskie koszty ogólne, sieć może utrzymać lepszą wydajność przy jednoczesnym zwiększeniu bezpieczeństwa.

Protokół uwierzytelniania typu Challenge-Handshake

Uwierzytelnianie i logowanie przez klientów korzystających z protokołu Point-to-Point (PPP) są podatne na powtarzanie ataków podczas korzystania z protokołu uwierzytelniania hasła (PAP) do walidacji swojej tożsamości, ponieważ klient uwierzytelniający wysyła swoją nazwę użytkownika i hasło w postaci „ zwykłego tekstu ”, a następnie serwer uwierzytelniający wysyła w odpowiedzi na to potwierdzenie; klient przechwytujący może zatem swobodnie odczytywać przesyłane dane i podszywać się pod każdego klienta i serwer, a także może przechowywać dane uwierzytelniające klienta w celu późniejszego podszywania się pod serwer. Challenge-Handshake Authentication Protocol (CHAP) zabezpiecza przed tego rodzaju atakiem polegającym na powtarzaniu podczas fazy uwierzytelniania, używając zamiast tego komunikatu „wyzwania” od wystawcy uwierzytelnienia, na który klient odpowiada wartością obliczoną na podstawie skrótu na podstawie wspólnego hasła (np. hasła klienta ), które strona uwierzytelniająca porównuje z własnymi obliczeniami wyzwania i współdzielonego klucza tajnego w celu uwierzytelnienia klienta. Opierając się na wspólnym sekretie, który sam nie został przesłany, a także na innych funkcjach, takich jak kontrolowane przez uwierzytelnianie powtarzanie wyzwań oraz zmiana identyfikatora i wartości wyzwań, CHAP zapewnia ograniczoną ochronę przed atakami typu powtórka.

Przykłady ze świata rzeczywistego podatności na powtarzające się ataki

Istnieje kilka rzeczywistych przykładów wykorzystania ataków typu powtórka oraz sposobów wykrywania i naprawienia problemów, aby zapobiec dalszym atakom.

Zdalny system bezkluczykowego dostępu do pojazdów

Wiele pojazdów na drodze używa zdalnego systemu bezkluczykowego lub breloka, dla wygody użytkownika. Nowoczesne systemy są odporne na proste ataki typu powtórka, ale są podatne na ataki z buforowanym powtórką. Atak ten przeprowadzany jest poprzez umieszczenie urządzenia, które może odbierać i transmitować fale radiowe w zasięgu docelowego pojazdu. Nadajnik będzie próbował zablokować dowolny sygnał odblokowania pojazdu RF podczas jego odbierania i umieszczania w buforze do późniejszego wykorzystania. Przy kolejnych próbach odblokowania pojazdu nadajnik zablokuje nowy sygnał, zbuforuje go i odtworzy stary, tworząc bufor toczący się o krok przed pojazdem. W późniejszym czasie atakujący może użyć tego zbuforowanego kodu do odblokowania pojazdu.

Weryfikacja mówcy na podstawie tekstu

Różne urządzenia używają rozpoznawania mówcy do weryfikacji tożsamości mówcy. W systemach zależnych od tekstu osoba atakująca może nagrać mowę osoby docelowej, która została poprawnie zweryfikowana przez system, a następnie odtworzyć nagranie ponownie w celu weryfikacji przez system. Opracowano środek zaradczy przy użyciu spektralnych map bitowych z przechowywanej mowy zweryfikowanych użytkowników. Odtwarzana mowa ma w tym scenariuszu inny wzorzec i zostanie odrzucona przez system.

Zobacz też

Bibliografia