介绍一下https的内容-基本上看完就差不多了

介绍一下https的内容-基本上看完就差不多了

前言

这次总算是可以开始介绍https协议了。刚刚写好了需要了解的对称加密和非对称加密算法,再读这篇文章的时候你应该就不会觉得难以理解。冲冲冲。

https

其实https相较于http,就多个安全传输security。我放个图给各位看看在层次模型上两者的差别。
在这里插入图片描述
直观的看,https = http+(SSL或者TLS)。

https请求回应流程

1.首先,这个https服务器必须得是有数字CA认证,证书是需要申请的,并由专门的数字证书认证机构(CA)通过非常严格的审核之后颁发的电子证书 ( (当然了是要钱的,安全级别越高价格越贵))。颁发证书的同时会产生一个私钥和公钥。私钥由服务端自己保存,不可泄漏。公钥则是附带在证书的信息中,可以公开的。证书本身也附带一个证书电子签名,这个签名用来验证证书的完整性和真实性,可以防止证书被篡改。
2.客户端开始搞点https请求,比如客户端发送一个请求给某个服务器。
3.服务器接到https请求后,会将自己的CA数字证书发给客户端(这个证书是可以公开的,不过私钥是不会公开的,证书包含公钥和大量其他信息,比如证书颁发机构信息,公司信息和证书有效期等),其实呢,就是在告诉客户端,请按照这个公钥进行信息加密。那之所以用传递CA证书这种方式,就是怕服务器被冒名顶替。
4.客户端解析证书并对其进行验证。如果证书不是可信机构颁布,或者证书中的域名与实际域名不一致,或者证书已经过期,就会向访问者显示一个警告,由其选择是否还要继续通信。
在这里插入图片描述
当然你可以选择高级----继续访问。
5.确认证书以后呢,客户端就把一个对称加密的密文,用CA证书带有的公钥进行加密,然后发给服务器。
6.之后他俩就开始没羞没臊的进行对称加密的通话了。
下面是一个稍微完整点的流程图:
在这里插入图片描述

为什么是对称+非对称

其实很好理解,非对称确实很棒,但是解密过程说真的,真的有点慢。所以咱们就利用非对称的安全的特点,把对称加密需要的密文传输一下,然后俩人就能切换到对称加密上了。

讲讲TLS

为啥不说SSL呢?
TLS 协议是从Netscape SSL 3.0协议演变而来的,不过这两种协议并不兼容,SSL 已经逐渐被 TLS 取代,所以下文就以 TLS 指代安全层。
其实咱们上面讲到的那些传递证书,传递对称加密的秘钥,这整个流程,称为TLS握手。所以咱们就来一起讲讲TLS握手的全部流程。
1.客户端向服务器发起https请求,该消息包含了客户端所支持的 TLS 版本和密码组合以供服务器进行选择,还有一个"client random"随机字符串(别小看这个随机字符串,等会儿有用)
2.服务器回应客户端,该消息包含了数字证书,服务器选择的密码组合和"server random"随机字符串(也别小看了这个字符串,后面也有用)。
3.客户端对服务器发来的证书进行验证,确保对方的合法身份(主要是验证CA数字证书)
4.这个时候客户端已经清楚,需要通过CA数字证书中带有的公钥对消息进行加密发送。客户端这时会再次生成一个随机字符串premaster secret,然后将其进行服务器的公钥加密,发给服务器
5.服务器解密这个premaster secret字符串。
好了,现在三个随机的字符串都被服务端和客户端知晓,且刚刚服务器也选择了密码组合方式了,现在他俩就开始根据这三个字符串,用俩人确认好的生成算法,生成对称加密的秘钥KEY。
6.客户端准备一个“finished”字符串,然后用KEY进行对称加密,发给服务端,表示“我准备好了”;
7.服务端准备一个“finished”字符串,然后用KEY进行对称加密,发给客户端,表示“我准备好了”;
8.俩人开始基于对称加密的愉快玩耍。

猜你喜欢

转载自blog.csdn.net/weixin_44039270/article/details/106989130