리스펙스 바우치 사용하기

네이티브와 npm은 raw·bundle Vouch 컨텍스트를 인증하고 bundle이 별도로 제공한 정확한 source·input 바이트와 일치하도록 요구할 수 있습니다. 네이티브 현재 재실행과 로컬 요구 결정 gate는 살아 있는 request-bound evidence만 받으므로 bundle 권한에는 이 완전한 외부 쌍이 필요합니다.

작업 방법

  • lispex vouch issue --source RULE --input INPUT --profile csk.checked-profile/v1 --key-handle pkcs8-file:///ABSOLUTE/issuer.pk8 --out-dir OUTPUT으로 서명 증거를 발행합니다. 공급자는 절대 경로의 로컬 Ed25519 PKCS#8 DER 키 URI만 받고 인라인, 표준입력, 환경 변수 키 자료는 받지 않습니다.
  • 네이티브 또는 npm에서 lispex vouch verify --envelope OUTPUT/envelope.dsse.json --trust-policy POLICY --source RULE --input INPUT --profile csk.checked-profile/v1 --report-out AUTH-REPORT로 실행 없이 인증합니다. 같은 수용 바이트는 같은 정규 v0 보고서와 종료 0 또는 10을 만듭니다.
  • 네이티브에서만 --reexecute를 추가해 현재 검증자를 실행합니다. 정상 보고서는 authentication: authenticatedreexecution: execution-agreed를 나누고 csk.vouch-complete-transcript/v0을 명시하며 current_vs_signed: agree를 기록합니다. npm은 이 flag를 아티팩트 I/O 전에 거부합니다.
  • lispex vouch gate --envelope OUTPUT/envelope.dsse.json --trust-policy POLICY --source RULE --input INPUT --profile csk.checked-profile/v1 --require-decision approve --report-out GATE-REPORT로 approve 결정을 gate합니다. 이 호출의 종료 0만 로컬 일치로 사용하며 종료 10은 grant가 없음을 뜻합니다.
  • 비서명 구조 영수증 검사는 lispex vouch inspect, 고정 코퍼스 비교는 npm lispex vouch replay를 사용합니다. 유지되는 환불 기간 예제는 네이티브로 한 번 발행하고 네이티브/npm 인증 보고서를 바이트 단위로 비교한 뒤 재실행과 gate는 네이티브에서 유지합니다.
  • 정확한 규칙, 입력, 프로필, 신뢰 정책, 보고서, 릴리스 바이너리 동일성을 보존하세요. 검증은 누락 컨텍스트를 복원하지 않습니다.
  • refund-window 흐름은 발행 전에 identity를 산출하고 네이티브/npm raw·unpinned·pinned 인증 parity를 증명한 뒤, 정확한 외부 요청을 네이티브 pinned-bundle 재실행·gate에 제공합니다. unpinned 권한 거부와 요청 불일치 denial도 증명합니다.
  • lispex vouch policy create --public-key SPKI --engine-sha256 DIGEST --source RULE --out POLICY는 44바이트 Ed25519 SPKI DER 키 하나와 하나 이상의 검토한 engine digest·이름 있는 소스 파일을 받습니다. 공유 Rust가 identity를 산출하고 중복을 거부하고 allowlist를 정렬해 덮어쓰기나 stdout 없이 바이트 동일 정규 policy v1을 원자적으로 씁니다.
  • lispex vouch policy check --trust-policy POLICY는 정확히 닫힌 정규 v0/v1 policy 바이트만 조용히 수용합니다. 성공은 구조적 설정 유효성일 뿐 인증, evidence, 재실행, gate grant 또는 선택한 키·engine·소스가 신뢰할 만하다는 판단이 아닙니다.
  • lispex vouch source-id --source RULE은 최대 1 MiB를 한 번 읽고 SHA-256("csk.v0.source" || 0x1f || 정확한 소스 바이트)를 소문자 64자리 hex로 출력합니다. 네이티브와 npm은 같은 Rust 함수를 사용하며 공개 브라우저 WASM과 플레이그라운드는 이를 노출하지 않습니다.
  • lispex vouch key-id --public-key SPKI는 정확한 44바이트 Ed25519 DER SPKI 하나를 검사하고 기존 sha256: key ID를 출력합니다. engine-id --executable FILE은 최대 16 MiB를 같은 접두사의 일반 SHA-256으로 해시합니다. input-id --input FILE은 입력을 파싱하지 않고 최대 1 MiB를 SHA-256("csk.v0.input" || 0x1f || 정확한 바이트)로 해시합니다. 네이티브/npm stdout은 바이트 동일합니다.
  • Trust policy v1은 모든 키에 비어 있지 않은 allowed_source_sha256를 요구합니다. 각 값은 기존 영수증 소스 identity인 SHA-256(UTF-8("csk.v0.source") || 0x1f || 정확한 소스 바이트)의 소문자 64자리 hex입니다. Policy v0는 계속 수용되며 소스를 제한하지 않습니다.
  • csk.vouch-input-bundle/v0에는 정확한 정규 DSSE 봉투 바이트, 검사 소스 바이트, 검사 입력 바이트만 들어갑니다. trust policy, expected profile, required decision, 키, 보고서 경로는 밖에서 호출자가 소유합니다.
  • lispex vouch verify --bundle BUNDLE --trust-policy POLICY --source RULE --input INPUT --profile PROFILE --report-out REPORT는 먼저 bundle이 운반한 서명 컨텍스트를 인증한 뒤, 별도로 snapshot한 source·input과 바이트 단위 동일성을 요구합니다. 네이티브와 npm은 같은 정규 v0 보고서를 내며 source 불일치를 input 불일치보다 먼저 분류합니다.
  • Raw verify는 호출자가 제공한 정확한 컨텍스트를 인증합니다. Unpinned bundle verify는 bundle이 운반한 정확한 서명 컨텍스트의 인증으로 유지됩니다. Pinned bundle verify는 이번 호출이 별도로 제공한 요청 바이트와의 동일성까지 확인합니다. 네이티브 bundle --reexecutegate는 이 완전한 외부 쌍을 요구하며 없거나 일부만 있으면 artifact I/O 전에 usage 종료 2로 거부합니다.
  • 네이티브는 bundle을 발행·소비하고 재실행·gate할 수 있으며 npm CLI는 인증에만 bundle을 소비합니다. 공개 브라우저 WASM과 플레이그라운드는 Vouch 인증이나 bundle API를 노출하지 않습니다.
  • 정규 bundle 전체 상한은 16 MiB입니다. 바깥 bundle 실패는 종료 3이며 인증 보고서를 만들지 않고, decode 성공 뒤에는 기존 인증 종료 0·10·1과 v0 보고서 바이트가 그대로입니다. 더 크거나 별도로 고정한 컨텍스트에는 raw 모드를 사용합니다.

