Erreichen

Grow

Manage

Automate

Erreichen

Grow

Manage

Automate

S/MIME Teil 2: Signiert, versiegelt und zugestellt über SparkPost

Vogel

31.12.2018

E-Mail

1 min read

S/MIME Teil 2: Signiert, versiegelt und zugestellt über SparkPost

Vogel

31.12.2018

E-Mail

1 min read

S/MIME Teil 2: Signiert, versiegelt und zugestellt über SparkPost

In Teil 1 hatten wir eine kurze Einführung in S/MIME, wobei wir uns das Signieren und die Verschlüsselung unserer Nachrichtenströme über eine Reihe von E-Mail-Clients angesehen haben. S/MIME-Nachrichten können signiert werden (was den Nachweis der Identität des Absenders erbringt), verschlüsselt werden (um den Nachrichteninhalt geheim zu halten) oder beides.

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 dieser Folge werden wir:

  • Einige einfache Befehlszeilentools zum Signieren und Verschlüsseln von E-Mails installieren

  • Ihren Sender-Schlüssel/Zertifikat zum Signieren erhalten

  • Eine signierte Nachricht über SparkPost senden und die empfangene Nachricht ansehen

  • Optional: Ihr Empfängerzertifikat für die Verschlüsselung erhalten

  • Eine signierte und verschlüsselte Nachricht über SparkPost senden und die empfangene Nachricht ansehen

  • Ein praktisches eigenständiges Tool „mimeshow“ ausprobieren, um sich die E-Mail-Dateiinterna anzusehen.

OK – los geht's!

1. Installiere die Tools

Die Demonstrationswerkzeuge befinden sich in Github hier, komplett mit Installationsanweisungen. Möglicherweise bemerken Sie das „build passing“-Logo – Travis und pytest überprüfen automatisch den Build-Status. Beachten Sie, dass diese Tools nicht offiziell von SparkPost unterstützt werden, aber ich habe versucht, sie robust und benutzerfreundlich zu gestalten.

Wenn Sie mit Python und pip etwas vertraut sind, sollte die Installation ziemlich vertraut wirken. Die Pipfile kümmert sich automatisch um die externen Abhängigkeiten. Sobald es fertig ist, können Sie überprüfen, ob alles installiert ist, indem Sie

./sparkpostSMIME.py -h

laufen lassen. Sie sollten den freundlichen Hilfetext sehen. Als Nächstes müssen wir …

2. Holen Sie sich Ihren Sender-Schlüssel / Ihr Zertifikat für die Signierung

Wenn Sie bereits eine Schlüsseldatei für Ihre Sendeidentität haben, können Sie diesen Schritt überspringen. Andernfalls stehen Ihnen zwei Optionen zur Auswahl:

a) Selbstsignierter Testschlüssel / Zertifikat (nicht extern gültig)

Wenn Sie nur testen, können Sie "selbstsignierte" Zertifikate und Schlüssel für eine E-Mail-Adresse mit dem Kommandozeilen-Tool openssl auf Linux erstellen, indem Sie einem Verfahren wie diesem hier folgen. Am Ende dieses Prozesses werden Sie eine smime.p12-Datei haben. Benennen Sie diese Datei um, sodass sie mit Ihrer Sendeidentität übereinstimmt, einschließlich des @-Zeichens, zum Beispiel alice@example.com.p12.

oder

b) Extern gültige Schlüssel / Zertifikate

Wenn Sie extern gültige Schlüssel / Zertifikate erhalten möchten, mit denen Sie signieren können, gibt es eine Liste von Anbietern hier. Ich habe festgestellt, dass Comodo gut funktioniert (kostenlos für nicht-kommerzielle Nutzung) und es ist einfacher als das oben beschriebene Selbstsignierungsverfahren. Folgen Sie dem Anmeldeprozess, erhalten Sie Ihre Validierungs-Mail, und öffnen Sie den Link unbedingt in Firefox. Gehen Sie zu Firefox Einstellungen / Datenschutz und Sicherheit. Scrollen Sie zu Zertifikate / Zertifikate anzeigen:

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


