HTTPS协议加密过程

一、HTTP和HTTPS的区别

  • https协议需要到CA申请证书,一般免费整数较少,因而需要一定费用。

  • http是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL/TLS加密传输协议。

  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  • http的连接很简单,是无状态的;https协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

二、对称加密

  • 浏览器发送给服务端 client_random 和一系列加密方法

  • 服务端发送给浏览器 server_random和加密方法

  • 现有浏览器和服务器有了三个相同的凭证:client_random、server_random和加密方法 用加密方法把 client_random、server_random 两个随机数混合起来,生成秘钥,这个密钥就是浏览器和服务端通信的暗号。

存在的问题:第三方可以在中间获取到client_random、server_random和加密方法,由于这个加密方法同时可以解密,所以中间人可以成功对暗号进行解密,拿到数据,很容易就将这种加密方式破解了。
在这里插入图片描述

三、非对称加密

  • 浏览器发送给服务端 一系列加密方法

  • 服务端发送给浏览器 加密方法以及公钥

  • 之后浏览器通过公钥将数据加密传输给服务端,服务端收到数据使用私钥进行解密。服务端给浏览器发送数据,则使用私钥进行加密,浏览器收到服务端发送过来的数据,使用公钥进行解密。

在这里插入图片描述

存在的问题

  • 非对称加密效率太低, 这会严重影响加解密的速度,进而影响到用户打开页面的速度。

  • 无法保证服务器发送给浏览器的数据安全, 服务器的数据只能用私钥进行加密(因为如果它用公钥那么浏览器也没法解密啦),中间人一旦拿到公钥,那么就可以对服务端传来的数据进行解密了,就这样又被破解了。

HTTPS使用对称加密和非对称加密结合
传输数据阶段依然使用对称加密,但是对称加密的秘钥我们采用非对称加密传输。

四、HTTPS加密

  • 浏览器向服务器发送client_random和加密方法列表。

  • 服务器接收到,返回server_random、加密方法以及公钥。

  • 浏览器接收,接着生成另一个随机数pre_master, 并且用公钥加密,传给服务器。(重点操作!)

  • 服务器用私钥解密这个被加密后的pre_master。

  • 到此为止,服务器和浏览器就有了相同的 client_random、server_random 和 pre_master, 然后服务器和浏览器会使用这三组随机数生成对称秘钥。有了对称秘钥之后,双方就可以使用对称加密的方式来传输数据了。

在这里插入图片描述

CA 签发证书的过程:

  1. ⾸先 CA 会把持有者的公钥、⽤途、颁发者、有效时间等信息打成⼀个包,然后对这些信息进⾏ Hash 计算, 得到⼀个 Hash 值;
  2. 然后 CA 会使⽤⾃⼰的私钥将该 Hash 值加密,⽣成 Certificate Signature,也就是 CA 对证书做了签名;
  3. 最后将 Certificate Signature 添加在⽂件证书上,形成数字证书;
    客户端校验服务端的数字证书的过程,如上图右边部分:

客户端校验服务端的数字证书的过程

  1. ⾸先客户端会使⽤同样的 Hash 算法获取该证书的 Hash 值 H1;
  2. 通常浏览器和操作系统中集成了 CA 的公钥信息,浏览器收到证书后可以使⽤ CA 的公钥解密 Certificate Signature 内容,得到⼀个 Hash 值 H2 ;
  3. 最后⽐较 H1 和 H2,如果值相同,则为可信赖的证书,否则则认为证书不可信。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

3 ERROR(s)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值