CBOM Documentation

CBOM Secure

  • Product Overview
    • Overview
    • Dashboard Interface
    • Dashboard Operations
    • Data Visualization
    • Overview
    • Host
    • Template
      • Networked Deployments
      • Cloud Deployments
      • Off-Grid Deployments
    • Discovery History
      • Tags
      • Tag Scope
      • Integrations
      • Cloud Servers
      • CycloneDX Export
    • Sensors Reference
    • Overview
    • Summary Report
    • PQC Report
    • AI Services
    • Source Code Visualizer
    • Key
    • Certificate
    • CipherSuites
    • Analysis
    • Policy Management
    • User Policy
    • Standard Policy
    • Overview
    • Cases
    • Criteria
    • Notification Format
    • Rules
      • Connections
      • Health
    • User Management
    • Roles & Permissions
    • Audit Trail
    • System Logs
    • Top Bar and User Menu
    • System Configuration
  • Login and Authentication
    • Introduction
      • Components
      • Data Flows
      • Execution Models
      • Incremental Scanning
      • Security Model
      • Topologies
      • Sizing Guide
      • HA and Scaling
      • Ports and Firewall
      • Prerequisites
      • Docker Compose
      • Native on Linux
      • Deployment Server
      • Install Troubleshooting
      • Validation Checklist
      • Managing Services
      • Logging
      • Certificates
      • Configuration
      • Backup and Recovery
      • Ops Troubleshooting
      • Methods
      • SAML 2.0 SSO
      • OIDC and Entra ID
      • Token Authentication
      • Password Policy
      • Sensor vs Connector
      • Sensor Guide Structure
      • Capability Matrix
      • GitHub Sensor
        • AWS
        • Azure
        • Google Cloud
        • Active Directory
        • LDAP Directories
        • AD CS
        • Thales Luna HSM
        • Entrust nShield HSM
        • HashiCorp Vault KMIP
        • Windows Cert Store
        • Linux Trust Store
        • MSSQL TDE
      • Roadmap
      • Integration Model
      • CrowdStrike
      • ServiceNow
      • ServiceNow and Jira Setup
      • Notification Engine
  • Administrative Guide
    • Glossary
    • Configuration Reference
    • Data Model Reference
    • API Reference
    • API Authentication
    • CycloneDX Export Specification
    • Risk and PQC Scoring
    • Built-in Standards
    • Widget Catalogue
    • AI Services Data Handling

Data Model Reference

The structure of a cryptographic material document — the record CBOM Secure stores for every key, certificate, protocol endpoint, binary, signature and source-code finding it discovers. Read this when writing a query, interpreting an export, or building a sensor.

Document shape

Every document has three parts:

PartHolds
MainThe identity and properties of the cryptographic object itself. The fields present depend on the document type.
sourcePropertiesWhere the material was found — host, port, path, cloud region, keystore label, vault URI.
scanPropertiesThe discovery context — which sensor ran, when, from which host, under which task.

Field names are camelCase throughout. Names are case-sensitive: a query against a field spelled differently from the stored key returns no documents rather than an error, so a mis-spelled field reads as an empty result rather than a failure.

Document types

The type field selects which set of main fields applies. The sub-kind discriminator, where one exists, is always spelled subType.

typesubType valuesRepresents
key—A cryptographic key: secret, private or public
certificate—An X.509 certificate
protocolssh; absent for TLSA protocol endpoint and its negotiated or advertised algorithms
binaryapp, lib, static, firmware, driver, jvm, dotnetA compiled artefact carrying cryptographic material or dependencies
signaturecodesign, cms, gpg, jar, rpmA code or content signature
sourcecodefile, callgraph, summaryA source file's cryptographic findings, its call graph, or a scan summary
file—A discovered file of cryptographic interest
status—A sensor status record
error—A sensor error record

Fields common to every type

