-
-
Notifications
You must be signed in to change notification settings - Fork 81
CBOM 2.0 features #769
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 2.0-dev
Are you sure you want to change the base?
CBOM 2.0 features #769
Conversation
Implement the following features for CBOM v2.0: - Change implementationPlatform to array to support multiple platforms - Add keyUsage property to cryptoProperties and relatedCryptoMaterialProperties (open string array with examples: CIPHER, SIGN, VERIFY, WRAP, UNWRAP, etc.) - Add secProperties to algorithmProperties for security properties (open string array with examples: IND-CPA, IND-CCA, SUF-CMA, EUF-CMA, etc.) - Extend evidence/occurrences with system metadata: accountInfo, systemOwner - Extend evidence/occurrences with process metadata: startTime, endTime, usageCount - Change securedBy.algorithmRef to array of refs to support linking multiple securing assets (algorithms, hardware, keys, etc.) Extend cryptoProperties.mode/padding/cryptoFunctions Signed-off-by: Basil Hess <[email protected]>
| "secProperties": { | ||
| "type": "array", | ||
| "title": "Security Properties", | ||
| "description": "The security properties of the cryptographic algorithm.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets flush out this description a bit more and not assume the target audience is well-versed in PQC readiness.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated it with an improved description.
| "items": { | ||
| "type": "string", | ||
| "title": "Security Property", | ||
| "description": "A security property of the cryptographic algorithm.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consolidated the two description fields to a single one.
Signed-off-by: Basil Hess <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements CBOM v2.0 features for improved cryptographic asset modeling. The changes extend the CycloneDX schema to support multiple implementation platforms, key usage specifications, security properties for algorithms, extended evidence metadata, additional cipher modes and padding schemes, key agreement functions, and multiple securing asset references.
Changes:
- Changed
implementationPlatformfrom single string to array to support multiple platforms - Added
keyUsageproperty to cryptographic and related crypto material properties for usage specifications (CIPHER, SIGN, VERIFY, WRAP, UNWRAP, etc.) - Added
secPropertiesto algorithm properties for formal security guarantees (IND-CPA, IND-CCA, SUF-CMA, EUF-CMA, etc.) - Extended evidence/occurrences with system metadata (accountInfo, systemOwner) and process metadata (startTime, endTime, usageCount)
- Changed
securedBy.algorithmReffrom single reference to array supporting multiple securing assets - Added support for PSS padding, keyagree crypto function, and additional cipher modes (siv, gcm-siv, ocb, eax, kw, kwp, cts, xts)
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| schema/2.0/model/cyclonedx-cryptography-2.0.schema.json | Core schema changes for CBOM 2.0 features including platform arrays, keyUsage, secProperties, and algorithmRef arrays |
| schema/2.0/model/cyclonedx-component-2.0.schema.json | Added system and process metadata fields to evidence/occurrences |
| schema/2.0/cyclonedx-2.0-bundled.schema.json | Bundled schema reflecting all CBOM 2.0 changes |
| schema/2.0/cyclonedx-2.0-bundled.min.schema.json | Minified bundled schema with all changes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
stevespringett
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Double check to ensure that we're not missing any meta:enum properties for the new enums added.
| "type": "string", | ||
| "title": "Usage", | ||
| "description": "A permitted cryptographic usage.", | ||
| "examples": [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Investigate syncing with related crypto material usage and making this an enum.
Implement the following features for CBOM v2.0 as described in #738
(open string array with examples: CIPHER, SIGN, VERIFY, WRAP, UNWRAP, etc.)
(open string array with examples: IND-CPA, IND-CCA, SUF-CMA, EUF-CMA, etc.)
securing assets (algorithms, hardware, keys, etc.)
Fixes #738
Adds support for pss in cryptoProperties.algorithmProperties.padding
Fixes #747
Adds support for key agreement or exchange in cryptoProperties.algorithmProperties.cryptoFunctions
Fixes #748
Adds support for additional cipher modes in cryptoProperties.algorithmProperties.mode
Fixes #749