大多数 wiki 文章都描述了客户端浏览器如何使用公钥(证书)加密敏感数据(例如用户名/密码)并将这些加密数据发送到服务器。服务器将使用私钥对其进行解密。我明白这部分。但没有明确的信息说明服务器如何加密数据并发送回浏览器。
以我的网上银行为例:
(0) 我已经接受了来自我的网上银行的可信证书(公钥)。
(1) 通过 SSL URL,我的浏览器访问https://myonlinebanking.com
(2) 我输入用户名/密码登录。这些数据是加密的,所以中间人只能看到无意义的数据。
(3) 银行网络服务器收到我的加密数据,并使用其私钥解密并成功验证我的帐户。
现在这是我的问题:
银行如何发回我的数据?银行用什么密钥加密响应数据?如果银行使用“公钥”加密,中间人可以看到它,就像我看到它一样。所以中间人不知道我的用户名/密码,但他仍然可以看到我的帐户余额?
谢谢您的帮助。