网络编程篇: HTTPS协议

一.前置知识

早期很多公司刚起步的时候,使用的应用层协议都是HTTP,而HTTP无论是用GET方法还是POST方法传参,都是没有经过任何加密的,因此早期很多的信息都是可以通过抓包工具抓到的。 为了解决这个问题,于是出现了HTTPS协议,HTTPS实际就是在应用层和传输层协议之间加了一层ssl加密解密层,这层加密层本身也是属于应用层的,它会对要进行网络通信的数据加密。HTTPS在交付数据时先把数据交给加密层,由加密层对数据加密后再交给传输层。 当然,通信双方使用的应用层协议必须是一样的,因此对端的应用层也必须使用HTTPS,当对端的传输层收到数据后,会先将数据交给加密解密层,由加密解密层对数据进行解密后再将数据交给应用层。

二. 对称加密和非对称加密

明文是什么?密文是什么?密钥又是什么?

明文是为经加密层加密过的数据,密文是经加密解密层用密钥加密过的数据,密钥就是用于加密和解密数据的东西。密钥可以是一串数字、字母或符号的组合,也可以是一个数学函数或算法。 举个例子:主机A想给主机B发送 7 这个数字,双方约定对要发送的数据 ^ 5, 7^5=2,2就是密文,^5就是密钥。

对称加密:加密和解密用的都是同一个密钥。 特点:对称加密因为密钥是公开的,所以不安全但是正因为只有一个密钥(公钥)所以计算速度快。 非对称加密:加密和解密是用的不同的密钥。特点:相较于对称加密更加的安全,加密用公钥,解密用私钥。只有私钥才能解密经对应的公钥加密过的数据。

三. HTTPS的工作流程及其周边概念

什么是数据指针(数据摘要)?

将正文数据经hash函数进行运算,生成一串固定长度的数字就是数据摘要,常见的加密算法MD5,生成的固定长度数字具有唯一性,如果修改了正文数据,则这串数字会重新生成。HTTP的Session生成的ID就是使用这种方法。

数据指纹(数据摘要)的应用场景?

秒传,在上传数据在百度网盘时,有几率会发生秒传的例子,数据直接上传好了,这是因为在数据要上传到百度网盘时,百度网盘服务端会对上传到数据进行生成数据摘要,然后去自己的库中看看有没有数据摘要是一致的数据,如果有就不用上传了,创建一个软链接就可以了。

CA证书

CA 证书,也叫数字证书,是由权威的证书颁发机构签发的电子文档,用于在网络通信中验证身份并建立加密连接。

  1. 公钥:用于加密数据或验证数字签名,CA 的公钥。
  2. 持有者信息:包括证书所有者的名称、组织单位等信息。
  3. 证书颁发机构的信息:包括 CA 的名称、数字签名等。
  4. 有效期:证书的有效期,包括开始日期和结束日期。
  5. 证书序列号:证书的唯一标识符。
  6. 数字签名:由 CA 对证书内容进行的数字签名,用于确保证书的完整性和真实性。

数据签名

将用户提交的数据经hash算法形成数据指纹,再用CA机构的私钥加密就生成了数据签名。

经多年发展,HTTPS最终选用了非对称加密+对称加密+CA证书认证的工作方式。

上图很清晰的说明了HTTPS的验证过程: 1.服务端要先向CA机构申请CA证书,要填写申请人,域名,公钥等信息后,会生成一个.csr文件,这个文件内的内容最终会加到CA证书上。将scr文将提交给CA机构。 2. CA机构根据发来的csr文件生成对应的CA证书,会生成两个东西,一个是CA证书,一个私钥。生成的私钥是属于证书颁发机构(CA)自身的私钥。这个私钥用于对由该 CA 签发的数字证书进行生成数字签名。 3.CA机构颁发CA证书给服务端。 4.服务端在握手的开始阶段,会向客户端发送自己的数字证书,其中包含了服务端的公钥。 5.客户端收到服务端的证书后,会验证证书的有效性。这包括检查证书链是否有效,是否由受信任的 CA 签发等。如果证书验证通过,客户端生成一个随机的对称密钥,用于加密和解密后续通信的数据。客户端使用服务端证书中的公钥,对生成的对称密钥进行加密,并将加密后的密钥发送给服务端。 6.服务端收到客户端发送的加密的对称密钥后,使用自己的私钥进行解密,从而获取客户端生成的对称密钥。至此,客户端和服务端都具有相同的对称密钥。这个对称密钥将用于加密和解密后续的通信数据。

客户端怎么验证CA证书是否有效?

CA证书上由数据签名,用服务端的公钥对数据签名进行解密就能得到一个数据指纹(数据摘要),用hash算法对CA证书正文内容作计算,得到一个数据指纹(数据摘要),两个数据摘要做对比,如果一致就说明CA证书有效。

相关推荐
Kevin Wang72721 小时前
欧拉系统服务部署注意事项
网络·windows
min18112345621 小时前
深度伪造内容的检测与溯源技术
大数据·网络·人工智能
汤愈韬21 小时前
NAT策略
网络协议·网络安全·security·huawei
汤愈韬21 小时前
Full Cone Nat
网络·网络协议·网络安全·security·huawei
zbtlink1 天前
现在还需要带电池的路由器吗?是用来干嘛的?
网络·智能路由器
桌面运维家1 天前
vDisk配置漂移怎么办?VOI/IDV架构故障快速修复
网络·架构
dalerkd1 天前
忙里偷闲叙-谈谈最近两年
网络·安全·web安全
汤愈韬1 天前
NAT ALG (应用层网关)
网络·网络协议·网络安全·security·huawei
运维栈记1 天前
虚拟化网络的根基-网络命名空间
网络·docker·容器
五仁火烧1 天前
生产环境中配置了接口3000后,不能启动,改成8080后就可以
linux·网络·安全·vue