S/MIME Parte 2: Firmato, Sigillato e Consegnato tramite SparkPost
·
31 dic 2018

Punti Chiave
Premessa: La Parte 2 passa dalla teoria S/MIME alla pratica, dimostrando come firmare e crittografare le email digitalmente utilizzando SparkPost come piattaforma di consegna.
Obiettivo: Fornire agli sviluppatori un flusso di lavoro leggero da riga di comando per firmare i messaggi in uscita, verificare le firme e (opzionalmente) crittografare i contenuti per destinatari specifici.
Punti salienti:
Configurazione: Installa gli strumenti dimostrativi open-source da GitHub (con controlli automatici Travis + pytest). Il file Pipfile gestisce tutte le dipendenze Python.
Chiavi del mittente:
Crea un certificato autofirmato o emesso da CA (
.p12) per la tua identità email.Dividilo in file privati (
.pem) e pubblici (.crt) da utilizzare con lo strumento di firma.
Firma:
Utilizza lo script incluso
sparkpostSMIME.pyper firmare i messaggi di prova (ad es.,tests/declaration.eml).Conferma visivamente le firme nei client come Thunderbird (icona del punto rosso).
Crittografia:
Ottieni il certificato pubblico di ciascun destinatario (
.crt).Esegui di nuovo lo strumento per produrre un messaggio firmato + crittografato.
I destinatari possono verificare e decrittografare utilizzando le loro chiavi private.
Consegna tramite SparkPost:
Configura un dominio di invio valido e una chiave API.
Invia messaggi attraverso l'API di SparkPost con tracciamento disabilitato per preservare l'integrità.
Utility bonus – mimeshow:
Mostra la struttura MIME RFC822 leggibile dall'uomo per debugging o ispezione.
Consigli pratici:
Mantieni i nomi dei file allineati con l'indirizzo del mittente.
Evita di modificare i corpi dei messaggi dopo la firma.
Usa Bcc solo per le copie di archiviazione - quei destinatari non possono decrittografare se la mail è crittografata su un singolo indirizzo a cui.
Punti salienti del Q&A
Perché utilizzare la firma S/MIME?
Autenticà il mittente e garantisce l'integrità del messaggio — i client come Thunderbird mostrano un indicatore visivo quando la firma è valida.
Come posso ottenere il mio certificato di mittente?
O firmare autonomamente tramite OpenSSL (per test) o ottenere un certificato affidabile da fornitori come Comodo (gratuito per uso non commerciale).
Posso crittografare messaggi per più destinatari?
Solo se hai la chiave pubblica di ciascun destinatario. Lo script demo cripta per l'indirizzo To singolo per impostazione predefinita.
Quali garanzie impediscono alle firme di rompersi durante il trasporto?
Lo strumento imposta le opzioni dell'API SparkPost per l'invio transazionale e disabilita il tracciamento delle aperture/clic, in modo che il payload passi attraverso senza modifiche.
Qual è il ruolo di mimeshow?
Analizza file di email grezzi e stampa la loro struttura multipart - utile per ispezionare le firme S/MIME, gli allegati e le intestazioni.
Cosa c'è dopo nella serie?
La parte 3 estende queste capacità S/MIME a piattaforme di email sicure on-premises come PowerMTA e Momentum.
Nella parte 1, abbiamo fatto un breve tour di S/MIME, esaminando la firma e la crittografia dei nostri flussi di messaggi su una serie di client di posta elettronica. I messaggi S/MIME possono essere firmati (fornendo prova dell'identità del mittente), crittografati (mantenendo segreto il corpo del messaggio) o entrambi.

In questo episodio, faremo:
Installare alcuni semplici strumenti da riga di comando per firmare e crittografare le email
Ottenere la tua chiave / certificato mittente per la firma
Inviare un messaggio firmato tramite SparkPost e guardare il messaggio ricevuto
Eventualmente, ottenere il certificato del destinatario per la crittografia
Inviare un messaggio firmato e crittografato tramite SparkPost e guardare il messaggio ricevuto
Provare un comodo strumento indipendente “mimeshow” per esaminare gli interni del file email.
OK – iniziamo!
Funzione bonus: visualizzazione delle parti MIME con “mimeshow”
1. Installa gli strumenti
2. Ottieni la tua chiave/certificato del mittente per la firma
3. Invia un messaggio firmato tramite SparkPost
4. Crittografare i messaggi
Ulteriori riflessioni e cose di cui essere consapevoli
Questo strumento adotta un approccio super semplice per raccogliere le chiavi necessarie – cerca semplicemente file nominati nella directory corrente. Disposizioni più complesse, come mantenere tutte le chiavi in un database, potrebbero essere facilmente aggiunte, ma volevo che il codice fosse il più semplice possibile.
Puoi includere altri destinatari con Cc: e Bcc: e verranno consegnati; questo potrebbe essere utile per fini di archiviazione. I messaggi firmati vengono ricevuti e possono essere visualizzati da altri destinatari completi di firma. Lo strumento rimuove l'intestazione Bcc: dal messaggio consegnato (come farebbe un client di posta desktop).
Per garantire che i messaggi passino attraverso SparkPost invariati (il che potrebbe compromettere la firma), lo strumento imposta le opzioni API per la posta “transazionale”, con tracciamento di apertura e clic disabilitato.
Se utilizzi la crittografia, tieni presente che lo strumento raccoglie il singolo indirizzo To: per questo. Gli altri destinatari possono decifrare il corpo del messaggio solo se possiedono la chiave privata del destinatario To:. Se stai semplicemente utilizzando destinatari secondari come registrazione delle consegne effettuate, ad esempio, potrebbe andare bene comunque.
Firmato, sigillato e consegnato... sei mio
Questa è la nostra rapida panoramica su come firmare, sigillare e inviare messaggi S/MIME tramite SparkPost. Promemoria veloce: il progetto demo è disponibile su GitHub, e ho cercato di renderlo facile da installare e utilizzare.










