====== 5.4 Certificati Effimeri ======
Certificati di sessione a breve durata per maggiore sicurezza.
===== Concetto =====
* Il certificato principale autentica una sola volta
* Il server emette un certificato effimero
* Il certificato effimero vale solo per questa sessione
* Rotazione automatica ogni X minuti
===== Flusso =====
1. Client -> Server: Certificato principale
2. Server valida contro CA
3. Server -> Client: Certificato effimero (firmato)
4. Client usa certificato effimero per le richieste
5. Dopo scadenza: torna al passo 1
===== Configurazione =====
{
"Security": {
"EphemeralCertificate": {
"Enabled": true,
"ValidityMinutes": 15,
"RotationBeforeExpiryMinutes": 2
}
}
}
===== Rotazione =====
Il client deve richiedere un nuovo certificato effimero in tempo:
// Verificare se rotazione necessaria
if (ephemeralCert.NotAfter < DateTime.UtcNow.AddMinutes(2))
{
ephemeralCert = await RequestNewEphemeralCert();
}
===== Vantaggi =====
* Certificato compromesso valido solo per breve tempo
* Forward Secrecy
* Superficie di attacco minimizzata
===== Libreria PQ-Crypto =====
Per la creazione programmatica di certificati PQ effimeri vedere:
* [[..:..:..:pqcrypt:api:wvds-system-security-cryptography:x509certificates:certificaterequestextensions|CertificateRequest Extensions]]
* [[..:..:..:pqcrypt:api:wvds-system-security-cryptography:providers:nativecryptoprovider|NativeCryptoProvider.CreateEphemeralCertificateAsync]]
* [[..:..:..:pqcrypt:developer:integration|Integration Guide]]