Песочница

Использование Lispex Vouch

Пройдите один безопасный путь от проверенных исходника и входа через политику, выдачу, аутентификацию, точную привязку запроса, повторное выполнение Native и локальное совпадение решения.

Что подготовить

Подготовьте независимо друг от друга:

  • проверенное правило refund-window.lspx.png или refund-window.lspx;
  • точный файл проверяемого входа INPUT;
  • открытый ключ Ed25519 issuer.spki.der и абсолютный URI локального ключа PKCS#8;
  • проверенный хэш точного исполняемого файла Native;
  • новые пути POLICY, OUTPUT и каждого отчёта.

Политика доверия принадлежит потребителю. Не выводите доверие из bundle, который собираетесь проверять.

Шесть этапов

ЭтапОсновная командаЧто устанавливает успехПоверхность
1. Описать довериеvouch policy create, затем policy checkточную каноническую конфигурацию проверенных ключа, движка и исходникаNative или npm
2. Выдатьvouch issue --emit-bundleподписанный Native точный контекст исходника, входа и профиля, а также ограниченный транспортный bundleтолько Native
3. Аутентифицироватьvouch verify --bundle ...подписанный контекст внутри bundle удовлетворяет предоставленной политикеNative или npm
4. Привязать запросдобавить --source-image (или --source) и --inputконтекст равен отдельно переданному запросу этого вызоваNative или npm
5. Наблюдать текущее выполнениедобавить --reexecuteтекущий проверяющий Native согласен с подписанными полными протоколамитолько Native
6. Потребовать решениеvouch gate --require-decision ...живое аутентифицированное согласие Native совпадает с требуемым решением вызывающей сторонытолько Native

Читайте результаты по порядку

  1. Корректная политика — конфигурация, а не аутентификация.
  2. Незакреплённая проверка bundle аутентифицирует лишь принадлежащий bundle контекст.
  3. Закреплённая проверка добавляет точное равенство внешним исходнику и входу вызывающей стороны. Для этапов Native с полномочиями обязательны оба файла.
  4. Повторное выполнение — новое наблюдение текущего Native, а не утверждение о прошлом запуске или независимой реализации.
  5. Код выхода gate 0 означает одно локальное совпадение решения. Код 10 означает отсутствие grant. Сам отчёт нельзя повторно предъявить как grant.
  6. Платёж, развёртывание, возврат или иное действие остаётся отдельным решением приложения со своими проверками свежести и повторов.

Уровни гарантий

ОперацияУстанавливаетПо-прежнему требуется
Команды идентификаторовkey-id, engine-id, source-id и input-id печатают точные значения из названных ограниченных файлов через общий Rustне устанавливают происхождение, доверие, аутентификацию, свидетельство или полномочия
Создание и проверка политикиpolicy create записывает одну каноническую политику v1 из проверенных открытых входов; policy check проверяет точные байтыне выбирают доверие, не читают закрытый ключ из артефакта, не аутентифицируют и не выдают решение
Идентификатор исходникаsource-id --source RULE печатает точное значение для списка разрешённых исходниковне нормализует, не одобряет и не записывает политику
Политика доверия v1после проверки подписи, профиля и движка ограничивает каждый ключ точным allowed_source_sha256не является политикой входа, запроса или свежести
Пакет bundleограниченно переносит точные байты конверта, исходника и входатребует внешних политики и профиля; сам транспорт полномочий не даёт
Структурная проверкаподтверждает схему, хэши и внутреннюю согласованностьне аутентифицирует происхождение
Аутентификацияразрешённый ключ подписал точный связанный контекст конвертане наблюдает текущее выполнение
Повторное выполнениетекущий проверяющий Native согласен с обоими подписанными полными протоколамитребует отдельной авторизации приложения и проверки политики
Build/validate скомпилированного артефактаканонические Core IR и проверенный байткод точно заново выведены из отдельно переданного исходникане устанавливает аутентификацию, выполнение, корректность compiler вне этого вывода или полномочия
Скомпилированное повторное выполнениеаутентифицированные текущие tree/Meaning и проверенная Rust VM согласны с подписанным полным протоколомне устанавливает независимую эквивалентность, свежесть, корректность политики или внешнюю авторизацию
Gateживое аутентифицированное согласие Native точно совпало с явно требуемым решениемне даёт свежесть, защиту от повтора, личность или разрешение внешнего действия
Действиеотдельный шаг приложения за пределами Vouchсобственная авторизация и контроль побочных эффектов

Команды для копирования

1. Вывод точного идентификатора ключа

SH
lispex vouch key-id --public-key issuer.spki.der

2. Вывод точного идентификатора движка

SH
lispex vouch engine-id --executable /exact/path/to/lispex

3. Вывод точного идентификатора исходника

SH
lispex vouch source-id --source-image refund-window.lspx.png

4. Вывод точного идентификатора входа

SH
lispex vouch input-id --input INPUT

5. Выдача Native и создание пакета

SH
lispex vouch issue \
  --source-image refund-window.lspx.png --input INPUT \
  --profile csk.checked-profile/v1 \
  --key-handle pkcs8-file:///ABSOLUTE/issuer.pk8 \
  --out-dir OUTPUT --emit-bundle

