HTTPS 实现流程

HTTPS协议其实就是HTTP over TSL,
基础的HTTP通信是明文的,有三大风险:信息被窃听,信息被篡改,身份的冒充。
TSL协议就是为防范这些风险存在的。TSL使用非对称加密保护下的对称加密在保证了通信效率的同时防止窃听,使用证书体系防止信息篡改和身份冒认。

注意:TSL协议握手阶段的通信是明文进行的
在这里插入图片描述
1.浏览器发送ClientHello
其中包含了浏览器支持的TSL协议的版本,支持的加密算法,压缩算法等。同时浏览器端生成一个随机数,一起发送给服务器。

2.服务器返回ServerHello
(1)确认TSL协议版本,确定一个双方都支持的加密算法
(2)发送服务器的证书,发送一个服务器端生成的随机数。(如果访问的网站出于安全性的考虑,要求访问者也提供证书的话会在这一步发出请求。)

3.浏览器拿到证书后验证该证书是否是可信任的,如果证书可信任,那么其中的公钥也是可信的。
(1)浏览器生成第三个随机数 pre key,将pre key使用服务器的公钥加密,发送回服务器
(2)编码改变通知,告知服务器接下来将使用选择的加密算法进行加密通信
(3)将此前发送过的所有信息的摘要加密后发送给服务器,供服务器进行加密通道验证。最后发出客户端握手阶段结束信号。

4.服务器接收到对方发来的pre key后,此时通信双方都拥有了三个随机数(前两个是明文发送的,第三个pre key 是非对称加密发送的),由这三个随机数双方可以计算得到两个相同的对称密钥,服务器使用这一密钥验证加密通道后,向客户端发送服务器发出:
(1)编码改变通知:告知接下来的通信将使用加密通信
(2)服务器握手阶段结束信号。

至此握手阶段结束,双方接下来使用普通的http协议进行通信,由三个随机数生成的对称密钥加密内容。

1.整个过程中靠证书体系为通信双方提供身份信任。
2.通信双方共生成了三个随机数能最大限度地避免伪随机,保证了生成的对称密钥难以被暴力破解。
3.第三个随机数的传输使用非对称加密,保证了双方对称密钥的私密性。
4.整个通信中,只有pre key的发送使用了非对称加密,之后的加密通信都采用对称加密,最大限度地保证了通信效率。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值