面试官问 HTTPS 是怎么从 HTTP 转过来的,我有点懵( 二 )


第五步:Client Key Exchange
完成 SSL/TSL 第一次握手之后 , 客户端就发送 Client Key Exchange 报文作为回应 , 这里实际上就是为了交换秘钥参数 , 

面试官问 HTTPS 是怎么从 HTTP 转过来的,我有点懵

文章插图
 
这里客户端会再生成一个随机数 , 然后使用服务端传来的公钥进行加密得到密文PreMaster Key 。服务端收到这个值后 , 使用私钥进行解密 , 这样两边的秘钥就协商好了 。后面数据传输就可以用协商好的秘钥进行加密和解密 。
第六步:Change Cipher Spec
客户端发送 Change Cipher Spec 报文 , 提示服务器编码改变 , 就是说以后我们再发消息的时候 , 我是用之前我们定义的密钥进行加密 。
第七步:Client Finished
户端将前面的握手消息生成摘要再用协商好的秘钥加密 , 这是客户端发出的第一条加密消息 , 这一步也是比较关键的一步 , 这次的操作的成功与否 , 就得看服务器是否能够成功解密这次的报文来作为判断依据了 。
第八步:服务器发送 Change Cipher Spec
第九步:服务器发送Server Finished 报文
实际上作用和 Client 差不多 。
第十步:服务端和客户端的 Finished 交换完成了 , 这时候 SSL/TSL 的连接就OK了 , 发送信息也就是完整的称为 HTTPS 了 。
最后就是进行数据传输的内容了 。
既然 HTTPS 都是安全的了 , 为什么不大范围的广泛使用呢?
实际上加密通信虽然在一定程度上保护了数据的隐私 , 但是效率比较低 , 每一次通信都要加密 , 会消耗资源 , 如果包含一些钱的肯定那必须得使用加密的通信 , 而且主要证书要收费呀 。
你要想用 , 那肯定需要证书 , 就像大家在做微信支付的时候 , 不是也需要购买证书么 , 一般一年怎么也得几百块钱 , 所以你知道 HTTP 和 HTTPS 的关系了么?

【面试官问 HTTPS 是怎么从 HTTP 转过来的,我有点懵】


推荐阅读