GnuPG/Schlüssel: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „GPG“ durch „GnuPG“
Zeile 46: Zeile 46:
  Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
  Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
# Es öffnet sich nun ein Menü, um ein Passwort einzugeben für den privaten Schlüssel, um später zu signieren und zu entschlüsseln.
# Es öffnet sich nun ein Menü, um ein Passwort einzugeben für den privaten Schlüssel, um später zu signieren und zu entschlüsseln.
# Vom System werden nun eine Menge Zufallszahlen benötigt, sodass ihr nun freundlich gebeten werdet, ein wenig mit der Maus oder der Tastatur zu spielen. Es dauert eine ganze Weile, aber dann kommt von der Konsole, dass das Schlüsselpaar erstellt wurde.
# Vom System werden jetzt eine Menge Zufallszahlen benötigt, sodass ihr nun freundlich gebeten werdet, ein wenig mit der Maus oder der Tastatur zu spielen. Es dauert eine ganze Weile, aber dann kommt von der Konsole, dass das Schlüsselpaar erstellt wurde.
# Der erstellte Schlüssel liegt nun in ~/.gnupg/.
# Der erstellte Schlüssel liegt nun in ~/.gnupg/.



Version vom 2. März 2024, 10:12 Uhr

Schlüssel auflisten

Option Beschreibung
Private Keys gpg -K
Public Keys gpg -k

Schlüssel erstellen

$ gpg --full-gen-key

Please select what kind of key you want:
  (1) RSA and RSA (default)
  (2) DSA and Elgamal
  (3) DSA (sign only)
  (4) RSA (sign only)
Your selection?
  1. Es folgt ein Menü, welche Art von Schlüssel man erstellen möchte. Voreingestellt ist RSA und RSA.
    • Enter tippen!
  2. Nun wird gefragt, welche Schlüssellänge man haben möchte. Mit Enter wird die Voreinstellung von 3072 Bit genommen, es wird empfohlen mindestens 3072 Bit zu nehmen.
    • Man kann auch längere Schlüssellängen eintippen, um die Sicherheit zu erhöhen, jedoch dauert die Arbeit der Kryptografie länger.
      • RSA keys may be between 1024 and 4096 bits long
      • What keysize do you want? (3072)
  3. Danach folgt die Frage, wie lange das Schlüsselpaar gültig ist
    • Voreingestellt ist 0, also für ewig
    • Es wird allerdings empfohlen, sich auf eine bestimmte Zeitdauer festzulegen und keinen "ewigen" Schlüssel anzulegen.
Please specify how long the key should be valid.
        0 = key does not expire
     <n>  = key expires in n days
     <n>w = key expires in n weeks
     <n>m = key expires in n months
     <n>y = key expires in n years
Key is valid for? (0)
  1. Nun noch der echte Name, die E-Mail-Addresse und einen kurzen Kommentar eingeben. Falls alles in Ordnung ist, O eingeben und Enter drücken.
GnuPG needs to construct a user ID to identify your key.

Real name:Null Acht-Fünfzehn
Email address:
Comment:
You selected this USER-ID:

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
  1. Es öffnet sich nun ein Menü, um ein Passwort einzugeben für den privaten Schlüssel, um später zu signieren und zu entschlüsseln.
  2. Vom System werden jetzt eine Menge Zufallszahlen benötigt, sodass ihr nun freundlich gebeten werdet, ein wenig mit der Maus oder der Tastatur zu spielen. Es dauert eine ganze Weile, aber dann kommt von der Konsole, dass das Schlüsselpaar erstellt wurde.
  3. Der erstellte Schlüssel liegt nun in ~/.gnupg/.

Verschlüsseln einer Datei

gpg -easr "Name oder Key_Id" <Datei>
Option  Beschreibung
-a 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
-r die Datei explizit für den bestimmten User verschlüsselt.
-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 GnuPG 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>

GnuPG-Signaturen prüfen

  • GnuPG-Signaturen sind ein Beweis dafür, dass verteilte Dateien signiert wurden durch den Besitzer des Signaturschlüssels.
  • Zum Beispiel, wenn diese Website war kompromittiert und die ursprünglichen Electrum-Dateien wurden ersetzt, Signaturüberprüfung würde fehlschlagen, da der Angreifer dies nicht tun würde gültige Signaturen erstellen können.
    • Beachten Sie, dass ein Angreifer das wäre gültige Hashes erstellen können, deshalb veröffentlichen wir keine Hashes unserer Binaries hier bringt es keine Sicherheit
  • Um GnuPG-Signaturen verifizieren zu können, müssen Sie importieren der öffentliche Schlüssel des Unterzeichners.
    • Electrum-Binärdateien sind mit signiert von ThomasV Öffentlichkeit Schlüssel .
    • Unter Linux können Sie diesen Schlüssel folgendermaßen importieren Befehl:
gpg --import ThomasV.asc.
  • Hier sind Anleitungen für Fenster und MacOS .
  • Wenn Sie einen Schlüssel importieren, sollten Sie seinen Fingerabdruck mit überprüfen unabhängige Quellen, wie z wie hier , oder verwenden das Web von Vertrauen .

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

Fehlerbehebung

Unpassender IOCTL

[GNUPG:] PINENTRY_LAUNCHED 23758 curses 1.1.0 - linux -
gpg: Beglaubigung fehlgeschlagen: Unpassender IOCTL (I/O-Control) für das Gerät
[GNUPG:] BEGIN_ENCRYPTION 2 9
[GNUPG:] FAILURE sign-encrypt 83918950
gpg: /usr/bin/duply: sign+encrypt failed: Unpassender IOCTL (I/O-Control) für das Gerät
Lösung
echo use-agent >> ~/.gnupg/gpg.conf
echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
echo allow-loopback-pinentry >> ~/.gnupg/gpg-agent.conf
Hintergrund
  • Es kommt zu dieser Fehlermeldung, weil gpg die Passphrase nicht automatisch abfragen konnte.
  • Die erledigt der gpg-agent, der wiederum pinentry-curses zur sicheren Übertragung der Passphrase verwendet.
  • In der gpg.conf muss angegeben werden, dass der gpg-agent verwendet werden soll (use-agent).
  • Und in welchem Modus dieser verwendet werden soll (pinentry-mode loopback).
  • In der gpg-agent.conf muss dem gpg-agent erlaubt werden den loop-back-pinentry durchzuführen.

Hinweise

Man kann für seinen Namen ein Leerzeichen verwenden, jedoch muss man bei allen Operationen mit GnuPG den Namen in Hochkommatas setzen.

$ 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.