Was wird gemacht?: Du wirst Mails mit GnuPG verschlüsseln können, auch wenn Du kein Technikfreak bist
Zielgruppe: Anfänger
Dauer: ca. 30 Minuten, inklusive Lesen dieses Tutorials
Credits: Dieses Tutorial stammt von Thomas von der Die Stimme der freien Welt
Lizenz: Dieses Tutorial steht unter der CC BY NC SA Lizenz

Vorbemerkungen

Um den Text lesbarer zu machen, habe ich beschlossen, so wenig Screenshots wie möglich in den Text direkt aufzunehmen - daher gibt’s öfters einen Link auf den Screenshot, wie das alles gerade aussehen sollte, was ihr macht. Alle Screenshots findet ihr auch in meinem Flickr-Set "GnuPG-Installation".

Für die Profis: Ich habe bewusst das GUI-Tool GPG Keychain Access genommen und NICHT alle Befehle in der Shell eingetippt, weil dies potentielle User eher abschreckt und das ganze komplizierter macht, als es sein müsste. Das hier ist nur als Einführung gedacht, Wer alle Optionen von GnuPG verstehen, der sei auf die Dokumentation auf der Seite von GnuPG.org verwiesen. Weiterhin benutze ich bewußt Binärpakete zur Installation. Korrekt ist, dass dies ein potentielles Sicherheitsloch ist. Jedoch ist es für einen Einsteiger egal, ob er ein fertig kompromittiert-compiliertes Paket runterlädt oder den kompromittierten Sourcecode selbst kompiliert – nur dass letzteres etwas aufwendiger ist. Daher: Binärpakete. Glaubensdiskussionen darüber bitte woanders. Und: Ja, ich weiß, dass die Version 1.4.5 des Binärpakets eine potentielle Sicherheitslücke enthält. Das wird aber immer wieder vorkommen und ist nicht zu ändern. Da hilft eben nur: schnell das Update einspielen. Wer unbedingt selbst kompilieren möchte, der findet hier eine Anleitung.

Für die Einsteiger: Ich habe die Dokumentation bewusst ausführlich gehalten. Die ganzen Befehle ließen sich auch auf einer Seite zusammenfassen, aber ich wollte, dass jeder in der Lage ist, dem Ganzen zu folgen.

Möglicherweise wird euch das eine oder andere an dieser Installationsanleitung etwas paranoid vorkommen. Das ist aber okay – alle Sachen, die ich hier erkläre sind tried and true, glaubt mir also erstmal. Und: Der Aufwand entsteht nur einmal am Anfang, das Verschlüsseln selbst geht dann butterweich im Hintergrund vonstatten. Also los geht’s.

Was wir brauchen

Zur Verschlüsselung von E-Mails werden wir drei zusätzliche Software-Komponenten benötigen: MacGPG, GPG Keychain Access und GPGMail.

Bei diesen Komponenten handelt es sich um Open Source-Software, das heißt, der Quelltext dieser Programme ist offen gelegt und kann von jedem auf Fehler oder Hintertüren geprüft werden.

MacGPG basiert auf GnuPG (Abkürzung für GNU Privacy Guard), der mit Abstand beliebtesten und verbreitesten Software zur Verschlüsselung. Es ist ausschließlich kommandozeilenorientiert, was für den einen oder anderen eine Hürde darstellen dürfte. Deshalb gibt es das Tool GPG Keychain Access, womit man die Schlüssel weitestgehend komplett per GUI verwalten kann (ganz ohne Terminal geht’s leider doch nicht). GPGMail dagegen ist ein Plug-In für Apples Mail.app, welches die Benutzung des kommandozeilenorientierten GnuPG auch für normale GUI-Nutzer einfach macht.

Einführung

Bevor wir loslegen ist es zunächst einmal wichtig, kurz zu verstehen, wie GnuPG funktioniert. Befragen wir dazu mal Wikipedia:

