Какое решение вы получите в конце
В конце пути команда vouch gate внутри одного вызова сравнивает живой
аутентифицированный результат с решением, которое требует ваше приложение,
например approve. Совпадение — локальное разрешение (grant) только для
этого вызова; сам внешний шаг — платёж, возврат, развёртывание — остаётся
отдельным решением приложения.
Что подготовить
Подготовьте независимо друг от друга:
- проверенное правило
refund-window.lspx.pngилиrefund-window.lspx; - точный файл проверяемого входа
INPUT; - открытый ключ Ed25519
issuer.spki.derи абсолютный URI локального ключа PKCS#8; - проверенный хэш точного исполняемого файла Native;
- новые пути
POLICY,OUTPUTи каждого отчёта.
Политика доверия принадлежит потребителю. Не выводите доверие из bundle, который собираетесь проверять.
Точные идентификаторы
Четыре команды печатают точные идентификаторы названных файлов через общий Rust: ключа, движка, исходника и входа. Идентификатор — это только точное значение; он не устанавливает происхождение, доверие, аутентификацию, свидетельство или полномочия.
lispex vouch key-id --public-key issuer.spki.derlispex vouch engine-id --executable /exact/path/to/lispexlispex vouch source-id --source-image refund-window.lspx.pnglispex vouch input-id --input INPUTЭтап 1. Опишите доверие политикой
Политика доверия — файл, в котором потребитель фиксирует независимо
проверенные открытый ключ, хэш движка и точный исходник. Команды доступны в
Native и npm. Успех policy create и policy check устанавливает точную
каноническую конфигурацию — это ещё не аутентификация.
lispex vouch policy create \
--public-key issuer.spki.der \
--engine-sha256 sha256:<reviewed-engine-digest> \
--source-image refund-window.lspx.png --out POLICYlispex vouch policy check --trust-policy POLICYЭтап 2. Выдайте свидетельство и bundle
Только Native выдаёт свидетельство: он выполняет правило, подписывает точный
контекст исходника, входа и профиля и по флагу --emit-bundle создаёт
ограниченный транспортный bundle.
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Этап 3. Аутентифицируйте контекст пакета
Аутентификация доступна в Native и npm. Незакреплённая проверка bundle устанавливает одно: подписанный контекст внутри bundle удовлетворяет предоставленной вами политике. Она аутентифицирует лишь тот контекст, который принёс сам bundle, и не наблюдает текущее выполнение.
lispex vouch verify \
--bundle OUTPUT/vouch-input-bundle.json \
--trust-policy POLICY --profile csk.checked-profile/v1 \
--report-out AUTH-REPORTЭтап 4. Привяжите свой точный запрос
Закреплённая проверка добавляет к аутентификации точное равенство: контекст
пакета должен совпасть с исходником и входом, которые вы передали отдельно —
--source-image (или --source) и --input. Работает в Native и npm. Для
всех этапов Native с полномочиями обязательны оба файла.
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Этап 5. Наблюдайте текущее выполнение
Флаг --reexecute доступен только в Native. Успех устанавливает, что текущий
проверяющий Native согласен с обоими подписанными полными протоколами
выполнения. Это новое наблюдение текущего Native, а не утверждение о прошлом
запуске или независимой реализации.
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Этап 6. Потребуйте решение
Gate доступен только в Native. Успех означает, что живое аутентифицированное
согласие Native точно совпало с требуемым решением этого вызова. Код выхода
0 — одно локальное совпадение решения; код 10 — аутентификация без grant.
Сам отчёт нельзя повторно предъявить как grant.
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Необязательно: добавьте согласие проверенной VM
Если нужно, чтобы с подписанным протоколом согласилась и проверенная Rust VM, соберите из того же точного исходника специальный контейнер Vouch. Эти три команды не аутентифицируют, не выполняют правило и не выдают разрешение:
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Затем явно выберите скомпилированный путь, не удаляя прежних закреплений и проверок:
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 — два штатных пути проверки Native — по-прежнему должен согласиться первым. Подмена producer или байта исходника, расхождение VM и несовпадение решения отклоняются закрыто — без отката к gate только по исходнику.
Исходный режим с той же политикой
Вместо bundle можно передать подписанный конверт напрямую; политика и остальные проверки не меняются:
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Что устанавливает каждый шаг
| Операция | Устанавливает | По-прежнему требуется |
|---|---|---|
| Команды идентификаторов | 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 и проверенный байткод точно заново выведены из отдельно переданного исходника | не устанавливает аутентификацию, выполнение, корректность компилятора вне этого вывода или полномочия |
| Скомпилированное повторное выполнение | аутентифицированные текущие tree/Meaning и проверенная Rust VM согласны с подписанным полным протоколом | не устанавливает независимую эквивалентность, свежесть, корректность политики или внешнюю авторизацию |
| Gate | живое аутентифицированное согласие Native точно совпало с явно требуемым решением | не даёт свежесть, защиту от повтора, личность или разрешение внешнего действия |
| Действие | отдельный шаг приложения за пределами Vouch | собственная авторизация и контроль побочных эффектов |
Частая ошибка
Gate не выполняет внешнее действие, а его отчёт не является переносимой авторизацией. Вызывающее приложение по-прежнему отвечает за свежесть, защиту от повторного предъявления, личность, контроль развёртывания и безопасность требуемого решения.
Текущие границы
- Политика собирается только из открытых проверенных входов. Создание политики не принимает закрытый ключ, стандартный ввод, конверт, пакет, квитанцию, отчёт, автоматически найденный движок, сетевой ресурс или существующую политику для слияния. Происхождение открытого ключа, проверка движка и исходника, распространение, замена и срок жизни политики принадлежат потребителю. Браузерный WASM и Песочница API политики не предоставляют.
- Идентификатор — это только значение. Команды идентификаторов принимают
только названные файлы и ничего не выводят из артефактов.
source-idиinput-idиспользуют разделение доменов, а не обычный SHA-256; текст не декодируется и не нормализуется, входной JSON не разбирается. Идентификатор сам по себе не устанавливает происхождение, одобрение, доверие, аутентификацию, свежесть или полномочия. - Bundle — только транспорт. Пакет не является квитанцией, подписью, отчётом, возможностью, одобрением исходника или переносимой авторизацией. Он не шифрует данные и не устанавливает свежесть, одноразовость, срок действия, отзыв, защиту от повтора, личность, независимого свидетеля или разрешение действия.
- Привязка запроса — это точное равенство. Она не означает свежесть,
одноразовость, намерение человека или разрешение действия. Некорректная
подпись либо политика отвергается до сообщения о расхождении запроса.
С пакетом
--sourceи--inputпередаются только вместе; неполная пара даёт код использования 2 ещё до чтения артефакта. - Скомпилированный артефакт — материал целостности. Он детерминированно выводится из точного исходника, но не является корнем доверия, подписанным запросом, независимым свидетелем или переносимым полномочием. Его отчёты не принимаются как вход свидетельства. Путь не устанавливает личность организации, корректность правила или политики, свежесть, защиту от повтора, корректность компилятора вне проверенного вывода либо разрешение внешнего действия.
Куда дальше
Держите рядом обзор Vouch: он разделяет аутентификацию, привязку запроса, согласие текущего выполнения и локальное решение.