Security
New Framework Adds Environmental Context to Software Signing Verification
DiVerify brings machine-checkable trust policies to identity-based software signing, closing a gap that allows compromised credentials to pass existing verification systems.
Current identity-based software signing systems—used by major registries like npm and Docker Hub through infrastructure such as Sigstore—can verify who signed a piece of software, but they reveal nothing about how or where the signing actually took place. This blind spot means that even if an attacker compromises credentials, an identity provider, or the signing tool itself, their malicious signatures would still pass verification checks.
The Problem with Today's Approach#
Software registries and deployment systems need more than just proof of identity to trust a signature. They need assurance that signing occurred under acceptable conditions: the right authentication method was used, the signer was in an approved location or environment, and the signing tool itself wasn't compromised. Without this context, package registries, CI/CD systems, and dependency analysis tools cannot enforce meaningful trust policies beyond checking a cryptographic signature.
Introducing DiVerify#
Researchers have developed DiVerify, a verification framework that binds together multiple layers of evidence into a single, machine-checkable object. Each DiVerify signature combines:
- Identity claims from multiple independent providers
- Environment attestation gathered from a trusted execution environment (TEE) isolated daemon
- The signing key itself
Together, these elements create a verifiable record of the conditions under which signing happened.
How It Works#
The framework includes a policy language that lets operators specify exactly what conditions must be met before accepting a signature. These policies can encode requirements about the signer's identity, authentication method, and the environment where signing took place. Software engineering tools can then automatically verify that incoming signatures comply with these rules.
Performance and Integration#
Testing across three deployment modes shows the overhead is minimal—under 400 milliseconds per signature. Storage overhead adds less than 1.6% to the average size of packages on PyPI. Integrations with existing systems demonstrate that DiVerify fits naturally into current software supply-chain workflows without major disruption.

