HTTP2还没用上,HTTP3就出来了
Posted xhmj12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP2还没用上,HTTP3就出来了相关的知识,希望对你有一定的参考价值。
作者:IT影子
链接:https://www.jianshu.com/p/b0b3c6df1a16
HTTP/3不再使用传输控制协议(TCP),相反,将使用2012年谷歌提出的QUIC传输协议。实际上,HTTP/3前身是HTTP-over-QUIC。
2018年10月,互联网工程任务组(IETF) HTTP和QUIC工作组主席Mark Nottingham提出了将HTTP-over-QUIC更名为HTTP/3
安全优势
1.端到端加密
2.TLS安全连接
如果我们从整体上考虑该协议,则TLS和QUIC之间存在两个主要通信:
QUIC为TLS提供了稳定的流抽象,通过QUIC发送和接收消息。
3.完全正向保密性
4.重放攻击防护
除了随机数,QUIC实现还用于存储密钥派生的客户端值。服务器会识别并拒绝具有相同密钥派生值和随机数的任何重复请求。考虑到用户代理和服务器之间的协议通信开销,这种设计被称为性能噩梦。从理论上讲,该解决方案看似适用,但是在实践中,该协议可能会变得很占内存并导致性能问题。当前的设计不是最好的,但是从协议层面来说,这会防止任何服务器多次接受同一密钥。同样,QUIC在初始步骤中不提供重放保护,而是在服务器初始回复后立即开始保护。QUIC是让初始交易能得到应用程序保护并减少协议所占内存。关注公众号:互联网架构师,回复“2T”,送你一份架构师宝典。考虑到Web组件可能会使用从会话密钥派生的密钥,因此在此阶段可能会发生重放攻击。但是,可以在应用程序层面使用预防措施来减轻这种情况。
5.IP欺骗保护
6.防止SSL降级
TLS 1.3可以防止TLS降级攻击,因为该协议规定了所有握手通信的密钥哈希,并且要求握手接收方验证发送的密钥哈希。在握手过程中,任何检测到的对客户端功能的篡改尝试都将导致握手终止并出现错误。此外,检测还涉及用户代理与服务器之间的证书验证消息,包括有关特定连接的所有先前消息的PKCS RSA哈希签名。QUIC中的校验和实现将成功防止TLS降级攻击。
安全挑战
1.0-RTT恢复漏洞
HTTP / 3的最大优势之一是0-RTT恢复,它可以极大地提高连接速度并减少延迟。但是,仅当成功建立了先前的连接,并且当前交易使用在上一次连接期间建立了预共享机密时,这一优势才发挥作用。
2.连接ID操纵攻击
当大规模执行时,相同的攻击可能会对服务器造成拒绝服务攻击,并保留多个连接,直到连接状态过期。保持连接有效的另一种攻击方法是更改其他参数,例如源地址令牌,从而防止客户端建立任何连接。
3.UDP放大攻击
为了成功进行放大攻击,攻击者必须欺骗受害者的IP地址,并将UDP请求发送到服务器。如果服务器发回更重要的UDP响应,则攻击者可以大规模利用此服务器行为并创建DDOS攻击情形。
4.流量耗尽型攻击
5.连接重置攻击
连接重置攻击主要是向受害者发送无状态重置,从而可能产生类似于TCP重置注入攻击的拒绝服务攻击。如果攻击者可以获得具有特定连接ID的连接生成的重置令牌,则可能存在潜在的攻击媒介。最后,攻击者可以使用生成的令牌重置具有相同连接ID的活动连接,从而使服务器等待连接,直到发生超时为止。如果大规模进行此攻击,则服务器必须大量消耗其资源,以等待连接完成。
6.QUIC版本降级攻击
QUIC数据包保护为通信中的所有数据包(版本协商数据包除外)提供身份验证和加密。版本协商数据包旨在协商用户代理和服务器之间QUIC的版本。该功能可能允许攻击者将版本降级到QUIC的不安全版本。该攻击目前暂时不会发生,因为只有QUIC的一个版本,但是将来需要注意。
7.缺少监视支持
尽管一些用户代理,服务器和信誉良好的网站支持HTTP3 / QUIC,但是许多网络设备(例如反向/正向代理,负载均衡器,Web应用程序防火墙和安全事件监视工具)并不完全支持HTTP / 3。与TCP不同,QUIC连接中不需要套接字,这使得检测主机和恶意连接变得更加困难。恶意攻击者可能能够通过QUIC中继恶意有效载荷并执行数据泄露攻击,并且保持隐身状态,因为大多数检测工具无法检测到QUIC流量。关注公众号:互联网架构师,回复“2T”,送你一份架构师宝典。
QUIC的历史
2016年,互联网工程任务组(IETF)开始标准化Google的QUIC,并宣布IETF QUIC成为新HTTP / 3版本的基础。但是,出于性能和安全方面的考虑,IETF QUIC与原始QUIC设计大相径庭。
TCP上的传统Web流量需要三向握手。QUIC使用UDP,由于往返次数减少和发送的数据包减少,因此延迟减少,从而加快了网络流量传输。UDP除了速度更快之外,还具有其他优点,包括连接迁移、改进延迟、拥塞控制和内置加密。根据Google的说法, “与TCP + TLS的1-3次往返相比, QUIC握手通常需要零往返来发送有效负载。” 第一个连接需要一个往返,而随后的连接则不需要任何往返。同样,由于QUIC用于多路复用操作,因此与TCP相比,它在数据包丢失方面做得更好,并且握手速度更快。关注公众号:互联网架构师,回复“2T”,送你一份架构师宝典。
Google的QUIC版本现在是gQUIC。从gQUIC进化的HTTP / 3,具备了重大的改进,并得到IETF工作组的贡献和增强。尽管从技术上讲HTTP / 3是完整的应用程序协议,但QUIC指的是基础传输协议,它不限于服务Web流量。UDP是无连接的,不是很可靠。QUIC通过在UDP上添加类似于TCP的堆栈,来添加可靠的连接,并在其之上重新发送具有流控制功能的方式来克服这些限制,同时解决了TCP的行头阻塞问题。
和HTTP/2的比较分析
QUIC旨在通过减轻HTTP/2的数据包丢失和延迟问题来提高性能。虽然HTTP/2对每个数据来源使用单个TCP连接,但这会导致行头阻塞问题。例如,一个请求的对象可能会停滞在另一个遭受丢失的对象之后,直到该对象恢复为止。QUIC通过将HTTP/2的流层向下推送到传输层来解决此问题,从而避免了应用程序层和传输层的问题。HTTP/3还支持多路复用,在与TLS直接集成的同时,提供独立于其他连接请求的请求。尽管HTTP/2和HTTP/3的工作方式相似,但以下是HTTP/2和HTTP/3的一些重要区别。
连接ID的优势
从协议的角度来看,连接ID提供了其他好处。服务器和用户代理可以使用连接ID识别原始连接和重传连接,并避免TCP中普遍存在的重传歧义问题。
结论
PS:如果觉得我的分享不错,欢迎大家随手点赞、转发、在看。
PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。
以上是关于HTTP2还没用上,HTTP3就出来了的主要内容,如果未能解决你的问题,请参考以下文章