~~NOTOC~~ ====== 6. Widerruf (Revocation) ====== **Szenarien:** 4 \\ **FFI-Funktionen:** ~35 \\ **Status:** ⏳ Geplant Diese Kategorie umfasst alle Szenarien zum Widerruf von Zertifikaten. CRL-Erstellung, OCSP-Responder-Setup und Delta-CRL-Management. ---- ===== Szenarien ===== ^ ID ^ Szenario ^ Beschreibung ^ Komplexität ^ Status ^ | [[.:crl_erstellen|6.1]] | CRL erstellen | Certificate Revocation List generieren | ⭐⭐⭐ | ⏳ | | [[.:ocsp_responder|6.2]] | OCSP-Responder | Online Certificate Status Protocol | ⭐⭐⭐⭐ | ⏳ | | [[.:delta_crl|6.3]] | Delta-CRL | Inkrementelle CRL-Updates | ⭐⭐⭐⭐ | ⏳ | | [[.:zertifikat_widerrufen|6.4]] | Zertifikat widerrufen | Einzelnes Zertifikat widerrufen | ⭐⭐ | ⏳ | ---- ===== Revocation-Architektur ===== flowchart TB subgraph CA["🔐 Certificate Authority"] REVOKE[Widerruf-Anfrage] DB[(Revocation DB)] CRL_GEN[CRL Generator] OCSP_SIGN[OCSP Signer] end subgraph DIST["📤 Distribution"] CDP[CRL Distribution Point] OCSP_SRV[OCSP Responder] end subgraph CLIENT["🖥️ Client"] VAL[Validator] end REVOKE --> DB DB --> CRL_GEN --> CDP DB --> OCSP_SIGN --> OCSP_SRV VAL --> |HTTP GET| CDP VAL --> |OCSP Request| OCSP_SRV style DB fill:#e3f2fd style CDP fill:#e8f5e9 style OCSP_SRV fill:#fff3e0 ---- ===== Widerrufsgründe (RFC 5280) ===== ^ Code ^ Grund ^ Beschreibung ^ | 0 | unspecified | Kein Grund angegeben | | 1 | keyCompromise | Private Key kompromittiert | | 2 | cACompromise | CA kompromittiert | | 3 | affiliationChanged | Organisation geändert | | 4 | superseded | Durch neues Zertifikat ersetzt | | 5 | cessationOfOperation | Dienst eingestellt | | 6 | certificateHold | Temporär gesperrt | ---- ===== CRL vs OCSP ===== ^ Aspekt ^ CRL ^ OCSP ^ | **Aktualisierung** | Periodisch (Stunden/Tage) | Echtzeit | | **Größe** | Wächst mit Widerrufen | Konstant (~4 KB) | | **Offline** | ✅ Möglich | ❌ Server erforderlich | | **Privatsphäre** | ✅ Keine Anfragen sichtbar | ⚠️ Server sieht Anfragen | | **Standard** | RFC 5280 | RFC 6960 | ---- ===== Branchenspezifische Anforderungen ===== ^ Branche ^ Methode ^ Update-Intervall ^ Besonderheiten ^ | **Energie/SCADA** | CRL | 24-72h | Offline-Umgebungen, manuelle Verteilung | | **Healthcare** | OCSP | Echtzeit | gematik-Anforderungen, QES | | **Automotive** | CRL + OCSP | 1-6h | V2X schnelle Reaktion erforderlich | | **Standard IT** | OCSP Stapling | Echtzeit | Performance-optimiert | ---- ===== Code-Schnellstart ===== ==== CRL erstellen ==== // CRL-Builder initialisieren var crlBuilder = ctx.CreateCrlBuilder(issuerCert, issuerKey); // Widerrufene Zertifikate hinzufügen crlBuilder.AddRevokedCertificate( serialNumber: revokedCert.SerialNumber, revocationDate: DateTimeOffset.UtcNow, reason: RevocationReason.KeyCompromise ); // CRL generieren var crl = crlBuilder.Build( thisUpdate: DateTimeOffset.UtcNow, nextUpdate: DateTimeOffset.UtcNow.AddDays(7), crlNumber: 42 ); File.WriteAllBytes("intermediate.crl", crl.ToDer()); ==== Zertifikat widerrufen ==== // Zertifikat zum Widerruf laden var certToRevoke = ctx.LoadCertificate("compromised.crt.pem"); // In Revocation-DB eintragen ctx.RevokeCertificate( certificate: certToRevoke, reason: RevocationReason.KeyCompromise, invalidityDate: DateTimeOffset.UtcNow.AddHours(-2) // Kompromittierung vor 2h ); // Neue CRL generieren und verteilen var newCrl = ctx.GenerateCrl(issuerCert, issuerKey); await PublishCrl(newCrl, "http://crl.example.com/intermediate.crl"); ---- ===== Verwandte Kategorien ===== ^ Kategorie ^ Beziehung ^ | [[.:pki:start|1. PKI-Infrastruktur]] | CRL Distribution Points in CA-Config | | [[.:validierung:start|5. Validierung]] | Revocation-Check bei Validierung | | [[.:verwaltung:start|4. Zertifikate verwalten]] | Re-Key nach Widerruf | ---- << [[de:int:pqcrypt:szenarien:validierung:start|← 5. Validierung]] | [[de:int:pqcrypt:szenarien:start|↑ Szenarien]] | [[.:verschluesselung:start|7. Verschlüsselung →]] >> ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>kategorie widerruf revocation crl ocsp}}