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
6.1 CRL erstellen Certificate Revocation List generieren ⭐⭐⭐
6.2 OCSP-Responder Online Certificate Status Protocol ⭐⭐⭐⭐
6.3 Delta-CRL Inkrementelle CRL-Updates ⭐⭐⭐⭐
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
1. PKI-Infrastruktur CRL Distribution Points in CA-Config
5. Validierung Revocation-Check bei Validierung
4. Zertifikate verwalten Re-Key nach Widerruf

« ← 5. Validierung | ↑ Szenarien | 7. Verschlüsselung → »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: den 29.01.2026 um 15:13