~~NOTOC~~
====== 1. PKI-Infrastruktur aufbauen ======
**Szenarien:** 6 \\
**FFI-Funktionen:** ~45 \\
**Status:** ⏳ Geplant
Diese Kategorie umfasst alle Szenarien zum Aufbau und zur Verwaltung einer Post-Quantum-fähigen Public Key Infrastructure (PKI). Von der Erstellung einer Root-CA über mehrstufige CA-Hierarchien bis hin zur Konfiguration von Revocation-Diensten (CRL/OCSP).
----
===== Szenarien =====
^ ID ^ Szenario ^ Beschreibung ^ Komplexität ^ Status ^
| [[.:root_ca_erstellen|1.1]] | Root-CA erstellen | Selbstsignierte Root-CA mit ML-DSA-65 | ⭐⭐⭐⭐ | ⏳ |
| [[.:intermediate_ca_erstellen|1.2]] | Intermediate-CA erstellen | Untergeordnete CA von Root signiert | ⭐⭐⭐ | ⏳ |
| [[.:ca_hierarchie_aufbauen|1.3]] | CA-Hierarchie aufbauen | Mehrstufige PKI-Struktur | ⭐⭐⭐⭐ | ⏳ |
| [[.:trust_store_konfigurieren|1.4]] | Trust Store konfigurieren | Vertrauenswürdige CAs verwalten | ⭐⭐ | ⏳ |
| [[.:certificate_policy_definieren|1.5]] | Certificate Policy definieren | Ausstellungsrichtlinien festlegen | ⭐⭐⭐ | ⏳ |
| [[.:crl_ocsp_infrastruktur|1.6]] | CRL/OCSP-Infrastruktur | Revocation-Dienste einrichten | ⭐⭐⭐⭐ | ⏳ |
----
===== Architektur-Übersicht =====
flowchart TB
subgraph ROOT["🔐 Root-CA (Szenario 1.1)"]
R[("Root-CA
ML-DSA-65/87
20 Jahre")]
end
subgraph INTERMEDIATE["📜 Intermediate-CAs (Szenario 1.2)"]
I1["Intermediate-CA
Server
10 Jahre"]
I2["Intermediate-CA
Client
10 Jahre"]
I3["Intermediate-CA
CodeSign
10 Jahre"]
end
subgraph ENDENTITY["🎫 End-Entity-Zertifikate"]
E1["Server-Certs
TLS/HTTPS"]
E2["Client-Certs
mTLS/Auth"]
E3["CodeSign-Certs
Signierung"]
end
R -->|signiert| I1
R -->|signiert| I2
R -->|signiert| I3
I1 -->|ausstellt| E1
I2 -->|ausstellt| E2
I3 -->|ausstellt| E3
subgraph TRUST["🛡️ Trust Store (Szenario 1.4)"]
T1["Root-CA Zertifikate"]
T2["Cross-Zertifikate"]
end
subgraph REVOCATION["🚫 Revocation (Szenario 1.6)"]
CRL["CRL Distribution Points"]
OCSP["OCSP Responder"]
end
R -.->|publiziert| TRUST
I1 & I2 & I3 -.->|veröffentlicht| CRL
I1 & I2 & I3 -.->|antwortet| OCSP
----
===== Branchenspezifische Anforderungen =====
Je nach Branche gelten unterschiedliche Anforderungen an PKI-Lebensdauern und Compliance:
^ Branche ^ Root-CA Gültigkeit ^ Besonderheiten ^ Regulierung ^
| **Energie/SCADA** | 25 Jahre | WKA-Lebensdauer, Offline-CRL | NIS2((NIS2-Richtlinie (EU) 2022/2555: https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32022L2555)), KRITIS-VO |
| **Healthcare** | 20 Jahre | gematik-OIDs, ePA-kompatibel | DSGVO Art. 32, DiGAV |
| **Automotive** | 30 Jahre | V2X-PKI, Pseudonym-Zertifikate | UN R155((UNECE R155: https://unece.org/transport/documents/2021/03/standards/un-regulation-no-155-cyber-security-and-cyber-security)), ISO 21434 |
| **Industrie 4.0** | 20 Jahre | OT/IT-Trennung, IEC 62443 | NIS2, Maschinenverordnung |
| **Standard IT** | 15 Jahre | Übliche Enterprise-PKI | BSI IT-Grundschutz |
----
===== Schlüsseltypen für CAs =====
^ CA-Typ ^ Empfohlener Algorithmus ^ Gültigkeit ^ Begründung ^
| Root-CA | ML-DSA-65 oder ML-DSA-87 | 15-25 Jahre | Höchste Sicherheit, selten verwendet |
| Intermediate-CA | ML-DSA-65 | 8-12 Jahre | Balance Sicherheit/Performance |
| OCSP-Responder | ML-DSA-44 | 1-3 Jahre | Häufige Signierung, Performance kritisch |
**Hybrid-Empfehlung:** Für Übergangsphase können Hybrid-Schlüssel (ECDSA P-384 + ML-DSA-65) verwendet werden, um Kompatibilität mit klassischen Systemen zu gewährleisten.
----
===== Wichtige Extensions für CA-Zertifikate =====
==== Root-CA ====
^ Extension ^ Wert ^ Critical ^
| Basic Constraints | CA=true, pathLen=1 oder 2 | ✅ Ja |
| Key Usage | keyCertSign, cRLSign | ✅ Ja |
| Subject Key Identifier | SHA-256(publicKey) | ❌ Nein |
==== Intermediate-CA ====
^ Extension ^ Wert ^ Critical ^
| Basic Constraints | CA=true, pathLen=0 | ✅ Ja |
| Key Usage | keyCertSign, cRLSign | ✅ Ja |
| Subject Key Identifier | SHA-256(publicKey) | ❌ Nein |
| Authority Key Identifier | SKI der Root-CA | ❌ Nein |
| CRL Distribution Points | URL zur CRL | ❌ Nein |
| Authority Info Access | OCSP URL, CA Issuers URL | ❌ Nein |
| Certificate Policies | Policy OID | ❌ Nein |
----
===== Sicherheitshinweise =====
**Kritische Anforderungen für CA-Betrieb:**
* **Root-CA Private Key:** Offline speichern (Air-Gapped HSM oder verschlüsselter USB-Stick im Tresor)
* **Intermediate-CA Private Key:** HSM oder stark verschlüsselt mit Hardware-Token
* **Passwörter:** Mindestens 20 Zeichen, hohe Entropie, sicher verwahrt
* **Audit-Logging:** Alle CA-Operationen protokollieren
* **Backup:** Verschlüsselte Backups an getrennten Standorten
* **Key Ceremony:** Dokumentierter Prozess für Root-CA-Operationen
**Niemals:**
* Root-CA Private Key auf vernetzten Systemen speichern
* CA-Passwörter im Klartext in Skripten/Configs
* CA-Zertifikate ohne pathLength-Beschränkung ausstellen
* Selbstsignierte End-Entity-Zertifikate in Produktion verwenden
----
===== Typischer Workflow =====
flowchart TB
subgraph P1["1️⃣ VORBEREITUNG"]
V1["Air-Gapped System vorbereiten"]
V2["Certificate Policy dokumentieren"]
V3["DN-Struktur festlegen"]
V4["Gültigkeitszeiträume planen"]
end
subgraph P2["2️⃣ ROOT-CA ERSTELLEN"]
R1["ML-DSA-65/87 Schlüsselpaar"]
R2["Selbstsigniertes Zertifikat"]
R3["Private Key verschlüsseln"]
R4["Root-Zertifikat exportieren"]
end
subgraph P3["3️⃣ INTERMEDIATE-CA"]
I1["ML-DSA-65 Schlüsselpaar"]
I2["CSR erstellen"]
I3["Root signiert Zertifikat"]
I4["Online deployen"]
end
subgraph P4["4️⃣ TRUST & REVOCATION"]
T1["Trust Stores konfigurieren"]
T2["CRL Distribution Points"]
T3["OCSP-Responder"]
T4["Erste CRL publizieren"]
end
subgraph P5["5️⃣ BETRIEB"]
B1["Zertifikate ausstellen"]
B2["CRLs aktualisieren"]
B3["OCSP-Responses"]
B4["Audit-Logs überwachen"]
end
P1 ==> P2 ==> P3 ==> P4 ==> P5
style P1 fill:#e3f2fd
style P2 fill:#e8f5e9
style P3 fill:#fff8e1
style P4 fill:#fce4ec
style P5 fill:#f3e5f5
----
===== Code-Schnellstart =====
==== Minimales Beispiel: Root-CA erstellen (C#) ====
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
using var ctx = PqCryptoContext.Initialize();
// Root-CA mit ML-DSA-65
using var rootKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65);
var rootDn = new DnBuilder().AddCN("My Root CA").AddO("My Org").AddC("DE").Build();
using var rootCert = ctx.CreateRootCertificate(rootKey, rootDn,
validYears: 20,
extensions: new ExtBuilder()
.BasicConstraints(ca: true, pathLen: 1)
.KeyUsage(KeyUsageFlags.KeyCertSign | KeyUsageFlags.CrlSign)
.SubjectKeyIdentifier(rootKey)
.Build()
);
// Speichern
File.WriteAllText("root-ca.crt.pem", rootCert.ToPem());
File.WriteAllText("root-ca.key.pem", rootKey.ToEncryptedPem("SecurePassword123!"));
→ //Vollständiges Beispiel:// [[.:root_ca_erstellen|Szenario 1.1]]
----
===== Verwandte Kategorien =====
^ Kategorie ^ Beziehung ^
| [[de:int:pqcrypt:szenarien:csr:start|2. CSR]] | CSR-Erstellung für Intermediate-CAs |
| [[de:int:pqcrypt:szenarien:zertifikate:start|3. Zertifikate ausstellen]] | End-Entity-Zertifikate von CA signieren |
| [[de:int:pqcrypt:szenarien:validierung:start|5. Validierung]] | Zertifikate gegen Trust Store validieren |
| [[de:int:pqcrypt:szenarien:widerruf:start|6. Widerruf]] | CRL/OCSP-Operationen |
| [[de:int:pqcrypt:szenarien:schluessel:start|11. Schlüsselmanagement]] | CA-Schlüssel verwalten, rotieren, vernichten |
----
<< [[de:int:pqcrypt:szenarien:start|← Szenarien-Übersicht]] | [[.:root_ca_erstellen|1.1 Root-CA erstellen →]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>kategorie pki root-ca intermediate-ca trust-store crl ocsp}}