回答:
真ん中の男は、対戦相手によって交換されたキーを取得するだけでなく、キーを変更してから、メッセージを再度復号化および暗号化できますか?
はい、できます。
DH(の「テキストブック」バージョン)のような鍵交換プロトコルは盗聴に対して安全です(つまり、チャネル上で送信されているものを単に監視する)が、中間者(MITM)攻撃に対して完全に破壊されます。あなたが述べた。
証明書はこれを修正するための試みですが、別の問題が発生します。どのようにして、両方の当事者が正しい証明書を確実に受信できるようにしますか?これは再びMITM攻撃の影響を受けやすいため、安全でないチャネルを介して証明書を送信することはできません。
解決策は、代替の(完全に)安全なチャネルの存在です。これは、2人の当事者が直接会って、証明書を物理的に交換するか、または信頼できる代替チャネル(信頼できる場合は電話など)で交換することになります。
コンピュータネットワークでは、代替チャネルは通常、公開キー基盤(PKI)です。これは、ご使用のオペレーティングシステムまたはブラウザに、他の証明書の署名元となる一連の事前設定されたルート証明書(およびこれらを中間証明書として使用するその他の証明書)があることを意味します。したがって、いくつかのWebサイトにアクセスすると、署名済みの証明書が表示されます。これは、すでに信頼している証明書(のチェーン)を使用して署名されています。次に、この証明書を使用することで、認証済みの鍵交換が可能になります(たとえば、通常の対称暗号化で使用する一時鍵に同意するなど)。
中間者攻撃では、ボブにキーを要求しますが、イブはメッセージを傍受し、代わりに彼女のキーを送信します。彼女はボブに彼の鍵を求め、それからあなたとボブの間でメッセージをやり取りし、それらを解読し、その過程でそれらを読んだり変更したりする。
問題は、あなたが本当にボブの鍵を持っているかどうかわからないということです。証明機関(CA)がボブに「ボブのキーは12345です」というデジタル署名されたメッセージを提供するため、証明書はこれを回避します。CAが少ないため、この証明書を確認できます。ブラウザには有効なCAキーのリストが含まれているだけです。さて、イブがボブとの暗号化された通信を開始するあなたの試みを傍受した場合、彼女は2つの選択肢を持っています。ボブのキーが67890であると彼女が言った場合、彼女は証明書を提供せずに「申し訳ありませんが、それを証明する必要があります」と言うか、偽の証明書を提供し、「その証明書は有効ではありません」と言います。または、ボブのキーは12345であり、その有効な証明書を提供していると彼女は言いますが、これは彼女には役に立たないため、彼女にとっては役に立ちません。