看完这篇文章,我奶奶都懂了https的原理……( 七 )

对称加密和非对称加密都存在密钥传输的问题 , 但是至少非对称加密可以保证客户端传输给服务端的内容无法被“破解” , 而对称加密算法性能又比较好 , 那我们是不是可以这样子呢 。 第一次通信的时候服务端发送公钥给客户端 , 由客户端产生一个对称密钥 , 通过服务端的公钥加密后发送给服务端 , 后续的交互中都通过对称密钥进行加密传输 。 也就是说先通过非对称密钥加密对称密钥 , 通过对称密钥加密实际请求的内容 。

上面的方案看起来天衣无缝 , 小王拿到数据后貌似就无偿下手了 , 但是真的就天意无缝了吗?我们看看下图

也就是说小王可以伪装成服务器 , 与客户端进行通信 。 类似于你与服务端之间多了一个中间商!也就是说协商密钥的过程依然存在漏洞!

推荐阅读