web-dev-qa-db-ja.com

公開PGP認証サブキーを公開しても安全ですか?

次のようにPGP鍵を設定するとします。

onlyCertifyに設定されたオフラインマスターパブリック/プライベートキーペアがあり、別名サブキーを作成して他の人のキーに署名します。

次に、(オフラインバックアップを使用して)Yubikeyに配置する3つのサブキーを作成します。

  • 署名キー
  • 暗号化キー
  • 認証キー

signingキーは、メッセージとgit commitに署名するために使用されます。

encryptionキーは、暗号化されたメッセージを送信するために使用されます。

authenticationキーはgpg-agent --enable-ssh-supportと共に使用され、サーバーにログインするためのSSH認証として使用されます。

私の質問は:

キーサーバーにauthenticationサブキー(または3つすべての公開サブキー)を公開することで、セキュリティ上のマイナス(またはプラス)の影響はありますか?

私の論理は、私が本当にsigningパブリックサブキーを公開する必要があるだけなので、人々が私の署名を確認できるようにし、 my encryption公開サブキー。暗号化されたメッセージを送信できます。

私のサーバーのauthorized_keysファイルでのみ使用され、パスワードなしでログインできるようにするため、「公衆」の誰もがauthenticationキーを持っていることさえ知る必要はありません。 。

誰かがサーバーに侵入してauthorized_keysファイル内の公開鍵を照会した場合、キーサーバーでそれを調べて、私が特にそのサーバーを使用していることを知ることができます。これは問題があるのですか、それとも私は考えすぎですか?

10
jaybee

潜在的な攻撃者に必要以上のキーを提供することにより、最小限の特権の原則に違反します(なぜ、他の誰かがあなたの公開キーを表示する特権を持つ必要があるのですか?)。彼らが知る必要がない場合、彼らがさらなる情報を差し引くのを助ける意味はありません。 SSH鍵の鍵タイプ(RSA、ECDSAなど)とサイズ(例:2048ビット)で攻撃ベクトルを見つけるこのことから、彼らは一般的にシステムを安全に保護する方法、新しいテクノロジーに切り替える速度、一般的にどれだけ妄想的であるかについて、より多くの情報に基づいた推測を行うことができます(うーん、まだ1024ビットRSAを使用していますか?ああ、512ビットECDSA、興味深い...)。

鍵の生成の瞬間、512ビットのRSA鍵が現在の通常のラップトップでクラックされる可能性があることを知らなかったと想像してください。攻撃者がそのようなキーをオンラインで積極的に検索すると、すぐに標的としてマークされます。または、そのキーを交換するのを忘れたり、サーバーを忘れたりしたと想像してください(または、変更のためにもう生きていません)。 X年後には、2048ビットのRSAキーの秘密部分がより高度な計算システムで計算される可能性があり、サーバー上にあるデータが危険にさらされることになります。それはもうあなたに影響を与えないかもしれませんが、おそらくあなたはそれを秘密にしておくことにまだ気になる他の誰かのデータを保存しています。

もちろん、これらのシナリオは非常にまれです(弱いキーを使用する場合を除いて、定期的に発生します.4096ビットのRSAキーでさえ、エントロピープールの状態が悪かった場合は役に立ちません。 このホワイトペーパーでは )、そしておそらくSSHのバグにより、サーバーのキーが解読される前にサーバーが悪用される可能性がありますが、その確率はゼロではないため、より多くのデータを公開する前にそれらを考慮する必要があります必要がある。これらのシナリオを検討している場合は問題ありませんが、誰もがすべての攻撃シナリオまたは影響を予測できるわけではないため、それらについてまったく考える必要がない方が簡単です。

SSH認証キーをアップロードして検索する必要がある場合は、たとえば、新しいサーバーのauthorized_keysファイルを構成するには、推測しにくいURL、例えばwww.mydomain.com/download/myAwesomePublicSSHkey.pub

5
Anton Kaiser

はい、あなたの論理は健全です。公開鍵を公開するだけで、暗号化されたメッセージを送信し、署名を確認することができます。ただし、SSHの公開鍵を公開する理由はありません。それは、とにかく公開できなかったということではありません。どちらにしても、セキュリティには影響しません。誰かがあなたの公開鍵を偶然に取得した場合、それによって許可されるのはあなたからのSSHセッションの開始を特定することだけであり、私が正しく理解できないある種の極端なシナリオを除いて、それは本当に気にしないはずです。今。

5
DeepS1X

セキュリティはユースケースによって異なります。

  • 誰かがあなたの公開認証キーでサーバーを攻撃できますか?
    • 番号。
  • 誰かがあなたのサーバーに侵入した場合、その人はあなたのメールアドレスを知ることができますか?
    • はい。しかし、多分その人はあなたの公開認証キーなしであなたの電子メールアドレスも見つけます。
  • 誰かがキーサーバーから公開認証キーを取得した場合、そのユーザーはそれがどのサーバーで使用されているかを知ることができますか?
    • わかりませんが、認証キーの詳細を見れば確認できます。
  • 誰かがあなたの公開鍵からあなたの秘密の認証を得ることができますか?
    • いいえ、キーが十分に強力である限り(例:> = 2048ビットRSA)
  • これらすべての質問を公開して公開する必要がありますか?
    • それはあなたのユースケースに依存します;)
1
nebulak