Skip to content

Commit 0887a04

Browse files
Added cryptography
1 parent 2417f97 commit 0887a04

3 files changed

+148
-30
lines changed

SBOM/en/0x30-Use_Cases.md

+79-20
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,7 @@ CycloneDX is capable of describing the following types of components:
8686
> system or design. They also aid Software Asset Management (SAM) and IT Asset Management (ITAM) systems in classifying
8787
> the inventory of software and constituent parts.
8888
89-
90-
Component identity is an essential requirement for managing inventory. CycloneDX supports multiple methods to assert
91-
identity including:
89+
CycloneDX supports multiple methods to assert identity including:
9290

9391
- Coordinates: The combination of the group, name, and version fields form the coordinates of a component.
9492
- Package URL: [Package URL](https://github.com/package-url/purl-spec) (PURL) standardizes how software package metadata is represented so that packages can universally be identified and located regardless of what vendor, project, or ecosystem the packages belongs to.
@@ -102,26 +100,24 @@ information.
102100
The following example illustrates component identity in CycloneDX.
103101

104102
```json
105-
"components": [
106-
{
107-
"type": "library",
108-
"group": "com.example",
109-
"name": "awesome-library",
103+
{
104+
"type": "library",
105+
"group": "com.example",
106+
"name": "awesome-library",
107+
"version": "1.0.0",
108+
"cpe": "cpe:2.3:a:acme:awesome:1.0.0:*:*:*:*:*:*:*",
109+
"purl": "pkg:maven/com.example/awesome-library@1.0.0",
110+
"swid": {
111+
"tagId": "swidgen-242eb18a-503e-ca37-393b-cf156ef09691_1.0.0",
112+
"name": "Acme Awesome Library",
110113
"version": "1.0.0",
111-
"cpe": "cpe:2.3:a:acme:awesome:1.0.0:*:*:*:*:*:*:*",
112-
"purl": "pkg:maven/com.example/awesome-library@1.0.0",
113-
"swid": {
114-
"tagId": "swidgen-242eb18a-503e-ca37-393b-cf156ef09691_1.0.0",
115-
"name": "Acme Awesome Library",
116-
"version": "1.0.0",
117-
"text": {
118-
"contentType": "text/xml",
119-
"encoding": "base64",
120-
"content": "U1dJRCBkb2N1bWVudCBkb2VzIGhlcmU="
121-
}
114+
"text": {
115+
"contentType": "text/xml",
116+
"encoding": "base64",
117+
"content": "U1dJRCBkb2N1bWVudCBkb2VzIGhlcmU="
122118
}
123119
}
124-
]
120+
}
125121
```
126122

127123
CycloneDX also supports several identifiers specific to hardware devices. Refer to https://cyclonedx.org/capabilities/hbom/
@@ -519,6 +515,69 @@ Bill of Material (MBOM). The SBOM references the MBOM that describes the environ
519515
all other considerations necessary to replicate a build with utmost precision. This capability allows other parties to
520516
independently verify inputs and outputs from a build which can increase the software's assurance.
521517

518+
## Cryptography Asset Management
519+
CycloneDX can describe a comprehensive inventory of cryptographic assets, encompassing keys,
520+
certificates, tokens, and more. This is a requirement of the [OMB M-23-02](https://www.whitehouse.gov/wp-content/uploads/2022/11/M-23-02-M-Memo-on-Migrating-to-Post-Quantum-Cryptography.pdf),
521+
where such a system is characterized as a [...”software or hardware implementation of one or more cryptographic algorithms
522+
that provide one or more of the following services: (1) creation and exchange of encryption keys; (2) encrypted connections;
523+
or (3) creation and validation of digital signatures.”]
524+
525+
CycloneDX provides a structured framework for organizations to catalog and track their cryptographic resources, facilitating
526+
efficient management and ensuring security and compliance standards are met. By maintaining a detailed record of
527+
cryptographic assets, including their usage, expiration dates, and associated metadata, CycloneDX enables proactive
528+
monitoring and streamlined auditing processes. With CycloneDX, organizations can effectively safeguard their cryptographic
529+
infrastructure, mitigate risks associated with unauthorized access or misuse, and maintain the integrity and confidentiality
530+
of sensitive data across diverse digital environments.
531+
532+
## Identifying Weak Cryptographic Algorithms
533+
CycloneDX enables organizations to discover weak algorithms or flawed implementations that could compromise security.
534+
Through analysis of cryptographic data, including algorithms, key management practices, and usage patterns, organizations
535+
can pinpoint areas of concern and prioritize remediation efforts. CycloneDX facilitates proactive identification of
536+
weaknesses and vulnerabilities, allowing organizations to enhance the resilience of their cryptographic infrastructure
537+
and mitigate the risk of exploitation, thereby bolstering overall cybersecurity posture and safeguarding sensitive data
538+
against potential threats.
539+
540+
## Post-Quantum Cryptography (PQC) Readiness
541+
CycloneDX is crucial in preparing applications and systems for an impending post-quantum reality, aligning with
542+
guidance from the National Security Agency (NSA) and the National Institute of Standards and Technology (NIST). As
543+
quantum computing advancements threaten the security of current cryptographic standards, CycloneDX provides a structured
544+
approach to inventorying cryptographic assets and evaluating their resilience against quantum threats.
545+
546+
Most notably, public key algorithms like RSA, DH, ECDH, DSA or ECDSA are considered not quantum-safe. These algorithms
547+
occur in various components and may be hardcoded in applications but are more commonly and preferably used via dedicated
548+
cryptographic libraries or services. Developers often don’t directly interact with cryptographic algorithms such as RSA
549+
or ECDH but use them via protocols like TLS 1.3 or IPsec, by using certificates, keys, or other tokens. With upcoming
550+
cryptographic agility it becomes less common to put in stone (or software) the algorithms that will be used. Instead,
551+
they are configured during deployment or negotiated in each network protocol session. CycloneDX is designed with these
552+
considerations in mind and to allow insight into the classical and quantum security level of cryptographic assets and
553+
their dependencies.
554+
555+
By cataloging cryptographic algorithms and their respective parameters, CycloneDX enables organizations to identify vulnerable
556+
or weak components that require mitigation or replacement with quantum-resistant alternatives recommended by NSA and NIST.
557+
Through comprehensive analysis and strategic planning facilitated by CycloneDX, organizations can proactively transition to
558+
post-quantum cryptographic primitives, ensuring the long-term security and integrity of their systems and applications.
559+
560+
## Assess Cryptographic Policies and Advisories
561+
A cryptographic inventory in machine-readable form brings benefits if one wants to check for compliance with
562+
cryptographic policies and advisories. An example of such an advisory is [CNSA 2.0](https://media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS_.PDF),
563+
which was announced by NSA in September of 2022. CNSA 2.0 states, among other things, that National Security Systems (NSS)
564+
for firmware and software signing needs to support and prefer CNSA 2.0 algorithms by 2025 and exclusively use them by 2030.
565+
The advised algorithms are the stateful hash-based signature schemes LMS and XMSS from [NIST SP 800-208](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf).
566+
With a cryptographic inventory that documents the use of LMS and XMSS by such systems, compliance with CNSA 2.0 can be
567+
assessed in an automated way.
568+
569+
## Identify Expiring and Long-Term Cryptographic Material
570+
An RSA certificate expiring in one week poses less cryptographic risk than the same certificate expiring in 20 years.
571+
Service downtime due to an expired certificate is another risk to be considered. Therefore, we argue that an inventory
572+
that captures the life cycle of cryptographic material as allowed by CycloneDX gives context to an inventory that is
573+
instrumental for managing cryptographic risk.
574+
575+
## Ensure Cryptographic Certifications
576+
Higher cryptographic assurance is provided by certifications such as [FIPS 140-3](https://csrc.nist.gov/pubs/fips/140-3/final)
577+
(levels 1 to 4) or [Common Criteria](https://www.commoncriteriaportal.org/) (EAL1 to 7). To obtain these certifications,
578+
cryptographic modules need to undergo certification processes. For regulated environments such as FedRAMP, such
579+
certifications are important requirements. CycloneDX allows the capture of certification levels of cryptographic assets
580+
so that this property can be easily identified.
522581

523582
<div style="page-break-after: always; visibility: hidden">
524583
\newpage

SBOM/en/0x40-BOM_Coverage_Maturity_Quality.md

+11-10
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,17 @@ CycloneDX highly encourages organizations to exceed the NTIA minimum elements wh
2222
types of data will vary by use case but generally should include:
2323

2424

25-
| **Field** | **CycloneDX Field** | **Description** |
26-
|----------------------|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
27-
| BOM Lifecycles | bom.metadata.lifecycles[] | The stage in which data in the BOM was captured |
28-
| BOM Generation Tools | bom.metadata.tools[] | The tool(s) used to create the BOM |
29-
| Component Hash | bom.components[].hashes[] | The hash values of the file or package |
30-
| Component License | bom.components[].licenses[] | The license(s) in which the component is released under |
31-
| Component Evidence | bom.components[].evidence[].identity.* | The evidence of identity including the methods, techniques, and confidence of how components were identified |
32-
| External References | bom.components[].externalReferences[] | Locations to advisories, version control and build systems, etc |
33-
| Services | bom.services[].* | A complete inventory of services including endpoint URLs, data classifications, etc which the product and/or individual components rely on |
34-
| Known Unknowns | bom.compositions[].* | Assertions on the completeness of the inventory of components and services, along with the completeness of dependency relationships |
25+
| **Field** | **CycloneDX Field** | **Description** |
26+
|--------------------------|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
27+
| BOM Lifecycles | bom.metadata.lifecycles[] | The stage in which data in the BOM was captured |
28+
| BOM Generation Tools | bom.metadata.tools[] | The tool(s) used to create the BOM |
29+
| Component Hash | bom.components[].hashes[] | The hash values of the file or package |
30+
| Component License | bom.components[].licenses[] | The license(s) in which the component is released under |
31+
| Component Evidence | bom.components[].evidence[].identity.* | The evidence of identity including the methods, techniques, and confidence of how components were identified |
32+
| Cryptographic Properties | bom.components[].cryptoProperties.* | The properties specific to cryptographic assets detailing the algorithms, keys, protocols, and other cryptographic material |
33+
| External References | bom.components[].externalReferences[] | Locations to advisories, version control and build systems, etc |
34+
| Services | bom.services[].* | A complete inventory of services including endpoint URLs, data classifications, etc which the product and/or individual components rely on |
35+
| Known Unknowns | bom.compositions[].* | Assertions on the completeness of the inventory of components and services, along with the completeness of dependency relationships |
3536

3637

3738
## SCVS BOM Maturity Model
+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Leveraging Cryptographic Components
2+
3+
CycloneDX can describe cryptographic assets and their dependencies. Discovering, managing, and reporting on cryptographic
4+
assets is necessary as the first step on the migration journey to quantum-safe systems and applications. Cryptography is
5+
typically buried deep within components that are used to compose and build systems and applications.
6+
7+
Advances in quantum computing introduce the risk of previously-secure cryptographic algorithms becoming compromised
8+
faster than ever before. In May of 2022, the White House released a [National Security Memorandum](https://www.whitehouse.gov/briefing-room/statements-releases/2022/05/04/national-security-memorandum-on-promoting-united-states-leadership-in-quantum-computing-while-mitigating-risks-to-vulnerable-cryptographic-systems/)
9+
outlining the government’s plan to secure critical systems against potential quantum threats. This memorandum contains
10+
two key takeaways for both agency and commercial software providers: document the potential impact of a breach, and have
11+
an alternative cryptography solution ready.
12+
13+
As cryptographic systems evolve from using classical primitives to quantum-safe primitives, there is expected to be more
14+
widespread use of cryptographic agility, or the ability to quickly switch between multiple cryptographic primitives.
15+
Cryptographic agility serves as a security measure or incident response mechanism when a system’s cryptographic
16+
primitive is discovered to be vulnerable or no longer complies with policies and regulations.
17+
18+
As part of an agile cryptographic approach, organizations should seek to understand what cryptographic assets they are
19+
using and facilitate the assessment of the risk posture to provide a starting point for mitigation.
20+
21+
22+
### Algorithm Example
23+
A cryptographic algorithm is added in the components array of the BOM. The examples below list the algorithm
24+
AES-128-GCM.
25+
26+
```json
27+
"components": [
28+
{
29+
"type": "cryptographic-asset",
30+
"name": "AES-128-GCM",
31+
"cryptoProperties": {
32+
"assetType": "algorithm",
33+
"algorithmProperties": {
34+
"primitive": "ae",
35+
"parameterSetIdentifier": "128",
36+
"mode": "gcm",
37+
"executionEnvironment": "software-plain-ram",
38+
"implementationPlatform": "x86_64",
39+
"certificationLevel": [ "none" ],
40+
"cryptoFunctions": [ "keygen", "encrypt", "decrypt", "tag" ],
41+
"classicalSecurityLevel": 128,
42+
"nistQuantumSecurityLevel": 1
43+
},
44+
"oid": "2.16.840.1.101.3.4.1.6"
45+
}
46+
}
47+
]
48+
```
49+
50+
Organizations should consider including cryptographic assets in their SBOMs and optionally producing a BOM specific for
51+
cryptographic material, otherwise known as a Cryptographic Bill of Material (CBOM).
52+
53+
Refer to the [Authoritative Guide to CBOM](https://cyclonedx.org/guides/) for in-depth information about leveraging
54+
CycloneDX for cryptographic use cases.
55+
56+
<div style="page-break-after: always; visibility: hidden">
57+
\newpage
58+
</div>

0 commit comments

Comments
 (0)