6. Создание политики из независимо проверенных открытых входов

SH
lispex vouch policy create \
  --public-key issuer.spki.der \
  --engine-sha256 sha256:<reviewed-engine-digest> \
  --source-image refund-window.lspx.png --out POLICY

7. Проверка точных канонических байтов политики

SH
lispex vouch policy check --trust-policy POLICY

8. Аутентификация контекста пакета в Native или npm

SH
lispex vouch verify \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --profile csk.checked-profile/v1 \
  --report-out AUTH-REPORT

9. Закрепление пакета за ожидаемым запросом в Native или npm

SH
lispex vouch verify \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --source-image refund-window.lspx.png --input INPUT \
  --profile csk.checked-profile/v1 --report-out PINNED-REPORT

10. Привязка точного запроса и повторное выполнение Native

SH
lispex vouch verify \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --source-image refund-window.lspx.png --input INPUT \
  --profile csk.checked-profile/v1 --reexecute \
  --report-out REEXECUTION-REPORT

11. Локальный gate решения Native

SH
lispex vouch gate \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --source-image refund-window.lspx.png --input INPUT \
  --profile csk.checked-profile/v1 --require-decision approve \
  --report-out GATE-REPORT

12. При необходимости потребуйте согласие проверенной VM

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

SH
lispex vouch compiled build \
  --source-image refund-window.lspx.png \
  --out refund-window.lpxvca

lispex vouch compiled inspect \
  --artifact refund-window.lpxvca

lispex vouch compiled validate \
  --artifact refund-window.lpxvca \
  --source-image refund-window.lspx.png

Затем явно выберите скомпилированный путь, не удаляя прежних закреплений и проверок:

SH
lispex vouch verify \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --source-image refund-window.lspx.png --input INPUT \
  --profile csk.checked-profile/v1 --reexecute \
  --compiled-artifact refund-window.lpxvca \
  --report-out COMPILED-REEXECUTION-REPORT

lispex vouch gate \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --source-image refund-window.lspx.png --input INPUT \
  --profile csk.checked-profile/v1 --require-decision approve \
  --compiled-artifact refund-window.lpxvca \
  --report-out COMPILED-GATE-REPORT

До создания состояния VM контейнер обязан пройти каноническую проверку, строгий verifier байткода и точное повторное выведение source→Core IR→bytecode. Текущий tree/Meaning по-прежнему должен согласиться первым. Подмена producer или байта исходника, расхождение VM и несовпадение решения закрыто отклоняются без fallback к gate только по исходнику.

13. Исходный режим с той же политикой

SH
lispex vouch verify \
  --envelope OUTPUT/envelope.dsse.json \
  --trust-policy POLICY --source-image refund-window.lspx.png --input INPUT \
  --profile csk.checked-profile/v1 --report-out AUTH-REPORT

Частая ошибка

Gate не выполняет внешнее действие, а его отчёт не является переносимой авторизацией. Вызывающее приложение по-прежнему отвечает за свежесть, защиту от повторной передачи, личность, контроль развёртывания и безопасность требуемого решения.

Текущие границы

  • Создание политики не принимает закрытый ключ, стандартный ввод, конверт, пакет, квитанцию, отчёт, автоматически найденный движок, сетевой ресурс или существующую политику для слияния. Происхождение открытого ключа, проверка движка и исходника, распространение, замена и срок жизни политики принадлежат потребителю. Браузерный WASM и Песочница API политики не предоставляют.
  • Команды идентификаторов принимают только названные файлы и ничего не выводят из артефактов. source-id и input-id используют разделение доменов, а не обычный SHA-256; текст не декодируется и не нормализуется, входной JSON не разбирается. Идентификатор сам по себе не устанавливает происхождение, одобрение, доверие, аутентификацию, свежесть или полномочия.
  • Пакет bundle — недоверенный транспорт, а не квитанция, подпись, отчёт, возможность, одобрение исходника или переносимая авторизация. Он не шифрует данные и не устанавливает свежесть, одноразовость, срок действия, отзыв, защиту от повтора, личность, независимого свидетеля или разрешение действия.
  • Привязка запроса означает точное равенство, а не свежесть, одноразовость, намерение человека или разрешение действия. Некорректная подпись либо политика отвергается до сообщения о расхождении запроса. С пакетом --source и --input передаются только вместе; неполная пара даёт код использования 2 ещё до чтения артефакта.
  • Скомпилированный артефакт — детерминированный материал целостности из точного исходника, а не корень доверия, подписанный запрос, независимый свидетель или переносимое полномочие. Отчёт не принимается как вход свидетельства. Путь не устанавливает личность организации, корректность правила или политики, свежесть, защиту от повтора, корректность compiler вне проверенного вывода либо разрешение внешнего действия.

Куда дальше

Держите рядом обзор Vouch: он разделяет аутентификацию, привязку запроса, согласие текущего выполнения и локальное разрешение.

Обзор Лиспекс Vouch · Выбор среды выполнения