Integridad y seguridad: qué modela Kshana y qué no
Kshana informa de dos figuras de mérito (FoM), Integridad y Seguridad, que es fácil confundir con las magnitudes de grado aeronáutico del mismo nombre. Esta página expone con claridad qué son hoy, qué no son y qué añade la hoja de ruta. Si está evaluando Kshana para un contexto de seguridad de la vida humana o de certificación, lea esto primero.
Hoy (v0.37.0)#
FoM de integridad: autoconsistencia del filtro#
La FoM de integridad es la fracción de muestras de la interrupción cuyo error de temporización real permanece dentro de la propia cota de protección k-sigma del filtro de Kalman:
integrity = (# outage samples with |error| <= k * phase_sigma) / (# outage samples)
Esto mide si la incertidumbre autodeclarada del filtro es honesta sobre su propio error durante una interrupción de GNSS (sistema global de navegación por satélite). Es una comprobación de consistencia interna útil.
No es:
- un nivel de protección horizontal/vertical (HPL/VPL): no hay ningún nivel de protección en el dominio de la posición (los paquetes de reloj son del dominio de la temporización);
- un riesgo de integridad / probabilidad de información peligrosamente engañosa (P_HMI);
- una comparación con un límite de alerta;
- algo ajustado a la norma RTCA DO-229E / DO-316 o EUROCAE ED-259A (RTCA: Radio Technical Commission for Aeronautics; EUROCAE: Organización Europea para el Equipamiento de la Aviación Civil) ni a ningún otro estándar de certificación.
FoM de seguridad: cota analítica de detectabilidad de spoofing#
La FoM de seguridad es una cota de detectabilidad de spoofing basada en la estabilidad del reloj: dado el ruido de un reloj (PSD (densidades espectrales de potencia) de frecuencia blanca y de paseo aleatorio) y una ventana de monitorización, es el margen analítico de detección de un monitor de consistencia de un solo reloj frente a un spoofing de falso tiempo de rampa lenta. Un reloj más silencioso (p. ej., un reloj óptico) detecta un spoofing menor y más lento que uno más ruidoso (p. ej., un CSAC (reloj atómico a escala de chip)); ese contraste es el objetivo del demostrador.
No es un detector RAIM (monitorización autónoma de integridad en el receptor) multisatélite. No hay residuos de pseudodistancia entre satélites, ni nivel de protección, ni P_HMI. La prueba de innovación frente a sigma tiene la misma forma matemática que la detección de fallos del RAIM clásico (Brown), pero la cifra es una cota analítica para un reloj dado, no una implementación de RAIM, y solo tiene sentido en el contexto de un escenario de spoofing configurado (véase el tipo de escenario spoof, que inyecta un ataque de rampa real).
La salida lo indica. Los tipos clock, orbit, hybrid y fusion no configuran ningún ataque, por lo que su resumen de una línea imprime security n/a (no attack) en lugar de una cifra, y su documento de resultados marca fom.security como applicable: false, con el motivo, en su bloque figure_tiers. El valor en sí permanece en el documento para quien quiera la cota.
RAIM real de instantánea, de separación de soluciones y ARAIM (src/raim.rs)#
Un RAIM genuino, en el dominio de la posición, está implementado en src/raim.rs, aparte de la FoM de autoconsistencia anterior:
- Monitorización de residuos multisatélite: construye la matriz de geometría de línea de visión hacia los satélites visibles, forma la solución de posición/reloj por mínimos cuadrados y comprueba la suma de residuos al cuadrado.
- Detección de fallos χ²:
SSE/σ²(SSE: suma de residuos al cuadrado) es χ²(n−4) bajo la hipótesis de ausencia de fallos; se declara un fallo por encima dechi2_{1-P_fa}(n-4). Los umbrales χ² proceden de una evaluación de la gamma incompleta regularizada sin dependencias (exacta, sin tablas). - HPL / VPL basados en pendiente:
max_i(slope_i)·pbias·σ, dondeslope_ies la sensibilidad del error de posición por satélite obtenida de la matriz sombrero ypbiases el sesgo χ² no central que satisface la probabilidad de detección fallida configuradaP_md. - RAIM de separación de soluciones (MHSS: separación de soluciones de múltiples hipótesis): para la solución con todos los satélites a la vista y cada subsolución con exclusión de un solo satélite, la separación de estimadores anidados
Δ_k = x_k − x₀detecta e identifica el satélite con fallo y alimenta la cota del nivel de protección. - Presupuesto de riesgo de integridad (P_HMI) de ARAIM (monitorización autónoma avanzada de integridad en el receptor):
araim_raimresuelve el menor HPL/VPL cuya probabilidad sumada de información peligrosamente engañosaP_HMI = Σ_k p_fault,k · Q((PL − T_k)/σ_k)(Blanch et al., Baseline ARAIM) satisface una asignación explícita de riesgo de integridad, e informa del riesgo que alcanzan los niveles, de modo que la integridad pueda compensarse directamente con el límite de alerta, en lugar de dejarla implícita en un multiplicador fijoK_md. - Diagrama de integridad Stanford–ESA (ESA: Agencia Espacial Europea): un acumulador por época clasifica
(error, PL)en regiones Disponible / Sistema no disponible / Engañosa / Peligrosamente engañosa para un resumen de disponibilidad. - Accesible de extremo a extremo: el tipo de escenario
integrityejecuta lo anterior sobre una constelación SGP4 (Simplified General Perturbations 4) o kepleriana, o una leída de TLE reales (conjuntos de elementos de dos líneas) o de un archivo de navegación RINEX (Receiver Independent Exchange Format), y emite un mapa de disponibilidad de HPL/VPL por época frente a los límites de alerta configurados (scenarios/integrity-raim.toml). La misma ejecución exporta un diagrama de Stanford vertical: en cada época protegida se asigna, a través de la geometría, un sorteo semillado y reproducible de error de distancia sin fallos a un error vertical real, y se clasifica frente al VPL y el límite de alerta vertical, de modo que el resultado JSON (JavaScript Object Notation) y el resumen de la CLI (interfaz de línea de comandos) llevan los recuentos por región (eventos de integridad y HMI: información peligrosamente engañosa), no solo una fracción de disponibilidad. En elscenarios/integrity-raim.tomlincluido, la ejecución informa de 344 de 361 épocas disponibles (95,3 %) con un límite de alerta de 40 m horizontal y 50 m vertical, con 0 eventos de integridad y 0 HMI. - ARAIM de doble constelación con un mensaje de apoyo a la integridad:
araim_dual_raimañade el modo de fallo de toda la constelación: además de las hipótesis sin fallos y de un solo satélite, cada constelación aporta una hipótesis que elimina todos sus satélites, con a prioriP_const, a la misma suma de riesgo de integridad MHSS. ElIntegritySupportMessage(ISM) transporta la exactitud de distancia del usuario para la integridad (σ_URA), la raíz cuadrática media de la exactitud (σ_URE), el sesgo nominal máximob_nomincorporado unilateralmente a cada modo, y los a prioriP_satyP_const; su conjunto de referencia WG-C (Grupo de Trabajo C de la cooperación Unión Europea–Estados Unidos en navegación por satélite, cuyo subgrupo técnico de ARAIM publica la referencia) es σ_URA = 0,75 m, σ_URE = 0,67 m, b_nom = 0,75 m, P_sat = 1e-5 y P_const = 1e-4.P_const = 0reproduce bit a bit el resultado de un solo fallo dearaim_raim. El tipointegritytoma esta vía conaraim_dual = true(scenarios/araim-gps-galileo.toml: GPS + Galileo, 48 satélites, 145 de 145 épocas disponibles con los mismos límites de alerta). - Niveles de protección frente a vectores de referencia publicados: el tipo
araim-reference-checkejecutaaraim_protection_levelyaraim_integrity_riskdel motor sobre los propios ejemplos resueltos del subgrupo ARAIM del WG-C (el Reference Airborne Algorithm Description Document v3.1, 2019, Apéndice D, y el Informe del Hito 3, 2016, Anexo A). La mayor diferencia de nivel de protección vertical/horizontal en el vector de aceptación es de 0,0437 m frente a la tolerancia propia de los documentos de 0,05 m. Esta fila es VALIDATED enVERIFICATION-MATRIX.md: comprueba la ecuación del nivel de protección, no un ISM operativo ni un receptor.
La carencia restante (hoja de ruta)#
Lo que raim.rs aún no hace:
- no está incorporado a la FoM de los escenarios de reloj/holdover: esos paquetes siguen informando de la cifra de integridad de autoconsistencia del filtro anterior, no de un HPL/VPL;
- las hipótesis de fallo son el caso sin fallos, los satélites individuales y las constelaciones enteras; los fallos simultáneos en subconjuntos de dos o más satélites (SV: vehículo espacial, es decir, un satélite) no se modelan;
- el ISM es un conjunto de parámetros configurable (con los valores de referencia del WG-C), no un mensaje operativo difundido ni un modelo de amenazas validado;
- la detección y exclusión de fallos (FDE) es solo de un único satélite y de instantánea: la separación de soluciones nombra el satélite con fallo, y
snapshot_raim_fdevuelve a resolver cada exclusión de un solo satélite y devuelve el satélite excluido con la prueba de chi cuadrado y los niveles de protección del subconjunto restante, pero no se informa de ninguna posición protegida por exclusión, y el tipo de escenariointegrityno ejecuta el paso de exclusión.
Los núcleos de instantánea, de separación de soluciones y de ARAIM se ejercitan con geometría real de órbita precisa del IGS (International GNSS Service) (SP3: Standard Product 3), no solo con constelaciones sintéticas: tests/igs_real_data.rs forma la geometría de línea de visión a partir de la primera época de un producto SP3 real del IGS en una estación terrestre real, y comprueba que los niveles de protección son finitos y están dentro de los límites de alerta APV-I (aproximación con guiado vertical) de 40 m horizontal y 50 m vertical, que un sesgo de pseudodistancia de 60 m activa el monitor χ², que la separación de soluciones identifica el satélite con fallo y que los niveles de ARAIM satisfacen el P_HMI asignado. tests/araim_dual_real_data.rs ejecuta la vía de doble constelación sobre los catálogos reales de GPS y Galileo de Celestrak del 2026-06-07, propagados a una época común (véase REAL_TLE_GUIDE.md §3). Una comprobación cruzada más profunda, contrastando época por época los niveles de protección con gLAB (la GNSS-Lab Tool, un conjunto de procesamiento de datos GNSS distribuido por la ESA) a lo largo de un arco completo de observación RINEX, añadiría paridad en el dominio del receptor. No se ha hecho: el tipo pvt calcula una posición de punto único por código a partir de observaciones RINEX reales, pero ningún nivel de protección de esa solución se ha comparado con el de gLAB.
Así, raim.rs es un núcleo real de nivel de protección y riesgo de integridad, accesible desde los tipos de escenario integrity y araim-reference-check, ejercitado con geometría real de órbitas de referencia y contrastado con los vectores de referencia del WG-C. Los fallos de subconjuntos de varios satélites, la paridad con gLAB en el dominio del receptor y la integración con la FoM del reloj siguen siendo elementos de la hoja de ruta, y nada de esto es evidencia de certificación.
Véase también#
GLOSSARY.md: definiciones de una línea de cada FoM y abreviatura.ARAIM_REFERENCE.md: los parámetros del ISM y los vectores de referencia del WG-C.SLOT-TIMING.md: el nivel de protección de temporización (TPL) de un reloj en deriva libre, que está condicionado a la detección.VALIDATION.md: qué magnitudes están validadas frente a una referencia y cuáles son comprobaciones de autoconsistencia.src/security.rs: la derivación de la cota de detectabilidad de spoofing.
RAIM junto a las figuras de mérito del holdover del reloj (0,36, opcional)#
Un escenario de reloj puede incluir una sección [integrity] (src/clock_integrity.rs): un emplazamiento (lat_deg, lon_deg, height_m), preajustes de constelación (systems, por defecto gps-baseline), una máscara, una sigma de residuo de distancia, las probabilidades de falsa alarma y de detección fallida, los límites de alerta horizontal y vertical, un espaciado de épocas y un sesgo declarado opcional en un satélite. La ejecución informa entonces de un bloque integrity_fom aparte: por época, los satélites a la vista, los niveles de protección RAIM de instantánea y un veredicto (available, alarm, unavailable-pl-above-al, unavailable-too-few-satellites, unavailable-gnss-denied), y los recuentos y la disponibilidad a lo largo de la ejecución. Mientras la cronología dice que el GNSS está denegado, el RAIM no está disponible y no se extrapola nada; una ventana degradada se evalúa como nominal. Las figuras de mérito del holdover no cambian, y sin la sección la salida es idéntica byte a byte. MODELLED: un cielo preajustado representativo, residuos sintéticos y límites declarados. Requiere runs = 1.
La reproducción del URA máximo del Hito 3 de ARAIM del WG-C UE-EE. UU. (CAP-05c)#
Un plan anterior prometía una comparación con la "Table A-3" de una nota técnica de EU-ARAIM. No se ha podido encontrar ninguna fuente pública de esa tabla (los informes públicos de los Hitos 1 a 3 del Subgrupo Técnico de ARAIM del Grupo de Trabajo C UE-EE. UU. no tienen ninguna Table A-3), de modo que esa comparación queda retirada y no se promete nada con ese nombre.
Lo que se intenta en su lugar es el informe que sí es público: el Informe del Hito 3 (25 de febrero de 2016, copia de GPS.gov, SHA-256 156147e1...13d8), Tablas 5, 6 y 7, que imprimen, para cada configuración de constelación y para cada uno de RNP 0,1 y RNP 0,3, la mayor sigma_URA para la cual el 90 % de los usuarios tiene una disponibilidad del 99,5 %. Se comprueban doce entradas impresas (las filas Depleted y Baseline de las tablas de doble frecuencia), con umbrales preregistrados en xval/araim-m3/PREREGISTRATION.md antes de cualquier ejecución puntuada, con las desviaciones que no pueden eliminarse declaradas allí: sin archivos de almanaque, capas Walker en lugar de las ranuras reales, una rejilla y un paso más gruesos, y la vía horizontal ADD v4.2 del motor en lugar del texto propio del informe. Las Tablas 8 a 13 (frecuencia única) y las filas Optimistic no se intentan, por los motivos indicados allí. Resultado: 8 de 12 entradas reproducidas, 4 NOT MET (fijadas): las entradas de doble constelación y todas las de solo Galileo coinciden (incluidas las filas N/A), la entrada dual Depleted de RNP 0,1 alcanza una cobertura de 0,847 a 9 m frente a los 9 m impresos (necesita 0,90), y tres entradas de solo GPS fallan por mucho (cobertura 0,70 a 4 m, 0,58 a 6 m, 0,65 a 10 m frente a los 4 m, 6 m y ">10 m" impresos). Los fallos de solo GPS pueden deberse a que la capa Walker uniforme sustituye a las ranuras reales de GPS (D1); es una hipótesis, no un hallazgo. El resultado sigue siendo MODELLED sea el que sea. El estudio es src/bin/gen_araim_m3_study.rs; sus coberturas medidas están en xval/araim-m3/results.json y las puntúa tests/araim_m3_reproduction.rs. El informe en sí se cita, no se incorpora.