Login
Newsletter
Werbung

Fr, 18. Februar 2005, 00:00

Der GNU Privacy Guard

  1. Mit gpg --search-keys "Stephan Beyer" (kurz: --search) suche ich z.B. alle meine öffentlichen Schlüssel, und natürlich die meiner namentlichen Doppelgänger. GnuPG zeigt mir daraufhin die Treffer an. Aus diesen Treffern kann ich einen auswählen und dieser wird automatisch importiert.
  2. Mit gpg --send-keys 0xFCC50404F (kurz: --send) exportiere ich meinen Schlüssel an den angegebenen Keyserver. GnuPG meldet sich dabei nur mit einer Fehler- oder Erfolgsmeldung zurück.
  3. Mit gpg --recv-keys 0xDEADBEEF 0xF00BA211 (kurz: --recv) importiere ich direkt die öffentlichen Schlüssel mit den Schlüssel-IDs 0xDEADBEEF und 0xF00BA211. (Die Beispiele sind rein fiktiv.) Ist der zu empfangende Schlüssel bereits im Schlüsselbund, so entspricht das --recv einem --refresh.
  4. gpg --refresh-keys (kurz --refresh) aktualisiert alle importierten öffentlichen Schlüssel. Dies kann man auch auf bestimmte Schlüssel (analog zu den anderen Befehlen) eingrenzen. Ist ein zu aktualisierender Schlüssel nicht im Schlüsselbund enthalten, so wird er ignoriert.

Verschlüsseln, Entschlüsseln, Signieren

Wenn man GnuPG hauptsächlich für E-Mails verwenden will, dann sollte man sich mit der Dokumentation seines MUAs (E-Mailprogramm) vertraut machen. Von mutt bis evolution unterstützen die meisten MUAs GnuPG direkt, über ein Plug-In oder über ein Hilfsprogramm. Meistens ist es ganz einfach mit zwei Tasten oder einem Mausklick erledigt, und schon ist eine E-Mail verschlüsselt (und signiert). Leider existieren zu viele MUAs, um hier auf alle einzugehen und es wäre ungerecht, es nur für mutt zu beschreiben ;-)

Will man vertrauliche Daten nicht per E-Mail, sondern z.B. per CD-R an den Empfänger weitergeben, so kann man Dateien auch direkt verschlüsseln:

gpg --output <em>Datei</em>.gpg --recipient <em>Empfänger</em> --encrypt <em>Datei</em>

Oder kurz:

gpg -o <em>Datei</em>.gpg -r <em>Empfänger</em> -e <em>Datei</em>

Die Endung .gpg ist natürlich nicht zwingend, sondern nur ein Vorschlag. Die armor-Einstellung lohnt bei großen über CD-R weitergegebenen Dateien nicht mehr, da eine binäre Speicherung auf CD-R kein Problem darstellt (im Gegensatz zur binären Übertragung per E-Mail) und die Datei nur unnötig größer wird. Steht also armor in Ihrer Konfiguration, so können Sie diese mit der Option --no-armor deaktivieren. Eine rekursive Verschlüsselung von Verzeichnissen ist seitens GnuPG nicht möglich. Hier sollte man entweder

  • die Dateien in ein Archiv (z.B. tar) packen und dieses dann verschlüsseln, oder
  • die Dateien einzeln verschlüsseln mit find <em>Verzeichnis</em> -type f -exec gpg -o {}.gpg -r <em>Empfänger</em> -e {} \; oder gpg -r <em>Empfänger</em> --encrypt-files <em>Verzeichnis</em>/* (Vorsicht mit Wildcards bei Unterverzeichnissen!) - mit armor bekommen die verschlüsselten Dateien ein .asc-Suffix, und ohne wird .gpg an den Dateinamen angehängt. Die Originaldateien bleiben erhalten.

Wie weiter oben schon erwähnt, kann der Empfänger z.B. über seine E-Mailadresse, seinen Namen oder seine Schlüssel-ID angegeben werden.

Die Entschlüsselung erfolgt analog dazu mit:

gpg -o <em>Datei</em> -d <em>Datei</em>.gpg

-d kann der besseren Lesbarkeit wegen auch als --decrypt ausgeschrieben werden. Zum Entschlüsseln wird man nach seiner Passphrase gefragt, da gpg ja auf den geheimen Schlüssel zugreifen muss.

Pures Verschlüsseln reicht oft nicht, da die Daten ja auf dem Weg zum Empfänger trotzdem noch verändert werden können. Hier hilft das digitale Signieren der Nachricht. Schlechte Überleitung :-) Mit gpg -o <em>Datei</em>.sig --sign <em>Datei</em> erstellt man eine Signatur für die Datei. Verschlüsseln und signieren zugleich funktioniert mit --sign --encrypt <em>Datei</em> oder kurz mit -s -e <em>Datei</em>. Die Signatur überprüft man mit gpg --verify <em>Datei</em>.gpg auf Unversehrtheit (Integrität). Wenn das Entschlüsseln auch ohne Signatur-Überprüfung möglich sein soll, generiert man eine abgespaltene Signatur, mit --detach-sign (kurz: -b) statt --sign. Die mit -o angegebene Ausgabedatei ist hierbei die Datei, die die Signatur enthält. Empfohlener Dateisuffix ist .sig oder auch .asc. -b lässt sich nicht sinnvoll mit -e kombinieren. Um den Unterschied zwischen -s und -b zu zeigen, ein Beispiel:

/tmp$ gpg --no-armor -s foo.tar.gz
[...]
/tmp$ gpg --no-armor -b foo.tar.gz
[...]
/tmp$ wc -c foo*
 518144 foo.tar.gz
 519374 foo.tar.gz.gpg
 65 foo.tar.gz.sig
1037583 total
/tmp$ rm foo.tar.gz
/tmp$ gpg --verify foo.tar.gz.gpg
gpg: Signature made Mon Feb 14 03:23:14 2005 CET using DSA key ID FCC5040F
gpg: Good signature from "Stephan Beyer <s-beyer@gmx.net>"
[...]
/tmp$ gpg --verify foo.tar.gz.sig
gpg: no signed data
gpg: can't hash datafile: file open error

foo.tar.gz.gpg enthält foo.tar.gz und dessen Signatur; foo.tar.gz.sig enthält nur die Signatur. Nach dem Löschen der Originaldatei kann die abgespaltene Signatur nicht mehr zum überprüfen genutzt werden. Abgespaltene Signaturen nimmt man immer, wenn man Dateien zum Download anbietet und diese signieren möchte.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung