Integridade e segurança: o que o Kshana modela e o que não modela
O Kshana comunica duas figuras de mérito (FoM) — Integridade e Segurança — que são fáceis de confundir com as grandezas de nível aeronáutico com o mesmo nome. Esta página expõe com clareza o que são hoje, o que não são e o que o roteiro acrescenta. Se está a avaliar o Kshana para um contexto de segurança de vidas ou de certificação, leia isto primeiro.
Hoje (v0.37.0)#
FoM de integridade — autoconsistência do filtro#
A FoM de integridade é a fração das amostras de falha de sinal cujo erro de temporização verdadeiro permanece dentro do limite de proteção k-sigma do próprio filtro de Kalman:
integrity = (# outage samples with |error| <= k * phase_sigma) / (# outage samples)
Mede se a incerteza autodeclarada do filtro é honesta quanto ao seu próprio erro durante uma falha de GNSS (global navigation satellite system). É uma verificação de consistência interna útil.
Não é:
- um nível de proteção horizontal/vertical (HPL/VPL) — não existe sequer um nível de proteção no domínio da posição (os pacotes de relógio são do domínio da temporização);
- um risco de integridade / probabilidade de informação perigosamente enganadora (P_HMI);
- uma comparação com um limite de alerta;
- aderente à norma RTCA DO-229E / DO-316 ou EUROCAE ED-259A (RTCA: Radio Technical Commission for Aeronautics; EUROCAE: European Organisation for Civil Aviation Equipment) nem a qualquer outra norma de certificação.
FoM de segurança — limite analítico de deteção de spoofing#
A FoM de segurança é um limite de deteção de spoofing baseado na estabilidade do relógio: dado o ruído de um relógio (PSD (densidades espetrais de potência) de frequência branca e de passeio aleatório) e uma janela de monitorização, é a margem de deteção analítica de um monitor de consistência de relógio único face a um spoofing de falso tempo de rampa lenta. Um relógio mais silencioso (por exemplo, um relógio ótico) deteta um spoofing menor e mais lento do que um mais ruidoso (por exemplo, um CSAC (relógio atómico à escala de chip)) — esse contraste é o objetivo do demonstrador.
Não é um detetor RAIM (receiver autonomous integrity monitoring) com vários satélites. Não há resíduos de pseudodistância entre satélites, nem nível de proteção, nem P_HMI. O teste de inovação face a sigma tem a mesma forma matemática da deteção de falhas RAIM clássica (Brown), mas o número é um limite analítico para um dado relógio, não uma implementação de RAIM, e só tem significado no contexto de um cenário de spoofing configurado (ver o tipo de cenário spoof, que injeta um ataque de rampa real).
A saída di-lo. Os tipos clock, orbit, hybrid e fusion não configuram nenhum ataque, pelo que o seu resumo de uma linha apresenta security n/a (no attack) em vez de um número, e o seu documento de resultados marca fom.security como applicable: false, com o motivo, no bloco figure_tiers. O valor em si permanece no documento para quem queira o limite.
RAIM real de instantâneo, de separação de soluções e ARAIM (src/raim.rs)#
Um RAIM genuíno, no domínio da posição, está implementado em src/raim.rs, separado da FoM de autoconsistência acima:
- Monitorização de resíduos com vários satélites — constrói a matriz de geometria da linha de vista para os satélites visíveis, forma a solução de posição/relógio por mínimos quadrados e testa a soma dos quadrados dos resíduos.
- Deteção de falhas por χ² —
SSE/σ²(SSE: soma dos quadrados dos resíduos) é χ²(n−4) sob a hipótese de ausência de falha; é declarada uma falha acima dechi2_{1-P_fa}(n-4). Os limiares de χ² provêm de uma avaliação da função gama incompleta regularizada sem dependências (exata, sem tabelas). - HPL / VPL baseados em declive —
max_i(slope_i)·pbias·σ, em queslope_ié a sensibilidade do erro de posição por satélite obtida a partir da matriz de projeção epbiasé o viés de χ² não central que satisfaz a probabilidade de falha de deteção configuradaP_md. - RAIM de separação de soluções (MHSS: multiple-hypothesis solution separation) — para a solução com todos os satélites em vista e para cada subsolução com exclusão de um único satélite, a separação do estimador aninhado
Δ_k = x_k − x₀deteta e identifica o satélite com falha e alimenta o limite do nível de proteção. - Orçamento de risco de integridade (P_HMI) do ARAIM (advanced receiver autonomous integrity monitoring) —
araim_raimresolve o menor HPL/VPL cuja probabilidade somada de informação perigosamente enganadoraP_HMI = Σ_k p_fault,k · Q((PL − T_k)/σ_k)(Blanch et al., Baseline ARAIM) satisfaz uma atribuição explícita de risco de integridade, e comunica o risco que os níveis alcançam — de modo que a integridade possa ser trocada diretamente pelo limite de alerta, em vez de ficar implícita num multiplicador fixoK_md. - Diagrama de integridade Stanford–ESA (ESA: European Space Agency) — um acumulador por época classifica
(error, PL)em regiões Disponível / Indisponível do sistema / Enganador / Perigosamente enganador para um resumo de disponibilidade. - Acessível de ponta a ponta — o tipo de cenário
integrityexecuta o que precede sobre uma constelação SGP4 (Simplified General Perturbations 4) ou kepleriana, ou lida a partir de TLE reais (conjuntos de elementos de duas linhas) ou de um ficheiro de navegação RINEX (Receiver Independent Exchange Format), e emite um mapa de disponibilidade de HPL/VPL por época face aos limites de alerta configurados (scenarios/integrity-raim.toml). A mesma execução exporta um diagrama de Stanford vertical: em cada época protegida, um sorteio reprodutível, com semente, de erro de distância sem falha é mapeado através da geometria para um erro vertical efetivo e classificado face ao VPL e ao limite de alerta vertical, de modo que o resultado JSON (JavaScript Object Notation) e o resumo da CLI (command-line interface) incluam as contagens por região (eventos de integridade e HMI: hazardously misleading information, informação perigosamente enganadora) — e não apenas uma fração de disponibilidade. Noscenarios/integrity-raim.tomlincluído, a execução comunica 344 de 361 épocas disponíveis (95,3 %) com um limite de alerta de 40 m na horizontal e 50 m na vertical, com 0 eventos de integridade e 0 HMI. - ARAIM com duas constelações e uma mensagem de apoio à integridade —
araim_dual_raimacrescenta o modo de falha de toda a constelação: além das hipóteses sem falha e de um único satélite, cada constelação contribui com uma hipótese que remove todos os seus satélites, com a probabilidade a prioriP_const, para a mesma soma de risco de integridade MHSS. AIntegritySupportMessage(ISM) transporta a precisão de distância do utilizador para a integridade (σ_URA), a raiz do valor quadrático médio da precisão (σ_URE), o viés nominal máximob_nomincorporado de forma unilateral em cada modo, e as probabilidades a prioriP_sateP_const; o seu conjunto de referência do WG-C (Working Group C da cooperação União Europeia–Estados Unidos em navegação por satélite, cujo subgrupo técnico de ARAIM publica a referência) é σ_URA = 0,75 m, σ_URE = 0,67 m, b_nom = 0,75 m, P_sat = 1e-5 e P_const = 1e-4.P_const = 0reproduz bit a bit o resultado de falha única dearaim_raim. O tipointegritysegue este caminho comaraim_dual = true(scenarios/araim-gps-galileo.toml: GPS + Galileo, 48 satélites, 145 de 145 épocas disponíveis com os mesmos limites de alerta). - Níveis de proteção face a vetores de referência publicados — o tipo
araim-reference-checkexecutaaraim_protection_levelearaim_integrity_riskdo motor sobre os exemplos resolvidos do próprio subgrupo ARAIM do WG-C (o Reference Airborne Algorithm Description Document v3.1, 2019, Apêndice D, e o Milestone 3 Report, 2016, Anexo A). A maior diferença de nível de proteção vertical/horizontal no vetor de aceitação é de 0,0437 m face à tolerância dos próprios documentos de 0,05 m. Esta linha é VALIDATED emVERIFICATION-MATRIX.md: verifica a equação do nível de proteção, não uma ISM operacional nem um recetor.
A lacuna restante (roteiro)#
O que raim.rs ainda não faz:
- não está integrado na FoM dos cenários de relógio/holdover — esses pacotes continuam a comunicar a figura de integridade de autoconsistência do filtro acima, não um HPL/VPL;
- as hipóteses de falha são o caso sem falha, os satélites individuais e as constelações inteiras — as falhas simultâneas em subconjuntos de dois ou mais satélites (SV: space vehicle, isto é, um satélite) não estão modeladas;
- a ISM é um conjunto de parâmetros configurável (com os valores de referência do WG-C), não uma mensagem operacional difundida nem um modelo de ameaças validado;
- a deteção e exclusão de falhas (FDE) é só de um único satélite e de instantâneo: a separação de soluções identifica o satélite com falha, e
snapshot_raim_fdevolta a resolver cada exclusão de um único satélite e devolve o satélite excluído com o teste do qui-quadrado e os níveis de proteção do subconjunto restante, mas não é comunicada nenhuma posição protegida por exclusão, e o tipo de cenáriointegritynão executa o passo de exclusão.
Os núcleos de instantâneo, de separação de soluções e de ARAIM são exercitados com geometria real de órbitas precisas do IGS (International GNSS Service) (SP3: Standard Product 3), e não apenas com constelações sintéticas: tests/igs_real_data.rs forma a geometria da linha de vista a partir da primeira época de um produto SP3 genuíno do IGS numa estação terrestre real, e verifica que os níveis de proteção são finitos e se encontram dentro dos limites de alerta APV-I (approach with vertical guidance) de 40 m na horizontal e 50 m na vertical, que um viés de pseudodistância de 60 m dispara o monitor de χ², que a separação de soluções identifica o satélite com falha, e que os níveis do ARAIM satisfazem o P_HMI atribuído. tests/araim_dual_real_data.rs executa o caminho de duas constelações nos catálogos reais Celestrak de GPS e Galileo de 2026-06-07, propagados para uma época comum (ver REAL_TLE_GUIDE.md §3). Uma verificação cruzada mais profunda — comparar os níveis de proteção época a época com o gLAB (a GNSS-Lab Tool, um conjunto de processamento de dados GNSS distribuído pela ESA) ao longo de um arco completo de observações RINEX — acrescentaria paridade no domínio do recetor. Não está feita: o tipo pvt calcula uma posição de ponto único por código a partir de observações RINEX reais, mas nenhum nível de proteção dessa solução foi comparado com o do gLAB.
Assim, raim.rs é um núcleo real de nível de proteção e de risco de integridade, acessível a partir dos tipos de cenário integrity e araim-reference-check, exercitado com geometria real de órbitas de referência e verificado face aos vetores de referência do WG-C. As falhas em subconjuntos de vários satélites, a paridade com o gLAB no domínio do recetor e a integração na FoM do relógio continuam a ser itens do roteiro, e nada disto é evidência de certificação.
Ver também#
GLOSSARY.md— definições de uma linha de cada FoM e abreviatura.ARAIM_REFERENCE.md— os parâmetros da ISM e os vetores de referência do WG-C.SLOT-TIMING.md— o nível de proteção de temporização (TPL) de um relógio em deriva livre, que está condicionado à deteção.VALIDATION.md— que grandezas são validadas face a referências e quais são verificações de autoconsistência.src/security.rs— a derivação do limite de deteção de spoofing.
RAIM ao lado das figuras de mérito de holdover do relógio (0,36, opcional)#
Um cenário de relógio pode incluir uma secção [integrity] (src/clock_integrity.rs): um local (lat_deg, lon_deg, height_m), predefinições de constelação (systems, por predefinição gps-baseline), uma máscara, um sigma do resíduo de distância, as probabilidades de falso alarme e de falha de deteção, os limites de alerta horizontal e vertical, um espaçamento de épocas e um viés indicado opcional num satélite. A execução comunica então um bloco integrity_fom separado: por época, os satélites em vista, os níveis de proteção RAIM de instantâneo e um veredicto (available, alarm, unavailable-pl-above-al, unavailable-too-few-satellites, unavailable-gnss-denied), e as contagens e a disponibilidade ao longo da execução. Enquanto a cronologia indicar que o GNSS está negado, o RAIM está indisponível e nada é extrapolado; uma janela degradada é avaliada como nominal. As figuras de mérito de holdover não se alteram, e sem a secção a saída é idêntica byte a byte. MODELLED: um céu predefinido representativo, resíduos sintéticos e limites indicados. Requer runs = 1.
A reprodução do URA máximo do Milestone 3 do ARAIM do WG-C UE-EUA (CAP-05c)#
Um plano anterior prometia uma comparação com a "Table A-3" de uma nota técnica do EU-ARAIM. Não foi possível encontrar nenhuma fonte pública dessa tabela (os relatórios públicos Milestone 1 a 3 do ARAIM Technical Subgroup do Working Group C UE-EUA não têm Table A-3), pelo que essa comparação está retirada e nada é prometido com esse nome.
O que se tenta em alternativa é o relatório que é público: o Milestone 3 Report (25 de fevereiro de 2016, cópia do GPS.gov, SHA-256 156147e1...13d8), Tabelas 5, 6 e 7, que apresentam, para cada configuração de constelação e para cada um de RNP 0,1 e RNP 0,3, o maior sigma_URA para o qual 90 % dos utilizadores têm 99,5 % de disponibilidade. Doze entradas apresentadas (as linhas Depleted e Baseline das tabelas de dupla frequência) são verificadas, segundo limiares fixados antecipadamente em xval/araim-m3/PREREGISTRATION.md antes de qualquer execução pontuada, com os desvios que não podem ser removidos indicados aí: sem ficheiros de almanaque, camadas Walker em vez dos slots reais, uma grelha e um passo mais grosseiros, e o caminho horizontal ADD v4.2 do motor em vez do texto do próprio relatório. As Tabelas 8 a 13 (frequência única) e as linhas Optimistic não são tentadas, com os motivos indicados aí. Resultado: 8 de 12 entradas reproduzidas, 4 NOT MET (fixadas): as entradas de duas constelações e todas as entradas só de Galileo coincidem (incluindo as linhas N/A), a entrada dupla Depleted RNP 0,1 atinge uma cobertura de 0,847 a 9 m face aos 9 m apresentados (exige 0,90), e três entradas só de GPS falham por larga margem (cobertura de 0,70 a 4 m, 0,58 a 6 m, 0,65 a 10 m face aos 4 m, 6 m e ">10 m" apresentados). As falhas só de GPS podem dever-se à camada Walker uniforme que substitui os slots reais do GPS (D1); isso é uma hipótese, não uma constatação. O resultado permanece MODELLED seja qual for. O estudo é src/bin/gen_araim_m3_study.rs; as suas coberturas medidas estão em xval/araim-m3/results.json e são pontuadas por tests/araim_m3_reproduction.rs. O próprio relatório é citado, não incluído.