GPG verschlüsselt Nachrichten, indem es asymmetrische Schlüsselpaare verwendet, die von den GPG Nutzern individuell erstellt wurden. Die so entstehenden Öffentlichen Schlüssel können mit anderen Nutzern über eine Vielzahl von Kanälen ausgetauscht werden, z. B. Internet Keyserver. Sie sollten unbedingt sehr behutsam ausgetauscht werden, um Identitätsmanipulationen vorzubeugen, da Öffentliche Schlüssel bzw. Identitätsübereinstimmungen mit dem originären Eigentümer des Schlüssels gefälscht werden können. GPG kann nur feststellen, ob die Daten mit einem bestimmten Schlüssel signiert bzw. verschlüsselt wurden. Ob der Schlüssel selbst vertrauenswürdig ist, muss der Anwender entscheiden, schließlich kann jeder einen Schlüssel mit den Angaben fremder Anwender erstellen und ihn auf einen Keyserver laden. Einen aus dem Internet geladenen Schlüssel sollte man also mit größerer Vorsicht behandeln. Zur Überprüfung kann man sich etwa den Fingerabdruck (Hash-Wert), den jeder Schlüssel mit sich tragen sollte, vom vermuteten Eigentümer des Schlüssels z. B. am Telefon vorlesen lassen.

Das trifft es schon recht genau, ist aber immer noch recht komplex formuliert. Ein anderer Versuch der Erklärung:

  • GnuPG basiert auf so genannter asymmetrischer Verschlüsselung. Hierfür benötigt man zwei Schlüssel, die unterschiedliche Aufgaben erfüllen.
  • Man generiert also diese zwei so genannte Zufalls-Schlüssel (die nichts anderes als Zeichen sind, hinter denen ein kryptographischer Algorithmus steht): einen öffentlichen und geheimen.
  • Der öffentliche Schlüssel wird an alle Welt herausgegeben. Er ist eine Art Einwegschlüssel: Man kann damit zwar Nachrichten an jemanden verschlüsseln, aber nicht mehr entschlüsseln.
  • Denn für das Entschlüsseln ist der geheime Schlüssel zuständig, den man - wie es der Name auch sagt - geheim halten sollte. Sobald jemand den Schlüssel physikalisch im Besitz hat, kann er Nachrichten, die mit dem dazu passenden öffentlichen Schlüssel verschlüsselt wurden, lesen. Zur Sicherheit ist daher der geheime Schlüssel mit einem Passwort geschützt. Dieser Schlüssel sollte auf jeden Fall mittels Backup gesichert werden. Ist der geheime Schlüssel weg, kann man keine einzige verschlüsselte Nachricht mehr entschlüsseln.
  • Neben der reinen Verschlüsselung kann das Schlüsselpaar öffentlich-geheim aber noch mehr: Nämlich signieren. Wenn ich eine verschlüsselte Botschaft erhalten habe, will ich ja oft auch zweifelsfrei wissen, WER mir diese Botschaft geschickt hat. Sonst könnte man mir ja auch z. B. einen verschlüsselten Trojaner schicken. Der Trick ist: Ich kann mit dem geheimen Schlüssel zusätzlich Nachrichten signieren (digital unterschreiben) - und mit dem öffentlichen Schlüssel kann ich nachprüfen, ob die Unterschrift auch tatsächlich vom Inhaber des geheimen Schlüssels ist.
  • Da nun aber jeder Mensch Schlüssel generieren kann, muss ich ja auch prüfen können, ob der öffentliche Schlüssel, den ich von irgendjemandem habe, auch tatsächlich dieser Person gehört. Das geht über den so genannten Fingerabdruckvergleich. Wenn ich denjenigen in Persona treffe oder mit ihm telefoniere, kann ich ihm den Fingerabdruck als Zahlen/Zeichenkette vorlesen. Wenn er mir bestätigt, dass dies der richtige Fingerabdruck ist, kann ich mir sicher sein, dass ich seinen öffentlichen Schlüssel in der Hand habe. Das charmante an dem Verfahren ist, dass ich dadurch den öffentlichen Schlüssel über beliebig unsichere Kanäle (z. B. dem Internet, wo alle mithören) übertragen kann, und dennoch danach Nachrichten verschlüsselt übersenden kann.

Die Funktionen der Schlüssel also noch mal im Überblick:

  • Öffentlicher Schlüssel: a) Verschlüsseln von Nachrichten an denjenigen, der den dazu passenden geheimen Schlüssel hat und b) Überprüfen einer Signatur, die mit dem dazu passenden geheimen Schlüssel hergestellt wurde.
  • Geheimer Schlüssel: a) Entschlüsseln von Nachrichten, die mit dem dazu passenden öffentlichen Schlüssel verschlüsselt wurden und b) Signieren einer Nachricht, wobei die Signatur dann mit dem dazu passenden öffentlichen Schlüssel überprüft werden kann.

