E-Mails signieren & verschlüsseln Linux-Info-Tag Dresden - 8. Oktober 2006 1 Einleitung 1.1 Willkommen Karl Deutsch Österreich Seit 1985 im IT-Bereich Seit 1997 Linux als Desktopbetriebssystem IT Berater Buchautor: Millin und Franzis 1.2 Internet und Netzwerke Sicherheitskonzept Ein umfassendes Sicherheitskonzept hat u. a. diese Elemente: Sichere Passwörter Regelmäßige Backups Verschlüsselte Kommunikation über Netzwerke: SSH, VPN,... Verschlüsselte Verbindung für POP, SMTP und IMAP E-Mails: signiert bzw. verschlüsselt Serverzertifikate Verschlüsselte Partitionen (/home, /tmp, /var) PGP - GnuPG PGP: 1991 veröffentlichte Phil Zimmermann Pretty Good Privacy, damit auch Privatpersonen und Bürgerrechtsbewegungen ihre Privatsphäre schützen können. GnuPG (= GNU Privacy Guard): Open-Source Variante von PGP Kryptographie - Verfahren symmetrisches Verfahren Derselbe Schlüssel wird für Ver- und Entschlüsselung verwendet. Problem: Schlüssel muss anderen übermittelt werden. asymmetrisches Verfahren (Public-Key-Verfahren) Teilnehmer besitzt zwei Schlüssel, die gemeinsam erstellt werden: privater Schlüssel (Private Key): durch Passwort (Passphrase, Mantra) geschützt. Muss geheim bleiben! öffentlicher Schlüssel (Public Key): per E-Mail oder über Keyserver verbreitet. Ein Schlüssel wird zum Verschlüsseln, der andere zum Entschlüsseln verwendet. 1
2 Vertrauensnetzwerk 2.1 Authentifizierung Authentifizierung Zertifikat bestätigt die Authentizität von öffentlichen Schlüsseln: Aussteller sind Anwender (= PGP-Modell) Aussteller sind Autorisierungsstellen (CA = Certificate Authorities). Nicht kommerzielle Autorisierungsstelle CAcert (www.cacert.org und cacert.at). 2.2 Web of Trust Web of Trust PGP-Modell baut Vertrauensnetzwerk (Web of Trust) auf. Jeder Teilnehmer kann den öffentlichen Schlüssel eines anderen signieren und so verbürgen, dass die Angaben korrekt sind. Nachweis der Identität durch amtliche Dokumente. Identifizierung erfolgt durch gegenseitiges Unterschreiben der öffentlichen Schlüssel. Keysigning Party Menschen treffen sich, um gegenseitig ihre PGP Schlüssel zu signieren. Alle Teilnehmer senden öffentlichen Schlüssel vor der Party an Koordinator oder einen Keyserver. Während der Party wird die Vorlage von amtlichen Dokumenten (z. B. Personalausweis, Reisepass oder Führerschein) verlangt. Verantwortungsvolles Verhalten Funktionierendes Vertrauensnetzwerk setzt voraus, dass sich jeder Teilnehmer verantwortungsvoll verhält. Sorgloses Signieren von Schlüsseln durchlöchert dieses Netzwerk. Nie den eigenen privaten Schlüssel per E-Mail oder im Internet verbreiten. 3 gpg 3.1 Schlüsselpaar erstellen Schlüsselpaar erstellen gpg --gen-key Fragen: Schlüsselart: DSA und ElGamal Schlüssellänge: 1024 Bit (Standard) Gültigkeitsdauer: 0... verfällt nie User-ID: Name, E-Mailadresse, Kommentar Passphrase (Mantra, Passwort): Wer diese kennt, kann Mails fälschen. 2
3.2 Der Schlüsselbund Der Schlüsselbund Anzeigen der Schlüsselinformationen: gpg --fingerprint ID gpg --fingerprint BEE70AB2 gpg --fingerprint kdeutsch gpg --fingerprint kdeutsch > fingerprint.asc Auflisten vorhandener Schlüssel: gpg --list-keys 3.3 Sperrzertifikat (Revocation Certificate) Sperrzertifikat (Revocation Certificate) Mit dem Sperrzertifikat ist es möglich, veröffentlichten Schlüssel für ungültig zu erklären. Sofort anwenden, wenn Verdacht besteht, dass Schlüssel in falsche Hände geraten ist. Danach: neues Schlüsselpaar erstellen. Erstellen Befehle: cd.gnupg gpg --armor --output rc.asc --gen-revoke ID Fragen: Anwenden Widerrufszertifikat erzeugen? Grund für den Widerruf Optionale Beschreibung Passphrase Befehle: cd.gnupg gpg --import rc.asc gpg --send-keys ID Schritt kann nicht widerrufen werden! 3
3.4 Daten sichern Sichern der Daten 1. Alle Dateien aus Verzeichnis.gnupg auf Datenträger kopieren. 2. Sperrzertifikat ausdrucken. 3. Ausdruck von USER-ID und Fingerabdruck. 4. Datenträger und Ausdrucke an sicherem Ort aufbewahren. 3.5 Schlüssel veröffentlichen Schlüssel direkt veröffentlichen gpg --send-keys ID Veröffentlichung erfolgt auf Keyserver wie subkeys.pgp.net Keyserver ist in Konfigurationsdatei.gnupg/gpg.conf eingetragen. Keyserverzeichnis: www.radiologie-informatik.de/ keyserver/pgp_keyserver.html. Server gleichen sich immer wieder ab. Exportieren und veröffentlichen 1. Export in eine Datei: gpg --armor --output kdeutsch.asc --export ID 2. Versenden der erstellten Datei per E-Mail. 3. Empfänger sollen Schlüssel importieren, signieren und veröffentlichen. 3.6 Schlüssel erhalten Suchen und importieren Suchen eines Schlüssels: gpg --search-keys kdeutsch@go-linux.at Wenn gefunden importieren Wenn ID bekannt Befehl: gpg --recv-keys kdeutsch@edv-werkstatt.com gpg --recv-keys ID Datei importieren Wenn Sie den Schlüssel als Anhang mit einem E-Mail bekommen haben, dann importieren Sie ihn so: gpg --import DATEI 4
3.7 Schlüssel signieren Schlüssel signieren 1. In den Editiermodus: gpg --edit-key ID 2. Unterschreiben: sign 3. Frage: Art der Überprüfung. 4. Passphrase eingeben 5. Speichern: save. 6. Schlüssel veröffentlichen. 3.8 Schlüssel entfernen Einen Schlüssel entfernen gpg --delete-key ID 3.9 Datei verschlüsseln Datei verschlüsseln gpg --recipient "kdeutsch" --encrypt --armor DATEI Ergebnis hat die Erweiterung asc oder gpg. 3.10 Datei entschlüsseln Datei entschlüsseln gpg --decrypt DATEI > AUSGABEDATEI Bei mehreren Identitäten wird auch hier Parameter recipient verwendet. 4 Grafische Oberflächen Grafische Oberflächen GPA (GNOME): wald.intevation.org/projects/gpa Seahorse (GNOME): www.gnome.org/projects/seahorse Geheimnis (KDE): geheimnis.sourceforge.net KGPG (KDE): developer.kde.org/ kgpg 5
5 Beispiele 5.1 Beispiele Beispiele KGPG Evolution KMail Thunderbird 6 Danke, Feedback & Kontakt Danke, Feedback & Kontakt Danke für Ihre Aufmerksamkeit! Onlineformular für Feedback: feedback.go-linux.at Fragen per E-Mail an kdeutsch@go-linux.at Unterlagen: emails.go-linux.at Links www.rubin.ch/pgp/pgp www.pro-linux.de/berichte/gnupg.html www.gnupg.org/gph/de/manual/book1.html www.gnupg.org www.gnupp.de 6