Машинний переклад, не перевірений носієм мови. Еталоном є англійська версія.

Compliance і випробувальний стенд (bench)Редагувати на GitHubДжерело: docs/compliance/README.md

Зіставлення compliance

Покупці та виробники приймачів відповідають перед публічними рамками стійкості. Ця тека зіставляє те, що Kshana обчислює і записує, з цими рамками рядок за рядком, а kshana compliance-report заповнює зіставлення за прогонами, які у вас справді є.

Формулювання. Виходи Kshana підтримують докази для вимоги. Вони не є оцінкою чи схваленням жодного виробу, і жоден із цих файлів не є заявою органу оцінювання; Kshana таким органом не є. Текст вимог переказано, а не відтворено.

Рамка Файл
Рамка відповідності стійкого PNT (US DHS Resilient PNT Conformance Framework), v2.0 dhs-rpcf.md
Настанови IMO щодо завад GNSS для суден imo-ships.md
Настанови EASA щодо завад GNSS для авіації easa-aviation.md
Директива ЄС NIS2, стаття 21 nis2-art21.md
EN 16803 (платний стандарт; лише за частинами та номерами пунктів, видимими в каталозі) en-16803.md
NIST IR 8323r1, Базовий профіль PNT (січень 2023) nist-ir-8323r1.md

Пакети стандартів (0,38) перетворюють рамку на сценарії з оцінюванням: кожен пакет має сценарії, пороги, визначені до прогону, і рядки, для яких він підтримує докази. kshana standards-pack list їх показує.

Пакет Файл
DHS Resilient PNT Conformance Framework, профілі випробувань для рівнів 1–4 dhs-rpcf-test-profiles.md
IMO MSC.1/Circ.1575, обробка даних PNT на судні: рівні точності та цілісність imo-circ-1575.md
ICAO Doc 9849, додаток F, моніторинг, оцінювання та пом'якшення завад GNSS icao-doc9849-appf.md

Кожен файл перелічує свої першоджерела з версією, URL, датою прочитання та тим, що було і чого не було перевірено. Джерела прочитано 2026-10-09 (профіль NIST — 2026-10-18; бюлетень EASA та сторінки каталогу EN 16803 перевірено повторно 2026-10-10). Якщо джерело вдалося прочитати лише через дзеркало або сторінку каталогу, файл про це зазначає.

Кожне випробування трьох пакетів стандартів з оцінюванням, за реальними прогонами рушія v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 досягнуто, 1 не досягнуто, 2 потребують вхідних даних; imo-circ-1575: 1 досягнуто, 4 не досягнуто, 2 потребують вхідних даних; icao-doc9849-appf: 6 досягнуто, 0 не досягнуто, 2 потребують вхідних даних. Усього 13 досягнуто, 5 не досягнуто і 6 потребують вхідних даних, яких рушій не має (журнал приймача або документація на обладнання). Кожен поріг було визначено до прогону; невдача залишається невдачею. Досягнутий поріг означає лише те, що змодельований сценарій досяг визначеного порогу, і нічого не каже про виріб. Пакети підтримують докази для рядків, які вони наводять; вони не є оцінюванням. Лише консультативно: результат аналізу від дослідницького та інженерного інструмента; це не навігаційне обладнання із затвердженням типу і не послуга забезпечення безпеки життя; його не можна використовувати як єдину підставу для будь-якого навігаційного рішення або рішення щодо безпеки.Кожне випробування трьох пакетів стандартів з оцінюванням, за реальними прогонами рушія v0.40.0 (`kshana standards-pack run`): dhs-rpcf: 6 досягнуто, 1 не досягнуто, 2 потребують вхідних даних; imo-circ-1575: 1 досягнуто, 4 не досягнуто, 2 потребують вхідних даних; icao-doc9849-appf: 6 досягнуто, 0 не досягнуто, 2 потребують вхідних даних. Усього 13 досягнуто, 5 не досягнуто і 6 потребують вхідних даних, яких рушій не має (журнал приймача або документація на обладнання). Кожен поріг було визначено до прогону; невдача залишається невдачею. Досягнутий поріг означає лише те, що змодельований сценарій досяг визначеного порогу, і нічого не каже про виріб. Пакети підтримують докази для рядків, які вони наводять; вони не є оцінюванням. Лише консультативно: результат аналізу від дослідницького та інженерного інструмента; це не навігаційне обладнання із затвердженням типу і не послуга забезпечення безпеки життя; його не можна використовувати як єдину підставу для будь-якого навігаційного рішення або рішення щодо безпеки.

