~~NOTOC~~
====== 1. Vzpostavitev PKI infrastrukture ======
**Scenariji:** 6 \\
**FFI funkcije:** ~45 \\
**Status:** ⏳ Načrtovano
Ta kategorija zajema vse scenarije za vzpostavitev in upravljanje infrastrukture javnih ključev (PKI), ki podpira postkvantne algoritme. Od ustvarjanja korenskega CA prek večnivojskih CA hierarhij do konfiguracije storitev preklica (CRL/OCSP).
----
===== Scenariji =====
^ ID ^ Scenarij ^ Opis ^ Kompleksnost ^ Status ^
| [[.:root_ca_erstellen|1.1]] | Ustvarjanje korenskega CA | Samopodpisan korenski CA z ML-DSA-65 | ⭐⭐⭐⭐ | ⏳ |
| [[.:intermediate_ca_erstellen|1.2]] | Ustvarjanje vmesnega CA | Podrejeni CA, podpisan s korenskim | ⭐⭐⭐ | ⏳ |
| [[.:ca_hierarchie_aufbauen|1.3]] | Vzpostavitev CA hierarhije | Večnivojska PKI struktura | ⭐⭐⭐⭐ | ⏳ |
| [[.:trust_store_konfigurieren|1.4]] | Konfiguracija shrambe zaupanja | Upravljanje zaupanja vrednih CA | ⭐⭐ | ⏳ |
| [[.:certificate_policy_definieren|1.5]] | Definicija pravilnika certifikatov | Določitev pravilnika izdajanja | ⭐⭐⭐ | ⏳ |
| [[.:crl_ocsp_infrastruktur|1.6]] | CRL/OCSP infrastruktura | Vzpostavitev storitev preklica | ⭐⭐⭐⭐ | ⏳ |
----
===== Pregled arhitekture =====
flowchart TB
subgraph ROOT["🔐 Korenski CA (Scenarij 1.1)"]
R[("Korenski CA
ML-DSA-65/87
20 let")]
end
subgraph INTERMEDIATE["📜 Vmesni CA (Scenarij 1.2)"]
I1["Vmesni CA
Strežnik
10 let"]
I2["Vmesni CA
Odjemalec
10 let"]
I3["Vmesni CA
Podpisovanje kode
10 let"]
end
subgraph ENDENTITY["🎫 Certifikati končnih entitet"]
E1["Strežniški cert.
TLS/HTTPS"]
E2["Odjemalski cert.
mTLS/Auth"]
E3["Cert. za podpis.
Podpisovanje"]
end
R -->|podpisuje| I1
R -->|podpisuje| I2
R -->|podpisuje| I3
I1 -->|izdaja| E1
I2 -->|izdaja| E2
I3 -->|izdaja| E3
subgraph TRUST["🛡️ Shramba zaupanja (Scenarij 1.4)"]
T1["Certifikati korenskega CA"]
T2["Navzkrižni certifikati"]
end
subgraph REVOCATION["🚫 Preklic (Scenarij 1.6)"]
CRL["CRL distribucijske točke"]
OCSP["OCSP odzivnik"]
end
R -.->|objavlja| TRUST
I1 & I2 & I3 -.->|objavlja| CRL
I1 & I2 & I3 -.->|odgovarja| OCSP
----
===== Panožne zahteve =====
Glede na panogo veljajo različne zahteve za življenjsko dobo PKI in skladnost:
^ Panoga ^ Veljavnost korenskega CA ^ Posebnosti ^ Regulativa ^
| **Energetika/SCADA** | 25 let | Življenjska doba WKA, offline CRL | NIS2, KRITIS-VO |
| **Zdravstvo** | 20 let | gematik OID-i, združljivost z ePA | GDPR čl. 32, DiGAV |
| **Avtomobilska industrija** | 30 let | V2X-PKI, psevdonimni certifikati | UN R155, ISO 21434 |
| **Industrija 4.0** | 20 let | Ločitev OT/IT, IEC 62443 | NIS2, Uredba o strojih |
| **Standardna IT** | 15 let | Običajna Enterprise PKI | BSI IT-Grundschutz |
----
===== Tipi ključev za CA =====
^ Tip CA ^ Priporočen algoritem ^ Veljavnost ^ Utemeljitev ^
| Korenski CA | ML-DSA-65 ali ML-DSA-87 | 15-25 let | Najvišja varnost, redko uporabljen |
| Vmesni CA | ML-DSA-65 | 8-12 let | Ravnovesje varnost/zmogljivost |
| OCSP odzivnik | ML-DSA-44 | 1-3 leta | Pogosto podpisovanje, kritična zmogljivost |
**Priporočilo za hibridne:** V prehodnem obdobju lahko uporabite hibridne ključe (ECDSA P-384 + ML-DSA-65) za zagotavljanje združljivosti s klasičnimi sistemi.
----
===== Pomembne razširitve za CA certifikate =====
==== Korenski CA ====
^ Razširitev ^ Vrednost ^ Kritična ^
| Basic Constraints | CA=true, pathLen=1 ali 2 | ✅ Da |
| Key Usage | keyCertSign, cRLSign | ✅ Da |
| Subject Key Identifier | SHA-256(publicKey) | ❌ Ne |
==== Vmesni CA ====
^ Razširitev ^ Vrednost ^ Kritična ^
| Basic Constraints | CA=true, pathLen=0 | ✅ Da |
| Key Usage | keyCertSign, cRLSign | ✅ Da |
| Subject Key Identifier | SHA-256(publicKey) | ❌ Ne |
| Authority Key Identifier | SKI korenskega CA | ❌ Ne |
| CRL Distribution Points | URL do CRL | ❌ Ne |
| Authority Info Access | OCSP URL, CA Issuers URL | ❌ Ne |
| Certificate Policies | Policy OID | ❌ Ne |
----
===== Varnostna opozorila =====
**Kritične zahteve za delovanje CA:**
* **Zasebni ključ korenskega CA:** Offline hramba (Air-Gapped HSM ali šifriran USB ključ v sefu)
* **Zasebni ključ vmesnega CA:** HSM ali močno šifrirano s strojnim žetonom
* **Gesla:** Najmanj 20 znakov, visoka entropija, varno shranjeno
* **Revizijsko beleženje:** Beleženje vseh CA operacij
* **Varnostna kopija:** Šifrirane varnostne kopije na ločenih lokacijah
* **Key Ceremony:** Dokumentiran proces za operacije korenskega CA
**Nikoli:**
* Shranjevati zasebnega ključa korenskega CA na omrežnih sistemih
* CA gesla v čistem besedilu v skriptah/konfiguracijah
* Izdajati CA certifikate brez omejitve pathLength
* Uporabljati samopodpisanih certifikatov končnih entitet v produkciji
----
===== Tipičen potek dela =====
flowchart TB
subgraph P1["1️⃣ PRIPRAVA"]
V1["Priprava Air-Gapped sistema"]
V2["Dokumentacija pravilnika certifikatov"]
V3["Določitev DN strukture"]
V4["Načrtovanje obdobij veljavnosti"]
end
subgraph P2["2️⃣ USTVARJANJE KORENSKEGA CA"]
R1["ML-DSA-65/87 par ključev"]
R2["Samopodpisan certifikat"]
R3["Šifriranje zasebnega ključa"]
R4["Izvoz korenskega certifikata"]
end
subgraph P3["3️⃣ VMESNI CA"]
I1["ML-DSA-65 par ključev"]
I2["Ustvarjanje CSR"]
I3["Podpis s korenskim CA"]
I4["Online namestitev"]
end
subgraph P4["4️⃣ ZAUPANJE IN PREKLIC"]
T1["Konfiguracija shramb zaupanja"]
T2["CRL distribucijske točke"]
T3["OCSP odzivnik"]
T4["Objava prvega CRL"]
end
subgraph P5["5️⃣ DELOVANJE"]
B1["Izdajanje certifikatov"]
B2["Posodabljanje CRL"]
B3["OCSP odzivi"]
B4["Nadzor revizijskih dnevnikov"]
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
----
===== Hiter začetek s kodo =====
==== Minimalni primer: Ustvarjanje korenskega CA (C#) ====
using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
using var ctx = PqCryptoContext.Initialize();
// Korenski CA z ML-DSA-65
using var rootKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65);
var rootDn = new DnBuilder().AddCN("My Root CA").AddO("My Org").AddC("SI").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()
);
// Shranjevanje
File.WriteAllText("root-ca.crt.pem", rootCert.ToPem());
File.WriteAllText("root-ca.key.pem", rootKey.ToEncryptedPem("SecurePassword123!"));
→ //Popoln primer:// [[.:root_ca_erstellen|Scenarij 1.1]]
----
===== Povezane kategorije =====
^ Kategorija ^ Povezava ^
| [[sl:int:pqcrypt:szenarien:csr:start|2. CSR]] | Ustvarjanje CSR za vmesne CA |
| [[sl:int:pqcrypt:szenarien:zertifikate:start|3. Izdajanje certifikatov]] | Podpisovanje certifikatov končnih entitet s CA |
| [[sl:int:pqcrypt:szenarien:validierung:start|5. Validacija]] | Validacija certifikatov proti shrambi zaupanja |
| [[sl:int:pqcrypt:szenarien:widerruf:start|6. Preklic]] | CRL/OCSP operacije |
| [[sl:int:pqcrypt:szenarien:schluessel:start|11. Upravljanje ključev]] | Upravljanje, rotacija, uničenje CA ključev |
----
<< [[sl:int:pqcrypt:szenarien:start|← Pregled scenarijev]] | [[.:root_ca_erstellen|1.1 Ustvarjanje korenskega CA →]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>kategorija pki korenski-ca vmesni-ca shramba-zaupanja crl ocsp}}