Inhaltsverzeichnis
Validazione
Esempi compatti per la validazione dei certificati. → Dettagli: Scenari validazione
Certificato singolo
var cert = new X509Certificate2("certificate.crt"); // Validita temporale bool timeValid = DateTime.UtcNow >= cert.NotBefore && DateTime.UtcNow <= cert.NotAfter; // Verificare firma PQ bool hasPq = cert.HasPqSignature(); if (hasPq) { bool pqValid = cert.VerifyPqSignature(); }
Catena certificati
var endEntity = new X509Certificate2("server.crt"); var chain = new X509Chain(); chain.ChainPolicy.RevocationMode = X509RevocationMode.Online; chain.ChainPolicy.CustomTrustStore.Add(new X509Certificate2("root-ca.crt")); chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust; bool isValid = chain.Build(endEntity); foreach (var element in chain.ChainElements) { Console.WriteLine($"{element.Certificate.Subject}"); Console.WriteLine($" PQ: {element.Certificate.HasPqSignature()}"); }
→ Dettagli: Validazione catena
Validazione hostname
var cert = new X509Certificate2("server.crt"); string hostname = "api.example.com"; var san = cert.Extensions["2.5.29.17"] as X509SubjectAlternativeNameExtension; bool valid = san?.EnumerateDnsNames().Any(n => MatchesHostname(n, hostname)) ?? false; bool MatchesHostname(string pattern, string host) { if (pattern.StartsWith("*.")) return host.EndsWith(pattern[2..]); return pattern.Equals(host, StringComparison.OrdinalIgnoreCase); }
Verificare Key Usage
var kuExt = cert.Extensions["2.5.29.15"] as X509KeyUsageExtension; bool canSign = kuExt?.KeyUsages.HasFlag(X509KeyUsageFlags.DigitalSignature) ?? false; var ekuExt = cert.Extensions["2.5.29.37"] as X509EnhancedKeyUsageExtension; bool isTlsServer = ekuExt?.EnhancedKeyUsages .Cast<Oid>().Any(o => o.Value == "1.3.6.1.5.5.7.3.1") ?? false;
Checklist
| Verifica | Critica |
|---|---|
| Validita temporale | Si |
| Firma (classica + PQ) | Si |
| Catena fino a Trust Anchor | Si |
| Revoca (CRL/OCSP) | Si |
| Hostname (SAN) | Per TLS |
| Key Usage | Si |
« ← Riferimento rapido | → Scenari validazione (Dettagli) »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: il 30/01/2026 alle 08:58