web-dev-qa-db-ja.com

公開鍵を公開することはどれほど危険でしょうか?

たぶんこの質問は明白に聞こえるかもしれませんが、非対称暗号化システムの公開鍵を公開することはどれほど危険なのでしょうか。

公開鍵はメッセージを暗号化するための誰もが暗号化するためのものであることは知っています。そのため、最も一般的なCAの公開証明書をWebブラウザーからダウンロードすることもできます。

しかし、公開キーをWebサーバーに公開して誰でもダウンロードできるようにしても安全ですか?これを行うと私はどのようなリスクに直面していますか?

ありがとう。

38
nKn

なし。それが公開鍵と呼ばれる理由です。現在解くことが非常に困難な数学の問題を解決せずに、暗号化されたものにアクセスするために使用することはできません。将来的にはこれらの問題を解決できる可能性があり、それによって公開鍵でメッセージをデコードできるようになる可能性がありますが、現時点で既知の脅威はありません。

反対に、公開鍵を共有しない場合、秘密鍵は役に立たないということです。対称暗号化よりも非対称暗号化を使用する唯一の理由は、誰かに公開鍵を公開する必要がある場合です。それ以外の場合、自分で作業を行うだけの場合は、対称型の方がはるかに高速で安全です。

61
AJ Henderson

上記で言及したいくつかの情報を拡張するために、基本的に2つのリスクを考慮する必要があります。どちらもアルゴリズムに関連するものではありません(安全です)。

まず、偶発的なデータ漏洩です。スレート氏としてslaterockandgravel.comを実行していますが、鍵に[email protected]の署名がありますか?ベティはあなたの鍵に署名しましたか、そしてあなたはそれを世界に知られたくないですか?これらはまれなケースですが、考慮してください。

第二に、おそらくそれ以上に、誰かがあなたのウェブサイトを仲介し、あなたへの通信を傍受するために使用することを計画している偽の鍵をあなたの友人に提示することに対する警戒です。再び可能性は低いですが、問題を回避するためにできることは2つあります。a)TLSの下に置く-または-b)(より良い)公開鍵サーバー(skなど)に鍵をアップロードし、Webサイトにのみ鍵IDを置く(あなたのキーIDのルックアップでsksウェブサーバーへのウェブリンクを提供することもできます)。人々はすでにキーの配布を理解しているので、彼らの仕事を活用してください。

これらのほとんどの場合、この方法で攻撃されるのはおそらくあなたではありませんが、それは誰かであるため、私たち一人ひとりがまるで私たちであるかのように行動する必要があり、それによって私たちはより安全なコミュニティを築きます。

19
Bill McGonigle

しかし、あなたが目的のメッセージを他の人が暗号化できるように、公開鍵を公開する必要があります。そのため、公開鍵を公開し、(できれば個人的に)知っている人に署名してもらう必要があります。

詳細: Web of Trust および Key signing partys

9
nikolas asteri

リスクには信頼があります。直感的ではありませんが、キーを公開しないと、誰かが自分のキーを公開して自分のものだと主張するのは簡単です。公開鍵は非常に公開する必要があります。

最善の防御策は、キーが適切に署名されていることを確認することです。

6
John Deters

公開鍵が他の人によって署名されていて、だれがあなたの鍵に署名したかを明らかにしたくない場合に、公開鍵を公開する唯一のリスクがあります(これは、偶然または親密に接続した人物を知るために使用できるためです)。

4
Kevin Li

一般的に、暗号化には、秘密情報と公開情報の2種類の情報があります。

秘密の情報を秘密に保つことは、映画のように大きな銀行の大きなドアのある大きな金庫にそれを置くようなものです。

公開情報を秘密にしておくことは、ドアに「私の物を盗んではいけない」という標識を貼るようなものです。

公開情報は世界に知られ、それを保護するための無駄遣いが多すぎるとは思わない方がよいでしょう。別の回答で述べたように、基本的な認証の安全対策を講じることは理にかなっています。特定の人だけがあなたにメッセージを送信できるようにする必要がある場合は、それらの人だけがあなたの公開鍵にアクセスできるべきシステムを置くことは理にかなっています破棄する必要がある偽のメッセージを受信する可能性を減らすためだけに...偽のメッセージの認識と破棄を処理する必要がありますが、トラフィックの可能性を減らします。

1
Jason

はい、理論的に言えば、非対称暗号アルゴリズムは、公開鍵を公開する必要があります。ただし、使用中のアルゴリズムとアルゴリズムの強度(使用されているビット数など)によっては、これらの公開鍵の一部が壊れて秘密鍵が生成される場合があります。たとえば、RSA暗号化システムが使用されている場合、一般に少なくとも1024ビットのキーを使用することをお勧めします。それより少ないと、暗号化システムが危険にさらされる可能性があります。たとえそうであっても、1024ビットのキーでさえ、今後の強力なコンピューターで解決できる可能性があるため、2048ビットのキーを使用することをお勧めします( http://www.emc.com/emc-plus/rsa-labs/historical/ has-the-rsa-algorithm-been-compromised.htm )。したがって、アプリケーションが銀行や軍などの高度なセキュリティを目的とするものでない限り、あまり心配する必要はありません。

1
nitarshs