Wählen Sie Ihr Zertifikat aus und verwenden Sie die „Backup“-Option, um es als Datei im PKCS12-Format zu speichern (fügen Sie die Dateiendung .p12 zu Ihrem Dateinamen hinzu), die den privaten Schlüssel und die öffentliche Zertifikatskette enthält.

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


Geben Sie ein Passwort an, um die .p12-Datei zu sichern:

Certificate backup password entry dialog with password fields and strength meter


Erstellen Sie separate öffentliche (.crt) und private (.pem) Schlüsseldateien

Egal, ob Sie a) oder b) verwendet haben, Sie haben nun eine .p12-Datei für Ihre Absenderidentität. Das ist ein großer Schritt nach vorne – gönnen Sie sich jetzt einen Kaffee!

Nun müssen wir separate öffentliche und private Schlüsseldateien wie diese generieren – wobei Sie Ihre eigene E-Mail-Adresse für die Beispieladresse einsetzen. (Mac OSX und 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

Sie müssen das Passwort eingeben, das Sie zuvor angegeben haben. Beachten Sie, dass diese Backslashes \ verwendet werden, um das @-Zeichen zu escapen – nicht um die Namen eines Verzeichnispfads zu trennen (das ist ein Vorwärtsschrägstrich / auf Mac OSX und Linux).

Wenn Sie Windows verwenden, gibt es Openssl-Implementierungen wie die MINGW64, die in den Git-Kommandozeilen-Tools eingebaut sind, aber ich habe festgestellt, dass es dazu neigt, sich einfach aufzuhängen. Sie werden es wahrscheinlich einfacher und schneller finden, dies auf Linux zu tun und dann Ihre Dateien zu kopieren. Die gleichen Git-Tools für Windows sind mit einem schönen SSH-Client ausgestattet, mit dem Sie sich bei einem Linux-Host wie einer Amazon EC2-Instanz anmelden können.


2.1 Eine Nachricht signieren

Es gibt bereits einen Dummy-Schlüssel/-zertifikat und eine E-Mail-Quelldatei im Tests-Verzeichnis für alice@example.com, sodass Sie bereits eine Ausgabe erhalten können, bevor Sie Ihre eigenen Schlüssel haben. Geben Sie einfach das Folgende ein:

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

Und Sie erhalten:

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 : :

Sie können keine E-Mails von example.com über SparkPost senden, es sei denn, Sie besitzen diese Domain, also besteht der nächste Schritt darin, Ihren eigenen Schlüssel zu verwenden und eine signierte Nachricht von Ihrer eigenen Domain zu senden.

Wenn Sie bereits eine Schlüsseldatei für Ihre Sendeidentität haben, können Sie diesen Schritt überspringen. Andernfalls stehen Ihnen zwei Optionen zur Auswahl:

a) Selbstsignierter Testschlüssel / Zertifikat (nicht extern gültig)

Wenn Sie nur testen, können Sie "selbstsignierte" Zertifikate und Schlüssel für eine E-Mail-Adresse mit dem Kommandozeilen-Tool openssl auf Linux erstellen, indem Sie einem Verfahren wie diesem hier folgen. Am Ende dieses Prozesses werden Sie eine smime.p12-Datei haben. Benennen Sie diese Datei um, sodass sie mit Ihrer Sendeidentität übereinstimmt, einschließlich des @-Zeichens, zum Beispiel alice@example.com.p12.

oder

b) Extern gültige Schlüssel / Zertifikate

Wenn Sie extern gültige Schlüssel / Zertifikate erhalten möchten, mit denen Sie signieren können, gibt es eine Liste von Anbietern hier. Ich habe festgestellt, dass Comodo gut funktioniert (kostenlos für nicht-kommerzielle Nutzung) und es ist einfacher als das oben beschriebene Selbstsignierungsverfahren. Folgen Sie dem Anmeldeprozess, erhalten Sie Ihre Validierungs-Mail, und öffnen Sie den Link unbedingt in Firefox. Gehen Sie zu Firefox Einstellungen / Datenschutz und Sicherheit. Scrollen Sie zu Zertifikate / Zertifikate anzeigen:

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


