web-dev-qa-db-ja.com

安全性の低いOpenPGP主キーに基づいてサブキーを生成する

さまざまなマシンでOpenPGPサブキーを使用する利点について読んでいます。複数のマシン(特にラップトップ)間で同じマスターキーをコピーするよりも、明らかに安全です。

ここで説明するように、OpenPGPキーを管理する「マシンごとに1つのサブキー」の方法に移行することを計画しています: https://wiki.debian.org/Subkeys

OpenPGP署名を最初から設定している場合、手順はかなり明確です。ただし、rsa2048キー(DB746BD8)数年間、そして理想的にはそれに関連付けられた信頼とアイデンティティを維持したいと思います。このような状況を説明する(最近の)ベストプラクティスガイドはありますか?たとえば、rsa2048マスターキーを使用して4096ビットのサブキーを生成することには意味がありますか(つまり、セキュリティを追加しますか)?新しいrsa4096主キーを生成する方が良いでしょうか?または完全に異なる何か?

[〜#〜]編集[〜#〜]

私の特定のキー/状況に関するいくつかの追加情報:

  • キーは主にGitコミット署名に使用されました。暗号化に使用されたり、キーサーバーにアップロードされたりしたことはないと思います。
  • 「公開」されたのは、GitHub Webサイトにアップロードされたときのみ ここで説明 です。
  • キーは誰にも認証/署名されていません。

私の目標は、中長期ののPGP/GPG設定を理解することです。これまでのところ、計画は次のようになります。

  1. 使用する主キーを決定します
    1. 既存のrsa2048主キーを保持しますDB746BD8
    2. 新しい主キーを生成します(例:rsa4096、ecdsa)
  2. 新しいサブキーを生成して配布する
  3. キーサーバーにキーをアップロードする
  4. 暗号化、他の人の鍵への署名など​​に使用する可能性があります。

主な質問は、私は1.1で行くべきかどうかです。または1.2。 -特に、2。3.および4.を実行した後は、後で新しいキー(?)に切り替えるのが難しくなる可能性があることを考慮してください。

4
friederbluemle

OpenPGPキー全体のセキュリティ(プライマリキーに依存)と暗号化/署名付きメッセージのセキュリティ(主にサブキーに依存しますが、以下を参照)を区別する必要があります。

主キー

主キー自体は明らかに強化されていません-すべての主キー操作(他のキーの認証の発行、ユーザーIDの管理、サブキーの管理、失効証明書の発行)主キーにバインドされています。攻撃者が主キーを取得した場合(たとえば、将来的に実行可能なブルートフォース攻撃によって)、攻撃者はこれらのすべてのタスクを実行できるようになります。さらに、主キーはしばしば署名機能ビットを設定しているため、有効な証明書を発行することもできます(実際、GnuPGでキーペアを作成する場合、これがデフォルトです)。

署名

サブキーは「日常業務」、つまりドキュメントの署名と暗号化に使用されます。 signaturesの場合、攻撃者は主キーを取得したときに新しい(そして自動的に信頼される)サブキーペアを簡単に作成できるため、実際には使用されません。より強力なサブキーを作成する場合(もちろん、使用されている署名キーを手動で確認できますが、これはOpenPGPのベストプラクティスおよび標準ではありません)。

暗号化

暗号化キーの場合、状況は異なります。いったんメッセージがサブキー用に暗号化されると、新しい暗号化サブキーを作成しても意味がありません。つまり、攻撃者は、秘密の主キーを取得する前に暗号化された古いメッセージを復号化することはできません。アクセスできるようになるとすぐに、新しい暗号化キーを発行してメッセージを傍受できるようになります。 OpenPGPの実装は、暗号化が可能な最新の有効なサブキーを使用します。実際、これらのメッセージを読むことはできなくなります(新しい秘密鍵にアクセスできないため)。

ただし、どちらの場合(署名および暗号化サブキー)でも、攻撃者が新しいサブキーを配布する必要があるため、少なくともが何かを誤解することができます。しかし、ダメージが既に発生する前に攻撃が発生したことに気付かないでしょう。

要約

いくつかの用途があり、新しいサブキーペアを作成するのは安価で簡単な作業なので、なぜそうしないのでしょうか。ただし、長期的な解決策として、古いキーを段階的に廃止し、 代わりに新しいキーペアに切り替える を検討してください。たぶん、すでに新しいECDSAキーを検討しているのでしょうか?

1
Jens Erat