2012-03-07 28 views
7

私はデジタル署名と暗号化の使い方を整理しようとしています。私はこれを行うには2つの主な方法があることを理解しています:PGPの方法とSSLの方法。GnuPG/PGPとSSL:同じ秘密鍵を共有していますか?

SSL証明書とGnuPGの両方に同じ秘密鍵を使用できるかどうかを知りたい場合は、これがRSA 2048ビット鍵であることを前提とします。

私は既にCAによって署名されたSSL証明書を持っていますので、その証明書の秘密鍵をGnuPGマスター秘密鍵として使用したいと考えていました。

おかげで(これだけのデータの一片を保護するためのもの)

は、私たちはSSLとGnuPGのこの方法の間で主張を作ることができないことを知っているが、私は唯一の秘密鍵を持っていると思い

+0

証明書は「SSL証明書」ではなく、SSLとは関係ありません(ただし、SSLとOpenPGPキーで使用できます)。 –

+0

「保護するプライベートキーが1つだけ」という響きがうまくいけば、本当にあなたの「1つの卵子をたくさんのバスケットに入れて」(重複しないように)あなたのWebサーバーがハッキングされたら、今あなたの神聖なPGP鍵が破棄されました!あなたのラップトップが盗まれたり、クラックされたりすると、あなたのウェブサイトをMITMするのに簡単に使える鍵ができました!職務の分離をすることをお勧めします。 – JamesTheAwesomeDude

答えて

10

これは可能ですが、必ずしも良い練習ではありません。

まず、「SSL証明書」と言うと、おそらく「X.509証明書」を意味します。ほとんどの場合、SSL/TLSはX.509証明書を使用しますが、OpenPGP certificatesも使用できます(私の知る限り、GnuTLSのみがサポートしています)。

「OpenPGP証明書」という表現も使用しています。ほとんどの人は、(オープン)PGP公開鍵と呼んでいますが、実際には証明書です。公開鍵と識別子といくつかの属性を組み合わせたもので、署名を付ける他のエンティティによって署名されています。全体的な証明書を形成する。厳密に言えば、公開鍵だけではありません。

X.509証明書とPGP証明書の主な違いは、X.509は1つの署名(発行者のもの)のみを持つことができますが、複数の署名をPGP証明書に追加できます。 (PGPモデルは階層的なPKIのようなモデルに使用できますが、PKIモデルはWeb-of-Trustモデルを処理するためには使用できません)。

This Java codeは、PGP自己署名入りのX.509証明書に変換します。原則として、それをCSRに変換してCAからX.509証明書を取得することもできます。そうすることが良い考えであるかどうかは、別の問題です。

まず、新しい鍵ペアをしばらくして再生成することをお勧めします。通常、これはSSLに使用されるX.509証明書の有効期限が終了する理由の1つです(PGP署名も時間的に制限される可能性があります)。

また、すべての卵を同じバスケットに入れることも効果的です。いずれかのキーが侵害された場合、X.509およびPGP証明書の両方が侵害されます。

さらに重要なことに、it's considered bad practice to re-use the same keys for signing and encryption:これらを2つの異なるアプリケーション(SSL/TLSとGnuPG)で使用すると、問題が悪化します。

+0

ありがとう、それは今意味があります。そして、はい、私は本当にセキュリティ専門家ではないので、私はまだすべての条件(SSL、PGP、Key、X.509)に精通していません。 – Pedro

+0

ちょうど注意:私たちのSecureBlackboxは、SSL/TLSでOpenPGPキーもサポートしています。 –

+0

私はこのアプローチも試みています。自己署名Xを確認することは不可能です。509証明書は、特定のOpenPGPキーにリンク(署名)されます。それ、どうやったら出来るの?ここに質問があります:http://stackoverflow.com/q/19678786/1045199 –

関連する問題