HTTPS应该搞懂了吧!

1.对称加密:所有客户端和服务端用同一个密钥,如果秘钥被获取,所有消息如同明文;如果单对客户端和服务端用一个密钥,服务端要维护大量的密钥,内存压力大。

2.非对称加密:服务端提供私钥和公钥的秘钥对,私钥自己保留,公钥发送给客户端;客户端就算私钥被别人偷走,也无法破译信息;但是非对称加密比较慢。

3.非对称加密和对称加密:服务度提供私钥和公钥,公钥发给客户端;客户端收到公钥后,随机生成对称加密秘钥,并发给服务端保留。

4.第三方劫持问题:服务端发给客户端的公钥被第三方劫持,第三方产生新的秘钥对,将公钥发送给客户端;客户端收到公钥后,生成对称秘钥发给服务端,被第三方劫持;第三方用私钥解密,发给服务端。这个时候第三方虽然没有服务端的私钥,但能解析出来服务端的数据,双方的通信数据都要被第三方发现。这里需要客户端知道自己通信的对象时服务端,而不是第三方,这就引出了CA机构。

5.数字证书:服务端向CA机构,提供公钥、网址、过期时间等信息,CA机构制作证书给服务端。服务端在收到客户端的请求时,携带证书一起发过去。

6.制作数字证书:先把数据hash,得到散列值;通过CA机构的私钥进行加密得到数字签名;把数据和签名一起作为数字证书。

7.验证数字证书:客户端收到服务端发来的数字证书,先用浏览器存的CA公钥解析数据,得到数据和签名;把数据hash得到散列值;把数字签名用CA公钥解密得到散列值;两者比较看看是否一致。

8.CA机构解决了两个问题,一个是通过签名保证数据没有修改。一个是数据没有掉包,证书里面有网站的信息。

9.最终的过程:

1.客户端ClientHello,选择SSL版本、加密算法、随机数A

2.服务端ServerHello,选择SSL版本、加密算法、证书、随机数B

3.客户端检查证书,使用特定的方法生成pre_master key,通过公钥加密发到服务端

4.服务端通过私钥解密拿到pre_master key,最终有三个随机数组合成最终的对称秘钥。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon|

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值