~~NOTOC~~
====== 5. Validazione e fiducia ======
**Scenari:** 5 \\
**Funzioni FFI:** ~40 \\
**Stato:** Pianificato
Questa categoria comprende tutti gli scenari per la validazione di certificati e catene di certificati. Chain Building, controlli di revoca e validazione delle policy.
----
===== Scenari =====
^ ID ^ Scenario ^ Descrizione ^ Complessità ^ Stato ^
| [[.:chain_building|5.1]] | Chain Building | Costruire catena certificati | Media | Pianificato |
| [[.:chain_validation|5.2]] | Validazione Chain | Verifica completa della catena | Alta | Pianificato |
| [[.:revocation_check|5.3]] | Controllo revoca | Verifica stato CRL/OCSP | Media | Pianificato |
| [[.:policy_validation|5.4]] | Validazione Policy | Verificare Certificate Policies | Media | Pianificato |
| [[.:name_constraints|5.5]] | Name Constraints | Verificare restrizioni namespace | Alta | Pianificato |
----
===== Processo di validazione =====
flowchart TB
START[Certificato ricevuto] --> BUILD[Chain Building]
BUILD --> SIG[Verificare firma]
SIG --> TIME[Verificare validità]
TIME --> REV[Verificare revoca]
REV --> POLICY[Verificare policy]
POLICY --> CONSTR[Verificare constraints]
CONSTR --> RESULT{Risultato}
RESULT --> |OK| VALID[Valido]
RESULT --> |Errore| INVALID[Non valido]
style VALID fill:#e8f5e9
style INVALID fill:#ffcdd2
----
===== Passi di validazione =====
^ Passo ^ Verifica ^ Errore se ^
| 1. Chain Building | Costruire catena fino al Trust Anchor | Intermediate mancante |
| 2. Firma | Ogni certificato firmato dall'emittente | Firma non valida |
| 3. Validità | notBefore <= now <= notAfter | Scaduto / Non ancora valido |
| 4. Basic Constraints | Flag CA, pathLen | Non-CA firma certificato |
| 5. Key Usage | keyCertSign per CA | Scopo d'uso errato |
| 6. Revoca | CRL o OCSP | Revocato |
| 7. Policy | Certificate Policies | Policy non accettata |
| 8. Name Constraints | permitted/excluded Subtrees | Nome fuori ambito |
----
===== Strategie di revoca =====
^ Metodo ^ Vantaggi ^ Svantaggi ^ Utilizzo ^
| **CRL** | Possibile offline, semplice | File grandi, ritardo | Enterprise, Offline |
| **OCSP** | Tempo reale, compatto | Richiede server | Servizi online |
| **OCSP Stapling** | Performance, privacy | Richiede supporto TLS-server | Webserver |
----
===== Requisiti specifici per settore =====
^ Settore ^ Revoca ^ Particolarità ^
| **Energia/SCADA** | CRL (Offline) | Nessuna connessione Internet possibile |
| **Sanità** | OCSP | Validazione in tempo reale per eRicetta |
| **Automotive** | CRL + OCSP | V2X richiede verifica rapida |
| **Industria 4.0** | CRL | Reti di produzione isolate |
----
===== Guida rapida al codice =====
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
// Caricare Trust Store
var trustStore = ctx.LoadTrustStore("trust-store.p7b");
// Validare certificato
var result = ctx.ValidateCertificate(
certificate: serverCert,
trustStore: trustStore,
options: new ValidationOptions
{
CheckRevocation = true,
RevocationMode = RevocationMode.Online, // CRL + OCSP
ValidatePolicy = true,
AcceptedPolicies = new[] { "1.3.6.1.4.1.99999.1.1" } // Policy OID personalizzata
}
);
if (result.IsValid)
{
Console.WriteLine("Certificato valido");
Console.WriteLine($"Chain: {string.Join(" → ", result.Chain.Select(c => c.Subject))}");
}
else
{
Console.WriteLine($"Errore: {result.ErrorCode} - {result.ErrorMessage}");
}
----
===== Categorie correlate =====
^ Categoria ^ Relazione ^
| [[it:int:pqcrypt:szenarien:pki:start|1. Infrastruttura PKI]] | Configurare Trust Store |
| [[it:int:pqcrypt:szenarien:widerruf:start|6. Revoca]] | Fornire CRL/OCSP |
| [[it:int:pqcrypt:szenarien:tls:start|10. TLS/mTLS]] | Validazione nell'handshake TLS |
----
<< [[it:int:pqcrypt:szenarien:verwaltung:start|← 4. Gestire certificati]] | [[it:int:pqcrypt:szenarien:start|↑ Scenari]] | [[it:int:pqcrypt:szenarien:widerruf:start|6. Revoca →]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>categoria validazione chain trust revoca policy}}