web-dev-qa-db-ja.com

DiffieHellmanと署名のための公開鍵の交換

安全でないチャネルを想定しましょう。

最初にアリスとボブの公開鍵を交換してから、DHプロセス中に通信に署名するためにそれらを適用するのは安全ですか? (その後、将来のすべての通信を暗号化して署名します)?

プロセスはむしろ、DHプロセスを最初に適用し、次に公開鍵を署名されていないメッセージと交換し、次にすべての将来の通信を暗号化して署名する必要がありますか? (明らかに次のDHで、公開鍵を再度交換する必要はありません。)

1
user3684457

その最初の使用では、認証されていないDHを実行しています。

そして、これは受動的な盗聴者に対してのみ安全です。アクティブな中間者(MITM)に対しては安全ではありません。

したがって、その最初の交換中にMITMされた場合、すべての賭けは無効になります。悪用の時間枠が目的に対して十分に小さい場合でも、それを使用することをお勧めします。

(つまり、最初の使用を信頼する(TOFU)と呼ばれます。最初の鍵交換は何らかの方法で検証されるか、まったく検証されず、その後のすべての通信でその鍵が使用されます。)

Wikiの詳細: https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange

特にこれ:

Diffie-Hellman鍵共有自体は匿名の(認証されていない)鍵共有プロトコルですが、さまざまな認証されたプロトコルの基礎を提供します[...]

3
StackzOfZtuff