Was ist S/MIME?

Bereits vor den Enthüllungen von Edward Snowden habe ich mich mit dem Thema "eMails verschlüsseln" beschäftigt. Seitdem bekannt ist wieviel die NSA (und nicht nur der amerikanische Geheimdienst) mitliest beschäftige ich mich verstärkt mit dem Thema Kryptographie. Nachfolgend eine kleine Anleitung, wie man mittels S/MIME seine Mails einfach verschlüsseln kann. Ich weiß nicht ob man damit wirklich die Geheimdienste aussperren kann. Auf jeden Fall beißt sich der gemeine Internetgauner daran die Zähne aus.

Zur Verschlüsselung gibt es zwei gängige Systeme. GPG und S/MIME. Natürlich sind diese beiden Systeme nicht kompatibel zueinander, obwohl ihre Funktionsweise recht ähnlich ist. Ich habe mich für S/MIME entschieden, da es zumindest aktuell keine Möglichkeit gibt GPG auf dem iPhone zu implementieren. 

Update (16. August 2014): Ich prüfe unter iOS das Tool IPGMAIL auf Alltagstauglichkeit. Damit kann man auch auf dem iPhone/iPad GPG verschlüsselte Mails erstellen bzw. lesen.

Grundsätzlich bestehen e-Mails nur aus Text. Zumindest ist das einmal die ursprüngliche Idee gewesen. Um Sonderzeichen (Umlaute), Formatierungen (Schriftart, Schriftgröße, Farbe) oder auch den Dateiversand zu ermöglichen wurde der MIME Standard (Multipurpose Internet Mail Extentions) eingeführt. Dieser wurde dann noch einmal als S/MIME (Secure MIME) erweitert.

 

Das Problem:

Eine e-Mail wird vom Absender an einen Server überreicht. Dieser Postausgangsserver übergibt die e-Mail über mehrere Computer an den Posteingangsserver des Empfängers. Dort kann der Empfänger sie lesen oder mit einem e-Mailprogramm (Outlook, Thunderbird, Apple Mail) abholen. Die e-Mail ist auf ihrer Reise durchs Netz vergleichbar mit einer herkömmlichen Postkarte. Jeder Knotenpunkt (Server) kann die Mail öffnen und lesen, ja sogar verändern. Die möglichen Szenarien kann sich jeder selber ausdenken. Viren und Trojaner werden an Mails angehangen. Vertrauliche Informationen werden ausgelesen und verbreitet. 

 

Die Lösung:

Wenn man die virtuelle Postkarte in einen versiegelten Briefumschlag steckt, erkennt der Empfänger sofort die Manipulation bzw. der "Internetbriefträger" kann die Postkarte nicht mehr lesen.

Wir könnten jetzt natürlich alle unsere Mails verschlüsseln, müssten aber jedem Empfänger ein eigenes Passwort zuweisen und dieses auf einem sicheren Weg übermitteln. Das ist jedoch unheimlich aufwändig und völlig praxisfern. Stattdessen nutzen wir das SSL System. Jetzt wird es leider ein wenig technisch...

 

SSL ganz kurz und schnell zusammengefasst:

Die SSL Verschlüsselung nutzt jeder von uns, wenn wir "HTTPS Seiten" besuchen (z.B. beim Onlinebanking, beim Amazoneinkauf etc. Stichwort: die grüne Adressleiste im Browser) Eine vertrauenswürdige Institution stellt dem Nutzer ein digitales Zertifikat aus. Diese Institution ist vertrauenswürdig weil unser Betriebssystem dieses Unternehmen kennt und ihm vertraut.

In diesem Zertifikat befinden sich ein öffentlicher und ein privater Schlüssel. Mit dem öffentlichen Schlüssel kann jeder beliebige Anwender seine Nachricht für den Nutzer verschlüsseln. Zum Entschlüsseln der Nachricht braucht man den privaten Schlüssel. Das Zertifikat wird bei jedem Empfang einer Mail bei der Institution überprüft. Wurde daran manipuliert erhält man eine Warnung. Das Zertifikat kann von der Institution (bei Missbrauch) oder vom Nutzer (bei Verlust oder Diebstahl des privaten Schlüssels) gesperrt werden.

Kleine aber wichtige Information am Rande. Das Schlüsselpaar wird nicht bei der Institution generiert oder gespeichert. Dies geschieht lokal auf Eurem Rechner. Nur ihr seid dafür verantwortlich die Schlüssel nicht zu verlieren.

Ich mag folgenden Vergleich sehr gerne: Der öffentliche Schlüssel funktioniert wie ein Vorhängeschloss. Man verteilt es an seine Freunde. Diese können das Schloss schließen. Zum Öffnen braucht man aber den passenden (privaten) Schlüssel. Diesen sollte man natürlich nicht verlieren oder aus der Hand geben.

 

Genug der Theorie:

Jetzt muss der Nutzer nur noch seinen öffentlichen Schlüssel (das Vorhängeschloss) an alle Empfänger in seinem Adressbuch schicken. Dies geschieht bei S/MIME vollautomatisch. An jede Mail wird der öffentliche Schlüssel angehangen. Dieser Schritt heißt bei S/MIME "signieren". 

Wenn der Empfänger auf diese e-Mail antwortet sendet er dem Nutzer auch seinen öffentlichen Schlüssel. Nun, da beide Kommunikationspartner ihre Schlüssel getauscht haben, wird der e-Mailverkehr zwischen den Beiden codiert und ohne den privaten Schlüssel sieht man nur noch kryptische Zeichenfolgen.

 

Ein Beispiel:

Marie und Peter beantragen bei der vertrauenswürdigen Institution ihrer Wahl (es muss nicht dieselbe sein) jeweils ein Zertifikat und binden es in ihr jeweiliges e-Mailprogramm ein. Marie sendet Peter eine signierte Mail. An diese Mail hängt das Programm automatisch Maries öffentlichen Schlüssel an. Wenn Peter diese Mail öffnet, wird Maries öffentlicher Schlüssel in seinem Mailprogramm eingebunden. Peter antwortet auf diese Mail und auf Maries Rechner wird auch Peters öffentlicher Schlüssel eingebunden. 

Die nächste Mail von Marie wird mit Peters öffentlichem Schlüssel verschlüsselt und kann nur noch mit Peters privatem Schlüssel geöffnet werden. Unerwünschte Mitleser sind nun ausgesperrt.