보증 단계

작업세우는 것여전히 필요한 것
Identity 명령key-id, engine-id, source-id, input-id가 이름 있는 한정 파일에서 공유 Rust로 기존 정확한 값을 출력stdin, artifact 추론, 출처, trust, 입력 검증, 인증, evidence 또는 권한 없음
Policy 생성/검사lispex vouch policy create가 검토한 공개 입력으로 정규 v1 policy 하나를 쓰고 policy check가 정확한 정규 바이트를 검사개인 키, 추론된 engine, artifact trust, 덮어쓰기/merge, 인증, evidence, 결정 grant 또는 브라우저 export 없음
Source IDlispex vouch source-id --source RULE이 한정된 정확한 바이트로 policy v1 값을 출력stdin, artifact 추출, 정규화, 승인, policy 작성, 인증 또는 evidence 없음
Trust policy v1서명·profile·engine 검사 뒤 키별 정확한 allowed_source_sha256raw source mismatch 전에 native-source-disallowed. input/request 또는 신선도 정책은 아님
Bundle정확한 envelope/source/input 바이트를 담는 한정 운반 입력 하나외부 trust/profile과 인증. 운반 자체는 권한을 세우지 않음
검사스키마, 해시, 구조 정합성출처 인증
인증허가된 키가 정확한 결합 봉투 컨텍스트에 서명함현재 실행 관측
재실행현재 네이티브 검증자가 서명된 완전 transcript 두 개와 일치함애플리케이션 승인과 정책 검토
Gate살아 있는 인증된 현재 네이티브 실행 일치가 명시한 요구 결정과 정확히 같음신선도, replay 처리, 신원, 정책 검토, 배포 통제
행위Vouch 밖의 별도 애플리케이션 행위애플리케이션 소유 승인과 부작용 통제

