====== Scenario 3.4: Emettere certificato S/MIME ======
**Categoria:** [[.:start|Emettere certificati]] \\
**Complessità:** Media \\
**Prerequisiti:** CSR con indirizzo e-mail \\
**Tempo stimato:** 10-15 minuti
----
===== Descrizione =====
Questo scenario descrive l'emissione di un **certificato S/MIME** per crittografia e firma e-mail. I certificati S/MIME consentono comunicazione e-mail sicura attraverso firme digitali e crittografia.
**Funzioni:**
* Firma e-mail (autenticità, integrità)
* Crittografia e-mail (riservatezza)
* Verifica mittente
----
===== Esempio codice (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"));
// S/MIME-Zertifikat ausstellen
var smimeCert = ctx.IssueCertificate(
csr,
issuerCert: caCert,
issuerKey: caKey,
serialNumber: ctx.GenerateSerialNumber(),
validDays: 365,
extensions: new ExtBuilder()
.BasicConstraints(ca: false, critical: true)
// Key Usage für Signierung UND Verschlüsselung
.KeyUsage(
KeyUsageFlags.DigitalSignature |
KeyUsageFlags.KeyEncipherment |
KeyUsageFlags.DataEncipherment,
critical: true
)
// Extended Key Usage: Email Protection
.ExtendedKeyUsage(ExtKeyUsage.EmailProtection)
// E-Mail-Adresse als SAN (PFLICHT für S/MIME!)
.SubjectAlternativeName(new[] {
"email:max.mustermann@example.com"
})
.SubjectKeyIdentifier(csr.PublicKey)
.AuthorityKeyIdentifier(caCert)
.Build()
);
smimeCert.ToPemFile("smime.crt.pem");
// PFX für E-Mail-Client-Import
var pfx = ctx.ExportToPfx(smimeCert, smimeKey, new[] { caCert }, "Password!");
File.WriteAllBytes("smime.pfx", pfx);
----
===== Tipi di certificato S/MIME =====
^ Tipo ^ Validazione ^ Utilizzo ^
| Class 1 | Controllo e-mail | Personale, gratuito |
| Class 2 | Verifica identità | Business |
| Class 3 | Verifica estesa | Enterprise, qualificato |
----
===== Dettagli Key Usage =====
^ Flag ^ Utilizzo con S/MIME ^
| digitalSignature | Firmare e-mail |
| keyEncipherment | Crittografare session key (RSA) |
| dataEncipherment | Crittografare dati direttamente |
| nonRepudiation | Firma legalmente valida (opzionale) |
----
===== Import Outlook / Thunderbird =====
1. Doppio clic sul file PFX
2. Seguire assistente importazione
3. Inserire password
4. "Seleziona automaticamente archivio"
5. In Outlook: File → Opzioni → Centro protezione → Sicurezza e-mail
----
===== Scenari correlati =====
^ Relazione ^ Scenario ^ Descrizione ^
| **Correlato** | [[it:int:pqcrypt:szenarien:signaturen:dokument_signieren|8.1 Firmare documento]] | E-mail come documento |
| **Correlato** | [[it:int:pqcrypt:szenarien:verschluesselung:hybrid_encryption|7.1 Crittografia ibrida]] | Crittografia e-mail |
| **Prerequisito** | [[it:int:pqcrypt:szenarien:csr:csr_client|2.2 CSR Client]] | CSR con e-mail |
----
<< [[.:codesign_cert|← 3.3 Code-Signing]] | [[.:start|↑ Panoramica certificati]] | [[.:wildcard_cert|3.5 Certificato Wildcard →]] >>
{{tag>scenario certificato smime email crittografia firma}}
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//