Zum Inhalt springen

GNU Privacy Guard

Aus Foxwiki

GNU Privacy Guard, abgekürzt GPG, ist ein freies Kryptographiesystem, zum Ver- und Entschlüsseln von Daten sowie zum Erzeugen und Prüfen von Signaturen. Es dient als Ersatz für PGP.

Funktionsweise

  • GPG benutzt ein Public-Key-Verschlüsselungsverfahren. Dabei erstellt man ein Schlüsselpaar, ein öffentliches und ein privates.
  • Der private Schlüssel darf nur der Eigentümer haben, mit dem können Daten entschlüsselt und signiert werden.
  • Der öffentliche Schlüssel dient zur Verschlüsselung und zur Überprüfung der Signaturen, dieser hat der Kommunikationspartner.
  • Um die Daten zu verschlüsseln stehen unterschiedlich starke Schlüssel zur Verfügung. Standard ist momentan eine Länge von 3072 Bits. Für die Verschlüsselung nutzt GPG verschiedene Algortihmen wie RSA oder Elgamal.
  • GPG speichert alle Schlüssel, die man sammelt, in einem "Schlüsselbund"-Verzeichnis ~/.gnupg/.

Anwendungen

Mit den folgenden Befehlen kann man mit GPG arbeiten.

Private Keys auflisten

Alle eigenen, geheimen Schlüssel auflisten

gpg -K

Public Keys auflisten

Alle öffentlichen Schlüssel auflisten

gpg -k

Diese Befehle zeigen alle Informationen über die Schlüssel an. Wenn man keine Schlüssel angelegt hat oder welche importiert hat, ist die Ausgabe dieser Befehle leer.

Verschlüsseln einer Datei

gpg -easr "Name oder Key_Id" <Datei>
  • mit -e wird eine Datei verschlüsselt
  • mit -a wird die Datei in ASCII-Armor-Format gespeichert. Ansonsten wird es in Binärcode geschrieben und man erhält stattdessen einen Datei mit der Endung .gpg, bei Signaturen .sig
  • mit -r <Name oder Key_Id> wird die Datei explizit für den bestimmten User verschlüsselt.
  • mit -s wird die Datei signiert. Funktioniert nur, wenn man einen eigenen Private-Key besitzt.
  • Am Ende erhält man eine Datei namens Datei.asc

Entschlüsseln einer Datei

gpg -do <Entschlüsselt.txt> <Datei.asc>
  • mit -d wird eine Datei entschlüsselt. Sollte die Datei eine Signatur haben, liest man von der bash die Signatur.
  • mit -o <Entschlüsselt.txt> wird eine entschlüsselte Textdatei erstellt. Lässt man es weg, gibt GPG den entschlüsselten Text auf der Bash aus.

Exportiert einen öffentlichen Schlüssel der Schlüssel-ID in die selbsterstellte <Dateiname.asc>

gpg -a --output <Dateiname.asc> 
--export "Schlüssel-ID oder Name"
  • Der Schlüssel ist nun in der Dateiname.asc und kann nun als E-Mail-Anhang verschickt
  • Der private Schlüssel wird nicht exportiert.

Importiert einen Schlüssel

gpg --import <Dateiname.asc>
  • Dieser Befehl fügt den Schlüssel zum Schlüsselbund

Signiert eine Datei in eine separate Datei

gpg --detach-sign -a <Datei>
  • Nachdem man sein Passwort eingegeben hat, erhält man eine Datei Datei.asc. Diese enthält die Signatur der Originaldatei

Überprüft eine signierte Datei

gpg --verify <Datei.asc>
  • Es folgt eine Nachricht: gpg: Good signature from <ID oder Name>

Löscht alle Schlüssel einer ID

gpg --delete-secret-and-public-key "ID oder Name"
  • Wenn private Schlüssel vorhanden sind, werden diese zuerst gelöscht.
  • Es folgen eine Menge Bestätigungsanfragen, ob man das wirklich will

Hinweise

  • Man kann für seinen Namen ein Leerzeichen verwenden, jedoch muss man bei allen Operationen mit GPG den Namen in Hochkommatas setzen. Bsp:
 gpg -ear 'Null Acht-Fünfzehn' <Datei>
  • Das Verschlüsseln im ASCII-Format ist vor allem vorzuziehen bei der Übertragung übers Internet.
  • Wenn man es lediglich auf der Festplatte verschlüsselt speichern will, ist das Binärformat, gerade bei großen Dateien, vorzuziehen.

Links

Interne Links

Weblinks

  1. https://wiki.ubuntuusers.de/GnuPG/