Artikelformat

Howto: E-Mail-Verschlüsselung und -Signierung mit S/MIME und OpenPGP (bei Apple Mail) einrichten

Wenn es um die Verschlüsselung oder Signierung von E-Mails geht, und da darf sich jeder mal selbst an die Nase packen, ist der Durchschnittsinternetnutzer doch eher zurückhaltend. Dem einen ist es zu kompliziert, dem anderen zu aufwendig und wieder andere sehen den Inhalt ihrer E-Mails nicht als schützenswert an.

Nun, die ersten beiden Argumente lassen sich relativ schnell entkräften. Das letzte lasse ich einfach mal unkommentiert im Raum stehen… ;)

Bildschirmfoto 2014-11-11 um 11.34.38

Generell muss man sich beim Verschlüsseln und Signieren von E-Mails zwischen zwei Protokollen entscheiden: S/MIME und OpenPGP, die beide nicht miteinander kompatibel sind und auch ‘nur’ den Inhalt der E-Mail verschlüsseln. Die Metadaten, wie Absender, Empfänger und Betreff, bleiben unverschlüsselt.

Ich möchte jetzt gar nicht groß ins technische Detail gehen oder den Glaubenskrieg fortführen, der zwischen den Nutzern dieser Protokolle herrscht. Ich möchte vielmehr die praktische Seite von S/MIME und OpenPGP beleuchten und kurz zeigen wie einfach man sie unter OS X oder iOS einrichten kann.

S/MIME vs OpenPGP

Nüchtern betrachtet gibt es vom Standpunkt der Sicherheit keinen Favoriten. Beide Protokolle entsprechen aktuellen Sicherheitsanforderungen; unterscheiden sich aber in grundlegenden Dingen, die in der Praxis durchaus von Bedeutung sind.

S/MIME benötigt beispielsweise keine große Einrichtung und lässt sich out-of-the-box sowohl am Mac, als auch unter iOS nutzen. OpenPGP erfordert dahingegen unter OS X etwas Handarbeit und hat die Einschränkung, dass es von Apples mobiler Mail.app unter iOS leider nicht unterstützt wird.

Der wichtigste Unterschied zwischen den beiden Protokollen liegt aber im Verfahren zur Authentifizierung. Während S/MIME über ein hierarchisches System mit einen Zertifikat die Echtheit garantiert, nutzt OpenPGP mit dem so genannten Web of Trust einen anarchischen Ansatz.

S/MIME-Zertifikat

Für die Verschlüsselung von E-Mails mit S/MIME sind die schon angesprochenen Zertifikate der wichtigste Bestandteil. Diese gibt es in verschiedenen Sicherheitsstufen, die alle unterschiedliche Ausprägungen bei der Validierung von Daten haben und unterschiedlich kosten. Für den Privat-Anwender sind diese Sicherheitsstufen in der Regel aber uninteressant, so dass man auch mit kostenlosen Zertifikaten, die meistens ein Jahr lang gültig sind, seine E-Mails verschlüsseln und signieren kann.

Fragt man DuckDuckGo, Google oder Bing nach kostenlosen E-Mail Zertifikaten, werden einem eine Reihe Anbieter wie Comodo oder StartSSL angezeigt.

 Bildschirmfoto 2014-11-11 um 19.50.05-minishadow

Wichtig, neben dem Namen und der E-Mail Adresse, für die das Zertifikat beantragt werden soll, ist die Schlüssellänge (bei Comodo, wie im Screenshot zu sehen, 2048 Bit) und das Revoke-Passwort, mit dem das Zertifikat im Fall der Fälle als ungültig erklärt werden kann.

Ist dieses Online-Formular ausgefüllt, erhält man nach dem Absenden eine Bestätigungsemail, mit der man das Zertifikat herunterladen kann.

Bildschirmfoto 2014-11-11 um 19.55.29-minishadow

Je nach Konfiguration landet das Zertifikat, das in meinem Fall den Dateinamen CollectCCC.p7s hat, im Downloadordner des Macs.

