SMIME

aus www.kruedewagen.de, Homepage von Ralf und Judith Krüdewagen (Kruedewagen)
Zur Navigation springen Zur Suche springen

Was ist S/MIME?

Mit S/MIME kann man Emails digital signieren und verschlüsseln, siehe Wikipedia für weitere Infos. S/MIME ist neben GnuPG/PGP ein zweiter Standard für sichere Email und verwendet den X.509 Standard..

Als Zertifizierungsstelle verwende ich vorzugsweise CAcert, dessen Root-Zertifikate hier zu finden sind. Leider sind derzeit diese Root-Zertifikate in den meisten Browsern bzw. Email-Clients noch nicht enthalten. Daher müssen sie bis auf weiteres auf dem Client manuell installiert werden, was aber recht einfach ist. Eine Anleitung zum Installieren der Email-Zertifikate gibt es hier.

Früher hatte ich auch ein Zertifikat von TC TrustCenter. Eine andere Alternative ist StartSSL, wo es zumindest kostenlose Class 1 Zertifikate gibt (ohne Identitätsprüfung).

Für die Verwendung von S/MIME empfehle ich die Email-Clients Thunderbird oder kmail. Für Thunderbird gibt es eine Anleitung Mailverschlüsselung mit S/MIME.

Schlüsselaustausch

Zertifikate

Das eigene S/MIME-Zertifikat, das den öffentlichen Schlüssel enthält, ist in der Regel in jeder verschickten Email enthalten, wenn diese vor dem Versand signiert wird. Das ist ein Vorteil gegenüber PGP. Der Empfänger muss dann nur noch das Zertifikat importieren, was meist schon automatisch vom E-Mail-Client vorgenommen wird. Ab diesem Zeitpunkt kann man dem Kommunikationspartner verschlüsselte E-Mails schicken, da die Verschlüsselung mit dem öffentlichen Schlüssel des Empfängers geschieht. Der Schlüsselaustausch zwischen Kommunikationspartnern geschieht also transparent durch das gegenseitiges Zuschicken signierter E-Mails.

Alternativ kann man das eigene Zertifikat auch manuell exportieren, meist im PEM- oder DER-Format. PEM ist ASCII-kodiert und damit am besten für Copy/Paste geeignet. Der Export geschieht entweder aus dem Browser oder dem E-Mail-Client heraus oder direkt aus dem Managementinterface der CA (Certification Authority), z.B. bei CAcert über Client-Zertifikate -> Anzeigen -> E-Mail-Adresse.

In Unternehmensnetzen kommt als dritte Möglichkeit das Speichern der Zertifikate in zentralen Directories in Frage, z.B. auf einem LDAP-Server. Das hat den Vorteil, dass man für eine Verschlüsselung nicht erst signierte Mails austauschen muss.

Vertrauen

Die Vertrauenswürdigkeit der Zertifikate wird automatisch hergestellt, wenn das Benutzer-Zertifikat von einer bekannten und vertrauenswürdigen CA ausgestellt und signiert wurde. Bei diesem zentralen Ansatz vertraue ich also allen Zertifikaten hierarchisch unterhalb einer CA ohne explizite Zustimmung (entgegen klassischem PGP, bei dem ich meist jedem Public Key einzeln vertrauen muss). S/MIME-Zertifikate können jedoch auch zusätzlich mittels Abgleich von Seriennummer und Fingerprint verifiziert werden, wenn man der CA nicht traut oder bei selbstsignierten Zertifikaten.

Mein S/MIME-Zertifikat

Manuell exportierte Zertifikate kann man auf öffentlichen Webseiten zum Download anbieten, wie z.B. mein CAcert-Zertifikat hier im PEM-Format:

