GPS ütleb telefonile, autole, laevale ja elektrivõrgule, kus nad on ja mis kell on. Seda signaali on lihtne üle karjuda või järele teha. GPS Shield valvab vastuvõtjat ööpäev läbi ja annab teada, kui midagi on valesti — enne kui vale asukoht või kellaaeg kellelegi kahju teeb.
Mitmekonstellatsiooniline (GPS · Galileo · GLONASS · BeiDou), kaheribaline (L1/L2) tuvastussüsteem u-blox ZED-F9P peal: 15 detektorit (neist 14 töötavad F9P-ga) toorvaatlustest, MON-RF häireindikaatorist, vastuvõtja kellast ja Galileo OSNMA krüptoallkirjast ning 30-sekundilise tsükliga valvur koos tõukesõnumite ja välise surnud mehe lülitiga.
Iga number on mõõdetud salvestatud või elavatest andmetest — mitte hinnang.
Navigatsioonisatelliidid tiirlevad umbes 20 000 km kõrgusel ja saadavad signaali, mille võimsus on maapinnal väiksem kui taustamüra. Vastuvõtja suudab selle kätte saada ainult seetõttu, et ta teab täpselt, mida otsida. Nii on kaks lihtsat viisi teda petta:
GPS L1 C/A signaali minimaalne võimsus maapinnal on umbes −128,5 dBm, mis jääb 2 MHz ribas soojusmüra (~−111 dBm) alla. Vastuvõtja saab selle kätte ainult korrelatsioonivõimenduse abil. Sellest järeldub kaks ründeklassi: segamine (jamming) tõstab müra põrandat üle töövaru ja võltsimine (spoofing) edastab kooskõlalisi signaale, millel on mõne dB-ne võimsuse eelis, ning tõmbab vastuvõtja jälgimissilmused enda peale.
Saatja täidab sageduse müraga ja vastuvõtja ei kuule satelliite enam. Asukoht kaob. See on märgatav, aga ohtlik, kui süsteem ei saa aru, miks asukoht kadus.
Lairiba- või sweep-segaja tõstab AGC tööpunkti ja MON-RF jamInd-i, C/N0 langeb ühtlaselt kõigil SV-del, madalama kõrgusega SV-d kaovad esimesena, seejärel kaob fix. AGC reageerib enne fixi kadumist, seega on see varajane hoiatus.
Saatja teeb satelliitide signaali järele ja on veidi valjem. Vastuvõtja usub teda ja näitab valet asukohta või kellaaega, aga kõik näib korras olevat. See on palju salakavalam.
Ülevõtt (lift-off/pull-off): võltsija joondab koodifaasi ja Doppleri, tõstab võimsust ning lohistab seejärel asukohta või aega. Tunnused on C/N0 hüpe ja hajuvuse kollaps (üks saateantenn), L1/L2 vastuolu (ainult-L1 võltsija), kellatriivi muutus ja Galileo navisõnumi autentimise läbikukkumine.
Vajuta mõnele plokile, et näha, mida see teeb.
Valvur saadab teate ainult siis, kui ta töötab. Kui arvuti kaotab voolu või võrgu, jääks vaikus märkamata. Seepärast kontrollib teine server iga 5 minuti järel, kas valvur kirjutab, ja annab ise teada, kui see lõppes.
Väline dead-man's switch teises masinas: iga 5 min kontrollib viimase ajalookirje vanust, ja kui kirje on üle 300 s vana kaks vooru järjest, saadab tõukesõnumi „valvur vaikib“. Meeldetuletus tuleb iga 6 h järel ja taastumisel eraldi teade. Vaigistuse saab seada ajaliselt (välitestid).
Kõik vastuvõtja mõõtmised lähevad faili ja tunni kaupa varukoopiasse teise masinasse. Hiljem saab vaadata, mis täpselt juhtus ja kus.
Tunnifailid (UBX: NAV-PVT, RXM-RAWX, MON-RF, NAV-CLOCK, RXM-SFRBX) hoitakse 30 päeva. Inkrementaalne varundus kolmanda masina kaudu ilma uue usaldussuhteta: manifestide võrdlus, kirjutamisel failide snapshot ja kontroll pärast kopeerimist. Mobiilses võrgus varundamine pausib, et välitestil gigabaite ei tõmmataks.
Vali stsenaarium ja vaata, kuidas signaal muutub ja millised detektorid reageerivad. Rünnak algab 30. sekundil. Kõverad on illustratiivsed, aga kujundid ja detektorite käitumine vastavad päris testidele.
Ükski üksik tunnus ei püüa kõiki rünnakuid. Iga detektor annab skoori 0–1 ja lõppotsus on kõige kõrgem skoor: üle 0,35 on hoiatus, üle 0,70 rünnak. Nii võib iga detektor olla kitsalt täpne, ilma et peaks kõike ise teadma. 14 detektorit töötavad päris F9P vastuvõtjaga; korrelaatori kuju (SQM) vajab tarkvaravastuvõtjat.
Euroopa Galileo süsteem lisab oma navigatsioonisõnumitele digitaalse allkirja (OSNMA). Satelliidi kohta käiva info saab nii kontrollida nagu pangaülekande allkirja: võltsija võib signaali järele teha, aga õiget allkirja ta teha ei saa. GPS Shield kontrollib neid allkirju pidevalt.
OSNMA kasutab TESLA võtmeahelat: allkirjamärgid (tag) arvutatakse võtmega, mis avalikustatakse hiljem ja mille ahela juur (KROOT) on allkirjastatud ECDSA P-256-ga. Avalik võti on seotud Merkle puuga. Kontrollisime, et avalik võti PKID 2 ja Merkle puu juur kattuvad Euroopa GNSS teeninduskeskuse ametlike failidega baidi täpsusega. Kontroll toimub OSNMAlib-iga F9P SFRBX toorkaadritest püsiva protsessina.
Usaldusahel: iga lüli kinnitab järgmise.
| Kinnitatud allkirju | 205 |
| Läbikukkunud allkirju | 0 |
| Autenditud satelliite | 8 |
| Külmkäivitus siseantenniga | ~27 min |
| Oodatav õues | ~5 min |
| Välitesti sõidul | 252 ✓ · 0 ✗ |
Miks see on oluline? Kaks simulaatori rünnakut — navisõnumi võltsing ja osa ülevõtust — ei liiguta ühtegi füüsilist tunnust. Neid püüab ainult allkiri.
Sünteetilise korpuse kaks nav_corrupt af0 möödalaskmist (kellaparameetri rikkumine navisõnumis) on klassikaline autentimisprobleem. OSNMA katab need ilma heuristikata. Kui OSNMA kaob 30 min järjest, on see hoiatus; läbikukkunud tag on rünnak.
GNSS-SDR tarkvaravastuvõtjaga töödeldud rünnakusalvestised: ülevõtud, triivid, ajanihked, pimestamine.
0/9 puhast salvestist andsid valehäire (max skoor 0,25, lävi 0,35).
Päris F9P salvestisse süstitud muutused: ülevõim, langus, lukustuse kadu, lame signaal, selektiivne, 5 segamistüüpi.
| Rünnak | Peamine detektor | Otsus |
|---|
Päris taevas on teistsugune kui labor: satelliidid tõusevad ja loojuvad, vastuvõtja kell teeb aeg-ajalt hüppe ja arvuti taaskäivitub. Esimese ööpäeva järel analüüsiti iga valeteadet, põhjus parandati ja seejärel kontrolliti, et päris rünnakud on endiselt tabatavad. Järgmised kolm ööpäeva: 9 650 kontrolli, null valeteadet.
Põhjused olid: F9P laseb kella nihkel joosta kuni −1 ms-ni ja nullib selle seejärel (iga 7–10 h; varem tõlgendati seda kui ajavõltsingut, nüüd on reegel täpselt selle kuju jaoks, tolerants 10 µs); C/N0 ühtluse ja absoluuttaseme lävendid olid häälestatud lühikesele baasjoonele; OSNMA „tag'id puuduvad“ vahetult pärast taaskäivitust; salvestusauk aknas. Iga muudatuse järel süstiti 1 ms ajahüpped uuesti sisse. Lõdvem reegel lasi 60% neist läbi ja lükati seetõttu tagasi.
Tuvastus eraldati omaette projektiks ja koodibaasiks. Puhas baasjoon: kõik detektorid 0,000.
Signaalitaseme detektorid (10/10), sünteetiline regressioon 98/129, esimene Galileo autentimine, L1/L2 ja kella detektor, tõukesõnumid.
Umbes 20 valeteadet analüüsitud ja parandatud. Valvur saadab nüüd teate ka siis, kui ta ise ei käivitu.
9 650 kontrollvooru, 0 valeteadet. Lisandus väline valvur ja automaatne varundus.
Süsteem autos, telefonis eraldi sõiduvaade. Kõik salvestatud, et kaardistada segamise asukohad.
Rünnakute mõõtmine päris raadiosignaalil — ainult kaabli kaudu või varjestatud ruumis ning sagedusloaga.
Sama tuvastus, mis praegu töötab laual, ühes karbis koos ekraani, aku ja sumistiga. Paned auto armatuurlauale või võtad kaasa ning seade ütleb jooksvalt, kas satelliitsignaali võib usaldada.
Ühe ümarantenniga vastuvõtja ei näe suunda, aga liikudes näeb ta, kus segaja on tugevam. Pane kaardil segaja paika (klõps), lase seadmel tänavad läbi sõita ja vaata, kust arvutus allikat otsib. „Suunaotsingu“ režiimis mõõdad hoopis suundi nagu suunaantenniga. Kõik toimub sinu brauseris väljamõeldud linnas.
Illustratiivne simulatsioon. Näidis kasutab tehisandmeid: segaja tugevus nõrgeneb kaugusega, peale on lisatud müra nagu hoonete peegeldustest. Päris täpsus on lagedal kümned meetrid, majade vahel kuni paarsada. Täpse asukoha jaoks on vaja ka paigal seisvat võrdlusjaama või suunaantenni.
GNSS-segamine on Läänemere ääres igapäevane. Allpool on kasutusjuhud, kus käsiseade annab rohkem kui kõhutunne: ajatempliga tõendi, millal ja kus signaal ei olnud usaldusväärne.
Segamise tõttu on piirkonnas lende ümber suunatud ja ajutiselt peatatud. Seadmega saab lennuvälja ümbrust läbi sõita ja kaardistada, kus ja millal häire oli. Pärast saab lennujuhtimisele näidata andmeid, mitte ainult pilootide teateid.
Võltsimise korral näitab laeva GPS asukohta, kus laeva ei ole. Sillal või lootsipaadis olev seade ütleb jooksvalt, kas asukohta võib usaldada, ja salvestab juhtumi uurimiseks.
Mobiilsidemastid, elektrivõrk ja andmekeskused võtavad täpse kellaaja GPS-ist. Paigaldusel või auditil saab käsiseadmega kontrollida, kas antenni asukoht on puhas. Püsivalt valvab sama tarkvara laual.
Odavad autosegajad, millega peidetakse sõidukit jälgimise eest, segavad kõiki ümberkaudseid vastuvõtjaid. Liikuvas autos näitab seade, kus häire on kõige tugevam, ja kitsendab otsingu tänava või parklani.
Üksus näeb jooksvalt, kas tema navigatsioon on segatud või võltsitud, ja logi annab ühise pildi, kus häireid esines. Seade ise ei kiirga, seega ei reeda see kasutaja asukohta.
Drooni ja RTK-mõõdistuse kvaliteet sõltub sellest, kas GNSS on puhas. Viis minutit seadmega objektil ütleb, kas täna saab lennata ja mõõta või tuleb tulemustesse suhtuda ettevaatlikult.
Kontseptsioon. Käsiseade on prototüübi järgus ja ekraanipildid on kujunduse mockupid näidisväärtustega. Tuvastus ise töötab ja on testitud, vt tulemusi ülal.
Projekt ei genereeri ega edasta ühtegi signaali. Rünnakuid testitakse salvestatud ja sünteetiliste andmetega. Päris raadiotestid on plaanis ainult juhtme kaudu või varjestatud keskkonnas ja vastava loaga.
Kui võltsija nihutab asukohta vähem kui ~30 m, jääb see tavalise mõõtemüra sisse. Tundlikkuse suurendamine tooks valehäireid, seega oleme selle teadlikult jätnud.
4 sünteetilist takeover'it 5–30 m lõppnihkega jäävad alla läve (settled-nihe <12 m, staatilise vastuvõtja puhas nihe 1–2 m). takeover_offset tõstis 96 → 98, aga floor'i langetamine ohustaks 0-FP-d.
Süsteem näeb, kus segamist tunda oli, aga mitte, kust see tuli. Suuna saab hinnata ainult liikumise pealt.
Ühe isotroopse antenniga puudub AoA. Allika hinnang tuleb jamInd/C/N0 gradiendist liikuva platvormi trajektooril või mitme jaama TDOA-st. Korrelaatori kuju (SQM) F9P ei väljasta, seega SQM töötab ainult SDR-i peal.
Asukoha triivi detektorid eeldavad paigal antenni. Sõidu ajal neid ei arvestata ja otsus tehakse signaali-, ribade-, kella- ja krüptotunnustest ning sellest, kas asukoha muutus klapib kiirusega. Selleks on eraldi sõiduvaade.
Kui keegi võltsib, salvestub ka võltsitud asukoht. Tõeline asukoht tuleb hiljem tuletada ümbritsevate usaldusväärsete punktide põhjal.
Kõik rünnakunumbrid on salvestistest ja süstimisest. Kaabli kaudu edastatud rünnakute mõõtmine (latents, tabamus, valehäired) on järgmine etapp.
Globaalne satelliitnavigatsioonisüsteem — ühisnimi GPS-ile (USA), Galileole (EL), GLONASS-ile (Venemaa) ja BeiDoule (Hiina). GPS Shield kuulab kõiki nelja korraga, sest ründajal on keerulisem kõiki ühtviisi võltsida.
Kui tugevalt üks satelliit müra seest kostab, ühikutes dB-Hz. Lageda taeva all tavaliselt 35–50. Järsk ühtlane langus viitab segamisele, järsk ühtlane tõus ja liiga sarnased väärtused võltsimisele.
Vastuvõtja automaatne võimendus. Kui eetris on palju müra, keerab vastuvõtja võimendust alla. F9P annab sellest häireindikaatori 0–255. Tõuseb sageli enne, kui asukoht kaob.
Kaks sagedusriba, mida satelliidid samaaegselt kasutavad. Lihtne võltsija teeb tavaliselt järele ainult L1. Kui L1 ja L2 ütlevad sama satelliidi kohta eri asju, on midagi valesti.
Galileo navisõnumite krüptograafiline allkiri. Tasuta ja avalik. Tõendab, et sõnum tuli päriselt Galileolt.
Võltsija alustab täpselt päris signaaliga samas kohas, muutub siis valjemaks ja hakkab vastuvõtjat aeglaselt kõrvale tõmbama — nii aeglaselt, et ükski hüpe ei paista silma.
Hoiatus, kui rünnakut ei olnud. Valvuri puhul on see sama halb kui möödalaskmine: kui häire tuleb liiga tihti, lõpetatakse sellele tähelepanu pööramine.
u-blox vastuvõtja binaarne sõnumivorming. Sisaldab asukohta, iga satelliidi toormõõtmisi, raadiofrondi olekut, kella ja satelliitide saadetud toorandmeid.