~~NOTOC~~ ====== 5. Validierung & Vertrauen ====== **Szenarien:** 5 \\ **FFI-Funktionen:** ~40 \\ **Status:** ⏳ Geplant Diese Kategorie umfasst alle Szenarien zur Validierung von Zertifikaten und Zertifikatsketten. Chain-Building, Revocation-Checks und Policy-Validierung. ---- ===== Szenarien ===== ^ ID ^ Szenario ^ Beschreibung ^ Komplexität ^ Status ^ | [[.:chain_building|5.1]] | Chain-Building | Zertifikatskette aufbauen | ⭐⭐⭐ | ⏳ | | [[.:chain_validation|5.2]] | Chain-Validierung | Vollständige Kettenprüfung | ⭐⭐⭐⭐ | ⏳ | | [[.:revocation_check|5.3]] | Revocation-Check | CRL/OCSP Statusprüfung | ⭐⭐⭐ | ⏳ | | [[.:policy_validation|5.4]] | Policy-Validierung | Certificate Policies prüfen | ⭐⭐⭐ | ⏳ | | [[.:name_constraints|5.5]] | Name Constraints | Namespace-Einschränkungen prüfen | ⭐⭐⭐⭐ | ⏳ | ---- ===== Validierungsprozess ===== flowchart TB START[Zertifikat empfangen] --> BUILD[Chain Building] BUILD --> SIG[Signatur prüfen] SIG --> TIME[Gültigkeit prüfen] TIME --> REV[Revocation prüfen] REV --> POLICY[Policy prüfen] POLICY --> CONSTR[Constraints prüfen] CONSTR --> RESULT{Ergebnis} RESULT --> |OK| VALID[✅ Gültig] RESULT --> |Fehler| INVALID[❌ Ungültig] style VALID fill:#e8f5e9 style INVALID fill:#ffcdd2 ---- ===== Validierungsschritte ===== ^ Schritt ^ Prüfung ^ Fehler bei ^ | 1. Chain Building | Kette bis Trust Anchor aufbauen | Fehlende Intermediate | | 2. Signatur | Jedes Zertifikat von Issuer signiert | Ungültige Signatur | | 3. Gültigkeit | notBefore ≤ now ≤ notAfter | Abgelaufen / Noch nicht gültig | | 4. Basic Constraints | CA-Flag, pathLen | Nicht-CA signiert Zertifikat | | 5. Key Usage | keyCertSign für CAs | Falscher Verwendungszweck | | 6. Revocation | CRL oder OCSP | Widerrufen | | 7. Policy | Certificate Policies | Policy nicht akzeptiert | | 8. Name Constraints | permitted/excluded Subtrees | Name außerhalb Scope | ---- ===== Revocation-Strategien ===== ^ Methode ^ Vorteile ^ Nachteile ^ Einsatz ^ | **CRL** | Offline möglich, einfach | Große Dateien, Delay | Enterprise, Offline | | **OCSP** | Echtzeit, kompakt | Server erforderlich | Online-Dienste | | **OCSP Stapling** | Performance, Privatsphäre | TLS-Server-Support nötig | Webserver | ---- ===== Branchenspezifische Anforderungen ===== ^ Branche ^ Revocation ^ Besonderheiten ^ | **Energie/SCADA** | CRL (Offline) | Keine Internet-Verbindung möglich | | **Healthcare** | OCSP | Echtzeit-Validierung für eRezept | | **Automotive** | CRL + OCSP | V2X erfordert schnelle Prüfung | | **Industrie 4.0** | CRL | Produktionsnetze isoliert | ---- ===== Code-Schnellstart ===== using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ; // Trust Store laden var trustStore = ctx.LoadTrustStore("trust-store.p7b"); // Zertifikat validieren 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" } // Custom Policy OID } ); if (result.IsValid) { Console.WriteLine("Zertifikat gültig"); Console.WriteLine($"Chain: {string.Join(" → ", result.Chain.Select(c => c.Subject))}"); } else { Console.WriteLine($"Fehler: {result.ErrorCode} - {result.ErrorMessage}"); } ---- ===== Verwandte Kategorien ===== ^ Kategorie ^ Beziehung ^ | [[.:pki:start|1. PKI-Infrastruktur]] | Trust Store einrichten | | [[.:widerruf:start|6. Widerruf]] | CRL/OCSP bereitstellen | | [[.:tls:start|10. TLS/mTLS]] | Validierung im TLS-Handshake | ---- << [[de:int:pqcrypt:szenarien:verwaltung:start|← 4. Zertifikate verwalten]] | [[de:int:pqcrypt:szenarien:start|↑ Szenarien]] | [[.:widerruf:start|6. Widerruf →]] >> ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>kategorie validierung chain trust revocation policy}}