Una distinta base crittografica (CBOM, Cryptographic Bill of Materials) è un inventario leggibile dalle macchine della crittografia usata da un sistema: algoritmi e relativi parametri, chiavi, certificati, protocolli e librerie che li implementano. Risponde a domande a cui un foglio di calcolo non può rispondere in modo affidabile su larga scala: dove usiamo ancora RSA-2048? Quali servizi dipendono da una libreria senza supporto a ML-KEM? Cosa è cambiato dall'ultimo trimestre?
CBOM e SBOM a confronto
Una distinta base software (SBOM) elenca i componenti software e le loro versioni. Ti dice che un servizio usa OpenSSL 3.0, ma non quali algoritmi quel servizio richiama effettivamente, con quali dimensioni di chiave, né quali certificati presenta. Un CBOM aggiunge questo livello crittografico. I due sono complementari e lo standard CycloneDX li supporta entrambi nello stesso documento.
Il formato CycloneDX 1.6
Dalla versione 1.6, CycloneDX definisce un tipo di componente cryptographic-asset con cryptoProperties. Un asset può essere un algoritmo, un certificato, un protocollo o materiale correlato come una chiave. Una voce minima per una firma RSA-2048 si presenta così:
{
"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
}
}
}
]
}
Il campo nistQuantumSecurityLevel è ciò che rende un CBOM utile per la pianificazione post-quantistica: 0 significa che l'algoritmo non offre alcuna sicurezza contro un attaccante quantistico, come nel caso di RSA ed ECDSA, mentre ML-KEM-768 raggiunge il livello 3.
Chi richiede un CBOM
- Governo federale degli Stati Uniti. Il memorandum OMB M-26-15 impone alle agenzie di mantenere un inventario crittografico automatizzato e aggiornato in modo continuo, e l'Executive Order 14412 chiede alla CISA di pubblicare gli elementi minimi di un CBOM. I fornitori di software che vendono alle agenzie federali dovrebbero aspettarsi di doverne fornire uno.
- Normative europee, indirettamente. PCI DSS 12.3.3, DORA e NIS2 richiedono un inventario o politiche in materia di crittografia senza imporre un formato. Un CBOM è il modo più strutturato per soddisfarli.
- Piani di migrazione delle agenzie. NIST, ANSSI, BSI e NCSC britannico mettono tutti al primo posto la ricognizione e l'inventario.
Come produrne uno
Un CBOM completo combina diverse fonti:
- Rilevamento di rete di ciò che i servizi espongono: versioni TLS, suite di cifratura, gruppi di scambio di chiavi e certificati. È ciò che fa il nostro scanner gratuito per gli endpoint pubblici.
- Analisi statica del codice sorgente per individuare chiamate crittografiche, dimensioni delle chiavi e algoritmi codificati in modo fisso.
- Analisi della configurazione di web server, proxy e infrastructure as code.
- Analisi delle dipendenze per sapere quali librerie crittografiche, e in quali versioni, include ogni applicazione.
Esistono strumenti open source per parti di questo lavoro, come CBOMkit e il plugin di crittografia per Sonar mantenuti nell'ambito della Post-Quantum Cryptography Alliance. PQC Status sta sviluppando uno scanner a riga di comando che viene eseguito in locale, così il tuo codice non lascia mai la tua macchina, e che produce un CBOM CycloneDX.
Mantenerlo aggiornato
Un CBOM è utile solo se resta aggiornato. Generalo in integrazione continua a ogni release, conserva ogni versione e confrontale: un nuovo asset vulnerabile ai computer quantistici in un servizio critico dovrebbe essere visibile quanto una nuova dipendenza vulnerabile.