====== 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//