11. Gestione delle chiavi

Scenari: 5
Funzioni FFI: ~40
Stato: In pianificazione

Questa categoria comprende tutti gli scenari per la gestione delle chiavi crittografiche. Generazione, rotazione, archiviazione sicura e distruzione.


Scenari

ID Scenario Descrizione Complessità Stato
11.1 Generazione chiavi ML-DSA, ML-KEM, Ibrido Media In pianificazione
11.2 Archiviazione sicura HSM, TPM, Software-Vault Alta In pianificazione
11.3 Rotazione chiavi Rinnovo pianificato delle chiavi Media In pianificazione
11.4 Backup chiavi Backup crittografato, Recovery Media In pianificazione
11.5 Distruzione chiavi Cancellazione sicura, Zeroization Media In pianificazione

Ciclo di vita delle chiavi

flowchart LR subgraph GEN["Generazione"] G1[Generare chiave] G2[Creare backup] end subgraph USE["Utilizzo"] U1[Attivare] U2[In uso] end subgraph END["Fine"] E1[Disattivare] E2[Archiviare] E3[Distruggere] end GEN --> USE --> END style G1 fill:#e8f5e9 style U2 fill:#e3f2fd style E3 fill:#ffcdd2


Tipi di chiave e archiviazione

Tipo chiave Archiviazione consigliata Backup Rotazione
Root-CA HSM (Offline) Split M-of-N Mai (20+ anni)
Intermediate-CA HSM (Online) Crittografato 5-10 anni
Server Software/TPM Opzionale 1-2 anni
Client Smart Card/TPM No 1-2 anni

Opzioni di archiviazione

Opzione Sicurezza Prestazioni Costi Utilizzo
HSM Molto alta Media Alto CA, Sistemi critici
TPM Alta Alta Basso Server, Workstation
Software Vault Media Molto alta Medio Container, Cloud
File crittografato Bassa Molto alta - Sviluppo

Requisiti specifici per settore

Settore Chiave CA End-Entity Conformità
Energia/SCADA HSM (Offline) TPM NIS2, KRITIS
Sanità HSM Smart Card gematik, GDPR
Automotive HSM Secure Element UN R155
Industria 4.0 HSM TPM IEC 62443

Quick start codice

Generare chiave

using WvdS.Security.Cryptography.Extensions.PQ;
 
// ML-DSA-65 per firme
using var signingKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65);
 
// ML-KEM-768 per Key Encapsulation
using var kemKey = ctx.GenerateKeyPair(PqAlgorithm.MlKem768);
 
// Chiave ibrida (ECDSA + ML-DSA)
using var hybridKey = ctx.GenerateHybridKeyPair(
    classicAlgorithm: EcdsaCurve.P384,
    pqAlgorithm: PqAlgorithm.MlDsa65
);

Archiviazione sicura

// Salvare chiave crittografata (Argon2id KDF + AES-256-GCM)
signingKey.SaveEncrypted(
    path: "signing.key.pem",
    password: securePassword,
    kdfOptions: new KdfOptions
    {
        Algorithm = KdfAlgorithm.Argon2id,
        Iterations = 3,
        MemoryKiB = 65536,  // 64 MB
        Parallelism = 4
    }
);
 
// Caricare
using var loadedKey = ctx.LoadPrivateKey("signing.key.pem", securePassword);

Distruggere chiave

// Distruzione sicura (Zeroization)
signingKey.Dispose();  // Sovrascrive memoria con zeri
 
// Per massima sicurezza: Explicit Zeroize
signingKey.SecureErase();  // Sovrascrittura multipla
signingKey.Dispose();

Checklist Key Ceremony

Root-CA Key Ceremony:

  1. [ ] Preparare sistema air-gapped
  2. [ ] Testimoni presenti (min. 2)
  3. [ ] Audit-logging attivato
  4. [ ] Generare chiave
  5. [ ] Creare backup M-of-N (es. 3-of-5)
  6. [ ] Distribuire backup in luoghi diversi
  7. [ ] Esportare certificato root
  8. [ ] Spegnere e sigillare sistema
  9. [ ] Firmare documentazione

Categorie correlate

Categoria Relazione
1. Infrastruttura PKI Gestire chiavi CA
4. Gestione certificati Re-Key in rotazione
12. Import/Export Esportare chiavi

« 10. TLS/mTLS | Scenari | 12. Import/Export »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: il 30/01/2026 alle 06:38