隨著金融、大數(shù)據(jù)等行業(yè)的普及和發(fā)展,對密碼設(shè)備的依賴與日俱增,并且業(yè)內(nèi)在數(shù)據(jù)安全領(lǐng)域提出了多方面更高的要求,例如密碼模塊的物理安全、抗非入侵式攻擊、抗環(huán)境失效等,迫切需要更高安全等級的密碼模塊來支撐行業(yè)的實際應(yīng)用需求。依托安全二級密碼模塊,提出了新的高安全等級密碼模塊,在既有功能和安全技術(shù)設(shè)計的基礎(chǔ)上,新增了物理安全、實體鑒別、環(huán)境失效性檢測、非入侵式攻擊緩解 4 個重要的安全技術(shù)。該模塊設(shè)計對數(shù)據(jù)安全要求極高的行業(yè)和領(lǐng)域具有重要的實用意義。
密碼模塊作為基礎(chǔ)密碼設(shè)備,在金融、電力、大數(shù)據(jù)等行業(yè)中為各類安全應(yīng)用提供身份認(rèn)證、算法加速、敏感安全參數(shù)管理和保護等服務(wù)。目前市面上的商用密碼模塊按照國家密碼管理局提出的相關(guān)標(biāo)準(zhǔn) 進行研發(fā),大多滿足安全一級或安全二級的規(guī)范要求,僅提供基本的安全功能。 由于標(biāo)準(zhǔn)對高安全等級密碼模塊規(guī)定了更多的新功能和新機制,技術(shù)要求較高,因此國內(nèi)在該研究領(lǐng)域仍處于起步階段,且安全技術(shù)設(shè)計的相關(guān)論述較少。然而隨著對數(shù)據(jù)安全有極高要求的行業(yè)的發(fā)展,業(yè)內(nèi)對高安全等級的密碼模塊的需求與日俱增,面臨巨大的市場空缺。因此,研究如何通過各種設(shè)計和技術(shù)路徑來滿足高安全等級的要求就顯得迫在眉睫。 本文首先簡要介紹高安全等級密碼模塊的設(shè)計架構(gòu),其次分別從高安全等級特有的物理安全 、實體鑒別、環(huán)境失效性檢測(Environmental FailureTesting,EFT)、非入侵式攻擊緩解技術(shù)這 4 個方面詳細(xì)說明高安全等級密碼模塊的設(shè)計和工作原理。本文的研究不僅可以填補高安全等級密碼模塊安全技術(shù)設(shè)計方面的空白,也可以指導(dǎo)研發(fā)具有實用價值的商用密碼模塊,滿足相關(guān)行業(yè)的技術(shù)需求和市場需求。
1
高安全等級密碼模塊設(shè)計架構(gòu)
1.1 硬件架構(gòu)
設(shè)計高 安 全 等 級 密 碼 模 塊, 以 高 速 串 行 擴 展 總線(Peripheral Component Interconnect Express,PCI-E)接口密碼模塊為例,由主控單元、PCI-E總線接口單元、密碼運算單元、存儲單元、環(huán)境失效性檢測(Enviromental Failure Test,EFT)單元、功能單元組成,如圖 1 所示。
圖 1 高安全等級密碼模塊硬件架構(gòu)
高等級密碼模塊中:(1)主控單元由帶嵌入式操作系統(tǒng)的中央處理器(Central Processing Unit,CPU)實現(xiàn),實現(xiàn)對密鑰的管理和對應(yīng)用層下發(fā)命令的解析和響應(yīng);(2)PCI-E 總 線 接 口 單 元 由 大 規(guī) 模現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array,FPGA)實現(xiàn),是數(shù)據(jù)進出密碼模塊的主要傳輸通道;(3)密碼運算單元基于效率和性能的考慮,由兩顆專用密碼算法芯片組成,分別實現(xiàn) SM1 算法和 SM2 算法,另由邏輯器件實現(xiàn)哈希算法 SM3 和對稱分組密碼算法 SM4;(4)存儲單元由雙倍速率內(nèi)存(Double Data Rate synchronous Dynamic Random-access Memory,DDR SDRAM)和閃存(FLASH)組成,分別存儲密碼模塊運算過程中的數(shù)據(jù)和板載芯片的可執(zhí)行程序;(5)EFT 單元負(fù)責(zé)實現(xiàn) EFT 功能,由電壓和溫度兩部分組成,分別實現(xiàn)對電壓和溫度的感知和響應(yīng);(6)功能單元中,由開蓋銷毀裝置、按鍵銷毀按鈕實現(xiàn)緊急狀況下的關(guān)鍵安全參數(shù)置零功能,狀態(tài) LED 燈指示密碼模塊的實時狀態(tài),USBKey 接口供身份鑒別的 UKey 使用,另有多片物理噪聲源用于產(chǎn)生質(zhì)量合格的隨機數(shù)。
1.2 軟件架構(gòu)
設(shè)計密碼模塊處于主機應(yīng)用層之下,受應(yīng)用層各種安全應(yīng)用程序的調(diào)用。其軟件架構(gòu)由安全服務(wù)接口、設(shè)備驅(qū)動程序、嵌入式軟件3部分組成,如圖 2 所示。
圖 2 高安全等級密碼模塊軟件架構(gòu)
該軟件架構(gòu)中:安全服務(wù)接口提供密碼模塊的功能接口,由應(yīng)用程序直接調(diào)用;設(shè)備驅(qū)動程序為密碼模塊的宿主設(shè)備提供驅(qū)動能力;嵌入式軟件,運行于密碼模塊的主控單元,響應(yīng)和執(zhí)行應(yīng)用層的調(diào)用指令。
1.3 密鑰體系
密鑰是密碼模塊的核心資源,完善的密鑰管理體系是密碼模塊的核心功能。在高安全等級密碼模塊中,密鑰管理采用了技術(shù)合理、安全性高的 3 層密鑰結(jié)構(gòu)體制,如圖 3 所示。
圖 3 高安全等級密碼模塊密鑰體系
在分層密鑰保護體系中:保護密鑰位于最上層,主要用于加密保護其下層的用戶密鑰對和密鑰加密密鑰;用戶密鑰對和密鑰加密密鑰位于中間層,用戶密鑰對除用于非對稱密碼運算外,還作為保護密鑰保護其下層的對稱會話密鑰;密鑰加密密鑰主要用作保護密鑰,保護其下層的對稱會話密鑰,且會話密鑰處于層次化密鑰結(jié)構(gòu)中的最底層,是僅在一次會話中使用的對稱密鑰。不論何種密鑰,除公鑰外的所有密鑰都不能以明文形式存在于密碼卡外部。通過上述層層保護的原則,滿足了密鑰管理中的“分層結(jié)構(gòu),逐層保護”的安全原則。
2
物理安全性設(shè)計
高安全等級密碼模塊在研制時采用的物理安全設(shè)計要點如下文所述。
(1)選用經(jīng)過國密局認(rèn)證的對稱和橢圓曲線算法(Elliptic Curve Cryptography,ECC)專算芯片。該類芯片的抗攻擊能力高,能夠確保芯片內(nèi)部包括密鑰數(shù)據(jù)、算法代碼等敏感信息的安全。
(2)高安全等級密碼模塊將所有重要的元器件均放置在電路板的正面,并采用硬質(zhì)金屬材料的外殼對電路板正反兩面進行全包裹,防止外部的窺探,并防止外部通過探針進行測量。金屬外殼可采用鋁合金 6063,如圖 4 所示,在國家標(biāo)準(zhǔn) GB/ T 3190-2020《變形鋁及鋁合金化學(xué)成分》中規(guī)定其成分范圍,是 AL-Mg-Si 系中等強度的可熱處理強化合金,Mg 和 Si 是主要合金元素,其硬度為 95 HB,在抵御外部的撬、鉆、擊打等常規(guī)拆破行為中表現(xiàn)較好。
圖 4 硬質(zhì)金屬外殼
同時,該外殼內(nèi)部的四周設(shè)計有一圈金屬絲網(wǎng),如圖 5 所示。在外殼壓合時,可以緊緊貼合電路板,消除外殼與電路板之間的微小縫隙,在一定程度上有防止電磁干擾和抵御非入侵攻擊中電磁分析攻擊的作用。
圖 5 外殼內(nèi)層金屬絲網(wǎng)
(3)高安全等級密碼模塊在進行印制電路板(Printed Circuit Board,PCB)排版時,將重要的總線信號和專用算法芯片的數(shù)據(jù)信號設(shè)計在了印制版的里層,可有效防止外部將 PCB 表面涂層刮開直接使用探針探測電信號的行為。
(4)如圖 6 所示,高安全等級密碼模塊固定外殼的螺母采用私有的非標(biāo)設(shè)計,只有使用廠家特制的工具才能開啟,且在螺絲上方使用金屬薄片進行遮蓋,并在金屬薄片表面粘貼有拆卸存跡的全息封條,可以清楚地指示密碼模塊外殼是否曾被拆卸開啟過。
圖 6 高安全等級密碼模塊的私有非標(biāo)螺母
(5)高安全等級密碼模塊設(shè)計有拆卸響應(yīng)電路,主要由機械檢測電路和觸發(fā)通知電路兩部組成。機械檢測電路采用多單元并聯(lián)模式工作。為保證檢測拆卸動作的可靠性和準(zhǔn)確性,防止撬起某個部位逃避檢測的行為,在密碼模塊的 3 個角上設(shè)置了機械檢測電路,任意一點的檢測電路檢測到拆卸行為后均可以觸發(fā)通知電路工作。這 3 個點位分別檢測不同位置的金屬外殼上蓋與模塊印制版之間的垂直間距,可以快速地判斷上蓋的拆卸情況,并通過觸發(fā)通知電路向 CPU 發(fā)出報警信號,使其知曉應(yīng)該對未受保護的關(guān)鍵安全參數(shù)進行置零。拆卸響應(yīng)電路的設(shè)計原理如圖 7 所示。
圖 7 拆卸響應(yīng)電路設(shè)計原理
3
實體鑒別安全性設(shè)計
高安全等級密碼模塊在使用 UKey 進行身份認(rèn)證時,首先需要對 UKey 進行實體鑒別,以確認(rèn)插入的 Ukey 是與該密碼模塊一一對應(yīng)的實體,防止外部使用相同型號的 UKey 進行混淆和攻擊。在本密碼模塊的安全技術(shù)設(shè)計方案中,采用數(shù)字簽名技術(shù)規(guī)范要求中的兩次傳遞單向鑒別機制 。具體鑒別過程如圖 8 所示。
圖 8 基于數(shù)字簽名技術(shù)的兩次傳遞單相鑒別流程
(1)創(chuàng)建操作員時模塊調(diào)用身份認(rèn)證 UKey的智能密碼鑰匙密碼應(yīng)用接口規(guī)范(smart token cryptography application interface specification,SKF)[7] 接口產(chǎn)生非對稱密鑰對,私鑰保存于 UKey中,公鑰導(dǎo)出到模塊內(nèi)保存。(2)需要進行實體鑒別時,將操作員身份認(rèn)證 UKey 定為聲稱方 A,密碼模塊定為驗證方 B。(3)B 使用隨機數(shù)生成器產(chǎn)生 32 字節(jié)隨機數(shù)Rb,并調(diào)用 A 的接口將Rb送入 A 以備后續(xù)簽名使用,密鑰指定為第一步操作生成的私鑰。(4)A 收 到 Rb 后, 產(chǎn) 生 32 字 節(jié) 的 隨 機 數(shù)Ra,將 Ra 與 Rb 進行拼接,并進行一次 hash 運算,將 hash 運算的結(jié)果進行簽名,密鑰為第一步操作生成的私鑰。簽名完畢后,A 連同 Rb|Ra|sign(Rb|Ra) 一同送出給 B。(5)B 獲取 A 送出的簽名數(shù)據(jù)后,對隨機數(shù)Rb|Ra 進行 hash 運算,將得到的 hash 值使用第一步操作中獲得的公鑰對簽名數(shù)據(jù)進行驗簽操作,若驗簽通過,再比較數(shù)據(jù)中包含的隨機數(shù) Rb 是否等于之前產(chǎn)生的 Rb。(6)若上一步操作中的兩個操作均通過,則表明實體鑒別成功。
4
EFT 安全性設(shè)計
高安全等級密碼模塊具有 EFT 功能,包括檢測溫度和檢測電壓兩部分。具體檢測 4 種異常環(huán)境狀況:低溫、高溫、大負(fù)電壓、大正電壓。下面分別介紹溫度和電壓異常狀況下,EFT 的設(shè)計原理和生效機制。
4.1 異常溫度檢測
密碼模塊在關(guān)鍵器件如可編程邏輯器件、專用算法芯片等附近布置多片溫度傳感器,對密碼模塊內(nèi)部的環(huán)境溫度進行多點監(jiān)測。設(shè)置好密碼模塊的工作溫度區(qū)間,當(dāng)環(huán)境溫度不在該范圍內(nèi),則認(rèn)為環(huán)境失效,密碼模塊主動斷電。具體的工作原理是模塊上電后,處理器周期性地主動讀取各片溫度傳感器的溫度寄存器,以獲取它們附近環(huán)境的實際溫度。若任意一片溫度傳感器的溫度不在工作范圍內(nèi),則處理器做一次記錄。當(dāng)連續(xù)多次記錄到該現(xiàn)象時,表明環(huán)境溫度持續(xù)處于正常工作范圍之外,工作環(huán)境確實失效,此時處理器告知開關(guān)電路切斷密碼模塊的電源,以達(dá)到置零模塊內(nèi)未受保護的關(guān)鍵安全參數(shù)的目的。一旦開關(guān)電路切斷密碼模塊的電源,電源指示燈也會熄滅。溫度失效性檢測技術(shù)的設(shè)計原理如圖 9 所示。
圖 9 溫度失效性檢測原理
4.2 異常電壓檢測
PCI-E 接口的輸入電源分兩路:一路通過一個模數(shù)轉(zhuǎn)換器(Analog-Digital conversion,A/D)接入CPU;一路則接入開關(guān)電路,并通過開關(guān)電路對密碼模塊進行供電。設(shè)置好密碼模塊電壓的正常工作范圍后,CPU 周期性地對輸入的電壓進行檢測,若連續(xù)多次檢測到電壓處于正常范圍之外,則表明工作環(huán)境確實失效。此時,CPU 記錄好環(huán)境失效的日志后告知開關(guān)電路斷開電源供應(yīng),使得后端的電路掉電,以置零密碼模塊內(nèi)未受保護的關(guān)鍵安全參數(shù)。可通過觀察模塊的側(cè)面板上電源指示燈來確認(rèn)模塊的上、下電情況:當(dāng)模塊正常工作時,電源燈長亮;一旦電源管理模塊切斷密碼模塊的電源,電源指示燈會熄滅。電壓失效性檢測技術(shù)的設(shè)計原理如圖 10所示。
圖 10 電壓失效性檢測原理
5
非入侵式攻擊緩解技術(shù)
5.1 計時攻擊緩解技術(shù)
在算法層面,由于對稱密碼算法 SM4 沒有基于密鑰的分支運算,因此對稱算法對計時攻擊天然免疫,故無須針對上述算法做專門的計時攻擊防護設(shè)計。
針對 SM2 公鑰密碼算法,點乘計算采用安全點乘算法,能有效防御計時攻擊和簡單能量攻擊。安全點乘算法如下所示:
該方法一次掃描 1 位密鑰位,每次進行 1 次點加運算和 1 次倍點運算,可以實現(xiàn)任意相同長度的密鑰位運算都沒有時間區(qū)別。
5.2 能量分析攻擊緩解技術(shù)
針對 SM4 算法,采用掩碼技術(shù),通過隨機化密碼模塊所處理的中間值,使密碼模塊的能量消耗不依賴于此中間值,消除密碼設(shè)備能量消耗的數(shù)據(jù)相關(guān)性。采用如下文所述的思路進行操作。
引入隨機掩碼,實現(xiàn)全寄存器掩碼以及掩碼 S盒。例如一共生成 16 個各不相同的掩碼 S 盒,第一輪使用編號為 1~4 的掩碼 S 盒,第二輪使用編號為 5~8 的掩碼 S 盒,第三輪使用編號為 9~12 的掩碼 S 盒,第四輪使用編號為 13~16 的掩碼 S 盒,第五輪又重復(fù)使用編號為 1~4 的掩碼 S 盒,以此類推。這樣使 SM4 算法在加解密的每一個運算步驟均有掩碼參與,達(dá)到每一個運算步驟結(jié)果均與原算法無關(guān)的目的。
假設(shè)單個 S 盒的輸入為,輸出為
,則有
。假設(shè)掩碼為
,則查表變換輸入為
,輸出
。為了得到真實的輸出B,則需要生成一個對應(yīng)的 S 盒
,使得
。因此有
,生成算法:
標(biāo)準(zhǔn) SM2 數(shù)字簽名算法流程如圖 11 所示,在簽名過程中,設(shè)待簽名的消息為 M;它的數(shù)字簽名為 (r,s);簽名者 A 的公私鑰分別為是長度為 v 比特的密碼雜湊算法;G 為橢圓曲線的一個基點,其階為素數(shù)。
圖 11 標(biāo)準(zhǔn) SM2 簽名算法流程
目前,已有文獻(xiàn)提出了對 SM2 簽名算法的差分攻擊方法和錯誤攻擊方法。差分攻擊方法的攻擊點一般選在與用戶私鑰直接相關(guān)的地方,如模乘
處,已知簽名值 r,若了解芯片的模乘實現(xiàn)細(xì)節(jié)便可進行差分能量攻擊,逐比特攻破
。而錯誤攻擊的主要威脅來自弱曲線和基于格的錯誤攻擊,它們的攻擊點均在隨機數(shù) k 處,并通過獲得 k 值或k 值的局部信息來獲取密鑰。針對 SM2 算法特性,為抵御相關(guān)攻擊,采用安全點乘、大數(shù)模乘公式變換和掩碼技術(shù)。抗攻擊的優(yōu)化方案如下文所述。
步驟 1:原簽名流程的第三步為生成一組 256 bits隨機數(shù) k,應(yīng)保證每次加密過程中使用的隨機數(shù)都不相同,更新過程嚴(yán)格隨機化,避免隨機數(shù)間特殊更新情況出現(xiàn)。在此步驟后增加一個備份操作,使。
步驟 2:原簽名流程的第四步為,在此步驟后增加一個比較操作,若現(xiàn)在的隨機數(shù)k=k′,則繼續(xù)算法,若
,則退出算法。
步驟 3:將原簽名流程的第 6 步進行變換 :
步驟 4:另外,為了防止攻擊者在 k 備份之前便修改 k 值,或者在算法運行過程中跳過某一步直接進行下一步運算,可引入一個計數(shù)器,每一步驟后讓計數(shù)器自加 1,并判斷該計數(shù)器值是否為當(dāng)前步驟數(shù),若是則繼續(xù)運算,若不是則退出運算。 在本方案中,使用安全點乘法對條件分支語句進行了無差別處理,攻擊者不能通過直接觀察能量消耗曲線來獲取密鑰相關(guān)信息,從而達(dá)到抗簡單能量分析(Simple Power Analysis,SPA)攻擊的目的。在算法流程中增加一個 k 值備份操作,大大增加了對密鑰 k 的攻擊難度,從而達(dá)到抵抗針對弱曲線和基于格的錯誤攻擊的目的。在含有私鑰?的大數(shù)模乘和點乘處執(zhí)行步驟 3 所示的公式變換,變換后的計算步驟里不再含有易受攻擊的
,從而有效抵抗差分能量分析(Differential Power Analysis,DPA)的攻擊 。 5.3 電磁分析攻擊緩解技術(shù) 對于對稱密碼算法 SM4,高安全等級密碼模塊電磁分析防護方案的主要目的是增加噪聲,降低信噪比,同時采取掩碼技術(shù),增加電磁分析所需的電磁跡數(shù)目,使攻擊者在有限的計算資源下難以開展攻擊。此外,其設(shè)計方案與抗能量分析攻擊緩解技術(shù)相同。對于 SM2 算法,高安全等級密碼模塊對點乘運算每一步所執(zhí)行的操作相同,即對條件分支語句進行了無差別處理,攻擊者不能通過直接觀察電磁消耗曲線來獲取密鑰相關(guān)信息,從而達(dá)到抗 SPA 攻擊的目的。在含有私鑰?
?的大數(shù)模乘和點乘處增加一個加法掩碼,使各條電磁消耗曲線上此時刻的電磁消耗曲線隨機化,掩蓋了私鑰?
和電磁消耗曲線之間的相關(guān)性,使統(tǒng)計分析方法失效,從而有效抵抗 DPA 攻擊。 此外,為了盡可能地減少工作時向外部泄露的電磁輻射量,密碼模塊設(shè)計了電磁屏蔽性較好的全封閉金屬外殼,同時在金屬外殼的內(nèi)邊緣設(shè)計有金屬絲網(wǎng),進一步加強電磁輻射的屏蔽性。且該金屬外殼的結(jié)構(gòu)設(shè)計上無任何縫隙,使得外部探針無法進入密碼模塊的專算芯片或者邏輯器件附近直接進行電磁輻射探測。
6
結(jié) 語
本文介紹了高安全等級密碼模塊所必須滿足的安全要求,并闡述了針對這些要求所做的安全技術(shù)設(shè)計。這些有針對性的設(shè)計使得高安全等級密碼模塊自身的安全性得到了保證,并使得高安全等級模塊能夠滿足各類用戶的安全需求。相較于安全二級的模塊,高安全等級模塊可以更好地確保用戶在日常使用過程中的數(shù)據(jù)安全性和通信安全性,一旦出現(xiàn)安全威脅,能夠保護系統(tǒng)核心數(shù)據(jù)的安全,抵御對整個系統(tǒng)的入侵和破壞,因此可以提供更為安全的密碼服務(wù)。
引用本文:周健 , 秦放 . 安全等級密碼模塊安全技術(shù)設(shè)計 [J]. 通信技術(shù) ,2022,55(2):247-253.
作者簡介 >>>
周? 健,男,碩士,工程師,主要研究方向為嵌入式系統(tǒng)設(shè)計、保密通信、商用密碼模塊應(yīng)用設(shè)計; 秦? 放, 男, 碩 士, 高 級工程師,主要研究方向為嵌入式系統(tǒng)設(shè)計、信號處理、密碼算法優(yōu)化。
編輯:黃飛
?
評論