Wählen Sie Ihr Zertifikat aus und verwenden Sie die „Backup“-Option, um es als Datei im PKCS12-Format zu speichern (fügen Sie die Dateiendung .p12 zu Ihrem Dateinamen hinzu), die den privaten Schlüssel und die öffentliche Zertifikatskette enthält.

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


Geben Sie ein Passwort an, um die .p12-Datei zu sichern:

Certificate backup password entry dialog with password fields and strength meter


Erstellen Sie separate öffentliche (.crt) und private (.pem) Schlüsseldateien

Egal, ob Sie a) oder b) verwendet haben, Sie haben nun eine .p12-Datei für Ihre Absenderidentität. Das ist ein großer Schritt nach vorne – gönnen Sie sich jetzt einen Kaffee!

Nun müssen wir separate öffentliche und private Schlüsseldateien wie diese generieren – wobei Sie Ihre eigene E-Mail-Adresse für die Beispieladresse einsetzen. (Mac OSX und 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

Sie müssen das Passwort eingeben, das Sie zuvor angegeben haben. Beachten Sie, dass diese Backslashes \ verwendet werden, um das @-Zeichen zu escapen – nicht um die Namen eines Verzeichnispfads zu trennen (das ist ein Vorwärtsschrägstrich / auf Mac OSX und Linux).

Wenn Sie Windows verwenden, gibt es Openssl-Implementierungen wie die MINGW64, die in den Git-Kommandozeilen-Tools eingebaut sind, aber ich habe festgestellt, dass es dazu neigt, sich einfach aufzuhängen. Sie werden es wahrscheinlich einfacher und schneller finden, dies auf Linux zu tun und dann Ihre Dateien zu kopieren. Die gleichen Git-Tools für Windows sind mit einem schönen SSH-Client ausgestattet, mit dem Sie sich bei einem Linux-Host wie einer Amazon EC2-Instanz anmelden können.


2.1 Eine Nachricht signieren

Es gibt bereits einen Dummy-Schlüssel/-zertifikat und eine E-Mail-Quelldatei im Tests-Verzeichnis für alice@example.com, sodass Sie bereits eine Ausgabe erhalten können, bevor Sie Ihre eigenen Schlüssel haben. Geben Sie einfach das Folgende ein:

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

Und Sie erhalten:

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 : :

Sie können keine E-Mails von example.com über SparkPost senden, es sei denn, Sie besitzen diese Domain, also besteht der nächste Schritt darin, Ihren eigenen Schlüssel zu verwenden und eine signierte Nachricht von Ihrer eigenen Domain zu senden.

Wenn Sie bereits eine Schlüsseldatei für Ihre Sendeidentität haben, können Sie diesen Schritt überspringen. Andernfalls stehen Ihnen zwei Optionen zur Auswahl:

a) Selbstsignierter Testschlüssel / Zertifikat (nicht extern gültig)

Wenn Sie nur testen, können Sie "selbstsignierte" Zertifikate und Schlüssel für eine E-Mail-Adresse mit dem Kommandozeilen-Tool openssl auf Linux erstellen, indem Sie einem Verfahren wie diesem hier folgen. Am Ende dieses Prozesses werden Sie eine smime.p12-Datei haben. Benennen Sie diese Datei um, sodass sie mit Ihrer Sendeidentität übereinstimmt, einschließlich des @-Zeichens, zum Beispiel alice@example.com.p12.

oder

b) Extern gültige Schlüssel / Zertifikate

Wenn Sie extern gültige Schlüssel / Zertifikate erhalten möchten, mit denen Sie signieren können, gibt es eine Liste von Anbietern hier. Ich habe festgestellt, dass Comodo gut funktioniert (kostenlos für nicht-kommerzielle Nutzung) und es ist einfacher als das oben beschriebene Selbstsignierungsverfahren. Folgen Sie dem Anmeldeprozess, erhalten Sie Ihre Validierungs-Mail, und öffnen Sie den Link unbedingt in Firefox. Gehen Sie zu Firefox Einstellungen / Datenschutz und Sicherheit. Scrollen Sie zu Zertifikate / Zertifikate anzeigen:

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


Wählen Sie Ihr Zertifikat aus und verwenden Sie die „Backup“-Option, um es als Datei im PKCS12-Format zu speichern (fügen Sie die Dateiendung .p12 zu Ihrem Dateinamen hinzu), die den privaten Schlüssel und die öffentliche Zertifikatskette enthält.

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


