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.
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:”).
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.
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:
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.