HTTP/3是超文本传输协议(HTTP)的第三个正式版本,将改善网络性能和稳定性,解决各种安全隐私问题,但尽管如此,仍存在一些安全挑战。
HTTP/3不再使用传输控制协议(TCP),相反,将使用2012年谷歌提出的QUIC传输协议。实际上,HTTP/3前身是HTTP-over-QUIC。
2018年10月,互联网工程任务组(IETF) HTTP和QUIC工作组主席Mark Nottingham提出了将HTTP-over-QUIC更名为HTTP/3
QUIC是基于用户数据包协议(UDP)连接的复用版本的传输层协议。与TCP不同,UDP不遵循TCP三向交握,而是使用单个UDP往返。因此,在用户代理和Web服务器之间的每个连接都使用UDP,QUIC协议极大地改善了任何web组件的网络性能。
同样,QUIC依靠多路复用来在单个连接上无缝地管理用户代理与服务器之间的多个交互,而没有一个阻塞另一个,因此与以前的版本相比,有助于提高性能。从性能和稳定性的角度考虑,HTTP/3似乎都有很大的优势。从安全性来说,HTTP/3有其先进性也有其局限性。
安全优势
1.端到端加密
TCP协议旨在确保在传输过程中进行有效负载加密,但是对于特定传输的信息仍未加密,所以这会引发许多安全和隐私问题。预防攻击的对策不是在TCP堆栈上,而是在处理协议和网络的网络设备和中间盒上。此外,解析器可以克服负载均衡器和其他网络设备中的这些问题,但它们也还存在严重的性能问题,并且可能会限制网络发展速度和可靠性。
使用QUIC协议时,只有网段中的必填字段未加密,而其余信息默认情况下是加密的。通过查看TCP和QUIC的网络段,我们发现包括数据包标志(数据包NR和ACK NR),窗口和选项的字段在QUIC中已加密,但在TCP中未加密。QUIC中建议加密有助于防止普遍存在的监视攻击(在HTTP / 3的前身中很普遍)以及协议工件和元数据、应用程序数据的侵入式信息收集。
下面的图1显示了QUIC协议在网络分析器工具Wireshark中的呈现方式。根据QUIC的网段,互联网协议(IP)层保存源IP地址和目标IP地址信息。UDP保留源端口和目标端口,而QUIC包含公共标志,数据包编号,连接ID和加密的有效负载。
图1 Wireshark代码段显示QUIC协议的网段
2.TLS安全连接
为了在连接期间支持端到端加密,QUIC主要依赖于加密和传输层握手。由于QUIC直接与TLS 1.3 交互,因此它可用于所有原始连接的授权加密,并且没有禁用TLS。QUIC还负责确保建立安全连接,同时考虑到所有原始连接的机密性和完整性保护。与HTTP / 2 + TLS实现不同,QUIC在其传输上下文中处理TLS握手和警报机制,这反过来又帮助QUIC利用从握手交换的密钥来建立密码保护。