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

Wichtige Erkenntnisse
Prämisse: Teil 2 bewegt sich von der Theorie zu S/MIME zur Praxis — und zeigt, wie man E-Mails digital signiert und verschlüsselt, wobei SparkPost als Zustellplattform verwendet wird.
Ziel: Entwicklern einen einfachen, Befehlszeilen-Workflow bereitstellen, um ausgehende Nachrichten zu signieren, Signaturen zu überprüfen und (optional) Inhalte für bestimmte Empfänger zu verschlüsseln.
Höhepunkte:
Installation: Installieren Sie die Open-Source-Demo-Tools von GitHub (mit automatisierten Travis- und pytest-Überprüfungen). Die Pipfile verwaltet alle Python-Abhängigkeiten.
Sender-Schlüssel:
Erstellen Sie ein selbstsigniertes oder von einer Zertifizierungsstelle ausgestelltes Zertifikat (
.p12) für Ihre E-Mail-Identität.Teilen Sie es in private (
.pem) und öffentliche (.crt) Dateien auf, für die Verwendung durch das Signatur-Tool.
Signierung:
Verwenden Sie das enthaltene
sparkpostSMIME.py-Skript, um Testnachrichten zu signieren (z.B.tests/declaration.eml).Bestätigen Sie die Signaturen visuell in Clients wie Thunderbird (rotes Punkt-Symbol).
Verschlüsselung:
Besorgen Sie sich das öffentliche Zertifikat (
.crt) jedes Empfängers.Führen Sie das Tool erneut aus, um eine signierte + verschlüsselte Nachricht zu erzeugen.
Empfänger können mit ihren privaten Schlüsseln verifizieren und entschlüsseln.
Zustellung über SparkPost:
Konfigurieren Sie eine gültige Absenderdomain und einen API-Schlüssel.
Senden Sie Nachrichten über SparkPost’s API ohne Tracking, um die Integrität zu bewahren.
Bonus-Dienstprogramm – mimeshow:
Zeigt eine menschenlesbare RFC822 MIME-Struktur zur Fehlerbehebung oder Überprüfung an.
Praktische Tipps:
Halten Sie Dateinamen mit der From:-Adresse übereinstimmend.
Vermeiden Sie es, Nachrichteninhalte nach der Signierung zu ändern.
Verwenden Sie Bcc nur für Archivkopien — diese Empfänger können nicht entschlüsseln, wenn die E-Mail an eine einzige To-Adresse verschlüsselt ist.
Q&A Highlights
Warum S/MIME signing verwenden?
Es authentifiziert den Absender und stellt die Nachrichtenintegrität sicher — Clients wie Thunderbird zeigen einen visuellen Indikator an, wenn die Signatur gültig ist.
Wie erhalte ich mein Senderzertifikat?
Entweder selbst über OpenSSL signieren (zum Testen) oder ein vertrauenswürdiges Zertifikat von Anbietern wie Comodo (kostenlos für nicht-kommerzielle Nutzung) erhalten.
Kann ich Nachrichten für mehrere Empfänger verschlüsseln?
Nur wenn Sie den öffentlichen Schlüssel jedes Empfängers haben. Das Demo-Skript verschlüsselt standardmäßig an die einzelne To-Adresse.
Welche Schutzmaßnahmen verhindern, dass Signaturen beim Transport beschädigt werden?
Das Tool setzt die SparkPost API-Optionen für transaktionales Senden und deaktiviert die Open/Click-Verfolgung, sodass die Nutzlast unverändert durchläuft.
Was ist die Rolle von mimeshow?
Es analysiert rohe E-Mail-Dateien und gibt deren mehrteilige Struktur aus — nützlich zum Überprüfen von S/MIME-Signaturen, Anhängen und Headern.
Was kommt als Nächstes in der Serie?
Teil 3 erweitert diese S/MIME-Funktionen auf lokale sichere E-Mail-Plattformen wie PowerMTA und Momentum.
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.

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!
Bonusfunktion: Anzeigen von MIME-Teilen mit „mimeshow“
1. Installiere die Tools
2. Holen Sie sich Ihren Sender-Schlüssel / Ihr Zertifikat für die Signierung
3. Senden Sie eine unterschriebene Nachricht über SparkPost
4. Nachrichten verschlüsseln
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 versendet. Kurze Erinnerung: Das Demo-Projekt ist auf GitHub verfügbar, und ich habe versucht, es einfach zu installieren und zu verwenden.