Startet man diese Datei per Doppelklick öffnet sich die OS X Schlüsselbundverwaltung, in die man das Zertifikat nur hinzufügen muss.

Bildschirmfoto 2014-11-11 um 21.02.29-minishadow

Anschließend startet man die Mail.app neu, die das Zertifikat automatisch erkennt und ab sofort E-Mails verschlüsselt und signiert versenden kann.

Dazu gibt es bei Mail beim Schreiben einer neuen E-Mail zwei neue Schaltflächen. Zum einen ein Schloss, welches die Verschlüsselung der E-Mail aktiviert. Zum anderen einen Haken, der die E-Mail signiert. Der Haken ist per Default immer aktiviert. Es wird also jede E-Mail signiert versendet. Das Schloss kann dahingegen nur angeklickt werden, wenn der Adressat ebenfalls ein gültiges S/MIME Zertifikat besitzt.

Bildschirmfoto 2014-11-11 um 20.06.05-minishadowBildschirmfoto 2014-11-12 um 12.48.52-minishadow copy

Oben rechts sieht man zudem, sofern man OpenPGP schon nutzt, eine blaue S/MIME Schaltfläche. Setzt man einzig und alleine auf S/MIME, ist diese Schaltfläche nicht zu sehen.

Besonderheit iOS

Das iOS mit dem vom Comodo zugesendeten Zertifikat im *.p7s Format nichts anfangen kann, muss man es zunächst in ein für iOS lesbares Format umwandeln.

Dazu nutzt man die OS X Schlüsselbundverwaltung, in der man per Rechtsklick das entsprechende Zertifikat, mit einem Passwort geschützt, ins *.p12 Format konvertieren kann.

Bildschirmfoto 2014-11-11 um 21.40.39

Nachdem man das Zertifikat per E-Mail o.ä. aufs iPhone, iPad oder den iPod touch übertragen und installiert hat, muss man S/MIME in den Einstellungen > Mail, Kontakte, Kalender > E-Mail Account > Account > Erweitert aktivieren und findet in der mobilen Mail.app nun ähnliche Schaltflächen wie schon unter OS X.

IMG_2400 IMG_2401

OpenPGP-Schlüsselpaar

Wie schon erwähnt, wird dieses Protokoll im Gegensatz zu S/MIME nicht von iOS unterstützt. Daher ist die folgende Anleitung auch ausschließlich für OS X ausgelegt.

Zunächst muss man sich die GPG Suite, deren Source Code auch bei Github zu finden ist, herunterladen und installieren. Für OS X Yosemite wurde erst kürzlich eine kostenlose Beta veröffentlicht. Das Ganze wird aber, wie die Entwickler schon Mitte Oktober 2014 angekündigt haben, in der finalen Version nicht kostenlos bleiben. Wie hoch die small fee für das Mail Plugin GPGMail, welches Bestandteil der GPG Suite ist, ausfallen wird, bleibt abzuwarten aber alleine vom Sicherheitsgedanken sollte man darüber nicht groß nachdenken.

Bildschirmfoto 2014-11-11 um 21.45.01-minishadow Bildschirmfoto 2014-11-11 um 21.45.33-minishadow

Nach der Installation findet man das Plugin GPGMail, welches schlussendlich für das Verschlüsseln und Signieren von E-Mails verantwortlich ist, in den Mail Einstellungen.

Bildschirmfoto 2014-11-11 um 21.47.00-minishadow

Da (Open)PGP keine Zertifikate braucht, sondern die benötigten Schlüssel dezentral über einen öffentlichen Schlüsselserver verwaltet, gestaltet sich die weitere Einrichtung wesentlich einfacher als bei S/MIME.

Mit der Installation der GPG Suite hat sich neben dem Mail Plugin u.a. auch eine App namens GPG Keychain ins OS X Programme-Verzeichnis installiert. Neben dem Erstellen neuer bzw. Widerrufen vorhandener Schlüsselpaare für die eigenen E-Mail Adressen, werden hier auch die öffentlichen Schlüssel von Adressaten verwaltet.