FieldTypeRequiredMeaning
discoverIDstringYesIdentifier assigned at discovery. Unique per sighting.
discoverTimestringYesWhen the material was discovered, ISO 8601 UTC.
typestringYesDocument type, from the table above.
subTypestringPer typeSub-kind discriminator where the type defines one.
sourcePropertiesobjectYesWhere it was found.
scanPropertiesobjectYesHow it was found.
tagslist of integerNoTag identifiers applied to this material.
refIDlist of stringNodiscoverID values of related documents.

Timestamps are stored in UTC and localised only for display.

Key documents

Required: discoverID, discoverTime, type, keyType, state, algorithm, securedBy, sourceProperties, scanProperties.

FieldTypeMeaning
keyTypeenumsecret_key, private_key, public_key
algorithmstringBare primitive family: AES, RSA, ECDSA, ML-KEM. Never carries a size, mode or padding.
algorithmRefstringCompound reference, slash-joined: AES/256, RSA/2048, ECDSA/secp256r1/256. This is the value policy and scoring resolve against.
sizeinteger or nullKey size in bits. Null when the source API does not report it — common for post-quantum and opaque cloud keys.
stateenumPreActivation, Active, Suspended, Deactivated, Compromised, Destroyed, Unknown
securedBystringHow the key is protected: HSM, TPM, Software, SGX, aws-kms, azure-kv, gcp-kms, None
creation_datestringKey creation time, where the source reports it.
activation_datestringKey activation time, where the source reports it.
publicKeystringPEM-encoded SubjectPublicKeyInfo, when the public half is available.
publicKeySha256stringHex SHA-256 of the DER SubjectPublicKeyInfo.

publicKeySha256 is the cross-protocol key identity. It is what lets a certificate discovered in one place be matched to its private key discovered in another, and it is the field key-reuse detection groups on. Two unrelated keys that both stored an empty or absent value here would be read as the same key, which is why a key whose hash cannot be computed is skipped at ingestion rather than stored with a blank one.

Certificate documents

Required: discoverID, discoverTime, type, algorithm, sourceProperties, scanProperties.

FieldTypeMeaning
subjectstringCertificate subject distinguished name.
issuerstringIssuer distinguished name.
validFromstringStart of the validity window.
validTostringEnd of the validity window. This drives every expiry report.
algorithmstringSignature or key algorithm family.
algorithmRefstringCompound algorithm reference.
sizeintegerKey size in bits.
serialNumberstringCertificate serial number.
keyUsageintegerKey-usage bit field.
certificationLevelarrayChain position and related classification.
publicKeySha256stringHash of the certificate's public key — the join to a key document.
certSha256stringHash of the certificate itself — the certificate's own identity.

Protocol documents

Two shapes, distinguished by subType.

TLS — subType is absent. Required: discoverID, discoverTime, type, cipherSuites, sourceProperties, scanProperties.

FieldTypeMeaning
cipherSuitesarrayCipher suites advertised or negotiated by the endpoint.

SSH — subType is ssh. Required: discoverID, discoverTime, type, subType, sshCipherSuite, sourceProperties, scanProperties.

FieldTypeMeaning
sshCipherSuiteobjectKey-exchange, host-key, cipher and MAC algorithm lists from the handshake, plus optional session properties.

Querying for TLS means subType != ssh, not subType == tls. TLS documents carry no subType at all.

Binary documents

Required: discoverID, discoverTime, type, family, sourceProperties, scanProperties.

FieldTypeMeaning
familystringBinary format family.
subTypeenumapp, lib, static, firmware, driver, jvm, dotnet
properties.codeSignatureobjectSignature state.

codeSignature is three-state, not a boolean. A signer with an empty error means signed and verified; no signer means unsigned; a signer with an error means a signature that is present and did not verify. Reading it as a boolean misfiles the third case, which is the one that matters.

Signature documents

Required: discoverID, discoverTime, type, algorithmRef, algorithm, verificationStatus, sourceProperties, scanProperties, refID, contentHash.