Man selbst besitzt also immer das Schlüsselpaar geheim-öffentlich und jeder andere besitzt nur den öffentlichen Schlüssel. Wenn mir also jemand eine verschlüsselte E-Mail schicken will, benötigt er meinen öffentlichen Schlüssel (den er sich z. B. von besagten Keyservern holen kann).

Die Verschlüsselungs- und Signierschlüssel können übrigens separat erzeugt werden, dazu später noch mehr. Für die öffentlichen Schlüssel gibt es übrigens durchsuchbare Verzeichnisse, so genannte Schlüsselserver ("Keyserver"). Auch dazu später mehr.

Mit diesem Wissen gerüstet, können wir loslegen und unseren eigenen Schlüssel generieren.

Software-Installation GnuPG

Alle GnuPGPakete finden wir auf einer eigenen Seite bei sourceforge.net:

Wir benötigen "GnuPG for OS X" und "GPG Keychain Access". Alle verfügbaren Files jeweils mit einem Klick auf das grüne "Download" ansehen. Von GnuPG brauchen wir die Datei GnuPG1.4.x.dmg, von GPG Keychain Access GPG_Keychain_Access.0.7.x.x.zip. Gegebenenfalls muss man jetzt noch einen Mirror auswählen.

Nun sollten sich auf dem Desktop diese beiden Dateien befinden

Bevor wir sie wir sie jeweils doppelklicken und installieren prüfen wir nach, ob die Files tatsächlich korrekt sind. Dafür öffnen wir das Programm "Terminal", welches wir noch öfters brauchen werden: Es befindet sich in Programme → Dienstprogramme → Terminal.

In dem nun erscheinenden Fenster tippen wir "md5 " (ja, mit Leerzeichen) und ziehen anschließend das Icon des GnuPG-Pakets ins Fenster und drücken Return:

Wenn alles richtig lief steht da nun:

meinrechner:~ $ md5 /Users/xxx/Desktop/GnuPG1.4.5.dmg
MD5 (/Users/xxx/Desktop/GnuPG1.4.5.dmg) = b164ca16abffaceeb4d4198cc4bec8df

Dieser so genannte MD5-Fingerabdruck des Files (b164...) MUSS, sofern ihr auch die Version 1.4.5 einsetzt, mit der Angabe auf der Homepage von MacGPG unter "Files" übereinstimmen.

Wenn NICHT, dann hört bitte an dieser Stelle SOFORT auf und fragt einen Experten bzw. hinterlasst einen Kommentar hier im Blog! In diesem Fall ist wahrscheinlich das Package kompromittiert und könnte einen Virus/Trojaner/etc. enthalten.

Das gleiche wiederholt ihr für das Keychain-Access-Paket: "md5 " tippen, Paket ins Fenster ziehen, Return drücken und überprüfen:

meinrechner:~ $ md5 /Users/bach/Desktop/GPG_Keychain_Access.0.7.0.1.zip
MD5 (/Users/bach/Desktop/GPG_Keychain_Access.0.7.0.1.zip) = 69a9dcd3bd90e9ddf993a368e5181512

Nun sind wir uns also sicher, daß wir die richtigen Pakete haben – als nächstes brauchen wir eine Konfigurationsdatei für GnuPG, in welcher einige Standard-Werte korrekt gesetzt werden. Dafür tippen wir im Terminal:

mkdir .gnupg
cat > ~/.gnupg/gpg.conf < < EOF
expert
no-allow-non-selfsigned-uid
no-greeting
no-secmem-warning
escape-from-lines
lock-once
keyserver wwwkeys.de.pgp.net
personal-cipher-preferences S9 S8 S7 S10
personal-digest-preferences H10 H9 H8 H3 H2
personal-compress-preferences Z3 Z2 Z1
EOF

(zwischen den beiden rechts offenen spitzen Klammern darf KEIN Leerzeichen sein!)

Anschließend installieren wir die heruntergeladene Software: Im DMG-File befindet sich ein Paket-Installer, den man mit Hilfe eines Doppelklicks öffnet. Einfach alle Optionen bestätigen und schon hat man GnuPG auf der Platte. Das ZIP-File von Keychain Access entpackt wiederum in ein Directory, in dem sich ein Programm namens "GPG Schlüsselbund", welches ihr in euren Programme-Ordner zieht und anschließend öffnet.

Schlüssel erstellen

Nach dem Start von GPG Schlüsselbund erkennt das Programm automatisch, dass wir noch kein Schlüsselpaar erstellt haben, unser Schlüsselbund also leer ist (Screenshot). Zuerst werden wir ein Schlüsselpaar zum Signieren erstellen:

