Машинный перевод, не проверенный носителем языка. Эталоном служит английская версия.

Синхронизация времениПравить на GitHubИсточник: docs/HARDWARE-SAFETY.md

Безопасность оборудования: что Kshana делает с оборудованием и чего не делает никогда

Статус: юридическая проверка владельцем ещё не завершена. Приведённые ниже юридические замечания — это прочтение сопровождающими открытых источников, написанное для того, чтобы пользователь знал границы. Это не юридическая консультация, юристы их не проверяли, а законы в разных странах различаются. Воспринимайте их как повод обратиться к юристу, а не как разрешение.

Kshana — программное обеспечение консультативного характера для исследований, моделирования и испытаний. Это не оборудование с утверждённым типом, и оно не оценивает и не одобряет приёмник, часы или лабораторию. См. консультативное заявление в README.

Правило#

Приём — это продукт. Передача никогда не входит в открытый движок.

  • В Kshana нет кода, управляющего передатчиком. Нет тракта передачи SDR (ни одного вызова передачи UHD, HackRF, bladeRF или Soapy), и никакая форма сигнала подавления или спуфинга не записывается в файл, предназначенный для воспроизведения.
  • Файлы, которые записывает Kshana (сцены IQ, записи SigMF и ION .sdrx, экспорт NMEA и bench), описывают имитированные, законные сигналы или движение, а метаданные сцены, записываемые Kshana, указывают, что она записана командой kshana iq scene (комментарий ION .sdrx сообщает, что это имитированная сцена, а не запись).
  • Если для эксперимента на стенде нужен радиочастотный сигнал, его создаёт собственное оборудование оператора, в собственном экранированном корпусе оператора и по собственному разрешению оператора. Kshana фиксирует то, что, по словам оператора, было сделано, и никогда не делает выводов сама.

Этапы#

Для каждого этапа указано, что делает Kshana, какое оборудование задействовано, кто излучает радиочастотный сигнал (если вообще кто-то) и какое условие должно выполняться, прежде чем Kshana будет считать результат доказательством.

Этап Роль Kshana Оборудование Радиочастотное излучение Условие Состояние в 0,38
0 Файлы: журналы воспроизведения, IQ, экспорт bench, потоковые NMEA или UBX через stdin, TCP или UDP нет нет нет выпущено
1 Пассивный приём: приёмники только для чтения; журналы синхронизации времени (linuxptp, chrony, TICC); CSV инерциальных датчиков; iq monitor --follow на растущем файле SigMF приёмники пользователя, grandmaster, SDR в режиме приёма нет любая запись конфигурации в приёмник требует явного --configure; по умолчанию доступ только для чтения выпущено частично: форматы журналов синхронизации времени, holdover-test, iq monitor --follow; ввод с последовательного порта приёмника запланирован
2 Лабораторная оркестрация без радиочастотного излучения со стороны Kshana: спецификация условий испытаний, шаги оператора (отключение антенны, запуск имитатора) с подсказкой и отметкой времени, сквозная оценка и доказательства имитаторы лаборатории, экранированные боксы только имитатором лаборатории, кондуктивно подписанный lab-attestation (см. ниже), записанный в пакете доказательств; Kshana отказывается оценивать лабораторный прогон без него запись реализована в пакетах доказательств; отказ от оценки без неё пока не реализован (команды лабораторного прогона не существует)
3 Кондуктивное воспроизведение законных сцен IQ ГНСС: Kshana записывает файл сцены, а пользователь воспроизводит его собственным инструментом в кабель с аттенюаторами и испытуемым устройством в радиоэкранированном корпусе SDR, аттенюаторы и экранированный корпус пользователя только кондуктивно, ответственность лежит на пользователе в открытом движке нет кода передачи; формы сигналов помех и спуфинга остаются вне области применения; проверка экспортного контроля; юрист не входит в открытый движок; задача коммерческой редакции, выполняемая с юристом
4 Аппаратное моделирование радиочастотного тракта в замкнутом контуре в реальном времени (hardware-in-the-loop) оборудование партнёра партнёр вместо этого интегрируйте через спецификацию этапа 2 не планируется

«Выпущено» означает, что код есть в этом выпуске. Ничто в этой таблице не утверждает, что какой-либо этап использовался с каким-либо партнёром, лабораторией или органом власти; такого не было.

