gpt4 book ai didi

ssl - 用于 secret key 分发的公钥密码学与 Diffie–Hellman

转载 作者:太空宇宙 更新时间:2023-11-03 12:59:28 25 4
gpt4 key购买 nike

假设我们有一个带有私钥和公钥的服务器,后者可供所有客户端使用,而我们有一个客户端没有自己的任何非对称 key 。我们希望在服务器和客户端之间建立安全通信,并且客户端必须确保服务器的真实性。这是一种很常见的情况。

现在,我的理解是私钥/公钥对通常在这种情况下仅用于确保真实性(我们的客户端可以使用服务器的公钥来验证服务器的真实性)。为确保服务器和客户端之间的双向通信,使用 Diffie–Hellman key 交换,然后通信基于共享 key 。

我一直想知道为什么在这种情况下会使用 Diffie-Hellman。据我了解,公钥密码术可用于确保真实性并在客户端和服务器之间共享 key 。服务器可以向客户端发送一条用其私钥编码的消息,客户端可以使用服务器的公钥对其进行解码以确认其身份。此外,客户端可以使用服务器的公钥向服务器发送一个新的随 secret 钥。只有服务器知道这个 key ,因为只有服务器知道他的私钥。我知道有些人建议不要使用公钥进行编码和解码,但没有人说出原因。

显然,如果客户端和服务器都有自己的公钥/私钥,他们甚至不需要共享任何 key ,但这不是典型情况。

所以……总结一下。为什么使用 Diffie-Hellman 而不是使用公钥加密的 key 分发?有什么优势吗?

最佳答案

I can't stop by wonder why Diffie-Hellman is used at all in suchsituations. From what I understand Public-Key Cryptography could beused to both ensure authenticity AND to share a secret key between theClient and the Server.

Diffie-Hellman 和 RSA key 交换(其中 RSA 用于加密)都可以与 SSL/TLS 一起使用。这取决于密码套件。

Server can send to Client a message encoded with its private key andClient can decode it using Server's public key to confirm itsidentity.

这确实是 DH key 交换与 RSA 或 DSS 身份验证所发生的情况:服务器使用其私钥签署其 DH 参数,客户端可以验证签名。

Furthermore Client could use the Server's public key to send a newrandom secret key to the Server. Only Server would know this secretkey as only Server knows his private key.

RSA key 交换或多或少会发生这种情况:客户端加密只有服务器才能解密的预主 key 。

您可以在 Authentication and Key Exchange section of the TLS specification 中阅读所有这些内容(撇开匿名 key 交换不谈)。 cipher suites的选择(参见附录 A.5 和 C),这取决于客户端和服务器的配置方式,将决定使用的 key 交换机制。

据我所知,固定 DH 交换相当少见。临时 DH(DHE 密码套件)更为常见。它可以提供“Perfect Forward Secrecy”:即使攻击者掌握了私钥,他们也无法破译现有流量,因为他们还需要 DH 参数,这些参数对于所有连接都不相同。然而,这在性能方面是有代价的。您可以在 this article 中找到有关此主题的更多信息.

关于ssl - 用于 secret key 分发的公钥密码学与 Diffie–Hellman,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com