Strojový překlad, nekontrolovaný rodilým mluvčím. Referenční je anglická verze.

Důvěra v přijímač a námořní oblastUpravit na GitHubuZdroj: docs/JAMMERTEST.md

Hodnocení Jammertestu: publikovaný plán jako naplánovaná pravda

kshana jammertest import čte katalog testů Jammertest a plán vysílání a promění sloty jedné testovací oblasti na [[events]] pro důvěru v přijímač. kshana jammertest score pustí záznam přijímače přes monitory důvěry a hodnotí jej proti tomuto plánu, test po testu. Každý výsledek je MODELLED: plán říká, kdy byl test plánován, nikoli kdy byl vysílač zapnut.

Software pouze poradního charakteru, nikoli typově schválené navigační zařízení (IEC 61108, IEC 61162): za navigaci plavidla zůstává odpovědný provozovatel. Nic z toho není podporováno Norskou správou veřejných silnic, Nkom ani pořadateli akce; žádná dohoda s nimi se netvrdí.

Hodnocení jednoho syntetického záznamu přijímače proti plánu o třech testech, ze skutečného běhu enginu v0.40.0 (`kshana jammertest score`). Záznam je vymyšlený: 1800 s NMEA s poklesem C/N0 o 20 dB ve dvou intervalech. Plán uvádí tři sloty; ve středním slotu není v záznamu žádná rušička. Hodnocení označuje 2 ze 3 testů za detekované (medián latence 0 s) a 1 za nezachycený, s 0 běhy falešného poplachu za 0,25 h čistého času. Nic z toho neříká nic o skutečném přijímači. Software pouze poradního charakteru, nikoli typově schválené navigační zařízení (IEC 61108, IEC 61162): za navigaci plavidla zůstává odpovědný provozovatel.Hodnocení jednoho syntetického záznamu přijímače proti plánu o třech testech, ze skutečného běhu enginu v0.40.0 (`kshana jammertest score`). Záznam je vymyšlený: 1800 s NMEA s poklesem C/N0 o 20 dB ve dvou intervalech. Plán uvádí tři sloty; ve středním slotu není v záznamu žádná rušička. Hodnocení označuje 2 ze 3 testů za detekované (medián latence 0 s) a 1 za nezachycený, s 0 běhy falešného poplachu za 0,25 h čistého času. Nic z toho neříká nic o skutečném přijímači. Software pouze poradního charakteru, nikoli typově schválené navigační zařízení (IEC 61108, IEC 61162): za navigaci plavidla zůstává odpovědný provozovatel.

Plán a katalog#