Принципы#

  1. Приём — это продукт, а передача никогда не входит в открытый код.
  2. Каждый аппаратный сеанс даёт пакет доказательств с хэшами входных данных, условий и использованных пороговых значений.
  3. Кондуктивное или экранированное исполнение подтверждается записанным заверением, а не выводится.
  4. Числа, полученные от оборудования, остаются MODELLED, пока не согласуются с независимым внешним оракулом (например, с лабораторной эталонной траекторией или эталонными часами). Заранее зарегистрированный порог не ослабляется после прогона.
  5. Антенны с управляемыми диаграммами, инерциальные блоки и атомные часы в микрочиповом исполнении рассматриваются как источники данных (диаграммы, журналы, опубликованные кривые стабильности), а не как устройства, которыми управляет Kshana.
  6. Формулировки: результат «измерен относительно маски» или «подкрепляет доказательствами» требование. Kshana не говорит, что устройство соответствует стандарту, и никто его не оценивал и не одобрял.

Приём сигналов ГНСС законен почти везде. Передача в диапазонах ГНСС — нет.

  • США. Умышленные помехи радиосвязи запрещены по 47 U.S.C. §333, а FCC принимает меры против устройств подавления (https://www.fcc.gov/general/jammer-enforcement). Передача со стенда может выйти за пределы стенда.
  • В других странах. Сопровождающие не изучали законодательство других стран. Сообщество вокруг gps-sdr-sim заявляет, что передача его выходных данных запрещена законом в большинстве стран; принимайте это как рабочее допущение везде, где юрист не сказал иного.
  • Экранированная или кондуктивная схема — это мера предосторожности, а не разрешение. Приведённое ниже заверение фиксирует меру предосторожности, которая, по словам оператора, была применена. Оно не делает излучение законным.
  • Запись. Запись радиосигналов может вызывать вопросы конфиденциальности и законности в некоторых местах. iq monitor --follow и любой способ захвата только принимают сигнал, а оператор отвечает за то, где и что он записывает.
  • Экспортный контроль. Программное обеспечение для аппаратного моделирования в замкнутом контуре (hardware-in-the-loop), управляющее генераторами сигналов, может подпадать под правила экспортного контроля. Поэтому этап 3 находится вне открытого движка.
  • Ничто здесь не является одобрением или соглашением. Ни регулятор, ни полигон, ни лаборатория, ни поставщик не привлекались по поводу этого документа и ни с чем в нём не согласились.

Поле lab-attestation#

Для этапа 2 и выше прогон с участием лабораторного оборудования несёт объект lab-attestation, записанный в пакете доказательств рядом с хэшами входных данных. Это заявление названного оператора, а не измерение, и Kshana его не проверяет.

[lab-attestation]                                     # or the same keys at the top level of the file
operator = "name or role of the person responsible"   # required
organisation = "laboratory or company"                # required
date = "2026-11-02"                                   # required, the day of the session
setup = "conducted"                                   # required: "conducted" or "shielded"
attenuation_db = 60.0                                 # required for "conducted": total, emitter to device
enclosure = "RF-shielded box, model and ID"           # required for "shielded"
emitter = "laboratory-owned simulator, model"         # required: what produced any RF
statement = "No emission outside the enclosure or cable path."   # required, free text
signature = "ed25519:..."                             # optional: the operator's own detached signature, recorded as given

Что реализовано в 0,38:

  • kshana receiver-trust evidence ... --lab-attestation <file.toml> проверяет файл и записывает заверение в manifest.json пакета. Манифест защищён подписью Ed25519 пакета, поэтому запись нельзя изменить, не нарушив проверку. То же доступно как аргумент lab_attestation функции Python evidence_create и аргумент lab_attestation_toml инструмента MCP create_evidence_pack (сборка для браузера пакеты не создаёт).
  • Пакет, созданный без заверения, побайтно совпадает с тем, каким он был раньше.
  • kshana evidence verify сообщает о заверении и указывает, что оно «заверено названным оператором; не проверено Kshana».
  • Заверение, которое неполно или в котором setup не равно ни conducted, ни shielded (схема с излучением в эфир не принимается как лабораторный прогон), отклоняется, и пакет не создаётся.

Что пока не реализовано: правило этапа 2, по которому Kshana отказывается оценивать лабораторный прогон без заверения. Ни одна команда в 0,38 не принимает флаг лабораторного прогона, поэтому отказывать не в чем; правило появится вместе с командами лабораторной оркестрации. Заверение фиксирует заявление оператора о мере предосторожности. Оно не делает никакое излучение законным и не меняет метку результата: оценённый лабораторный прогон остаётся MODELLED, если не согласуется внешний оракул.

Что это значит для участника#

  • Не добавляйте в открытый движок тракт передачи, зависимость для передачи или пример передачи.
  • Не добавляйте генератор формы сигнала, выходом которого служит сигнал подавления или спуфинга, предназначенный для воспроизведения.
  • Новые аппаратные входы по умолчанию только для чтения; для записи нужен явный флаг и строка в этом файле.
  • Новая команда, обращающаяся к оборудованию, добавляется на каждую поверхность или помечается N/A с указанием причины в SURFACES.md, и здесь указывается её этап.