이식 가능한 Vouch 명령

1. 정확한 키 identity 산출

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

2. 정확한 engine identity 산출

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

3. 정확한 소스 identity 산출

OUTPUT
lispex vouch source-id --source RULE

4. 정확한 입력 identity 산출

OUTPUT
lispex vouch input-id --input INPUT

5. 네이티브 발행과 bundle 출력

OUTPUT
lispex vouch issue \
  --source RULE --input INPUT \
  --profile csk.checked-profile/v1 \
  --key-handle pkcs8-file:///ABSOLUTE/issuer.pk8 \
  --out-dir OUTPUT --emit-bundle

6. 독립적으로 검토한 공개 입력으로 policy 생성

OUTPUT
lispex vouch policy create \
  --public-key issuer.spki.der \
  --engine-sha256 sha256:<reviewed-engine-digest> \
  --source RULE --out POLICY

7. 정확한 정규 policy 바이트 검사

OUTPUT
lispex vouch policy check --trust-policy POLICY

8. 네이티브 또는 npm이 bundle 소유 컨텍스트 인증

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

9. 네이티브 또는 npm이 의도한 요청에 bundle 고정

OUTPUT
lispex vouch verify \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --source RULE --input INPUT \
  --profile csk.checked-profile/v1 --report-out PINNED-REPORT

10. 네이티브 정확한 요청 결속과 재실행

OUTPUT
lispex vouch verify \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --source RULE --input INPUT \
  --profile csk.checked-profile/v1 --reexecute \
  --report-out REEXECUTION-REPORT

11. 네이티브 로컬 결정 gate

OUTPUT
lispex vouch gate \
  --bundle OUTPUT/vouch-input-bundle.json \
  --trust-policy POLICY --source RULE --input INPUT \
  --profile csk.checked-profile/v1 --require-decision approve \
  --report-out GATE-REPORT

12. 같은 policy를 쓰는 raw 호환

OUTPUT
lispex vouch verify \
  --envelope OUTPUT/envelope.dsse.json \
  --trust-policy POLICY --source RULE --input INPUT \
  --profile csk.checked-profile/v1 --report-out AUTH-REPORT

경계

  • gate는 외부 행위를 실행하지 않으며 보고서는 전송 가능한 승인이 아닙니다. 호출 애플리케이션은 여전히 신선도, replay 처리, 신원, 배포 통제, 해당 결정을 요구하는 것이 안전하고 올바른지를 책임집니다.
  • Policy 생성은 개인 키, stdin, envelope, bundle, receipt, report, 추론된 실행 engine, 네트워크 리소스 또는 merge할 기존 policy를 받지 않습니다. 공개 키 출처, engine·소스 검토, policy 배포·교체·수명 주기는 소비자가 소유하며 브라우저 WASM과 플레이그라운드는 policy API를 노출하지 않습니다.
  • Identity 명령은 이름 있는 파일만 받고 artifact에서 아무것도 추론하지 않습니다. source-idinput-id는 일반 SHA-256이 아니라 domain-separated이며 텍스트를 해석·정규화하지 않고 input-id는 checked-input JSON을 파싱하지 않습니다. 어떤 identity도 출처, 승인, policy, trust, 인증, evidence, 신선도, replay 통제 또는 권한을 세우지 않습니다.
  • bundle은 신뢰하지 않는 운반 형식이며 영수증·서명·보고서·capability·소스 승인·전송 가능한 권한이 아닙니다. 암호화나 기밀성을 추가하지 않으며 신선도, nonce 강제, 만료, 폐기, replay 방지, 신원, 독립 증인, 정책 정당성, 제공 바이트 이전의 출처, 배포 안전성, 외부 행위 권한을 세우지 않습니다.
  • 요청 pin은 정확한 동일성일 뿐 신선도, nonce 유일성, 만료, 폐기, replay 방지, 사람의 의도 또는 외부 행위 권한이 아닙니다. 유효하지 않은 서명이나 policy는 요청 불일치보다 먼저 거부됩니다. bundle과 쓰는 --source·--input은 반드시 함께 제공해야 하며 일부만 주면 artifact I/O 전에 usage 종료 2입니다.