Zdroj: repozitář NPRA/jammertest-plan Norské správy veřejných silnic (https://github.com/NPRA/jammertest-plan), licence MIT (copyright 2024 Norská správa veřejných silnic; text licence je zkontrolován v xval/jammertest-plan/MANIFEST.tsv). Soubory se stahují, nikdy nejsou přibaleny:

xval/jammertest-plan/fetch.sh <dest-dir-outside-the-repo>

Stáhne katalogy a soubory plánu 2025 na zafixovaném commitu 75c0b2ceea10e470c3799d14a8ef18842d8375a7 a odmítne každý soubor, jehož SHA-256 se liší od xval/jammertest-plan/MANIFEST.tsv.

Test v katalogu má id s tečkami, type.group.test (například 1.2.5: typ 1 rušení, skupina 2, test 5). Plán uvádí pro každou testovací oblast a časový slot, které id je naplánováno. Typy 1 (rušení), 2 (spoofing) a 3 (meaconing) vysílají; typ 0 (porady, odkladná lhůta, rezervace a ad hoc sloty) nevysílá a přeskakuje se. Časy plánu jsou místní nástěnné; --local-offset-h (výchozí 2, CEST) říká, jak daleko jsou od UTC. Soubory plánu nesou pole kontaktní osoby testu se jménem osoby: nikdy se nečte a nic z něj odvozeného se nezapisuje.

Import#

kshana jammertest import --catalog testcatalog2025.json \
    --plan plan-tuesday-2025-09-16.json --plan plan-wednesday-2025-09-17.json \
    --location 1 --log receiver.ubx --format ubx --out events.toml

--log-start <UTC time> nahrazuje --log/--format, když záznam svůj začátek neuvádí. Výstupem je TOML [[events]] k připojení ke scénáři důvěry v přijímač; každý popisek začíná scheduled truth: a nese rok vydání, id katalogu a oblast a záhlaví zaznamenává SHA-256 každého zdrojového souboru. --attack-log <scenario.json> místo toho čte pravdu o událostech jedné složky datové sady JammerTest 2024 (její attack_log, razítka posunutá o --time-shift-h, výchozí -2: uvádějí Z, ale jde o místní čas).

Hodnocení#

kshana jammertest score session.toml --catalog testcatalog2025.json --plan plan-....json \
    --location 1 [--json] [--key signer.key --out pack/]

session.toml je scénář důvěry v přijímač ([log] format/path, volitelně [monitors], [compare]). Jeho vlastní [[events]] se nahradí importovaným plánem. Pro každý naplánovaný test:

pole význam
outcome detected (poplach do compare.detect_tol_s, výchozí 10 s, od plánovaného začátku), late (později, uvnitř slotu), missed (žádný), not-evaluable
latency_s první poplach minus plánovaný začátek
time_to_recover_s konec slotu do začátku prvního úseku o délce alespoň --recover-hold-s (10 s) bez poplachu, před dalším testem

Test lze hodnotit, jen když začíná alespoň calibration_s + guard_s po začátku záznamu; záznam s dřívějším testem se označí baseline_contaminated (základ mohl být vytvořen za interference). Falešné poplachy jsou poplašné epochy po kalibraci mimo každý slot prodloužený o --guard-s (60 s) před i po (nebo po bodu zotavení), počítané jako epochy i jako běhy, s běhy za hodinu čistého času. S --key a --out se běh zapíše jako podepsaný balíček důkazů (docs/EVIDENCE-PACKS.md): výsledkový list a importovaný plán jsou uvnitř config.json, tedy uvnitř hashového řetězce a podpisu. Balíček je technický záznam, nikoli právní názor.

Co výsledek neříká#

  • Plánovaný slot není záznam o vysílání. Vysílač mohl začít pozdě, skončit dříve nebo vůbec neběžet; „nezachycený“ test může být test, který nevysílal, a latence se počítá od plánovaného začátku.
  • „Čistá“ epocha je „mimo plánované sloty“, nikoli „prokazatelně bez interference“.
  • Detekce monitory v oblasti měření neříká nic o detekci spoofera s nízkým výkonem a koherentního.
  • Žádné vnější orákulum neuvádí skutečné časy vysílání, takže nic z toho není VALIDATED.

Běh na datové sadě 2024 (předregistrovaný)#

xval/jammertest-score/PREREGISTRATION.md stanovila populaci, definice a prahy před prvním hodnoceným během; xval/jammertest-score/RESULTS.md tento běh zaznamenává. Výsledek: registrované pravidlo minima dat selhalo (4 hodnotitelná okna rušení ze 4 z 12 složek .ubx: 5 složek vyřadilo pravidlo základu a 3 záznamy UBX uvádějí svůj začátek jen jako týden GPS a čas v týdnu), takže žádný práh nelze posoudit. Nic nebylo uvolněno ani znovu spuštěno. v2 (PREREGISTRATION-v2.md, zapsána samostatně před svým během; jen zacházení s daty, stejné prahy a pravidlo minima dat) zařadila záznamy jen s časem GPS podle data složky, ohodnotila 12 složek jen s CSV a pro pohyblivé roverové platformy použila relaci s pohyblivou platformou. Výsledek (RESULTS-v2.md): 14 z 24 složek zachováno, ale jen 7 hodnotitelných oken rušení, takže pravidlo minima dat znovu selhalo a žádný práh nelze posoudit. Výsledek v1 je nezměněn. Pouze popisně: 3 ze 7 oken rušení vyvolala poplach do 10 s, 4 později, žádné nezachycené; medián latence 18 s; míra poplachů v čistém čase 0,089. Závazným omezením je nyní pravidlo základu, které odstraňuje 10 složek; další registrace by pro rané okno potřebovala jiné pravidlo. Datová sada (JammerTest 2024, Zenodo 15911589, GPL-3.0-or-later) se stahuje pomocí xval/oracles/setup.sh a nikdy není přibalena; test tests/jammertest_score_2024.rs zafixuje zaznamenaný běh, když KSHANA_JAMMERTEST_DIR ukazuje na rozbalenou datovou sadu.

Datová sada SimulaMet NMEA 2025#

Datová sada SimulaMet Jammertest 2025 odvozená z NMEA (IEEE DataPort, DOI 10.21227/a7v4-xw11) není ve verzi 0,38 převzata. Její stránka neuvádí žádnou licenci a říká „This dataset requires an IEEE DataPort Subscription to access“: podmínky jasně nepovolují šíření ani automatizované stažení, proto nebyl napsán žádný adaptér ani skript pro stažení. Její použití vyžaduje rozhodnutí vlastníka a ideálně písemný souhlas autorů.

Povrchy#

CLI, Rust (kshana::jammertest), Python (jammertest_import, jammertest_score), WebAssembly (stejné názvy), nástroje MCP stejných názvů a příkaz /kshana-jammertest a skill jammertest. Podepsaný balíček je jen z příkazového řádku (potřebuje podpisový klíč). Viz docs/SURFACES.md.