6.10 自測試
6.10.1 自測試通用要求
6.10.1.1 檢測目的
自測試通用要求檢測包括13個測評單元,檢測送檢的密碼模塊是否滿足 GB/T 37092-2018 規定的運行前自測試和條件自測試通用要求,以及自測試文檔是否按照 GB/T 37092-2018 規定的要求編寫。
6.10.1.2 測評單元[10.01]
安全要求:
所有自測試都應被執行。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。
6.10.1.3 測評單元[10.02]
安全要求:
(接安全要求[10.01])自測試的通過或失敗應取決于密碼模塊自身,無論密碼模塊運行于核準模式還是非核準模式,都不依賴外部控制、外部提供的輸入文本向量、預期的輸出結果,和操作員的干預。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。
6.10.1.4 測評單元[10.03]
安全要求:
運行前自測試應在密碼模塊提供任何數據輸出(通過數據輸出接口)之前被執行,并成功通過。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.14]的一部分進行檢測。
6.10.1.5 測評單元[10.04]
安全要求:
條件自測試應在相應的安全功能或過程被調用時執行。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
a)本條款作為測評單元[10.24]的一部分進行檢測。
b)除了該標準中規定的測試,密碼模塊也可以執行其他運行前或關鍵功能條件自測試。
6.10.1.6 測評單元[10.05]
安全要求:
密碼模塊應對其實現的GB/T37092-2018附錄C、附錄D、附錄E中的密碼算法,執行對應的自測試。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.25]的一部分進行檢測。
6.10.1.7 測評單元[10.06]
安全要求:
如果密碼模塊自測試失敗,密碼模塊應進入錯誤狀態。
送檢材料要求:
針對每一項錯誤狀態,送檢文檔應提供狀態名稱和狀態描述,并列舉狀態的引發事件和可清除該狀態并恢復正常運行的操作。
檢測程序要求:
a)檢測人員應確認送檢文檔的自測試列表中包括:
1)運行前自測試:
– 運行前軟件/固件完整性測試;
– 運行前旁路測試;
– 運行前關鍵功能測試。
2)條件自測試:
– 條件密碼算法測試;
– 條件成對一致性測試;
– 條件軟件/固件加載測試;
– 條件手動輸入測試;
– 條件旁路測試;
– 條件關鍵功能測試。
b)針對每一項錯誤狀態,檢測人員應檢查送檢文檔詳細說明了上述信息。
c)檢測人員應引發每一個錯誤狀態,并試圖清除錯誤狀態。檢測人員應核實清除錯誤狀態的必要操作與文檔說明一致。如果檢測人員不能引發所有的錯誤狀態,則應檢查代碼列表和設計
d)檢測人員應核實無論運行于核準的工作模式還是非核準的工作模式,密碼模塊都完成了所有自測試。
e)檢測人員應通過檢查和文檔審查來確認自測試的通過或失敗是由模塊自身決定,沒有外部控制、外部提供的輸入文本向量、預期的輸出結果、或操作員的干預。
6.10.1.8 測評單元[10.07]
安全要求:
(接安全要求[10.06])并且應按照GB/T37092-2018中7.3.3的規定,輸出一個錯誤指示。
送檢材料要求:
送檢文檔應記錄每一項自測試對應的錯誤狀態,并表明該錯誤狀態對應的錯誤指示。
檢測程序要求:
a)檢測人員應核實送檢文檔列舉了模塊自測試失敗后進入的所有錯誤狀態,并明確各錯誤狀態對應的錯誤指示。檢測人員應將該錯誤狀態列表與有限狀態模型中定義的狀態(參考安全要
b)檢測人員應通過審核文檔中對各自測試處理錯誤的方式說明,確認以下項目:
– 自測試失敗后模塊進入錯誤狀態;
– 錯誤狀態與文檔及有限狀態模型一致;
– 模塊輸出一個錯誤指示;
– 錯誤指示與文檔所描述的一致。
c)檢測人員應運行每一個自測試,使模塊進入每一個錯誤狀態。檢測人員應比較觀察到的錯誤指示是否與文檔描述的一致,如果不一致,視為不通過檢測。
6.10.1.9 測評單元[10.08]
安全要求:
在錯誤狀態下,密碼模塊不應執行任何密碼操作,或通過控制、數據輸出接口輸出控制和數據。
送檢材料要求:
送檢文檔應滿足送檢材料要求[03.07]a)、送檢材料要求[03.07]b)、送檢材料要求[03.10]a)和送檢材料要求[03.10]b)的要求。送檢廠商的設計應保證密碼模塊在錯誤狀態下不能執行密碼操作。
檢測程序要求:
a)檢測人員應核實當密碼模塊自測試失敗時,模塊是否按照 GB/T 37092-2018 中7.3.3的規定,輸出了一個錯誤指示。
b)檢測人員應按檢測程序要求[03.07]a)、檢測程序要求[03.07]b)、檢測程序要求[03.10]a)和檢測程序要求[03.10]b)的要求進行檢測,檢測結果應表明:
1)送檢文檔應表明在任何情況下,當處于錯誤狀態時,密碼模塊禁止通過控制和數據輸出接口輸出控制和數據;
2)當處于錯誤狀態時,密碼模塊禁止輸出任何控制和數據。
6.10.1.10 測評單元[10.09]
安全要求:
密碼模塊不應使用自測試失敗的功能和算法,直至它們重新通過測試。
送檢材料要求:
送檢文檔應說明密碼模塊不能使用自測試失敗的功能和算法,直至它們重新被測試并成功通過。
檢測程序要求:
a)檢測人員應對某一個自測試失敗的功能或算法引入錯誤,并激活一項需要調用該功能或算法的操作,確認模塊不能執行該操作。
b)檢測人員應運行每一項自測試,并使模塊進入錯誤狀態或降級工作模式。檢測人員應運行密碼模塊,確認模塊不能夠使用自測試失敗的功能和算法直至它們重新被測試并成功通過。
6.10.1.11 測評單元[10.10]
安全要求:
如果密碼模塊自測試失敗時密碼模塊不輸出錯誤狀態,密碼模塊操作員應能夠根據在安全策略(GB/T 37092-2018 的附錄B)中闡明的過程,判斷該密碼模塊是否已經進入了錯誤狀態。
送檢材料要求:
如果模塊自測試失敗時模塊不輸出錯誤狀態,送檢廠商應提供非私有的安全策略用以判斷該模塊是否已經進入了錯誤狀態。
檢測程序要求:
檢測人員應運行每一項自測試,并使模塊進入錯誤狀態,確認模塊可按照非私有的安全策略來判斷是否進入了某一錯誤狀態。
6.10.1.12 測評單元[10.11]
安全要求:
在安全三級和四級中,密碼模塊應維護錯誤日志,密碼模塊的授權管理員可以訪問該日志。
送檢材料要求:
送檢文檔應具體說明模塊的錯誤日志功能,包括日志中記錄的信息類型(例如失敗的自測試和錯誤的發生時間)。
檢測程序要求:
a)檢測人員應通過文檔審查核實非授權的管理員不能訪問錯誤日志。
b)檢測人員應通過文檔審查確認錯誤日志至少提供了最近的錯誤事件。
c)檢測人員應使密碼模塊進入一個錯誤狀態,確認模塊至少會產生最近錯誤事件的日志。
d)檢測人員應以一個密碼模塊不支持的鑒別角色訪問錯誤日志。如果訪問成功,則該項檢測失敗。
e)檢測人員應運行密碼模塊,并確認錯誤日志不能被非授權修改或替換。
6.10.1.13 測評單元[10.12]
安全要求:
(接安全要求[10.11])該錯誤日志應至少提供最近的錯誤事件(例如,自測試失敗)。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條在測評單元[10.11]中進行檢測。
6.10.1.14 測評單元[10.13]
安全要求:
密碼模塊自測試文檔應按照 GB/T 37092-2018 中 A.2.10 規定的要求編寫。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[A.01]的一部分進行檢測。
6.10.2 運行前自測試
6.10.2.1 運行前自測試通用要求
6.10.2.1.1 檢測目的
運行前自測試通用要求檢測包括2個測評單元,檢測密碼模塊運行前測試的項目是否包括運行前軟件/固件完整性測試、運行前旁路測試和運行前關鍵功能測試。
6.10.2.1.2 測評單元[10.14]
安全要求:
運行前自測試應被密碼模塊執行并成功通過。
送檢材料要求:
a)送檢文檔應提供每一項運行前自測試的信息。
b)送檢文檔應說明在密碼模塊上電或實例化之后至模塊轉入到操作狀態之前的這段時間內執行運行前自測試的順序。
檢測程序要求:
a)檢測人員應確認送檢文檔具體說明了每一項運行前自測試。檢測人員應核實每一項運行前自測試是否與文檔說明一致。
b)通過檢查代碼和/或設計文檔,檢測人員應核實每項運行前自測試是否在加密模塊上電或實例化之間以及模塊轉換到運行狀態之前成功執行和通過。
6.10.2.1.3 測評單元[10.15]
安全要求:
密碼模塊應執行下列運行前測試:
– 運行前軟件/固件完整性測試;
– 運行前旁路測試;
– 運行前關鍵功能測試。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.17]~測評單元[10.24]的一部分進行檢測。
6.10.2.2 運行前軟件/固件完整性測試
6.10.2.2.1 檢測目的
運行前軟件/固件完整性測試檢測包括4個測評單元,檢測密碼邊界內的所有軟件和固件部件是否使用核準的完整性技術進行驗證,以及該技術所使用的密碼算法是否通過了密碼算法條件自測試。
6.10.2.2.2 測評單元[10.16]
安全要求:
密碼邊界內的所有軟件和固件部件都應使用核準的完整性技術進行驗證,并滿足 GB/T 37092-2018 中7.5定義的要求。
送檢材料要求:
檢測程序要求:
a)送檢文檔應描述密碼邊界內所有軟件和固件部件的完整性驗證所使用的核準的技術。
b)送檢文檔應說明核準的完整性技術是由密碼模塊本身實現的,還是由運行在核準的工作模式的另一個有效密碼模塊實現的。
c)送檢文檔應描述實現完整性技術的實施機制。
d)送檢文檔應按照送檢材料要求[02.20]b)的要求提供該核準的完整性技術的確認證書。
a)檢測人員應確定送檢廠商按照送檢材料要求[02.20]b)的要求提供了核準的完整性技術的確認證書。
b)如果密碼模塊采用哈希或MAC進行軟件/固件的完整性測試, 檢測人員應確認該測試文檔詳細地描述了哈希或MAC的計算和驗證過程。
c)如果模塊采用核準的數字簽名進行軟件/固件的完整性測試,檢測人員應確認該測試文檔包含以下內容:
1)該核準的數字簽名算法的詳細說明;
2)鑒定哪些受保護的軟件和固件采用了核準的數字簽名;
3)確認軟件/固件內置的核準的數字簽名的預計算值;
4)確認該核準的數字簽名;
5)如核準的數字簽名認證失敗,則這項自測試失敗。
d)如果模塊采用了核準的完整性驗證技術,檢測人員則應通過代碼和/或設計文檔審查,確認軟件/固件的完整性驗證與檢測程序要求[10.16]a)、檢測程序要求[10.16]b)、檢測程序要求[10.16]c)相符。
e)如果該核準的完整性驗證技術是由另一個有效模塊提供的,檢測人員應確認軟件/固件完整性測試的通過與否是由安全要求[10.01]決定的。
f)檢測人員應修改密碼軟件和固件部件,如果模塊的完整性機制未檢測到該修改,則此項檢測未通過。
6.10.2.2.3 測評單元[10.17]
安全要求:
(接安全要求[10.16])如果驗證失敗,運行前軟件/固件完整性測試應失敗。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。
6.10.2.2.4 測評單元[10.18]
安全要求:
如果硬件密碼模塊不包含軟件或固件,密碼模塊應至少實現一個 GB/T 37092-2018 中 7.10.3.2 規定的密碼算法條件自測試作為運行前自測試。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。
6.10.2.2.5 測評單元[10.19]
安全要求:
用于運行前軟件/固件測試的核準的完整性技術所使用的密碼算法應先通過 GB/T 37092-2018 中 7.10.3.2 規定的密碼算法條件自測試。
送檢材料要求:
送檢文檔應滿足送檢材料要求[10.14]b)的要求。
檢測程序要求:
檢測人員應通過代碼和設計文檔審查,確認用于運行前軟件/固件測試的核準的完整性技術所使用的密碼算法已先通過自測試。
6.10.2.3 運行前旁路測試
6.10.2.3.1 檢測目的
運行前旁路測試檢測包括2個測評單元,檢測密碼模塊管理旁路能力的邏輯是否正確。
6.10.2.3.2 測評單元[10.20]
安全要求:
如果密碼模塊實現了旁路能力,那么密碼模塊應確保管理旁路能力的邏輯是正確的。
送檢材料要求:
送檢文檔應說明密碼模塊是如何確保管理旁路能力的邏輯是正確的。
檢測程序要求:
a)檢測人員應通過文檔審查和模塊檢查,確認管理旁路能力的邏輯與文檔描述一致。
b)檢測人員應通過文檔審查和檢查,確認運行前旁路測試實現了管理旁路能力的邏輯。
c)檢測人員應引入運行前旁路測試的各種錯誤狀態,確認是按照檢測程序要求[03.07]a)檢測程序要求[03.07]e)和檢測程序要求[03.10]a)檢測程序要求[03.10]e)的要求實現了禁止輸出。
d)檢測人員應執行運行前旁路測試,確認按照檢測程序要求[10.10]a)和檢測程序要求[10.10]b)的要求,任何依賴于管理旁路邏輯的功能都無法被應用。
6.10.2.3.3 測評單元[10.21]
安全要求:
密碼模塊應通過以下方法驗證數據路徑:
– 將旁路開關設置在加密位置,驗證通過旁路機制傳輸的數據是經過加密的。
– 將旁路開關設置在非加密位置,驗證通過旁路機制傳輸的數據是沒有經過加密的。
送檢材料要求:
a)送檢廠商提供的文檔中應描述運行前旁路測試的說明。
b)送檢文檔應說明如何將旁路開關設置在加密位置。
c)送檢文檔應描述旁路機制是如何通過將旁路開關設置在加密位置來實現加密數據通過數據路徑傳輸的。
d)送檢文檔應說明如何將旁路開關設置在非加密位置。
e)送檢文檔應描述旁路機制是如何通過將旁路開關設置在非加密位置來實現非加密數據通過數據路徑傳輸的。
檢測程序要求:
a)檢測人員應通過檢查確認將旁路開關設置在加密位置時,模塊將不實現旁路能力。
b)檢測人員應通過代碼和/或設計文檔審查,確認旁路機制的實現與送檢文檔一致。
c)檢測人員應通過代碼和/或設計文檔審查,確認模塊在執行運行前旁路測試時,如果旁路開關設置在加密位置,經過旁路路徑傳輸的數據是經過加密的。
d)檢測人員應通過檢查確認模塊實現了旁路能力,能夠將旁路開關設置在加密位置和非加密位置。
e)檢測人員應通過代碼和設計文檔審查,確認模塊在執行運行前旁路測試時,如果旁路開關設置在非加密位置,經過旁路路徑傳輸的數據是沒有經過加密的。
6.10.2.4 運行前關鍵功能測試
6.10.2.4.1 檢測目的
運行前關鍵功能測試檢測包括2個測評單元,檢測關系到密碼模塊安全運行的其他關鍵安全功能是否在運行前進行測試。
6.10.2.4.2 測評單元[10.22]
安全要求:
其他一些關系到密碼模塊安全運行的重要安全功能應在運行前進行測試。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.23]的一部分進行檢測。
6.10.2.4.3 測評單元[10.23]
安全要求:
密碼模塊文檔應闡明需要在運行前進行測試的關鍵功能。
注:關鍵功能定義為在失敗時可能導致關鍵安全參數泄露。關鍵功能的示例包括但不限于隨機數生成和密碼算法運算。
送檢材料要求:
送檢文檔應提供所有重要安全功能的說明材料。針對每一項重要安全功能,送檢廠商應指出:
1)重要安全功能的目的;
2)重要安全功能對應哪一項運行前重要安全功能測試;
3)重要安全功能對應哪一項條件自測試。
檢測程序要求:
a)檢測人員應確認送檢廠商提供了所有重要安全功能以及檢測這些重要安全功能的自測試文檔。文檔應包括如下信息:
1)所有重要安全功能的描述和確認;
2)對每一項重要安全功能,至少確認一項自測試。
b)通過代碼和設計文檔審查,檢測人員應確認模塊實現了每一項重要安全功能的指定自測試。
6.10.3 條件自測試
6.10.3.1 條件自測試通用要求
6.10.3.1.1 檢測目的
條件自測試通用要求檢測包括1個測評單元,檢測送檢的密碼模塊是否包含條件自測試。
6.10.3.1.2 測評單元[10.24]
安全要求:
在下列測試規定的條件出現時,密碼模塊應執行對應的測試:密碼算法自測試、配對一致性測試、軟件/固件加載測試、手動輸入測試、旁路測試、關鍵功能測試以及周期自測試。
送檢材料要求:
送檢文檔應包括條件自測試的相關信息。
檢測程序要求:
a)檢測人員應核實送檢文檔包括了條件自測試的相關信息。
b)檢測人員應核實模塊實現的條件自測試與文檔說明一致。
6.10.3.2 密碼算法條件自測試
6.10.3.2.1 檢測目的
密碼算法條件自測試檢測包括9個測評單元,檢測密碼算法在第一次運行使用之前是否執行了密碼算法條件自測試,以及采用的自測試方法是否有效。
6.10.3.2.2 測評單元[10.25]
安全要求:
密碼算法條件自測試:應針對密碼模塊實現的每個核準的密碼算法的所有密碼功能(例如,安全功能、敏感安全參數建立方法、鑒別)進行密碼算法測試。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.26]的一部分進行檢測。
6.10.3.2.3 測評單元[10.26]
安全要求:
(接安全要求[10.25])在密碼算法第一次運行使用之前,應執行該條件測試。
送檢材料要求:
a)送檢文檔應包括密碼算法條件自測試的詳細說明。
b)送檢文檔應提供原理說明如何在密碼算法第一次運行使用之前進行密碼算法條件自測試的。
c)送檢文檔應具體說明是否針對模塊的密碼算法使用了已知答案測試或對比測試。如果采用了對比測試,送檢文檔應明確指出。
檢測程序要求:
檢測人員應通過模塊檢查或文檔審查確認模塊在密碼算法第一次運行使用之前進行了密碼算法條件自測試。
6.10.3.2.4 測評單元[10.27]
安全要求:
如果計算輸出不等于已知答案,密碼算法已知答案自測試應失敗。
送檢材料要求:
a)送檢文檔應詳細說明用于比較計算輸出與已知答案的方法。
b)送檢文檔應展示以下轉變過程:當計算輸出與已知答案不一致時,模塊應進入錯誤狀態并輸出錯誤指示。
檢測程序要求:
a)檢測人員應核實送檢文檔與密碼模塊的實現一致。
b)該項檢測應滿足檢測程序要求[10.06]b)、檢測程序要求[10.07]a)、檢測程序要求[10.07]b)和檢測程序要求[10.07]c)的要求。
6.10.3.2.5 測評單元[10.28]
安全要求:
算法自測試應至少針對密碼模塊支持的最小核準密鑰長度、模數長度、素數或曲線等進行測試。
送檢材料要求:
送檢文檔應詳細說明模塊采用的每一個密碼算法條件自測試。
檢測程序要求:
檢測人員應通過檢查和文檔審查,確認每一項算法自測試至少針對模塊支持的最小核準的密鑰長度、模數、素數或曲線等進行測試。
6.10.3.2.6 測評單元[10.29]
安全要求:
如果算法規定了多個模式(例如, ECB、CBC等) , 自測試應至少選擇其中一個模式, 而且這個模式是受密碼模塊支持的或確認機構規定的。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.28]的一部分進行檢測。
6.10.3.2.7 測評單元[10.30]
安全要求:
已知答案測試的例子:單向的功能:輸入測試向量生成的輸出應與預期的輸出[例如,雜湊、帶密鑰的雜湊、消息鑒別、隨機數生成器(確定的熵向量)、敏感安全參數協商]相等。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.27]的一部分進行檢測。
6.10.3.2.8 測評單元[10.31]
安全要求:
已知答案測試的例子:可逆的功能:正向和反向功能都應通過自測試(例如,對稱密鑰的加解密、敏感安全參數傳輸的加解密、數字簽名的產生和驗證)。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.27]的一部分進行檢測。
6.10.3.2.9 測評單元[10.32]
安全要求:
對比測試將兩個或多個獨立的密碼算法實現的輸出進行對比,如果輸出不相等,則密碼算法對比自測試應失敗。
送檢材料要求:
a)送檢文檔應描述密碼算法對比自測試的實施方法。
b)送檢文檔應滿足送檢材料要求[10.27]c)的要求。
檢測程序要求:
a)檢測人員應確認對比測試的文檔包含以下內容:
1)采用了兩種或以上獨立的密碼算法實現;
2)持續不斷地對比密碼算法輸出;
3)當兩者輸出不相等時,模塊能夠進入錯誤狀態并給出錯誤指示。
6.10.3.2.10 測評單元[10.33]
安全要求:
錯誤檢測測試利用集成在密碼算法實現中的錯誤檢測機制進行算法自測試,如果檢測到錯誤,則密碼算法錯誤檢測測試應失敗。
送檢材料要求:
送檢文檔應說明錯誤檢測是對模塊的密碼算法采用已知答案測試還是比較測試。
檢測程序要求:
檢測人員應核實送檢文檔列出了以下內容:
1)描述了密碼算法的每個錯誤條件;
2)詳細描述了每個錯誤條件的指示器;
3)所有可能的錯誤條件均進行了自測試。
6.10.3.3 配對一致性條件測試
6.10.3.3.1 檢測目的
配對一致性條件測試檢測包括1個測評單元,檢測密碼模塊生成公私鑰對后是否執行了配對一致性條件測試。
6.10.3.3.2 測評單元[10.34]
安全要求:
如果一個密碼模塊生成公私鑰對,配對一致性條件測試應對每對生成的公鑰和私鑰(由 GB/T 37092-2018 的附錄C、附錄D、附錄E規定的適用的密碼算法生成)執行。
送檢材料要求:
a)如果密鑰傳輸或非對稱算法使用公私鑰對,則送檢文檔應描述公私鑰對的一致性測試。該測試的步驟之一是用公鑰對明文值或編碼信息進行加密。所得的密文結果應與原明文值進行比較以驗證二者的不同:
– 如二者相等,則密碼模塊應進入錯誤狀態并通過狀態接口輸出錯誤指示;
– 如二者不等,則應使用私鑰解密該密文,如果解密的結果與原明文不等,則公私鑰對一致性測試不通過。
b)如果非對稱密鑰對僅用于數字簽名的計算和/或驗證,則送檢文檔應詳細說明密碼模塊是通過數字簽名的計算和驗證來進行公私鑰對一致性測試。如果該數字簽名不能得以驗證,則公私鑰對一致性測試不通過。
c)如果公私鑰對用于實現敏感安全參數協議,則送檢文檔應描述公私鑰對一致性測試。文檔應指明敏感安全參數協議的必要算法。該測試的步驟之一是通過運行密鑰對必要的算法實現,檢查其是否通過公私鑰對一致性測試。
檢測程序要求:
a)如果密鑰傳輸或非對稱算法使用公私鑰對,則檢測人員應通過代碼和/或設計文檔審查,并根據送檢材料要求[10.34]a)的相關規定,確認公私鑰對的一致性測試與送檢文檔是相符。
b)如果非對稱密鑰對僅用于數字簽名的計算和驗證,則檢測人員應通過代碼和/或設計文檔審查,并根據送檢材料要求[10.34]b)的相關規定,確認公私鑰對的一致性測試與送檢文檔是相符的。
c)如果公私鑰對用于實現敏感安全參數協議,則檢測人員應通過代碼和/或設計文檔審查,并根據送檢材料要求[10.34]c)的相關規定,確認公私鑰對的一致性測試與送檢文檔是相符的。
6.10.3.4 軟件/固件加載條件測試
6.10.3.4.1 檢測目的
軟件/固件加載條件測試檢測包括6個測評單元,檢測密碼模塊從外部加載軟件或固件是否執行了條件測試。
6.10.3.4.2 測評單元[10.35]
安全要求:
如果密碼模塊可以從外部加載軟件或固件,那么除了GB/T37092-2018中7.4.3.4規定的要求,還應執行下列要求(安全要求[10.36]~安全要求[10.40])。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條在測評單元[10.36]~測評單元[10.40]中進行檢測。
6.10.3.4.3 測評單元[10.36]
安全要求:
密碼模塊應實現核準的鑒別技術以驗證加載軟件或固件是經過確認的。
送檢材料要求:
a)送檢文檔應描述密碼模塊為驗證加載軟件或固件完整性而實現的核準的鑒別技術。
b)如果模塊實現了核準的鑒別技術,送檢廠商應按照送檢材料要求[02.20]b)的要求提供相關的有確認證書。
c)送檢文檔應描述在軟件/固件加載之前,如何將核準的鑒別技術所需的鑒別密鑰獨立地加載到模塊中的。
d)如果軟件/固件加載測試失敗,則加載的軟件/固件不可使用,送檢文檔應描述這一實現機制。
檢測程序要求:
a)檢測人員應通過文檔審查確定軟件/固件加載測試采用了哪些核準的鑒別技術。
b)檢測人員應確認針對模塊實現的核準的鑒別技術,送檢廠商提供了滿足送檢材料要求[02.20]b)要求的確認證書。
c)如果模塊在軟件/固件的加載測試中采用了核準的鑒別技術,那么檢測人員應確認送檢文檔包含以下內容:
1)所采用的核準的鑒別技術的具體說明;
2)采用該核準的鑒別技術的軟件和固件;
3)當軟件和固件加載完成后,所采用的核準的鑒別技術的計算;
4)當加載測試啟動后,所采用核準的鑒別技術的驗證;
5)如果核準的鑒別技術認證失敗,則該項自測試失敗。
d)檢測人員應通過代碼和/或設計文檔審查,確認軟件/固件的加載測試與檢測程序要求[10.36]a)、檢測程序要求[10.36]b)和檢測程序要求[10.36]c)一致。
e)檢測人員應通過修改加載的軟件或固件或實施認證機制,啟動自測試,并從狀態輸出接口觀察輸出指示來測試模塊。如果未檢測到軟件/固件加載測試不通過的輸出指示,則該項檢測不通過。如果檢測人員不能修改加載的軟件或固件或實施認證機制,則送檢廠商應為檢測人員提供合理的解釋,以說明該測試不能通過的原因。
f)檢測人員應運行密碼模塊,修改加載的軟件、固件或參考的鑒別簽名或實施認證機制,然后啟動軟件/固件加載測試。在自測試失敗后,檢測人員應確認加載的軟件或固件不可使用,且模塊的版本信息未改變。
g)檢測人員應通過代碼和/或設計文檔審查,確認參考的鑒別簽名的加載與軟件/固件的加載是互相獨立的。
h)檢測人員應通過代碼和/或設計文檔審查,確認如果沒有在軟件/固件加載之前加載參考的鑒別簽名,軟件/固件加載測試將失敗。
i)檢測人員應運行密碼模塊,且在不加載參考的鑒別簽名的情況下啟動軟件/固件加載測試。如果加載測試成功,則本項檢測不通過。
6.10.3.4.4 測評單元[10.37]
安全要求:
核準的鑒別技術所需的鑒別密鑰應在軟件或固件加載之前,獨立地加載到密碼模塊中。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.36]的一部分進行檢測。
6.10.3.4.5 測評單元[10.38]
安全要求:
軟件/固件的有效性應成功通過核準的鑒別技術的驗證。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.36]的一部分進行檢測。
6.10.3.4.6 測評單元[10.39]
安全要求:
(接安全要求[10.39])否則軟件/固件加載測試應失敗。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.36]的一部分進行檢測。
6.10.3.4.7 測評單元[10.40]
安全要求:
如果軟件/固件加載測試失敗,則不應使用加載的軟件或固件。
送檢材料要求:
本條作為測評單元[10.36]的一部分進行檢測。
檢測程序要求:
手動輸入條件測試檢測包括5個測評單元,檢測手動輸入密鑰時,密碼模塊是否執行了條件測試。
6.10.3.5 手動輸入條件測試
6.10.3.5.1 檢測目的
6.10.3.5.2 測評單元[10.41]
安全要求:
如果敏感安全參數或密鑰分量手動輸入至密碼模塊,或者由于手動操作失誤會導致某些參數錯誤,則應執行以下手動密鑰輸入測試。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。作為測評單元[10.42]或測評單元[10.43]的一部分進行檢測。
6.10.3.5.3 測評單元[10.42]
安全要求:
敏感安全參數或密鑰分量應使用錯誤檢測碼(EDC) 。或滿足安全要求[10.43] 的要求。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。
6.10.3.5.4 測評單元[10.43]
安全要求:
如果不滿足安全要求[10.42]的要求,敏感安全參數或密鑰分量應輸入兩次。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。
6.10.3.5.5 測評單元[10.44]
安全要求:
如果使用了EDC, 則EDC的長度應至少為16比特。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。
6.10.3.5.6 測評單元[10.45]
安全要求:
如果EDC驗證不符, 或者兩次輸入不相等, 那么測試應失敗。
送檢材料要求:
a)送檢廠商應提供手動密鑰輸入測試文檔。基于使用錯誤檢測碼或兩次輸入密鑰的錄入方式,手動密鑰輸入測試應包括:
1)錯誤檢測碼(EDC) :
– EDC算法的描述;
– 校驗過程的描述;
– 測試成功或失敗的預期輸出。
2)兩次重復密鑰錄入:
– 驗證過程的描述;
– 測試成功或失敗的預期輸出。
b)如果錯誤檢測碼(EDC) 用于敏感安全參數或密鑰分量, 描述敏感安全參數或密鑰分量格式(參見安全要求[09.03])的文檔應包括對錯誤檢測碼域的說明。
檢測程序要求:
a)檢測人員應根據送檢廠商提供的文檔確認手動密鑰輸入所使用的方法(錯誤檢測碼或兩次密鑰錄人)。基于所使用的方法,檢測人員應核實送檢廠商提供的文檔、代碼和/或對手動密鑰輸入測試的執行進行詳細說明的設計文檔,以確認其是否包含以下信息:
1)錯誤檢測碼:
– 所有手動輸入敏感安全參數或密鑰分量的格式, 包括EDC域(參見安全要求[09.03]);
– EDC算法的描述;
– EDC校驗過程的描述;
– 測試成功或失敗的所有預期輸出。
2)兩次敏感安全參數或密鑰分量輸入:
– 兩次手動所有輸入敏感安全參數或密鑰分量;
– 兩次密鑰輸入驗證過程的描述;
– 測試成功或失敗的所有預期輸出。
b)對于使用EDC的手動密鑰輸入測試, 檢測人員應核實文檔, 確認所有手動輸入敏感安全參數或密鑰分量的格式包括EDC域, 并且EDC的長度至少為16比特。
c)對于使用EDC的手動密鑰輸入測試, 檢測人員應進行如下測試:
1)檢測人員應手動輸入所有敏感安全參數,確認該過程,包括敏感安全參數的輸入格式,與文檔描述是否相符。
2)檢測人員應正確輸入每種敏感安全參數,并觀察狀態輸出端口。如果未檢測到輸出指示,或輸出指示與文檔中描述的測試正確的指示不相符,則該項檢測不通過。
3)檢測人員應使用每個輸入的敏感安全參數進行密碼操作,以此驗證敏感安全參數輸入的正確性。
4)檢測人員應修改每個手動輸入敏感安全參數的EDC或敏感安全參數本身, 并將其輸入到密碼模塊中。檢測人員應觀察狀態輸出端口的輸出指示;如果未檢測到輸出指示,或輸出指示與文檔中描述的測試正確的指示不相符,則該項檢測不通過。
5)檢測人員應使用每個不能成功輸入的敏感安全參數進行密碼操作。這些操作應均告失敗,以驗證敏感安全參數未能成功輸入。
d)對于使用兩次敏感安全參數或密鑰分量輸入的手動輸入測試,檢測人員應進行如下測試:
1)檢測人員應正確輸入各種手動輸入型的敏感安全參數,并觀察狀態輸出端口。如果未檢測到輸出指示,或輸出指示與文檔中描述的測試正確的指示不相符,則該項檢測不通過。
2)檢測人員應使用每個輸入的敏感安全參數進行密碼操作,以此驗證敏感安全參數輸入的正確性。
3)檢測人員應修改一個手動輸入的敏感安全參數,或第一個或第二個重復輸入項,并將其輸入到密碼模塊中。檢測人員應觀察狀態輸出端口的輸出指示;如果未檢測到輸出指示,或輸出指示與文檔中描述的測試正確的指示不相符,則該項檢測不通過。
4)檢測人員應使用每個不能成功輸入的敏感安全參數進行密碼操作。這些操作應均告失敗,以驗證敏感安全參數未能成功輸入。
6.10.3.6 旁路條件測試
6.10.3.6.1 檢測目的
旁路條件測試檢測包括5個測評單元,檢測密碼模塊在旁路服務和密碼服務之間進行切換時是否執行了有效的條件測試。
6.10.3.6.2 測評單元[10.46]
安全要求:
如果密碼模塊實現了旁路能力,即密碼模塊可以提供不使用加密功能的服務(例如,在密碼模塊內傳輸明文),那么應執行下列旁路條件測試,以保證密碼模塊部件的單點失效不會導致不經意地輸出明文。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.47]~測評單元[10.50]的一部分進行檢測。
6.10.3.6.3 測評單元[10.47]
安全要求:
如果密碼模塊具有旁路開關,當開關在旁路服務和密碼服務之間進行切換時,應測試其提供密碼處理服務的正確性。
送檢材料要求:
a)如果密碼模塊實現了旁路功能,送檢廠商應進行旁路測試以確認當開關在旁路服務和加密服務之間進行切換時密碼服務能夠正確運行。
b)送檢廠商應提供旁路測試說明。旁路測試應說明當轉換為加密服務時,模塊不輸出明文信息。
檢測程序要求:
a)檢測人員應核實模塊執行了旁路測試以確認當關在旁路服務和加密服務之間進行切換時密碼服務能夠正確運行。
b)檢測人員應通過對源代碼和/或設計文檔的檢查確認送檢廠商提供的文檔與旁路測試的執行相一致。
c)檢測人員應將模塊由旁路服務轉換為加密服務并確認沒有明文信息輸出。
6.10.3.6.4 測評單元[10.48]
安全要求:
如果密碼模塊可以自動在旁路服務和密碼服務之間切換,當管理切換程序的機制(比如源/目的IP地址表)被修改時,應測試其提供密碼處理服務的正確性。
送檢材料要求:
a)如果密碼模塊能夠自動在旁路服務與密碼服務之間切換,那么送檢廠商應執行旁路測試以確認當管理切換程序的機制改變時,密碼服務能夠正確運行。
b)送檢廠商應提供旁路測試說明。旁路測試應確保當管理切換程序的機制改變時:
1)確認該機制在最后一次修改后沒有被更改。如果該機制被改變,密碼模塊應進入錯誤狀態并由狀態接口輸出錯誤指示。
2)通過證明模塊沒有輸出明文信息來驗證密碼服務的正確運行。如果模塊輸出明文信息,則測試不通過。
檢測程序要求:
a)檢測人員應核實模塊執行旁路測試以驗證當管理切換程序的機制改變時,密碼服務能夠正確運行。
b)檢測人員應通過檢查源代碼和/或設計文檔核實送檢測試說明與旁路測試執行相一致。
c)檢測人員應核實旁路測試的正確運行通過:
1)核實管理切換程序的機制,以確保機制在最后一次修改后沒有改變。檢測人員應記錄使用的方法。如果設計允許,檢測人員應改變該機制來測試所使用的方法。
2)改變管理切換程序的機制以驗證該機制的正確運行,并通過核實模塊沒有輸出明文信息來驗證密碼服務的正確運行。
6.10.3.6.5 測評單元[10.49]
安全要求:
如果密碼模塊保存了管理旁路能力的內部信息,那么每當修改管理信息之前,該密碼模塊應采用核準的完整性檢測技術來驗證管理信息的完整性。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條不單獨進行檢測。本條作為測評單元[10.50]的一部分進行檢測。
6.10.3.6.6 測評單元[10.50]
安全要求:
(接安全要求[10.49])并且當修改完畢后,也應采用核準的完整性檢測技術來產生新的完整性校驗值。
送檢材料要求:
a)送檢文檔應詳細說明修改管理旁路能力的內部信息的方法。
b)送檢廠商應提供管理旁路能力的內部信息、更新信息的內部順序以及用核準的完整技術來校驗信息完整性的機制的詳細說明。
檢測程序要求:
a)檢測人員應通過檢查源代碼和/或設計文檔,確認模塊內保存的管理信息與送檢廠商文檔相符。
b)檢測人員應通過檢查源代碼和/或設計文檔,確認更新管理信息的內部順序與送檢廠商文檔相符。
c)檢測人員應通過檢查源代碼和/或設計文檔,確認保持管理信息的機制與送檢廠商文檔相符。
6.10.3.7 關鍵功能條件測試
6.10.3.7.1 檢測目的
關鍵功能條件測試檢測包括1個測評單元,檢測關系到密碼模塊安全運行的其他關鍵安全功能是否進行了條件自測試。
6.10.3.7.2 測評單元[10.51]
安全要求:
其他一些關系到密碼模塊的安全運行的關鍵安全功能應進行條件自測試。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.24]的一部分進行檢測。
6.10.3.8 周期自測試
6.10.3.8.1 檢測目的
周期自測試檢測包括3個測評單元,檢測針對不同的安全等級,密碼模塊是否實現了周期自測試。
6.10.3.8.2 測評單元[10.52]
安全要求:
對于安全一級和二級,密碼模塊應允許操作員在有周期測試需求的情況下,啟動運行前自測試和條件自測試。
送檢材料要求:
a)送檢文檔應描述操作員有周期測試需求的情況下啟動運行前自測試的程序。所有的運行前自測試都應涵蓋。
b)送檢文檔應描述操作員有周期測試需求的情況下啟動條件自測試的程序。所有的條件自測試都應涵蓋。
檢測程序要求:
a)檢測人員應審核送檢文檔,確認說明了所有運行前自測試的請求啟動方法。
b)檢測人員應啟動請求的運行前自測試,確認請求的運行前自測試的啟動過程與文檔說明一致。
c)檢測人員應啟動請求的條件自測試,確認請求的條件自測試的啟動過程與文檔說明一致。
6.10.3.8.3 測評單元[10.53]
安全要求:
除了安全一級和二級的要求,密碼模塊應在已定義的時間周期內,自動重復執行運行前或條件自測試,而無需外部的輸入或控制。
送檢材料要求:
a)送檢文檔應說明模塊如何在已定義的時間周期內自動重復執行運行前或條件自測試,且無需外部的輸入或控制。
b)送檢文檔應詳細說明用于指示密碼模塊運行被運行前或條件自測試中斷的狀態指示。
c)送檢廠商提供的非私有安全策略應提供在已定義的時間周期內,重復運行前自測試或條件自測試之間導致模塊運行中斷的信息和條件。
檢測程序要求:
檢測人員應通過觀察密碼模塊,確認運行前自測試和條件自測試是按照送檢材料要求[10.53]a)和送檢材料要求[10.53]b)送檢文檔描述的進行自動重復執行的。
6.10.3.8.4 測評單元[10.54]
安全要求:
安全策略( GB/T 37092-2018 的附錄B)應闡明時間周期以及在重復執行運行前自測試或條件自測試期間可能導致密碼模塊運行中斷的任何條件。
送檢材料要求:
本條不單獨提供材料。
檢測程序要求:
本條作為測評單元[10.53]的一部分進行檢測。
GB/T 38625-2020 信息安全技術 密碼模塊安全檢測要求
推薦文章: