Machinevertaling, niet beoordeeld door een moedertaalspreker. Engels is de referentie.

Ontvangervertrouwen en maritiemBewerken op GitHubBron: docs/JAMMERTEST.md

Jammertest-scoring: het gepubliceerde plan als geplande referentie

kshana jammertest import leest de testcatalogus en het zendplan van Jammertest en zet de slots van één testgebied om in [[events]] voor ontvangervertrouwen. kshana jammertest score voert een ontvangerlog door de vertrouwensmonitoren en scoort die test voor test tegen dat schema. Elk resultaat is MODELLED: het schema zegt wanneer een test gepland was, niet wanneer een zender aan stond.

Adviserende software, geen typegoedgekeurde navigatieapparatuur (IEC 61108, IEC 61162): de gezagvoerder of exploitant blijft verantwoordelijk voor de navigatie van het vaartuig. Niets hiervan wordt onderschreven door de Noorse Public Roads Administration, Nkom of de organisatoren van het evenement; er wordt geen overeenkomst met hen geclaimd.

Scoring van één synthetische ontvangerlog tegen een schema met drie tests, uit een echte run van engine v0.40.0 (`kshana jammertest score`). De log is verzonnen: 1800 s NMEA met een daling van 20 dB C/N0 over twee intervallen. Het schema bevat drie slots; in het middelste slot staat in de log geen jammer. De score markeert 2 van 3 tests als gedetecteerd (mediane latentie 0 s) en 1 als gemist, met 0 runs met valse alarmen over 0,25 uur schone tijd. Niets hiervan zegt iets over een echte ontvanger. Adviserende software, geen typegoedgekeurde navigatieapparatuur (IEC 61108, IEC 61162): de gezagvoerder of exploitant blijft verantwoordelijk voor de navigatie van het vaartuig.Scoring van één synthetische ontvangerlog tegen een schema met drie tests, uit een echte run van engine v0.40.0 (`kshana jammertest score`). De log is verzonnen: 1800 s NMEA met een daling van 20 dB C/N0 over twee intervallen. Het schema bevat drie slots; in het middelste slot staat in de log geen jammer. De score markeert 2 van 3 tests als gedetecteerd (mediane latentie 0 s) en 1 als gemist, met 0 runs met valse alarmen over 0,25 uur schone tijd. Niets hiervan zegt iets over een echte ontvanger. Adviserende software, geen typegoedgekeurde navigatieapparatuur (IEC 61108, IEC 61162): de gezagvoerder of exploitant blijft verantwoordelijk voor de navigatie van het vaartuig.

Het plan en de catalogus#

