Intel QAT網路傳輸安全效能最佳化技術

2024-10-01


• 為何需要QAT(Quick Access Technology)?

企業強化資安,除需仰賴外掛式資安方案,更理想的方式便是從根本做起,藉由運算平台硬體與韌體,延伸晶片的各項保護功能,形成硬體型信任根環境,藉此保護基礎架構與資料隱私。談到資料保護,企業最關心的是兩大方向,一是提升加解密、加解壓縮的執行效能,另一是擴大保護範圍。

 

• QAT應用於網路技術介紹

網路間的傳輸需要做到資料保護的功能,需要通過安全通訊協定Transport Layer Security (TLS). 主要是對web應用程式和伺服器之間的通訊(例如,web 瀏覽器載入網站)進行加密。TLS 還可以用於加密其他通訊,如電子郵件、訊息傳遞和 IP 語音(VOIP)等。TLS已成為網站的標準做法。

QAT支援加速的密碼演算法涵蓋了TLS的整個流程,QAT提供了對對稱與非對稱兩類密碼演算法的支持,主要包括:
1. 非對稱加密演算法:RSA, ECDSA, ECDHE
2. 對稱加密演算法:AES-GCM(128,192,256)

 

• QAT核心---QAT Engine

1. QAT Engine 是QAT技術方案的核心模組,主要的作用是作為應用程式和硬體之間的中間層,負責「加解密操作的輸入輸出資料」 在用戶應用程式與硬體卡之間進行傳遞,主要操作就是IO的讀寫。

2. QAT Engine 是以OpenSSL 第三方插件的方式提供給用戶,這個意味用戶可以使用OpenSSL 標準的API,就可以實現對TLS的加速,只需要對原有程式碼改成OpenSSL非同步傳輸模式(OpenSSL Async Mode),就可以享受QAT技術帶來的TLS效能加速。

3. 如下圖所示,QAT Engine 支援兩種加速方式
• 軟體加速(qat_sw):
使用 Multi-Buffer (SIMD)技術,對密碼演算法進行平行處理最佳化
• 硬體加速(qat_hw):
使用QAT硬體加速卡,將密碼演算法計算從CPU OffLoad到硬體加速卡

 

 

• 硬體加速的說明

硬體加速核心是將TLS中的非對稱加解密操作剝離出來,放到硬體加速卡里計算,即解放了CPU,同時專用的硬體加速卡也提供了更高的加解密性能,這是典型的硬體Off-Load技術方案。

 

• Intel QAT

 

下圖為典型的 Nginx+ Intel QAT Software Stack + QAT硬體加速卡的典型應用場景:

 

這個典型應用場景包括四個部分:

1. Nginx (Async Mode): Intel 基於官方nginx(version 1.18)提供了patch,支援nginx工作在openssl的非同步模式。

2. OpenSSL(支援Async Mode): OpenSSL-1.1.1 新增了async mode 特性,應用層軟體可以透過標準的openssl接口,實現異步調用,提升效能。

3. QAT Engine: OpenSSL Engine 插件。向下和QAT API交互,將處理請求提交給硬體。

4. QAT Driver:QAT加速卡的驅動程式。分為使用者態和核心態兩個部分。使用者態的lib函式庫提供QAT API,核心態的driver則是直接和QAT硬體加速卡打交道。

 

Intel QAT 依賴了OpenSSL的兩個特性 OpenSSL Async Mode 和OpenSSL Engine

• OpenSSL Async Mode 能夠在 async_job 執行過程中,在等待加速卡結果的時候,將 cpu 讓出去;如果沒有開啟 async 模式,呼叫 openssl 函數會阻塞,cpu會阻塞等待。

• OpenSSL Engine 則是提供了自訂註冊加解密的方法,可以不使用

 

• 軟體加速:採用 Intel Multi-Buffer 技術

Intel從新平台開始加入了新的指令集(AVX2/AVX-512),結合intel Multi-Buffer技術,實現對密碼演算法的SIMD最佳化方案。Intel Multi-buffer 基本原理就是使用CPU的SIMD機制,透過 AVX2/AVX-512 指令集並行處理數據,來提升RSA/ECDSA演算法效能。

1. SIMD (Single Instruction Multiple Data) 即單指令流多資料流,是一種採用一個控制器來控制多個處理器,同時對一組資料(又稱「資料向量」)中的每一個分別執行相同的操作從而實現空間上的並行性的技術。簡單來說就是一個指令能夠同時處理多個數據

2. Multi-Buffer 技術基於SIMD AVX2/AVX-512指令集,透過佇列和批次提交策略,結合OpenSSL的非同步能力,每次可以最多並行處理8個密碼演算法操作

 

Intel 的 Multi-Buffer 方案,實際上是對應Intel兩個開源工程(Multi Buffer技術實現的通用密碼演算法底層lib庫),整合在 QAT Engine 裡,從而實現軟體加速。

 

1. IP SEC lib

• 提供了multi-buffer技術優化的對稱加解密演算法,如:AES-GCM

 

2. IPP CRYPTO lib

• 提供了multi-buffer 技術優化的RSA/EDCSA/EDCHE演算法接口,基於Intel® Advanced Vector Extensions 2 (Intel® AVX2),Intel® Advanced Vector Extensions 512 (Intel® AVX-512) integer fused multiply-add (IFMA) 指令實現SIMD優化

 

• QAT Performance範例

 

 

• 支援Intel QAT platform:

HW QAT:

 

SW QAT: Alder Lake-N/Amston Lake

 

• 結論

使用Intel QAT主要的優點

• 高效能:可顯著提高運算密集型任務的效能,減少CPU的負載,提高系統吞吐量和回應速度。

• 低功耗:可將運算密集型任務卸載到專用硬體上,降低系統功耗,提高能源效率比。

總結來說,Intel QAT可以將運算密集型任務從CPU中分離出來,顯著提高系統的效能和能源效率比,可以廣泛應用於運算密集型任務的加速,包括網路安全、資料處理、雲端運算、存儲加速、視訊處理等多個領域。Intel提供產品支援全新軟硬體解決方案, 如果需要更多相關技術資訊和相關的應用領域問題, 可進一步洽詢我們直接取得進一步聯繫協助。

 

資料出處

https://event.ithome.com.tw/live/IntelXeon23/blog04.html?v=1705380364

https://www.cnblogs.com/vivotech/p/17420189.html

https://www.cloudflare.com/zh-tw/learning/ssl/transport-layer-security-tls/

 

參考文件

NEX 8Q roadmap

Intel QuickAssist Software for ADL-N/ASL

Network Security with Intel®QuickAssist Technology

 

* 若想了解更多資訊或有任何疑問,歡迎聯繫以下窗口 : CBGIntelFAE@synnex.com.tw