首页 文章

CA颁发了SSL证书有用性

提问于
浏览
0

我一直在尝试在客户端和服务器之间设置SSL . 在我调查这个问题时,除了拥有服务器的公钥之外,我无法理解CA颁发的SSL证书的有用性 .

由于与CLient的证书交换是未加密的,如果有人可以进入客户端和服务器之间,他们可以伪装成服务器,然后使用服务器证书响应ClientHello消息(无论证书是否由CA签名) . )

由于Cert具有服务器的公钥,在交换主密钥时,客户端可以使用它来加密秘密,而“中间人”将无法解密,因为他没有服务器的“私钥” . 我认为这是最大的好处..我的理解是正确的吗?

如果我们启用客户端验证,CLient需要再次发送其证书,我在这里看不到多少好处 . 服务器是否在客户端证书验证之外使用客户端的公钥?

1 回答

  • 0

    “中间人”将无法解密,因为他没有服务器的“私钥”

    是的,除非MITM可以访问私钥,否则他将无法继续操作 . 实际上,如果查看TLS握手图, ClientKeyExchange 步骤是客户端使用服务器公钥加密预主密钥的地方,只有有权访问私钥的人才能解密该消息 . 在没有私钥的情况下,TLS握手将失败 .

    如果客户端需要证书验证,则服务器发送 CertificateRequest 消息,要求客户端提供证书 . 请注意,这是可选的 . 在这种情况下,客户端提供自己的证书并执行 CertificateVerify 步骤,该步骤涉及客户端使用其私钥计算所有先前握手消息的数字签名,然后服务器使用客户端证书中存在的公钥来验证客户端可以访问非对称密钥的公共和私有部分 .

相关问题