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