◆趙 進 武宗濤
(海軍計算技術研究所 北京 100841)
基于可信固件的軟件分發(fā)系統(tǒng)研究與設計
◆趙 進 武宗濤
(海軍計算技術研究所 北京 100841)
內(nèi)網(wǎng)環(huán)境下計算機終端部署著大量工作軟件,必須進行嚴格的管控保證軟件安裝和更新。傳統(tǒng)機制是基于操作系統(tǒng)部署軟件維護程序,實現(xiàn)對終端工作軟件安裝和更新等管理。這種方式下維護軟件運行于操作系統(tǒng)之上,容易被卸載和中止。本文基于可信固件研究設計了在終端可信固件層部署軟件分發(fā)系統(tǒng),實現(xiàn)軟件分發(fā)功能。該系統(tǒng)能夠保證計算機在上電開機及操作系統(tǒng)啟動后根據(jù)策略,對工作軟件進行安裝、完整性檢測及更新。
可信固件;軟件;分發(fā)系統(tǒng);設計
內(nèi)網(wǎng)環(huán)境下,計算機終端運行著大量軟件程序,創(chuàng)建和存放著重要數(shù)據(jù),必須進行嚴格的管理,以保證終端軟件及時安裝和更新[1]。隨著信息化進程的快速發(fā)展,內(nèi)網(wǎng)信息安全防護已經(jīng)逐步由核心與主干的防護,轉(zhuǎn)向網(wǎng)絡內(nèi)部的每一個終端的防護[2]。因此,對內(nèi)網(wǎng)環(huán)境下計算機終端進行統(tǒng)一的軟件更新和維護成為亟待解決的問題。
傳統(tǒng)的終端軟件維護方法是在操作系統(tǒng)中安裝和運行特定的軟件維護程序,實現(xiàn)對終端軟件安裝和更新的管控[3]。但是,這種安全軟件運行于操作系統(tǒng)之上,容易被用戶卸載和中止。另一方面,當內(nèi)網(wǎng)終端重裝系統(tǒng)或更換硬盤后,需要重新安裝大量軟件,才能重建用戶所需的計算環(huán)境[4][5]。
在國際上,可信計算是由可信計算組織(Trusted Computing Group,TCG)進行推動和開發(fā),基本的思路是在計算機主板上配備“信任根”(可信密碼芯片)。該信任根的可信性由物理安全和管理安全確保;通過該信任根構建信任鏈,能夠建立從信任根到硬件平臺,從硬件平臺到操作系統(tǒng),從操作系統(tǒng)到應用的認證,把信任擴展到整個可信計算領域。
固件是計算機中不可缺少的重要部件,是連接計算機基礎硬件和系統(tǒng)軟件的橋梁。在可信計算機系統(tǒng)中的固件,稱之為可信固件[8]。計算機開機后,可信密碼芯片首先會對可信固件進行主動的可信度量,保證固件的完整性。在此基礎上,固件會對計算機的關鍵硬件和核心軟件進行度量,保證硬件不被替換、系統(tǒng)軟件不被篡改。同時,固件能夠直接對操作系統(tǒng)中的特定路徑和文件進行操作,包括查看、修改、刪除。因此,如果在固件中部署可以在系統(tǒng)中自動運行的軟件分發(fā)客戶端,將能夠保證用戶計算機方便、快捷、可靠地進行軟件更新[6]。
本文第一節(jié)研究設計了基于可信固件的軟件分發(fā)系統(tǒng)總體架構;第二節(jié)研究設計了軟件分發(fā)系統(tǒng)服務器功能;第三節(jié)研究設計了軟件分發(fā)客戶端功能;第四節(jié)介紹了軟件分發(fā)系統(tǒng)工作流程;第五節(jié)對全文進行了總結(jié)。
基于可信固件的軟件分發(fā)系統(tǒng)主要包括軟件分發(fā)服務器和內(nèi)網(wǎng)終端兩個部分,如圖1所示。
其中,軟件分發(fā)服務器的主要作用是各種硬件平臺、各種操作系統(tǒng)的內(nèi)網(wǎng)終端進行統(tǒng)一軟件分發(fā)管理。軟件分發(fā)服務器與部署在可信固件中的軟件分發(fā)客戶端進行交互,實現(xiàn)對終端信息的自動收集、解析判斷、選擇和推送軟件、軟件自動或提示安裝。
內(nèi)網(wǎng)環(huán)境的計算機終端需要在可信固件中部署軟件分發(fā)客戶端。在計算機終端開機后,可信固件將驗證計算機關鍵硬件和核心軟件的完整性,特別是軟件分發(fā)客戶端是否已經(jīng)部署。如果軟件分發(fā)客戶端未能部署或運行,可信固件將對其進行恢復。軟件分發(fā)客戶端將收集終端的軟硬件信息,發(fā)送到軟件分發(fā)服務器。軟件分發(fā)服務器將會根據(jù)給定的安全軟件安裝策略,將適配的軟件和安裝腳本推送到終端。軟件分發(fā)客戶端將根據(jù)安裝腳本對軟件進行安裝。
圖2展示了軟件分發(fā)服務器的主要功能,包括終端身份認證服務、軟件倉庫服務、遠程軟件推送服務、終端分組管理服務、安全策略配置服務、日志記錄服務,其具體功能包括。
身份驗證服務存儲了客戶端的終端標識,并將對客戶端的身份進行驗證。計算機終端接入網(wǎng)絡后,能夠自動向終端管理維護系統(tǒng)發(fā)送硬件平臺信息,包括整機信息、CPU信息、主板序列號、BIOS信息、終端標識。這些信息一方面用于對終端進行身份認證,另一方面也會用于根據(jù)硬件平臺和操作系統(tǒng)對終端自動選擇合適版本。
軟件倉庫服務保存了所有終端需要安裝的軟件,每個軟件在入庫時都需要經(jīng)過測試和驗證,并配套了完整性度量值、安裝和卸載腳本。
遠程軟件推送管理服務針對每臺終端或一組終端配置需要的安裝的軟件。如根據(jù)部門需求,配置相應的軟件安裝策略。
終端分組管理服務能夠?qū)⒂嬎銠C終端與使用者信息進行綁定。使用者信息包括姓名、部門、編號等信息。管理員能夠根據(jù)終端類型、操作系統(tǒng)類型、部門、對終端進行分類,實現(xiàn)分組管理。
安全策略配置能夠?qū)γ颗_終端或一組終端進行安全策略配置,如相應用戶的密級、權限等。
日志記錄服務能夠記錄到每一臺終端軟件安裝的狀態(tài)。如果終端出現(xiàn)異常,會立即向管理員報警并采取相應的安全措施。
圖2 軟件分發(fā)服務器功能
計算機終端的可信固件中除了可完成硬件初始化和操作系統(tǒng)引導等基本功能的固件核心鏡像外,還包括了三個部分,一是度量檢測固件模塊,二是加載安裝固件模塊,三是軟件分發(fā)客戶端,如圖3所示。
度量檢測固件模塊將在開機過程中對操作系統(tǒng)中是否部署軟件分發(fā)客戶端進行檢測。如果軟件分發(fā)客戶端被損壞,則進行自動恢復。
加載安裝固件模塊的主要作用是在固件開機過程中對軟件分發(fā)客戶端的軟件文件進行恢復。
軟件分發(fā)客戶端是運行在終端操作系統(tǒng)中的程序,能夠?qū)崟r獲取終端軟硬件信息,并根據(jù)預制的安全策略,安裝軟件和更新系統(tǒng)補丁??蛻舳擞晒碳K進行持久化守護,包括軟件下載模塊、軟件安裝模塊、身份驗證模塊和策略執(zhí)行模塊。
(1)軟件下載模塊用于客戶端從服務端下載軟件文件和補丁。
(2)軟件安裝模塊用于對下載的軟件和補丁進行安裝。
(3)身份驗證模塊使用終端的硬件信息,生成終端標識,用于進行身份驗證。身份驗證碼模塊還將對服務端的身份進行驗證。
(4)策略執(zhí)行模塊用于執(zhí)行服務端的安全策略,包括必須安裝的程序、不能安裝的程序、到期后必須卸載的軟件。
圖3 軟件分發(fā)客戶端功能
本文研究設計提出的內(nèi)網(wǎng)終端軟件分發(fā)系統(tǒng)工作流程如圖4所示。
(1)開始。用戶啟動計算機。
(2)開機上電。在開機過程中,將加載持久化守護平臺的固件驅(qū)動模塊。持久化守護驅(qū)動模塊該模塊首先識別硬盤和文件系統(tǒng),并檢測監(jiān)控恢復子模塊是否已寫入文件系統(tǒng)。如果未寫入,監(jiān)控恢復子模塊將被寫入文件系統(tǒng)。
(3)加載可信固件驅(qū)動。在操作系統(tǒng)啟動后,監(jiān)控恢復子模塊將檢測終端管理系統(tǒng)客戶端是否寫入操作系統(tǒng)并已經(jīng)啟動。
(4)檢測守護模塊。持久化守護驅(qū)動模塊該模塊首先識別硬盤和文件系統(tǒng),并檢測監(jiān)控恢復子模塊是否已寫入文件系統(tǒng)。如果未寫入,監(jiān)控恢復子模塊將被寫入文件系統(tǒng)。
(5)客戶端執(zhí)行指令。終端管理客戶端對終端進行管理完成軟件分發(fā)等功能。
(6)結(jié)束.終端安全管理系統(tǒng)工作流程結(jié)束。
圖4 軟件分發(fā)系統(tǒng)流程圖
本文研究并設計提出了基于可信固件的軟件系統(tǒng)分發(fā)系統(tǒng),能夠在開機過程和操作系統(tǒng)運行過程中,通過可信固件對操作系統(tǒng)中的軟件分發(fā)客戶端進行保護,即使更換硬盤、格式化分區(qū),也能夠在安全程序發(fā)生異常時進行自動恢復,實現(xiàn)終端中部署的軟件分發(fā)代理的持久化存在,提升系統(tǒng)整體的運行效率和穩(wěn)定性。
[1]趙雨水,左春,楊立,楊泳.軟件發(fā)布機制體系結(jié)構研究[J].計算機工程與設計,2010.
[2]徐學洲,任聲駿.軟件更新安全解決方案研究[J].大連理工大學學報,2005.
[3]張艷.關于軟件的安全更新研究[J].計算機安全,2010.
[4]邱志聰,王飛.基于CA的安全軟件分發(fā)方案[J].計算機工程與應用,2005.
[5]蔣漪漣.應用軟件分發(fā)安裝系統(tǒng)的設計與實現(xiàn)[J].微型電腦應用,2009.
[6]楊培,吳灝,金然. BIOS安全防護技術研究[J].計算機工程與設計,2008.
[7]周振柳,李銘,翟偉斌,許榕生.基于UEFI的可信BIOS研究與實現(xiàn)[J].計算機工程,2008.
[8]馮登國,秦宇,汪丹,初曉博.可信計算技術研究[J].計算機研究與發(fā)展,2011.