X509証明書を使用してメッセージに署名および暗号化する場合、暗号化と署名に同じ証明書を使用しない理由はありますか?
更新:振り返ってみると、これは私がSOでこれまでに尋ねた中で最も頭の痛い質問であるに違いないと思います。ごめんなさい。
X509証明書を使用してメッセージに署名および暗号化する場合、暗号化と署名に同じ証明書を使用しない理由はありますか?
更新:振り返ってみると、これは私がSOでこれまでに尋ねた中で最も頭の痛い質問であるに違いないと思います。ごめんなさい。
送信者は自分の秘密鍵を使用してメッセージに署名します。メッセージは受信者の公開鍵で暗号化されます。証明書には公開鍵が含まれています。おそらく、送信者の公開鍵(メッセージの署名に使用される送信者の秘密鍵に対応)も証明書に表示されます。
受信者は、自分の秘密鍵(証明書の公開鍵に対応)を使用して、着信メッセージを復号化します。受信者は、(送信者証明書からの)送信者公開鍵を使用して署名を検証します。
そうは言っても、誰もが電子メールを送受信できる一般的なシナリオを想像することができます。したがって、誰もが電子メールの暗号化と復号化に使用されるキーペア(証明書に公開部分を含む)を持っています(ボブの公開鍵はボブに送信される電子メールの暗号化に使用され、ボブは対応する秘密鍵を使用してそれらを復号化します。メール)。また、誰もが署名用のキーペアを持っています(ボブは自分の秘密キーを使用して送信するメッセージに署名し、アリスはボブの公開キーを使用してボブによって計算されたとされる署名を検証します)。問題は、ボブが2つのキーペア(1つは暗号化/復号化用、もう1つは署名/検証用)を持っているのか、それとも両方のジョブに使用されるキーペアを1つだけ持っているのかということです。
たまたま、RSA公開暗号化アルゴリズムとRSA署名アルゴリズムは、(論理的には)「RSAキー」と呼ばれる同じ種類のキーを使用できます。したがって、これは実行可能であり、実際には非常に頻繁に発生します。
ただし、一般的に、署名キーと暗号化キーには、異なるライフサイクルと管理手順があります。ビジネスのコンテキストでは、暗号化キーを失うことはデータを失うことを意味するため、方向は暗号化に使用されるすべての秘密キーのコピーを安全に保持します。そして、従業員は「利用できなくなる」可能性があります(従業員は解雇され、従業員は退職し、従業員はバスに襲われます...)。逆に、署名キーが失われた場合でも、以前に発行された署名は引き続き有効で検証可能であるため、他の署名を生成できるようにするには、新しいキーペアを作成するだけです。さらに、デジタル署名は、存在しない場合にのみ強力な法的ステータスを取得する可能性がありますどこかの金庫に鍵のコピー。したがって、一般的なアドバイスは、暗号化キーと署名キーを分離しておくことです。両方に同じキーを使用することは、望ましくない副作用(データの損失や法的価値の欠如など)をもたらす可能性のある概算です。状況に応じて、これは問題になる場合と問題にならない場合があります。
X509証明書には公開鍵が含まれています。暗号化するには、おそらく証明書から取得した受信者の公開鍵を使用します。署名するには、おそらく安全なストアからの秘密鍵を使用します。受信者は、おそらく証明書からの公開鍵を使用して署名を検証します。以上が基本です。