我一直在寻找有关 SSL 证书和加密协议的信息。我得到了很好的答案,尤其是在这个网站上。
只有一件事我不明白。如果我做对了,身份的验证(我的意思是服务器身份的验证,而不是证书身份的验证)是使用非对称加密进行的。
这意味着步骤将是(如果我错了,请阻止我):
- 客户端使用经过验证的公钥加密随机挑战字符串并将其发送到服务器。
- 服务器使用其私钥对其进行解密并将其发送回客户端。
- 客户端检查来自服务器的响应是否与它刚刚发送的随机挑战字符串匹配。
是什么阻止了假服务器这样做,例如 www.example.com 的真实证书但没有私钥?
- 客户端使用经过验证的公钥加密随机挑战字符串并将其发送到服务器。
- 假服务器将加密的随机挑战字符串发送到 www.example.com,作为想要检查其身份的客户端。
- www.example.com 将解密的随机挑战字符串发送回假服务器。
- 假服务器将其发送回客户端。
- 身份确认?