Звіт#

kshana compliance-report spoof-detect.result.json integrity-raim.result.json session.result.json

записує compliance-report.compliance.md і compliance-report.compliance.json (--out <base> змінює назву). Вхідними даними є файли результатів попередніх прогонів: прогін сценарію записує <name>.result.json поруч із <name>.toml, а kshana receiver-trust записує власний. Вид кожного прогону зчитується зі сценарного файлу поруч із результатом, зі вмісту результату receiver-trust або з верхньорівневого kind і має бути видом, відомим рушію. Результат зазначається як невикористаний, з причиною, і нічого не зараховується, якщо його вид не вдається знайти, він не є відомим видом або сусідній сценарій і власне kind результату розходяться. (scenario_hash результату та хеш файлу сценарію не порівнюються: перше рушій обчислює за розібраним сценарієм, а хеш файлу — за текстом, тож це різні величини.)

Сама позначка виду не є доказом. Прогін зараховується для можливості лише тоді, коли його результат містить і поля, які пише цей вид (наприклад, результат jamming потребує своїх показників якості та рядків за епохами; результат integrity потребує кількостей вибірок). Поля перелічено в src/compliance/mapping.rs (KIND_FIELDS), і результат, у якому одного бракує, не зараховується. Хеш, що не є шістнадцятковим, не подається як хеш. Результат receiver-trust, кількості в якому не є цілими числами або кількість виявлених чи узгоджених перевищує кількість придатних до оцінювання, виключається і зазначається як невикористаний.

Для кожного рядка звіт дає одне з такого:

Статус Значення
evidenced кожна можливість, названа в рядку, має в наборі щонайменше один прогін
partly-evidenced деякі мають
not-evidenced жодна не має
out-of-scope жоден вихід Kshana не стосується цього рядка

Стовпець розриву друкується для кожного рядка, зокрема й тих, що мають докази: прогін, який підтримує докази для можливості, усе одно залишає більшу частину вимоги іншим доказам. Звіт повторює правило формулювань на початку. --mapping друкує статичні таблиці, а --sources — перелік джерел.

Прогони receiver-trust також додають кількості, які самі зазначають (виявлені події з оцінюваних, узгоджені прогнози з оцінюваних). Вони описують цей журнал, оцінений за подіями та допусками, визначеними до прогону, і подаються так, як їх зазначає прогін.

Можливості#

Можливість Вихід Види прогонів
Оцінка довіри за журналом приймача стан довіри за епохами з власного журналу реального приймача, часи тривог і узгодженість із подіями, визначеними до прогону receiver-trust
Вплив глушіння на бюджет лінії відношення несівної до густини шуму та стан захоплення для кожного супутника за визначеної геометрії глушника jamming, lunar-jamming, conflict-resilience
Виявлення спуфінгу та міконінгу (meaconing) рішення детектора та здатність детектора розрізняти за визначеної атаки спуфінгу spoof, spoof-detect, impairment-eval
Моніторинг цілісності та рівні захисту рівні захисту, доступність відносно меж тривоги та результати виявлення збоїв integrity, araim-reference-check, lunar-integrity
Holdover та інерційне проходження зростання похибки позиції або часу, поки GNSS недоступна, відносно визначеного порогу clock, inertial, gnss-ins, ins-trn-coast, hybrid, hybrid-ukf, fusion, timetransfer, quantum-gnss-free-nav, quantum-time-transfer
Альтернативні та різноманітні джерела PNT навігаційні або часові характеристики від джерел, незалежних від основного діапазону GNSS combined-altpnt, terrain-nav, terrain-slam, gravity-map, leo-pass, leo-pvt, leo-pnt-chain, hybrid-optical-rf, ntn-positioning, hybrid, fusion
Оцінювання стійкості на ансамблях загроз коефіцієнти виживання та стійкості для кожного вектора загрози на визначеному ансамблі, із зазначеними припущеннями conflict-resilience, campaign
Походження відтворюваного прогону хеш сценарію, версія рушія та зерно (seed) у кожному результаті, щоб прогін можна було повторити будь-який прогін, результат якого містить scenario_hash