E-Mail-Verschlüsselung mit GnuPG
Augsburger Linux-Infotag 16. April 2016
Philipp Kammerer
B1 Systems GmbH
kammerer@b1-systems.de
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
Theoretischer Hintergrund – Kurze Geschichte
1991: Veröffentlichung von PGP (Pretty Good Privacy)
1998: OpenPGP-Standard beschreibt die Funktionsweise der
asymmetrischen Verschlüsselung.
GnuPG wird als Freie Implementation des Standards entwickelt
B1 Systems GmbH E-Mail-Verschlüsselung 2 / 22
Funktionsweise
Wer verschlüsselte Nachrichten empfangen möchte, benötigt ein
Schlüsselpaar
Verschlüsselt wird mit dem öffentlichen Schlüssel des
Empfängers
Entschlüsseln kann nur der private Schlüssel des Empfängers
B1 Systems GmbH E-Mail-Verschlüsselung 3 / 22
Verwendete Software
E-Mail-Client (Thunderbird)
Kryptografie-Software (GnuPG)
Verbindung zwischen den beiden (Enigmail)
B1 Systems GmbH E-Mail-Verschlüsselung 4 / 22
Geht’s auch anders?
Andere Mail-Clients werden auch unterstützt
Für die Windows User: https://www.gpg4win.de/
Outlook nur 32 Bit Version.
B1 Systems GmbH E-Mail-Verschlüsselung 5 / 22
Schlüsselverwaltung
Separate Container-Dateien für öffentliche und private Schlüssel
gpg gpg2
öffentlich ~/.gnupg/pubring.gpg ~/.gnupg/pubring.kbx
privat ~/.gnupg/secring.gpg ~/.gnupg/private-keys-v1.d/
B1 Systems GmbH E-Mail-Verschlüsselung 6 / 22
Praxis zum Mitmachen
1 Software installieren
2 Schlüssel erstellen
3 Widerrufszertifikat erstellen (optional, aber empfohlen)
4 GnuPG, Enigmail und Account konfigurieren
5 Schlüssel vom Gesprächspartner beziehen
6 E-Mails verschlüsseln
7 Keyserver nutzen
B1 Systems GmbH E-Mail-Verschlüsselung 7 / 22
Software installieren
Thunderbird bzw. Icedove
gnupg2
Entropie/Zufalls-Generator haveged (optional, aber empfohlen)
B1 Systems GmbH E-Mail-Verschlüsselung 8 / 22
Software installieren
1 E-Mail-Account(s) einrichten
2 Plugin Enigmail installieren,
Thunderbird beenden (nicht neustarten)
B1 Systems GmbH E-Mail-Verschlüsselung 9 / 22
Schlüssel (Zertifikat) erstellen
Grafisch:
Beim ersten Starten von Enigmail automatisch über den Assitenten;
Sonst manuell über die Schlüsselverwaltung.
Terminal:
Enigmail nutzt, wenn vorhanden, automatisch gpg2. Wenn man über
das Terminal arbeiten will, vorher einen Alias in ~/.bash_aliases
anlegen.
$ gpg --gen-key
$ gpg --gen-revoke <keyID> > <email/ID>-rev.asc
B1 Systems GmbH E-Mail-Verschlüsselung 10 / 22
GnuPG und Enigmail konfigurieren
Enigmail konfiguriert sich mit den Standardeinstellungen selbst.
Bei mehreren privaten Schlüsseln ggf. in den
Accounteinstellungen den Schlüssel verknüpfen.
Unterstützung für lange Key-IDs aktivieren:
$ echo "keyid-format xlong" >> ~/.gnupg/gpg.conf
B1 Systems GmbH E-Mail-Verschlüsselung 11 / 22
Schlüssel vom Gesprächspartner beziehen
Der öffentliche Schlüssel des Gesprächspartners muss zunächst
importiert werden.
Praktische Methode: Keyserver
Grafisch:
Direkt beim Senden einer E-Mail oder über die Schlüsselverwaltung.
Terminal:
$ gpg --keyserver <foo> --search <e-mail>
B1 Systems GmbH E-Mail-Verschlüsselung 12 / 22
Schlüssel vom Gesprächspartner beziehen
Wenn der Schlüssel nicht über den Keyserver ausgetauscht wird:
→ Individuelle Methode: Datei
Den eigenen öffentlichen Schlüssel per E-Mail als Dateianhang an
den Gesprächspartner verschicken.
Grafisch
Im- und Exportfunktion beim Senden und Empfangen
Terminal
Export: $ gpg -a -o <dateiname.asc> --export <e-mail>
Import: $ gpg --import <dateiname.asc>
B1 Systems GmbH E-Mail-Verschlüsselung 13 / 22
E-Mails verschlüsseln
Sobald der öffentliche Schlüssel des Empfängers im Schlüsselbund ist,
verschlüsselt Enigmail in der aktuellen Version automatisch.
Falls nicht, müssen die Einstellungen von Enigmail und ggf. die
Account-Einstellungen überarbeitet werden.
B1 Systems GmbH E-Mail-Verschlüsselung 14 / 22
Keyserver nutzen
Grafisch
Öffentlichen Schlüssel über die Schlüsselverwaltung hochladen.
Terminal
$ gpg --keyserver <foo> --send-keys <KeyID>
B1 Systems GmbH E-Mail-Verschlüsselung 15 / 22
Schlüssel signieren – Keysigning Party
1 Gehört der Schlüssel wirklich zu einer bestimmten Person?
2 Wenn ja: Fingerprint abgleichen
3 Stimmt überein: Schlüssel signieren
4 Danach ggf. wieder auf einen Keyserver hochladen
(--send-keys)
Terminal
$ gpg --fingerprint <e-mail>
$ gpg --edit-key <KeyID> oder <e-mail>
sign ... (interaktiv der Menüführung folgen)
save
$ gpg --keyserver <foo> --send-keys <KeyID>
B1 Systems GmbH E-Mail-Verschlüsselung 16 / 22
Besonderheiten
Was kann man sonst noch machen?
B1 Systems GmbH E-Mail-Verschlüsselung 17 / 22
Dateiverschlüsselung
Dateiverschlüsselung
$ gpg (-a) --recipient <KeyID> --encrypt <datei>
$ gpg -o <ausgabedatei> --decrypt <eingabedatei>
-a: Die Ausgabedatei wird mit ASCII-Zeichen erstellt. Lässt man -a
weg, wird eine binäre Datei erstellt.
B1 Systems GmbH E-Mail-Verschlüsselung 18 / 22
Dateien signieren und Signaturen prüfen
Dateien signieren und Signaturen prüfen
$ gpg --detach-sign (-a) <file>
$ gpg --verify <file>
--local-user um einen abweichenden Key für die Signatur zu
wählen
B1 Systems GmbH E-Mail-Verschlüsselung 19 / 22
Schlüsseleigenschaften bearbeiten
$ gpg --edit-key <e-mail> oder <KeyID>
Schlüsseleigenschaften bearbeiten
Befehl Aktion
quit Beenden ohne zu speichern
save Speichern und Beenden
expire Verfallsdatum ändern
trust Vertrauensstufe festlegen
sign Schlüssel signieren
delsig Signatur löschen (noch nicht auf Keyserver)
revsig Signatur widerrufen; wenn auf dem Keyserver
adduid UID (weitere E-Mail) hinzufügen
uid <n> UID auswählen
deluid/revuid UID löschen/widerrufen
B1 Systems GmbH E-Mail-Verschlüsselung 20 / 22
Neue Signaturen und TrustDB
Alle Schlüssel im Keyring (mit eventuellen neuen Signaturen)
vom Server synchronisieren:
$ gpg --keyserver <foo> --refresh-keys
TrustDB updaten. Erfordert einen Schlüssel mit Ultimate Trust
$ gpg --update-trustdb
B1 Systems GmbH E-Mail-Verschlüsselung 21 / 22
Vielen Dank für Ihre Aufmerksamkeit!
Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de
oder +49 (0)8457 - 931096
B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development

