π Cosmian KMS β Cryptographic Posture ReportΒΆ
βΉοΈ Auto-generated report β do not edit by hand
Last commit: 959a4414
To regenerate:
π― Security Posture ScorecardΒΆ
β No unmitigated CRITICAL or HIGH findings
All CRITICAL/HIGH hits are KMIP spec enum definitions (blocked at runtime
by algorithm_policy.rs) or known-acceptable technical context.
No immediate remediation required.
π Discovery OverviewΒΆ
| Severity | Count | Context |
|---|---|---|
| π΄ CRITICAL | 21 | Broken algorithms (DESΒ·MD5Β·RC4) β all KMIP spec enums, blocked at runtime |
| π HIGH | 40 | Weak key sizes (RSA-1024Β·EC-P192) and deprecated SHA-1 |
| π‘ MEDIUM | 0 | Medium-severity issues |
| π΅ LOW / βͺ INFO | 2185 | Informational algorithm usage references |
pie title Sensor findings by severity
"CRITICAL" : 21
"HIGH" : 40
"INFO" : 2185
Reference counts = source lines matching each algorithm pattern.
| Algorithm | Category | FIPS 140-3 | PQC | Refs |
|---|---|---|---|---|
| PKCS#11/HSM | HSM interface | β | β | 571 |
| RSA | Asymmetric | β | β | 246 |
| Covercrypt (ABE) | Attribute-Based Encryption | β | β | 226 |
| X.509 certificate | PKI / TLS | β | β | 203 |
| ML-KEM (FIPS 203) | Post-Quantum KEM | β | β | 167 |
| SLH-DSA (FIPS 205) | Post-Quantum Signature | β | β | 158 |
| EdDSA (Ed25519/Ed448) | Asymmetric | β | β | 107 |
| AES-GCM/GCM-SIV | Symmetric | β | β | 93 |
| ML-DSA (FIPS 204) | Post-Quantum Signature | β | β | 50 |
| Hybrid KEM | Classical + PQC | β | β | 26 |
| EC-P192 | Asymmetric β WEAK KEY | β | β | 19 |
| EC (ECDSA/ECDH) | Asymmetric | β | β | 15 |
| DES/3DES | Symmetric β DEPRECATED | β | β | 15 |
| SHA-1 | Hash β deprecated for signing | β | β | 13 |
| ChaCha20-Poly1305 | Symmetric (non-FIPS) | β | β | 10 |
| RSA-1024 | Asymmetric β WEAK KEY | β | β | 8 |
| Argon2 | KDF | β | β | 5 |
| RC4 | Symmetric β BROKEN | β | β | 5 |
| MD5 | Hash β BROKEN | β | β | 1 |
Deprecated entries in
kmip_1_4/are KMIP spec enum definitions β not active operations. Blocked at runtime byalgorithm_policy.rs.
pie title Algorithm usage by category
"PKCS#11 / HSM" : 571
"Asymmetric (RSA)" : 246
"ABE (Covercrypt)" : 226
"TLS / X.509" : 203
"PQC (ML-KEM)" : 167
"PQC (SLH-DSA)" : 158
"Asymmetric (EdDSA)" : 107
"Symmetric (AES)" : 93
"PQC (ML-DSA)" : 50
"Asymmetric β weak" : 27
"PQC (Hybrid KEM)" : 26
"Asymmetric (EC)" : 15
"Symmetric (deprecated)" : 15
"Hash (deprecated)" : 13
"Symmetric (ChaCha20)" : 10
"KDF (Argon2)" : 5
"Symmetric (RC4)" : 5
"Hash (MD5)" : 1
| Dependency | Description | Standard | Cargo.toml refs |
|---|---|---|---|
openssl (FIPS provider) |
openssl (FIPS provider) | 76 | |
openssl |
OpenSSL 3.6 (FIPS provider) | FIPS 140-3 | 33 |
x509-parser |
x509-parser | RFC 5280 | 5 |
cosmian_crypto_core |
cosmian_crypto_core | 5 | |
p256 |
p256 (NIST P-256) | FIPS 186-5 | 3 |
aes-gcm |
RustCrypto/aes-gcm-siv | RFC 8452 | 1 |
argon2 |
RustCrypto/argon2 | RFC 9106 | 1 |
cosmian_cover_crypt |
cosmian_cover_crypt | 1 | |
k256 |
k256 (secp256k1) | 1 | |
rustls |
rustls (TLS) | RFC 8446 | 1 |
ring |
ring (BoringSSL subset) | 1 |
flowchart TD
COSMIAN_KMS["Cosmian KMS"]
COSMIAN_KMS --> OPENSSL__FIPS_PROVIDER_["openssl (FIPS provider)"]
COSMIAN_KMS --> OPENSSL["OpenSSL (FIPS provider)"]
COSMIAN_KMS --> X509_PARSER["x509-parser"]
COSMIAN_KMS --> COSMIAN_CRYPTO_CORE["cosmian_crypto_core (KEM combiner)"]
COSMIAN_KMS --> P256["p256 NIST P-256"]
COSMIAN_KMS --> AES_GCM["RustCrypto/aes-gcm"]
COSMIAN_KMS --> ARGON2["RustCrypto/argon2"]
COSMIAN_KMS --> COSMIAN_COVER_CRYPT["cosmian_cover_crypt (ABE)"]
COSMIAN_KMS --> K256["k256 secp256k1"]
COSMIAN_KMS --> RUSTLS["rustls (TLS)"]
COSMIAN_KMS --> RING["ring (BoringSSL subset)"]
β‘ Priority RemediationΒΆ
β No actionable CRITICAL or HIGH findings
All 61 CRITICAL/HIGH hits are suppressed by KMIP runtime policy
(algorithm_policy.rs deny-list) or confirmed-safe protocol context.
No remediation required.
π Post-Quantum ReadinessΒΆ
Score: 50% β 50% of asymmetric operations have a PQC alternative.
pie title PQC vs Classical asymmetric coverage
"PQC-ready (ML-KEM, ML-DSA, SLH-DSA, Hybrid)" : 50
"Classical-only (RSA, EC, EdDSA)" : 50
| Standard | Algorithm | Status |
|---|---|---|
| FIPS 203 | ML-KEM (CRYSTALS-Kyber) | β |
| FIPS 204 | ML-DSA (CRYSTALS-Dilithium) | β |
| FIPS 205 | SLH-DSA (SPHINCS+) | β |
| CNSA 2.0 | Hybrid KEM (classical + PQC) | β |
| RFC 8032 | EdDSA (Ed25519 / Ed448) | β |
| FIPS 186-5 | ECDH / ECDSA (P-256+) | β |
All four NIST PQC standards implemented
FIPS 203, 204, 205 and CNSA 2.0 Hybrid KEM are already deployed. The European Commission end-of-2026 inventory mandate is addressed.
π FIPS 140-3 ComplianceΒΆ
Score: 43% of detected algorithm references are FIPS 140-3 approved.
The remaining 57% are:
| Category | Reason |
|---|---|
| PKCS#11 / HSM | FIPS status depends on the certified HSM hardware |
| Covercrypt ABE | Attribute-based encryption β FIPS not applicable |
| ChaCha20-Poly1305 | Non-FIPS builds only (--features non-fips) |
| KMIP 1.4 legacy enums | Type definitions β not active crypto operations |
FIPS build mode
cargo build (without --features non-fips) exercises only FIPS 140-3
approved algorithms at runtime.
π‘οΈ Memory Safety β Zeroize DisciplineΒΆ
The sensor found 180 references to Zeroizing<T> / ZeroizeOnDrop
across the codebase β automatic key-material zeroing on drop (CWE-316 mitigation).
Best practice implemented
All derived key material (HKDF, PBKDF2) and private key bytes are wrapped in
Zeroizing<Vec<u8>> β secrets are scrubbed from memory when their scope ends.
π How the Sensor WorksΒΆ
flowchart LR
A["Discover\nScan Rust sources\n& Cargo.toml"] --> B["Analyze\nApply risk rules\nMatch KMIP context"]
B --> C["Prioritize\nSeverity scoring\nMitigation tagging"]
C --> D["Report\nCBOM & MkDocs\nJSON + Markdown"]
D --> E["Monitor\nPre-commit hook\nCI integration"]
style A fill:#f0f9ff,stroke:#0ea5e9
style B fill:#fefce8,stroke:#eab308
style C fill:#fff7ed,stroke:#f97316
style D fill:#f0fdf4,stroke:#22c55e
style E fill:#faf5ff,stroke:#a855f7
| Layer | Tool | What it discovers |
|---|---|---|
| Source code | scan_source.py |
Algorithm usage, deprecated primitives, weak keys, hardcoded material, PQC/zeroize |
| Dependency tree | cdxgen (OWASP CycloneDX) |
Cryptographic library versions from Cargo.lock |
| CVE feed | cargo audit (RustSec) |
Known vulnerabilities in crypto dependencies |
| Live TLS | testssl.sh (optional) |
Cipher suites, certificate chain, TLS version |
The sensor outputs a Cryptographic Bill of Materials (CBOM) in CycloneDX 1.6 format
(see cbom/cbom.cdx.json).
βΆοΈ How to RunΒΆ
Full scan β source + CVE + CBOM (also updates this page)
Source scanner only (fast, no network)
Risk scorer + page regeneration
Output files are written to cbom/sensor/ (stable path β overwritten on each run):
| File | Content |
|---|---|
findings.json |
Raw per-line source scanner findings |
risk_report.json |
Risk-scored findings + CVE data |
cargo_audit.json |
CVE advisory data |
dep_cbom.json |
Dependency-level CBOM (cdxgen) |
tls_report.txt |
TLS scan output (if --server-url was given) |
π Related DocumentationΒΆ
- CBOM (CycloneDX) β full CycloneDX 1.6 CBOM file
- SBOM β software bill of materials
- FIPS 140-3 β FIPS compliance details
- Cryptographic algorithms β algorithm reference
- Zeroization β memory-safety approach for key material
- Security Audit (OWASP) β OWASP Top 10 audit
- Multi-Framework Audit β NIST/CIS/ISO/OSSTMM audit