S/MIME Parte 2: Firmato, Sigillato e Conseguito tramite SparkPost

Uccello

31 dic 2018

Email

1 min read

S/MIME Parte 2: Firmato, Sigillato e Conseguito tramite SparkPost

Conclusioni principali

    • Premessa: La Parte 2 passa dalla teoria alla pratica dell'S/MIME — dimostrando come firmare digitalmente e crittografare le email utilizzando SparkPost come piattaforma di consegna.

    • Obiettivo: Fornire agli sviluppatori un flusso di lavoro leggero da linea di comando per firmare i messaggi in uscita, verificare le firme e (facoltativamente) crittografare il contenuto per destinatari specifici.

    • Punti salienti:

      1. Configurazione: Installa gli strumenti demo open-source da GitHub (con controlli automatizzati Travis + pytest). Il Pipfile gestisce tutte le dipendenze di Python.

      2. 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) per l'uso dello strumento di firma.

      3. Firma:

        • Usa lo script sparkpostSMIME.py incluso per firmare i messaggi di test (es. tests/declaration.eml).

        • Conferma visivamente le firme in client come Thunderbird (icona del punto rosso).

      4. 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.

      5. Consegna tramite SparkPost:

        • Configura un dominio di invio valido e una chiave API.

        • Invia messaggi tramite l'API di SparkPost con il tracciamento disabilitato per preservarne l'integrità.

      6. Utilità bonus – mimeshow:

        • Visualizza una struttura MIME RFC822 leggibile dall'uomo per il debug o l'ispezione.

      7. Consigli pratici:

        • Mantieni i nomi dei file allineati con l'indirizzo From:.

        • Evita di modificare i corpi dei messaggi dopo la firma.

        • Usa Bcc solo per copie archivio — quei destinatari non possono decriptare se la mail è crittografata a un singolo indirizzo To.

Q&A Highlights

  • Perché utilizzare la firma S/MIME?

    Autentica 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 mittente?

    Auto-firmati tramite OpenSSL (per test) oppure ottieni un certificato affidabile da fornitori come Comodo (gratuito per uso non commerciale).

  • Posso criptare i messaggi per più destinatari?

    Solo se hai la chiave pubblica di ogni destinatario. Lo script dimostrativo cripta di default al singolo indirizzo To.

  • Quali misure di protezione impediscono alle firme di rompersi durante il transito?

    Lo strumento imposta le opzioni dell'API SparkPost per l'invio transazionale e disabilita il tracciamento di apertura/click, in modo che il payload passi senza modifiche.

  • Qual è il ruolo di mimeshow?

    Analizza i file email grezzi e stampa la loro struttura multipart — utile per ispezionare le firme S/MIME, gli allegati e le intestazioni.

  • Qual è il prossimo nella serie?

    Parte 3 estende queste funzionalità S/MIME a piattaforme di posta elettronica sicure locali come PowerMTA e Momentum.

Nella parte 1, abbiamo fatto un veloce tour di S/MIME, esaminando la firma e la crittografia dei nostri flussi di messaggi attraverso una varietà di client di posta. I messaggi S/MIME possono essere firmati (fornendo prova dell'identità del mittente), crittografati (tenendo segreto il corpo del messaggio), o entrambi.

Diagram illustrating email security layers showing the relationship between S/MIME signing, S/MIME encryption, and TLS connections in the email delivery process from message source through email server to recipient.

In questa puntata, noi:

  • Installeremo alcuni semplici strumenti da linea di comando per firmare e crittografare le email

  • Otterrai la tua chiave / certificato del mittente per la firma

  • Invierai un messaggio firmato tramite SparkPost, e esaminerai il messaggio ricevuto

  • Facoltativamente, otterrai il certificato del destinatario per la crittografia

  • Invierai un messaggio firmato e crittografato tramite SparkPost, e esaminerai il messaggio ricevuto

  • Prova un utile strumento autonomo "mimeshow" per esaminare i dettagli interni del file email.

OK – iniziamo!

1. Installa gli strumenti

Gli strumenti dimostrativi sono disponibili su GitHub, completi di istruzioni per l'installazione. Potresti notare il logo "build passing" – Travis e pytest controllano automaticamente lo stato del build. Nota che questi strumenti non sono ufficialmente supportati da SparkPost, ma ho cercato di renderli robusti e facili da usare.

Se hai una certa familiarità con Python e pip, l'installazione dovrebbe risultare abbastanza famigliare. Il Pipfile si occupa automaticamente delle dipendenze esterne per te. Una volta terminato, puoi verificare che tutto sia installato eseguendo

./sparkpostSMIME.py -h

Dovresti vedere il testo di aiuto amichevole. Successivamente, dobbiamo…

2. Ottieni la tua chiave mittente / certificato per la firma

Se hai già un file chiave per la tua identità di invio, puoi procedere oltre. Altrimenti, ecco due opzioni tra cui scegliere:

a) Chiave di test autogenerata / certificato (non validi esternamente)

