Context-Aware Trust Verification for Identity-Based Software Signing

arXiv:2406.15596 · cs.CR, cs.SE · Submitted 2024-06-21 · Read on arXiv

cs.CR, cs.SE

Submitted: 2024-06-21

Updated: 2026-09-22

DOI: 10.1145/3832783.3834333

Code: https://github.com/bcgov/vc-authn-oidc

License: http://creativecommons.org/licenses/by/4.0/

The gist: Modern software release infrastructure uses identity-based software signing to associate software artifacts with a known identity.

Terminology

Abstract

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.

Sources

Related papers