E-Mail-Verschlüsselung mit GnuPG

  • 1.
    E-Mail-Verschlüsselung mit GnuPG AugsburgerLinux-Infotag 16. April 2016 Philipp Kammerer B1 Systems GmbH kammerer@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development
  • 2.
    Theoretischer Hintergrund –Kurze Geschichte 1991: Veröffentlichung von PGP (Pretty Good Privacy) 1998: OpenPGP-Standard beschreibt die Funktionsweise der asymmetrischen Verschlüsselung. GnuPG wird als Freie Implementation des Standards entwickelt B1 Systems GmbH E-Mail-Verschlüsselung 2 / 22
  • 3.
    Funktionsweise Wer verschlüsselte Nachrichtenempfangen möchte, benötigt ein Schlüsselpaar Verschlüsselt wird mit dem öffentlichen Schlüssel des Empfängers Entschlüsseln kann nur der private Schlüssel des Empfängers B1 Systems GmbH E-Mail-Verschlüsselung 3 / 22
  • 4.
    Verwendete Software E-Mail-Client (Thunderbird) Kryptografie-Software(GnuPG) Verbindung zwischen den beiden (Enigmail) B1 Systems GmbH E-Mail-Verschlüsselung 4 / 22
  • 5.
    Geht’s auch anders? AndereMail-Clients werden auch unterstützt Für die Windows User: https://www.gpg4win.de/ Outlook nur 32 Bit Version. B1 Systems GmbH E-Mail-Verschlüsselung 5 / 22
  • 6.
    Schlüsselverwaltung Separate Container-Dateien füröffentliche und private Schlüssel gpg gpg2 öffentlich ~/.gnupg/pubring.gpg ~/.gnupg/pubring.kbx privat ~/.gnupg/secring.gpg ~/.gnupg/private-keys-v1.d/ B1 Systems GmbH E-Mail-Verschlüsselung 6 / 22
  • 7.
    Praxis zum Mitmachen 1Software installieren 2 Schlüssel erstellen 3 Widerrufszertifikat erstellen (optional, aber empfohlen) 4 GnuPG, Enigmail und Account konfigurieren 5 Schlüssel vom Gesprächspartner beziehen 6 E-Mails verschlüsseln 7 Keyserver nutzen B1 Systems GmbH E-Mail-Verschlüsselung 7 / 22
  • 8.
    Software installieren Thunderbird bzw.Icedove gnupg2 Entropie/Zufalls-Generator haveged (optional, aber empfohlen) B1 Systems GmbH E-Mail-Verschlüsselung 8 / 22
  • 9.
    Software installieren 1 E-Mail-Account(s)einrichten 2 Plugin Enigmail installieren, Thunderbird beenden (nicht neustarten) B1 Systems GmbH E-Mail-Verschlüsselung 9 / 22
  • 10.
    Schlüssel (Zertifikat) erstellen Grafisch: Beimersten Starten von Enigmail automatisch über den Assitenten; Sonst manuell über die Schlüsselverwaltung. Terminal: Enigmail nutzt, wenn vorhanden, automatisch gpg2. Wenn man über das Terminal arbeiten will, vorher einen Alias in ~/.bash_aliases anlegen. $ gpg --gen-key $ gpg --gen-revoke <keyID> > <email/ID>-rev.asc B1 Systems GmbH E-Mail-Verschlüsselung 10 / 22
  • 11.
    GnuPG und Enigmailkonfigurieren Enigmail konfiguriert sich mit den Standardeinstellungen selbst. Bei mehreren privaten Schlüsseln ggf. in den Accounteinstellungen den Schlüssel verknüpfen. Unterstützung für lange Key-IDs aktivieren: $ echo "keyid-format xlong" >> ~/.gnupg/gpg.conf B1 Systems GmbH E-Mail-Verschlüsselung 11 / 22
  • 12.
    Schlüssel vom Gesprächspartnerbeziehen Der öffentliche Schlüssel des Gesprächspartners muss zunächst importiert werden. Praktische Methode: Keyserver Grafisch: Direkt beim Senden einer E-Mail oder über die Schlüsselverwaltung. Terminal: $ gpg --keyserver <foo> --search <e-mail> B1 Systems GmbH E-Mail-Verschlüsselung 12 / 22
  • 13.
    Schlüssel vom Gesprächspartnerbeziehen Wenn der Schlüssel nicht über den Keyserver ausgetauscht wird: → Individuelle Methode: Datei Den eigenen öffentlichen Schlüssel per E-Mail als Dateianhang an den Gesprächspartner verschicken. Grafisch Im- und Exportfunktion beim Senden und Empfangen Terminal Export: $ gpg -a -o <dateiname.asc> --export <e-mail> Import: $ gpg --import <dateiname.asc> B1 Systems GmbH E-Mail-Verschlüsselung 13 / 22
  • 14.
    E-Mails verschlüsseln Sobald deröffentliche Schlüssel des Empfängers im Schlüsselbund ist, verschlüsselt Enigmail in der aktuellen Version automatisch. Falls nicht, müssen die Einstellungen von Enigmail und ggf. die Account-Einstellungen überarbeitet werden. B1 Systems GmbH E-Mail-Verschlüsselung 14 / 22
  • 15.
    Keyserver nutzen Grafisch Öffentlichen Schlüsselüber die Schlüsselverwaltung hochladen. Terminal $ gpg --keyserver <foo> --send-keys <KeyID> B1 Systems GmbH E-Mail-Verschlüsselung 15 / 22
  • 16.
    Schlüssel signieren –Keysigning Party 1 Gehört der Schlüssel wirklich zu einer bestimmten Person? 2 Wenn ja: Fingerprint abgleichen 3 Stimmt überein: Schlüssel signieren 4 Danach ggf. wieder auf einen Keyserver hochladen (--send-keys) Terminal $ gpg --fingerprint <e-mail> $ gpg --edit-key <KeyID> oder <e-mail> sign ... (interaktiv der Menüführung folgen) save $ gpg --keyserver <foo> --send-keys <KeyID> B1 Systems GmbH E-Mail-Verschlüsselung 16 / 22
  • 17.
    Besonderheiten Was kann mansonst noch machen? B1 Systems GmbH E-Mail-Verschlüsselung 17 / 22
  • 18.
    Dateiverschlüsselung Dateiverschlüsselung $ gpg (-a)--recipient <KeyID> --encrypt <datei> $ gpg -o <ausgabedatei> --decrypt <eingabedatei> -a: Die Ausgabedatei wird mit ASCII-Zeichen erstellt. Lässt man -a weg, wird eine binäre Datei erstellt. B1 Systems GmbH E-Mail-Verschlüsselung 18 / 22
  • 19.
    Dateien signieren undSignaturen prüfen Dateien signieren und Signaturen prüfen $ gpg --detach-sign (-a) <file> $ gpg --verify <file> --local-user um einen abweichenden Key für die Signatur zu wählen B1 Systems GmbH E-Mail-Verschlüsselung 19 / 22
  • 20.
    Schlüsseleigenschaften bearbeiten $ gpg--edit-key <e-mail> oder <KeyID> Schlüsseleigenschaften bearbeiten Befehl Aktion quit Beenden ohne zu speichern save Speichern und Beenden expire Verfallsdatum ändern trust Vertrauensstufe festlegen sign Schlüssel signieren delsig Signatur löschen (noch nicht auf Keyserver) revsig Signatur widerrufen; wenn auf dem Keyserver adduid UID (weitere E-Mail) hinzufügen uid <n> UID auswählen deluid/revuid UID löschen/widerrufen B1 Systems GmbH E-Mail-Verschlüsselung 20 / 22
  • 21.
    Neue Signaturen undTrustDB Alle Schlüssel im Keyring (mit eventuellen neuen Signaturen) vom Server synchronisieren: $ gpg --keyserver <foo> --refresh-keys TrustDB updaten. Erfordert einen Schlüssel mit Ultimate Trust $ gpg --update-trustdb B1 Systems GmbH E-Mail-Verschlüsselung 21 / 22
  • 22.
    Vielen Dank fürIhre Aufmerksamkeit! Bei weiteren Fragen wenden Sie sich bitte an info@b1-systems.de oder +49 (0)8457 - 931096 B1 Systems GmbH - Linux/Open Source Consulting,Training, Support & Development