Inhaltsverzeichnis
Ceremonija ključev
Namen: Varna, preverljiva generacija CA ključev
Udeleženci: Najmanj 3-4 osebe (deljena kontrola)
Trajanje: 2-4 ure
Formalni postopek za generacijo CA ključev z deljeno odgovornostjo in revizijsko sledjo.
Zakaj ceremonija ključev?
| Razlog | Opis |
| ——– | —— |
| Skladnost | ISO 27001, BSI-Grundschutz, WebTrust |
| Deljena kontrola | Nihče nima popolnega dostopa |
| Preverljivost | Dokumentiran, preverljiv proces |
| Integriteta | Dokaz pravilne generacije ključev |
Vloge
flowchart LR
subgraph ROLES["VLOGE"]
R1[Vodja ceremonije]
R2[Kriptografski uradnik 1]
R3[Kriptografski uradnik 2]
R4[Revizor/priča]
end
subgraph KEYS["KLJUČI"]
K1[HSM Admin PIN]
K2[Partition PIN]
K3[Pametna kartica 1]
K4[Pametna kartica 2]
end
R1 --> K1
R2 --> K2 & K3
R3 --> K4
R4 -.->|Opazuje| R1 & R2 & R3
| Vloga | Odgovornost | Min. število |
| ——- | ————- | ————– |
| Vodja ceremonije | Vodi proces, dokumentira | 1 |
| Kriptografski uradnik | Ima delež ključa, izvaja akcije | 2+ |
| Revizor/priča | Opazuje, podpiše zapisnik | 1 |
| IT varnost | Odobri, nadzoruje skladnost | 1 (opcijsko) |
Priprava
Kontrolni seznam 24h prej
| # | Naloga | Odgovoren | |
| — | ——– | ———– | — |
| 1 | Rezervacija prostora (brez oken, CCTV) | Vodja ceremonije | |
| 2 | Priprava HSM/sistema brez povezave | IT | |
| 3 | Udeleženci potrjeni | Vodja | |
| 4 | Priprava pametnih kartic/USB ključev | Vodja | |
| 5 | Tiskanje predloge zapisnika | Vodja | |
| 6 | Organizacija fotografa/videa (opcijsko) | Vodja |
Material
- Prenosnik brez povezave ali HSM
- Pametne kartice za deleže ključev
- USB ključi (novi, zapečateni)
- Kamera za dokumentacijo
- Vreče z dokazilom poseganja
- Obrazci zapisnika
- Pisala (neizbrisljiva)
Potek ceremonije
Faza 1: Otvoritev (15 min)
1. Identifikacija vseh udeležencev (preverjanje osebnega dokumenta) 2. Začetek zapisnika z: - Datum, čas, kraj - Vsi prisotni (ime, vloga, podpis) 3. Oddaja mobilnih telefonov 4. Razlaga namena ceremonije 5. Potrditev vlog
Faza 2: Preverjanje strojne opreme (30 min)
# Preverjanje sistema brez povezave # 1. Ali je omrežje deaktivirano? ip link show # Ni aktivnih vmesnikov # 2. Preverjanje BIOS zagonskega dnevnika dmesg | grep -i network # 3. Preverjanje statusa HSM (če se uporablja) /opt/hsm/bin/status # Pričakovan rezultat: Neinicializiran ali Pripravljen
Faza 3: Generacija ključev (60 min)
#!/bin/bash # key-ceremony-generate.sh echo "=== GENERACIJA ROOT CA KLJUČA ===" echo "Datum: $(date -Iseconds)" echo "Sistem: $(hostname)" # 1. Preverjanje kakovosti entropije echo "" echo "--- Preverjanje entropije ---" cat /proc/sys/kernel/random/entropy_avail # Pričakovan rezultat: > 3000 # 2. Generacija Root-CA ključa echo "" echo "--- Generacija ključa ---" # ECDSA P-384 (klasično) openssl ecparam -genkey -name secp384r1 -noout -out root-ca-ecdsa.key echo "ECDSA P-384: $(openssl ec -in root-ca-ecdsa.key -text -noout 2>&1 | head -1)" # ML-DSA-87 (post-kvantno) - če OpenSSL 3.6+ openssl genpkey -algorithm ML-DSA-87 -out root-ca-mldsa.key 2>/dev/null if [ $? -eq 0 ]; then echo "ML-DSA-87: Generiran" else echo "ML-DSA-87: Ni na voljo (OpenSSL < 3.6)" fi # 3. Zapisovanje prstnih odtisov ključev echo "" echo "--- Prstni odtisi ključev ---" openssl ec -in root-ca-ecdsa.key -pubout -outform DER 2>/dev/null | sha256sum # Zapisati: SHA256 = ... # 4. Ustvarjanje CSR (za navzkrižno potrditev ali samopodpis) echo "" echo "--- Generacija CSR ---" openssl req -new -key root-ca-ecdsa.key \ -out root-ca.csr \ -subj "/CN=Example Organization Root CA/O=Example Organization/C=DE" # 5. Ustvarjanje samopodpisanega Root echo "" echo "--- Samopodpisan certifikat ---" openssl x509 -req -in root-ca.csr \ -signkey root-ca-ecdsa.key \ -out root-ca.pem \ -days 9125 \ -extfile root-ca.ext \ -sha384 # Preverjanje certifikata openssl x509 -in root-ca.pem -text -noout | head -30
Faza 4: Delitev ključa (30 min)
# Shamirjeva delitev skrivnosti echo "=== DELITEV KLJUČA ===" # 5 deležev, 3 potrebni za obnovitev cat root-ca-ecdsa.key | ssss-split -t 3 -n 5 -w root-ca-share # Pisanje deležev na pametne kartice/USB for i in 1 2 3 4 5; do echo "Delež $i → Pametna kartica/USB $i" # cp root-ca-share-$i /mnt/smartcard-$i/ done # Varno brisanje originalnega ključa shred -vfz -n 3 root-ca-ecdsa.key rm root-ca-ecdsa.key
Faza 5: Preverjanje (20 min)
# 1. Ali certifikat lahko podpisuje? echo "Testni podpis..." echo "test" | openssl dgst -sha384 -sign root-ca-ecdsa.key 2>/dev/null && echo "OK" # 2. Ali se deleži ključa lahko združijo? ssss-combine -t 3 << EOF <Delež-1> <Delež-2> <Delež-3> EOF > /tmp/restored.key # Primerjava diff <(openssl ec -in /tmp/restored.key -pubout) <(openssl ec -in root-ca-ecdsa.key -pubout)
Faza 6: Hramba (15 min)
1. Zapečatenje deležev ključev v vreče z dokazilom poseganja 2. Vsak kriptografski uradnik prejme svoj delež 3. Rezervni deleži v sef(ih) 4. Zapisovanje serijskih številk vrečk 5. Zbiranje podpisov ob predaji
Faza 7: Zaključek (15 min)
1. Varno brisanje vseh začasnih datotek shred -vfz -n 3 /tmp/*.key /tmp/*.pem 2. Izklop sistema (brez povezave) 3. Dokončanje zapisnika: - Končni čas - Vsi podpisi - Indeks fotografij/videa 4. Zapečatenje in arhiviranje zapisnika
Predloga zapisnika
ZAPISNIK CEREMONIJE KLJUČEV =========================== ID ceremonije: KC-2024-001 Datum: ________________ Začetek: _______ Konec: _______ Kraj: ____________________________ UDELEŽENCI: | Ime | Vloga | Št. dokumenta | Podpis | |-----|-------|---------------|--------| | | | | | | | | | | | | | | | | | | | | PODROBNOSTI KLJUČA: - Algoritem: ECDSA P-384 / ML-DSA-87 - ID ključa: _______________ - Zgoščena vrednost javnega ključa (SHA256): ______________________ - Serijska št. certifikata: _______________ - Veljavnost: _______ do _______ DELEŽI KLJUČA: | Delež | Št. vrečke | Skrbnik | Podpis ob predaji | |-------|------------|---------|-------------------| | 1 | | | | | 2 | | | | | 3 | | | | | 4 | | | | | 5 | | | | PREVERJANJE: [ ] Entropija > 3000 [ ] Ključ uspešno generiran [ ] Certifikat samopodpisan [ ] Deleži ključa ustvarjeni (3-od-5) [ ] Deleži preverjeni [ ] Originalni ključ izbrisan [ ] Deleži razdeljeni in zapečateni ZAKLJUČEK: [ ] Začasne datoteke izbrisane [ ] Sistem izklopljen [ ] Zapisnik popoln _______________________________ Podpis vodje ceremonije _______________________________ Podpis revizorja/priče
HSM ceremonija ključev
# Luna HSM ceremonija ključev /usr/safenet/lunaclient/bin/lunacm << 'EOF' # Ustvarjanje particije partition create -label "Root-CA" # Generacija ključa partition contents -slot 0 generateKeyPair -keyType ECDSA -curvetype secp384r1 -label "root-ca-2024" # Ustvarjanje varnostne kopije partition backup -serialNumber <HSM-Serial> EOF
Kontrolni seznam
| # | Kontrolna točka | |
| — | —————– | — |
| 1 | Prisotne vsaj 3 osebe | |
| 2 | Identitete preverjene | |
| 3 | Sistem brez povezave preverjen | |
| 4 | Entropija zadostna | |
| 5 | Ključ generiran | |
| 6 | Deleži ustvarjeni in razdeljeni | |
| 7 | Deleži preverjeni | |
| 8 | Originalni ključ varno izbrisan | |
| 9 | Zapisnik podpisan | |
| 10 | Zapisnik arhiviran |
Povezana dokumentacija
- CA varnostna kopija/obnova – Obnovitev ključev
- Preklic v sili – Ob kompromitaciji
- Skladnost – Regulativne zahteve
« ← CA varnostna kopija/obnova | → Preklic v sili »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: dne 30.01.2026 ob 07:26