Integrität und Sicherheit: was Kshana modelliert und was nicht
Kshana meldet zwei Gütemaße (FoMs, figures of merit) — Integrität und Sicherheit —, die leicht mit den gleichnamigen Größen aus der Luftfahrt verwechselt werden. Diese Seite legt klar dar, was sie heute sind, was sie nicht sind und was die Roadmap ergänzt. Wenn Sie Kshana für einen sicherheitskritischen oder zertifizierungsbezogenen Kontext bewerten, lesen Sie zuerst dies.
Heute (v0.37.0)#
Integritäts-FoM — Selbstkonsistenz des Filters#
Das Integritäts-FoM ist der Anteil der Ausfall-Stichproben, deren wahrer Zeitgebungsfehler innerhalb der eigenen k-Sigma-Schutzgrenze des Kalman-Filters bleibt:
integrity = (# outage samples with |error| <= k * phase_sigma) / (# outage samples)
Es misst, ob die selbst gemeldete Unsicherheit des Filters während eines Ausfalls von GNSS (globales Satellitennavigationssystem) ehrlich über seinen eigenen Fehler Auskunft gibt. Es ist eine nützliche interne Konsistenzprüfung.
Es ist kein:
- Horizontal-/Vertikal-Schutzniveau (HPL/VPL) — es gibt überhaupt kein Schutzniveau im Positionsbereich (die Uhr-Pakete liegen im Zeitgebungsbereich);
- Integritätsrisiko / Wahrscheinlichkeit gefährlich irreführender Information (P_HMI);
- Vergleich mit einer Alarmgrenze;
- konform mit RTCA DO-229E / DO-316 oder EUROCAE ED-259A (RTCA: Radio Technical Commission for Aeronautics; EUROCAE: Europäische Organisation für Ausrüstung der Zivilluftfahrt) oder einem anderen Zertifizierungsstandard.
Sicherheits-FoM — analytische Grenze der Spoof-Erkennbarkeit#
Das Sicherheits-FoM ist eine auf der Uhrenstabilität beruhende Grenze der Spoof-Erkennbarkeit: Gegeben das Rauschen einer Uhr (Weißfrequenz- und Random-Walk-PSDs (Leistungsspektraldichten)) und ein Überwachungsfenster, ist es die analytische Erkennungsmarge eines Einzeluhr-Konsistenzmonitors gegenüber einem langsam anwachsenden Falschzeit-Spoofing. Eine ruhigere Uhr (z. B. eine optische Uhr) erkennt ein kleineres, langsameres Spoofing als eine rauschbehaftetere (z. B. eine CSAC (Chip-Scale-Atomuhr)) — dieser Kontrast ist der Sinn des Demonstrators.
Es ist kein Detektor für Multi-Satelliten-RAIM (Empfänger-autonome Integritätsüberwachung). Es gibt keine satellitenübergreifenden Pseudorange-Residuen, kein Schutzniveau und kein P_HMI. Der Test Innovation gegen Sigma hat dieselbe mathematische Form wie die klassische RAIM-Fehlererkennung (Brown), aber die Zahl ist eine analytische Grenze für eine gegebene Uhr und keine RAIM-Implementierung, und sie ist nur im Rahmen eines konfigurierten Spoofing-Szenarios aussagekräftig (siehe den Szenariotyp spoof, der einen tatsächlichen, anwachsenden Angriff einspeist).
Die Ausgabe sagt dies selbst. Die Typen clock, orbit, hybrid und fusion konfigurieren keinen Angriff; ihre einzeilige Zusammenfassung gibt daher security n/a (no attack) statt einer Zahl aus, und ihr Ergebnisdokument kennzeichnet fom.security in seinem Block figure_tiers mit applicable: false samt Begründung. Der Wert selbst bleibt im Dokument für alle, die die Grenze wollen.
Echtes Snapshot-, Solution-Separation- und ARAIM-RAIM (src/raim.rs)#
Ein echtes RAIM im Positionsbereich ist in src/raim.rs implementiert, getrennt vom oben beschriebenen Selbstkonsistenz-FoM:
- Residuenüberwachung über mehrere Satelliten — es baut die Sichtlinien-Geometriematrix zu den sichtbaren Satelliten auf, bildet die Kleinste-Quadrate-Lösung für Position und Uhr und prüft die Summe der quadrierten Residuen.
- χ²-Fehlererkennung —
SSE/σ²(SSE: Summe der quadrierten Residuen) ist unter der Hypothese ohne Fehler χ²(n−4); oberhalb vonchi2_{1-P_fa}(n-4)wird ein Fehler erklärt. Die χ²-Schwellen stammen aus einer abhängigkeitsfreien Auswertung der regularisierten unvollständigen Gammafunktion (exakt, ohne Tabellen). - Steigungsbasiertes HPL / VPL —
max_i(slope_i)·pbias·σ, wobeislope_idie satellitenbezogene Empfindlichkeit des Positionsfehlers aus der Hat-Matrix ist undpbiasder nichtzentrale χ²-Bias, der die konfigurierte Wahrscheinlichkeit einer NichterkennungP_mderfüllt. - Solution-Separation-RAIM (MHSS: Multiple-Hypothesis Solution Separation) — für die Lösung mit allen sichtbaren Satelliten und jede Teillösung mit Ausschluss eines einzelnen Satelliten erkennt und identifiziert die Separation der verschachtelten Schätzer
Δ_k = x_k − x₀den fehlerhaften Satelliten und speist die Schutzniveau-Grenze. - Budget für das Integritätsrisiko (P_HMI) von ARAIM (fortgeschrittene Empfänger-autonome Integritätsüberwachung) —
araim_raimlöst das kleinste HPL/VPL, dessen summierte Wahrscheinlichkeit gefährlich irreführender InformationP_HMI = Σ_k p_fault,k · Q((PL − T_k)/σ_k)(Blanch et al., Baseline ARAIM) eine ausdrückliche Zuteilung des Integritätsrisikos erfüllt, und meldet das Risiko, das die Niveaus erreichen — so lässt sich die Integrität direkt gegen die Alarmgrenze abwägen, statt sie implizit in einem festen MultiplikatorK_mdzu belassen. - Stanford-ESA-Integritätsdiagramm (ESA: Europäische Weltraumorganisation) — ein Akkumulator je Epoche ordnet
(error, PL)den Bereichen Verfügbar / System nicht verfügbar / Irreführend / Gefährlich irreführend zu und liefert so eine Verfügbarkeitszusammenfassung. - Durchgängig erreichbar — der Szenariotyp
integrityführt das Obige über eine SGP4- (Simplified General Perturbations 4) oder Kepler-Konstellation aus, oder über eine aus echten TLEs (Zwei-Zeilen-Elementsätzen) oder einer RINEX-Navigationsdatei (Receiver Independent Exchange Format) gelesene, und gibt gegen die konfigurierten Alarmgrenzen eine Verfügbarkeitskarte von HPL/VPL je Epoche aus (scenarios/integrity-raim.toml). Derselbe Lauf exportiert ein vertikales Stanford-Diagramm: In jeder geschützten Epoche wird eine gesetzte, reproduzierbare Ziehung eines fehlerfreien Entfernungsfehlers über die Geometrie auf einen tatsächlichen Vertikalfehler abgebildet und gegen das VPL und die vertikale Alarmgrenze eingeordnet, sodass das JSON-Ergebnis (JavaScript Object Notation) und die CLI-Zusammenfassung (Kommandozeilenschnittstelle) die Zahlen je Bereich enthalten (Integritätsereignisse und HMI: gefährlich irreführende Information) — nicht nur einen Verfügbarkeitsanteil. Auf dem mitgeliefertenscenarios/integrity-raim.tomlmeldet der Lauf 344 von 361 Epochen verfügbar (95,3 %) bei einer horizontalen Alarmgrenze von 40 m und einer vertikalen von 50 m, mit 0 Integritätsereignissen und 0 HMI. - ARAIM mit zwei Konstellationen und Integrity Support Message —
araim_dual_raimergänzt den konstellationsweiten Fehlermodus: Neben den Hypothesen fehlerfrei und einzelner Satellit trägt jede Konstellation eine Hypothese bei, die alle ihre Satelliten entfernt, mit der A-priori-WahrscheinlichkeitP_const, zur selben MHSS-Summe des Integritätsrisikos. DieIntegritySupportMessage(ISM) trägt die Nutzer-Entfernungsgenauigkeit für die Integrität (σ_URA), den Effektivwert der Genauigkeit (σ_URE), den maximalen nominalen Biasb_nom, der einseitig in jeden Modus einfließt, sowie die A-priori-WahrscheinlichkeitenP_satundP_const; ihr Referenzsatz der WG-C (Working Group C der Kooperation zwischen der Europäischen Union und den Vereinigten Staaten zur Satellitennavigation, deren ARAIM-Untergruppe die Referenz veröffentlicht) lautet σ_URA = 0,75 m, σ_URE = 0,67 m, b_nom = 0,75 m, P_sat = 1e-5 und P_const = 1e-4.P_const = 0reproduziert das Ergebnis vonaraim_raimmit einem einzelnen Fehler bitgenau. Der Typintegritynimmt diesen Pfad mitaraim_dual = true(scenarios/araim-gps-galileo.toml: GPS + Galileo, 48 Satelliten, 145 von 145 Epochen verfügbar bei denselben Alarmgrenzen). - Schutzniveaus gegen veröffentlichte Referenzvektoren — der Typ
araim-reference-checkführtaraim_protection_levelundaraim_integrity_riskder Engine auf den eigenen durchgerechneten Beispielen der ARAIM-Untergruppe der WG-C aus (das Reference Airborne Algorithm Description Document v3.1, 2019, Anhang D, und der Milestone-3-Bericht, 2016, Anhang A). Die größte Differenz der vertikalen/horizontalen Schutzniveaus am Abnahmevektor beträgt 0,0437 m gegenüber der eigenen Toleranz der Dokumente von 0,05 m. Diese Zeile ist inVERIFICATION-MATRIX.mdVALIDATED: Sie prüft die Schutzniveau-Gleichung, keine operative ISM und keinen Empfänger.
Die verbleibende Lücke (Roadmap)#
Was raim.rs noch nicht leistet:
- es ist nicht in das FoM der Uhr-/Holdover-Szenarien eingebunden — diese Pakete melden weiterhin die oben beschriebene Integritätsgröße der Filter-Selbstkonsistenz, kein HPL/VPL;
- die Fehlerhypothesen sind der fehlerfreie Fall, einzelne Satelliten und ganze Konstellationen — gleichzeitige Fehler auf Teilmengen von zwei oder mehr Satelliten (SV: Space Vehicle, also ein Satellit) werden nicht modelliert;
- die ISM ist ein konfigurierbarer Parametersatz (mit den Referenzwerten der WG-C), keine ausgestrahlte operative Nachricht und kein validiertes Bedrohungsmodell;
- Fehlererkennung und -ausschluss (FDE) gibt es nur für einzelne Satelliten und nur als Snapshot: Die Solution Separation benennt den fehlerhaften Satelliten, und
snapshot_raim_fdelöst jeden Ausschluss eines einzelnen Satelliten neu und gibt den ausgeschlossenen Satelliten mit dem Chi-Quadrat-Test und den Schutzniveaus der verbleibenden Teilmenge zurück, aber es wird keine ausschlussgeschützte Position gemeldet, und der Szenariotypintegrityführt den Ausschlussschritt nicht aus.
Die Kerne für Snapshot, Solution Separation und ARAIM werden an echter Geometrie aus präzisen Bahnen des IGS (International GNSS Service) (SP3: Standard Product 3) erprobt, nicht allein an synthetischen Konstellationen: tests/igs_real_data.rs bildet die Sichtlinien-Geometrie aus der ersten Epoche eines echten IGS-SP3-Produkts an einer realen Bodenstation und prüft, dass die Schutzniveaus endlich sind und innerhalb der APV-I-Alarmgrenzen (Anflug mit vertikaler Führung) von 40 m horizontal und 50 m vertikal liegen, dass ein Pseudorange-Bias von 60 m den χ²-Monitor auslöst, dass die Solution Separation den fehlerhaften Satelliten identifiziert und dass die Niveaus von ARAIM das zugeteilte P_HMI erfüllen. tests/araim_dual_real_data.rs führt den Pfad mit zwei Konstellationen auf den echten Celestrak-Katalogen für GPS und Galileo vom 2026-06-07 aus, propagiert auf eine gemeinsame Epoche (siehe REAL_TLE_GUIDE.md §3). Ein tiefergehender Gegenvergleich — Schutzniveaus Epoche für Epoche gegen gLAB (das GNSS-Lab Tool, eine von der ESA verbreitete Software-Suite zur Verarbeitung von GNSS-Daten) über einen vollständigen RINEX-Beobachtungsbogen zu diffen — würde Parität im Empfängerbereich ergänzen. Das ist nicht erledigt: Der Typ pvt berechnet aus echten RINEX-Beobachtungen eine Code-Einzelpunktposition, aber kein Schutzniveau aus dieser Lösung wurde mit dem von gLAB verglichen.
raim.rs ist also ein echter Kern für Schutzniveau und Integritätsrisiko, erreichbar über die Szenariotypen integrity und araim-reference-check, erprobt an echter Referenzbahn-Geometrie und gegen die Referenzvektoren der WG-C geprüft. Fehler auf Teilmengen mehrerer Satelliten, Parität mit gLAB im Empfängerbereich und die Einbindung in das Uhr-FoM bleiben Roadmap-Punkte, und nichts davon ist ein Zertifizierungsnachweis.
Siehe auch#
GLOSSARY.md— einzeilige Definitionen jedes FoM und jeder Abkürzung.ARAIM_REFERENCE.md— die ISM-Parameter und die Referenzvektoren der WG-C.SLOT-TIMING.md— das Zeitgebungs-Schutzniveau (TPL) einer im Holdover laufenden Uhr, das an die Erkennung gebunden ist.VALIDATION.md— welche Größen referenzvalidiert sind und welche Selbstkonsistenzprüfungen.src/security.rs— die Herleitung der Grenze der Spoof-Erkennbarkeit.
RAIM neben den Gütemaßen für Uhr-Holdover (0,36, optional)#
Ein Uhr-Szenario kann einen Abschnitt [integrity] (src/clock_integrity.rs) enthalten: einen Standort (lat_deg, lon_deg, height_m), Konstellations-Voreinstellungen (systems, Standard gps-baseline), eine Maske, ein Sigma der Entfernungsresiduen, die Wahrscheinlichkeiten für Fehlalarm und Nichterkennung, die horizontalen und vertikalen Alarmgrenzen, einen Epochenabstand und einen optionalen angegebenen Bias auf einem Satelliten. Der Lauf meldet dann einen eigenen Block integrity_fom: je Epoche die sichtbaren Satelliten, die Snapshot-RAIM-Schutzniveaus und ein Urteil (available, alarm, unavailable-pl-above-al, unavailable-too-few-satellites, unavailable-gnss-denied) sowie die Zählwerte und die Verfügbarkeit über den Lauf. Solange der Zeitverlauf GNSS als verwehrt ausweist, ist RAIM nicht verfügbar und es wird nichts extrapoliert; ein degradiertes Fenster wird als nominal ausgewertet. Die Gütemaße für Holdover bleiben unverändert, und ohne den Abschnitt ist die Ausgabe byte-identisch. MODELLED: ein repräsentativer Voreinstellungshimmel, synthetische Residuen und angegebene Grenzen. Es braucht runs = 1.
Die Reproduktion der maximalen URA aus Milestone 3 der ARAIM der WG-C von EU und USA (CAP-05c)#
Ein früherer Plan versprach einen Vergleich mit „Table A-3“ einer technischen Notiz zu EU-ARAIM. Für diese Tabelle konnte keine öffentliche Quelle gefunden werden (die öffentlichen Berichte der Milestones 1 bis 3 der ARAIM-Technical-Subgroup der Working Group C von EU und USA haben keine Table A-3); dieser Vergleich ist daher zurückgezogen, und unter diesem Namen wird nichts versprochen.
Stattdessen wird der öffentliche Bericht versucht: der Milestone-3-Bericht (25. Februar 2016, Kopie von GPS.gov, SHA-256 156147e1...13d8), Tabellen 5, 6 und 7, die für jede Konstellationskonfiguration und für RNP 0,1 und RNP 0,3 das größte sigma_URA ausweisen, für das 90 % der Nutzer eine Verfügbarkeit von 99,5 % haben. Zwölf gedruckte Einträge (die Zeilen Depleted und Baseline der Dualfrequenz-Tabellen) werden geprüft, und zwar unter Zielwerten, die in xval/araim-m3/PREREGISTRATION.md vor jedem gewerteten Lauf vorab festgelegt wurden, mit den Abweichungen, die sich nicht beseitigen lassen und dort angegeben sind: keine Almanach-Dateien, Walker-Schalen statt der realen Slots, ein gröberes Gitter und ein gröberer Schritt sowie der horizontale Pfad nach ADD v4.2 der Engine anstelle des eigenen Textes des Berichts. Die Tabellen 8 bis 13 (Einzelfrequenz) und die Optimistic-Zeilen werden nicht versucht, mit den dort genannten Gründen. Ergebnis: 8 von 12 Einträgen reproduziert, 4 NOT MET (festgeschrieben): die Einträge mit zwei Konstellationen und alle Einträge nur mit Galileo stimmen überein (einschließlich der N/A-Zeilen), der Eintrag Dual Depleted RNP 0,1 erreicht eine Abdeckung von 0,847 bei 9 m gegenüber den gedruckten 9 m (nötig wären 0,90), und drei Einträge nur mit GPS verfehlen weit (Abdeckung 0,70 bei 4 m, 0,58 bei 6 m, 0,65 bei 10 m gegenüber gedruckten 4 m, 6 m und „>10 m“). Die Fehlschläge nur mit GPS können daher rühren, dass die gleichförmige Walker-Schale für die realen GPS-Slots steht (D1); das ist eine Hypothese, kein Befund. Das Ergebnis bleibt MODELLED, wie auch immer es ausfällt. Die Studie ist src/bin/gen_araim_m3_study.rs; ihre gemessenen Abdeckungen stehen in xval/araim-m3/results.json und werden von tests/araim_m3_reproduction.rs gewertet. Der Bericht selbst wird zitiert, nicht mitgeliefert.