FieldTypeMeaning
verificationStatusstringOutcome of signature verification.
contentHashstringHash of the signed content.
refIDarrayThe binary or file documents this signature covers.

Source-code documents

Required: type, subType. Three sub-kinds work together:

subTypeHolds
fileOne scanned source file and every cryptographic finding in it.
callgraphThe call relationships for one scan, used to build export dependencies.
summaryAggregate counts for one scan.

Each finding in a file document carries the crypto parameters resolved at one call site:

FieldTypeMeaning
algorithmstringBare primitive family, same contract as every other document type.
algorithmRefstringCompound reference. Absent when no algorithm was resolved.
algorithmExpressionstringThe raw source expression naming the algorithm, where it could not be resolved statically — for example get_cipher_fce().
algorithmResolutionenumHow the algorithm was determined: literal, named-constant, field-access, expression, variable, unresolved, propagated, and others.
primitiveKindstringThe kind of construction when a call names something that is not an algorithm — OS-CSPRNG, TLS, X.509, JWT, AEAD, KeyStore.

algorithmExpression and primitiveKind are not algorithm identities. Neither is resolved against the ranking tables and neither is ever allowed by a policy. They are retained because they are informative, but a query that treats them as algorithms will chart them as their own bars and inflate every distinct-algorithm count.

sourceProperties

Where the material was found. Which fields are present depends on the sensor class.

FieldTypePresent for
hoststringAgent-based sensors. Cloud sensors use region and resourceId instead.
portintegerNetwork sensors — SSH, TLS, HTTPS.
pathstringFilesystem and keystore sensors.
originstringSource-code sensors: the repository.
regionstringCloud sensors.
resourceIdstringCloud sensors: the resource ARN or URI.
bannerstringSSH: the raw server banner.
softwarestringSSH: parsed server software name.
softwareVersionstringSSH: server software version.
protocolVersionstringSSH: protocol version from the banner.

For a source-code scan, sourceProperties.host is the repository, not the machine that ran the scan. The scanning machine is scanProperties.scanHost.

scanProperties

FieldTypeMeaning
extensionstringThe sensor that produced the document.
configstringThe named configuration or scan label.
scanTimestringWhen the scan ran.
scanHoststringThe host that ran the scan. Omitted for cloud sensors, which run centrally.
tagslist of integerTags carried from the agent's configuration.

Inventory record fields

The fields below exist on the stored inventory record rather than on sensor output. They are added by the platform during deduplication and analysis.

FieldMeaning
canonicalIDThe deduplication identity. Every sighting of one real-world object carries the same value, and that is what makes them one record.
deploymentsEvery distinct place the material has been seen, each with its own first-seen and last-seen time.
tagsThe union of the host and task tags across the material's footprint.
historyVersionIncremented each time a change entry is appended.
lastSeenTimeThe most recent sighting across all deployments.
statusWhether the material is currently present, or has been resolved by a full scan that did not find it.

Collections

CollectionHolds
CryptoMaterialThe consolidated inventory — one record per canonical identity.
CMDepositRaw sensor output awaiting deduplication. Transient.
CMCollectRunsOne record per ingestion call, with requested, inserted, updated and skipped counts.
CMHistoriesAppend-only change history. Held in the audit database.
AuditLogAppend-only record of operator actions. Held in the audit database.
CMTagsTag definitions, keyed by tagId.
CMTagScopesNamed, reusable tag expressions.
HostsInfoTarget hosts, their credentials (encrypted) and their submission certificates.
TaskDeploymentDiscovery tasks.
AnalyticRulesScoring rules, the algorithm ranking tables and policies.
SensorSchemaRegistered sensor configuration schemas.

tagId names one tag definition; every reference to tags is a list called tags. The definition in CMTags is keyed tagId; hosts, tasks, materials, history states and rule scopes all reference them through a tags list of integers.

On this Page:
Support Privacy Policy Terms of Service

Copyright 2026 Encryption Consulting LLC. All rights reserved.