[논문 리뷰] Verifiable Provenance of Software Artifacts with Zero-Knowledge Compilation
이 논문은 CosmicTurtle을 제시합니다. 이는 제로 지식 VM 내부에서 소프트웨어를 컴파일하여 컴파일된 이진 파일과 소스 코드, 컴파일러 신원, 출력 바인딩의 암호학적 증명을 생성합니다.
Verifying that a compiled binary originates from its claimed source code is a fundamental security requirement, called source code provenance. Achieving verifiable source code provenance in practice remains challenging. The most popular technique, called reproducible builds, requires difficult matching and reexecution of build toolchains and environments. We propose a novel approach to verifiable provenance based on compiling software with zero-knowledge virtual machines (zkVMs). By executing a compiler within a zkVM, our system produces both the compiled output and a cryptographic proof attesting that the compilation was performed on the claimed source code with the claimed compiler. We implement a proof-of-concept implementation using the RISC Zero zkVM and the ChibiCC C compiler, and evaluate it on 200 synthetic programs as well as 31 OpenSSL and 21 libsodium source files. Our results show that zk-compilation is applicable to real-world software and provides strong security guarantees: all adversarial tests targeting compiler substitution, source tampering, output manipulation, and replay attacks are successfully blocked.
연구 동기 및 목표
- 전체 재빌드나 신뢰된 하드웨어 없이 컴파일된 산출물에 대한 암호학적 출처 보증을 확립한다.
- 컴파일 중에 소스 코드, 컴파일러 신원, 출력물을 검증 가능한 증거에 바인딩한다.
- 빌드를 재생산하지 않고도 누구나 독립적으로 출처를 검증할 수 있도록 한다.
- 실세계의 암호 라이브러리와 합성 프로그램에서 실용성을 평가한다.
제안 방법
- 제로 지식 VM 안에서 컴파일러를 실행하여 이진 파일과 올바른 실행에 대한 간략한 증명을 생성한다.
- 입력 소스 다이제스트와 컴파일러 신원(ImageID)을 증거에 바인딩한다.
- 빌드를 다시 실행하지 않고 커밋된 소스와 컴파일러에 대해 증명을 검증한다.
- 생산 실행 전에 컴파일러 바이트코드(또는 그 신원)를 고정하기 위해 핸드쉐이크를 사용한다.
- 프로토타입 CosmosTurtle은 RISC Zero zkVM과 RISC-V로 크로스 컴파일된 ChibiCC C 컴파일러를 사용한다.
실험 결과
연구 질문
- RQ1제로 지식 실행이 특정 소스 코드가 주장된 컴파일러에 의해 주어진 이진 파일을 생성했음을 암호학적 증명으로 제공할 수 있는가?
- RQ2이 접근 방식은 컴파일러 치환, 소스 변조, 출력 변조, 재생 공격에 저항하는가?
- RQ3현실적인 소프트웨어 및 암호 라이브러리에서 zk-컴파일 및 검증의 성능 특성은 어떠한가?
주요 결과
- zk-컴파일은 소스 다이제스트, 컴파일러 신원, 그리고 출력을 바인딩하는 암호학적 영수증을 생성한다.
- 이 시스템은 252개 프로그램(200개의 합성 Csmith 프로그램, 31개의 OpenSSL 파일, 21개의 libsodium 파일)을 성공적으로 zk-컴파일하고 검증했다.
- 보안 테스트는 컴파일러 치환, 소스 변조, 출력 조작, 재생 공격에 대한 저항성을 보인다.
- 검증은 증명 생성보다 빠르며, 단일의 비싼 증명 생성 후 다중 검증을 가능하게 한다.
- 증명 크기는 프로그램 크기에 비례하여 커지며, 더 큰 입력의 경우 영수증이 100 MB를 넘을 수 있다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.