带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(上)

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
性能测试 PTS,5000VUM额度
简介: 带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(上)

6.1.2 系统安全场景的加解密加速方案


概述


如今,科技社会日益发展,互联网连接万物,生活中的方方面面都离不开网络。尤其是近年来发展迅猛的移动互联网,让人们的生 产生活方式发生了翻天覆地的变化,也从侧面证明网络在给我们日常生活提供便利的同时,需要更关注安全。介于安全与性能需兼 顾的需求,龙蜥操作系统基于芯片新特性制定了加解密加速方案。


image.png


在网站访问过程中,HTTPS使用到SSL/TLS加解密过程。


image.png



场景挑战

我们知道密码学是为了保证信息的可靠性、机密性和完整性。密码学计算包括加解密、校验、签名等计算,消耗较多CPU资源。因此各硬件厂商推出过不少加速卸载方案:

Intel在Leiwsburg PCH推出QAT,用于密码学和解压缩offload;

ARM KP920推出的KAE加速卡,封装在CPU die,作为PCIe设备交互;

ARMv8.0加入了crypto extension通过SIMD指令加速密码学计算;

云厂商Cloud HSM服务使用的SSl/TLS专用offload方案。


方案特色

不久前Intel发布了第三代英特尔® 至强® 可扩展处理器(代号Ice Lake),单核性能提升30%,整机算力提升50%以上。龙蜥操作系统(Anolis OS)和Intel深入合作,输出加速特性,进一步提升性能和效率。

新增指令集:在传统的AES-NI加速指令基础上,Ice Lake新增了基于Intel® Advanced Vector Extensions 512 (Intel® AVX-512)的Intel® Crypto Acceleration特性,包括Vector AES (VAES)、Integer Fused Multiply Add (IFMA大数计算)、Galois Field NewInstructions (GFNI) 等。通过multi-buffer lib配合,加速AES, RSA, EC等密码学计算,可用于OpenSSL (BabaSSL), Nginx(Tengine), DPDK Cryptodev, CDN, dm-crypt, ISA-L等。


image.png


此外,Ice Lake补充支持了SHA extension (SHA-NI),补足了前代Cascade Lake和Skylake的SHA256性能短板。结合Intel AVX512的vpternlog三元逻辑运算指令,进一步减少SHA256中一半的vpxor/XOR指令,可以达到和AMD Rome持平的单核SHA256性能。


加速软件栈:受益于以往的QAT方案,OpenSSL (BabaSSL, BoringSSL), Nginx (Tengine), DPDK, Envoy等主流软件已经支持 offload SSL/TLS加速。Intel® Crypto Acceleration方案沿用和扩展了QAT的软件框架QAT Engine,使之从专用的硬件offload卡场 景扩展到了通用的CPU指令加速场景,极大扩展了适用范围。


image.png


接下来我们详细对比各个方案的加速软件栈。

General CPU path:通用的CPU计算是最常见的SSL/TLS handshake软件栈,性能取决于libcrypto里对应的密码学算法在各型号 CPU上的计算性能和效率。


image.png


Ice Lake acceleration path:Ice Lake的Intel® Crypto Acceleration方案,从QAT软件栈演进而来,区别是底层改用multi-buffer lib中的Ice Lake加速指令进行密码学计算,不需要QAT PCIe设备,对应的驱动中断、系统调用、CPU内存消耗、硬件维护也可 以省略。


相对于默认的同步模式软件栈,Ice Lake加速软件栈和QAT一样需要异步SSL集中批量请求,通过multi-buffer lib配合Intel AVX512 指令的并行计算实现加速。因此Ice Lake加速软件栈会更长,但相对QAT软件栈更短。RSA大数计算消耗大量CPU,超过了SSL/TLS  handshake全栈耗时的一半,异步SSL加速很有必要,也是典型的异步优化场景。


image.png


QAT PCIe offload path:QAT软件栈是Skylake上推出的SSL/TLS加速方案,经过演进派生出了上面的Ice Lake CPU加速方案。两种 方案都基于QAT Engine,区别在底层是用CPU加速还是PCIe设备。例如Tengine已经支持QAT,则也支持Ice Lake加速,类似的还有 Envoy, DPDK, ZFS,QZFS只用了QAT的解压缩加速)等。


QAT硬件集成在PCH主板(Lewisburg和Lewisburg refresh),或者作为独立的PCIe AIC卡。支持Ice Lake, Cascade Lake, Skylake 三代服务器平台,和部分Intel Atom® C Series, Intel Xeon® D Series的专用SoC平台。下一代产品按照目前的规划会作为加速器集成 封装到CPU die,从系统看还是PCIe设备。


image.png


同样可以用bpftrace分析QAT软件栈的处理流程和各阶段的latency分布。由于需要专用的QAT硬件平台,此处略过。 总的来说,QAT是专用的PCIe offload设备,可以协助CPU处理密码学和解压缩的大量计算消耗,释放CPU资源。但和所有PCIe设备 一样需要专用的系统驱动、CPU内存消耗和硬件维护。QAT软件栈和延迟较长,计算能力上限也受系统和PCIe限制。Ice Lake强化了 密码学计算能力,且同时支持QAT。CPU资源也比QAT更易获取和可扩展。


《2022龙蜥社区全景白皮书》——06 “龙蜥+”精选方案与案例——6.1 精选典型方案——6.1.3 资源混部场景的内核隔离实现方案(下) https://developer.aliyun.com/article/1229075


相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
6月前
|
人工智能 运维 安全
龙蜥社区成立系统安全 SIG,助力系统安全生态
系统安全 SIG 将深入研究系统安全领域,保护用户数据和应用程序免受攻击和威胁。
|
4月前
|
供应链 安全 数据安全/隐私保护
线上观看人次3万+!「系统安全技术沙龙-龙蜥社区走进浪潮信息专场」圆满结束
增强操作系统的安全防护能力,已然成为各行各业数字化建设中不可忽视且亟待解决的课题。
|
5月前
|
人工智能 供应链 安全
|
5月前
|
人工智能 供应链 安全
报名倒计时 2 天!龙蜥社区系统安全 Meetup 演讲亮点一览
欢迎大家报名参加,深入探讨当前系统安全的现状与未来发展趋势。
|
安全 Linux Anolis
带你读《2022龙蜥社区全景白皮书》——5.8.1 龙蜥操作系统漏洞管理
带你读《2022龙蜥社区全景白皮书》——5.8.1 龙蜥操作系统漏洞管理
291 9
|
tengine 弹性计算 安全
带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(下)
带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(下)
179 3
|
算法 安全 Linux
带你读《2022龙蜥社区全景白皮书》——5.8.3 商密软件栈
带你读《2022龙蜥社区全景白皮书》——5.8.3 商密软件栈
157 3
|
安全 Linux
Linux 系统安全 - 近期发现的 polkit pkexec 本地提权漏洞(CVE-2021-4034)修复方案
Linux 系统安全 - 近期发现的 polkit pkexec 本地提权漏洞(CVE-2021-4034)修复方案
1295 2
|
达摩院 安全 算法
|
6月前
|
监控 安全 Linux
Linux系统的防御从多个方面来保护系统安全
防火墙:使用防火墙软件如iptables或Firewalld来限制网络流量,保护系统免受恶意网络攻击。