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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(下)

《2022龙蜥社区全景白皮书》——06 “龙蜥+”精选方案与案例——6.1 精选典型方案——6.1.2 系统安全场景的加解密加速方案(上) https://developer.aliyun.com/article/1229109


实践验证

我们关注通用CPU计算和Intel® Crypto Acceleration(qat_sw)方案的加速对比,同时参考QAT(qat_hw)方案的数据。

系统环境:基于阿里云ECS云服务器


image.png

软件包:基于龙蜥操作系统Anolis OS 8.4


image.png


兼容性:Anolis BabaSSL文档,BabaSSL兼容openssl-1.1.1的全部能力。下面在AnolisOS 8.4上验证BabaSSL兼容qatengine, 支持Ice Lake加速和QAT offload。


OpenSSL性能:CPU指令加速属于底层特性,我们按照自下而上的方法逐层验证,首先对比OpenSSL底层的基础加解密算力。

对称密码:Ice Lake单核平均比Skylake高42%,比Rome高12%,比Ampere高20%:

1、符合Intel发布的Ice Lake单核1.4倍于Cascade Lake;

2、符合ECS发布的实时音视频通信加密的场景性能最大提升40%。

非对称密码:Ice Lake单核平均比Skylake高35%,比Rome高15%,是Ampere的3.5倍:

1、符合RSA特点:sign签名计算的消耗高运行慢,verify验证计算的消耗低运行快;

2、符合EC特性:sign签名计算比RSA快一个量级以上,verify验证计算比RSA慢;

3、Ampere的公钥密码计算性能较低(ARMv8 crypto extension)。


加速性能

# openssl speed -engine qatengine [algo] #包含qat_sw加速效果,无qat_hw offload

对称密码:Ice Lake加速效果符合预期的最高3.1倍:

1、block size大于256Byte时,AES-GCM能达到加速3~4倍。

2、block size小于64Byte时,AES-GCM有少量20%回退 。小于64Byte场景较少, Nginx默认ssl_buffer_size为16KB,可选4KB加速time to first byte响应。

非对称密码:部分场景可以达到预期的优化3~6倍:

1、同步模式没有指令加速效果,有30%左右单核通用计算的提升;

2、异步模式jobs大于8时有优化,RSA 2K sign 6倍,verify 3倍,ECDSA P256 sign 2倍,ECDH 3~倍;

3、异步模式jobs小于8时有回退。参考2.3.2章节分析,低负载场景没有加速需求,应该关闭加速。

Nginx性能:在OpenSSL底层加解密算力基础上,继续验证典型的端到端场景Nginx SSL/TLS性能:

1、复用QAT加速Nginx方案(需要Nginx支持SSL/TLS异步加速);

2、Nginx https SSL/TLS handshake的标准性能测试方法文档。

加速效果:Nginx SSL/TLS性能在单核Ice Lake加速后可提升2~3倍,是单核Skylake的3~4倍:

1、RSA有以上加速效果,ECDSA有60%通用计算提升。经分析是由于4核的client压力不足,在core通用提升基础上,nginx还有17%的加速效果。

2、Client connect数少于10时有回退,和OpenSSL异步低负载回退一致,低负载场景没有加速需求,应该关闭加速;

3、TLSv1.2的加速效果比TLSv1.3更好;


image.png


Tengine性能:Tengine从2.2.2版本开始支持async SSL,使用QAT offload SSL/TLS,支持的底层lib版本为:OpenSSL-1.1.0f和QAT_Engine-0.5.30。我们引入CPU加速后升级到:OpenSSL-1.1.1g和QAT_Engine-0.6.6,同时不需要QAT驱动和qatlib。

加速效果:Tengine SSL/TLS性能在单核Ice Lake加速后可提升2.7~3.2倍,是单核Skylake的3.5~4.2倍:

1、RSA有以上加速效果,ECDSA有60%通用计算提升。经分析是由于4核的client压力不足,在core通用提升基础上,tengine还有36%的加速效果;

2、tengine效果和asynch_mode_nginx类似;

3、仅对比TLSv1.2,TLSv1.3 tengine有专门的实践方案,此处略过。


image.png


总结


经过实践分析,Intel® Crypto Acceleration在Anolis OS 8.4可以达到理想的SSL/TLS加速效果。


传统主流的AES和RSA加速效果最好,Ice Lake的底层OpenSSL计算AES和RSA达到上一代Cascade Lake的3.4和5.1倍。应用层 Nginx SSL/TLS性能相应地加速到Cascade Lake的3.2倍,Tengine是3.3倍。整机多核性能随核数并发扩展,OpenSSL的AES和 RSA加速效果增加到3.8和5.7倍,Nginx增加到4.3倍,Tengine是3.8倍。


新兴的ECDSA加速效果相对较小,底层的OpenSSL计算ECDSA和ECDH加速了2倍和4.3倍,但应用层Nginx SSL/TLS性能小幅加速 1.5倍,Tengine是1.6倍,和上一代Intel® QAT的1.26倍效果类似。EC椭圆密码算法大幅优化了以往server端RSA的计算消耗,同等 安全性保证下的OpenSSL计算ECDSA性能已经达到RSA的10倍了。因此SSL/TLS性能中的密码学计算瓶颈不再凸显,端到端效果小 于底层加速是合理的结果。


兼容性方面,BabaSSL全兼容OpenSSL支持Intel® Crypto Acceleration。适配过QAT的应用也支持Ice Lake的CPU指令加速 SSL/TLS,例如Tengine, Envoy, DPDK等。其他应用可以参考asynch_mode_nginx进行异步SSL改造。tengine承载大量应用稳定 运行多年,我们推荐tengine作为Anolis OS 8.4的最佳SSL/TLS性能实践方案。

相关实践学习
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 演讲亮点一览
欢迎大家报名参加,深入探讨当前系统安全的现状与未来发展趋势。
|
tengine 安全 应用服务中间件
带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(上)
带你读《2022龙蜥社区全景白皮书》——6.1.2 系统安全场景的加解密加速方案(上)
222 8
|
安全 Linux Anolis
带你读《2022龙蜥社区全景白皮书》——5.8.1 龙蜥操作系统漏洞管理
带你读《2022龙蜥社区全景白皮书》——5.8.1 龙蜥操作系统漏洞管理
289 9
|
算法 安全 Linux
带你读《2022龙蜥社区全景白皮书》——5.8.3 商密软件栈
带你读《2022龙蜥社区全景白皮书》——5.8.3 商密软件栈
157 3
|
安全 Linux
Linux 系统安全 - 近期发现的 polkit pkexec 本地提权漏洞(CVE-2021-4034)修复方案
Linux 系统安全 - 近期发现的 polkit pkexec 本地提权漏洞(CVE-2021-4034)修复方案
1294 2
|
达摩院 安全 算法
|
6月前
|
监控 安全 Linux
Linux系统的防御从多个方面来保护系统安全
防火墙:使用防火墙软件如iptables或Firewalld来限制网络流量,保护系统免受恶意网络攻击。