我正在尽最大努力了解相互SSL。我找不到好的答案的一个问题是,为什么您需要在客户端上创建密钥对,而不仅仅是提供公共客户端证书。
到目前为止,我了解以下内容(非常简单化):
常规 SSL:
相互 SSL:
我不明白为什么我必须在客户端使用的密钥库中包含整个密钥对(以及私有部分)。过程中使用的客户端私钥在哪里?
服务器有一个密钥对并发送公共部分(证书),以便客户端可以使用该公共密钥来加密消息,以便他们可以共享对称密钥并最终保护所有通信。
这不是服务器证书的重点,使用现代密钥交换方法(即 Diffie Helmann),密钥交换中根本不涉及证书。您所描述的仅适用于过时的 RSA 密钥交换。
证书的要点是用于身份验证。身份验证意味着服务器证明它拥有所提供的证书,然后客户端验证证书是否符合其预期,即由受信任的 CA、预期的主题/SAN 颁发、未过期等。
的所有权证明是通过签署一些数据做了(至少是在对端,即客户端提供的部分)与私有密钥相匹配的证书中的公钥。然后,对等方(客户端)可以使用证书的公钥验证此签名,如果验证通过,另一方(服务器)显然拥有秘密私钥,这意味着它拥有证书。
对于用于相互身份验证的客户端证书,过程完全相同,只是角色互换。这就是为什么客户端需要私钥的原因。
| 归档时间: | 
 | 
| 查看次数: | 133 次 | 
| 最近记录: |