Vzporedna operacija

Kompleksnost: Srednja
Trajanje: Neomejeno (dokler se klasičnega ne ugasne)
Tveganje: Nizko

Hkratno upravljanje klasičnega in post-kvantnega PKI za maksimalno združljivost.


Arhitektura

flowchart TB subgraph CLASSIC["KLASIČNI PKI"] CR[Klasični Root-CA] CI[Klasični Intermediate] CC[Klasični certifikati] end subgraph HYBRID["HIBRIDNI PKI"] HR[Hibridni Root-CA] HI[Hibridni Intermediate] HC[Hibridni certifikati] end subgraph CLIENTS["ODJEMALCI"] OLD[Podedovani odjemalci] NEW[Moderni odjemalci] end CR --> CI --> CC HR --> HI --> HC CC --> OLD HC --> NEW CC -.->|Nadomestno| NEW style CLASSIC fill:#ffebee style HYBRID fill:#e8f5e9


Kdaj vzporedna operacija?

Scenarij Priporočilo
———-————-
Podedovani sistemi, ki jih ni mogoče posodobiti Da vzporedno
Postopna migracija čez leta Da vzporedno
Regulativne zahteve za združljivost nazaj Da vzporedno
Greenfield / nov projekt Ne, neposredno hibridno
Vsi odjemalci posodobljivi Ne, hibridna migracija

Nastavitev

Struktura imenikov

/etc/pki/
├── classic/
│   ├── root-ca.pem
│   ├── intermediate-ca.pem
│   ├── intermediate-ca.key
│   ├── crl/
│   └── issued/
├── hybrid/
│   ├── root-ca.pem
│   ├── intermediate-ca.pem
│   ├── intermediate-ca.key
│   ├── crl/
│   └── issued/
└── scripts/
    ├── issue-classic.sh
    ├── issue-hybrid.sh
    └── issue-both.sh

Skripta za dvojno izdajo

#!/bin/bash
# /etc/pki/scripts/issue-both.sh
# Izda certifikat iz OBEH PKI-jev
 
CSR_FILE="$1"
OUTPUT_PREFIX="$2"
 
if [ -z "$CSR_FILE" ] || [ -z "$OUTPUT_PREFIX" ]; then
    echo "Uporaba: $0 <csr-datoteka> <predpona-izhoda>"
    exit 1
fi
 
# Izdaja klasičnega certifikata
echo "Izdajam klasični certifikat..."
openssl ca -config /etc/pki/classic/openssl.cnf \
    -in "$CSR_FILE" \
    -out "${OUTPUT_PREFIX}-classic.pem" \
    -days 365 \
    -batch
 
# Izdaja hibridnega certifikata
echo "Izdajam hibridni certifikat..."
/usr/local/bin/wvds-sign --mode hybrid \
    --ca /etc/pki/hybrid/intermediate-ca.pfx \
    --csr "$CSR_FILE" \
    --out "${OUTPUT_PREFIX}-hybrid.pem" \
    --days 365
 
echo "Končano:"
echo "  Klasični: ${OUTPUT_PREFIX}-classic.pem"
echo "  Hibridni: ${OUTPUT_PREFIX}-hybrid.pem"

Konfiguracija strežnika

Nginx: Dvojni certifikat

server {
    listen 443 ssl;
    server_name api.example.com;
 
    # Primarno: Hibridni certifikat
    ssl_certificate     /etc/ssl/certs/api-hybrid.pem;
    ssl_certificate_key /etc/ssl/private/api.key;
 
    # Nadomestno: Klasični certifikat (za stare odjemalce)
    # Opomba: Nginx podpira samo en certifikat na strežniški blok
    # Za pravi dvojni način: Ločeni strežniški bloki ali SNI
}
 
# Alternativa: Ločen strežnik za podedovano
server {
    listen 443 ssl;
    server_name api-legacy.example.com;
 
    ssl_certificate     /etc/ssl/certs/api-classic.pem;
    ssl_certificate_key /etc/ssl/private/api.key;
}

Apache: Dvojni certifikat

<VirtualHost *:443>
    ServerName api.example.com
 
    # Moderni odjemalci → Hibridno
    SSLCertificateFile    /etc/ssl/certs/api-hybrid.pem
    SSLCertificateKeyFile /etc/ssl/private/api.key
    SSLCertificateChainFile /etc/ssl/certs/hybrid-chain.pem
</VirtualHost>
 
<VirtualHost *:443>
    ServerName api-legacy.example.com
 
    # Podedovani odjemalci → Klasično
    SSLCertificateFile    /etc/ssl/certs/api-classic.pem
    SSLCertificateKeyFile /etc/ssl/private/api.key
    SSLCertificateChainFile /etc/ssl/certs/classic-chain.pem