Anmerkung vorab: Wer von den etwas versierteren Anwenden den Prozess der Schlüsselgenerierung von Hand initiieren will, der tippe im Terminal

gpg --gen-key

Alle anderen fahren bitte wie folgt fort: Wir klicken also auf Anlegen, woraufhin uns ein Assistent begrüßt:

Wir bestätigen mit "Weiter" und müssen eine Schlüsselart für das zu erstellender Schlüsselpaar wählen: RSA oder DSA (Screenshot).

Es handelt sich hierbei um zwei verschiedene kryptografische Verfahren. RSA gibt es schon seit Jahren und ist weitestgehend erforscht. DSA ist ein neueres Verfahren, was prinzipiell auf dem gleichen mathematischen Problem beruht, komplexer zu verstehen ist und dafür aber kürzere Signaturen produziert. Im Prinzip kann man sagen, dass es nach Stand der Forschung egal ist, was man nimmt, aber ich nehme grundsätzlich RSA. Einfach weil es am längsten erforscht und deutlich einfacher zu implementieren ist, was das Risiko von Fehlern zumindest einschränkt. Letztlich ist es eine Glaubensfrage, meine Empfehlung lautet jedenfalls für diese Option: «RSA (nur für Signaturen)».

Anschließend könnt ihr die Länge des Schlüssels in Bits wählen (Screenshot). Es sollten mindestens (!) Bits 2.048 sein. 1.024 Bits gelten bereits als nur noch bedingt sicher (siehe auch hier und hier), während man 2.048 Bit beruhigt nehmen kann (und auch unbedingt sollte). Der paranoide Profi baut aber in die Zukunft vor und wählt 4.096 Bit, woran sich zumindest die nächsten 5-6 Jahre jeder massiv die Zähne dran ausbeißen sollte. Einziger Nachteil: Das Verschlüsseln dauert etwas länger. Wenn ihr einen neuen Core Duo Intel-Mac habt, dann nehmt 4.096, falls ihr noch einen alten G4 habt, könnt ihr auch 2.048 nehmen.

Als nächstes wird das Ablaufdatum gesetzt (Screenshot). Das müsst ihr nicht unbedingt tun, aber es hat den Vorteil, dass der Schlüssel beim Verlust des Originals (nana, kein Backup?) irgendwann mal automatisch ausläuft. Denn wenn ihr den Schlüssel einmal veröffentlicht habt, gilt er ansonsten unendlich lange. Das Setzen eines Ablaufdatums für den Signierschlüssel in naher Zukunft (z. B. 1 Jahr) ist ein wenig paranoid - und bei einem guten Backup könnt ihr auch drauf verzichten, was ich euch aus Gründen der einfacheren Benutzbarkeit auch empfehlen würde. Ansonsten empfiehlt über den Daumen gepeilt sich ein Ablaufdatum in ca. 10 Jahren. Das solltet ihr auch auf jeden Fall setzen.

Nun wird es interessant: Ihr könnt jetzt eure Identität eingeben (Screenshot). Im Prinzip ist es egal, was ihr beim Namen angebt, da kann auch Mickey Mouse stehen - aber das Problem ist, dass euch dann auf den oben schon angesprochenen Schlüsselservern möglicherweise jemand nicht findet. Auf jeden Fall sollte die E-Mail-Adresse stimmen, damit die automatische Verschlüsselung funktioniert. Ihr könnt später auch noch andere E-Mail-Adressen hinzufügen (nicht in dieser FAQ beschrieben), aber zum Anfang sollte man erstmal die hauptsächlich genutzte E-Mail-Adresse verwenden. Hinweis: Als Realnamen akzeptiert GnuPG Keychain Access leider KEINE Umlaute!

Anschließend kann man für seinen geheimen Schlüssel ein Passwort wählen (Screenshot). Wenn also jemandem mal die Datei in die Hände fallen sollte, dann hat er immer noch keinen direkten Zugriff auf eure verschlüsselten Daten, solange er das Passwort nicht weiß. Wählt daher ein sicheres Passwort, am besten mit Groß- und Kleinbuchstaben sowie Zahlen und Sonderzeichen. "Hansi" ist schlecht, "dB!mKqp$2" ist dagegen gut.

Fast fertig. Jetzt kann ich die Daten noch mal überprüfen (Screenshot) und anschließend wird der Schlüssel generiert (Screenshot), was eine Weile dauern kann.

