Duplicity - 複数のデバイスによる GPG キー暗号化

Duplicity - 複数のデバイスによる GPG キー暗号化

私は、キー ペアに基づく非対称 GPG 暗号化が必要であることを認識しながら、Duplicity を使用してバックアップを機能的かつ堅牢な構成にするのに苦労しています。また、複数のデバイスから安全にバックアップできるようにする必要があります。

今日私が持っているもの:

  • このガイドに従って、tails を使用してオフラインで生成された GPG マスター キー:https://wiki.debian.org/GnuPG/エアギャップマスターキー
  • パスワードで保護されたサブキー 2 つ: 1つ暗号化、そして署名
  • Duplicity バックアップ コマンドは duply で実行され、Scaleway がホストするクラウド ストレージのようなリモート S3 に暗号化されたバックアップを保存します。https://www.scaleway.com/fr/object-storage/ 上記で生成された暗号化キーを使用します。

暗号化されたデータをリモート ストレージに正常に送信し、そこからバックアップされたファイルを復元しました。

現在、この設定には 2 つの問題があります。

  1. バックアップ操作ごとにキーパスフレーズを入力する必要があります

私の署名キーがパスワードで保護されているからではないかと考えています (すべてのサブキーを保護するために同じパスワードが使用されていますが、これは私の知る限り GPG の制限です)。gpg エージェントを設定して、パスワードを無制限にキャッシュに保存しようとしました。これは機能せず、おそらく賢明な方法ではありません。この制限により、無人バックアップを設定するのは非常に困難または不可能になります。

-> パスワードで保護されていない署名サブキーを使用する必要がありますか? これも正しい方法ではないようです...

  1. 複数のデバイスからバックアップしたい

現在の設定では、同じキー セットを新しいデバイスにインポートする必要があります。これは明らかに避けたいことです。デバイスが侵害された場合、盗まれたキーを使用してすべてのデータを復号化できる攻撃者がすべてのバックアップにアクセスできるようにしたくありません。->「卵を同じバスケットに入れないでください」。

まず、「同じバスケットに卵を入れない」とは、1 つの PGP キーペアにすべて依存すべきではないという意味にも取れます。たとえば、「メール/Git」キーペアとは別に、「バックアップ/ストレージ」キーペアを作成する必要があります。結局のところ、これらのキーペアは使用方法と要件がまったく異なります。バックアップは完全に内部的なものなので、「メイン」PGP キーペアで署名してもメリットはありません。

=> ありがとうございます。それは理にかなっています。新しいバックアップ固有のキーペアを作成するのは合理的であると思われます。

しかし、私がシステムを正しく理解していれば、Duplicity はバックアップを復号化する必要はなく、暗号化するだけでよいのです。(もちろん、復元する必要がない限り) つまり、バックアップ リポジトリに寄与するどのデバイスでも、暗号化サブキーの秘密部分は実際には必要なく、復元時にのみ存在すればよいことになります。

=> あなたの言う通りだと思います。増分バックアップが失敗して再起動する必要がある場合を除いて、このような状況はそれほど頻繁には発生しないはずなので、手動による介入は許容されると思います。つまり、暗号化用の秘密サブキーはどのデバイスにも存在しない可能性があります。

-> ここで推奨される戦略は何でしょうか? 現在私が理解しているところによると、同じ GPG マスター キーを使用して複数の暗号化/署名サブキーを管理することは不可能でしょうか? バックアップ用に複数のマスター キーを生成する必要がありますか?

要約してみます:

  • デバイスごとに異なる暗号化キーが必要な場合 (最も安全なオプションと思われます)、デバイスごとに新しいキー ペアを生成する必要がありますか?
  • 署名キーに関しては、まだどのように進めればよいかわかりません...
    • デバイス固有のキーペアのサブキーとして管理する必要がありますか?
    • またはすべてのデバイスに 1 つのキーを使用しますか?
    • 複数の署名キーを別々のキーペアのサブキーとして使用しますか?

それは意味が分かりますか?再度、ご協力ありがとうございます!

答え1

複数のデバイスからバックアップしたい

現在の設定では、同じキー セットを新しいデバイスにインポートする必要があります。これは明らかに避けたいことです。デバイスが侵害された場合、盗まれたキーを使用してすべてのデータを復号化できる攻撃者がすべてのバックアップにアクセスできるようにしたくありません。->「卵を同じバスケットに入れないでください」。

まず、「同じバスケットに卵を入れない」とは、1 つの PGP キーペアにすべて依存すべきではないという意味にも取れます。たとえば、「メール/Git」キーペアとは別に、「バックアップ/ストレージ」キーペアを作成する必要があります。結局のところ、これらのキーペアは使用方法と要件がまったく異なります。バックアップは完全に内部的なものなので、「メイン」PGP キーペアで署名してもメリットはありません。

しかし、私がシステムを正しく理解しているなら、Duplicityは解読するバックアップ – 必要なのは暗号化する(もちろん復元する必要がない限り)つまり、暗号化サブキーの秘密部分は実際には必要ないということです。どれでもバックアップ リポジトリに貢献するデバイスの場合、復元時にのみ存在する必要があります。

現在私が理解しているところによると、同じ GPG マスター キーを使用して複数の暗号化/署名サブキーを管理することは不可能なのでしょうか?

複数の暗号化サブキーを持つことはできません(送信者はどのデバイスでメッセージを読みたいのか分からないため、唯一の有効なオプションは暗号化することです)。全て暗号化サブキーの数が少なくなるため、複数のサブキーを持つことの意味がなくなります。

一方、複数の署名暗号化とは逆の状況なので、キーごとにサブキーが必要です。

(すべてのサブキーを保護するために同じパスワードが使用されていますが、これは私の知る限り GPG の制限です)

これはUIの選択である可能性が高い。gpg-agentする各秘密鍵に対して異なる保護をサポートしますが (実際には関係は考慮されません)、GnuPG UI で「パスワードの変更」操作が特定のサブキーにのみ影響するようにした場合、役立つよりも多くのユーザーを混乱させる可能性があります。

から各秘密鍵の「キーグリップ」を見つけgpg -K --with-keygrip、それを使用してgpg-connect-agentパスフレーズを直接変更します (GnuPG をバイパスします)。

gpg-connect-agent "passwd KEYGRIP" /bye

関連情報