Geben Sie ein Passwort an, um die .p12-Datei zu sichern:

Certificate backup password entry dialog with password fields and strength meter


Erstellen Sie separate öffentliche (.crt) und private (.pem) Schlüsseldateien

Egal, ob Sie a) oder b) verwendet haben, Sie haben nun eine .p12-Datei für Ihre Absenderidentität. Das ist ein großer Schritt nach vorne – gönnen Sie sich jetzt einen Kaffee!

Nun müssen wir separate öffentliche und private Schlüsseldateien wie diese generieren – wobei Sie Ihre eigene E-Mail-Adresse für die Beispieladresse einsetzen. (Mac OSX und 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

Sie müssen das Passwort eingeben, das Sie zuvor angegeben haben. Beachten Sie, dass diese Backslashes \ verwendet werden, um das @-Zeichen zu escapen – nicht um die Namen eines Verzeichnispfads zu trennen (das ist ein Vorwärtsschrägstrich / auf Mac OSX und Linux).

Wenn Sie Windows verwenden, gibt es Openssl-Implementierungen wie die MINGW64, die in den Git-Kommandozeilen-Tools eingebaut sind, aber ich habe festgestellt, dass es dazu neigt, sich einfach aufzuhängen. Sie werden es wahrscheinlich einfacher und schneller finden, dies auf Linux zu tun und dann Ihre Dateien zu kopieren. Die gleichen Git-Tools für Windows sind mit einem schönen SSH-Client ausgestattet, mit dem Sie sich bei einem Linux-Host wie einer Amazon EC2-Instanz anmelden können.


2.1 Eine Nachricht signieren

Es gibt bereits einen Dummy-Schlüssel/-zertifikat und eine E-Mail-Quelldatei im Tests-Verzeichnis für alice@example.com, sodass Sie bereits eine Ausgabe erhalten können, bevor Sie Ihre eigenen Schlüssel haben. Geben Sie einfach das Folgende ein:

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

Und Sie erhalten:

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 : :

Sie können keine E-Mails von example.com über SparkPost senden, es sei denn, Sie besitzen diese Domain, also besteht der nächste Schritt darin, Ihren eigenen Schlüssel zu verwenden und eine signierte Nachricht von Ihrer eigenen Domain zu senden.

3. Senden Sie eine unterschriebene Nachricht über SparkPost

Nun verwenden wir eine echte Versanddomain, die gemäß dem SparkPost New User Guide eingerichtet wurde. Wir haben das Senderzertifikat und die Schlüsseldateien im aktuellen Verzeichnis:

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

Die Datei tests/declaration.eml ist im Projekt enthalten. Es ist nur eine Textdatei, sodass Sie die Von:-Adresse an Ihre eigene Versanddomain und die An:-Adresse an Ihren Testempfänger anpassen können. Der Anfang der Datei sieht folgendermaßen aus:

An: Bob <bob.lumreeker@gmail.com> Von: Steve <steve@thetucks.com> Betreff: Hier ist unsere Erklärung MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Wenn es im Verlauf menschlicher Ereignisse notwendig wird, …

Setzen Sie Ihren API-Schlüssel:

export SPARKPOST_API_KEY=<<Setzen Sie hier Ihren API-Schlüssel ein>>

Senden Sie die E-Mail:

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

Sie werden sehen:

Verbindung zu https://api.sparkpost.com/api/v1 geöffnet Senden von tests/declaration.eml Von: Steve <steve@thetucks.com> An: Bob  <bob.lumreeker@gmail.com> OK - in 1,15 Sekunden

Ein oder zwei Sekunden später kommt die E-Mail in Bobs Posteingang an. Thunderbird zeigt sie mit einem roten Punkt auf dem Umschlag an, was eine gültige Absendersignatur anzeigt.

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

Erfolg! Beenden Sie den Kaffee, den haben Sie sich verdient. Wenn Sie Probleme haben, überprüfen Sie, ob Ihre Von:-Adresse in der E-Mail-Datei mit dem Namen Ihrer .crt- und .pem-Dateien übereinstimmt.

4. Nachrichten verschlüsseln

Um eine Nachricht zu verschlüsseln, benötigen Sie den öffentlichen Schlüssel Ihres Empfängers in Zertifikatsform. Dies ist eine Textdatei, die so aussieht:

Bag Attributes   freundlicher Name: s COMODO CA Limited ID #2   lokale Schlüssel-ID: 32 84 AB 9C 56 5C 80 C6 89 4D 40 46 DD D4 7C 71 E8 CD ED C1 Betreff=/E-Mail-Adresse=bob.lumreeker@gmail.com Aussteller=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Client Authentication and Secure Email CA -----BEGIN CERTIFICATE----- sieht hier aus wie zufällige Zeichen -----END CERTIFICATE-----

Es gibt ein Dummy-Empfängerzertifikat für bob@example.com im Tests-Verzeichnis, sodass Sie damit üben können, bevor Sie ein echtes Zertifikat haben:

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

Sie werden folgendes sehen:

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 :

Sie werden bemerken, dass die Ausgabe deutlich länger ist als bei einer verschlüsselten Nachricht, da sie viele zusätzliche Informationen sowie die verschlüsselte Nachricht selbst enthält.


4.1 Senden einer verschlüsselten, signierten Nachricht über SparkPost

Lasst uns eine verschlüsselte Nachricht an eine echte E-Mail-Adresse senden. Sie können denselben Prozess wie zuvor (selbstsigniert oder ein Anbieter wie Comodo) folgen, um einen öffentlichen Schlüssel / ein Zertifikat für Ihre eigenen Empfängeradressen zu erhalten. Sie benötigen nur die .crt Datei – der Empfänger muss Ihnen niemals seinen privaten Schlüssel (.p12 und .pem Dateien) geben.

Ich habe die Datei bob.lumreeker@gmail.com.crt für meinen vorgesehenen Empfänger – passend zur From: Adresse in meiner Datei.

Hier ist der Befehl zum Senden:

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

Ich sehe:

Verbindung zu https://api.sparkpost.com/api/v1 geöffnet Sende tests/declaration.eml From: Steve <steve@thetucks.com> To: Bob <bob.lumreeker@gmail.com> OK - in 1.168 Sekunden

Die Mail erscheint in Thunderbird mit dem „roten Punkt“ Signatursymbol und dem „Schloss“ Verschlüsselungssymbol.

Thunderbird email view with signature and encryption icons

Sie können komplexe HTML-basierte E-Mails mit Links und Bildern ebenso leicht senden, wie in Teil 1 gezeigt. Einige Clients wie Thunderbird fragen um Erlaubnis, externe Links und Bilder in verschlüsselten S/MIME-Nachrichten anzuzeigen, aber nur-signierte Nachrichten werden gut in Clients wie Thunderbird und Gmail angezeigt:

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

Beachten Sie, dass die Dropdown-Schaltfläche „Verifizierte E-Mail-Adresse“ anzeigt.

Weitere Gedanken & Dinge, die zu beachten sind

Dieses Tool verfolgt einen super einfachen Ansatz, um die benötigten Schlüssel abzurufen – es sucht einfach nach benannten Dateien im aktuellen Verzeichnis. Komplexere Anordnungen, wie z.B. das Halten aller Schlüssel in einer Datenbank, könnten leicht hinzugefügt werden, aber ich wollte, dass der Code so einfach wie möglich bleibt.

Sie können andere Empfänger mit Cc: und Bcc: einbeziehen und sie werden zugestellt; dies könnte zu Archivierungszwecken nützlich sein. Empfangene signierte Nachrichten können von anderen Empfängern zusammen mit der Signatur angezeigt werden. Das Tool entfernt die Bcc:-Kopfzeile aus der zugestellten Nachricht (wie es ein Desktop-Mail-Client tun würde).

Um sicherzustellen, dass Nachrichten unverändert durch SparkPost gehen (was die Signatur brechen könnte), setzt das Tool API-Optionen für „transaktionales“ Mailing, wobei das Öffnen und das Klick-Tracking deaktiviert sind.

Wenn Sie Verschlüsselung verwenden, beachten Sie, dass das Tool die einzelne To:-Adresse dafür aufnimmt. Die anderen Empfänger können den Nachrichteninhalt nur entschlüsseln, wenn sie den privaten Schlüssel des To:-Empfängers haben. Wenn Sie beispielsweise sekundäre Empfänger nur als Protokoll der erfolgten Zustellungen verwenden, könnte das ohnehin in Ordnung sein.

Signiert, versiegelt, geliefert... ich bin dein

Das ist unser kurzer Überblick darüber, wie man S/MIME-Nachrichten über SparkPost signiert, versiegelt und sendet. Kurze Erinnerung: Das Demo-Projekt ist in Github hier, ich habe versucht, es einfach zu installieren und zu verwenden.

Bonusfunktion: Anzeigen von MIME-Teilen mit „mimeshow“

RFC822 MIME Multipart-Dateien sind für Menschen recht komplex zu lesen. Das Projekt beinhaltet ein eigenständiges Tool, um dies zu erleichtern, genannt mimeshow.

Dieses Tool kann jede E-Mail-Datei, die Sie haben (nicht nur S/MIME-Dateien), nehmen und die interne Struktur anzeigen. Hier ist ein Beispiel:

./mimeshow.py testcases/img_and_attachment.eml

Sie werden sehen:

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"

Sie können es auch als Filter verwenden, um eine menschenlesbare Zusammenfassung des sparkpostSMIME-Ausgangs zu geben:

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


Sie werden sehen:

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

Endlich…

Zusammenfassend – wir haben einige einfache Kommandozeilen-Tools zur Signierung und Verschlüsselung von E-Mails installiert (das Github-Repo ist hier, komplett mit Installationsanweisungen).

Wir haben unseren Sender-Schlüssel / unser Zertifikat zur Signierung erhalten und eine signierte Nachricht über SparkPost gesendet. Wir haben ein Empfängerzertifikat zur Verschlüsselung erhalten und dann eine signierte und verschlüsselte Nachricht über SparkPost gesendet.

Zuletzt haben wir das praktische eigenständige Tool „mimeshow“ ausprobiert, um uns die internen E-Mail-Dateien anzusehen.

Das war’s für jetzt! In unserem nächsten Teil zeigen wir Ihnen, wie Sie diese S/MIME-Funktionen auf lokale sichere E-Mail-Plattformen wie PowerMTA und Momentum erweitern können. Bis bald!

Lassen Sie uns Sie mit einem Bird-Experten verbinden.
Erleben Sie die volle Macht des Bird in 30 Minuten.

Durch die Übermittlung stimmen Sie zu, dass Bird Sie bezüglich unserer Produkte und Dienstleistungen kontaktieren darf.

Sie können sich jederzeit abmelden. Weitere Informationen zur Datenverarbeitung finden Sie in Birds Datenschutzerklärung.

Unternehmen

Newsletter

Bleiben Sie mit Bird auf dem Laufenden durch wöchentliche Updates in Ihrem Posteingang.

Lassen Sie uns Sie mit einem Bird-Experten verbinden.
Erleben Sie die volle Macht des Bird in 30 Minuten.

Durch die Übermittlung stimmen Sie zu, dass Bird Sie bezüglich unserer Produkte und Dienstleistungen kontaktieren darf.

Sie können sich jederzeit abmelden. Weitere Informationen zur Datenverarbeitung finden Sie in Birds Datenschutzerklärung.

Unternehmen

Newsletter

Bleiben Sie mit Bird auf dem Laufenden durch wöchentliche Updates in Ihrem Posteingang.

Lassen Sie uns Sie mit einem Bird-Experten verbinden.
Erleben Sie die volle Macht des Bird in 30 Minuten.

Durch die Übermittlung stimmen Sie zu, dass Bird Sie bezüglich unserer Produkte und Dienstleistungen kontaktieren darf.

Sie können sich jederzeit abmelden. Weitere Informationen zur Datenverarbeitung finden Sie in Birds Datenschutzerklärung.

R

Erreichen

G

Grow

M

Manage

A

Automate

Unternehmen

Newsletter

Bleiben Sie mit Bird auf dem Laufenden durch wöchentliche Updates in Ihrem Posteingang.