Что подготовить
Подготовьте независимо друг от друга:
- проверенное правило
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 |
Читайте результаты по порядку
- Корректная политика — конфигурация, а не аутентификация.
- Незакреплённая проверка bundle аутентифицирует лишь принадлежащий bundle контекст.
- Закреплённая проверка добавляет точное равенство внешним исходнику и входу вызывающей стороны. Для этапов Native с полномочиями обязательны оба файла.
- Повторное выполнение — новое наблюдение текущего Native, а не утверждение о прошлом запуске или независимой реализации.
- Код выхода gate
0означает одно локальное совпадение решения. Код10означает отсутствие grant. Сам отчёт нельзя повторно предъявить как grant. - Платёж, развёртывание, возврат или иное действие остаётся отдельным решением приложения со своими проверками свежести и повторов.
Уровни гарантий
| Операция | Устанавливает | По-прежнему требуется |
|---|---|---|
| Команды идентификаторов | 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. Вывод точного идентификатора ключа
lispex vouch key-id --public-key issuer.spki.der2. Вывод точного идентификатора движка
lispex vouch engine-id --executable /exact/path/to/lispex3. Вывод точного идентификатора исходника
lispex vouch source-id --source-image refund-window.lspx.png4. Вывод точного идентификатора входа
lispex vouch input-id --input INPUT5. Выдача Native и создание пакета
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-bundle6. Создание политики из независимо проверенных открытых входов
lispex vouch policy create \
--public-key issuer.spki.der \
--engine-sha256 sha256:<reviewed-engine-digest> \
--source-image refund-window.lspx.png --out POLICY7. Проверка точных канонических байтов политики
lispex vouch policy check --trust-policy POLICY8. Аутентификация контекста пакета в Native или npm
lispex vouch verify \
--bundle OUTPUT/vouch-input-bundle.json \
--trust-policy POLICY --profile csk.checked-profile/v1 \
--report-out AUTH-REPORT9. Закрепление пакета за ожидаемым запросом в Native или npm
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-REPORT10. Привязка точного запроса и повторное выполнение 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-REPORT11. Локальный gate решения Native
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-REPORT12. При необходимости потребуйте согласие проверенной 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 по-прежнему должен согласиться первым. Подмена producer или байта исходника, расхождение VM и несовпадение решения закрыто отклоняются без fallback к gate только по исходнику.
13. Исходный режим с той же политикой
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: он разделяет аутентификацию, привязку запроса, согласие текущего выполнения и локальное разрешение.