Bildschirmfoto 2014-11-11 um 21.49.48-minishadow

Wichtig beim Erstellen ist der Haken bei Upload public key, der den eigenen öffentlichen Schlüssel auf den Schlüsselserver hoch lädt. Andernfalls ist es Adressaten, die ebenfalls (Open)PGP nutzen, nicht möglich verschlüsselte E-Mails zu schreiben, die mit dem privaten Schlüssel, der auf dem eigenen Rechner liegt, entschlüsselt werden.

Bildschirmfoto 2014-11-11 um 21.52.23-minishadow

Das Fenster zum Schreiben neuer Mails hat in der Mail.app nun auch wieder die beiden zusätzlichen Schaltflächen zum Verschlüsseln und Signieren von E-Mails. Bei installiertem S/MIME gibt es darüber hinaus oben rechts eine grüne OpenPGP Schaltfläche, die zwischen den Protokollen umschalten kann.

FAZIT

Ich hoffe, dass einigermaßen klar wird, dass das Verschlüsseln und Signieren von E-Mails kein Hexenwerk ist, für das man kryptische Informatik studiert haben muss.

Es empfiehlt sich außerdem S/MIME und OpenPGP parallel installiert zu haben. Zum einen sind, wie schon erwähnt, beide Protokolle zueinander nicht kompatibel. Zum anderen hat sich bisher auch kein Favorit herauskristallisiert, so dass momentan jeder das nutzt, was er für richtig hält.

Die Anleitung kann im Übrigen natürlich auch auf andere OS X Mail-Clients wie MailMate (siehe Screenshot) oder auch Airmail 2 angewendet werden.

Bildschirmfoto 2014-11-12 um 15.22.49-minishadow 

Für einen tieferen technischen Hintergrund um S/MIME und OpenPGP empfehle ich einen Artikel von Christian Kirsch.

Autor: Björn

Ich bin Björn und quasi der COO von aptgetupdateDE. Ich kümmere mich um die PR und allerlei Kontaktaufnahmen zu Herstellern und Softwareentwicklern. Erreichbar bin ich bei Twitter und natürlich per E-Mail.

