引言
HTTP协议是一个简单的请求-响应协议,通常是基于TCP进行传输。随着网络的快速发展和互联网的普及,HTTP协议已经成为互联网上最主要的数据传输协议之一,它的简单性和快速性使其在网络中被广泛使用。然而,HTTP协议在传输过程中存在着一些安全隐患和数据泄露的风险,这也成为了目前互联网安全领域的一个较大问题。
理论分析
HTTP协议无法保证数据在传输过程中应有三个特性:保密性、完整性、操作的不可否认性,这样是数据无法安全传输的根本原因。
1.保密性
因为HTTP不具备加密的功能,所以数据通常以明文的方式进行传输,导致内容很可能被监听。
2.完整性
由于HTTP协议无法确定数据的完整性,内容有被篡改的可能。例如:攻击者可以通过在请求\响应途中,对内容进行拦截、篡改,也就是中间人攻击。
3.操作的不可否认性
HTTP协议内容同样可以通过中间人攻击将内容全部进行替换,这一点类似于完整性,但在确保数据安全传输的过程中却有着根本性不同。
模型
一级模型
首先,由传输数据的双方分别生成一对公私钥,将双方的公钥通过http协议进行互换,
在接下来的数据传输过程中,双方的内容都要通过对方公钥的加密(公钥加密技术RSA),
当对方拿到密文,用自己的私钥进行解密,保证数据的保密性。
缺点:一级模型无法保证数据的完整性,攻击者可以通过中间人攻击将数据进行破坏或者篡改,而接受者无法得知,完整性和操作的不可否认性无法保证。
二级模型
对一级模型的改进,我们可以引入hash算法来保证数据的完整性。在传输过程中,发送者对明文进行摘要(将数据通过hash算法生成hash值),将密文和摘要一起进行传输。当接受者拿到数据后,可先将密文解密,再进行摘要并与原摘要进行对比,可确保数据完整性。
还存在这样一种状况:如果攻击者在公钥传输过程中拦截成功,就可以将数据替换为病毒,在接受者进行私钥解密时,对电脑进行攻击。所以通常我们对密文进行摘要,而不是明文,当接受者拿到密文通过摘要后发现与原摘要不同,就可以将伪数据遗弃,不在进行解密,增加了安全性。
缺点:如果攻击者在公钥公开的情况下,将密文和摘要全部替换,我们仍将受到攻击,接受者收到的信息并不是来自发送者,而是来自攻击者。
接受者无法确定操作本人为发送者,也就是无法保证操作的不可否认性(即身份验证),三级模型将着重解决这一问题。
三级模型
身份验证的具体标志是被验证者的私钥,这是其中的关键。发送者在之前的基础上可以用自己的私钥对摘要进行加密,得到签名。
攻击者没有发送者的私钥无法对自己的内容进行相应的加密,接受者可以通过发送者的公钥对签名进行解密来进行身份验证,如若成功,则可确认身份,反之,则遗弃数据并进行下一次传输。这样的一连串的加密将可以同时满足数据传输的三大特性。
相关知识
1.公钥加密技术(RSA)
作用:实现对信息加密、数字签名等安全保障
加密算法:
1.对称加密算法:加解密的密钥一致
2.非对称加密算法:通信双方各生成一对公私钥,公钥公开,公私钥为互相加解密关系,公私钥不可逆推
2.HASH算法
Hash算法,也被称为散列算法或杂凑算法,是一种将任意长度的输入通过散列算法变换成固定长度的输出的过程。散列算法通过将输入的任意长度的消息压缩到某一固定长度的消息摘要中,使得散列值的空间通常远小于输入的空间。
经典hash算法:
MD4
MD5
SHA-1及其他
一致性hash算法
Hash碰撞及避免碰撞策略
3.OSI七层模型
OSI七层模型依次是指物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。但在实际应用中。在某些原因的驱动下,这个协议也被应用为五层或者四层协议(会话层和表示层被合并到应用层,物理层和数据链路层称为网络接口层),而这里的http协议这属于应用层。
总结
HTTP协议在如今对安全重视的情况下已经不在使用,应用上述技术的HTTPS协议也许会在未来的几年里逐步代替HTTP协议的地位。网络安全问题在如今仍层出不穷,只有安全的不断加固,才能应对接踵而来的信息泄露风险,为网络空间的发展铸造坚实的后盾。
相关文章段落(摘取科技宇航员的文章):根据Chromium官方博客的报道,他们计划在未来尝试将所有的网站协议默认导向HTTPS。事实上,从Chrome115版本开始已经开启了这项试验。而据统计数据显示,排名前100的网站中已有绝大部分默认启用了HTTPS协议,并且支持HTTPS协议的网站数量也在不断增加。这意味着,当前大多数的网站流量都经过了加密和身份验证,可以有效地防止一些黑客的网络攻击。
但是,尽管HTTPS协议的普及率已经相当高,仍有5-10%的流量顽固地保留在HTTP上。这就给攻击者提供了可乘之机,他们可以窃听或更改这些HTTP请求的数据,进一步增加了网络安全的风险。