web-dev-qa-db-ja.com

暗号化(PGP)と認証(SSH)の両方に同じキー(RSA)を使用するのは危険ですか?

アリスは、暗号化されたメッセージをボブに送信したいと考えていますが、キャロルのサーバーにも接続したいと考えています。 PGPとSSHの両方で同じRSA鍵を使用することに関連する危険性はありますか(匿名性の欠如を除く)?

4
christianbundy

PGP設定では、暗号化はrecipientの公開鍵で行われます。 SSH認証では、これは(内部的に)clientの秘密鍵による署名です。 AliceがメッセージをBobに送信し、Carolのサーバーにも接続する場合、AliceはBobの公開鍵を使用して暗号化し、ここで(個別の鍵ペアからの)自分の秘密鍵を使用して署名します。ここで問題ありません。

よりトリッキーなケースは、ボブがアリスから暗号化されたメッセージを受信し、キャロルのSSHサーバーに接続したい場合です。その場合、ボブは自分の秘密鍵を使用して(アリスからの)着信メッセージを解読し、キャロル(SSHハンドシェイク内の認証チャレンジ)から送信されたものに署名します。 2つの異なるアルゴリズムに同じ秘密鍵を使用することは、一般的に言えば、2つの使用法の相互作用の可能性が十分に調査されていないため、お勧めできません。また、通常は任意の暗号化キーのバックアップを保持したいが、ない認証/署名キーのバックアップを保持する( this)を参照 )なので、2つのキーを同じにすることは、次善の策をとっていることを意味します。

さらに言えば、通常のPGPセットアップでは、severalのキーペア(サブキーとサブキーを取り消すことができる「マスターキー」)がすでに必要です。暗号化および署名用)。 SSH用に追加のものを用意するのは簡単です。

GnuPG のようなPGP実装と OpenSSH のようなSSH実装は、キーをエンコードするための異なるフォーマットを持っているため、両方に同じキーを使用すると、多少の労力が必要になります。 )

3
Thomas Pornin

実際の問題は、署名/認証GPGサブキーをSSHキーとして使用しているか、暗号化キーとして使用しているかです。前者は問題ありませんが、後者は問題です。RSAキーを暗号化と署名の両方に使用してはなりません。 (認証はデジタル署名を使用します。)

1