Se stai solo testando, puoi creare certificati e chiavi "autogenerati" per un indirizzo email usando lo strumento da riga di comando openssl su Linux, seguendo una procedura come questa. Alla fine di quel processo, avrai un file smime.p12. Rinomina questo file per abbinarlo alla tua identità di invio, inclusi il simbolo @, ad esempio, alice@example.com.p12.

oppure

b) Chiavi / certificati validi esternamente

Se vuoi ottenere chiavi / certificati validi esternamente che ti permettano di firmare, c’è un elenco di fornitori qui. Ho trovato che Comodo funziona bene (gratuito per uso non commerciale), ed è più facile rispetto alla procedura di autocertificazione sopra. Segui il processo di registrazione, ricevi la tua mail di convalida, e assicurati di aprire il link in Firefox. Vai su Preferenze di Firefox / Privacy e sicurezza. Scorri fino a Certificati / Visualizza certificati:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Seleziona il tuo certificato, e usa l’opzione "Backup" per salvarlo come file nel formato PKCS12 (aggiungi l’estensione del file .p12 al tuo nome del file) che contiene la chiave privata e la catena del certificato pubblico.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Fornisci una password per proteggere il file .p12:

Certificate backup password entry dialog with password fields and strength meter


Genera file di chiave pubblica (.crt) e privata (.pem) separati

Che tu abbia usato a) o b), ora avrai un file .p12 per la tua identità di mittente. È un grande passo avanti – prendi un caffè ora!

Ora dobbiamo generare file di chiave pubblica e privata separati come questo – sostituendo il tuo indirizzo email personale con quello d'esempio. (Mac OSX e Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Dovrai inserire la password fornita in precedenza. Nota che quei backslash \ sono usati per escludere il segno @ – non per separare i nomi di un percorso di directory (quello è uno slash avanti / su Mac OSX e Linux).

Se stai usando Windows, ci sono implementazioni openssl disponibili come quella MINGW64 incorporata negli strumenti da riga di comando Git, ma ho trovato che tendeva semplicemente a bloccarsi. Probabilmente troverai più facile e veloce farlo su Linux e poi copiare i tuoi file. Questi stessi strumenti Git per Windows sono dotati di un ottimo client ssh che puoi usare per accedere a un box Linux, come un’istanza Amazon EC2.


2.1 Firmare un messaggio

C'è già un file di chiave/certificato provvisorio e un file di origine email nella directory di test per alice@example.com, quindi puoi ottenere qualche output anche prima di avere le tue chiavi. Basta digitare quanto segue:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

E otterrai:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Non puoi effettivamente inviare email da example.com via SparkPost a meno che tu non possieda quel dominio, quindi il passo successivo è usare la tua chiave e inviare un messaggio firmato dal tuo dominio.

Se hai già un file chiave per la tua identità di invio, puoi procedere oltre. Altrimenti, ecco due opzioni tra cui scegliere:

a) Chiave di test autogenerata / certificato (non validi esternamente)

Se stai solo testando, puoi creare certificati e chiavi "autogenerati" per un indirizzo email usando lo strumento da riga di comando openssl su Linux, seguendo una procedura come questa. Alla fine di quel processo, avrai un file smime.p12. Rinomina questo file per abbinarlo alla tua identità di invio, inclusi il simbolo @, ad esempio, alice@example.com.p12.

oppure

b) Chiavi / certificati validi esternamente

Se vuoi ottenere chiavi / certificati validi esternamente che ti permettano di firmare, c’è un elenco di fornitori qui. Ho trovato che Comodo funziona bene (gratuito per uso non commerciale), ed è più facile rispetto alla procedura di autocertificazione sopra. Segui il processo di registrazione, ricevi la tua mail di convalida, e assicurati di aprire il link in Firefox. Vai su Preferenze di Firefox / Privacy e sicurezza. Scorri fino a Certificati / Visualizza certificati:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Seleziona il tuo certificato, e usa l’opzione "Backup" per salvarlo come file nel formato PKCS12 (aggiungi l’estensione del file .p12 al tuo nome del file) che contiene la chiave privata e la catena del certificato pubblico.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Fornisci una password per proteggere il file .p12:

