Eine kryptografische Stückliste (Cryptographic Bill of Materials, CBOM) ist ein maschinenlesbares Inventar der Kryptografie, die ein System verwendet: Algorithmen und ihre Parameter, Schlüssel, Zertifikate, Protokolle und die Bibliotheken, die sie implementieren. Sie beantwortet Fragen, die eine Tabellenkalkulation in großem Maßstab nicht zuverlässig beantworten kann: Wo setzen wir noch RSA-2048 ein? Welche Dienste hängen von einer Bibliothek ohne ML-KEM-Unterstützung ab? Was hat sich seit dem letzten Quartal geändert?
CBOM und SBOM im Vergleich
Eine Software-Stückliste (Software Bill of Materials, SBOM) listet Softwarekomponenten und ihre Versionen auf. Sie sagt Ihnen, dass ein Dienst OpenSSL 3.0 nutzt, aber nicht, welche Algorithmen dieser Dienst tatsächlich aufruft, mit welchen Schlüssellängen oder welche Zertifikate er vorweist. Eine CBOM ergänzt diese kryptografische Ebene. Beide ergänzen sich, und der Standard CycloneDX unterstützt beide im selben Dokument.
Das Format CycloneDX 1.6
Seit Version 1.6 definiert CycloneDX einen Komponententyp cryptographic-asset mit cryptoProperties. Ein Asset kann ein Algorithmus, ein Zertifikat, ein Protokoll oder zugehöriges Material wie ein Schlüssel sein. Ein minimaler Eintrag für eine RSA-2048-Signatur sieht so aus:
{
"bomFormat": "CycloneDX",
"specVersion": "1.6",
"components": [
{
"type": "cryptographic-asset",
"bom-ref": "crypto/algorithm/rsa-2048",
"name": "RSA-2048",
"cryptoProperties": {
"assetType": "algorithm",
"algorithmProperties": {
"primitive": "signature",
"parameterSetIdentifier": "2048",
"cryptoFunctions": ["sign", "verify"],
"classicalSecurityLevel": 112,
"nistQuantumSecurityLevel": 0
}
}
}
]
}
Das Feld nistQuantumSecurityLevel macht eine CBOM für die Post-Quanten-Planung nützlich: 0 bedeutet, dass der Algorithmus keinerlei Sicherheit gegenüber einem Quantenangreifer bietet, wie bei RSA und ECDSA, während ML-KEM-768 Stufe 3 erreicht.
Wer eine CBOM verlangt
- US-Bundesregierung. Das OMB-Memorandum M-26-15 verpflichtet Behörden, ein automatisiertes, fortlaufend aktualisiertes kryptografisches Inventar zu führen, und die Executive Order 14412 beauftragt die CISA, Mindestelemente für eine CBOM zu veröffentlichen. Softwareanbieter, die an Bundesbehörden verkaufen, sollten damit rechnen, danach gefragt zu werden.
- Europäische Vorschriften, indirekt. PCI DSS 12.3.3, DORA und NIS-2 verlangen ein Inventar oder Konzepte zur Kryptografie, ohne ein Format vorzuschreiben. Eine CBOM ist der strukturierteste Weg, diese Anforderungen zu erfüllen.
- Migrationspläne der Behörden. NIST, ANSSI, BSI und das britische NCSC stellen allesamt Bestandsaufnahme und Inventar an den Anfang.
So erstellen Sie eine CBOM
Eine vollständige CBOM kombiniert mehrere Quellen:
- Netzwerkerkennung dessen, was Dienste nach außen zeigen: TLS-Versionen, Cipher Suites, Gruppen für die Schlüsseleinigung und Zertifikate. Genau das leistet unser kostenloser Scanner für öffentliche Endpunkte.
- Statische Analyse des Quellcodes, um kryptografische Aufrufe, Schlüssellängen und fest codierte Algorithmen zu finden.
- Konfigurationsanalyse von Webservern, Proxys und Infrastructure as Code.
- Abhängigkeitsanalyse, um zu wissen, welche kryptografischen Bibliotheken in welchen Versionen jede Anwendung mitbringt.
Für Teile dieser Arbeit gibt es Open-Source-Werkzeuge, etwa das CBOMkit und das Sonar-Kryptografie-Plugin, die unter dem Dach der Post-Quantum Cryptography Alliance gepflegt werden. PQC Status entwickelt einen Kommandozeilen-Scanner, der lokal läuft, sodass Ihr Code Ihren Rechner nie verlässt, und eine CBOM im Format CycloneDX ausgibt.
Die CBOM aktuell halten
Eine CBOM ist nur nützlich, wenn sie aktuell bleibt. Erzeugen Sie sie bei jedem Release in der Continuous Integration, speichern Sie jede Version und vergleichen Sie die Versionen: Ein neues quantenanfälliges Asset in einem kritischen Dienst sollte ebenso sichtbar sein wie eine neue verwundbare Abhängigkeit.