~~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}}