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