CBOMProfiles /Methodology ← Working group site
START HERE

Introduction

This section assumes no prior knowledge of bills of materials. It follows one product, one CBOM and one question the CBOM cannot answer, then shows what a profile does about it. Every other section expands on something that happens here.

The problem, in one example

A vendor supplies an nginx web server and, with it, a CBOM. From that document you learn that the product uses AES-256-GCM, X25519 and RSA-2048, that it holds a server certificate for example.com, and that OpenSSL 3.4.0 implements the cryptography. Every statement in it is true.

Document A, as supplied
────────────────────────────────────────────────────────────
subject       nginx 1.27.0
interfaces    1 declared

  [1]  HTTPS service interface
       protocol          TLS 1.3
       key exchange      X25519
       encryption        AES-256-GCM
       authentication    RSA-2048
       certificate       example.com
       implemented by    OpenSSL 3.4.0

not declared  the interface an administrator logs in to
              (on this product, SSH via OpenSSH)

Three months later a weakness is published against a key exchange that SSH uses. The question that lands on your desk is whether this product is affected, and if it is, which of the several hundred instances you operate.

Document A cannot answer. It describes the interface that serves web traffic and says nothing about the interface an administrator connects to. The vendor was not careless. It described the interface it declared accurately and in full, and nothing obliged it to declare the other one.

A CBOM format defines what a document may record. It does not define what a document must record. A vendor that answers a request for a CBOM with Document A has complied with the format and left the buyer no better off.

Document A is not an unusual document. It is the ordinary result of asking a supplier for a CBOM without saying what the CBOM is for.

Why asking for everything does not work

The obvious remedy makes matters worse. A large product performs thousands of cryptographic operations, and a document listing all of them buries the two or three facts any particular decision turns on. Exhaustive coverage is not useful coverage, and in practice no supplier would produce it.

There is no absolute standard of completeness for a CBOM. Completeness is relative to a purpose. So the question worth asking is not "does this document contain everything", which has no answer, but "does it contain what this decision needs", which does. That second question has an answer only if the decision has been written down first, in a form that something other than a person can check.

What a profile is

A profile is a short list of rules stating which attributes a CBOM must carry to support one stated decision, for one stated reader. It is a minimum reporting requirement. It is not a schema, and it is not a format.

The example used throughout: the Interface Disclosure Baseline

Every profile begins by naming who reads the document and what they are deciding. Without those two, there is no principled place for the list of rules to stop.

The Interface Disclosure Baseline, v0.7
ReaderAn operator or purchaser holding a product it did not build and cannot inspect, keeping a cryptographic inventory across an estate.
DecisionWhen a weakness is published against an algorithm, a protocol version or a library, which of the deployed interfaces are affected. And, set beside the record from last quarter, what has changed.
ActionsRecord the interfaces and take no further action. Act on an affected interface by reconfiguring, upgrading or isolating it. Ask the producer for a fuller disclosure. Reject the submission as insufficient to inventory.

Naming four actions is what makes the rest of the profile arguable. A reader with only one available action is not deciding anything, and a profile written from that has no test for whether it asks for the right things.

The baseline has thirteen rules, of two kinds.

Product rules: constraints on the set of interfaces

#The document mustLevelBecause
P1declare at least one cryptographic interfaceMUSTA CBOM describing no interface answers nothing.
P2declare at least one management interface, or state that there is noneMUSTThis is the rule Document A fails. A hardware token with no configuration surface hides nothing by lacking one, so declared absence satisfies the rule and silence does not.
P3identify the subject it describesMUSTAn unidentified record cannot be matched to a deployment, or compared with the same product's record from last quarter.
P4state how complete its list of interfaces isMUSTOtherwise a missing interface is uninterpretable. It could mean the interface does not exist, or that the producer chose not to list it.

These four are the rules that catch omission, which no per-attribute rule can. A document can describe its service interface impeccably, pass every attribute rule, and still fail P2.

Interface rules: constraints on each one

These apply uniformly to every interface the document declares, however many that is.

#AttributeLevelWhat it answers
I1protocolMUSTTLS, SSH, IPsec, and similar
I2protocolVersionMUSTWhich version, since an advisory usually names one
I3keyExchangeMUSTHow the session key is agreed
I4encryptionMUSTWhat protects the traffic once the key is agreed
I5authenticationMUSTHow each end proves who it is
I6endpointRolesMUSTWho is at each end, so the interface can be located in a topology
I7interfaceTypeMUSTOne of five values, among them service, management and interconnect. P2 is checked against this
I8lifecycleStageMUSTWhether the value was intended, implemented, configured or observed, which is how much weight the reader should give it
I9implementationPurlMUSTWhich library implements it, so an advisory against that library can be matched. The one rule here a producer may answer by withholding

Thirteen rules is the entire profile. It is short deliberately. It names the minimum that supports one decision and then stops, which is what makes it possible for a vendor to satisfy it and for a buyer to insist on it.

What the profile does not say

No rule asks whether the cryptography is any good. Whether a product is post-quantum ready is not a fact about the product. It is a judgement made against criteria that change over time, and it is kept outside the document, in versioned policy. The CBOM carries the facts. The policy reaches the verdict, and is dated so that a reader can tell which criteria produced it.

Evaluating two documents against the profile

Document A is the one above. Document B is the same product described by a supplier who declared both interfaces, the HTTPS service interface and the SSH management interface.

RuleDocument ADocument B
P1  at least one cryptographic interfacepassespasses
P2  a management interface, or a statement that there is noneFAILSpasses
P3  the subject is identifiedpassespasses
P4  the interface list states its completenesspassespasses
I1 to I9  on every declared interfacepasses (1 interface)passes (2 interfaces)
Verdictdoes not conformconforms

The Demo runs both of these in the browser, along with a third: a library with no administrative surface at all, which satisfies P2 by saying so.

The four disclosure outcomes

One refinement is worth meeting early, because it recurs throughout. In Document B the management interface does not name its implementing library. It carries a marker saying the value is withheld, and rule I9 accepts that, because I9 is the one rule in this profile marked withholdable.

The marker matters to whoever reads the document. A withheld value is a position the producer has taken and can be challenged on in a negotiation. An absent value could be anything. So the methodology separates four outcomes for any attribute, where the CBOM formats offer only present and absent.

OutcomeWhat it says about the producerSatisfies a MUST rule?
suppliedIt knows the value and has published itYes
withheldIt knows the value and has decided not to publish itOnly where the rule is marked withholdable
unknownIt does not know the valueNo, but it is reported separately from silence
undeclaredNothing was said, and the reader cannot tell which of the other three appliesNo

The first three can be acted on. The fourth can only be guessed at, and a buyer who cannot tell a deliberate omission from an oversight has no basis for asking the supplier to fix it.

Where to go next

Nothing above depends on the rest of the documentation, and the rest of the documentation expands on it.

Terms is a glossary and sits in the Reference group. It is there for when a word is unfamiliar, not something to read first.

This documentation works a single example, an nginx web server expressed in CycloneDX 1.7, all the way through. The material is illustrative and demonstrates the methodology; it is not a normative deliverable of the PKIC CBOM Profiles Working Group.

PKIC CBOM Profiles Working Group · illustrative documentation.