TL;DR: Software supply chains are exposed to tampering when code signing keys, certificates, and build permissions are fragmented or overbroad, according to Keyfactor. The identity problem is not the signature itself, but whether machine identities and signing workflows are governed tightly enough to preserve trust at release time.
At a glance
What this is: This is Keyfactor’s overview of code signing security, with the key finding that software trust collapses when signing keys, certificates, and pipeline access are weakly governed.
Why it matters: It matters because code signing sits at the intersection of NHI, CI/CD, and Zero Trust, so weak governance can turn a trusted release process into a supply chain breach path.
By the numbers:
- Only 44% of developers are reported to follow security best practices for secrets management, exposing a significant developer behaviour gap.
👉 Read Keyfactor's code signing guidance for securing software supply chains
Context
Code signing is the practice of attaching a cryptographic signature to software so recipients can verify origin and integrity before execution or installation. In this article, the governance gap is not the math of signing itself, but the lifecycle control around signing certificates, private keys, and approval paths in modern software supply chains.
For identity teams, code signing is a machine identity control, not just a developer workflow. When signing keys are shared, stale certificates linger, or build systems can sign too broadly, the release pipeline becomes a privileged identity pathway with supply chain consequences.
That makes code signing a governance problem spanning PKI, IAM, PAM, and CI/CD. The article’s typical starting point is familiar to many enterprises: distributed development has outpaced the controls used to prove software trust.
Key questions
Q: What breaks when code signing keys are shared across build systems?
A: Shared signing keys collapse the separation between trusted release actions and ordinary build activity. If one system is compromised, attackers can sign malicious artefacts that appear legitimate to customers and downstream tooling. The failure is not only technical. It removes accountability, weakens revocation, and makes it difficult to prove which system actually authorised the release.
Q: Why do code signing controls matter in software supply chains?
A: Code signing matters because it turns software integrity into a verifiable identity assertion. Without it, tampering can occur early in the pipeline and persist into distribution. With it, organisations can prove origin, limit modification, and reduce the chance that malicious code is treated as trusted software.
Q: What do security teams get wrong about code signing lifecycle management?
A: The common mistake is treating certificates as one-time setup items instead of governed assets with issuance, renewal, rotation, and revocation requirements. When inventory is incomplete, stale certs linger and policy enforcement becomes inconsistent. That creates hidden trust debt across development teams and regions.
Q: Who is accountable when a signed release contains malicious code?
A: Accountability sits with the organisation that issued and governed the signing authority, not just the developer who pushed the code. If keys, approvals, or audit trails were weak, the release process itself failed. That is why PKI, IAM, and DevSecOps ownership must be coordinated before incidents occur.
Technical breakdown
Code signing certificates as machine identities
A code signing certificate binds software output to a verified identity and private key, creating cryptographic proof that a binary, script, or package has not been altered since signing. In practice, the certificate is only as trustworthy as the lifecycle behind it. If issuance, storage, renewal, and revocation are unmanaged, the signature becomes a weak assertion rather than a durable control. The article correctly frames signed code as a trust anchor for ZTA and DevSecOps, because the release artefact itself becomes the object being authenticated.
Practical implication: Treat signing certificates as governed machine identities with lifecycle controls, not as static tooling artefacts.
Why over-permissioned signing access widens blast radius
Signing systems fail when build servers, CI/CD runners, or shared file systems can reach private keys without strong access boundaries. That creates an identity problem, because the entity performing the signing may not be the only one able to influence it. When access is broad, compromise of a single pipeline account can translate into organisation-wide software tampering. This is why over-permission in code signing is structurally similar to any other privileged NHI exposure: the signed output inherits the trust of the signer, so signer compromise becomes distribution compromise.
Practical implication: Limit who and what can request, trigger, or use signing keys, and isolate signing authority from ordinary build access.
Policy enforcement and auditability in signing workflows
Policy-based signing controls only work if every signing event is logged, validated, and tied to an approved workflow. Without central inventory, revocation visibility, and anomaly detection, teams cannot distinguish normal release activity from misuse. Auditing also matters because code signing is often used across distributed teams and regions, where responsibility can blur and stale certificates can persist. The article’s strongest operational insight is that traceability must cover the full certificate lifecycle, not just the act of signing.
Practical implication: Enforce central inventory, immutable audit trails, and approval workflows for every signing event.
NHI Mgmt Group analysis
Code signing is a machine identity control, not a build-system feature. The security value comes from binding software to a governed identity that can be issued, constrained, and revoked. When organisations treat signing as a developer convenience, they miss the real risk surface: who can sign, under what authority, and with which lifecycle controls. Practitioners should manage signing as part of NHI governance, not release engineering.
Over-permissioned signing access creates a release-path blast radius. Build servers and CI/CD runners that can reach signing keys without tight boundaries turn compromise of one system into compromise of the software trust chain. That is a classic privileged-access problem in machine identity form. The implication for practitioners is that signing authority must be separated from routine build access and governed with the same discipline as PAM.
Decentralised certificate management is a governance failure, not a process inconvenience. When teams self-issue, reuse stale certificates, or lose inventory, trust becomes inconsistent across products and regions. That weakens incident response, revocation, and compliance at the same time. The right question for identity leaders is whether the certificate lifecycle is centrally controlled enough to survive scale.
Software supply chain integrity depends on lifecycle governance across PKI, IAM, and CI/CD. The article shows how signing, access control, and auditability intersect, which means siloed ownership is a structural weakness. When PKI teams, DevSecOps, and IAM do not share control points, attackers exploit the gaps between them. Practitioners should align certificate lifecycle governance with the broader identity programme.
From our research:
- Companies are dedicating an average of 32.4% of their security budgets to secrets management and code security, with US organisations leading at 40.8%, according to The State of Secrets in AppSec.
- 43% of security professionals are concerned about AI systems learning and reproducing sensitive information patterns from codebases, which shows the control problem is already expanding beyond traditional secrets leakage.
- For a broader breach lens, the 52 NHI breaches Report shows how trust failures in machine identities repeatedly turn into downstream compromise.
What this signals
Signing controls are now part of the broader machine identity perimeter. As software delivery becomes more distributed, the operational question is whether certificate issuance, key storage, and release approvals are governed as one lifecycle. Teams that still split PKI, DevSecOps, and IAM ownership will find that the trust boundary is being managed in pieces, not as a system.
Ephemeral build access does not solve persistent trust risk. Even when pipelines are short-lived, the signing authority they invoke can still persist, expand, or be reused in ways the team does not see. That is why code signing should be reviewed alongside workload identity, privileged access, and certificate inventory.
If your programme already tracks workload identity and secrets exposure, the next step is to examine whether signing authority is equally visible. The same controls that expose credential sprawl, such as inventory, approval, and revocation, need to reach the release layer as well.
For practitioners
- Centralise certificate issuance and inventory Maintain one authoritative inventory of active, expired, and revoked code signing certificates so teams can see where trust exists and where it has lapsed. Tie issuance to approved authorities and remove local shadow certificate handling.
- Restrict signing authority to approved systems Separate signing keys from ordinary build credentials and require role-based approvals for any system that can request or use signing operations. This reduces the blast radius if a CI/CD runner or build host is compromised.
- Store private keys in hardware-backed controls Keep signing keys in HSMs or secure cloud vaults so private material is not exposed on shared file systems or general-purpose build servers. Pair that with planned rotation and revocation before expiry.
- Audit every signing event for anomalies Log each signing request, compare it against policy, and alert on unusual source systems, unexpected time windows, or repeated failed attempts. Use the audit trail to support incident response and certificate revocation.
Key takeaways
- Code signing failures are identity failures when signing authority is broad, opaque, or unmanaged.
- The risk is not only malicious code, but the loss of trust when certificate lifecycle control breaks down.
- Central inventory, key isolation, and auditability are the controls that keep software provenance defensible at scale.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0 and NIST Zero Trust (SP 800-207) set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| OWASP Non-Human Identity Top 10 | NHI-03 | Signing keys and certificates need lifecycle protection and revocation discipline. |
| NIST CSF 2.0 | PR.AC-4 | Code signing access is privileged access that needs least-privilege enforcement. |
| NIST Zero Trust (SP 800-207) | Signed software is a trust decision that benefits from zero trust verification. |
Apply continuous verification to release authority, keys, and pipeline identity before artefacts are published.
Key terms
- Code Signing Certificate: An X.509 certificate used to prove that software came from a specific publisher and has not changed since signing. In practice, it binds code to a private key and a governed identity, so the certificate lifecycle becomes part of software trust, not just cryptography.
- Signing Authority: The people, systems, and approvals allowed to create trusted software signatures. In mature programmes, this is tightly scoped, centrally inventoried, and auditable. If signing authority is broad or shared, the trust boundary shifts from provenance to convenience, which increases supply chain risk.
- Machine Identity: A non-human identity used by software, workloads, or build systems to prove who or what is acting in a digital process. For code signing, the signed artefact itself becomes a machine trust signal, and the associated keys, certificates, and access paths must be governed accordingly.
- Certificate Lifecycle: The full management process for a certificate from issuance through renewal, rotation, suspension, and revocation. Strong lifecycle control prevents stale trust and reduces the chance that forgotten credentials or unmanaged approvals can be used to sign malicious code.
Deepen your knowledge
NHI governance, agentic AI identity, and machine identity security are core topics in our NHI Foundation Level course, the industry's only accredited NHI security programme. If you are responsible for identity security strategy or NHI governance in your organisation, it is worth exploring.
This post draws on content published by Keyfactor: Code Signing 101: Locking Down Your Software Supply Chain. Read the original.
Published by the NHIMG editorial team on 2025-10-09.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org