GPG で既に暗号化されたファイルに受信者を追加することは可能ですか?

GPG で既に暗号化されたファイルに受信者を追加することは可能ですか?

GPGを使用して(おそらく大きな)ファイルを暗号化したと仮定します。例:

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

最初にファイルを復号化してから別の暗号化を行わずに、別の受信者を追加することは可能ですか?

答え1

短い答え:いいえ

まず、あなたが受信者の一人でない場合は、完全に不可能であることに注意してください。ファイルを復号化することすらできず、受信者を追加することなどできません。たとえ 2 秒前に暗号化したとしてもです。

あなたが受信者であると仮定すると、技術的には可能です。ファイルは実際にはセッションキーで暗号化されており、セッションキーはあなたの公開鍵で暗号化されているので、理論的にはセッション キーを復号化し、別の人のキーで再暗号化してから、両方の人に対して最初にドキュメントを暗号化したのと同じように、すべてを 1 つのファイルにまとめてパッケージ化します。

しかし、gpgにはこの機能がありませんgpgで最も近いのは

  1. セッション キーを取得するオプションを使用します--show-session-key(ファイルの暗号化も行われるようですが、この場合は意味がありません)
  2. そのセッションキーを他の人の公開キーで暗号化します(実際には、新しいセッションキーを作成し、そのセッションキーを使用して元のセッションキーを暗号化します)
  3. 両方のファイルを送信してください。
  4. 受信者はセッション キーを復号化し、それを使用して--override-session-key元のメッセージを復号化できます。

答え2

1) このような状況では、自分自身 (および意図した受信者) に対してファイルを暗号化することが常に良い考えです。RedGrittyBrick は、GPG と PGP の仕組みについて上で正しく説明しており、これは上記の nathang の回答に反映されています。

2) ただし、元のファイルがある場合は、新しい受信者向けに新しい暗号化ファイルを作成するのが最善です。

nathang の提案に従ってセッション キー ルートを使用したくない場合は、最初にファイルを自分自身に暗号化した場合 (上記の #1 のように)、それを復号化してから上記の手順 #2 に従ってください。

オリジナルを持っていない場合、またはそれを自分自身に暗号化していない場合、データを取り戻すことはできず、最初の受信者がコピーを返送しない限り、他の誰かに暗号化することもできません。

答え3

最初にファイルを復号化してから別の暗号化を行わずに、別の受信者を追加することは可能ですか?

解読しないと不可能だまったくしかしそれはそうあるべきだと思う復号化せずに可能ファイルに:

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

gpgただし、同じファイルに対して同時に読み取りと書き込みを行うため、ファイルが破損する可能性があるようです (少なくとも時々) 。

代わりに、復号化されたファイルを管理する必要がないように、次の操作を (スクリプトで) 実行できます。

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オプションを使用すると-u、指定したファイルのデータを安全に上書きしてから削除します。Mac srmOS X などの他のプラットフォームにも同様のプログラムが存在します。

または、次のようにスクリプトを書くこともできます(提供:デイブ・トンプソン) を使用すると、復号化されたデータをファイルに保存する必要がなくなります。

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

答え4

以前の返信でも述べましたが、この返信でもよく説明されていますGPGツール 役職:

「すでに暗号化されているファイルには受信者を追加できません。それが可能であれば、深刻なセキュリティ上の問題が生じます。」

そうは言っても、代替案としてはこれがあるかもしれないvimプラグイン、表示と編集に非常に便利なアドオングーグル暗号化されたファイル:vim-gnupg

インストールしたらヴィム暗号化されたファイルに受信者を追加するには、:GPGEditRecipientsコマンドを使用します。

関連情報