Nedávno se na Technetu objevil článek, kde experti vysvětlovali důvody, proč se v části Evropy nedá spolehnout na satelitní navigaci, většinou lidí označovanou jednoduše jako GPS. Důvod je prozaický: rušení frekvencí, na kterých GPS i další systémy (souhrnně GNSS) fungují, případně o něco sofistikovanější vysílání upraveného signálu, který přijímač „posune“ někam mimo skutečnou pozici – tzv. spoofing.
Zkusme se podívat trochu podrobněji, proč by se s tím měl někdo namáhat, co se s tím dá dělat a co je vlastně v oblasti satelitních navigací poslední dobou nového. I TESLA bude, jen ne ta Muskova.
Motivace
Vynechme celkem zjevnou vojenskou motivaci pro rušení dronů, přesné munice, ochranu VIP apod. a vydejme se do oblastí, které středoevropského suchozemce nejspíš na první dobrou nenapadnou.
Kontrola rybolovu a dodržování „hranic“ byla vždy náročná, vzhledem k rozlehlosti moří a velikosti (malosti) případných narušitelů, a to zejména pro chudší země. Proto musí každá rybářská loď povinně mít satelitní navigaci a pravidelně posílat nejen polohu, ale všechna měření tak, aby někdo třetí mohl přepočítat poziční řešení a ověřit, že loď není tam, kde nemá být. Modří už jistě tuší, že se šikovnou krabičkou na palubě, která signál tupě nezaruší, ale pozici chytře „posune“ do mezinárodních a povolených vod, se dá rybařit i ve výsostných a na ryby bohatých vodách chudších zemí.
Námořní téma bylo v centru dění i v Šanghaji, kde se v jednom bodě zkoncentrovaly desítky lodí – samozřejmě pouze soudě dle poloh spočtených v jejich navigacích. Heatmapy ve Stravě vypadaly jako by se všichni tamní cyklisté rozhodli vyjezdit důlek do země (a taky se probourat několika budovami). Původ není úplně zřejmý, nicméně největším podezřelým jsou nelegální těžaři písku či pašeráci.
O něco srozumitelnější bude nejspíš motivace profesionálních řidičů, kteří se rušičkami brání stále rozšířenějšímu dohledu na každém kilometru cesty, případně chtějí „ulít“ nějakou cestu služebním autem mimo systém. Mimochodem, svého času tito prakticky zabili testovací provoz pozemní stanice pomocného systému GBAS umístěného na newyorském letišti LaGuardia – vede kolem něj dálnice a procento času, kdy stanice nebyla rušená a mohla fungovat, bylo dvouciferné jen s odřenýma ušima… V této souvislosti je zábavné se zamyslet a udělat si tabletop cvičení, co všechno se dá udělat s mýtnou krabičkou závislou na satelitní navigaci…
Spoofing lze teoreticky použít i pro únos, kdy nic netušící plavidlo či letadlo „odkloníte“ z trasy, aniž by to posádka poznala. Už v roce 2008 to demonstroval Todd Humphreys na luxusní jachtě ve Středomoří. K tomu ovšem zlé jazyky soukromě dodávaly, že jednak vysílač byl pevně namontován na té samé jachtě se známým a fixním offsetem vůči anténě navigace, jednak se úspěch dostavil až na druhý či třetí pokus, ne na první. Nicméně od té doby Středomořím propluly tisíce člunů a technika si poskočila několika mílovými skoky, tak třeba by to již dnes bylo praktičtější.
Nakonec ještě zmíním jednu možnost, čeho spoofingem docílit – totiž ovlivnění (nebo prosté „rozhození“) času. Jedna z kritických a poměrně málo známých funkcí GNSS je totiž přesná distribuce času. Poskytovatelé času (česky to zní dost divně, uznávám) se synchronizují vůči GPS a přesný čas pak „dodávají“ dále – třeba do telekomunikačních sítí apod. Nabourání synchronizace či ovlivnění času ve svůj prospěch pak může mít dalekosáhlé důsledky. Naštěstí je obrana poměrně jednoduchá – poskytovatelé času nespoléhají pouze na kouzelnou GPS krabičku, ale mají své vlastní atomové hodiny (a ne jedny), vůči kterým konstantně porovnávají řešení z GPS. Je tak těžší je zmást, jak neúmyslně prokázalo GPS v lednu 2016. I když i v tomto případě byli provozovatelé zasaženi různě, v závislosti na robustnosti svého řešení – někteří horečnatě hledali chybu a zoufale se snažili obnovit své služby, zatímco jiní potřebovali u ranní kávy otevřít zprávy a následně pořádně prohrabat logy, aby vůbec zjistili, že se něco stalo.
Co s tím?
Fanoušky silových, jednoduchých a nefungujících řešení nepotěším: zákazy nejsou cesta. Jednak už většinou používání rušiček zakázané dávno je (byť legislativa se po světě různí, někde je třeba legální si rušičku koupit, ale už ne zapnout), jednak syntetizátory navigačních signálů jsou potřeba k vývoji nových přijímačů. Takový Spirent by jistě nebyl rád, kdyby už nemohl prodávat své simulátory za miliony dolarů. Ale že i mistr tesař se někdy utne, dokládá historka z natáčení jedné navigační konference.
Obyčejné rušení (jamming) se dá detekovat a odfiltrovat, samozřejmě za předpokladu, že rušící signál je pravidelný, resp. předvídatelný. Už před deseti lety to ale občas neplatilo: viděl jsem výstupy z projektu, kdy na mýtných branách na francouzské dálnici byl namontován detektor vysílání na pásmu L1, společně s kamerou. Spektra vysílaných signálů byla skutečně různá, většinou „rozumná“, ale občas „wtf“, že nás ani nenapadlo, jak tohle mohl někdo uměle vytvořit. Vzorkovací frekvence detektorů byla natolik vysoká, že v kombinaci s kamerou bylo (akademicky) možné jednoznačně určit auto, ze kterého rušení pocházelo.
Se spoofingem to je o trochu horší, z pohledu přijímače jde o platný signál dávající rozumnou polohu. Obrana tu spočívá spíš v procesech okolo: sledovat náhlé skoky v poloze, skoky v síle signálu, směry přicházejícího signálu a v případech, kdy je poloha ze satnavu integrována třeba s inerciálními senzory, dá se poměrně spolehlivě určit, že se s ní děje něco podezřelého. Letadla zase většinou mají namontovanou anténu, která přijímá jen signály z vrchní polosféry, takže by spoofer musel být nad cílem. (To je taky důvodem, proč letadla v zatáčkách ztrácí signál ze satelitů z části oblohy, která je dočasně „pod“ anténou.)
Zatímco přijímače teoreticky určité obranné mechanismy mohou implementovat (záleží hlavně na výrobci, síle použitého hardware a ceně), provozovatelé GNSS taky mohou přispět svou troškou do mlýna. Momentálně se do toho obulo Galileo, které po třech letech testování hodlá v dohledné době naostro spustit autentizaci navigačního signálu – tedy mechanismus, kdy navigační zpráva se všemi parametry bude kryptograficky podepsána a nepůjde ji podvrhnout. Přijímače tedy budou „vědět“, že navigační zpráva skutečně pochází ze satelitů Galileo, a nepůjde již podvádět, nebo alespoň ne tak jednoduše (stále existuje možnost se zpožděním odvysílat zachycený skutečný signál, což zvýší zdánlivou vzdálenost k danému satelitu – toto nepůjde udělat pro všechny satelity, neboť by se tím přijímač „ponořil“ do hlubin Země, ale v určitých případech by mohlo jít ještě s polohou manipulovat, byť značně omezeně).
Jak to Galileo vlastně dělá? Na scénu přijíždí… pardon, přichází TESLA – v tomto případě to ovšem znamená Timed Efficient Stream Loss-Tolerant Authentication a není to nic jiného než reverzní hash řetězec. Když to velmi zjednoduším pro kryptografií nepolíbené: řídící centrum vygeneruje náhodnou hodnotu (seed), tu mnohokrát „prožene“ kryptograficky bezpečnou jednosměrnou funkcí a zveřejní koncovou hodnotu, říkejme jí třeba kořen (root). Podepisovací klíče jsou pak hodnoty na tomto řetězci (resp. z nich deterministicky odvozené) a pohybují se nazpět, v protisměru – každý si může jednoduše spočítat, že jsou pravé (několikrát prožene jednosměrnou funkcí a ověří, že dostane správný kořen), a současně nikdo ze stávajícího klíče neumí v rozumném čase spočítat následující klíč (tedy klíč, který v řetězci předchází tomu současnému).
Aby GPS nezůstalo pozadu, pro jeden z nových signálů taktéž plánuje autentizaci navigační zprávy, navíc jiným mechanismem.
Hotovo, vyřešeno? Ne tak rychle
Máme k dispozici kryptografické kladivo na únosce luxusních jachet a dopravních letadel, tak je vše v pořádku? Ne tak docela. Problémů je v GNSS stále víc než dost, slibovaný pokrok zhusta stihl jen zahlédnout zadní světla vlaku a teď se někde smutně courá v nedohlednu a do toho spolupráce mezi provozovateli GNSS taky není zrovna hvězdná.
Do podrobností v tomto článku ale nepůjdu, už tak je pět normostran tak akorát, ovšem pokud by mělo p.t. čtenářstvo zájem, mohl bych se pokusit postupně dát dohromady přehled celé problematiky GNSS nejen v Safety-of-Life použití, tak jak si to pamatuju a dokud si to ještě pamatuju. Než bude memory dump obsahovat akorát ¯\_(ツ)_/¯
25.09.2024 Zajíc
13 859x přečteno