Wykrywanie zakłóceń i podszyfowania sygnału GNSS

Zakłócenia GNSS można podzielić na 2 kategorie:

  • zagłuszanie,
  • podszywanie się.

Ataki polegające na zagłuszaniu polegają na nadawaniu silnych sygnałów radiowych w tym samym zakresie częstotliwości co GNSS, co może zagłuszyć stosunkowo słabsze sygnały nadawane przez satelity GNSS. Może to uniemożliwić odbiornikom GNSS, w tym telefonom, obliczenie swojej lokalizacji.

Podszywanie się to bardziej zaawansowany atak, podczas którego nadawane są fałszywe sygnały udające prawdziwe sygnały GNSS. Te fałszywe sygnały mogą wprowadzić odbiornik GNSS w błąd i spowodować, że obliczy on pozycję lub czas, które znacznie różnią się od rzeczywistości. Wystarczy to, aby aplikacje do map i nawigacji podawały użytkownikom nieprawidłowe informacje.

Podszywanie się pod GNSS lub zagłuszanie

Siła sygnału lub stosunek sygnału do szumu (C/N0) oraz automatyczna regulacja wzmocnienia (AGC) radia GNSS w telefonie mogą być dobrym wskaźnikiem zakłóceń.

W przypadku wykrycia podszywania się lub zagłuszania AGC zwykle spada. Gdy radio odbiera silne fale radiowe, zmniejsza wzmocnienie wzmacniacza (AGC), aby dostosować moc odbieranego sygnału.

Porównanie siły sygnału wskazujące na zakłócenia
Rysunek 1. AGC spada podczas zakłóceń (czerwony obszar) i wraca do normalnego poziomu po ich usunięciu (zielony obszar). (Źródło obrazu: https://doi.org/10.33012/navi.537)

Zachowanie C/N0 zmienia się jednak w zależności od tego, czy występuje zagłuszanie, czy podszywanie się. W przypadku zagłuszania szum obserwowany przez radio jest znacznie silniejszy niż zwykle. W związku z tym zwiększa się mianownik stosunku sygnału do szumu, a wartość C/N0 spada. W przypadku podszywania się dzieje się odwrotnie – ponieważ nadawany jest fałszywy sygnał, który jest wystarczająco głośny, aby zagłuszyć prawdziwy sygnał z satelity, ogólna siła sygnału jest duża, a zatem C/N0 rośnie.

Sprawdzanie, czy nie występuje podszywanie się pod GNSS lub zagłuszanie

Aby sprawdzić wpływ otoczenia na C/N0 i AGC w czasie rzeczywistym, możesz użyć karty Spoof/Jam w aplikacji GnssLogger by zbadać wpływ ich otoczenia na C/N0 i AGC w czasie rzeczywistym.

Wykres AGC i C/N0 w czasie rzeczywistym

Karta Spoof/Jam wyświetla wykres AGC i C/N0 w czasie rzeczywistym dla każdej konstelacji i pasma GNSS (np. „GPS L1” lub „G:L1:”, „Galileo E5a” lub „E:E5A:”).

Wykres AGC i C/N0 dla każdej konstelacji i każdego pasma GNSS.
Rysunek 2. AGC i C/N0 spadają, gdy telefon jest trzymany obok routera Wi-Fi (czerwony owal). Średnia z 3 najsilniejszych sygnałów dla każdej konstelacji i pasma jest przedstawiona jako linia przerywana. AGC dla każdej konstelacji i pasma, czyli pojedyncza wartość, jest przedstawiona jako linia ciągła. Czerwone kółko na wykresie pokazuje, jak AGC i C/N0 spadają, gdy telefon jest trzymany obok routera Wi-Fi, co oznacza, że występują zakłócenia.

Sprawdzanie w czasie rzeczywistym, czy nie występuje podszywanie się lub zagłuszanie

Poniżej wykresu AGC i C/N0 w czasie rzeczywistym aplikacja wyświetla serię automatycznych kontroli danych, które identyfikują warunki związane z zakłóceniami GNSS.

Interfejs pokazujący dowody na warunki, które mogą być spowodowane podszywaniem się pod inne osoby i zagłuszaniem.
Rysunek 3. Automatyczne kontrole mogą identyfikować warunki potencjalnie spowodowane podszywaniem się lub zagłuszaniem.

W sekcji Jamming checks (Kontrole zagłuszania) aplikacja sprawdza, czy średnia z ostatnich 10 epok C/N0 i AGC zmieniła się w porównaniu z poprzednimi 50 epokami. Jeśli C/N0 i AGC spadają jednocześnie, może to być objaw zagłuszania GNSS. Jeśli taka sytuacja zostanie wykryta, na karcie pojawi się komunikat FAIL (NIEPOWODZENIE) wraz z dodatkowymi informacjami:

Warunki potencjalnie spowodowane zakłóceniami GNSS.
Rysunek 4. Błąd wskazujący, że wykryto warunki, które mogą być spowodowane zakłóceniami GNSS.

Pierwsza karta w sekcji Spoofing checks (Kontrole podszywania się) również sprawdza C/N0 i AGC, ale szuka jednoczesnego wzrostu C/N0 i spadku AGC.

Druga kontrola związana z podszywaniem się sprawdza różnicę między czasem GNSS obliczonym na urządzeniu a czasem pobranym z internetu z serwera NTP (Network Time Protocol) (czas sieciowy – czas GNSS). Duża różnica może wskazywać, że obliczony czas GNSS jest nieprawidłowy.

Porady, wskazówki i ostrzeżenia

Jeśli używasz funkcji Spoof/Jam w aplikacji GnssLogger, pamiętaj o tych kwestiach:

  • Jest to funkcja eksperymentalna. W miarę zdobywania wiedzy o charakterystyce AGC na różnych urządzeniach z Androidem dokładne algorytmy używane do wykrywania podszywania się i zagłuszania mogą zostać zaktualizowane.
  • Ta funkcja nie wykrywa wszystkich przypadków podszywania się i zagłuszania. Wykres w czasie rzeczywistym i kontrole danych ułatwiają odkrywanie właściwości danych w czasie rzeczywistym, ale nie są wystarczająco niezawodne, aby wykryć każdy przypadek podszywania się lub zagłuszania.
  • Ta funkcja jest przeznaczona do wykrywania zmian w C/N0 i AGC. Jeśli otworzysz aplikację w przypadku podszywania się lub zagłuszania, a C/N0 i AGC pozostaną stałe, podszywanie się i zagłuszanie nie zostaną wykryte.
  • Serwery NTP nie są koniecznie bezpieczne. Czas sieciowy też może być fałszywy.

Prześlij opinię o funkcji Spoof/Jam za pomocą naszego publicznego narzędzia do rejestrowania błędów.