7.6 運行環境
7.6.1 運行環境通用要求
密碼模塊運行環境涉及對密碼模塊運行所需的軟件、固件、和/或硬件的管理。軟件、固件或混合密碼模塊的運行環境至少包括密碼模塊部件、計算平臺、以及控制或支持軟件或固件在計算平臺上運行的操作系統。硬件密碼模塊內部可以包含一個運行環境,該環境可以包含支持密碼模塊內部軟件或固件運行的操作系統。如果適用的話,虛擬機(系統和/或進程)和運行時環境(例如,Java運行時環境——JRE)也可以視為操作系統的一部分。
通用運行環境是指使用商用的通用操作系統(即資源管理器)來管理軟件和固件部件,以及管理系統和操作員進程(線程),其中包括了通用的應用程序軟件,如文字處理器等。
運行環境可以是不可修改的、受限制的或可修改的。
以下條款闡明了三個特定的運行環境:
a) 不可修改的運行環境是設計成或配置成防止操作員或進程對密碼模塊部件、計算平臺或操作系統進行修改的運行環境,即該環境中的密碼模塊部件、計算平臺或操作系統是不允許被修改的。該環境可以包含運行在不可編程計算平臺上的固件密碼模塊,或具有阻止加載任何其他軟件或固件能力的硬件密碼模塊。
b) 受限制的運行環境是設計成或配置成允許操作員或進程受控地對密碼模塊部件、計算平臺或操作系統進行修改的運行環境,即該環境中的密碼模塊部件、計算平臺或操作系統的修改必須滿足相關的要求。該環境可以是運行于可編程硬件密碼模塊的固件,并且在該密碼模塊中加載其他固件需要滿足7.4.3.4中規定的固件加載要求。
c) 可修改的運行環境是指通過重新配置可以增加/刪除/修改某些功能的環境,和/或包含通用操作系統功能(例如,可以選擇使用計算機操作系統、配置智能卡操作系統或者加載可編程的軟件)的環境。如果操作員或進程可以修改軟件部件,和/或加載和執行某些軟件(例如,文字處理器),這些軟件不是已有軟件、固件或混合密碼模塊中的一部分,則該操作系統被視為可修改的運行環境。可修改的運行環境具有以下特點:
在運行環境內可以添加或修改功能。這些添加或者被修改的功能可能會干擾密碼模塊的運行,除非運行環境禁止這樣的干擾。在這樣的環境中,要求運行在同一個運行環境下且不屬于運行環境可信部分的功能,除了通過密碼模塊已定義的接口以外,不能通過其他途徑訪問敏感安全參數。因此,要求運行環境在運行時,具備把密碼模塊的功能與該運行環境中的其他功能相互隔離的能力,使得那些被隔離的其他功能無法從密碼模塊中獲取與關鍵安全參數相關的信息,而且除了密碼模塊自身提供的接口以外,無法通過其他途徑修改密碼模塊的關鍵安全參數、公開安全參數或執行流。可能需要對運行環境進行特定的配置,以充分保護密碼模塊的代碼和數據(例如,禁止密碼模塊進行特定類型的內部進程通信,或者為含有密碼模塊敏感安全參數或代碼的文件分配限制性訪問權限)。
表2提供了一些運行環境的示例。
表1 運行環境示例
| 配置示例 | 運行環境 |
|---|---|
| 計算平臺不允許加載代碼,且不允許操作員修改操作系統或密碼模塊的配置 | 不可修改 |
| 計算平臺包含允許加載額外代碼的操作系統,該代碼已通過鑒別且滿足本標準中所有適用要求 | 受限制 |
| 計算平臺允許加載代碼,該代碼不需要滿足本標準的軟件或固件加載要求 | 可修改 |
| 計算平臺上的操作系統可由操作員配置,允許移除安全保護 | 可修改 |
對于不可修改或受限制的運行環境,用于保證該環境不可修改或受限制的控制部件可以包括計算平臺的、操作系統的或密碼模塊本身的屬性,或者包括上述全部的屬性。
在不可修改或受限制的環境下執行的代碼在本標準中被視為固件。在可修改的環境下執行的代碼在本標準中被視為軟件。
如果運行環境是不可修改或受限制的,7.6.2中規定的操作系統要求應[06.01]適用。
如果運行環境是可修改的,7.6.3中規定的操作系統要求應[06.02]適用。
密碼模塊文檔應[06.03]按照A.2.6中規定的要求編寫。
7.6.2 受限或不可修改運行環境的操作系統要求
a) 安全一級:
如果密碼模塊在7.7中達到安全一級,則7.6.3中規定的安全一級的要求應[06.04]適用。
b) 安全二級、三級、四級:
沒有額外的要求。
7.6.3 可修改運行環境的操作系統要求
a) 安全一級:
下列要求適用于安全一級密碼模塊的操作系統:
——每一個密碼模塊的實例應[06.05]能夠控制和支配自己的敏感安全參數。
——運行環境應[06.06]提供應用進程間相互隔離的能力,以阻止進程間對關鍵安全參數不受控的訪問以及對敏感安全參數不受控的修改,無論關鍵安全參數和敏感安全參數是在進程內存中還是存儲在運行環境內的永久性存儲體中。這保證了只有密碼模塊和運行環境的可信部分可以直接訪問敏感安全參數。對運行環境配置的規定應[06.07]記錄在密碼模塊的安全策略中。
——如果密碼模塊產生進程,其產生的進程應[06.08]由密碼模塊自己所有,并且不由除密碼模塊所在進程外的其它進程/操作員所有。
不能通過管理文檔和流程來實施這些要求,而是必須由密碼模塊本身來實施。
b) 安全二級:
對于安全二級,除了安全一級的要求以外,操作系統還應[06.09]滿足下列要求或者經確認機構許可:
——密碼模塊所在的進程應[06.10]由密碼模塊自己所有,并且與包括調用者進程在內的其它進程邏輯隔離。
——所有密碼軟件、敏感安全參數、控制和狀態信息應[06.11]在操作系統的控制之下。操作系統實現了基于角色的訪問控制,或者實現了自主訪問控制,該自主訪問控制可通過訪問控制列表(ACL)來定義新的組和分配權限,并且能夠給每個用戶分配多個組。操作系統應[06.12]正確配置,以防止非授權地執行、修改和讀取敏感安全參數、控制和狀態數據。
——為了保護明文數據、密碼軟件、敏感安全參數和鑒別數據,操作系統具備以下訪問控制機制或能支持以下訪問控制機制的實現:
? 應[06.13]能夠通過配置,對角色或組賦予僅能執行密碼模塊中密碼軟件的權限。
? 應[06.14]能夠通過配置,對角色或組賦予僅能修改(寫、替換和刪除)存儲在密碼邊界內軟件和數據的權限,這些軟件和數據包括執行密碼功能的程序、密碼操作相關數據(例如,密碼操作的審計數據)、敏感安全參數和明文數據。
? 應[06.15]能夠通過配置,對角色或組賦予僅能讀取密碼操作相關數據(例如,密碼操作的審計數據)、關鍵安全參數和明文數據的權限。
? 應[06.16]能夠通過配置,對角色或組賦予僅能導入敏感安全參數的權限。
——下列規定應[06.17]與密碼模塊安全策略文檔中已定義的角色和服務相一致。
? 當密碼模塊不支持維護員角色時,操作系統應[06.18]防止所有操作員和運行的進程訪問、使用、泄露、修改和替換正在運行的密碼進程(例如,已加載的和正執行的密碼程序鏡像)。在這種情況下,運行的進程是指所有不由操作系統所擁有或啟動的進程(例如,由操作員啟動的進程),無論該進程是密碼相關的還是非密碼相關的。
? 操作系統應[06.19]防止用戶進程對其他進程的敏感安全參數以及系統敏感安全參數進行讀或寫操作。
? 滿足以上要求的操作系統配置應[06.20]在管理員指南中闡明。管理員指南指的是密碼主管和/或其他管理角色使用的書面資料,用于正確地配置、維護和管理密碼模塊。管理員指南應[06.21]聲明:操作系統必須按照需要保護的密碼模塊內容所指定的要求進行配置。
操作系統的身份標識和鑒別機制應[06.22]滿足7.4.4中規定的要求,并在密碼模塊安全策略文檔中具體闡明。
所有密碼軟件、敏感安全參數、控制和狀態信息應[06.23]在操作系統的控制之下,操作系統應[06.24]至少擁有以下屬性:
——操作系統應[06.25]提供具有審計事件日期和時間的審計機制。密碼模塊應[06.26]不把敏感安全參數寫入任何審計記錄中。
——下列事件應[06.27]被操作系統的審計機制記錄下來:
? 修改、訪問、刪除以及添加密碼操作相關數據和敏感安全參數;
? 嘗試對密碼主管功能提供無效輸入;
? 將操作員添加至密碼主管角色或將其刪除(如果那些角色是由密碼模塊管理的);
? 使用安全相關的密碼主管功能;
? 請求訪問與密碼模塊相關的鑒別數據;
? 使用與密碼模塊相關的鑒別機制(例如,登錄);
? 顯式的請求擔任密碼主管角色。
——操作系統的審計機制應[06.28]能夠審計下列操作系統相關事件:
? 操作員對審計數據的所有讀寫訪問;
? 訪問密碼模塊用于存儲密碼操作相關數據或敏感安全參數的文件;
? 將操作員添加至密碼主管角色或將其刪除(如果那些角色是由密碼模塊管理的);
? 對鑒別數據管理機制的使用請求;
? 當該安全等級支持可信信道時,對可信信道功能的使用請求,無論請求是否被批準;
? 當該安全等級支持可信信道時,可信信道的啟動方和接收方的身份標識。
——操作系統應[06.29]正確配置以防止操作員,除安全策略中給出的、擁有特權的操作員以外,修改存儲在密碼模塊運行環境中的密碼模塊軟件和審計數據。
無論密碼模塊是否在核準的工作模式下運行,應[06.30]只有配置成滿足以上安全要求的操作系統才符合該安全等級。操作系統宜使用核準的安全功能對審計記錄進行保護,以防止非授權的修改。
c) 安全三級和四級
本標準對可修改運行環境的操作系統不提供安全三級和四級的要求。因此,可修改運行環境的操作系統無法達到安全三級和四級。
GB/T 37092—2018 信息安全技術 密碼模塊安全要求
推薦文章: