密碼模塊的非入侵式攻擊檢測
從標準到案例:密碼模塊的非入侵式攻擊檢測(一)
在網絡空間安全研究領域中,基于密碼學原理的安全解決方案能夠為信息系統提供各種必要的安全保障。然而,很多實際案例表明在信息系統中完善地實施密碼技術并不是一件輕而易舉的事。為了確保能夠安全有效地實現密碼算法功能,對密碼模塊制定技術標準和對實際產品進行檢測是十分必要的。因此,我國先后發布《GM/T 0008-2012 安全芯片密碼檢測準則》、《GB/T 37092-2018 信息安全技術 密碼模塊安全要求》等標準,為密碼模塊的發展筑牢安全的基礎。
本公眾號將用三篇文章,由淺入深地介紹密碼模塊非入侵式攻擊緩解技術。首先根據GM/T 0008及GB/T 37092的相關定義給出密碼模塊、密碼模塊安全等級及其典型應用場景的介紹;然后根據《ISO/IEC 17825-2016 信息技術 安全技術 緩解非侵入性攻擊類對加密模塊的測試方法》和《GMT 0083-2020 密碼模塊非入侵式攻擊緩解技術指南》給出非入侵式攻擊檢測的具體方法及其測試指標;最后給出某些型號智能卡在MathMagic Detector上的實際測評案例。
密碼模塊及其安全等級
密碼模塊
商用密碼產品按照形態可以劃分為軟件、芯片、模塊、板卡、整機和系統六類。通俗地講,模塊是指將單一芯片或多芯片組裝在同一塊電路板上,具備專用密碼功能的產品,如加解密模塊、安全控制模塊。根據《GB/T 37092-2018 信息安全技術 密碼模塊安全要求》,密碼模塊應當是硬件、軟件、固件或者其中組合的集合,該集合至少使用一個核準的密碼算法、安全功能或過程實現一項密碼服務,并且包含在明確的密碼邊界(承擔密碼相關功能的軟件、硬件、固件的組合,包括實現算法、實現密碼功能、實現密碼安全協議、實現密鑰管理的相關組成)內。

圖1 密碼產品及密碼模塊示例
因此,密碼模塊的構成可以表示為如圖2所示內容。

圖2 密碼模塊構成
總之,除了芯片外的不好定義的安全產品都可以被稱之為模塊。比如,對于使用了TEE和SE的產品,對于驅動、SE芯片及其運行庫可以定義為一個硬件模塊,其中的TEE OS及其相關軟件可以定義為一個固件模塊,運行在可信操作環境上的可信應用TA也可以作為一個固件模塊。
那么,哪些產品可以進行認證呢?一般來說,除了密碼芯片和密碼系統之外的所有密碼產品類型,包括密碼卡類、密碼機類、智能密碼鑰匙類、智能卡類,以及軟件或固件形態的密碼產品(例如獨立運行的應用程序、軟件庫)等都可以進行安全認證。
高安全等級密碼模塊設計架構
高安全等級密碼模塊的硬件架構,以高速串行擴展總線接口密碼模塊為例,由主控單元、PCI-E總線接口單元、密碼運算單元、存儲單元、環境失效檢測單元、功能單元組成,如圖3所示[1]。

圖3 高安全等級密碼模塊硬件架構
設計密碼模塊處于主機應用層之下,受應用層各種安全應用程序的調用。高安全等級密碼模塊的軟件架構如圖4所示,由安全服務接口、設備驅動程序、嵌入式軟件三部分組成。其中,安全服務接口提供密碼模塊的功能接口,由應用程序直接調用;設備驅動程序為密碼模塊的宿主設備提供驅動能力;嵌入式軟件,運行于密碼模塊的主控單元,響應和執行應用層的調用指令。

