Безопасность оборудования: что 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 | не планируется |
«Выпущено» означает, что код есть в этом выпуске. Ничто в этой таблице не утверждает, что какой-либо этап использовался с каким-либо партнёром, лабораторией или органом власти; такого не было.
Принципы#
- Приём — это продукт, а передача никогда не входит в открытый код.
- Каждый аппаратный сеанс даёт пакет доказательств с хэшами входных данных, условий и использованных пороговых значений.
- Кондуктивное или экранированное исполнение подтверждается записанным заверением, а не выводится.
- Числа, полученные от оборудования, остаются MODELLED, пока не согласуются с независимым внешним оракулом (например, с лабораторной эталонной траекторией или эталонными часами). Заранее зарегистрированный порог не ослабляется после прогона.
- Антенны с управляемыми диаграммами, инерциальные блоки и атомные часы в микрочиповом исполнении рассматриваются как источники данных (диаграммы, журналы, опубликованные кривые стабильности), а не как устройства, которыми управляет Kshana.
- Формулировки: результат «измерен относительно маски» или «подкрепляет доказательствами» требование. 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функции Pythonevidence_createи аргументlab_attestation_tomlинструмента MCPcreate_evidence_pack(сборка для браузера пакеты не создаёт).- Пакет, созданный без заверения, побайтно совпадает с тем, каким он был раньше.
kshana evidence verifyсообщает о заверении и указывает, что оно «заверено названным оператором; не проверено Kshana».- Заверение, которое неполно или в котором
setupне равно ниconducted, ниshielded(схема с излучением в эфир не принимается как лабораторный прогон), отклоняется, и пакет не создаётся.
Что пока не реализовано: правило этапа 2, по которому Kshana отказывается оценивать лабораторный прогон без заверения. Ни одна команда в 0,38 не принимает флаг лабораторного прогона, поэтому отказывать не в чем; правило появится вместе с командами лабораторной оркестрации. Заверение фиксирует заявление оператора о мере предосторожности. Оно не делает никакое излучение законным и не меняет метку результата: оценённый лабораторный прогон остаётся MODELLED, если не согласуется внешний оракул.
Что это значит для участника#
- Не добавляйте в открытый движок тракт передачи, зависимость для передачи или пример передачи.
- Не добавляйте генератор формы сигнала, выходом которого служит сигнал подавления или спуфинга, предназначенный для воспроизведения.
- Новые аппаратные входы по умолчанию только для чтения; для записи нужен явный флаг и строка в этом файле.
- Новая команда, обращающаяся к оборудованию, добавляется на каждую поверхность или помечается N/A с указанием причины в
SURFACES.md, и здесь указывается её этап.