Sichere E-Mail - Hackerspace Bremen eV
Transcrição
Sichere E-Mail - Hackerspace Bremen eV
Sichere E-Mail Axel Kielhorn Hackerspace Bremen 2014 1 Für alle offen E-Mail ist . . . • eine Postkarte • eine Postwurfwendung • unsicher Internet E-Mail, so wie wir sie heute kennen, basiert auf RFC 822 aus dem Jahre 1982. In den 80er Jahren gab es weitere Mail Netzwerke, wie das FidoNet (1984), MausNet (1984), Z-Netz (1984), sowie die Onlinedienste CompuServe (1969) und AOL (1985). Diese Dienste benutzten eigene Formate und wurden in den 90ern über Gateways an das Internet angeschlossen. Heute gibt es mit de-mail ein neues Parallelsystem ohne Verbindung zur Internet Mail. 2 Sichere E-Mail Sichere E-Mail SSL / TLS: Mailprogramm an Server Signatur: Verifizierter Absender Verschlüsselung: Geschützter Inhalt Umgangssprachlich wird immer noch der Begriff SSL (Secure Sockets Layer) benutz, pratisch ist dieses Protokoll jedoch veraltet und durch TLS (Transport Layer Security) abgelöst. Die aktuelle Version TLS 1.2 (2008) bietet zusätzlich forward secrecy und verwendet damit für jede Verbindung einen neuen Schlüssel. Ohne diese Erweiterung ist es möglich aufgezeichnete Verbindungen zu entschlüsseln, wenn der Schlüssel bekannt wird. Neben der TLS Version kommt es auch auf das verwendete Verschlüsselungsverfahren an. DES, RC2, 3DES und RC4 sind auch bei Verwendung von TLS nicht sicher, die beiden ersten werden daher von TLS 1.2 nicht mehr unterstützt. Laut c’t[2] verwenden die großen deutschen Anbieter web.de und GMX zwar TLS 1.2, jedoch keine forward secrecy. Lediglich mail.de und gmail sind auf dem Stand der Technik. Besonders negativ fällt T-Online auf, die immer noch SSL v3 und 3DES benutzt. Die Anbieter web.de, GMX und T-Online wollen bis zum Frühjahr ihre Server auf den Stand der Technik bringen. Zwei Anbieter, die bereits jetzt sichere Mail anbieten sind https://www.jpberlin.de/ und https://posteo.de/. Ein Postfach kostet 1 A C pro Monat und bietet 1 bzw. 2 GB Speicherplatz. 1 3 Restrisiko Tracking Wer hat was wann gelesen? Durch verlinkte Bilder (1 Pixel Bilder oder Logos) die vom Server abgerufen werden, kann der Absender das Öffnen der Mail protokollieren. Phishing Mail von der Bank? Nachgemachte Mails von Banken oder Paypal versuchen Nutzer auf gefälschte Webseiten zu locken. Nach Eingabe des Benutzernamens und Passworts ist dann die Identität und das Geld weg. Metadaten Wer kommuniziert mit wem? Auch bei verschlüsselter Mail bleibt der „Umschlag“ lesbar, da er für den Transport der Mail benötigt wird. 4 Signatur Signatur • Elektronische Signatur (S/MIME X.509 oder PGP) 2 • Absender hat Kontrolle über die Mail Adresse (Fehler in Thunderbird 24.1.0) Es gibt zwei Absender: From: und Sender:. Thunderbird hat From: angezeigt, aber die Signatur von Sender: überprüft. • Empfänger muss der Signatur vertrauen 5 Verschlüsselung Verschlüsselung • Absender benötigt öffentlichen Schlüssel des Empfängers • Sicherer Schlüsselaustausch • Was passiert mit veralteten Schlüsseln (1024 bit)? 6 S/MIME S/MIME • S/MIME wird von den meisten Mailprogrammen unterstützt (außer mobil, hier nur Apple Mail ab iOS 5) • Integration im Betriebssystem • Einfach zu bedienen S/MIME Vertrauen • Zentrale Vergabe durch CA (Certification Authority) (Kosten: Symantec 23 $ US / Jahr) • Hierarchisches Vertrauensmodell • Vertrauen in CA wichtig – DigiNotar – ANSSI (Google für franz. Innenministerium) – Comodo Security Solutions, Inc – Web.de – ich – CAcert.org CAcert.org • Eingetragener Verein (Australien) • Kostenlos für Privatnutzer • Überprüfung durch Mitglieder (CAP-Formular) • CAcert signiert auch PGP Schlüssel 3 Um ein Zertifikat zu beantragen, muss man Mitglied im CAcert werden. Als CAcert Mitglied erkennt man die Vertragsbedingungen (CCA CAcert Community Agreement) an. Daraus ergeben sich Risiken und Pflichten: Risiken: Mitglied kann jederzeit Beteiligter in einer Arbitration werden Haftung: Haftungslimitierung auf 1000 A C z. B. bei Falschaussagen Pflichten: Primäre Email Adresse erreichbar zu halten Die Arbitration ist ein interner Prozess um Konflikte zu lösen. (z. B. widersprüchliche Angaben) Bei minderjährigen ist eine Einwilligungserklärung der Eltern erforderlich. Bei Mitgliedern mit weniger als 50 Punkten ist das Zertifikat 6 Monate gültig und muss dann erneuert werden. Bei Mitgliedern mit 50 und mehr Punkten ist das Zertifikat 2 Jahre gültig. Es enthält außerdem den Namen des Zertifikateigentümers. Zusätzlich bietet CAcert an PGP-Schlüssel zu signieren. 7 PGP / GPG PGP / GPG • PGP benötigt Zusatzprogramme (Enigmail, GPGTools, GPG4Win) • Eigenständige Verwaltung • Etwas umständlicher PGP Vertrauen • Zentrale Infrastruktur (Keyserver) • Vernetztes Vertrauensmodell (Key Signing Party) • Inselbildung möglich (nicht-öffentliche Keyserver/ Schlüssellisten) Anhand der Einträge auf dem Keyserver lassen sich Verbindungen (wer kennt wen, wer hat wen wann getroffen) zu anderen Personen ermitteln. (Web of Trust graph) Daher kann es sinnvoll sein, interne Schlüssel nicht auf den Keyserver zu laden. Es gibt zwei GPG-Versionen, die alte (1.4 Reihe) und die neu (2.0 Reihe). Wenn beide installiert sind findet man GPG2 unter dem Namen gpg2. Um die installierte Version zu ermitteln gibt man gpg --version ein. Das Ergebnis ist dann gpg (GnuPG) 1.4.16 oder gpg (GnuPG/MacGPG2) 2.0.22 In folgenden wird GPG2 verwendet. Außer E-Mails lassen sich auch Dateien signieren: 4 gpg2 --detach-sign --local-user <keyID> Dateiname Das Ergebnis ist eine neue Datei mit dem Namen der Originaldatei und der Endung .sig oder .asc. Mit dieser Signaturdatei lässt sich die Originaldatei überprüfen. gpg2 --verify Dateiname.sig Wenn Absender und Empfänger eine Datei signieren und sich die Signaturen zumailen bestätigen sie somit die Identität der Datei. Rechtliche Unterschiede • CAcert verbindet ein Mitglied mit einer (oder mehreren) E-Mail Adressen. Diese Adressen dürfen ausschließlich vom Mitglied genutzt werden. Familien Mail-Adressen sind nicht zulässig! • PGP verbindet eine Person mit einem Schlüssel. Es können mehrere Schlüssel für eine Mail Adresse existieren. Diese Schlüssel können einer oder mehreren Personen gehören. Ein CAcert Mitglied darf seinen geheimen Schlüssel nicht an dritte weitergeben. Ein Mitnutzer der E-Mail Adresse kann kein CAcert Mitglied sein, da Mail Adressen einmalig sein müssen. 8 Praxis GPG Schlüssel erzeugen Kommandozeile $ gpg2 --gen-key Bitte wählen Sie, welche Art von Schlüssel Sie möchten: (1) RSA und RSA (voreingestellt) (2) DSA und Elgamal (3) DSA (nur signieren/beglaubigen) (4) RSA (nur signieren/beglaubigen) Auswahl? 1 GPG Schlüssel erzeugen RSA-Schlüssel können zwischen 1024 und 8192 Bit lang sein. Welche Schlüssellänge wünschen Sie? (2048) Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll. 0 = Schlüssel verfällt nie <n> = Schlüssel verfällt nach n Tagen <n>w = Schlüssel verfällt nach n Wochen <n>m = Schlüssel verfällt nach n Monaten <n>y = Schlüssel verfällt nach n Jahren Wie lange bleibt der Schlüssel gültig? (0) 5 GPG Schlüssel erzeugen Schlüssel verfällt nie Ist dies richtig? (j/N) j Ihr Name (" Vorname Nachname"): Vorname Nachname Email-Adresse: [email protected] Kommentar: Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(A)bbrechen? F Sie benötigen eine Passphrase, um den geheimen Schlüssel zu schützen. GPG Schlüssel erzeugen Wir müssen eine ganze Menge Zufallswerte erzeugen. Sie können dies unterstützen, indem Sie z.B. in einem anderen Fenster irgendetwas tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen. gpg: Schlüssel 43A32526 ist als uneingeschränkt vertrauenswürdig gekennzeichnet Öffentlichen und geheimen Schlüssel erzeugt und signiert. pub 2048R/43A32526 2013-12-04 Schl.-Fingerabdruck = 2D58 ... 2526 uid Vorname Nachname <[email protected]> sub 2048R/6ADE42A1 2013-12-04 Als Schlüssel-ID wird die 8stellige Kurzform angezeigt, in Wirklichkeit sind es aber 16 Stellen. Der Fingerabdruck (10 4stellige Hexadezimalzahlen) wird benutzt, um die Echtheit des Schlüssels zu beweisen (zum Beispiel durch vorlesen am Telefon). Zum hochladen auf einen Schlüsselserver dient der Befehl gpg2 --send-keys keyID --keyserver subkeys.pgp.net Die keyID kann man mit dem Befehl gpg2 --list-keys <name> ermitteln. PGP Schlüssel werden von anderen Nutzern signiert (beglaubigt). Daher sollte man regelmäßig die Schlüssel aktualisieren. Das geht mit dem Befehl: gpg2 --refresh-keys --keyserver subkeys.pgp.net Die Angabe des Schlüsselservers ist optional. Diese Befehle werden nur der Vollständigkeit halber gezeigt. Es ist einfacher, diese Operationen über eine grafische Oberfläche auszuführen. 6 9 Mailprogramme Thunderbird • Erweiterung Enigmail (vorher GPG installieren!) • Installationswizard findet GPG Konfiguration • Benutzung: Schaltfläche OpenPGP Apple Mail • Erweiterung GPGtools (enthält GPG) • Mail plugin / Dienste Erweiterung • GPG Schlüsselbund zur Schlüsselverwaltung PGP signierte Mail PGP signierte Mail (Fehler) 7 S/MIME signierte Mail Outlook • GPG4Win installieren (enthält GPG) • GpgOL (Plugin für Outlook 2003, 2007, 2010, 2013) • Kleopatra zur Schlüsselverwaltung Webmail • Geheimer Schlüssel muss geheim bleiben, hochladen zum Mail Anbieter problematisch (bzw. verboten). • Signieren der Mail auf dem Rechner, hochladen von Text und Signatur ist umständlich. • Ausnahme: Web.de erlaubt im Webbrowser signierte und verschlüsselte Mails zu verschicken. Geheimer Schlüssel wird beim Anbieter gespeichert! 10 Web of Trust Risiken und Nebenwirkungen • BCC Leck: Eine Mail wird einmal verschlüsselt. Der Schlüssel wird für jeden Empfänger verschlüsselt. Dadurch kann jeder Empfänger alle Empfängeradressen sehen. • Kein Schutz bei blindem Vertrauen (GPG überprüft ob der Schlüssel zur Mail passt, ich überprüfe, ob ich dem Schlüssel vertraue.) • Web of Trust legt Kontakte zwischen Nutzern offen. Es gibt zwei Möglichkeiten das BCC-Leck zu stopfen: --hidden-encrypt-to <name> und --hidden-recipient <name>. Beide verschlüsseln für den Empfänger <name>, tragen aber dessen Schlüssel-ID nicht in die Empfängerliste ein. Der Empfänger muss ggf. alle seine Schlüssel ausprobieren. 8 Die Alternative --throw-keyids trägt keine Schlüssel-ID in die Empfängerliste ein. Alle Empfänger müssen bei Bedarf alle Schlüssel ausprobieren. Wirklich sicher ist es nur dem BCC-Empfänger eine separate Mail zu schicken. Diese ist dann aber nicht mehr das identische Dokument sondern nur eine Kopie und kann gegenüber der Originalmail verändert sein. Für beide Varianten gibt es in der graphischen Oberfläche keine Unterstützung, die Verschlüsselung muss auf der Kommandozeile erfolgen. Web of Trust Web of Trust (Detail) Was fehlt? • „Sichere Umgebung“ • Unterschlüssel (mit begrenzter Gültigkeit) • Widerrufen (von Schlüsseln und Unterschlüsseln) • Schlüsselbackup 9 11 Aktion! Los geht’s • Programme installieren • Schlüssel erzeugen • Auf Schlüsselserver hochladen • Signierte Mail an [email protected] • Schlüssel signieren lassen (bei Vorlage eines amtlichen Ausweises) Es muss nicht für jede E-Mail Adresse ein eigener Schlüssel erzeugt werden. An einen Schlüssel lassen sich beliebig viele User-IDs (E-Mail Adressen) anhängen. Diese können unabhängig voneinander widerrufen werden. Key Signing Party mit Internetzugang • Schlüssel auf Schlüsselserver hochladen • Signierte Mail an Signierer schicken • Fingerabdruck und Ausweis bereithalten • Signierer lädt Schlüssel vom Server, unterschreibt ihn und lädt ihn wieder hoch • Schlüssel vom Server aktualisieren • Signierer signieren Das Programm party-table.pl erstellt aus allen Schlüsseln eines Schlüsselbundes eine HTML-Datei. Mit Hilfe dieser Datei kann man bei einer Key Signing Karty überprüfen, ob man alle Schlüssel überprüft und signiert hat. Dazu senden alle Teilnehmer ihren Schlüssel an einen Organisator, der diese in sein Schlüsselbund importiert und dann die Tabelle erstellt. In der Spalte Key Info Matches? macht man ein Kreuz wenn der Fingerabdruck übereinstimmt, in der Spalte Owner ID Matches wenn man den Ausweis überprüft hat. Anschließend kann man den Schlüssel signieren und auf den Server hochladen. 12 Anhang Lizenz Das Begleitmaterial zu diesem Vortrag steht unter einer Creative Commons Lizenz. b Namensnennung e Nicht-kommerziell a Weitergabe unter gleichen Bedingungen Version 3.0 in der für Deutschland angepassten Version. (CC BY-NC-SA 3.0 DE) http://creativecommons.org/licenses/by-nc-sa/3.0/de/legalcode 10 Haftungsausschluss • Ich übernehme keine Haftung für Schäden, die durch die hier vorgestellte Software entstehen. • Die Benutzung von Verschlüsselung bzw. die Nicht-Herausgabe eines Passwortes ist in einigen Ländern strafbar. • Die vorgestellte Software ist nicht zur Übertragung von militärischen Geheimnissen geeignet. Links Thunderbird http://www.mozilla.org/en-US/thunderbird/ GPG4Win http://www.gpg4win.de/ GPGTools https://gpgtools.org/ Gnupg http://www.gnupg.org/ CAcert http://www.cacert.org Workshop https://dl.dropboxusercontent.com/u/710584/email-article.pdf Signatur https://dl.dropboxusercontent.com/u/710584/email-article.pdf.sig Heise http://www.heise.de/security/dienste/Krypto-Kampagne-2111.html Literatur [1] Jo Bager und Holger Bleich. „Mailer zum Mitnehmen“. In: c’t 25 (2013), S. 104. [2] Jo Bager und Jürgen Schmidt. „Briefgeheimnis“. In: c’t 04 (2014), S. 86–95. [3] Holger Bleich. „Privatsache E-Mail“. In: c’t 22 (2013), S. 136. [4] V. Alex Brennen. GnuPG Keysigning-Party HOWTO. 26. Jan. 2014. url: http://rhonda. deb.at/projects/gpg-party/gpg-party.de.html. [5] Reiko Kaps. „Einbruchschutz“. In: c’t 23 (2013), S. 166. [6] Hauke Laging. Einführung in die Funktionsweise von OpenPGP / GnuPG (gpg). 26. Jan. 2014. url: http://www.hauke-laging.de/sicherheit/openpgp.html. [7] Jürgen Schmidt. „E-Mail im Visier“. In: c’t 22 (2013), S. 130. 11