关于tls:TLS-加速技术Intel-QuickAssist-TechnologyQAT解决方案
作者:vivo 互联网服务器团队- Ye Feng本文介绍了 Intel QAT 技术计划,通过Multi-Buffer技术和QAT硬件加速卡的两种形式实现对TLS的减速 一、背景以后 TLS 曾经成为了互联网安全的次要传输协定,TLS带来更高的安全性的同时,也带来了更多的性能开销。特地是在建连握手阶段,TLS的CPU开销,绝对于TCP要大很多。 业界在优化TLS性能上曾经做了很多软件和协定层面的优化,包含:Session 复用、OCSP Stapling、TLS1.3等。然而在摩尔定律"生效"的今日,软件层面的优化很难满足日益增长的流量,应用专用的硬件技术卸载CPU计算成为目前通用的解决方案。本文将介绍Intel在TLS减速畛域提供的QAT技术计划。 二、Intel QuickAssist Technology(QAT)技术计划Intel 提供了TLS异步减速的残缺解决方案: Intel QuickAssist Technology(QAT),简称Intel QAT技术。 如下图所示,QAT 反对减速的明码算法笼罩了TLS的整个流程,包含:握手阶段的签名、秘钥替换算法,数据传输的AES加解密算法等。 图1. QAT 对TLS流程的明码算法的反对(图片起源) QAT提供了对称与非对称两类明码算法的反对,次要包含: 非对称加密算法:RSA, ECDSA, ECDHE对称加密算法:AES-GCM(128,192,256)注:QAT减速的劣势次要体现在非对称加密上,从官网的整体性能数据看,非对称算法性能晋升1.6~2倍,对称算法性能晋升10%~15% 2.1 QAT Engine 软件栈QAT Engine 是QAT技术计划的外围模块,次要的作用是作为应用程序和硬件之间的中间层,负责 “加解密操作的输入输出数据” 在用户应用程序与硬件卡之间进行传递,次要操作就是IO的读写。 QAT Engine 是以 OpenSSL 第三方插件的形式提供给用户,这个象征用户能够应用 OpenSSL 规范的API,就能够实现对TLS的减速,只须要对原有代码做OpenSSL异步革新,就能够享受QAT技术带来的TLS性能减速,业务侵入性较小。 图2. Intel QAT Engine 软件栈(图片起源) 如上图所示,QAT Engine 反对两种减速形式: 软件减速(qat_sw):应用 Multi-Buffer (SIMD)技术,对明码算法进行并行处理优化。硬件加速(qat_hw):应用QAT硬件加速卡,将明码算法计算从CPU OffLoad到硬件加速卡。上面将介绍软件和硬件两种减速门路的实现形式。 三、软件减速:采纳 Intel Multi-Buffer 技术Intel 从 whitely 平台开始退出了新的指令集,联合intel Multi-Buffer技术,实现对明码算法的SIMD优化计划。 3.1 Intel Multi-Buffer 技术Intel Multi-buffer 基本原理就是应用CPU的SIMD机制,通过 AVX-512 指令集并行处理数据,来晋升RSA/ECDSA算法性能。 ...