Inhaltsverzeichnis

Scenarij 3.4: Izdajanje S/MIME certifikata

Kategorija: Izdajanje certifikatov
Kompleksnost: ⭐⭐⭐ (Srednje-visoka)
Predpogoji: CSR z e-poštnim naslovom
Predviden čas: 10-15 minut


Opis

Ta scenarij opisuje izdajanje S/MIME certifikata za šifriranje in podpisovanje e-pošte. S/MIME certifikati omogočajo varno e-poštno komunikacijo z digitalnimi podpisi in šifriranjem.

Funkcije:


Primer kode (C#)

using WvdS.Security.Cryptography.X509Certificates.Extensions.PQ;
 
using var ctx = PqCryptoContext.Initialize();
 
var caCert = ctx.LoadCertificate("user-ca.crt.pem");
var caKey = ctx.LoadPrivateKey("user-ca.key.pem", "CaPassword!");
 
var csr = ctx.LoadCertificateRequest(File.ReadAllText("smime.csr.pem"));
 
// Izdajanje S/MIME certifikata
var smimeCert = ctx.IssueCertificate(
    csr,
    issuerCert: caCert,
    issuerKey: caKey,
    serialNumber: ctx.GenerateSerialNumber(),
    validDays: 365,
    extensions: new ExtBuilder()
        .BasicConstraints(ca: false, critical: true)
        // Key Usage za podpisovanje IN šifriranje
        .KeyUsage(
            KeyUsageFlags.DigitalSignature |
            KeyUsageFlags.KeyEncipherment |
            KeyUsageFlags.DataEncipherment,
            critical: true
        )
        // Extended Key Usage: Email Protection
        .ExtendedKeyUsage(ExtKeyUsage.EmailProtection)
        // E-poštni naslov kot SAN (OBVEZNO za S/MIME!)
        .SubjectAlternativeName(new[] {
            "email:max.mustermann@example.com"
        })
        .SubjectKeyIdentifier(csr.PublicKey)
        .AuthorityKeyIdentifier(caCert)
        .Build()
);
 
smimeCert.ToPemFile("smime.crt.pem");
 
// PFX za uvoz v e-poštni odjemalec
var pfx = ctx.ExportToPfx(smimeCert, smimeKey, new[] { caCert }, "Password!");
File.WriteAllBytes("smime.pfx", pfx);

Tipi S/MIME certifikatov

Tip Validacija Uporaba
Class 1 Nadzor e-pošte Osebno, brezplačno
Class 2 Preverjanje identitete Poslovno
Class 3 Razširjeno preverjanje Enterprise, kvalificirano

Podrobnosti Key Usage

Zastavica Uporaba pri S/MIME
digitalSignature Podpisovanje e-pošte
keyEncipherment Šifriranje ključa seje (RSA)
dataEncipherment Neposredno šifriranje podatkov
nonRepudiation Pravno zavezujoč podpis (opcijsko)

Uvoz v Outlook / Thunderbird

1. Dvoklik na PFX datoteko
2. Sledite čarovniku za uvoz
3. Vnesite geslo
4. "Samodejno izberi shrambo"
5. V Outlook: Datoteka → Možnosti → Središče zaupanja → Varnost e-pošte

Povezani scenariji

Povezava Scenarij Opis
Povezano 8.1 Podpisovanje dokumenta E-pošta kot dokument
Povezano 7.1 Hibridno šifriranje Šifriranje e-pošte
Predpogoj 2.2 Client-CSR CSR z e-pošto

« ← 3.3 Code-Signing | ↑ Pregled certifikatov | 3.5 Wildcard certifikat → »


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