Ist es möglich, einer bereits verschlüsselten Datei in GPG einen Empfänger hinzuzufügen?

Ist es möglich, einer bereits verschlüsselten Datei in GPG einen Empfänger hinzuzufügen?

Angenommen, ich habe eine (möglicherweise große) Datei mit GPG verschlüsselt; zB

gpg --recipient "Some Name" -o this_file.gpg --encrypt this_file.txt

Ist es möglich, einen weiteren Empfänger hinzuzufügen, ohne die Datei zuerst zu entschlüsseln und anschließend erneut zu verschlüsseln?

Antwort1

Kurze Antwort: Nein

Beachten Sie zunächst, dass dies völlig unmöglich ist, wenn Sie nicht einer der Empfänger sind. Sie haben nicht einmal die Möglichkeit, die Datei zu entschlüsseln, geschweige denn einen Empfänger hinzuzufügen. Selbst wenn Sie sie vor zwei Sekunden verschlüsselt haben.

Vorausgesetzt, Sie sind der Empfänger, ist dies technisch möglich. Die Datei ist tatsächlich mit einem Sitzungsschlüssel verschlüsselt und der Sitzungsschlüssel ist mit Ihrem öffentlichen Schlüssel verschlüsselt, Sie könnten alsoin der TheorieEntschlüsseln Sie den Sitzungsschlüssel und verschlüsseln Sie ihn erneut mit dem Schlüssel einer anderen Person. Packen Sie dann alles zusammen in eine Datei, als hätten Sie das Dokument ursprünglich für beide Personen verschlüsselt.

Jedoch,gpg verfügt nicht über diese Fähigkeit. Das Beste, was Sie mit gpg erreichen können, ist

  1. Nutzen Sie die --show-session-keyOption zum Abrufen des Sitzungsschlüssels (damit wird anscheinend auch die Datei entschlüsselt, was in diesem Fall aber nicht der Sinn der Sache ist).
  2. Verschlüsseln Sie diesen Sitzungsschlüssel mit dem öffentlichen Schlüssel einer anderen Person (tatsächlich wird dadurch ein neuer Sitzungsschlüssel erstellt und dieser Sitzungsschlüssel wird zum Verschlüsseln des ursprünglichen Sitzungsschlüssels verwendet).
  3. Senden Sie die beiden Dateien.
  4. Der Empfänger kann den Sitzungsschlüssel entschlüsseln und --override-session-keyzum Entschlüsseln der Originalnachricht verwenden.

Antwort2

1) Aus diesem Grund ist es immer eine gute Idee, eine Datei für sich selbst (und die beabsichtigten Empfänger) zu verschlüsseln. RedGrittyBrick hat oben recht, wenn er beschreibt, wie GPG und PGP funktionieren, was in die obige Antwort von nathang einfließt.

2) Wenn Sie jedoch über die Originaldatei verfügen, erstellen Sie am besten einfach eine neue verschlüsselte Datei für den neuen Empfänger.

Angenommen, Sie möchten nicht den von nathang vorgeschlagenen Weg über den Sitzungsschlüssel gehen: Wenn Sie die Datei zunächst für sich selbst verschlüsselt haben (wie oben in Nr. 1), entschlüsseln Sie sie und führen Sie anschließend Schritt 2 oben aus.

Wenn Sie weder das Original besitzen noch die Daten für sich selbst verschlüsselt haben, können Sie die Daten nicht zurückerhalten und sie auch nicht für jemand anderen verschlüsseln, ohne dass der erste Empfänger Ihnen eine Kopie zurücksendet.

Antwort3

Ist es möglich, einen weiteren Empfänger hinzuzufügen, ohne die Datei zuerst zu entschlüsseln und anschließend erneut zu verschlüsseln?

Ohne Entschlüsselung geht es nichtüberhauptaber esscheint so zu seinmöglich ohne Entschlüsselungin eine Datei:

gpg -d this_file.gpg | gpg -e -r "Some Name" -r "Another Name" -o this_file.gpg

Dies scheint jedoch (zumindest manchmal) zu einer beschädigten Datei zu führen, da gpggleichzeitig in dieselbe Datei gelesen und geschrieben wird:

Stattdessen können Sie Folgendes (in einem Skript) tun, um die Verwaltung der entschlüsselten Datei zu vermeiden:

gpg -d -o this_file.txt this_file.gpg

gpg -e \
    -r "Some Name" \
    -r "Another Name" \
    -o this_file.gpg \
    --batch --yes \
    this_file.txt

shred -u this_file.txt

shred, mit der -uOption, überschreibt sicher die Daten der angegebenen Datei und löscht sie anschließend. Ähnliche Programme gibt es für andere Plattformen, beispielsweise srmfür Mac OS X.

Oder Sie könnten Ihr Skript so schreiben (mit freundlicher Genehmigung vondave_thompson_085), um die entschlüsselten Daten überhaupt nicht in einer Datei speichern zu müssen:

gpg -d this_file.gpg \
| gpg -e \
    -r "Some Name" \
    -r "Another Name" \
    -o this_file.gpg.new \
    --batch --yes

mv -f this_file.gpg.new this_file.gpg

Antwort4

Wie bereits in früheren Antworten erwähnt und auch hier gut beschriebenGPGTools Post:

"Zu einer bereits verschlüsselten Datei können keine Empfänger mehr hinzugefügt werden. Wäre das möglich, bestünde ein ernstes Sicherheitsproblem."

Eine Alternative könnte folgende sein:Vim-Plugin, ein sehr praktisches Add-on zum Anzeigen und Bearbeitengpgverschlüsselte Dateien:vim-gnupg.

Nach der Installation aufvim, das Hinzufügen von Empfängern zu einer verschlüsselten Datei kann über den Befehl erfolgen :GPGEditRecipients.

verwandte Informationen