Scenarij 4.2: Ponovna izdaja ključa (Rekey)

Kategorija: Upravljanje certifikatov
Kompleksnost: Visoka
Predpogoji: Obstoječi certifikat
Ocenjeni čas: 20-30 minut


Opis

Ta scenarij opisuje ponovno izdajo ključa (Rekey) - izdajo novega certifikata z novim parom ključev. Ponovna izdaja je potrebna ob sumu ogroženosti, nadgradnjah algoritmov ali povečanju moči ključa.

Kdaj je ponovna izdaja potrebna:

  • Sum ogroženosti ključa
  • Migracija z RSA na ML-DSA (post-kvantno)
  • Povečanje dolžine ključa
  • Rutinska rotacija (varnostna politika)
  • Iztek maksimalne življenjske dobe ključa

Potek dela

flowchart LR OLD[Stari certifikat] --> GEN[Nov par ključev] GEN --> CSR[Nov CSR] CSR --> ISSUE[Nov certifikat] ISSUE --> DEPLOY[Namestitev] DEPLOY --> REVOKE[Preklic starega] GEN --> BACKUP[Varnostna kopija ključa] style GEN fill:#fff3e0 style ISSUE fill:#e8f5e9


Primer kode (C#)

using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
 
using var ctx = PqCryptoContext.Initialize();
 
// Nalaganje starega certifikata (za Subject/SANs)
var oldCert = ctx.LoadCertificate("server.crt.pem");
 
// Nalaganje CA
var caCert = ctx.LoadCertificate("intermediate-ca.crt.pem");
var caKey = ctx.LoadPrivateKey("intermediate-ca.key.pem", "CaPassword!");
 
// NOVO generiranje para ključev (PQ nadgradnja!)
using var newKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65);
 
// Prevzem Subject in SANs iz starega certifikata
var oldSans = ctx.GetSubjectAlternativeNames(oldCert);
 
// Nov CSR z novim ključem
var csr = ctx.CreateCertificateRequest(
    newKey,
    oldCert.SubjectName,  // Prevzem Subject
    new ExtBuilder()
        .SubjectAlternativeName(oldSans)  // Prevzem SANs
        .Build()
);
 
// Izdaja novega certifikata
var newCert = ctx.IssueCertificate(
    csr,
    issuerCert: caCert,
    issuerKey: caKey,
    serialNumber: ctx.GenerateSerialNumber(),
    validDays: 365,
    extensions: new ExtBuilder()
        .BasicConstraints(ca: false, critical: true)
        .KeyUsage(KeyUsageFlags.DigitalSignature | KeyUsageFlags.KeyEncipherment)
        .ExtendedKeyUsage(ExtKeyUsage.ServerAuth)
        .SubjectKeyIdentifier(newKey.PublicKey)  // NOV SKI!
        .AuthorityKeyIdentifier(caCert)
        .CrlDistributionPoint("http://crl.example.com/intermediate.crl")
        .Build()
);
 
// Shranjevanje
newCert.ToPemFile("server-rekeyed.crt.pem");
newKey.ToEncryptedPemFile("server-rekeyed.key.pem", "NewKeyPassword!");
 
Console.WriteLine("Ponovna izdaja končana:");
Console.WriteLine($"  Stari algoritem: {oldCert.PublicKey.Oid.FriendlyName}");
Console.WriteLine($"  Nov algoritem: ML-DSA-65");
Console.WriteLine($"  Stari SKI: {oldCert.GetSubjectKeyIdentifier()}");
Console.WriteLine($"  Nov SKI: {newCert.GetSubjectKeyIdentifier()}");

PQ migracija: RSA na ML-DSA

Za migracijo s klasičnih na post-kvantne algoritme:

// Hibridna ponovna izdaja: RSA + ML-DSA vzporedno
public class HybridRekey
{
    public static (X509Certificate2 classical, X509Certificate2 pq) PerformHybridRekey(
        X509Certificate2 oldRsaCert,
        PqCryptoContext ctx,
        X509Certificate2 caCert,
        AsymmetricAlgorithm caKey)
    {
        // 1. Obnova RSA ključa (prehodna faza)
        using var newRsaKey = RSA.Create(4096);
        var rsaCsr = ctx.CreateCertificateRequest(newRsaKey, oldRsaCert.SubjectName);
        var rsaCert = ctx.IssueCertificate(rsaCsr, caCert, caKey, validDays: 365);
 
        // 2. Ustvarjanje ML-DSA ključa (prihodnost)
        using var mlDsaKey = ctx.GenerateKeyPair(PqAlgorithm.MlDsa65);
        var pqCsr = ctx.CreateCertificateRequest(mlDsaKey, oldRsaCert.SubjectName);
        var pqCert = ctx.IssueCertificate(pqCsr, caCert, caKey, validDays: 365);
 
        return (rsaCert, pqCert);
    }
}

Panožne zahteve za ponovno izdajo

Panoga Maks. življenjska doba ključa Sprožilec ponovne izdaje Posebnost
Finančni sektor 2 leti Politika HSM Skladnost FIPS 140-3
Zdravstvo 3 leta Ugotovitev revizije Skladnost DiGAV
Energetika/SCADA 5 let Vzdrževalno okno Zmožnost dela brez povezave
Avtomobilska Življenjska doba vozila Varnostna posodobitev OTA mehanizem

Kontrolni seznam ponovne izdaje

Pred ponovno izdajo:

  1. [ ] Varnostna kopija starega ključa (če je še potreben)
  2. [ ] Identifikacija vseh sistemov, ki uporabljajo certifikat
  3. [ ] Priprava načrta namestitve
  4. [ ] Priprava načrta povrnitve
  5. [ ] Sporočanje vzdrževalnega okna

Po ponovni izdaji:

  1. [ ] Namestitev novega certifikata na vse sisteme
  2. [ ] Test povezav
  3. [ ] Preklic starega certifikata
  4. [ ] Varno uničenje starega ključa
  5. [ ] Posodobitev dokumentacije

Povezani scenariji

Povezava Scenarij Opis
Alternativa 4.1 Obnova Isti ključ
Naslednji korak 6.4 Preklic Stari certifikat
Predpogoj 11.1 Generiranje ključev Nov ključ
Povezano 11.5 Uničenje ključev Brisanje starega ključa

« ← 4.1 Obnova | ↑ Pregled upravljanja | 4.3 Arhiviranje → »


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

Zuletzt geändert: dne 30.01.2026 ob 07:44