chasebryan/-wuci-ji
GitHub: chasebryan/-wuci-ji
无此机是一个以 x86_64 汇编为基础的研究项目,探索机器码执行边界、封装授权链、Merkle 账本和产物透明度证明等底层机制的可行性。
Stars: 0 | Forks: 0

# -wuci-ji
无此机(Wuci-ji)是一个专为 x86_64 架构机器设计的汇编语言项目,旨在探索机器码、底层执行、系统边界以及精确控制。
**研究/证明产物。非生产级加密。非运行时沙箱。非后量子安全。未经过独立审计。**
Wuci-ji 探索了一台小型的 x86_64 汇编产物机器:封装产物、派生清单和授权消息、强制执行扁平 Gate 合约、将发布/打开决策锚定到固定根、构建公共见证包,并将这些包提交到 Merkle 账本中。当前的 FROST 授权是用于测试和证明的确定性固定材料,而非生产签名授权。
## 当前成熟度
目前最有力的是机械层面的声明,而非生产信任:该仓库可以构建 Linux x86_64 二进制文件、封装它、授权它、通过汇编和 Zig 通道验证扁平合约、生成公共见证证据、追加账本历史、输出本地 SBOM/来源证据,并审计已签名的本地安装。有关汇编、Zig、Python、Makefile、CI、固定授权和 WJ* 目标组合模型之间的确切划分,请参阅 [docs/THREAT_MODEL.md](docs/THREAT_MODEL.md)、[docs/PRODUCTION_READINESS.md](docs/PRODUCTION_READINESS.md)、[docs/SECURITY_BOUNDARY.md](docs/SECURITY_BOUNDARY.md) 和 [docs/wuci_wjstar_model.md](docs/wuci_wjstar_model.md)。WJ-next 规范记录目标在 [docs/wuci_wjnext_model.md](docs/wuci_wjnext_model.md) 中跟踪。
## 最小构建与测试
原生 `make` 和 `make selftest` 需要带有 GNU `as`/`ld` 的 Linux x86_64 环境。完整的原生 `make test` 通道还需要 BMI2 和 AVX,用于当前的汇编 X25519 辅助程序。在没有这些 CPU 功能的 Linux 主机上,请在交叉编译的 ELF 的 Python 测试工具中使用带有用户模式 `qemu-x86_64` 的 `make test-linux`。该目标默认为 `QEMU_CPU=Haswell-v4`,它提供了当前 X25519 辅助程序在 QEMU 下所需的 BMI2/AVX 指令集。在较旧的 x86_64 主机上直接运行非 X25519 的原生证明目标。
```
make test
make install-test
```
在安装了 Zig 的非 Linux 主机上,交叉编译 Linux ELF:
```
make build-linux
```
详细的证明目标位于 [docs/BUILD_TARGETS.md](docs/BUILD_TARGETS.md) 中。贡献者设置详细信息位于 [docs/CONTRIBUTOR_BOOTSTRAP.md](docs/CONTRIBUTOR_BOOTSTRAP.md) 中,CI 范围记录在 [docs/CI_SCOPE.md](docs/CI_SCOPE.md) 中。发布要求位于 [docs/RELEASE_PROCESS.md](docs/RELEASE_PROCESS.md) 中,模糊测试/对抗性解析器工作跟踪在 [docs/FUZZING.md](docs/FUZZING.md) 中。有关机器交接检查点,请参阅 [BUILD_NOTES.md](BUILD_NOTES.md)。
## 封装命令
`seal
` 从 stdin 读取明文,并写入带帧的 ChaCha20-Poly1305 产物,其中包含魔术字/版本头、随机 nonce、密文和标签。
`open ` 从 stdin 读取该产物,进行验证,并仅在身份验证成功后才写入明文。
## WUCI-FROST 演示
WUCI-FROST / 无此签 / No Such Quorum 是这台机器的授权方向:FROST 应该签名稳定的产物清单,以决定是否可以打开、发布、信任或发布产物。它不是加密替代品;产物机密性保留在 ChaCha20-Poly1305 封装中。
当前的 FROST 表面是一个确定性的、非生产级的 secp256k1 演示,它在不接受任意签名者材料的情况下运行汇编原语:
```
make frost-demo
python3 tools/frost_secp256k1_workflow.py --print-fixture-manifest
python3 tools/frost_secp256k1_workflow.py --message "authorize manifest" --print-transcript-manifest
python3 tools/frost_secp256k1_workflow.py --message "authorize manifest" --json
```
`--fixture-manifest` 仅接受完全内置的固定清单,并在任何签名份额原语运行之前拒绝修改过的签名者份额、nonce、生产标志、缺失字段和额外字段。`--transcript-manifest` 要求所选消息和承诺集具有确切的未使用记录清单,而 `--update-transcript-manifest` 在成功验证运行后将其标记为已使用。
## WUCI-WARRANT 凭证
WUCI-WARRANT / 无此令 / No Such Warrant 将 FROST 法定人数凭证绑定到一个产物清单和一个请求的操作。它仅生成和验证授权凭证;它不打开或释放产物。
```
make frost-authz
make frost-authz-demo
build/wuci-ji warrant-message-file open build/frost-authz-demo/sealed.wj
python3 tools/wuci_frost_authorize.py --artifact build/frost-authz-demo/sealed.wj --action open --print-auth-message
python3 tools/wuci_frost_authorize.py --artifact build/frost-authz-demo/sealed.wj --action open --verify-receipt build/frost-authz-demo/auth-receipt.json
```
`make frost-authz` 运行回归工作流。`make frost-authz-demo` 在 `build/frost-authz-demo/` 下创建一次性的封装产物、汇编授权消息、记录和凭证,从而将演示文件排除在跟踪的工作区之外。凭证锚定到汇编 `warrant-message-file` 输出、规范授权消息 SHA-256 以及公共 FROST 验证方程式。
## WUCI-GATE
WUCI-GATE / 无此门 / No Such Gate 在允许受控的不可覆盖打开路径之前验证 WUCI-WARRANT 凭证。Python 仍然派生并验证完整的 WUCI-WARRANT JSON 凭证。固定的扁平凭证合约是汇编边界:`gate-contract-verify` 在本地解析并验证 open 合约,`open-authorized-contract` 拒绝创建明文,除非合约、产物哈希、清单哈希、授权消息哈希、FROST 挑战、FROST 签名、密钥和输出路径全部通过,并且 `release-authorized-contract` 在输出发布决策之前验证发布合约。WUCI-ROOT 添加了一个扁平授权文件,该文件将合约 `group-public-key` 绑定到受信任的法定人数密钥;`open-authorized-rooted` 在打开之前需要该授权,而 `release-authorized-rooted` 在批准发布之前需要启用发布功能的授权。汇编不解析凭证 JSON 或接受任意签名者材料。WUCI-ANCHOR / 无此锚 / No Such Anchor 在生成任何凭证合约之前,将普通的根证明固定到 `authority/` 中的已提交授权文件;`emit --contract` 仍然可用于测试固件和否定案例,但锚定证明不会从其正在检查的合约中派生其授权。
```
make gate-workflow
make gate-policy-matrix
make gate-receipt-contract
make gate-contract-asm
make gate-contract-zig
make gate-demo
build/wuci-ji gate-contract-verify build/wuci-gate-demo/sealed.wj build/wuci-gate-demo/receipt-contract.txt
build/wuci-ji open-authorized-contract build/wuci-gate-demo/artifact.key build/wuci-gate-demo/sealed.wj build/wuci-gate-demo/receipt-contract.txt build/wuci-gate-demo/opened-asm.txt
python3 tools/wuci_gate.py check --artifact build/wuci-gate-demo/sealed.wj --action open --receipt build/wuci-gate-demo/auth-receipt.json
python3 tools/wuci_gate.py open --artifact build/wuci-gate-demo/sealed.wj --action open --receipt build/wuci-gate-demo/auth-receipt.json --keyfile build/wuci-gate-demo/artifact.key --out build/wuci-gate-demo/opened-copy.txt
```
`make gate-policy-matrix` 检查来自 `docs/wuci_gate_boundary.json` 的边界拒绝合约。`make gate-receipt-contract` 检查来自 `docs/wuci_gate_receipt_contract.json` 的 Python 派生的扁平凭证合约。`make gate-contract-asm` 检查汇编扁平合约验证器/打开命令和根授权通道,包括格式错误的合约、格式错误的授权根、授权组密钥不匹配、被篡改的哈希、错误的挑战/签名字段、错误的密钥以及没有明文发布的输出路径失败。`make gate-contract-zig` 通过为清单、授权、FROST 挑战/验证和封装打开调用汇编二进制文件,使 Zig 桥保持覆盖。`make gate-demo` 在 `build/wuci-gate-demo/` 下创建一次性产物、打开授权、Gate 决策和打开的明文。
无效凭证、错误操作、被篡改的产物、错误签名、错误密钥、私钥材料标记和现有输出路径不会释放明文。
```
WARRANT proves authorization.
GATE enforces authorization.
ENVELOPE preserves secrecy.
```
## WUCI-LEDGER
WUCI-LEDGER / 无此录 / No Such Ledger 是用于发布历史的仅哈希透明度层。汇编拥有 Merkle 提交核心:`ledger-empty-root` 输出 `SHA256("")`,`ledger-leaf-file ` 输出 `SHA256(0x00 || entry-bytes)`,而 `ledger-node ` 在从 64 位十六进制参数解码两个子哈希后输出 `SHA256(0x01 || left || right)`。`tools/wuci_ledger.zig` 构建 `build/wuci-ledger-tool`,它现在在这些原语之上拥有活动的仅追加日志通道。
```
make ledger-asm-test
make ledger-proof-test
make ledger-asm-demo
make self-release-ledger-bundle
make zig-release-ledger-bundle
build/wuci-ledger-tool init --ledger build/wuci-ledger
build/wuci-ledger-tool append --ledger build/wuci-ledger --witness-bundle build/wuci-witness-bundle
build/wuci-ledger-tool prove-inclusion --ledger build/wuci-ledger --sequence 0 --out build/wuci-ledger/inclusion-proof.txt
build/wuci-ledger-tool verify-inclusion --entry build/wuci-ledger/ledger-entry.txt --proof build/wuci-ledger/inclusion-proof.txt --head build/wuci-ledger/ledger-head.txt
build/wuci-ledger-tool prove-consistency --ledger build/wuci-ledger --from-head build/wuci-ledger/previous-ledger-head.txt --to-head build/wuci-ledger/ledger-head.txt --out build/wuci-ledger/consistency-proof.txt
build/wuci-ledger-tool verify-consistency --proof build/wuci-ledger/consistency-proof.txt
build/wuci-ledger-tool verify-history --ledger build/wuci-ledger
```
固定格式边界位于 `docs/wuci_ledger_format.json` 中。Python 账本工具保留作为回归/参考测试工具,但活动的自发布账本证明使用 Zig 进行初始化、追加、包含证明、一致性证明和完整的本地历史验证。
## WUCI-HARDEN-0
WUCI-HARDEN-0 在添加 CAGE/QCAGE 之前强化当前的证明链。它在严格模式下固定验证者身份,添加安全的文件 I/O,拒绝符号链接/硬链接公共证据,将确定性固定授权隔离为仅测试用,默认拒绝保留的信任/发布操作,并添加账本历史验证。
```
make harden0-policy-matrix
make harden0-safeio-test
make harden0-verifier-identity-test
make harden0-witness-safeio-test
make harden0-fixture-quarantine-test
make harden0-action-policy-test
make harden0-proof
```
固件 FROST 仅用于测试。发布不是发布或信任。HARDEN-0 不声称具有运行时沙箱或量子安全性。CAGE/QCAGE 应位于此边界硬化层之上。
## WUCI-CAGE
WUCI-CAGE / 无此笼 / No Such Cage 是产物气锁:它在信任之前验证已封装、已授权、已生根、已见证和账本就绪的证据。CAGE v1 不声称具有 OS 运行时沙箱。在运行时沙箱强制执行存在之前,它拒绝常规运行请求。
```
make cage-policy-matrix
make cage-bundle-test
make cage-proof
python3 tools/wuci_cage.py attest --bundle build/wuci-witness-bundle --out build/wuci-cage-attestation.json
python3 tools/wuci_cage.py verify --bundle build/wuci-witness-bundle --attestation build/wuci-cage-attestation.json
python3 tools/wuci_cage.py deny-run --artifact build/wuci-witness-bundle/wuci-ji.self.wj --out build/wuci-cage-run-denied.txt
```
CAGE v1 不是漏洞利用工具、模糊测试器、扫描器、越狱工具、恶意软件沙箱或 OS 容器层。它验证公共见证包,拒绝私有/演示文件和私有材料标记,编写确定性 CAGE 证明,输出账本就绪的 CAGE 条目,并拒绝 Wuci-ji 尚未强制执行的运行时执行声明。
## WUCI-QCAGE
WUCI-QCAGE / 无此量笼 / No Such Quantum Cage 向 WUCI-CAGE 添加了量子感知的证据检查。
QCAGE v1 默认不声称具有后量子安全性。它将当前的 WUCI-FROST/secp256k1 证据保留为兼容性证据,将其在 CRQC 威胁模型下标记为量子易受攻击,添加 SHA-384/SHA-512 公共证据摘要,输出加密清单,记录构建图证据,计算量子迁移债务,并拒绝虚假的量子安全声明。
```
make qcage-model-test
make qcage-policy-matrix
make qcage-crypto-inventory
make qcage-build-graph
make qcage-attestation-test
make qcage-proof
python3 tools/wuci_qcage.py risk --T-migrate 3 --T-trust 10 --T-CRQC 10
```
模式:
```
compat:
Current WUCI-CAGE evidence can pass with quantum_safe=false.
hybrid-required:
Requires existing WUCI evidence and real PQ signature verification.
In v1 this fails closed unless a real verifier is implemented.
pq-required:
Requires real PQ signature verification.
Classical-only authority is insufficient.
```
## WUCI-HARDEN
WUCI-HARDEN / 无此固 / No Such Soft Spot 围绕 WUCI-GATE、WUCI-WARRANT、WUCI-WITNESS 和 WUCI-LEDGER 强化证明链。
它不添加攻击性工具。它防止将固件授权误认为是生产信任,在严格模式下固定验证者身份,默认拒绝保留的信任/发布操作,拒绝公共证据中的符号链接和硬链接意外,加强本地账本突变检测,并防止运行时或量子安全的过度声明。
```
make harden-policy-matrix
make harden-safeio-test
make harden-verifier-identity-test
make harden-witness-symlink-test
make harden-fixture-quarantine-test
make harden-action-policy-test
make harden-ledger-mutation-test
make harden-proof
```
## WUCI-INSTALL
WUCI-INSTALL / 无此装 / No Such Install 是 Wuci-ji 的无提示签名安装程序。它需要在安装之前本地复制的安装根密钥,然后在写入原子安装凭证之前验证分离的 OpenSSH 清单签名、摘要向量、自测、HARDEN、CAGE、QCAGE、见证和账本证明门。在证明门等待期间,安装程序会显示带有当前活动阶段的 WUCI-INSTALL 滚动提示,直到完成。
```
mkdir -p ~/.config/wuci-ji
cp install/wuci-install-root.v1.pub ~/.config/wuci-ji/install-root.pub
make install-proof INSTALL_ROOT_KEY=$HOME/.config/wuci-ji/install-root.pub INSTALL_PREFIX=$HOME/.local
~/.local/bin/wuci-ji-audit
```
审计命令始于:
```
无此机 / Wuci-ji systems nominal.
Version 0.1 installed.
Install status: nominal
```
WUCI-INSTALL 不使用 `curl | sh`,不进行交互式提示,不接受未签名的清单,并且在没有复制本地根密钥的情况下不进行安装。它不声称具有运行时沙箱或量子安全性。在生产环境中使用之前,请在从检出中复制安装根密钥之前通过带外方式确认其指纹。
## 自发布演示
Wuci-ji 可以封装自己的 Linux x86_64 二进制文件,将其绑定到汇编产物清单,发出 WUCI-WARRANT 凭证,通过 WUCI-GATE,并打开为字节完全相同的可执行副本。
```
make authority-root-check
make self-release-demo
make self-release-bundle
make install-sign-current INSTALL_SIGNING_KEY=/absolute/path/to/root-signing-key
make self-release-contract-bundle
make self-release-asm-contract-proof
make self-release-anchored-proof
make self-release-rooted-proof
make self-release-release-contract-proof
make self-release-publish-bundle
make self-release-witness-bundle
make self-release-witness-archive
make ledger-asm-test
make ledger-proof-test
make self-release-ledger-bundle
make cage-policy-matrix
make cage-bundle-test
make cage-proof
make qcage-model-test
make qcage-policy-matrix
make qcage-proof
make harden-proof
make high-attestation-profile
make high-attestation-proof
make sbom-provenance
make sbom-provenance-test
make carrot-policy
make kernel-sandbox-proof
make pq-verifier-detect
make pq-verifier-real-attest
make pq-verifier-real
make pq-verifier-test
make production-authority-verify
make production-readiness-gates
make crypto-self-audit
make crypto-self-audit-test
make parser-corpus-replay
make verify-release-bundle
make host-capacity
make witness-zig
make verify-self-release-bundle
make self-release-attestation-test
make authority-anchor-test
make publish-attestation-test
make witness-attestation-test
make witness-zig-test
make witness-archive-test
make zig-release-proof
make zig-release-contract-proof
make zig-release-asm-contract-proof
make zig-release-anchored-proof
make zig-release-rooted-proof
make zig-release-release-contract-proof
make zig-release-publish-bundle
make zig-release-witness-bundle
make zig-release-witness-archive
make zig-release-ledger-bundle
```
`make self-release-bundle` 在封装产物、清单、授权消息、凭证和打开的二进制文件旁边添加 `attestation.json`。证明记录相关的 SHA-256 值、Gate 决策字段、字节身份检查、可执行文件检查和当前边界声明。`make verify-self-release-bundle` 从包文件重新计算这些检查。`make high-attestation-profile` 验证 `docs/wuci_high_attestation_profile.json` 中的本地防御基线;`make high-attestation-proof` 将该基线与固定的 qemu X25519 通道、汇编检查、HARDEN、CAGE/QCAGE、CARROT seccomp/namespace 无网络证明、PQ 验证器检测、可选的固定真实 PQ 验证器证据、本地 Rust FIPS 204 ML-DSA 验证器证明通道、加密自审计、签名的外部审计验证器测试、WJ*/WJ-next 模型检查、确定性解析器强化重放、发布包验证、生产就绪门、Gate 合约和完整的 Linux CLI 工具组合在一起。`make host-capacity` 报告检测到的逻辑 CPU;独立的证明目标可以通过 `make -jN` 运行,而共享的证据路径仍然由依赖项保持串行化。这是一个本地证据通道,而不是对常规运行时沙箱、量子安全性、生产授权或不存在漏洞的声明。
`make self-release-contract-bundle` 还会写入 `receipt-contract.txt`,通过 Zig 扁平合约验证器打开,并在证明中记录合约哈希以及 Zig 合约验证检查。
`make self-release-asm-contract-proof` 运行更强大的原生合约通道:它通过 `open-authorized-contract` 验证并打开自封装的二进制文件,并在证明中记录汇编合约检查。
`make zig-release-asm-contract-proof` 针对使用 Zig 构建的 Linux ELF 运行相同的汇编强制合约通道,证明可移植的发布产物可以通过其自身的汇编 Gate 自行打开。
`make self-release-anchored-proof` 和 `make zig-release-anchored-proof` 使用已提交的打开锚点 `authority/wuci-root.fixture.txt`,要求受信任的组密钥与凭证合约匹配,通过 `open-authorized-rooted` 打开,并在证明中记录 `authority_root_sha256`、`authority_group_public_key`、`rooted_gate_check` 和 `rooted_gate_open`。较旧的根证明目标名称现在通过该锚定路径路由。
`make self-release-release-contract-proof` 和 `make zig-release-release-contract-proof` 证明原生和 Zig 构建的二进制文件可以通过汇编 `release-authorized-contract` 验证其自身的发布授权,并输出确定性的发布决策。
`make self-release-publish-bundle` 和 `make zig-release-publish-bundle` 将已提交的发布锚点 `authority/wuci-release-root.fixture.txt` 作为 `authority-root.txt` 复制到包中,需要汇编 `release-authorized-rooted`,写入 `release-decision.txt`,并使用 `release_authority_root_sha256`、`release_authority_group_public_key`、`release_contract_sha256`、`release_decision_sha256`、`rooted_release_check` 和 `publish_bundle_complete` 证明发布包。
`make self-release-witness-bundle` 和 `make zig-release-witness-bundle` 将该发布证明转换为 WUCI-WITNESS / 无此证 / No Such Witness:一个无密钥的公共包,仅包含 `wuci-ji.self.wj`、`manifest.txt`、`warrant-message.txt`、`release-receipt.json`、`receipt-contract.txt`、`authority-root.txt`、`release-decision.txt`、`publish-index.txt` 和 `attestation.json`。见证验证器重新计算产物哈希、清单和发布授权字节、凭证合约、发布锚点、根汇编发布决策和证明;它拒绝演示密钥、已打开的二进制文件、记录、格式错误的索引和不匹配的公共证据。
`make witness-zig` 将 `tools/wuci_witness.zig` 构建到 `build/wuci-witness` 中。活动的见证包通道使用该 Zig 工具写入 `publish-index.txt`,写入 `attestation.json`,并通过相同的汇编 `release-authorized-rooted` 边界验证公共包,而无需调用 Python 见证入口点。
`make self-release-witness-archive` 写入 `build/wuci-witness-bundle.tar` 和 `build/wuci-witness-bundle.tar.sha256`,具有固定的文件顺序、根 `wuci-publish-bundle-v1/`、mtime 零、uid/gid 零和模式 `0644`,然后提取并验证公共包。`make zig-release-witness-archive` 对 Zig 构建的 ELF 执行相同的操作,并且还通过 `build/wuci-witness` 验证提取的包。
`make self-release-attestation-test` 检查被篡改的证明、清单、授权消息、凭证、封装产物、产物密钥和已打开的二进制文件是否未通过验证。`make publish-attestation-test` 检查被篡改的发布决策、发布合约和授权根是否未通过发布包验证。`make witness-attestation-test` 检查公共见证配置文件,包括禁止的私有文件以及被篡改的索引、清单、授权、决策、授权、凭证和合约。`make witness-zig-test` 检查 Zig 验证器是否拒绝私有文件以及被篡改的索引、决策和证明。`make witness-archive-test` 检查确定性存档字节、辅助文件不匹配、缺失文件、禁止文件、非零 mtime 和被篡改的存档决策。`make authority-anchor-test` 检查锚定模式是否接受已提交的固定根,拒绝自行派生的授权路径,并拒绝格式错误或策略无效的授权根。
活动的自发布见证/账本通道现在使用 Zig 工具进行确定性固件授权凭证、扁平凭证合约输出、公共见证索引/证明、见证验证和账本追加/证明/历史操作。Python 仍然可用于参考测试和较旧的预览通道。普通的根证明使用已提交的授权锚点,而不是从刚刚创建的合约中输出授权,同时汇编本身执行 `open`、根 `open`、`release` 和根 `release` 合约路径。
## 许可证
Apache-2.0。请参阅 [LICENSE](LICENSE) 和 [NOTICE](NOTICE)。标签:x86_64架构, 密码学验证, 底层控制, 快速连接, 操作系统内核, 汇编语言, 系统编程, 身份验证强制, 逆向工具