Kryptographie mit GnuPG unter Mac OS X

Preview:

DESCRIPTION

Ein Vortrag über das Aufsetzen von GnuPG auf Mac OS X für die Verschlüsselung von E-Mail. Gehalten auf einem Chaos Computer Club (CCC) Treffen am 2005-06-02.

Citation preview

Thomas Wittmail (at) thomas-witt [dot] com

MacHackers-Treffen am 2005-06-02

http://www.thomas-witt.com/papers/050602.gpg.pdf

Kryptographie mit GnuPG unter MacOS X

Kryptographie

There are two kinds of cryptography in this world: cryptography that will stop your sister from reading your files, and cryptography that

will stop major governments from reading your files.

Bruce Schneier, Applied Cryptography

Wir reden heute über zweiteres.

Anforderungen an Kryptographie

Sicherer Nachrichtenaustauschüber unsichere Kanäle

Anforderungen an Kryptographie

Geheimhaltung

Integrität

Nachweisbarkeit / Authentizität

Methodik:Symmetrische Cipher

• Vorteil:Schnell

• Nachteil:Nur ein Schlüssel

• Anwendung:Verschlüsselung des eigentlichen Inhaltes

• Beispiele:Blowfish, DES

Verschlüsselung

Klartext

Schlüssel

Entschlüsselung

Klartext

Klartext

Schlüssel

Methodik:Asymmetrische Cipher• Vorteil:

Zwei Schlüssel• Public und Private Key

• Nachteil:Langsam

• Anwendung:Austausch Session Keys

• Beispiele:RSA, Diffie-Hellmann

Verschlüsselung

Klartext

Öffentl.Schlüssel

Entschlüsselung

Klartext

Klartext

PrivaterSchlüssel

Und wieso ist das sicher?

Symmetrisch• Abhängig von der Schlüssellänge• Zuviele Kombinationen, um es in sinnvoller Zeit

auszuprobieren

Asymmetrisch• Wir wissen es nicht• Schlaue Mathematiker sagen es wäre so• Sie können aber jeden Moment das Gegenteil

beweisen

Was ist GnuPG?

Basierend auf PGP• 1991 geschrieben von Phil Zimmermann

OpenPGP• Verschlüsselungsstandard nach RFC 2440

GNU Privacy Guard (GnuPG)• Freie Implementation von OpenPGP

Möglichkeiten von GnuPG

Verschlüsseln/Entschlüsseln• Nachricht wird mit einem symmetrisch

verschlüsselt und komprimiert• Der Schlüssel besteht aus einem mit dem Public

Key des Empfängers asymetrisch verschlüsselten Session-Key

Digitale Signaturen• überprüfbar mit dem Public Key

Möglichkeiten von GnuPG

Schlüsselverwaltung• Erstellen• Verwalten• Überprüfen• Zertifizieren• Zurückziehen

Okay - was brauche ich?

GnuPG

Plug-In für Mail-ClientSen:te GPGMail (Apple Mail)EntourageGPG (Entourage)

Enigmail (Thunderbird/Mozilla)

Terminal

Vorgehen

Software downloaden

Installieren

Sign- und Encryption-Key generieren

Revocation Certificate generieren

Los geht’s!

GnuPG installieren

Downloadwww.gnupg.org

macgpg.sf.net (vorkompiliert)

Installieren

$HOME/.gnupg/gpg.conf anpassenexpertno-allow-non-selfsigned-uidno-greetingno-secmem-warning#default-key 0xAAAAAAAA#encrypt-to 0xAAAAAAAAkeyserver wwwkeys.de.pgp.net

Schlüssel generierenErzeugen des Sign-Keys

gpg --gen-key

Schlüssel-TypRSA: Langjährig erprobt, längere Signaturen

DSA: Neuer, kürzere Signaturen(Empfehlung: RSA)

Generierung des Sign-KeysLänge: Mindestens 2048 Bit

(Empfehlung: 4096 Bit)

Schlüssel generieren

Expiry-DatumEin Sign-Key sollte möglichst lange gültig sein

Eingabe von Realname, E-Mail und Kommentar (optional)

Verschlüsselung des Keys durch ein Paßwortkann später geändert werden

Schlüssel generieren

Encryption-Key erzeugen: gpg --edit-key <ID>"addkey"

Schlüssel-TypRSA: Encrypt only

Länge wie gehabt

Expiry-DatumSinnvollerweise ein Jahr

Schlüssel überprüfen und sichern

gpg --list-keyslistet den Schlüsselbund

Schlüssel sichern (!)USB-Stick, CD-ROM, …

Wichtig: physikalische Sicherheit!

Verzeichnis .gnupgsecring.gpg enthält die privaten Schlüssel

pubring.gpg die öffentlichen Schlüssel

Revocation Certificate generieren

gpg --gen-revokeErmöglicht späteres Zurückziehen auch bei Verlust des

Originalschlüssels.

Revocation Certificate sichernausdrucken (!) und an einem sicheren Ort verstauen -

am besten außerhalb der eigenen Wohnung

Importieren von Schlüsseln

Import direkt aus einer Dateigpg --import

Import von einem Keyservergpg --recv-keys

Fingerprint des Keys anschauengpg --fingerprint <keyid>

Unbedingt auf sicherem Wege vergleichen!(Telefon, in persona, ...)

Signieren von Schlüsseln

Zunächst: Stimmt der Fingerprint und wurde er persönlich verglichen?

Wenn ja:gpg --edit-key <keyid>

"sign"

Mein Key (0x5D239994) hat den Fingerprint:7C3F 2E61 51B1 BE90 AA24EF96 F294 3519 5D23 9994

Installation von GPGMail

Downloadhttp://www.sente.ch/software/GPGMail/

Mail.app beenden

Installieren

Bundles aktivierendefaults write com.apple.mail EnableBundles 1

Installation von GPGMailMacOS X 10.4 Tiger

defaults write com.apple.mail \ BundleCompatibilityVersion 2

MacOS X 10.3 Pantherdefaults write com.apple.mail \ BundleCompatibilityVersion 1

Anschließend Mail.app starten

Herzlichen Glückwunsch!

Zusammenfassung der wichtigsten Befehle

Encryptgpg -r <empfänger> -a -o <output> -e <input>

Signgpg -a --sign <input>

Decryptgpg -d <input>

Zusammenfassung der wichtigsten Befehle

Schlüsselmanagementgpg --refresh-keys (regelmäßig ausführen)gpg --list-keys / --list-sigs / --fingerprint

gpg --edit-keygpg --import <input>

gpg --send-keys / --recv-keys

alternativ: “GPGKeys” als GUI

Public Keyserver (DFN-CERT)http://wwwkeys.de.pgp.net/

Vielen Dank!Thomas Witt

mail (at) thomas-witt [dot] com

URL dieses Vortrags:http://www.thomas-witt.com/papers/050602.gpg.pdf

Recommended