圖4 高安全等級密碼模塊軟件架構
高安全等級密碼模塊密鑰體系
密鑰是密碼模塊的核心資源,完善的密鑰管理體系是密碼模塊的核心功能。在高安全等級密碼模塊中,密鑰管理采用了技術合理、安全性高的三層密鑰結構體制,如圖5所示。在分層密鑰保護體系中:保護密鑰位于最上層,主要用于加密保護其下層的用戶密鑰對和密鑰加密密鑰;用戶密鑰對和密鑰加密密鑰位于中間層,用戶密鑰對除用于非對稱密碼運算外,還作為保護密鑰保護其下層的對稱會話密鑰;密鑰加密密鑰主要用作保護密鑰,保護其下層的對稱會話密鑰;會話密鑰處于層次化密鑰結構中的最底層,是僅在一次會話中使用的對稱密鑰。不論何種密鑰,除公鑰外的所有密鑰都不能以明文形式存在于密碼卡外部[1]。通過上述層層保護的結構,滿足了密鑰管理中的“分層結構,逐層保護”的安全原則。

圖5 高安全等級密碼模塊密鑰體系
GB/T 37092中的密碼模塊安全等級
- 安全一級
- 安全一級提供了最低等級的安全要求,對非入侵式攻擊測試沒有要求。
- 安全二級
- 安全二級在安全一級的基礎上增加了拆卸證據的要求,例如使用拆卸存跡的涂層或封條。或者在封蓋或門上加防撬鎖等手段以提供拆卸證據;要求基于角色的鑒別;要求軟件密碼模塊可以運行在可修改的環境中;對非入侵式攻擊測試沒有強制要求。
- 安全三級
- 安全三級要求更強的物理安全機制以進一步防止對密碼模塊內敏感安全參數的非授權訪問;要求基于身份的鑒別機制;要求手動建立的明文關鍵安全參數是經過加密的、使用可信信道或使用知識拆分來輸入或輸出;要求有效防止電壓、溫度超出模塊正常運行范圍對密碼模塊安全性的破壞;要求包含生命保障周期;要求提供非入侵式攻擊緩解技術的有效證據和測試方法。對于軟件密碼模塊,能夠達到的最大整體安全等級限定為安全二級。
- 安全四級
- 安全四級是本標準中的最高安全等級。該等級包括較低等級中所有的安全特性,以及一些擴展特性。安全四級的物理安全機制應當在密碼模塊周圍提供完整的封套保護;要求對操作員進行多因素鑒別;要求有效防止電壓、溫度超出模塊正常運行范圍對密碼模塊安全性的破壞;要求按照國家部門規定的、安全四級的非入侵式攻擊緩解測試指標,測試密碼模塊中針對非入侵式攻擊的緩解辦法。
- 由以上內容可知,密碼產品要通過高等級的安全認證,非入侵式攻擊緩解測試是必要的。
密碼模塊產品形態及安全等級設定
典型應用場景中,密碼模塊產品形態及安全等級的選用需要符合一定規則,國家密碼管理局提供的參考圖表如下所示。

總結
本文主要介紹了密碼模塊及其安全等級。首先,我們學習了可以由硬件模塊、軟件模塊、固件模塊、混合軟件模塊及混合固件模塊構成的密碼模塊的相關定義;然后,了解了高安全等級密碼模塊的硬件設計架構和軟件設計架構,及密碼模塊的核心功能——完善的密鑰管理體系;之后,閱讀了GB/T 37092中定義的密碼模塊的四個安全等級,從而得知,安全一級和安全二級對非入侵式攻擊測試沒有要求,安全三級和安全四級均對非入侵式攻擊測試有著不同的具體要求;最后,根據國家密碼管理局提供的參考圖表,我們掌握了密碼模塊產品形態及安全等級選用規則。
今天我們的收獲是:非入侵式攻擊測試對于密碼產品通過高等級安全認證是必要的。那么什么是非入侵式攻擊測試,以及具體的測試方法是怎樣的,本公眾號10月11日的文章將展開更加詳細的介紹。