英特尔® QAT 技术加速 OPPO 云安全网关 HTTP3-QUIC

简介

  • OPPO 数智工程系统安全与隐私团队与英特尔合作,通过英特尔® QAT 技术,在硬件层面实现加解密计算的软件卸载。相对于使用处理器 (CPU) 进行的软件加速,此技术使得 HTTP3-QUIC 的并发短连接处理能力提升达到 3 倍左右,同时显著改善了其业务的成本效益。

author-image

作者

概述

智能移动设备的快速普及以及蓬勃发展的互联网业务推动了互联网流量的快速增长,这让互联网系统承受着越来越大的压力。与此同时,用户对于互联网应用的延迟、稳定性等有着更高的要求,这意味着互联网服务提供商需要实现低延迟、高吞吐、应用服务质量 (QoS) 感知的网络传输等,传统的 HTTP 协议已经愈发难以满足互联网应用的需求。在此背景下,基于快速 UDP 互联网连接 (Quick UDP Internet Connections,QUIC) 的 HTTP/3 业务得到了快速的发展。

相较于传统的传输控制协议 (TCP),QUIC 引入了大量的加解密操作,因此对于性能有更高的要求,常会导致 CPU 负载的大幅上升,这就影响了互联网业务整体的业务承载能力以及基础设施的投资回报率 (ROI)。

快速发展的 QUIC 业务带来加解密性能挑战

现有互联网技术基于 TCP/HTTP 机制,在移动互联网业务快速的发展下面领诸多挑战,例如对交互式通信的低延迟支持、用户数据的安全和隐私,以及新传输机制的开发和部署。因此,QUIC 应运而生。QUIC 是一种新的传输协议,结合了类似于 TCP 的拥塞控制和丢失恢复特性,同时提供了更丰富的信令能力。此外,QUIC 通过为连接设置提供更少的 RTT(Round-Trip Time) 来减少网络延迟。QUIC 结合了 TLS 1.3 的密钥协商功能,要求对所有连接进行加密。强制加密不仅是为了确保用户数据的安全性和隐私性,也是为了防止中间盒篡改数据包信息。HTTP/3 是针对 QUIC 而设计的,所以它可以利用 QUIC 协议所带来的所有优势。

由于 QUIC 协议提供了许多改进,提升了网络传输的性能,在连接延迟、可靠性、用户空间堵塞控制等方面都有着强大的优势,因此,越来越多的 Web 应用开始从 TLS 迁移到 QUIC。对于希望将 Web 应用迁移到 QUIC 的用户而言,QUIC 在带来了诸多优势的同时,也意味着在可移植性、易集成性、兼容性、性能等方面的诸多挑战。

以性能挑战为例,QUIC 和 TLS 相似,在连接建立阶段的密钥协商会消耗大量的 CPU 资源。在连接建立阶段,服务器和客户端会建立会话密钥,但是这一握手消息通常会采用非对称密钥来进行加密,因此需要更多的计算能力。由于数据加解密消耗了大量的 CPU 资源,为了确保 Web 应用的 QoS 不受影响,互联网服务提供商常会被迫加大在服务器资源方面的投入,但是这种方式显然会带来巨大的成本压力。要想进一步优化 QUIC 加解密的性能,对于现有的服务器而言,除了采用软件优化和第三代英特尔® 至强® 可扩展处理器之外,另外一种可行的路径是添加专用的英特尔® QAT 加速卡,将加解密负载卸载到英特尔® QAT 加速卡中进行处理。

OPPO 基于英特尔® QAT 技术加速 HTTP3-QUIC

为了充分利用 QUIC 技术带来的业务优势,OPPO 数智工程系统安全与隐私团队在统一接入层的前端构建了基于 nginx 定制化的安全网关,增加了配置管理能力和 WAF 能力,优化了 TLS 卸载能力,也支持了 QUIC 协议。为了解决 QUIC 引入后带来的加解密性能问题,OPPO 使用了英特尔® QAT 技术来进行加速。

英特尔® 在 nginx 中引入了异步 HTTPS 连接异步卸载机制,显著提升了系统并发连接处理能力。基于 async-mode-nginx 参考设计,OPPO 在安全网关中使用英特尔® QAT 加速卡卸载 RSA 非对称加密负载,提升服务器的整体性能表现。英特尔® QAT 是英特尔针对网络安全和数据存储推出的硬件加速技术。英特尔® QAT 专注数据安全和压缩加速,助力应用程序和平台的性能提升。在网络安全应用方面,英特尔 QAT 支持多种对称数据加密 (如 AES)、非对称公钥加密 (如 RSA、椭圆曲线等) 和数据完整性 (SHA1/2/3 等) 算法,加速数据的加解密和数字签名等操作。

英特尔® QAT 加速卡针对 nginx 进行了适配,使其可以用异步的方式调用加速卡。nginx 是一个高性能的 HTTP 和反向代理 Web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。通过启用异步模式,nginx 能够通过并行处理减少等待,消耗更少的系统资源就能达到所需的性能,缩短应用响应时间。

英特尔® QAT 还支持强大的压缩加速能力,提供了由英特尔® QAT 加速的同步压缩 API,支持无状态并发压缩/解压模式、基于英特尔® QAT 异步 API 的流水线处理模式、线程安全压缩 API,以及零拷贝模式,能够将多个小数据压缩/解压请求整合到一个英特尔® QAT 硬件请求中,以达到降低 CPU 使用率和提高吞吐量的目的。

OPPO 安全网关基于 nginx 进行了自研定制化,继承了 nginx 的异步设计特性。但是主流 QUIC 协议的加解密引擎基于 BoringSSL 开发,当安全网关支持 QUIC 后,加解密运算库切换到 BoringSSL,传统的基于 OpenSSL 的英特尔® QAT 加速方案不再适用。

为了解决该问题,英特尔提出了新的解决方案,包括加解密库的英特尔® QAT 加速适配,QUIC 协议栈和英特尔® QAT 引擎的异步化等一系列措施。通过这些优化,OPPO 能够在一台 Web 服务器中并发进行 TLS12/TLS13/QUIC 加速,在统一的英特尔® QAT 引擎库中实现对 OpenSSL、BoringSSL 多种 SSL 库的支持,从而很好地满足了 OPPO 安全网关的加速需求。

测试验证:英特尔® QAT 显著提升 QUIC 性能

测试数据显示,在不同代际的英特尔® 至强® 可扩展平台上,英特尔® QAT 都表现出了相对于软件加速方案的巨大性能优势。

由于英特尔® QAT 提升了单服务器节点的性能,OPPO 得以在不增加服务器集群、不对现有系统环境进行颠覆式更新的前提下,满足更多 Web 业务对于加解密性能的要求,数据中心基础设施的总体拥有成本 (TCO) 也得到了有效控制。这一方案的优势还在于其具备长期演进能力,将会支持全系列英特尔® QAT 加速器和 CPU 中的 crypto-NI 技术,来满足 TLS12/TLS13/QUIC 后续版本在不同硬件平台上的性能优化需求。此外,在 OPPO 其他的加解密场景中,英特尔® QAT也有助于进一步提升性能与经济性等方面的表现。