So weit so gut, so sieht also unser Schlüsselbund aktuell aus:

In der Übersicht wird sowohl unter «Öffentlich» wie auch unter «Geheim» (Screenshot) euer neuer Schlüssel angezeigt. Dieser achtstellige Zahlen-Zifferncode (hier: 45652040) ist übrigens die ID eures Schlüssels, damit kann man ihn weltweit einfach identifizieren. Wenn also jemand euren Schlüssel sucht, könnt ihr ihm auch einfach diese ID in die Hand drücken.

Wie bereits oben beschrieben haben wir bisher nur ein Schlüsselpaar zum Unterschreiben (signieren) angelegt, jetzt brauchen wir noch ein Paar zum Verschlüsseln. Diesen Vorgang nennt man Anlegen eines Subkeys. Ungünstigerweise kann dies die aktuelle Version vom GnuPG Schlüsselbund nicht über das GUI, so dass wir kurz ein wenig in die Kommandozeile gehen müssen.

Zunächst müsst ihr euren Schlüssel auswählen (die Zeile anklicken) und Schlüssel → Bearbeiten wählen oder Apfel-Option-E drücken (Screenshot).

Nun landet ihr im Terminal im Bearbeitungsmodus für euren eigenen Schlüssel:

Hier müßt ihr zunächst mittels des Kommandos "addkey" ansagen, daß ihr einen neuen Unterschlüssel (Subkey) erzeugen möchtet. Nun werdet ihr gefragt, welche Art Schlüssel es werden soll (Screenshot).

In jedem Fall müßt ihr einen "Encrypt only"-Schlüssel anlegen, wie bereits oben gesagt, empfehle ich RSA. Also tippen wir "6" (siehe letzter Screenshot). Auch hier müßt ihr wiederum die Schlüsselgröße angeben. Wie oben beschrieben empfehle ich 4096, für ältere Maschinen ist auch 2048 okay. 1024 ist jedenfalls zu wenig.

Last but not least kann auch hier wieder ein Ablauf-Datum eingegeben werden (Screenshot). Bei diesem Schlüssel, der ja nicht fürs Signieren, sondern fürs Verschlüsseln zuständig ist, ist dies für den paranoiden Anwender möglicherweise durchaus sinnvoll: Falls euer Schlüssel geknackt wird, ist maximal die E-Mail-Kommunikation von einem Jahr kompromittiert. Nachteil: Die Leute, die an euch verschlüsselte E-Mails senden, müssen regelmäßig euren Schlüssel auf den neuesten Stand bringen. Entscheidet selbst, bei einem 4096-Bit-Schlüssel kann man jedoch auch auf die intensive Nutzung von Verfallsdaten verzichten. In jedem Falle solltet ihr den Schlüssel so in ca. 10 Jahren verfallen lassen. WENN ihr ein kürzeres Expiry-Datum setzt, dann müsst ihr diese hier beschriebene Prozedur des Subkey-Anlegens regelmäßig vor Ablaufen des Expirys wiederholen! Sonst kann euch niemand mehr verschlüsselte Nachrichten senden.

Nach kürzerem oder längerem Warten ist dann die Schlüsselgenerierung abgeschlossen. Ihr könnt die Maske mit dem Befehl "save" verlassen und dann schließlich das Terminal-Fenster schließen (Screenshot).

Damit ist die Schlüsselgenerierung erstmal abgeschlossen. Am besten ihr beendet nun das Programm GPG Schlüsselbund komplett (Apfel-Q) und öffnet es wieder erneut, um zu sehen, ob alles funktioniert hat. Schaut im Tab "Geheim" nach, ob euer Screen nun ungefähr so aussieht wie folgt:

Wir haben also einen geheimen Schlüssel zum Signieren (sec), einen Unterschlüssel (sub) zum Verschlüsseln und eine Identität, nämlich die E-Mail-Adresse, die wir vorhin eingegeben haben. Gleiches gilt natürlich auch für den öffentlichen Schlüssel.

Weitere Informationen erhaltet ihr, wenn ihr euren Schlüssel anklickt und Schlüssel → Informationen einblenden im Menü auswählt (oder Apfel-I) drückt (Screenshot).