23 Kommentare

  1. Schöne Anleitung, so was sollten mal mit gewisser Regelmäßigkeit Bild (auch wenn ich sie hasse), Spiegel und Co schreiben, vielleicht nutzen es dann auch ein paar Leute.

    Denn das ist das Hauptproblem meines seit Jahren installierten OpenPGP: außer ein paar alten (Informatik-) Studienkollegen, hat keiner meiner Empfänger einen Public Key…

    • Und genau das ist mir nicht ganz klar.
      Muss die Gegenseite auch das ganze „Gelumpe“ installiert haben bzw. was passiert wenn nicht?

      • Das Signieren von E-Mails funktioniert immer und sollte daher auch immer aktiviert sein.

        Das Verschlüsseln funktioniert nur, wenn Absender und (!!!) Empfänger das gleiche Protokoll (also entweder S/MIME oder PGP) installiert haben. Andernfalls kann du die Mail nicht verschlüsseln.

        Stell es dir einfach wie einen Brief vor, den du mit einem Schloss (ohne Schlüssel) versenden willst. Der Empfänger könnte diesen nicht öffnen, da er eben keinen passenden Schlüssel hat. Daher muss der Versand hier unverschlüsselt (aber signiert) erfolgen.

        • OK, soweit verstanden, danke schon mal dafür.
          Da geht es mir dann vemutlich wie Vielen, dass kaum Leute die Verschlüsselung nutzen, wobei man hier ja ruhig eine Vorreiterrolle im Freundeskreis einnehmen kann.
          Allerdings läuft ein großteil der Kommunkation heute (bei mir) über Messenger.
          Und welche Vorteile hab ich, wenn ich das Zertifikat nutze, ich aber keine Verschlüsselung nutzen kann, da die Gegenseite dies nicht hat. Und kann ich das vor Versenden automatisch rausfinden, oder muss ich manuell jeden Fragen, ob er meine verschlüsselten Mails lesen kann?

          Gruß Thomas

          • Die Vorteile liegen ohne Verschlüsselung darin, dass sich der Adressat sehr sicher sein kann, dass eine E-Mail auch von dir ist und nicht gestohlen wurde (da signiert).

            Und du musst niemanden fragen, ob er S/MIME oder PGP nutzt. Wenn der Adressat keine Verschlüsselung nutzt, kannst du die E-Mail auch nicht verschlüsseln. Du kannst das Schloss in Mail nämlich gar nicht anklicken, da es ausgegraut ist. Steh auch so im Artikel ;)

          • @Björn: alles klar, danke noch mal für die Erläuterung. Dann wird jetzt mal dein HowTo umgesetzt.

          • @Björn

            „Die Vorteile liegen ohne Verschlüsselung darin, dass sich der Adressat sehr sicher sein kann, dass eine E-Mail auch von dir ist und nicht gestohlen wurde (da signiert).“

            Da sich jeder kostenfrei so ein Zertifikat ausstellen lassen kann, geht der Sinn davon verloren. Jeder kann theoretisch für eine x-belibiege Person ein Zertifikat erstellen.

          • @Pete,
            stimmt soweit aber dann muss der Angreifer auch irgendwie Zugriff auf dein Mailkonto haben bzw. wenigstens die Bestätigungsemail mit Link zum Zertifikat abfangen. Andernfalls bringt das bloße Ausstellen eines kostenlosen Zertifikates für eine beliebige E-Mail Adresse recht wenig.

          • @Björn Jein, irgendwer kann ja eine x-beliebige E-Mail erstellen, zB johny_cash@TLD.com und erstellt ein Zertifikat dafür, welches einem dann ohne weiteres vorgaukelt, diese E-Mail kommt auch wirklich von johny_cash. Dies ist insofern ein Problem, wenn man das erste mal E-Mails von Fremden bekommt – da man die E-Mail-Adresse bis dato nicht kennt, kann man auf das Zertifikat absolut nichts geben.

  2. Danke, genau zum richtigen Zeitpunkt. Mein derzeit genutztes eMailzertifikat läuft aus und ich hatte vergessen wie ich das eingebunden hatte. :-)

  3. Vielen Dank für die Anleitung. Unter OS X hat es wunderbar funktioniert. Nur unter iOS hab ich ein Problem. Zertifikat wie beschrieben in ein …p12 exportiert und per E-Mail versandt. Unter iOS installiert, ist mir dort sofort aufgefallen – „Signiert von: Nicht signiert“. Installation des Profils klappte trotz der Meldung „Das Profil ist nicht signiert“. In Mail von iOS wird mir nun auch das Schloss angezeigt. Will ich nun eine Mail schreiben, bekomme ich sofort die Meldung „Das Senden von signierten Nachrichten ist fehlgeschlagen, da für die Adresse „meine Email“ keine signierte Identität gefunden wurde“. Was mache ich falsch?

    • Bei ’signiert von‘ sollte natürlich deine E-Mail Adresse stehen. Das Zertifikat ist ja daran (und nicht an dich als Person) gebunden.

      Ich gehe davon aus, dass entweder beim Exportieren aus dem Schlüsselbund oder Importieren etwas schief gelaufen ist. Lösch das Profil unter Einstellungen > Allgemein > Profil einfach noch mal und probiere es erneut.
      Daran anschließend: Auf dem Mac sind deine Mails signiert oder?!

      • Signieren und verschlüsseln funktioniert über den Mac problemlos. Die so signierten und verschlüsselten Mails kann ich übers iPhone auch öffnen und lesen. Ich habe zur Gegenprobe einfach auf dem Mac das Zertifikat inkl. aller COMODO Zertifikate gelöscht und meinen Export doppelt geklickt. Auf dem Mac ist alles okay, Zertifikat inkl. aller COMODO Zertifikate werden korrekt importiert und funktionieren wie sie sollen. Nur auf dem iPhone funktioniert nur die ankommende, aber abgehende Seite nicht. An welcher Schraube könnte ich noch drehen?

        • Das ist in der Tat n bisschen merkwürdig.

          Die S/MIME Einstellungen sind so wie auf dem Screenshot eingestellt? Also „Signieren“ und ggf. auch „Standardmäßig verschlüsseln“ auf „Ja“? Dort muss man das Zertifikat dann ja auch auswählen.
          Andernfalls bin ich etwas überfragt. Viel falsch machen bzw. einstellen kann man eigentlich nicht.

  4. Folgende Tipps für iOS:

    1. Schau in die Schlüsselbundverwaltung und überprüfe, ob das Zertifikat als ‚gültig‘ oder als ‚Dieses Zertifikat wurde von einer unbekannten Instanz signiert‘ gekennzeichnet ist.

    2.1 Ist es gültig ist alles gut und man kann mit Punkt 2.3 weitermachen.
    2.2 Ist die Rede von einer unbekannten Instanz, fehlt möglicherweise ein Root-Zertifikat.

    Für den Fall 2.2, kann man folgendes probieren:

    2.2.1 Über das Menü ‚Schlüsselbundverwaltung > Einstellungen > Zertifikate‘ aufrufen.
    Dort steht etwas von OCSP und CRL, die beide für die Überprüfung von Zertifikaten zuständig sind. Bei OCSP wird das Ganze online und CRL offline macht. CRL kann man daher ruhig auf ‚Aus‘ schalten, womit die Priorität auf OCSP, also eine Online-Überprüfung, springt.
    Danach sollte man sich eventuell aus- und wieder einloggen und jetzt überprüfen, ob das Zertifikat gültig (siehe Punkt 2.1) ist.

    2.2.2 Sollte es weiterhin klemmen, sollte es in der Schlüsselbundverwaltung ein Zertifikat namens ‚Comodo Client Authentication and Secure Email CA‘ geben. Dieses (hoffentlich gültige) Zertifikat kann man über das Menü ‚Schlüsselbundverwaltung > Zertifikatsassistent > Comodo… überprüfen‘ prüfen, was keine Fehler liefern bzw. mit erfolgreichem Auswertungs- und gutem Zertifizierungsstatus abschließen sollte.
    Danach sollte man sich eventuell aus- und wieder einloggen und jetzt überprüfen, ob das Zertifikat gültig (siehe Punkt 2.1) ist.

    2.3 Zertifikat ins p12-Format exportieren und per E-Mail oder (die bessere Möglichkeit) per iPhone-Konfigurationsprogramm mit USB aufs iPhone, iPad oder iPod touch übertragen und installieren

    2.4 S/MIME aktivieren und fertig

    Allerdings… und vielleicht liegt das Problem auch dort, scheint iOS 8 irgendein Problem mit den Zertifikaten zu haben. Zumindest gibt es recht angeregte Diskussionen im Apple Forum (danke Justin für den Link per E-Mail).

    • Im Schlüsselbund des Macs wird beim Zertifikat (dies hat als Namen die E-Mail-Adresse) in grün angezeigt: „Dieses Zertifikat ist gültig“
      Egal ob das exportierte Zertifikat via E-Mail oder mittels Apple Configurator aufs iPhone kommt, es erscheint die Meldung dass das Zertifikat (Profil) nicht signiert sei. Eine Installation ist jedoch möglich und ich habe dann ein Profil welches den Namen meiner E-Mail-Adresse trägt.
      Wenn ich jetzt den E-Mail-Account konfiguriere und mir dort das Zertifikat ansehe, wird mir bei den Punkten „Signieren“ und „Standardmäßig verschlüsseln“ in grün signalisiert dass das Zertifikat Vertrauenswürdig ist.
      Will ich dann eine E-Mail senden erscheint die oben genannte Meldung: “Das Senden von signierten Nachrichten ist fehlgeschlagen, da für die Adresse “meine Email” keine signierte Identität gefunden wurde”

      Ich verstehe die Fehlermeldung so, dass eine Signatur im Zertifikat fehlt welche für das Verschlüsseln zuständig ist. Hat dann wohl etwas mit dem oben angegebenen iOS 8 Problem zu tun… schade!

  5. Danke für den Link zur Diskussion bei Apple. Der Trick ist:

    9. On my iPhone I send a signed email to myself. When I get it I click the „From“ name (which should have the signed icon), then the blue „Install Certificate“ link under the signed message. It should install quickly. Click Done and everything should work. (hopefully I didn’t forget anything because I did things too many times)

    Danach funktionierte es leider noch nicht… aber einmal Mail richtig beendet und neu gestartet und siehe da es funktioniert :)

    Danke Björn für Deine Mühe!

  6. Ja, so geht es Weppi, aber nur mit Mails wo du das Zertifikat installiert hast.
    Irgendwo ist da noch der Wurm drin

  7. hallo Björn, zunächst danke für Ihre Anleitung. Es verdient grosse Anerkennung, wenn sich jemand soviel Arbeit macht, sein Wissen weiterzugeben. Alle diese Anleitungen haben leider eines gemeinsam: sie hören da auf, wo es für mich spannend wird. Mein Mail-Partner hat sein S/MIME Zertifikat widerrufen (revoke) und ich habe den Eindruck, dass weder MacOSX (10.10) noch iOS 8.2 dies merken und munter weiterhin dieses Zertifikat zur Verschlüsselung benutzen. Hat zur Folge, dass mein Email Partner die empfangenen Emails nicht mehr öffnen kann. Selbst ein neues Zertifikat dieses Partners schafft keine Abhilfe, da das alte weiterverwendet wird. Bei OSX gelang mir Abhilfe dadurch, dass ich das widerrufene Zertifikat gewaltsam aus dem Anmeldeschlüsselbund gelöscht habe, erst dann wird das parallel installierte neue Zertifikat verwendet, aber für iOS 8 finde ich keine Schlüsselbundverwaltung und auch keine Lösiung. Anmerkung zu Ihrem Tipp von oben zu IOS „schau in die Schlüsselbundverwaltung“. Ich finde diese nicht und bin für jeden Tipp dankbar. Der Link zu dem Artikel von Christian Kirsch ist leider tot. Viele Grüße, Claus

    • Das große Problem von OS X bzw. Apple Mail ist, dass es (anscheinend) wahllos Zertifikate sammelt aber sich nicht um deren Gültigkeit schert. Man kann quasi beim Schreiben einer Mail sich nicht darauf verlassen, dass die Mail App das richtige Zertifikat für einen bestimmten Empfänger nutzt. In Mail fehlt für diesen Fall auch eine Auswahlmöglichkeit, mit der man explizit beim Schreiben festlegen kann welches Zertifikat genutzt werden soll. Die Lösung für OS X ist, wie du schon sagtest, das ‚alte‘ Zertifikat im OS X Schlüsselbund zu suchen und zu löschen.

      Bei iOS gibt es ohne Jailbreak keinen Zugriff auf das Schlüsselbund. Erschwerend kommt hinzu, dass iOS (im Gegensatz zu OS X) nicht automatisch den Public Key potentieller Empfänger importiert. Hier ist leider Handarbeit gefragt.
      So muss man sich vom Empfänger eine signierte aber unverschlüsselte E-Mail senden lassen. Danach muss man in der mobilen Mail App bei der E-Mail auf den Empfänger (mit dem Haken für ’signiert‘) drücken. Nun wird, mit dem Hinweis auf ein Zertifikat, der Kontakt des Empfängers angezeigt. Lässt man sich nun das Zertifikat anzeigen, kann man es ‚installieren‘ und fortan verschlüsselte Mails an diesen Empfänger versenden. Auf diese Weise kann man bei älteren Mails auch Zertifikate (sobald sie ungültig geworden sind) ‚entfernen‘.
      Dieses Prozedere muss unter iOS mit allen Empfängern, mit denen man verschlüsselt per Mail kommunizieren möchte, durchgeführt werden.

      Geh einfach mal danach vor. Wenn ich mich jetzt nicht allzu kompliziert ausgedrückt habe, sollte dieser Weg funktionieren.