SMIME
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
- S/MIME bei Wikipedia
- S/MIME und PGP mit DNS
- Digitale Signatur
- Thunderbird Email-Client
- Brief mit Siegel - Mail-Verschlüsselung auf dem Rechner und mobil (c't Artikel)
- http://wiki.piratenpartei.de/Krypto-Party
- Sichere E-Mail – eine kleine Anleitung (kruedewagen.de)