Certificate backup password entry dialog with password fields and strength meter


Genera file di chiave pubblica (.crt) e privata (.pem) separati

Che tu abbia usato a) o b), ora avrai un file .p12 per la tua identità di mittente. È un grande passo avanti – prendi un caffè ora!

Ora dobbiamo generare file di chiave pubblica e privata separati come questo – sostituendo il tuo indirizzo email personale con quello d'esempio. (Mac OSX e Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Dovrai inserire la password fornita in precedenza. Nota che quei backslash \ sono usati per escludere il segno @ – non per separare i nomi di un percorso di directory (quello è uno slash avanti / su Mac OSX e Linux).

Se stai usando Windows, ci sono implementazioni openssl disponibili come quella MINGW64 incorporata negli strumenti da riga di comando Git, ma ho trovato che tendeva semplicemente a bloccarsi. Probabilmente troverai più facile e veloce farlo su Linux e poi copiare i tuoi file. Questi stessi strumenti Git per Windows sono dotati di un ottimo client ssh che puoi usare per accedere a un box Linux, come un’istanza Amazon EC2.


2.1 Firmare un messaggio

C'è già un file di chiave/certificato provvisorio e un file di origine email nella directory di test per alice@example.com, quindi puoi ottenere qualche output anche prima di avere le tue chiavi. Basta digitare quanto segue:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

E otterrai:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Non puoi effettivamente inviare email da example.com via SparkPost a meno che tu non possieda quel dominio, quindi il passo successivo è usare la tua chiave e inviare un messaggio firmato dal tuo dominio.

Se hai già un file chiave per la tua identità di invio, puoi procedere oltre. Altrimenti, ecco due opzioni tra cui scegliere:

a) Chiave di test autogenerata / certificato (non validi esternamente)

Se stai solo testando, puoi creare certificati e chiavi "autogenerati" per un indirizzo email usando lo strumento da riga di comando openssl su Linux, seguendo una procedura come questa. Alla fine di quel processo, avrai un file smime.p12. Rinomina questo file per abbinarlo alla tua identità di invio, inclusi il simbolo @, ad esempio, alice@example.com.p12.

oppure

b) Chiavi / certificati validi esternamente

Se vuoi ottenere chiavi / certificati validi esternamente che ti permettano di firmare, c’è un elenco di fornitori qui. Ho trovato che Comodo funziona bene (gratuito per uso non commerciale), ed è più facile rispetto alla procedura di autocertificazione sopra. Segui il processo di registrazione, ricevi la tua mail di convalida, e assicurati di aprire il link in Firefox. Vai su Preferenze di Firefox / Privacy e sicurezza. Scorri fino a Certificati / Visualizza certificati:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Seleziona il tuo certificato, e usa l’opzione "Backup" per salvarlo come file nel formato PKCS12 (aggiungi l’estensione del file .p12 al tuo nome del file) che contiene la chiave privata e la catena del certificato pubblico.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Fornisci una password per proteggere il file .p12:

Certificate backup password entry dialog with password fields and strength meter


Genera file di chiave pubblica (.crt) e privata (.pem) separati

Che tu abbia usato a) o b), ora avrai un file .p12 per la tua identità di mittente. È un grande passo avanti – prendi un caffè ora!

Ora dobbiamo generare file di chiave pubblica e privata separati come questo – sostituendo il tuo indirizzo email personale con quello d'esempio. (Mac OSX e Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Dovrai inserire la password fornita in precedenza. Nota che quei backslash \ sono usati per escludere il segno @ – non per separare i nomi di un percorso di directory (quello è uno slash avanti / su Mac OSX e Linux).

Se stai usando Windows, ci sono implementazioni openssl disponibili come quella MINGW64 incorporata negli strumenti da riga di comando Git, ma ho trovato che tendeva semplicemente a bloccarsi. Probabilmente troverai più facile e veloce farlo su Linux e poi copiare i tuoi file. Questi stessi strumenti Git per Windows sono dotati di un ottimo client ssh che puoi usare per accedere a un box Linux, come un’istanza Amazon EC2.


