我在读本文,特别是“SSL 实际应用”部分。它说:
当客户端通过 SSL 安全端口连接到 company.com 时,公司会发回其公钥(以及一些其他信息,如它支持的密码)。...
一旦
客户端对服务器感到满意(如果需要,服务器对客户端也感到满意),客户端就会从服务器提供的加密方法列表中选择要使用的 SSL 密码,并生成与该密码一起使用的“对称密钥”(密码)。客户端使用服务器的公钥加密此密码并将其发送回服务器。服务器(且只有服务器)可以解密此消息并获取此密码,该密码现在由客户端和服务器共享。
所以,我的理解是,只有一公钥;由受信任的第三方(thawte/godaddy/verisign 等)提供给 company.com 的密钥。然后,客户端选择接受此密钥/证书,并发送用于加密未来通信的密码。
如果只有一个公钥,那么黑客难道不能只访问该网站一次,获得公钥的副本,然后在客户端发送密码时拦截,使用他已有的公钥解密,然后监视所有未来的通信吗?什么可以防止这种情况发生?
我不明白的是
服务器(且只有服务器)可以解密此消息并获取此密码
为什么只有服务器才能解密该消息?什么阻止其他人解密该消息?
答案1
公钥是单向的。您无法用它解密通信。您需要密钥对的私钥部分才能解密。