pulseengine/sigil

GitHub: pulseengine/sigil

面向 WebAssembly 模块的供应链安全工具,通过嵌入式签名和 Sigstore 无密钥签名实现离线可验证的代码溯源。

Stars: 0 | Forks: 0

# Sigil WebAssembly 供应链安全   [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/31bd399873201628.svg)](https://github.com/pulseengine/sigil/actions/workflows/rust.yml) ![Rust](https://img.shields.io/badge/Rust-CE422B?style=flat-square&logo=rust&logoColor=white&labelColor=1a1b27) ![Sigstore](https://img.shields.io/badge/Sigstore-keyless_signing-654FF0?style=flat-square&labelColor=1a1b27) ![SLSA](https://img.shields.io/badge/SLSA-L4_provenance-00C853?style=flat-square&labelColor=1a1b27) ![License: MIT](https://img.shields.io/badge/License-MIT-blue?style=flat-square&labelColor=1a1b27)  
Meld · Loom · Synth · Kiln · Sigil
  Meld 融合。Loom 编织。Synth 转译。Kiln 烧制。Sigil 封缄。 Sigil 是 PulseEngine 流程的加密骨干。Sigil 使用嵌入式签名对 WebAssembly 模块进行签名,支持完全离线验证 —— 非常适合嵌入式系统、边缘设备和物理隔离环境。每个流程阶段(融合、优化、转译)都会创建一个已签名的转换证明,记录发生了哪些更改、运行了哪个工具版本以及输入和输出的加密哈希值。 基于 [WebAssembly 模块签名提案](https://github.com/wasm-signatures/design) 构建,并扩展了 Sigstore 无密钥签名、SLSA 策略强制执行以及通过 TPM 2.0 的硬件安全性。所有签名都直接嵌入在 WebAssembly 模块中 —— 无需外部注册表。 ## 快速开始 ``` # 从源码安装 cargo install wsc-cli # 或从源码构建 git clone https://github.com/pulseengine/sigil.git cd sigil cargo build --release ``` ### 无密钥签名 (Sigstore) ``` # 在 GitHub Actions(或任何启用 OIDC 的 CI)中签名 sigil sign --keyless -i module.wasm -o signed.wasm # 离线验证 — 无需网络 sigil verify --keyless -i signed.wasm # 带身份约束 sigil verify --keyless -i signed.wasm \ --cert-identity "user@example.com" \ --cert-oidc-issuer "https://token.actions.githubusercontent.com" ``` ### 传统基于密钥的签名 ``` # 生成密钥对 sigil keygen -k secret.key -K public.key # 签名 sigil sign -k secret.key -i module.wasm -o signed.wasm # 验证 sigil verify -K public.key -i signed.wasm ``` ## 功能特性 - **离线优先验证** —— 嵌入式签名在分发后依然有效;运行时无需网络 - **无密钥签名** —— 完整集成 Sigstore/Fulcio/Rekor,支持 OIDC 认证 (GitHub Actions, Google Cloud, GitLab CI) - **无密钥验证** —— 通过证书链和 SET 验证离线验证 Sigstore 签名 - **增强型 Rekor 验证** —— 基于检查点的验证,具备安全加固 - **Bazel 集成** —— 完整支持 BUILD 和 MODULE.bazel,适用于封闭构建 - **WebAssembly 组件模型** —— 同时提供库和 CLI 的 WebAssembly 组件构建 - **OpenSSH 密钥支持** —— 兼容 Ed25519 SSH 密钥 - **GitHub 集成** —— 使用 GitHub 用户的 SSH 公钥进行验证 - **多重签名** —— 紧凑的表示形式,适用于多方签名工作流 ### 离线验证 vs 注册表签名 | 场景 | Cosign/OCI | Sigil | |----------|------------|-------| | 间歇性 WiFi 的 IoT 设备 | 需要连接 | 离线验证 | | 工业控制器 | 需要访问注册表 | 签名已嵌入 | | 边缘 CDN 节点 | 注册表延迟 | 本地验证 | | 物理隔离网络 | 无法验证 | 离线可用 | ## 其他操作 ``` # 检查模块 sigil show -i module.wasm # 分离签名 sigil detach -i signed.wasm -o unsigned.wasm -S signature.bin # 附加签名 sigil attach -i unsigned.wasm -o signed.wasm -S signature.bin # 部分验证(特定自定义 sections) sigil verify -K public.key -i signed.wasm --split "custom_section_regex" ``` ## 形式化验证 ## 文档 - [检查点实现](docs/checkpoint_implementation.md) - [安全审计](docs/checkpoint_security_audit.md) - [检查点格式](docs/rekor_checkpoint_format.md) - [安全模型](SECURITY.md) - [无密钥签名](docs/keyless.md) - [测试指南](docs/testing.md) ## 致谢 基于 Frank Denis 开发的 [wasmsign2](https://github.com/wasm-signatures/wasmsign2)。MIT 许可证 — 原 wasmsign2 版权所有 (c) 2024 Frank Denis。 ## 许可证 MIT 许可证 — 见 [LICENSE](LICENSE)。
PulseEngine 的一部分 — 面向安全关键系统的形式化验证 WebAssembly 工具链
标签:AI工具, CI/CD 安全, CLI, CVE, DevSecOps, DNS 反向解析, Lerna, PulseEngine, Rust, SBOM, Sigstore, SLSA, SLSA L4, TPM 2.0, Wasm, WebAssembly, WiFi技术, 上游代理, 二进制签名, 代码完整性, 制品签名, 加密哈希, 可视化界面, 安全工具链, 嵌入式签名, 嵌入式系统, 数字签名, 数据投毒防御, 文档安全, 无密钥签名, 来源证明, 物理隔离, 硬件安全, 硬件无关, 离线验证, 策略执行, 网络流量审计, 跌倒检测, 转型证明, 软件物料清单, 边缘计算, 通知系统