一句话:提出 DiVerify,将多源身份声明、TEE 环境证明与签名密钥绑定,并用可机检策略验证签名条件。
基于身份的软件签名被 npm、Docker Hub 等用于溯源,但现有验证只证明签名者身份,不证明签名时的身份认证、工具与运行环境条件;凭据、身份提供方或签名工具被攻破仍可产生通过验证的签名。DiVerify 将多个 scope provider 的身份声明、TEE 隔离守护进程的签名环境证明与签名密钥绑定为单一可验证对象,并用可机检策略语言规定接受签名所需条件。作者形式化分析其可靠性,在三种部署模式下实现原型;评估显示验证开销低于 400ms,存储开销不足平均 PyPI 包大小的 1.6%,案例集成表明可组合性良好。
Modern software release infrastructure uses identity-based software signing to associate software artifacts with a known identity. For example, registries such as npm and Docker Hub rely on Sigstore’s identity-based software signing in their artifact provenance workflows. However, existing verification procedures only provide evidence of a signer’s identity, but not the conditions under which signing occurred. As a result, compromised credentials, identity providers, or signing tools can still produce signatures that pass verification. This gap prevents software engineering tools (e.g., package registries, dependency analysis tools, deployment systems, and CI/CD verification stages) from enforcing verifiable context-aware trust policies for software signing. We present DiVerify, a framework for automated verification of software signing conditions. A DiVerify signature binds identity claims from multiple independent scope providers, signing-environment attestation from a TEE-isolated daemon, and the signing key into a single verifiable object. A machine-checkable policy language specifies the identity, authentication, and environment conditions required for accepting a signature. We formally analyze DiVerify and show that it is sound, prototype it across three deployment modes, and demonstrate overhead under 400ms, with storage overhead of less than 1.6% of average PyPI package size. Case study integrations with existing systems confirm DiVerify composes well.