Inhaltsverzeichnis
Key Ceremony
Svrha: Sigurno, revizijsko generiranje CA ključeva
Sudionici: Minimalno 3-4 osobe (podijeljena kontrola)
Trajanje: 2-4 sata
Formalni postupak za generiranje CA ključeva s podijeljenom odgovornošću i revizijskim tragom.
Zašto Key Ceremony?
| Razlog | Opis |
| ——– | —— |
| Usklađenost | ISO 27001, BSI-Grundschutz, WebTrust |
| Podijeljena kontrola | Nitko nema potpuni pristup |
| Revizijska sposobnost | Dokumentirani, provjerljivi proces |
| Integritet | Dokaz ispravnog generiranja ključeva |
Uloge
flowchart LR
subgraph ROLES["ULOGE"]
R1[Voditelj ceremonije]
R2[Crypto Officer 1]
R3[Crypto Officer 2]
R4[Revizor/Svjedok]
end
subgraph KEYS["KLJUČEVI"]
K1[HSM Admin PIN]
K2[Partition PIN]
K3[Smartcard 1]
K4[Smartcard 2]
end
R1 --> K1
R2 --> K2 & K3
R3 --> K4
R4 -.->|Promatra| R1 & R2 & R3
| Uloga | Odgovornost | Min. broj |
| ——- | ————- | ———– |
| Voditelj ceremonije | Vodi proces, dokumentira | 1 |
| Crypto Officer | Drži Key Share, izvršava akcije | 2+ |
| Revizor/Svjedok | Promatra, potpisuje zapisnik | 1 |
| IT Security | Odobrava, nadzire usklađenost | 1 (opciono) |
Priprema
Kontrolna lista 24h prije
| # | Zadatak | Odgovoran | Gotovo |
| — | ——— | ———– | ——– |
| 1 | Rezervirati prostoriju (bez prozora, CCTV) | Voditelj | ☐ |
| 2 | Pripremiti HSM/Air-Gap sustav | IT | ☐ |
| 3 | Sudionici potvrđeni | Voditelj | ☐ |
| 4 | Pripremiti Smartcards/USB-ove | Voditelj | ☐ |
| 5 | Ispisati predložak zapisnika | Voditelj | ☐ |
| 6 | Organizirati fotografa/video (opciono) | Voditelj | ☐ |
Materijal
- Air-Gap laptop ili HSM
- Smartcards za Key Shares
- USB-ovi (novi, zapečaćeni)
- Kamera za dokumentaciju
- Tamper-Evident vrećice
- Obrasci zapisnika
- Trajne olovke
Tijek ceremonije
Faza 1: Otvaranje (15 Min)
1. Identificirati sve sudionike (provjera osobne iskaznice) 2. Započeti zapisnik s: - Datum, vrijeme, mjesto - Svi prisutni (ime, uloga, potpis) 3. Predati mobitele 4. Objasniti svrhu ceremonije 5. Potvrditi uloge
Faza 2: Verifikacija hardvera (30 Min)
# Provjera Air-Gap sustava # 1. Mreža deaktivirana? ip link show # Nema aktivnih sučelja # 2. Provjera BIOS-boot-loga dmesg | grep -i network # 3. Provjera statusa HSM (ako se koristi) /opt/hsm/bin/status # Očekivani rezultat: Uninitialized ili Ready
Faza 3: Generiranje ključeva (60 Min)
#!/bin/bash # key-ceremony-generate.sh echo "=== GENERIRANJE ROOT CA KLJUČA ===" echo "Datum: $(date -Iseconds)" echo "Sustav: $(hostname)" # 1. Provjera kvalitete entropije echo "" echo "--- Provjera entropije ---" cat /proc/sys/kernel/random/entropy_avail # Očekivani rezultat: > 3000 # 2. Generiranje Root-CA ključa echo "" echo "--- Generiranje ključa ---" # ECDSA P-384 (klasični) 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-Quantum) - ako je 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: Generirano" else echo "ML-DSA-87: Nije dostupno (OpenSSL < 3.6)" fi # 3. Zapisivanje Key-Fingerprints echo "" echo "--- Key Fingerprints ---" openssl ec -in root-ca-ecdsa.key -pubout -outform DER 2>/dev/null | sha256sum # Zapisati: SHA256 = ... # 4. Stvaranje CSR-a echo "" echo "--- Generiranje CSR-a ---" openssl req -new -key root-ca-ecdsa.key \ -out root-ca.csr \ -subj "/CN=Example Organization Root CA/O=Example Organization/C=HR" # 5. Stvaranje samopotpisanog Root certifikata echo "" echo "--- Samopotpisani certifikat ---" openssl x509 -req -in root-ca.csr \ -signkey root-ca-ecdsa.key \ -out root-ca.pem \ -days 9125 \ -extfile root-ca.ext \ -sha384 # Provjera certifikata openssl x509 -in root-ca.pem -text -noout | head -30
Faza 4: Podjela ključa (30 Min)
# Shamir Secret Sharing echo "=== PODJELA KLJUČA ===" # 5 Shares, 3 potrebna za vraćanje cat root-ca-ecdsa.key | ssss-split -t 3 -n 5 -w root-ca-share # Zapisivanje Shares na Smartcards/USB for i in 1 2 3 4 5; do echo "Share $i -> Smartcard/USB $i" done # Sigurno brisanje originalnog ključa shred -vfz -n 3 root-ca-ecdsa.key rm root-ca-ecdsa.key
Faza 5: Verifikacija (20 Min)
# 1. Može li certifikat potpisati? echo "Test potpisa..." echo "test" | openssl dgst -sha384 -sign root-ca-ecdsa.key 2>/dev/null && echo "OK" # 2. Mogu li se Key Shares kombinirati? ssss-combine -t 3 << EOF <Share-1> <Share-2> <Share-3> EOF > /tmp/restored.key
Faza 6: Pohrana (15 Min)
1. Zapečatiti Key Shares u Tamper-Evident vrećice 2. Svaki Crypto Officer dobiva svoj Share 3. Backup Shares u sef(ove) 4. Zapisati serijske brojeve vrećica 5. Prikupiti potpise primopredaje
Faza 7: Zatvaranje (15 Min)
1. Sigurno obrisati sve privremene datoteke shred -vfz -n 3 /tmp/*.key /tmp/*.pem 2. Isključiti sustav (Air-Gap) 3. Završiti zapisnik: - Završno vrijeme - Svi potpisi - Indeks fotografija/videa 4. Zapečatiti i arhivirati zapisnik
Predložak zapisnika
ZAPISNIK KEY CEREMONY ===================== ID ceremonije: KC-2024-001 Datum: ________________ Početak: _______ Završetak: _______ Mjesto: ____________________________ SUDIONICI: | Ime | Uloga | ID br. | Potpis | |-----|-------|--------|--------| | | | | | | | | | | | | | | | DETALJI KLJUČA: - Algoritam: ECDSA P-384 / ML-DSA-87 - Key-ID: _______________ - Hash javnog ključa (SHA256): ______________________ - Serijski broj certifikata: _______________ - Valjanost: _______ do _______ KEY SHARES: | Share | Br. vrećice | Povjerenik | Potpis primopredaje | |-------|-------------|------------|---------------------| | 1 | | | | | 2 | | | | | 3 | | | | | 4 | | | | | 5 | | | | VERIFIKACIJA: [ ] Entropija > 3000 [ ] Ključ uspješno generiran [ ] Certifikat samopotpisan [ ] Key Shares stvoreni (3-of-5) [ ] Shares verificirani [ ] Originalni ključ obrisan [ ] Shares distribuirani i zapečaćeni ZATVARANJE: [ ] Privremene datoteke obrisane [ ] Sustav isključen [ ] Zapisnik potpun _______________________________ Voditelj ceremonije - Potpis _______________________________ Revizor/Svjedok - Potpis
Kontrolna lista
| # | Točka provjere | Gotovo |
| — | —————- | ——– |
| 1 | Minimalno 3 osobe prisutne | ☐ |
| 2 | Identiteti verificirani | ☐ |
| 3 | Air-Gap sustav provjeren | ☐ |
| 4 | Dovoljna entropija | ☐ |
| 5 | Ključ generiran | ☐ |
| 6 | Shares stvoreni i distribuirani | ☐ |
| 7 | Shares verificirani | ☐ |
| 8 | Originalni ključ sigurno obrisan | ☐ |
| 9 | Zapisnik potpisan | ☐ |
| 10 | Zapisnik arhiviran | ☐ |
Povezana dokumentacija
- CA Backup/Restore - Vraćanje ključeva
- Hitni opoziv - Pri kompromitaciji
- Usklađenost - Regulatorni zahtjevi
« <- CA Backup/Restore | -> Hitni opoziv »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: 30.01.2026. u 01:39