密碼模塊的非入侵式攻擊檢測
從標準到案例:密碼模塊的非入侵式攻擊檢測
在前兩期的文章中我們分享了密碼模塊的相關定義和密碼模塊的安全等級知識,從而認識到非入侵式攻擊測試對密碼產品的高安全等級認證是必要的,并且我們對非入侵式攻擊測試的定義和具體測試方法展開了較為詳細的介紹。本篇文章將介紹如何利用數緣科技自主研發的MathMagic Detector側信道分析測評工具對商用密碼產品展開非入侵式攻擊檢測,并生成測試報告。
Detector實際測評案例
? 計時分析泄露測試
我們以Detector標配的AES算法訓練卡為例進行計時分析的泄露分析。整個過程分為兩個階段,第一個階段統計分析測試加密時間和所使用密鑰之間的相關性,若測試表明加密時間依賴于所使用的密鑰,則測試不通過,測試結束;否則,進行第二個測試階段:統計分析加密時間和所使用明文之間的相關性。若第二階段也表明無相關性,則測試通過;否則,測試不通過。
- 加密時間與密鑰之間的依賴性測試
- 首先,采集待測設備觸發通道的波形:固定明文,隨機生成五組密鑰,使用這五組密鑰對應地采集五組波形,每組波形包含1000條波。圖1是使用Detector軟件平臺搭配相應的能量分析儀和示波器采集到的觸發通道波形。

圖1 觸發通道波形(密鑰隨機,5000條)
在Detector軟件中選中波形觸發拉低部分波形段,如圖2所示。

圖2 選中計時分析的波形區域
點擊菜單欄“密碼”按鈕,下拉菜單中選擇“計時分析-標準”,進入如圖3所示的參數配置界面。

圖3 計時分析參數配置
在此測評實例中,測評工具將計算每條波觸發拉低時的實際時間以及每組波所耗時間的均值。若存在每組耗時均值的差異大于一個時鐘周期的情況,則測試不通過;否則,固定密鑰,隨機生成五組明文,使用這五組明文分別采集五組波形,同樣計算每組波所耗時間的均值。若存在每組耗時均值的差異大于一個時鐘周期的情況,則測試不通過,若小于一個時鐘周期,則測試通過。其計時分析結果如圖4所示,我們可以清晰地看到每組波加密耗時之間的明顯差異。經過計算得知此差值超過了待測設備的一個時鐘周期,因此存在與密鑰相關的時間信息泄露,測試不通過。

圖4 計時分析結果
- 加密時間與明文之間的依賴性測試
- 該依賴性測試的操作方法與加密時間與密鑰之間依賴性測試基本相同。由前面的測試可知,測評工具標配的AES算法訓練卡加密時間與密鑰之間存在明顯的依賴性,測試不通過,測試結束,不需要繼續執行該測試。
- 在以上計時分析結束之后,點擊軟件中的“生成報告”按鈕,進入圖5所示的生成報告界面。

圖5 TA泄露分析報告導出界面
界面中任務名稱通過下拉菜單選擇,也可點擊“創建”按鈕創建新的任務名稱。“測試項”選擇“計時分析”,“通過”選項根據測試結果自動鎖定,檢測人員不可直接更改。報告內標題與測試結果會自動生成,并支持手動修改。
點擊“確定”按鈕后,測試報告將由Detector軟件自動生成,并保存在安裝路徑下“Report”文件夾中。報告內容如圖6所示,包括:測試相關信息、分析波形圖、分析結果圖及測試結果文字說明等內容。

圖6 TA泄露分析報告
? 簡單能量/電磁泄露測試
我們以SM2算法為例進行簡單能量泄露分析。針對于SM2的簡單能量分析側重于區分出簽名或解密標量乘操作中的倍點(Double)運算和點加(Add)運算。圖7是我們采集到的某型號芯片實現的SM2解密的波形。

圖7 SM2示例波形(5條)
我們選中部分采樣點,放大波形,觀察其特征。根據圖8所標示波形段中較粗尖峰的數量,我們將波形分為兩類,分別對應Double和Add這兩種運算。分析算法執行過程,可知Add不可能單獨出現,從而我們可以將這兩種操作直接區分出來。進一步地,根據Double和Add一起出現對應比特1而Double單獨出現對應比特0這一規律,我們可以將其完整密鑰恢復出來。

圖8 SM2示例波形放大觀察
GM/T 0083標準中建議通過“交叉關聯”的方法來增強簡單能量分析中兩種操作的區分度,學界一般將其稱為自相關分析。該方法通過計算得出自相關圖來可視化一條波中的重復操作,這種分析有助于識別已知的程序結構。在上述例子中,我們可設定兩個寬度均為2000的窗口,各自在橫軸上以步長1進行左右滑動;每滑動到兩個位置,均計算兩個窗口中2000個點的相關系數;當兩個窗口遍歷所有情況時,相關系數構成一個矩陣。圖8波形段的自相關分析結果如圖9所示,其中用紅色框標記的比較亮的豎條紋對應波形段即為Add運算,其余為Double運算。

圖9 SM2自相關分析結果
在自相關分析結束之后,點擊“生成報告”按鈕,生成報告界面如圖10所示。

