您现在的位置是:首页 >技术杂谈 >HTTPS的加密技术——中间人攻击网站首页技术杂谈

HTTPS的加密技术——中间人攻击

将船买酒白云边 2024-06-29 06:01:02
简介HTTPS的加密技术——中间人攻击

HTTPS的加密技术


httphttps之间相差一个字母,两者之间有什么区别呢? http的出现要早于 https,使用 http在网络中传输数据时,数据在网络上相当于是明文传输的,就意味着数据可以被随意篡改,比如说一些常见的,病毒携带,信息劫持,运营商劫持,存在一定的风险,为了改善这些问题,需要引入一些加密操作,保护数据的安全性。 https便应运而生!

认识HTTPS

https是基于http协议和TCP之间添加一个TLS/SSL层来加密传输的数据,以确保传输过程中的隐私和安全。加密和解密数据是一种什么操作呢?

加密:明文-》密文

解密:密文-》明文

加密的由来——认识图灵鼻祖

计算机之父除了冯诺依曼,还有英国的图灵也是计算机之父,不过图灵鼻祖是构思计算机的鼻祖,而冯诺依曼是制造计算机的鼻祖,两个人在计算机发展的路程上有着不可抹灭的影响。在二战时期,赢得二战的胜利离不开图灵对密码的研究成果,也因此有了密码学的基础,所以说图灵是密码开山鼻祖与冯诺依曼,开启了一个新的时代,这里就不在赘述,有兴趣的小伙伴可以自行查询相关文献。

对称加密和非对称加密

对称加密:只有一个密钥key,也就是说数据可以靠这个密钥对明文进行加密和解密。对资源消耗也相对比较少,是最普遍使用的一种加密方式。

优点:

  1. 使用同一个密钥,加密解密速度快,效率高

  2. 计算速度快,不需要额外复杂的计算

  3. 适合大量数据的传输,加密效率高,传输速度快

缺点:

  1. 密钥的管理相对难一些,需要保证密钥的安全性

  2. 无法进行密钥的安全共享,因为密钥是相同的,无法传输到对方使用并解密

  3. 密钥的泄漏会造成非常大的风险,安全性难以保障

非对称加密:有两个密钥pubpri两个密钥相互制约,使用pul加密的数据,只能使用pri进行解密操作,反之,使用pri加密的数据,只能使用pul进行解密操作。

优点:

  1. 安全性能高,密钥私钥(pri)公钥(pul)的结合体,可以保证数据的安全性和完整性。
  2. 可以大规模对公钥进行传播和共享,并且不容易被恶意攻击者盗取
  3. 在数字签名和验证方面具有优势,数字签名验证发送方的身份,可以确保信息的真实性和完整性

缺点:

  1. 使用两个密钥值,操作较为复杂,加密和解密效率慢
  2. 算法复杂,需要自行生成公钥私钥,也需要大量的计算资源和时间
  3. 适用于少量数据传输,传输效率较低

对称加密和非对称加密有各自的优点和缺点,可以根据具体场景来使用不同的加密算法。

针对https的加密部分主要是headerbody部分的数据内容。

一个https报文:

橙色框是:header部分

红色框为:空白行,是body是开始

绿色框:body部分

在这里插入图片描述

接下来我们针对使用不同的加密算法进行分析:

①只使用对称加密方式

客户端和服务器各自生成一个key

在这里插入图片描述

客户机发送的数据都是由key2加密的,服务器无法解析,而服务器发送数据都是由key1加密的,客户机无法解析,如果单纯使用明文传播,那么加密就没有意义,相当于在大街上裸奔?!!!

②只使用非对称加密

客户机服务器各自生成非对称密钥,分别使用对方的公钥进行加密操作:

在这里插入图片描述

可以发现双方数据传输成功!不过需要注意的是,非对称密钥不适合大量数据传输。而且计算相当复杂,传输效率低。虽然数据安全可以得到有效保障,不过对于效率来说,的确没有优势可言。既然你需要效率,而对称密钥算法效率高,将两者结合又会出现什么情况呢?

③两种加密算法联合使用

服务器负责生成非对称密钥,客户端生成对称密钥,只需要使用一次非对称密钥传输客户端的对称密钥即可,具体步骤:

在这里插入图片描述

两个端口使用两种加密方式传输数据的确大大提升数据传输的效率。而黑客也无法将数据进行解密操作,对于安全性也大大提升了,服务器和客户端之间的数据也可以得到保障,这就是双重密钥加密过程。

?‍♂️中间人攻击

在基于双重加密的数据传输过程中,也存在不安全的因素!中间人攻击是对这种方式的一大打击对象,使用中间人攻击可以有效获取对方生成的key从而达到劫持数据的目的。

基于双重加密的基础上

在这里插入图片描述

好一招“偷梁换柱”,基于黑客这样处理数据的情况下,服务器和客户机的数据被一览无遗,这就是中间人攻击,利用自身生成的pul2换掉服务器的pul,此时此刻的客户机并不知情,使用黑客的pul2对自己的key值加密,此刻的黑客只需要使用pri2来解密就可以得到客户机的key。以后来往两者之间的数据即可被黑客获取。

?引入证书

中间人攻击对通信又是一大打击,不过对于数据传输的安全性,还是有办法可以得到解决——引入证书。证书可以保障服务器与客户机通信不受任何外界因素影响,极大的保障网络通信的安全性和双方的身份和信息安全。

证书的特点有一下几点:

身份验证:证书可以证明通信的服务器身份。

保密性:证书使用公钥和私钥对通信内容进行加密和解密,保障了通信过程中的数据保密性,避免敏感信息被中间人获取或篡改。

完整性:证书可以保证数据的完整性,在证书有一个校验证明,使用这个数值与收到的数字签名进行匹配,避免通信工程中数据被篡改。

接下来画图来分析这个证书如何保障数据安全和完整性:

在这里插入图片描述

证书中的关键信息:

服务器域名 :为了验证服务器信息

公钥 :让客户机得到公钥,对数据使用公钥加密

证书机构

签名:验证服务器身份的关键。

客户端使用证书签名的过程。

首先,是客户端向服务端发起一个请求连接,服务器收到请求,返回一个数字证书。

第二步,客户端收到证书,使用预先内置在浏览器或操作系统中的CA根证书列表进行证书认证。CA根证书列表中存放的是可信的证书颁发机构,用于验证服务器发送的证书可信度。

第三步,客户端检查证书的可行度,如果证书是由可信的证书颁发机构颁发,证书中的数字签名将被验证。如果验证成功,客户端就可以确认服务器的身份,公钥和其他证书信息,并且将其公钥作为后续通信加密数据。

第三步如果失败,跳到第四步,验证失败或者证书不安全,客户端就会出现安全警告或者拒绝连接,这就是为什么有时候在浏览器中可以看到“连接不安全”等字样的原因。

总结https加密技术?‍?

https是基于http的一层加密技术,有两种加密方式,针对不同的数据传输可以使用不同加密算法结合使用,最常用也最安全的是双重加密技术,不过单独使用还是会有风险,对于中间人攻击这个算法也会被偷梁换柱,于是需要引入证书对症下药,以此来保障数据的安全性和完整性

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。