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-----
MIIFWzCCA0OgAwIBAgIDARJVMA0GCSqGSIb3DQEBBQUAMFQxFDASBgNVBAoTC0NB
Y2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5vcmcxHDAaBgNV
BAMTE0NBY2VydCBDbGFzcyAzIFJvb3QwHhcNMTMwMTA0MTQ1NDAwWhcNMTUwMTA0
MTQ1NDAwWjA+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
HREEFzAVgRNyYWxmQGtydWVkZXdhZ2VuLmRlMA0GCSqGSIb3DQEBBQUAA4ICAQBH
b8vqvbpjrGJvnYhYwUyiqed4DgbGDwr2AnaQlXqrlKcKubD+67LtZn4ZRc8+wdV+
++wjdATsd7ANDEqX6eOqENVgU+A62zf/UcLrlRbX5S+KV57NkbjO+lq/uJZi5CqG
9HXTtz+GdscDehdYYegbwdo73UtalqAJy+xrR5qdhxzRaskbiH9nObV9hyb87Ui4
kdD/YDrm1n096LJGrkeIfIh6kyq3B7hNZ2VpDAbmf960dGt2vABSAaBDmVBaGrYM
nD98xdnqTINu+vDpX9ZHHoUwngyWdXvs1PJPRopvDFQSsJxCfH0+bA+ejZSwT66y
UpEcX4PGLdD6HACgfGaQUZMn5C3fgkGSQw4HfK1dAdULUtTYgNr8l2y7QOHoGA+T
/u9OnGkeeVpQnI6BFufFwotynrhUSNIHyLcKJ0nKEqs4Xqkb1T4MXzPHVhglR2eE
vIV1ffsCxtZPXnNwxpFSb41b4VtyGj2GYYR42KYqL2NUxoCYe8QqmlmcqlcQCxms
4xWlOgvGXNGNqmZ6m7VpwBDBLYLM3wFJtQRj+oJ9AbdRlKZeoRGEJY9nS8ByZ3HL
XxcBOsDj3WE3rx9BJGmxvvKe3gK6vWEPKiBtuqD7FhmWzbjDpGmd7483ynRMJRQO
jNF1gWSq/1wAxdcaI3hjyZe9sUpYBgi9HvnfODQjqw==
-----END CERTIFICATE-----

Seriennummer:

01:12:55

SHA-1 Fingerprint:

F2 0D 03 7D 4A 4D 04 EC 9D A2 D2 3D 75 E0 E6 4F C4 70 D9 DD

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: 04.01.2013 15:54:00
 Gültig bis: 04.01.2015 15:54:00

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