~~NOTOC~~ ====== Scenarij 1.2: Ustvarjanje vmesnega CA ====== **Kategorija:** [[.:start|PKI infrastruktura]] \\ **Kompleksnost:** ⭐⭐⭐ (Srednja) \\ **Predpogoji:** [[.:root_ca_erstellen|Scenarij 1.1: Ustvarjanje korenskega CA]] \\ **Predviden čas:** 20-40 minut ---- ===== Opis ===== Ta scenarij opisuje ustvarjanje **vmesnega CA** (tudi Sub-CA ali Issuing-CA), ki ga podpiše korenski CA. Vmesni CA izdaja certifikate končnih entitet in ščiti ključ korenskega CA, ki lahko ostane offline. **Kaj se ustvari:** * Par ključev ML-DSA-65 za vmesni CA * Certificate Signing Request (CSR) * Vmesni certifikat, podpisan s korenskim CA * Šifriran zasebni ključ **Prednosti vmesnega CA:** * **Varnost:** Korenski CA ostane offline, samo vmesni CA je online * **Prilagodljivost:** Več vmesnih CA za različne namene (strežnik, odjemalec, podpisovanje kode) * **Preklic:** Vmesni CA se lahko prekliče brez kompromitacije korenskega * **Skladnost:** Ustreza najboljšim praksam (CA/Browser Forum, BSI) **Tipični tipi vmesnih CA:** * **Server-CA:** Za TLS strežniške certifikate * **Client-CA:** Za mTLS odjemalske certifikate * **User-CA:** Za E-pošto/S-MIME certifikate * **CodeSign-CA:** Za certifikate za podpisovanje kode * **Device-CA:** Za IoT/certifikate naprav ---- ===== Diagram poteka ===== ┌─────────────────────────────────────────────────────────────────────────┐ │ USTVARJANJE VMESNEGA CA │ │ │ │ ┌─────────────────────────┐ ┌─────────────────────────┐ │ │ │ VMESNI CA │ │ KORENSKI CA │ │ │ │ (Online sistem) │ │ (Air-Gapped sistem) │ │ │ └─────────────────────────┘ └─────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────┘ ┌──────────────┐ │ 1. Init │ └──────┬───────┘ │ ▼ ┌──────────────┐ │ 2. KeyPair │ ──────► ML-DSA-65 za vmesni │ generiranje │ └──────┬───────┘ │ ▼ ┌──────────────┐ │ 3. DN │ ──────► CN=WvdS Server CA │ ustvarjanje │ O=DATECpro GmbH └──────┬───────┘ │ ▼ ┌──────────────┐ │ 4. Razširitve│ ──────► BasicConstraints, KeyUsage, EKU │ za CSR │ (želene razširitve) └──────┬───────┘ │ ▼ ┌──────────────┐ │ 5. CSR │ ──────► PKCS#10 zahtevek │ ustvarjanje │ Podpisan s ključem vmesnega └──────┬───────┘ │ │ ══════════════════════════════════════════ │ Prenos CSR (USB ključ, varen kanal) ▼ ══════════════════════════════════════════ ┌──────────────┐ │ 6. Korenski │ ──────► nalaganje root-ca.key.pem │ CA nalaganje │ (Air-Gapped sistem) └──────┬───────┘ │ ▼ ┌──────────────┐ │ 7. CSR │ ──────► Preverjanje: DN, podpis, razširitve │ validacija │ └──────┬───────┘ │ ▼ ┌──────────────┐ │ 8. Razširitve│ ──────► BC, KU, SKI, AKI, CDP, AIA │ nastavitev │ (CA določa končne razširitve) └──────┬───────┘ │ ▼ ┌──────────────┐ │ 9. Certifikat│ ──────► Korenski CA podpisuje │ izdaja │ vmesni certifikat └──────┬───────┘ │ │ ══════════════════════════════════════════ │ Prenos certifikata nazaj ▼ ══════════════════════════════════════════ ┌──────────────┐ │ 10. Shramba │ ──────► intermediate-ca.crt.pem │ │ intermediate-ca.key.pem └──────┬───────┘ │ ▼ ┌──────────────┐ │ 11. Veriga │ ──────► ustvarjanje ca-chain.pem │ ustvarjanje │ (vmesni + korenski) └──────┬───────┘ │ ▼ ┌──────────────┐ │ 12. Čiščenje │ └──────────────┘ ---- ===== Razlike od korenskega CA ===== ^ Vidik ^ Korenski CA ^ Vmesni CA ^ | **Issuer** | = Subject (samopodpisan) | = Subject korenskega CA | | **Podpisal** | Lastni ključ | Ključ korenskega CA | | **pathLength** | 1 ali 2 | 0 (samo končne entitete) | | **Veljavnost** | 15-25 let | 8-12 let | | **AKI** | Ni prisoten | SKI korenskega CA | | **CDP** | Opcijsko | Obvezno | | **AIA** | Ni prisoten | OCSP + caIssuers | | **Lokacija ključa** | Offline / HSM | Online (zaščiteno) | | **Uporaba** | Samo podpisovanje vmesnih CA | Podpisovanje certifikatov končnih entitet | ---- ===== Varnostna opozorila ===== **Zaščita ključa vmesnega CA:** * Zasebni ključ **šifrirano** shranjen (Argon2id + AES-256-GCM) * Idealno v **HSM** ali strojnem žetonu * **Omejen** dostop (samo CA storitev) * **Revizijsko beleženje** za vse operacije podpisovanja * Načrtovanje redne **rotacije ključev** **Najboljše prakse:** * **pathLength=0** preprečuje dodatne pod-CA pod tem vmesnim CA * **Ločeni vmesni CA** za različne namene (strežnik, odjemalec, podpisovanje kode) * **CDP in AIA** vedno nastaviti za preverjanje preklica * **CSR offline prenos** (USB ključ) na Air-Gapped sistem korenskega CA * **Certifikatna veriga** (ca-chain.pem) za enostavno namestitev **Izogibajte se pogostim napakam:** * **Ne** ustvarjajte vmesnega CA z istim ključem kot korenski * **Ne** nastavljajte pathLength > 0, če ni želena pod-pod-CA * **Ne** pozabite AKI (otežuje gradnjo verige) * **Ne** pozabite CDP/AIA (preverjanje preklica ne bo delovalo) ---- ===== Izhodne datoteke ===== ^ Datoteka ^ Tip ^ Opis ^ | ''intermediate-ca.csr.pem'' | PKCS#10 | Certificate Signing Request | | ''intermediate-ca.key.pem'' | PKCS#8 (šifriran) | Šifriran zasebni ključ | | ''intermediate-ca.crt.pem'' | X.509 | Certifikat vmesnega CA | | ''ca-chain.pem'' | PEM paket | Vmesni + korenski (za namestitev) | ---- ===== Povezani scenariji ===== ^ Povezava ^ Scenarij ^ Opis ^ | **Predpogoj** | [[.:root_ca_erstellen|1.1 Ustvarjanje korenskega CA]] | Korenski CA mora obstajati | | **Naslednji korak** | [[.:trust_store_konfigurieren|1.4 Shramba zaupanja]] | Distribucija korenskega certifikata | | **Naslednji korak** | [[.:crl_ocsp_infrastruktur|1.6 CRL/OCSP]] | Vzpostavitev preklica | | **Nato** | [[sl:int:pqcrypt:szenarien:zertifikate:server_cert|3.1 Strežniški certifikat]] | Izdajanje certifikatov končnih entitet | | **Alternativno** | [[.:ca_hierarchie_aufbauen|1.3 CA hierarhija]] | Več vmesnih CA | ---- << [[.:root_ca_erstellen|← 1.1 Korenski CA]] | [[.:start|▲ PKI infrastruktura]] | [[.:ca_hierarchie_aufbauen|1.3 CA hierarhija →]] >> {{tag>scenarij pki vmesni-ca csr ml-dsa-65 veriga aki cdp aia}} ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//