Bron: de repository NPRA/jammertest-plan van de Noorse Public Roads Administration (https://github.com/NPRA/jammertest-plan), MIT-licentie (copyright 2024 Norwegian Public Roads Administration; de licentietekst wordt gecontroleerd in xval/jammertest-plan/MANIFEST.tsv). De bestanden worden opgehaald, nooit meegeleverd:

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

Het downloadt de catalogi en de planbestanden van 2025 op de vastgepinde commit 75c0b2ceea10e470c3799d14a8ef18842d8375a7 en weigert elk bestand waarvan de SHA-256 afwijkt van xval/jammertest-plan/MANIFEST.tsv.

Een catalogustest heeft een id met punten, type.group.test (bijvoorbeeld 1.2.5: type 1 jamming, groep 2, test 5). Het plan vermeldt, per testgebied en tijdslot, welk id is gepland. De typen 1 (jamming), 2 (spoofing) en 3 (meaconing) zenden uit; type 0 (briefings, respijtperiode, boekingen en ad-hocslots) niet, en wordt overgeslagen. Plantijden zijn lokale kloktijd; --local-offset-h (standaard 2, CEST) zegt hoeveel ze van UTC verschillen. De planbestanden bevatten een veld voor een testcontact met de naam van een persoon: het wordt nooit gelezen, en niets wat ervan is afgeleid, wordt geschreven.

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> vervangt --log/--format wanneer de log zijn begin niet vermeldt. De uitvoer is TOML [[events]] om aan een scenario voor ontvangervertrouwen toe te voegen; elk label begint met scheduled truth: en bevat het editiejaar, de catalogus-id en het gebied, en de header legt de SHA-256 van elk bronbestand vast. --attack-log <scenario.json> leest in plaats daarvan de gebeurtenisreferentie van één map van de dataset JammerTest 2024 (zijn attack_log, tijdstempels verschoven met --time-shift-h, standaard -2: ze zeggen Z maar zijn lokale tijd).

Score#

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

session.toml is een scenario voor ontvangervertrouwen ([log] format/path, optioneel [monitors], [compare]). Zijn eigen [[events]] worden vervangen door het geïmporteerde schema. Per geplande test:

veld betekenis
outcome detected (een alarm binnen compare.detect_tol_s, standaard 10 s, na de geplande start), late (later, binnen het slot), missed (geen), not-evaluable
latency_s eerste alarm min geplande start
time_to_recover_s einde van het slot tot het begin van de eerste periode van ten minste --recover-hold-s (10 s) zonder alarm, vóór de volgende test

Een test is alleen scoorbaar als hij ten minste calibration_s + guard_s na het begin van de log start; een log met een eerdere test wordt gemarkeerd als baseline_contaminated (de basislijn kan onder interferentie zijn gevormd). Valse alarmen zijn alarmerende epochs na de kalibratie buiten elk slot, verlengd met --guard-s (60 s) ervoor en erna (of na het herstelpunt), geteld als epochs en als runs, met runs per uur schone tijd. Met --key en --out wordt de run geschreven als een ondertekend bewijspakket (docs/EVIDENCE-PACKS.md): het scorekaartje en het geïmporteerde schema zitten in config.json, dus binnen de hashketen en de handtekening. Een pakket is een technisch verslag, geen juridisch oordeel.

Wat een resultaat niet zegt#

  • Een gepland slot is geen registratie van wat in de lucht was. Een zender kan te laat zijn begonnen, te vroeg zijn gestopt of nooit hebben gedraaid; een "gemiste" test kan een test zijn die niet heeft uitgezonden, en een latentie is gerekend vanaf de geplande start.
  • Een "schone" epoch is "buiten de geplande slots", niet "bewezen vrij van interferentie".
  • Detectie door monitoren in het meetdomein zegt niets over het detecteren van een coherente spoofer met laag vermogen.
  • Geen externe onafhankelijke referentie noemt de werkelijke tijden in de lucht, dus niets hiervan is VALIDATED.

De run met de dataset van 2024 (vooraf vastgelegd)#

xval/jammertest-score/PREREGISTRATION.md legde de populatie, de definities en de drempels vast vóór de eerste beoordeelde run; xval/jammertest-score/RESULTS.md legt die run vast. Resultaat: de vastgelegde regel voor minimale gegevens faalde (4 scoorbare jammingvensters uit 4 van de 12 mappen .ubx: 5 mappen werden door de basislijnregel geschrapt en 3 UBX-logs vermelden hun begin alleen als GPS-week-tijd), dus geen enkele drempel is te beoordelen. Er is niets versoepeld of opnieuw uitgevoerd. v2 (PREREGISTRATION-v2.md, alleen vastgelegd vóór zijn run; alleen gegevensverwerking, dezelfde drempels en dezelfde regel voor minimale gegevens) plaatste de logs met alleen GPS-tijd vanaf de mapdatum, scoorde de 12 mappen met alleen CSV en gebruikte een sessie met bewegend platform voor de bewegende rovers. Resultaat (RESULTS-v2.md): 14 van de 24 mappen behouden maar slechts 7 scoorbare jammingvensters, dus de regel voor minimale gegevens faalde opnieuw en geen enkele drempel is te beoordelen. Het resultaat van v1 is ongewijzigd. Alleen beschrijvend: 3 van de 7 jammingvensters sloegen alarm binnen 10 s, 4 later, geen gemist; mediane latentie 18 s; schone alarmfrequentie 0,089. De bindende beperking is nu de basislijnregel, die 10 mappen verwijdert; een nieuwe vastlegging zou een andere regel voor vroege vensters vereisen. De dataset (JammerTest 2024, Zenodo 15911589, GPL-3.0-or-later) wordt door xval/oracles/setup.sh opgehaald en nooit meegeleverd; de test tests/jammertest_score_2024.rs pint de vastgelegde run wanneer KSHANA_JAMMERTEST_DIR naar de uitgepakte dataset wijst.

De NMEA-dataset van SimulaMet van 2025#

De van NMEA afgeleide dataset van SimulaMet Jammertest 2025 (IEEE DataPort, DOI 10.21227/a7v4-xw11) is in 0,38 niet aangepast. De pagina vermeldt geen licentie en zegt "This dataset requires an IEEE DataPort Subscription to access": de voorwaarden staan herverspreiding of een geautomatiseerde download niet duidelijk toe, dus er is geen adapter of ophaalscript geschreven. Het gebruik ervan vereist de beslissing van de eigenaar en bij voorkeur de schriftelijke instemming van de auteurs.

Onderdelen#

CLI, Rust (kshana::jammertest), Python (jammertest_import, jammertest_score), WebAssembly (dezelfde namen), MCP-hulpmiddelen met dezelfde namen, en de opdracht /kshana-jammertest en de skill jammertest. Het ondertekende pakket is alleen via de opdrachtregel beschikbaar (het vereist een ondertekeningssleutel). Zie docs/SURFACES.md.