Skip to content

Lifecycle Management

CBOM tracks the lifecycle state of every cryptographic asset according to NIST SP 800-57 key management recommendations. Lifecycle states are stored on each asset and exported in CycloneDX output.


StateDescriptionTypical Use
pre-activationGenerated but not yet in operational useKeys awaiting deployment
activeCurrently in operational useProduction certificates and keys
suspendedTemporarily removed from useUnder investigation or maintenance
deactivatedPermanently removed from operational useRetired after rotation
compromisedKey material may have been exposedIncident response
destroyedCryptographically erasedEnd of life
revokedCertificate revoked by issuing CACA-initiated revocation

pre-activation → active → deactivated → destroyed
↓ ↑
suspended ─────┘
compromised → destroyed
active → revoked (certificates only)

  1. Open an asset’s detail panel in Inventory
  2. Click the lifecycle state badge
  3. Select the new state
  4. Provide a reason (required for compromised/revoked)
  5. Confirm

hidden Lifecycle state change dialog with state selector and reason field

When transitioning to certain states, a reason is required:

TransitionExample Reasons
→ compromised”Key exposed in breach”, “Unauthorized access detected”
→ revoked”CA revocation due to mis-issuance”, “Domain ownership change”
→ deactivated”Rotation completed”, “Service decommissioned”
→ destroyed”Compliance requirement”, “End of retention period”

Some lifecycle states are detected automatically by sensors:

  • Certificates past expiration — Flagged but not auto-transitioned (expiration ≠ revocation)
  • Revoked certificates — Detected via CRL/OCSP during TLS endpoint scanning
  • New assets — Default to active unless explicitly set otherwise

Lifecycle state is included in the CycloneDX export:

For certificates (via certificateProperties.certificateState):

{
"certificateProperties": {
"certificateState": [{
"state": "compromised",
"reason": "Key exposed in security incident"
}]
}
}

For keys (via relatedCryptoMaterialProperties.state):

{
"relatedCryptoMaterialProperties": {
"type": "private-key",
"state": "active"
}
}

Filter the inventory by lifecycle state to find:

  • All compromised assets requiring remediation
  • Pre-activation assets awaiting deployment
  • Deactivated assets that can be cleaned up
  • Active assets for compliance evaluation

  • Inventory — Where lifecycle states are displayed and managed
  • Compliance — Policies can require specific lifecycle states
  • Alerts — Alert on lifecycle state changes
  • Import/Export — Lifecycle state in CycloneDX output