gpt4 book ai didi

python - 与客户端证书的 SSL 连接

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

客户端是否可以使用已通过其他方式交换的服务器证书与服务器建立 SSL 连接?

重点是使用客户端已有的证书加密连接,而不必依赖服务器提供它。服务器仍将拥有客户端使用的证书的私钥。

这个问题不是特定于语言的,但感谢特定于 python 和 twisted 的答案。

最佳答案

SSL/TLS 中的证书仅用于身份验证,加密本身由握手期间协商的共享 key 完成。

如果你想使用证书,你总是至少需要 SSL/TLS 服务器有证书(可能是 TCP 客户端)。在建立连接时,您确实可以交换客户端和服务器的角色。也就是说,SSL/TLS 服务器不一定是 TCP 服务器,也可以是 TCP 客户端。请参阅 specification glossary 中的定义:

  client
The application entity that initiates a TLS connection to a
server. This may or may not imply that the client initiated the
underlying transport connection. The primary operational
difference between the server and client is that the server is
generally authenticated, while the client is only optionally
authenticated.

但是,这样做可能会导致困难。就像传统 SSL/TLS 连接中的服务器无法检测请求是否通过 MITM(检查服务器证书完全是客户端的责任,没有客户端证书身份验证),使 TCP 客户端成为 SSL/TLS 服务器使 TCP 客户端很难知道它正在与它想要的 TCP 服务器对话:服务器实际上可能是 MITM。您需要考虑这是否符合您的需求。

在 Python 中,您应该能够使用 ssl.wrap_socketserver_side 参数选择 SSL/TLS 套接字的方向。 .

The server would still have the private key for the certificate theclient uses.

这根本没有意义。私钥应由颁发证书的一方保密。

也许您正在寻找预共享 key 机制。

关于python - 与客户端证书的 SSL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12195063/

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