HTTPS比HTTP到底安全到哪儿了?

HTTPS比HTTP厉害到哪儿了?

HTTPS 是身披 SSL 外壳的 HTTP

通常HTTP直接和TCP通信。当使用SSL时,演变成先和SSL通信,再由SSL和TCP通信。简言之,所谓的HTTPS,其实就是身披SSL协议这层外壳的HTTP。
左HTTP、右HTTPS

在采用SSL后,HTTP就拥有了HTTPS的加密、整数和完整性保护这些功能。

HTTPS如何实现安全机制的

须知:

  1. 对称加密
  2. 非对称加密
  3. CA证书机构

对称加密

即A、B双方拥有同一把类型的密钥,一方用这个钥匙加密,另一方可以用这个解密。

非对称加密

有公钥、私钥两把密钥。假设A持有公钥,B持有私钥,A用公钥加密,B用私钥解密

CA证书机构

安全实现

事先声明,CA机构拥有两把密钥ca(公钥)、cb(私钥),同时服务器也有两把密钥sa(公钥)、sb(私钥),而客户端本地/浏览器存储着各大正规证书机构的公钥ca。

首先,服务器把自己的公钥交给数字证书认证机构,CA机构把这个sa和这个网站的一些信息用cb加密生成公钥证书,然后给到服务器。在这里插入图片描述
公钥证书就是介玩意儿。

SSL握手建立过程如下
在这里插入图片描述

  1. 客户端首次发送Client Hello报文开始SSL通信,报文包括支持的SSL的指定版本、加密组件列表(所使用的加密算法及密钥长度等)。就是跟服务器透个底,我就能看懂这些东西,别瞎跟我讲别的

  2. 服务器可进行SSL通信时,以Server Hello报文作为应答。报文也包含SSL版本及加密组件。你只支持这些,那我就从里面筛选一点吧

  3. 紧接着服务器继续发送Certificate报文,其中包含着公开密钥证书!

  4. 最后服务器发送Server Hello Done报文告诉客户端,SSL握手协商部分结束。

  5. 客户端收到以后,用本地的ca解密证书,如果能得到有用的身份信息(访问的网站对应的一系列信息),就说明证书是可以信任的。再发一个Client Key Exchange报文给服务器,报文中有一个随机生成密码串(Pre-master secret)。这个报文用上一步解出来的sa加密。

  6. 客户端接着发送一个报文告诉服务器,以后我们就用这个Pre-master secret密钥加密。

  7. 客户端继续发送Finished报文。这个报文里面包含连接至今全部报文的整体校验值。这次握手协商能否成功取悦于服务器是否能够正确解密该报文

  8. 服务器同样返回一个客户端步骤6发送的报文。行听你的,我们就用这个加密解密

  9. 服务器接着发一个Finished报文。

  10. 服务器客户端的Finished报文交换完毕后,SSL连接建立完成。从此处开始进行应用层协议的通信,即发送HTTP请求。

  11. 服务器回复HTTP相应。

上面文字对照图片阅读完后,接下来是整个流程的图解。
在这里插入图片描述
收工!!!

参考文献

图解HTTP . 上野宣

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值