Wenn alles soweit richtig ist, solltet ihr nun einen so genannten "Revocation Certificate" generieren. Ihr könnt zwar jederzeit euren Schlüssel "zurückrufen" (sprich für ungültig erklären, z. B. wenn euer Laptop geklaut wurde, an dem das Post-It mit dem GnuPG-Paßwort hing) - aber dafür braucht ihr den geheimen Schlüssel. Falls dieser auch nicht mehr da ist, dann hilft euch das "Revocation Certificate", was wir gleich generieren werden. Dieses kann nämlich auf jeden beliebigen Schlüsselserver geladen werden und sorgt dafür, dass euer Schlüssel sofort für ungültig erklärt wird. Mehr kann man mit diesem Revocation Certificate jedoch nicht tun - sprich man kann damit auch nicht eure E-Mail entschlüsseln oder Signaturen erstellen. Optimalerweise speichert man das Revocation Certificate auf CD-Rom, druckt es zur Sicherheit noch mal aus und deponiert den Ausdruck bei einem Freund oder bei den Eltern.

Bedenkt, daß das Zurückrufen von Schlüsseln auch aus rechtlichen Gründen wichtig sein kann: Ansonsten kann potentiell der neue Besitzer eures geheimen Schlüssels in eurem Namen signierte Mails versenden. Und da wird die Beweislast bestimmt nicht trivial zu widerlegen sein. So ein Fall war zwar meinem Wissen nach noch nie vor Gericht - aber better safe than sorry.

Und so geht’s:

Ihr klickt euren Schlüssel an und wählt im Menü Schlüssel → Bearbeiten. Ihr seid nun wieder in der Maske zum Bearbeiten des Schlüssels (z. B. zum Hinzufügen weiterer Schlüssel). Diese verlassen wir mit Hilfe des Befehls "quit". Ihr seht, daß vorher das gpg-Programm mit dem Parametern "--edit-key" und der ID eures Keys aufgerufen wurde (die lange Ziffern-Buchstabenkombination). Gebt nun ein:

gpg --gen-revoke <eure-key-id>

Anstatt die ID abzutippen könnt ihr auch einfach die ID von oben per Doppelklick kopieren (Apfel-C) und wieder einfügen (Apfel-V) (Screenshot).

Wenn ihr das nun getan habt, fragt euch GnuPG, ob ihr wirklich ein solches Revocation Certificate generieren wollt. Beantwortet das mit "y" und ihr könnt nun noch einen Grund eingeben (Screenshot). Das ist nicht weiter relevant, ihr könnt 0 für "No reason specified" wählen und ggf. noch einen allgemeinen Text eingeben.

Anschließend gibt euch GnuPG das Revocation Certificate im Terminal als Klartext aus (Screenshot).

Nutzt nun die Copy-Paste-Funktion und kopiert diesen Text z. B. in TextEdit und a) speichert ihn einmal auf eure Festplatte und b) druckt ihn aus (Screenshot)! Lasst das Terminal noch offen!

Nun sind wir fast fertig - bevor wir unseren neuen Schlüssel veröffentlichen und der Welt mitteilen, machen wir vorher ein Backup! Denkt an dieser Stelle gar nicht daran, etwas anderes zu tun - erst wird der Schlüssel gesichert!

Wechselt wieder ins Terminal (falls ihr es doch geschlossen habt, Schlüssel anklicken, Bearbeiten im Menü auswählen und quit tippen) und tippt folgende Zeile (Screenshot):

cp -r .gnupg Desktop/gnupg-backup

Anschließend müsstet ihr einen neuen Ordner namens "gnupg-backup" auf eurem Desktop haben. Diesen sichert ihr nun gemeinsam mit eurem gespeicherten Revocation Certificate auf einem USB-Stick, den ihr sicher verstaut - und brennt zusätzlich eine CD-ROM, die ihr ebenfalls an einem sicheren Ort verstaut!

Schlüsselserver und Import von öffentlichen Schlüsseln

Jetzt haben wir zwar einen Schlüssel – aber die Welt muss noch davon erfahren, damit euch auch jemand verschlüsselte E-Mails senden kann. Für die Bekanntmachung gibt es so genannte Schlüsselserver, an die man öffentliche Schlüssel senden kann und von wo aus sie dann jeder GnuPG-Nutzer abrufen kann. Wohlgemerkt: Die Schlüsselserver überprüfen in keiner Weise die Identität des Schlüssels, der dort hochgeladen wird – sie speichern ihn nur und geben die Schlüssel weiter. Wir könnten uns also auch als Steve Jobs ausgeben. Auf die Identitätsproblematik und die Lösung dafür, das Signieren von Schlüsseln, kommen wir später noch mal zurück.

