출판사가 최종 파일을 인쇄소에 넘길 때 리스펙스 바우치로 책임 기록을 남깁니다. 판형과 여백, 글꼴 포함, 쪽수가 합의한 규격을 통과했다는 판단에 서명하고 인쇄 사고 때 양쪽이 같은 기록으로 확인합니다. 바우치는 기록과 재실행 결과의 일치를 확인하고 실제 행동은 앱이 정합니다.
바우치 사용 가이드에서 네이티브로 이 예제를 실행합니다. 언어를 처음 배우는 중이라면 6단계 학습 경로부터 시작하세요.
네 가지 검사와 각각의 결과
발급자는 규칙을 실행하고 기록에 서명합니다. 수신자는 허용할 키와 실행 파일과 소스를 고릅니다.
| 검사 | 성공하면 확인한 사실 | 다음 단계 |
|---|---|---|
| 인증 | 내 정책이 허용한 키가 정확히 이 내용에 서명함 | 직접 고른 소스와 입력 제공 |
| 요청 결속 | 서명된 내용이 그 소스와 입력의 정확한 바이트와 같음 | 네이티브로 규칙 재실행 |
| 현재 실행 일치 | 현재의 전체 실행 기록이 서명된 기록과 같음 | 애플리케이션이 요구할 결정 지정 |
| 로컬 게이트 | 현재 결과가 요구한 결정과 같음 | 애플리케이션의 행동 정책 적용 |
vouch verify는 기록을 인증합니다.
--source와 --input을 더하면 요청을 결속합니다.
--reexecute를 더하면 현재 실행을 확인합니다.
애플리케이션이 이번 호출에서 approve를 요구하면 vouch gate --require-decision approve를 사용합니다.
완전한 명령과 결과는 사용 가이드에 있습니다.
서명을 검사하기 전에 신뢰할 대상을 고르기
독립적으로 검토한 공개키와 실행 파일 식별자와 소스로 신뢰 정책을 만드세요. 정책은 허용할 키와 엔진과 언어 프로파일과 소스 식별자를 하나로 정해진 바이트 형식으로 저장합니다.
실행 파일 식별자는 정확한 네이티브 프로그램의 SHA-256입니다. 공개키는 발급자의 서명 키를 식별합니다. 수신자는 그 키를 어떤 조직과 배포 환경에 연결할지 결정합니다.
vouch policy create는 이 설정을 파일로 씁니다.
vouch policy check는 형식을 확인합니다.
다음으로 vouch verify가 정책에 따라 서명된 기록을 검사합니다.
인증 성공은 허용한 키가 기록된 내용에 서명했다는 뜻입니다.
현재 실행은 --reexecute로 따로 확인합니다.
발급자가 보내는 파일
네이티브 vouch issue는 규칙을 실행하고 다음 사실에 Ed25519 키로 서명합니다.
- 정확한 소스와 입력 바이트
- 이 흐름에서 허용할 형식을 정한 언어 프로파일
csk.checked-profile/v1 - 최종 결과를 포함한 두 가지 전체 실행 기록
- 발급자가 사용한 정확한 네이티브 실행 파일의 식별자
네이티브는 두 구현으로 소스를 실행합니다.
리스펙스 인터프리터는 소스를 읽고 핵심 형식인 CoreExpr로 정규화한 뒤 평가합니다.
Meaning 인터프리터는 그 소스에서 만든 중간 표현을 평가합니다.
둘 다 Rust로 구현했습니다.
서명된 기록에는 최종 값뿐 아니라 두 전체 실행 기록이 담깁니다.
서명과 기록된 데이터를 담은 파일을 서명된 기록 묶음이라고 합니다.
DSSE 봉투라고도 부릅니다.
--emit-bundle을 쓰면 봉투와 소스와 입력을 담은 전송 묶음도 만듭니다.
전송 묶음 형식에는 바이트 한도가 있습니다.
파일 목록은 실행 기록과 보고서에서 확인하세요.
자신의 요청을 직접 제공하기
검토한 소스는 --source로, 직접 고른 입력은 --input으로 전달하세요.
바우치는 이 파일들의 정확한 바이트를 서명된 내용과 비교합니다.
전송 묶음에는 발급자의 선택이 들어 있고, 별도 파일들은 수신자의 선택을 지정합니다.
네이티브 재실행과 게이트에는 외부 경로 두 개가 모두 필요합니다.
한쪽만 주면 파일을 읽기 전에 거부합니다.
검사를 마친 리스펙스 이미지는 --source-image로 소스를 제공할 수 있습니다.
이미지는 소스 바이트를 운반하며, 수신자는 입력과 신뢰 정책을 계속 직접 고릅니다.
재실행하고 필요한 결과인지 확인하기
네이티브 vouch verify --reexecute는 두 인터프리터를 지금 실행합니다.
전체 실행 기록을 서명된 기록과 비교하고 인증 결과와 현재 실행 결과를 따로 보고합니다.
vouch gate는 한 네이티브 호출 안에서 인증과 요청 결속과 재실행과 요구 결정 비교를 수행합니다.
일치하면 해당 프로세스 안에 로컬 통과 결과를 만듭니다.
애플리케이션은 게이트 결과를 받고, 보고서는 그 호출에서 일어난 일을 기록합니다.
게이트를 호출할 때마다 제공한 근거와 요청으로 이 검사를 다시 수행합니다. 저장된 보고서는 결과를 살펴보고 로그를 남길 때 사용합니다. 호출 애플리케이션은 호출자 신원과 요청 유효 시점과 만료와 폐기를 관리합니다. 요청 재사용과 트랜잭션 상태도 애플리케이션이 관리합니다. 인쇄소에 파일을 보내거나 인쇄를 시작하는 행동은 애플리케이션이 승인하고 실행합니다.
컴파일한 실행 결과도 확인하기
리스펙스 VM의 일치도 필요하면 --compiled-artifact를 더하세요.
가상 머신은 컴파일된 명령을 실행하는 프로그램입니다.
네이티브는 요청을 인증한 뒤 정확한 소스로 lispex.vouch-compiled-artifact/v1 파일을 다시 만듭니다.
생성한 바이트코드를 검사하고 리스펙스 VM을 실행합니다.
이 검사는 같은 Rust 구현 계열의 tree와 Meaning 검사에 VM 일치를 더합니다. 컴파일 파일과 소스와 입력과 실행 기록과 자원 한도를 함께 확인합니다. 명령은 컴파일 예제에 있습니다.
다른 검사 고르기
| 할 일 | 사용할 작업과 결과 |
|---|---|
| 실행 기록의 구조 검사 | 네이티브 vouch inspect가 실행 기록과 입력, 선택적으로 소스를 읽고 구조 보고서 작성 |
| 서명된 근거 인증 | 네이티브나 npm의 vouch verify가 정책에 따라 검사 |
| 저장된 예제 모음 비교 | npm vouch replay가 일치와 불일치와 비교 상태 보고 |
| 외부 엔진 보고서 검사 | Bridge 검사기가 해당 보고서의 식별자와 결속 검사 |
최종 파일 인계 예제는 바우치 사용 가이드에서 따라 해 보세요. 실행 기록과 보고서에서 다음에 읽을 결과 파일을 고를 수 있습니다.