2.1 Firmare un messaggio

C'è già un file di chiave/certificato provvisorio e un file di origine email nella directory di test per alice@example.com, quindi puoi ottenere qualche output anche prima di avere le tue chiavi. Basta digitare quanto segue:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

E otterrai:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Non puoi effettivamente inviare email da example.com via SparkPost a meno che tu non possieda quel dominio, quindi il passo successivo è usare la tua chiave e inviare un messaggio firmato dal tuo dominio.

3. Invia un messaggio firmato tramite SparkPost

Ora usiamo un dominio di invio reale, configurato secondo la Guida Utente Nuovo di SparkPost. Abbiamo il certificato del mittente e i file chiave nella directory corrente:

steve@thetucks.com.crt steve@thetucks.com.pem

Il file tests/declaration.eml è incluso nel progetto. È solo un file di testo, quindi puoi personalizzare l'indirizzo From: per adattarlo al tuo dominio di invio e l'indirizzo To: per adattarlo al tuo destinatario di prova. L'inizio del file è simile a questo:

To: Bob <bob.lumreeker@gmail.com> From: Steve <steve@thetucks.com> Subject: Here is our declaration MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Quando nel corso degli eventi umani diventa necessario …

Imposta la tua chiave API:

export SPARKPOST_API_KEY=<<Put your API key here>

Invia l'email:

./sparkpostSMIME.py tests/declaration.eml --sign --send_api

Vedrai:

Connessione aperta a https://api.sparkpost.com/api/v1 Inviando tests/declaration.eml From: Steve <steve@thetucks.com> To: Bob <bob.lumreeker@gmail.com> OK - in 1.15 secondi

Un secondo o giù di lì più tardi, l'email arriva nella inbox di Bob. Thunderbird la mostra con un punto rosso sulla busta, indicando una firma del mittente valida.

Thunderbird email inbox showing an email with a subject 'Here is our declaration'

Successo! Finisci quel caffè, te lo sei guadagnato. Se hai problemi, controlla che l'indirizzo From: nel file delle email corrisponda al nome dei tuoi file .crt e .pem.

4. Crittografia dei messaggi

Per crittografare un messaggio, hai bisogno della chiave pubblica del destinatario in forma di certificato. Questo è un file di testo che appare così:

Attributi della borsa   friendlyName: s COMODO CA Limited ID #2   localKeyID: 32 84 AB 9C 56 5C 80 C6 89 4D 40 46 DD D4 7C 71 E8 CD ED C1 subject=/emailAddress=bob.lumreeker@gmail.com issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Client Authentication and Secure Email CA -----BEGIN CERTIFICATE----- sembra caratteri casuali qui -----END CERTIFICATE-----

C'è un certificato destinatario fittizio per bob@example.com nella directory dei test, quindi puoi esercitarti con esso prima di avere un certificato reale:

cd tests ../sparkpostSMIME.py example_email1.eml --sign --encrypt

Vedrai:

To: Bob <bob@example.com>
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename=smime.p7m MIIRwQYJKoZIhvcNAQcDoIIRsjCCEa4CAQAxggKlMIICoQIBADCBijCBhDELMAkG :

Noterai che la lunghezza dell'output è abbastanza più lunga rispetto a un messaggio crittografato perché contiene molte informazioni extra oltre al messaggio criptato stesso.


4.1 Invio di un messaggio crittografato e firmato attraverso SparkPost

Inviamo un messaggio crittografato a un indirizzo email reale. Puoi seguire lo stesso processo di prima (auto-firmato o un provider come Comodo) per ottenere una chiave pubblica / certificato per i tuoi indirizzi destinatari. Hai bisogno solo del file .crt – il destinatario non deve mai darti la sua chiave privata (.p12 e .pem file).

Ho il file bob.lumreeker@gmail.com.crt per il mio destinatario previsto – che corrisponde all'indirizzo From: nel mio file.

Ecco il comando per l'invio:

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt --send_api

Vedo:

Connessione aperta a https://api.sparkpost.com/api/v1 Sending tests/declaration.eml From: Steve <steve@thetucks.com> To: Bob <bob.lumreeker@gmail.com> OK - in 1.168 secondi

La posta appare in Thunderbird con l'icona della firma “punto rosso” e l'icona del lucchetto crittografato.

Thunderbird email view with signature and encryption icons

