web-dev-qa-db-ja.com

GPG-なぜ主キーではなくサブキーで暗号化するのですか?

共同編集者に送信するファイルを暗号化すると、次のメッセージが表示されます。

gpg: using subkey XXXX instead of primary key YYYY

なぜでしょうか?暗号化されたファイルを送信すると、プライマリキーではなくサブキーに対しても暗号化されているように見えます。私にとって、これは問題ではないようです。 gpg(1.4.x、macosx)はそれを処理し、次に進みます。しかし、彼らにとっては、自動化されたツールのセットアップにより、これは問題であるようであり、私は彼らの主キーを必ず使用するように要求しました。

私はいくつか読んでみましたが、Michael Lucasの「GPG&PGP」の本を注文しましたが、なぜこの違いがあるのか​​わかりません。私持っている署名に使用されるキーと暗号化に使用されるキーは異なることを読みましたが、私はそれが最初は公開キーと秘密キーについてであると想定しました。

信頼/検証の問題である場合は、指紋を比較して検証するプロセスを行いました。はい、このキーを信頼しています。私がそれをしている間、私は主キーとサブキーに異なる「使用法」のメモがあることに気づきました:

primary:  usage: SCA
subkey:   usage: E

「E」は「暗号化」を意味するようです。しかし、これに関するドキュメントは見つかりませんでした。さらに、コラボレーターはこれらのツールとテクニックを数年使用してきましたが、なぜこれが私だけの問題なのですか?

32
Michael H.

更新

以下の元の投稿では、個別の暗号化キーと署名キーを使用する理由を正しく説明していますが、主キーの代わりにサブキーを使用する理由の質問に答えることはできません。 Debian Wikiは はるかに完全な回答 を提供します。

要約すると、あなたの主キーはあなたのオンラインIDであり、あなたのIDと評判は、他の人がそのキーに自分で署名することによってあなたのものであることを保証することによって構築されます。 (あなたはそれをあなたのTwitterハンドルであり、あなたの評判があなたのTwitterフォロワーであることのように考えるかもしれません、またはあなたはその類推に反対するかもしれませんが、それがあなたがそれを保護したい理由のいくらかの意味を与えることを願っています。)キーは非常に重要であり、何年にもわたって構築されており、非常に保護したいと考えています。特に、盗まれたりハッキングされたりする可能性のあるコンピューターに保存したくない場合。安全な場所に主キーをオフラインにしておく必要があります。

もちろん、これは主キーを使用するのに非常に不便にします。そのため、日常の運用では、それほど大きな問題ではないキーを使用して、キーが危険にさらされた場合に交換する必要があります。これが、サブキーが発明された理由です。

サブキーは依然として公開/秘密キーのペアであり、あなただけが秘密キーを持っている限り安全です。暗号的には、主キーと同じくらい安全です。違いは、あなたの評判はあなた自身の署名、つまりあなたの秘密鍵からの署名によってのみそれに結び付けられるということです。 Twitterのアナロジーを使用する場合、世界中のフォロワーがあなたのTwitterハンドルであると信じています。フォロワーはすべてそう言っているからです(確かに、常にそうなるとは限りませんが、アナロジーは難しいのです!)。ツイートするだけで、Instagramハンドルを所有している世界をはるかに簡単に納得させることができます。

サブキーの安全性を維持したいのですが、サブキーが危険にさらされたとしても、主キーが危険にさらされた場合(つまり、誰かがTwitterアカウントをハイジャックした場合)は大きな問題ではありません。これで、失効証明書と新しいサブキーに署名し、両方を公開鍵リングに投稿することで、サブキーを取り消して新しいものを発行することができます(「ツイート、Instagramハンドルが変更されました。古いものを使用せず、これを使用してください。代わりに1つ」)。これにより、ラップトップコンピュータにサブキーを保持することは、主キーを保持するよりも許容できるリスクになります。

TL; DRサブキーは、(主)公開キーの信頼および識別機能から公開キーの暗号化機能を分離することにより、キー管理をはるかに容易にします。


元の投稿

公開鍵暗号化の数学の詳細を見ると、署名と復号化は実際には同じ操作であることがわかります。したがって、単純な実装では、誰かにメッセージに署名するように依頼することで、誰かをだましてメッセージを復号化させることが可能です。

これを防ぐために、実際にはいくつかのことが行われます。最も明白なのは、実際のメッセージに署名するのではなく、メッセージの安全なハッシュに署名することです。それほど明確ではありませんが、安全性を高めるために、署名と暗号化には異なるキーを使用します。また、暗号化キーを分離しておくことで、他のより重要で間違いなく使用頻度の低い他のキーをオフラインでより安全に保つことができます。これは、検査したキーの場合です。ちなみにフラグの意味:

  • e =暗号化/復号化(受信したメッセージを暗号化して、読むために暗号化します)
  • s = sign(データに署名します。たとえば、ファイルまたは署名付き電子メールを送信します)
  • c =証明する(別のキーに署名し、信頼関係を確立する)
  • a =認証(PGPキーを使用してSSHにログインします。これは比較的新しい使用法です)

すべての場合において、「キー」は公開鍵と秘密鍵のペアを意味することに注意してください。

すべてが正しくセットアップされていれば、これはあなたの友人にとって問題にはなりませんが、すべてを正しくセットアップすることは、本来より複雑になる可能性があります。したがって、最良の解決策は、友人が署名と暗号化の両方に使用する新しい公開鍵を生成することです。私が言ったように、攻撃に対する主な防御策はメッセージの暗号的に安全なハッシュに署名することだけなので、そのような鍵を持つことは深刻な弱点ではありません。

43
Old Pro

フラグのリファレンス

代替参照

それを超えて、私はあまり助けにはならないでしょう。 PGP/GPGは、ほとんど何もできないために過度に複雑であることに気づきました。幸運を。

2
user124776