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