Puoi inviare email basate su HTML complesse con collegamenti e immagini con la stessa facilità, come quella mostrata nella Parte 1. Alcuni client come Thunderbird chiedono il permesso per visualizzare collegamenti e immagini esterni dentro messaggi S/MIME crittografati, ma i messaggi solo firmati si visualizzano bene nei client inclusi Thunderbird e Gmail:

Avocado marketing email with guacamole in a blue bowl and product order sectionsGmail interface showing an HTML email with guacamole image and Avocado marketing content

Nota che il menu a discesa mostra “Indirizzo email verificato”.

Ulteriori pensieri e cose di cui essere consapevoli

Questo strumento adotta un approccio super-semplice per ottenere le chiavi necessarie – cerca semplicemente file nominati nella directory corrente. Arrangiamenti più complessi, come mantenere tutte le chiavi in un database, potrebbero essere facilmente aggiunti, 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 scopi 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 inalterati (il che potrebbe interrompere la firma), lo strumento imposta le opzioni API per mailing "transactional", con monitoraggio delle aperture e dei clic disabilitato.

Se utilizzi la crittografia, tieni presente che lo strumento rileva il singolo indirizzo To: per quello. Gli altri destinatari possono decodificare il corpo del messaggio solo se dispongono della chiave privata del destinatario To:. Se stai solo usando destinatari secondari come record di consegne effettuate, ad esempio, potrebbe comunque andare bene.

Firmato, sigillato consegnato... sono tuo

Ecco una nostra rapida panoramica su come firmare, sigillare e consegnare messaggi S/MIME tramite SparkPost. Promemoria veloce: il progetto demo è disponibile su GitHub, e ho cercato di renderlo facile da installare e utilizzare.

Funzionalità bonus: visualizzare le parti MIME con "mimeshow"

I file multiparte MIME RFC822 sono piuttosto complessi da leggere per gli esseri umani. Il progetto include uno strumento autonomo chiamato mimeshow per rendere questo più facile.

Questo prende qualsiasi file email che hai (non solo quelli S/MIME) e mostra la struttura interna. Ecco un esempio:

./mimeshow.py testcases/img_and_attachment.eml

Vedrai:

To Bob <bob.lumreeker@gmail.com>
From Steve <steve@thetucks.com> 
Subject Testing attachments etc 
MIME-Version 1.0
Content-Type multipart/mixed; boundary="------------7D48652042860D0098C65210"
Content-Language en-GB
Content-Type multipart/alternative; boundary="------------58C0BF87598336550D70EB95" 
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 7bit
Content-Transfer-Encoding quoted-printable 
Content-Type text/html; charset="utf-8"
Content-Type application/pdf; name="sparkpost-datasheet-tam-technical-account-management.pdf" 
Content-Transfer-Encoding base64
Content-Disposition attachment; filename="sparkpost-datasheet-tam-technical-account-management.pdf"

Puoi anche usarlo come filtro per fornire un riepilogo leggibile da esseri umani dell'output di sparkpostSMIME:

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt | ./mimeshow.py


Vedrai:

To Bob <bob.lumreeker@gmail.com>  
From Steve <steve@thetucks.com>
Subject Here is our declaration 
Content-Language en-GB
MIME-Version 1.0
Content-Type application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m
Content-Transfer-Encoding base64
Content-Disposition attachment; filename=smime.p7m

Finalmente…

Per ricapitolare – abbiamo installato alcuni semplici strumenti da riga di comando per firmare e crittografare le email (il GitHub repo include istruzioni complete per l'installazione).

Abbiamo ottenuto la nostra chiave / certificato del mittente per firmare e inviato un messaggio firmato tramite SparkPost. Abbiamo ottenuto un certificato del destinatario per la crittografia, quindi abbiamo inviato un messaggio firmato e crittografato tramite SparkPost.

Infine, abbiamo provato l'utile strumento autonomo “mimeshow” per esaminare gli interni dei file email.

Questo è tutto per ora! Nel nostro prossimo episodio, ti mostreremo come estendere queste capacità S/MIME a piattaforme email sicure on-premises come PowerMTA e Momentum. A presto!

Altre notizie

Leggi di più da questa categoria

A person is standing at a desk while typing on a laptop.

La piattaforma nativa AI completa che si adatta al tuo business.

© 2025 Bird

A person is standing at a desk while typing on a laptop.

La piattaforma nativa AI completa che si adatta al tuo business.

© 2025 Bird