</VirtualHost>

Upravljanje shrambe zaupanja

Odjemalci z obema CA

# Shramba zaupanja z obema Root-CA
cat /etc/pki/classic/root-ca.pem /etc/pki/hybrid/root-ca.pem > /etc/ssl/certs/ca-bundle.pem
 
# Ali posamično dodati
update-ca-trust extract

Windows shramba zaupanja

# Uvoz obeh Root-CA
Import-Certificate -FilePath "classic-root.cer" -CertStoreLocation Cert:\LocalMachine\Root
Import-Certificate -FilePath "hybrid-root.cer" -CertStoreLocation Cert:\LocalMachine\Root

CRL/OCSP za oba PKI

# CRL distribucijske točke
# Klasično: http://crl.example.com/classic/intermediate.crl
# Hibridno: http://crl.example.com/hybrid/intermediate.crl
 
# Nginx za distribucijo CRL
location /crl/classic/ {
    alias /etc/pki/classic/crl/;
    types { application/pkix-crl crl; }
}
 
location /crl/hybrid/ {
    alias /etc/pki/hybrid/crl/;
    types { application/pkix-crl crl; }
}

Nadzor

# Prometheus: Nadzor obeh PKI
scrape_configs:
  - job_name: 'pki-classic'
    static_configs:
      - targets: ['localhost:9793']
    params:
      path: ['/etc/pki/classic/issued/*.pem']
    relabel_configs:
      - target_label: pki
        replacement: 'classic'

  - job_name: 'pki-hybrid'
    static_configs:
      - targets: ['localhost:9793']
    params:
      path: ['/etc/pki/hybrid/issued/*.pem']
    relabel_configs:
      - target_label: pki
        replacement: 'hybrid'

Metrike nadzorne plošče:

Metrika Klasično Hibridno
——————-———-
Aktivni certifikati count(x509{pki=„classic“}) count(x509{pki=„hybrid“})
Potečejo < 30d count(…) count(…)
CRL naslednja posodobitev crl_next_update{pki=„classic“} crl_next_update{pki=„hybrid“}

Sledenje migraciji

#!/bin/bash
# migration-status.sh - Napredek migracije
 
echo "=== Status migracije PKI ==="
 
classic_count=$(find /etc/pki/classic/issued -name "*.pem" | wc -l)
hybrid_count=$(find /etc/pki/hybrid/issued -name "*.pem" | wc -l)
total=$((classic_count + hybrid_count))
 
if [ "$total" -gt 0 ]; then
    hybrid_percent=$((hybrid_count * 100 / total))
else
    hybrid_percent=0
fi
 
echo "Klasično:   $classic_count"
echo "Hibridno:   $hybrid_count"
echo "Skupaj:     $total"
echo "Migracija:  $hybrid_percent%"
 
# Grafična predstavitev
echo ""
echo -n "Napredek: ["
for i in $(seq 1 50); do
    if [ $i -le $((hybrid_percent / 2)) ]; then
        echo -n "█"
    else
        echo -n "░"
    fi
done
echo "] $hybrid_percent%"

Postopna ukinitev klasičnega

flowchart LR subgraph ACTIVE["AKTIVNO"] A1[Oba PKI aktivna] end subgraph TRANSITION["PREHOD"] T1[Klasično: samo obnova] T2[Hibridno: novi certifikati] end subgraph SUNSET["SONČNI ZAHOD"] S1[Klasično: samo še aktivno] S2[Ni novih klasičnih cert.] end subgraph END["KONEC"] E1[Klasično deaktivirano] end ACTIVE --> TRANSITION --> SUNSET --> END style ACTIVE fill:#e8f5e9 style END fill:#ffebee

Časovnica:

Faza Akcija Sprožilec
————–———–
Aktivno Oba PKI izdajata Začetek
Prehod Klasično samo obnova 80% hibridno
Sončni zahod Klasično samo poteka 95% hibridno
Konec Klasični CA brez povezave Vsi klasični potekli

Kontrolni seznam

# Kontrolna točka
—————–
1 Oba PKI vzpostavljena
2 Skripte za dvojno izdajo delujejo
3 Shrambe zaupanja vsebujejo oba CA
4 CRL/OCSP za oba na voljo
5 Nadzor za oba aktiven
6 Sledenje migraciji vzpostavljeno
7 Načrt ukinitve dokumentiran

Povezana dokumentacija


« ← Klasično → Hibridno | → Strategija povrnitve »


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: dne 30.01.2026 ob 07:30