为什么证书在 SSL 身份验证中不是秘密

qwe*_*iop 3 authentication ssl digital-certificate

我正在阅读有关SSL 中基于证书的身份验证的信息,并对此过程有疑问。(图片取自上面的链接)

在此输入图像描述

问题是:为什么server.cerclient.cer不是秘密。在此图中,交换证书时通信似乎尚未加密,这是否意味着两个证书都以明文形式公开?如果是这样,为什么它是安全的?因为通过这种方式,攻击者可以轻松获取服务器的公钥及其证书,并冒充服务器。我想我误解了一些东西。请纠正我。

use*_*421 6

因为通过这种方式,对手可以轻松获取服务器的公钥及其证书

正确的。

并冒充服务器。

不正确。您需要私钥和证书来模拟服务器。

您引用的图表不正确。双方不仅有密钥库,还有信任库。根据本地信任库检查传入的证书;传出证书来自密钥库。

假设证书用于验证公钥属于服务器

不需要。证书及其数字签名用于验证证书是否属于服务器。数字签名是使用私钥创建的。请参阅您引用的文章。

然而它并不完全正确。在图中,传入的证书根据本地信任库进行检查,该信任库与密钥库分开。会话密钥永远不会交换(2.1 步骤 5)。