Grundsätzlich sollte man nur Schlüssel auf einen Keyserver hochladen, für die man vorher wie wir einen Revocation Certificate erzeugt hat - man kann nämlich einmal hochgeladene Schlüssel nie mehr von den Schlüsselservern löschen, außer man erklärt sie durch das Revocation Certificate für ungültig. Da die Schlüsselserver unabhängig voneinander sind und sich synchronisieren, ist also Vorsicht geboten, da die Information weltweit verteilt wird.

Ein Hinweis zur Vollständigkeit: Leider werden die Schlüssel-Verzeichnisse auch inzwischen von Spammern durchsucht. Es kann also sein, dass eure vorher nirgends publizierte E-Mail-Adresse beim Veröffentlichen auf Schlüsselservern Spam bekommt. Wer das nicht möchte, sollte sich überlegen, seinen Schlüssel ggf. nicht auf einen solchen Server hochladen!

Das Publizieren auf einem Schlüsselserver ist äußerst einfach - man klickt den hochzuladenden Schlüssel an und wählt den Menüpunkt Schlüssel → zum Schlüsselserver senden (Screenshot). Das sich öffenende Terminal-Fenster informiert über die Aktion und kann anschließend geschlossen werden.

Den Schlüsselserver haben wir schon vorhin in der Konfigurationsdatei gpg.conf ausgewählt - es handelt sich um http://www.wwwkeys.de.pgp.net. Dieser bietet übrigens auch ein Web-Interface an, um nach Schlüsseln zu suchen.

Das Suchen eines Schlüssels auf einem Schlüsselserver wollen wir jetzt mal exemplarisch durchführen, um anschließend den gefundenen öffentlichen Schlüssel in den eigenen Schlüsselbund zu importieren.

Apple unterhält einen eigenen GnuPG-Key, um Mails mit Sicherheitsankündigungen signieren zu können. Diesen Schlüssel wollen wir importieren. Die E-Mail-Adresse, von der die Mails von Apple geschickt werden, lautet product-security [snail] apple [period] com.

Wir wählen also im Menü Schlüssel → Schlüssel suchen aus und geben die oben genannte E-Mail-Adresse im entsprechenden Dialog ein (Screenshot).

Offensichtlich gibt es mehrere gefundene Schlüssel, Apple erzeugt anscheinend jedes Jahr einen neuen. Wir wählen also den ersten Schlüssel (Nr. 1) aus, woraufhin dieser heruntergeladen und in unseren Schlüsselbund importiert wird (Screenshot). Das Terminal-Fenster können wir jetzt schließen.

Der neue Schlüssel taucht nun in unserer Schlüsselbundliste auf (im Zweifelsfalle zum Aktualisieren kurz zwischen Geheim und Öffentlich hin- und herklicken) (Screenshot). Mit dem bereits verwendeten Menüpunkt "Informationen einblenden" sehen wir weitere Details, unter anderem den Fingerabdruck des Schlüssels (Screenshot).

Um sicherzugehen, dass der Schlüssel auch tatsächlich von Apple kommt, vergleichen wir den Fingerabdruck mit den Informationen auf Apples Web-Site: http://www.apple.com/de/support/security/pgp/ - dort ist nämlich deren Fingerprint aufgeführt (Screenshot).

Und siehe da, die Informationen stimmen überein - der Schlüssel ist authentisch. Von nun an können wir also überprüfen, ob Mails, die vorgeben von Apple zu kommen auch wirklich von Apple kommen - und außerdem könnten wir Apple auch verschlüsselte Mails senden (wer immer die dann auch liest).

Tatsächlich können wir jetzt sogar so weit gehen und wiederum den öffentlichen Schlüssel von Apple selbst signieren - da wir überprüft haben, dass es tatsächlich von Apple stammt. Wohlgemerkt, wir reden hier über das Signieren eines Schlüssels, nicht über das Signieren einer E-Mail.

Exemplarisch sieht das so aus: Wir wählen im Menü Schlüssel → Signieren aus (Screenshot) und haben nach einer Sicherheitsabfrage (Screenshot) den Schlüssel tatsächlich signiert. Wir könnten diesen nun wieder an den Schlüsselserver um zu demonstrieren, daß wir diesem Schlüssel unsererseits Echtheit bestätigen.