-----BEGIN CERTIFICATE-----
MIIFWzCCA0OgAwIBAgIDAp+3MA0GCSqGSIb3DQEBDQUAMFQxFDASBgNVBAoTC0NB
Y2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5vcmcxHDAaBgNV
BAMTE0NBY2VydCBDbGFzcyAzIFJvb3QwHhcNMTYxMTEzMTIxNjA2WhcNMTgxMTEz
MTIxNjA2WjA+MRgwFgYDVQQDFA9SYWxmIEty/GRld2FnZW4xIjAgBgkqhkiG9w0B
CQEWE3JhbGZAa3J1ZWRld2FnZW4uZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQCcei1n3pcTKtaFyMTzBTicHIpmGAaeFUiRr/P+oqppCJmdOeeSOY+G
3uDoU+P5vhUI27KsLSbVLjnKVtYMoFPJRMRxgG3uBl7mctCk8T38Q1uN+99GZz88
0MFJYMlSikZBKpFvpShvJ7Xd3f2dNeCR1T9q/5/Ft/ogmLUc59Kll5OQiHUtsrRd
hjDuCRS7rU94gfukKjDa65p809hY/Dq8ZTAa0fODPM1lIRyk2r7S4OWglf7wEbWB
JTOjNGJ3ipbxg9WMp3XpzcW16DwEAAI24Fxoqdtp4pmefkWeybyGLZhmzLkY6GR3
G7JbidFiqwrwVA1NDI5mfwhQ2V5Zo3o1AgMBAAGjggFKMIIBRjAMBgNVHRMBAf8E
AjAAMFYGCWCGSAGG+EIBDQRJFkdUbyBnZXQgeW91ciBvd24gY2VydGlmaWNhdGUg
Zm9yIEZSRUUgaGVhZCBvdmVyIHRvIGh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZzAOBgNV
HQ8BAf8EBAMCA6gwQAYDVR0lBDkwNwYIKwYBBQUHAwQGCCsGAQUFBwMCBgorBgEE
AYI3CgMEBgorBgEEAYI3CgMDBglghkgBhvhCBAEwMgYIKwYBBQUHAQEEJjAkMCIG
CCsGAQUFBzABhhZodHRwOi8vb2NzcC5jYWNlcnQub3JnMDgGA1UdHwQxMC8wLaAr
oCmGJ2h0dHA6Ly9jcmwuY2FjZXJ0Lm9yZy9jbGFzczMtcmV2b2tlLmNybDAeBgNV
HREEFzAVgRNyYWxmQGtydWVkZXdhZ2VuLmRlMA0GCSqGSIb3DQEBDQUAA4ICAQAL
e1qWxwBtL+uTWU6o29PI2nK/ZSElE8eL5JYRvqJjaWT7l8ls3cVM7f3zqJcOtjka
KufgblccBXZoTJ42sdRa+3vQHnV3s4SerGUVSjLelB4BlL8F1qrWSYU0KuZeWbNW
Yz19NHH0DU+qnAtuBURx67xIUwcnNBQ7rBiL8drlV+5Vsdys2eGwhgfRR6b2qJKB
wRC/ld6QECV2xGSu5CI3IZF11BfGRz4P4jbr1wT9QevjxwNxErs6unU/6LQ+5Jtv
UqPYoP/EIJ5vhr+IzbTQVdv7tsytbKv1qWQ55dIx3ybMzx1ZaMYUtZ0LRPCPt7by
EzQz3hLDIhhXOIE+Gubskg+75+0ErzmE7iPS7rNBMHvOhpKpruU6wNXRVMlrLt/V
GumqKUU3imvmvsiI/Qcm4SQ/Xmqq8jOfPu5jnwQQGS2+G1tfAYafCrsk/mrw+m3U
b4zCseXXDajCm2DM7q8eIQdBHx1oFbXVv10UNQScbt35PFKSgmtjf3RddrLNEUm3
1BwcTFivonsg4CoiCJr5RW9ri/UReb+IcbW6Ln/CS0EQOZQJG1+RI8ZhFcVieyvc
jGvPnIV1aoeaG04qQcAF7GBUMKooyWzmPfzxd7hmI4n5dbzAXnqn3SXHAaB11nlW
kH6CebZbcb5fgWOVD8HZwOagjg8mR3wElXrOlrFazg==
-----END CERTIFICATE-----

Seriennummer:

02:9F:B7

SHA-256 Fingerprint:

B0:2A:8C:AE:9A:71:19:51:3F:EF:0F:DA:F6:63:0A:59:D9:6A:63:8E:FE:29:3E:ED:51:BC:6D:3F:9D:62:2A:A1

Zertifikatbesitzer:

 Eindeutiger Name: Ralf Krüdewagen
 E-Mail-Adresse: ralf@kruedewagen.de

Aussteller:

 Organisation: CAcert Inc.
 Organisationsabteilung: http://www.CAcert.org
 Eindeutiger Name: CAcert Class 3 Root

Gültigkeit:

 Gültig ab:  13.11.2016
 Gültig bis: 13.11.2018

Tipps und Tricks

kmail

Zertifikate

Bei Verwendung des KDE Mail-Clients kmail mit gpgsm und kleopatra müssen nicht offiziell bekannte CA-Root-Zertifikate als vertrauenswürdig eingestuft werden. Um das zu erreichen, trägt man die Fingerprints der CA-Zertifikate mit einem "S" am Ende in die Datei ~/.gnupg/trustlist.txt ein. Hier ein Beispiel für CAcert:

135CEC36F49CB8E93B1AB270CD80884676CE8F33 S

Danach sollte man den gpg-agent neu starten bzw. mit "kill -HUP" die neue Konfiguration einlesen lassen. Wenn man nun in kleopatra die Zertifikate neu validiert, sollten die abgeleiteten Zertifikate ebenfalls als vertrauenswürdig eingestuft sein. Tipp: Man kann in kleopatra die unterschiedlichen Zertifikate farblich markieren (Einstellungen -> Kleopatra einrichten).

Einstellungen

Bei der Konfiguration von gpgsm sollte "Niemals eine CRL konsultieren" aktiviert sein.

Starten von gpg-agent

Der gpg-agent sollte beim KDE-Login gestartet werden, z.B. in der Datei ~/.kde/env/gpgagent.sh mit dem Inhalt:

eval "$(gpg-agent --daemon)"

Wenn man dort noch --allow-mark-trusted einfügt, benötigt man wohl nicht mehr das Editieren der truslist.txt, sondern wird interaktiv gefragt, ob man dem Zertifikat vertrauen möchte.

Quellen:

Weblinks

Siehe auch