圖10 SPA泄露分析報告生成界面
界面中任務名稱通過下拉菜單選擇,也可點擊“創建”按鈕創建新的任務名稱。“算法”選擇“SM2”,“測試項”選擇“SPA測試”,“通過”選擇“否”。報告內標題與測試結果會自動生成,并支持手動修改。最后,點擊“確定”按鈕可生成如圖11所示報告。

圖11 SPA泄露分析報告
? 差分能量/電磁泄露測試
我們以Detector標配的HMAC-SM3算法訓練卡為例進行實驗,GM/T 0083標準中建議通過“Welch測試”來實現差分能量泄露測試,學界一般將其稱為基于T-test的TVLA(Test Vector Leakage Assessment)。進行TVLA T-Test需在固定密鑰的前提下采集兩組波形,一組波形使用固定明文加密,一組波形使用隨機明文加密。使用HMAC-SM3算法采集到的2000條示例波形如圖12所示,其中,標題為“TVLA fixed 1”的波形明文固定,標題為“TVLA random -1”的波形明文隨機。

圖12 HMAC-SM3示例波形(2000條)
為了使測試更高效地運行,我們需要對波形進行低通濾波,以減少波形中的高頻噪聲,保留有用的低頻信號。我們在上面的波形中按住鼠標左鍵選中需要低通濾波的區域,選中后效果如圖13所示。

圖13 選中低通濾波的區域
然后點擊菜單欄“濾波”按鈕,下拉菜單中選擇“低通濾波”,該功能的參數設置界面如圖14所示。其中,“起始點”和“長度”對應波形中選擇的模板,軟件已自動填寫,“權重”即為濾波權重。

圖14 低通濾波的參數設置
我們接下來要對波形進行靜態對齊,以減少其橫向偏移。在原始波形中選中一部分作為模板(如圖15所示)。

圖15 選中靜態對齊的模板
點擊菜單欄“工具”按鈕,下拉菜單中選擇“靜態對齊”,靜態對齊參數設置界面如圖16所示。其中,“參考波形”中的“起始點”、“點長度”、“參考波形號”對應波形中選擇的模板,軟件已自動填寫,“參數設置”中的“最大偏移量”限制偏移范圍。用模板所選用波之外的每一條波與選中的模板在偏移范圍內求相似度,若所求相似度的最大值達到了閾值則認為可以對齊,保留該波,否則丟棄該波。此樣例HMAC-SM3能量波形濾波后經過靜態對齊丟波0條。

圖16 靜態對齊設置界面
TVLA T-Test的目的是對一定數量的固定明文和隨機明文進行加密之后,用獲得的兩組波形數據進行T-Test,根據兩者統計特性的異同判斷是否有信息泄露。該模塊僅可以在通過TVLA數據生成器獲取的特定波形集上運行。對靜態對齊后的波形(如圖17所示)進行TVLA分析,點擊軟件菜單欄“密碼”按鈕,下拉菜單中選擇“TVLA T-Test”,TVLA T-Test的參數設置如圖18所示。

圖17 進行TVLA T-Test的區域

圖18 TVLA T-Test的參數設置
將該HMAC-SM3卡TVLA T-Test分析結果的兩條波形疊加,如圖19所示,藍色曲線為計算得到的T-test 值,黃色曲線為的閾值線。若計算所得的T-test值超過此閾值,則說明此處存在明顯側信息泄露,否則無明顯側信息泄露。結合HMAC-SM3算法實現分析,最前端的尖峰可能是在執行明文的搬運,中間及后半部分尖峰位置對應算法中兩個壓縮函數,此處函數結果與明文有關。由此可判斷在第二個和第四個壓縮函數的位置存在泄露。

圖19 待分析波形及TVLA T-Test分析結果
在TVLA分析結束后,點擊“生成報告”按鈕,生成報告界面如圖20所示。界面中任務名稱通過下拉菜單選擇,也可點擊“創建”按鈕創建新的任務名稱。“算法”選擇“SM3”,“測試項”選擇“TVLA測試”,“通過”選項根據測試結果自動鎖定,無法更改。報告內標題與測試結果會自動生成,并支持手動修改。

圖20 DPA泄露分析報告生成界面
最后,點擊“確定”按鈕可生成如圖21所示報告。

圖21 DPA泄露分析報告
總結
本文主要介紹了如何在實際測評場景中利用數緣科技Detector測評工具展開符合《GM/T 0083-2020 密碼模塊非入侵式攻擊緩解技術指南》標準的測試,并形成測試報告。通過“從標準到案例:密碼模塊的非入侵式攻擊檢測”系列文章,我們學習到了和密碼模塊相關的定義及安全等級知識,認識到非入侵式攻擊測試在密碼產品的高安全等級認證中是必需的,又掌握了非入侵式攻擊測試的原理和方法;最后,我們面向典型密碼芯片開展了非入侵式攻擊檢測的應用示范。從中我們體會到,無論是檢測機構按照標準進行非入侵式攻擊檢測,還是廠商研發高安全等級的密碼產品,有一個符合標準規范、簡單易上手的檢測工具,可以降低檢測人員的門檻,成倍地提高效率,極大縮短檢測和研發的時間,達到事半功倍的效果。數緣科技希望將Detector測評工具做成專業性強且操作簡易的平臺工具,助力檢測機構和廠商提升自身檢測水平,從而推動密碼產品的安全性更上一層樓。