Damit dieses "Web Of Trust", also das gegenseitige Vertrauen, dass ein bestimmter Schlüssel auch genau dieser Person gehört, tatsächlich funktioniert, sollte man mit dem Unterschreiben von fremden Schlüssel äußerst vorsichtig und restriktiv sein. Erst wenn man den Fingerprint gecheckt hat (am besten telefonisch oder in Persona - zumindest über eine Website) und sicher ist, dass derjenige auch wirklich die Person ist, die er vorgibt zu sein - DANN sollte man erst signieren.

Natürlich kann man Schlüssel nicht nur über Schlüsselserver importieren, sondern auch über den entsprechenden Button innerhalb von GPG Schlüsselbund (und natürlich auch exportieren).

Wenn man sehen will, welche Leute bereits einen Schlüssel signiert haben, klickt man den betreffenden Schlüssel an, wählt im Menü Schlüssel → Bearbeiten und tippt nun den Befehl "check". GnuPG zeigt uns nun, wer von den Leuten in unserem Schlüsselbund diesen Schlüssel ebenfalls signiert hat (Screenshot).

Eine letzte Anmerkung zum Schlüsselmanagement noch zum Schluß: Da über die Zeit zu einem Schlüssel neue Signaturen hinzukommen können bzw. abgelaufene Subkeys durch neue ersetzt werden können, sollte man regelmäßig den eigenen Schlüsselbund gegen die Keyserver abgleichen. Dafür wählt man einfach alle Schlüssel aus (alternativ Apfel-A drücken) und ruft im Menü Schlüssel → Abgleichen auf (Screenshot). Nun werden die Schlüssel automatisch gegen den Keyserver abgeglichen und die Änderungen im eigenen Schlüsselbund eingearbeitet.

PlugIn für Mail.app

So weit so schön - wir haben jetzt einen Schlüssel, gegebenfalls schon einige öffentliche Schlüssel von Freunden über Keyserver importiert - wie versenden wir denn nun unsere erste verschlüsselte Mail? Dafür benötigen wir zunächst das PlugIn "GPGMail" (Download für 10.4 Tiger hier).

Auch hier gilt: erstmal die Integrität des Paketes wie oben beschrieben prüfen, also im Terminal via:

md5 /Users/xxx/Desktop/GPGMail-10.4.dmg

Das Ergebnis, was zurückkommen muss (4c7d60d3d5997961908e625b3f4de7a8 für die 10.4-Tiger-Version) steht auch hier auf der Download-Seite von GPGMail.

Dann muss die Installationsanleitung befolgt werden. Bei 10.4.1 Tiger (oder höher) ist es vor der Installation von GPGMail notwendig, noch mal ins Terminal zu gehen und die folgenden Befehle einzugeben:

defaults write com.apple.mail EnableBundles -bool true
defaults write com.apple.mail BundleCompatibilityVersion 2

Nun beenden wir Mail.app, öffnen das herunter geladene .dmg-File von GPGMail und benutzen den mitgelieferten selbsterklärenden Installer.

Wenn wir nun Mail.app wieder starten, dann rufen wir das Einstellungs-Fenster auf (oder drücken Apfel-,). Nun müsste ein neues Icon "PGP" im Einstellungsdialog auftauchen:

Dann habt ihr es schon fast geschafft. Am besten ihr übernehmt beim Verfassen-Dialog meine Einstellungen analog zum Screenshot.

Im Tab "Ansicht" habe ich nur die Optionen "Nachrichten automatisch authentifizieren" und "Nachrichten automatisch entschlüsseln aktiviert". Im Schlüssel-Tab habe ich eingestellt, dass das Kennwort im Schlüsselbund gespeichert werden soll. Dadurch muss man nicht bei jedem Entschlüsseln einer Mail immer wieder erneut das Kennwort eingeben, sondern das Plug-In schreibt es in den accountweiten Schlüsselbund, der wiederum mit dem eigenen Login-Passwort verschlüsselt ist.

Das war’s dann schon. Zum Test könnt ihr mal eine verschlüsselte E-Mail an euch selbst schreiben - wobei ihr beim Erstellen der Mail auswählen könnt, ob ihr verschlüsseln und signieren wollt:

Klickt beides an - und dann solltet ihr eine von euch verschlüsselte E-Mail erhalten, die ihr natürlich auch wieder selbst entschlüsseln könnt.

Herzlichen Glückwunsch! Das war alles!

Verweise

Kategorie
Mailprogramme, Sicherheit, Tutorials

Zuletzt geändert am 21.02.2007 09:43 Uhr von Walljet ( Besuche)

© 2004 – 2024 ApfelWiki

Impressum - Datenschutz

cb