劉智臣
(長沙湘計海盾科技有限公司嵌入式產品研發部,長沙410100)
具有可信計算架構的安全操作系統實現方法
劉智臣
(長沙湘計海盾科技有限公司嵌入式產品研發部,長沙410100)
為解決嵌入式系統設備的安全性問題,在操作系統內核一級建立信息安全體系,提出一種安全可信操作系統的實現方法。在Linux基礎上實現非對稱加密認證、地址隱藏、安全存儲、進程可信認證等關鍵技術,從而構造出可信計算架構,使得操作系統內核可從行為安全方面對系統驅動、應用程序等進程提供可信認證,阻止認證失敗的進程在系統上運行。實驗結果證明了可信計算架構的正確性,并能實現對嵌入式系統設備的安全保護。
可信計算;非對稱加密認證;地址隱藏;安全存儲;可信認證
自從棱鏡門事件后,信息系統或終端的安全性受到廣泛關注,如何讓系統或終端具有較高的安全性,已成為從事有安全要求的應用領域的設計師們優先考慮的問題。對大部分智能化系統或終端而言,需要一套軟件系統,而其核心便是操作系統,因此,如果確保了操作系統及其上運行的應用程序的安全性,那么將有力保障系統或終端的安全。直到今日還沒有較好的國產操作系統可供選擇,即便它能可靠穩定地運行,但在安全性方面仍存在不足,這就使得很多場合只能采用國外操作系統,從而帶來了潛在的安全漏洞或隱患,而其上運行的應用程序安全性更無從保證。為實現具有安全特性的操作系統,本文將可信計算理論引入到操作系統中,提出一種具有可信計算架構的安全操作系統實現方法。
為保護操作系統及其應用程序的關鍵數據不受惡意程序的破壞,出現了殺毒軟件、數據加密等技術,雖然這些技術能夠在一定程度上對操作系統進行保護,但它們是建立在操作系統之上的應用程序,其本身不屬于操作系統內核的組成部分,因此,安全保護作用具有一定局限性,而且這些程序本身是否安全也有待考證。在棱鏡門事件之后,許多著名的應用軟件、操作系統都可能存在后門,因此,操作系統本身是否安全,以及其上運行的應用程序是否安全等問題已成為迫在眉睫要解決的問題。
保證系統的安全特性有很多種方法,至今公認比較可行的辦法是采用基于可信賴平臺模塊(Trusted Platform M odule,TPM)[1-2]的可信計算體系結構,該體系結構從硬件系統著手,然后一直向上延伸到軟件系統,從而建立信息安全體系[3],但基于TPM模塊的可信計算體系結構[4]依賴于對TPM硬件模塊的構造,并根據TPM的特性在其上建立軟件系統[5],因此,這種建立在特定硬件系統下的安全體系雖然安全性較高、性能較強,但是開發難度較大,技術壁壘較多,不利于推廣和自主研發。為了避免對硬件系統的較大依賴,可從軟件系統如操作系統內核著手,建立可信計算體系,因此,安全可信操作系統就是根據這一思路進行研制的,其具有可信計算理論特征,也是可信計算架構的一種實例化。
安全可信操作系統是在傳統意義的Linux基礎上,創造性加入可信計算理論[6],從操作系統(Operating System,OS)一級建立信息安全體系。該操作系統可從行為安全方面對系統驅動、應用軟件等進程提供可信認證[7-8]。該OS的優勢在于安全性高,且便于開發和技術推廣,對硬件系統沒有特殊依賴,但不足之處在于對私鑰存放的器件有安全性要求,且硬件資源對OS的執行性能有影響[9]。
3.1 硬件系統架構
安全可信操作系統的實現方法可以不依賴于硬件體系結構,但考慮到非對稱加密認證的私鑰存放的安全性問題,建議在硬件系統中采用一塊加密芯片,并利用地址隱藏技術對關鍵數據進行安全存儲。圖1是硬件系統架構。

圖1 硬件系統架構
Nor Flash可作為啟動設備;Nand Flash可以存放數據,并作為地址隱藏技術的載體;加密芯片能提供2 048 Byte的私鑰,并支持非對稱(密鑰)加密算法(RSA)[10],可以是異步收發傳輸器(Universal Asynchronous Receiver/Transm itter,UART)接口,也可以是USB接口[11]等。
3.2 安全可信操作系統架構
安全可信OS內核加入了安全可信認證機制,從而實現了可信計算的OS體系結構,創造性建立了安全可信的OS系統[12]。目前,國內至今尚無基于可信計算體系結構的安全可信操作系統,而在國外,微軟、蘋果等公司在相應的桌面OS中曾提出過可信OS,但一直未公開實現方法。
安全可信操作系統的軟件系統架構如圖2所示,其中,雙箭頭線表示雙向數據交互;單箭頭線表示單向數據交互。

圖2 安全可信操作系統軟件架構
安全可信認證機制由OS內核中的進程管理模塊和認證管理模塊協作完成。進程管理模塊要求應用程序進行認證,并根據認證結果對應用程序進行相應處理。當應用程序提交認證請求時,進程管理模塊將調度認證管理模塊進行認證,認證管理模塊會根據非對稱加密算法進行認證,并將認證結果返回給進程管理模塊。非對稱加密認證算法中的私鑰由加密芯片中獲取,公鑰由應用程序提交。
在Linux內核中實現可信計算架構,需完成以下工作:
(1)實現地址隱藏,對加密芯片的私鑰給以安全存儲;
(2)實現非對稱加密認證算法,提供對進程的公鑰認證;
(3)實現進行的可信認證過程。
3.2.1 地址隱藏及安全存儲
安全可信OS具備地址隱藏及安全存儲技術,主要是對加密芯片的私鑰,及其涉及私鑰的操作進行存儲和保護。通過Linux的Boot Loader啟動程序對存儲器的物理地址空間進行分配,可分為被隱藏的地址段和不受限制的地址段,隱藏地址段又可稱為受限制的地址段。在Boot Loader啟動程序中,通過配置處理器的寄存器以及地址映射關系,使得Linux操作系統在建立內存管理單元(Memory Management Unit,MMU)管理時,只在不受限制的地址段上進行,而被隱藏的地址段不參與MMU建立。在Linux系統啟動后,MMU只能管理不受限制的物理地址段。而被隱藏地址段對MMU不可見,經過以上處理后,除指定驅動程序外,Linux操作系統及Linux操作系統上運行的程序都不能直接訪問該被隱藏的地址段。指定驅動程序不通過MMU的地址映射而是采用物理地址(實地址)對該被隱藏的地址段進行操作。
由于隱藏地址段對操作系統和應用程序不可見,只接受指定的驅動程序訪問,此時該隱藏地址段中保存的數據或信息也受到了保護,增加了系統的安全特性,實現原理如圖3所示。

圖3 地址隱藏及安全存儲實現
3.2.2 非對稱加密認證
安全可信OS具備非對稱加密認證機制,主要是使用加密芯片的私鑰,對進程的公鑰進行RSA認證。可在硬件系統中設置一個用于生成私鑰的加密芯片,并在存儲器中開辟一塊特定存儲區域用于存儲與加密和解密相關的數據,該存儲區域需隱藏,增加安全性。
當操作系統收到應用程序或進程傳來的公鑰時,激活認證程序以完成認證。認證過程包括:
(1)通過加密芯片的驅動程序從加密芯片中讀出私鑰;
(2)將私鑰保存到所述的特定存儲區域;
(3)使用RSA算法解密,完成認證,并將認證結果返回。
特定存儲區域只由認證程序使用,在解密過程中,私鑰及與私鑰相關的數據均存儲在該特定存儲區域內,而不使用系統臨時內存進行存儲,解密完成后對特定存儲區域進行清空。應使用加密芯片的驅動程序完成對加密芯片的接口驅動以及芯片內部寄存器的讀寫。
認證程序應作為內核態程序運行在Linux操作系統中,受操作系統進程調度,其他內核程序或進程不能調用該程序。當操作系統啟動后,認證程序就開始運行,并一直處于等待狀態。當操作系統收到公鑰后,會激活該認證程序運行,實現原理如圖4所示。

圖4 非對稱加密認證實現
3.2.3 進程可信認證
安全可信OS具備對其上運行的進程或應用程序提供認證的能力,從而保證進程的安全可信。攜帶公鑰的進程(PP)由進程管理模塊(PM)啟動運行,并提交公鑰給操作系統進程管理模塊,此后攜帶公鑰的進程進入等待狀態。在PM收到公鑰后,將公鑰提交給認證模塊(CA),從而激活CA運行。在CA獲得公鑰后,從指定位置提取私鑰,并使用指定算法進行認證,然后將認證結果返回給PM。如果認證通過,PM允許攜帶公鑰的進程(PP)繼續運行,如果認證不通過,PM禁止攜帶公鑰的進程(PP)運行。在這個機制中,CA對PP不可見,只由PM調度。PM以管道或消息隊列方式將公鑰提交給CA。由硬件系統的私鑰生成器提供私鑰,認證算法為支持2 048 Byte密鑰的RSA非對稱加密算法,秘鑰長度可根據實際運行情況選擇。
在Linux內核中,實現進程的可信認證機制,需要完成以下工作:
(1)優化進程管理模塊(PM)。Linux本身具有進程管理調度功能,但基本沒有對進程進行認證的能力,因此,需要在PM創建進程之前增加認證過程。
(2)增加認證模塊(CA)。此模塊新增到OS內核中,用來對進程進行認證。CA只由PM調度,通過消息隊列或管道與PM交互信息,對其他進程不可見。
(3)進程攜帶公鑰的方式,由發起方實現。OS中的PM只對公鑰進行收集,并提交給CA進行認證,并依據認證結果決定是否創建進程。
整個進程認證過程的原理實現如圖5所示。

圖5 進程可信認證過程
為了測試本文安全可信OS的執行性能,搭建測試環境如下:
(1)處理器采用PowerPC P2041(四核)處理器,存儲器采用S29GL01GP(Nor Flash)和MT29F4G08(Nand Flash),內存采用MT41J256M 16HA(DDR3),另外處理器集成USB,I2C和UART接口。
(2)選用具有UART,I2C或USB任一接口的加密芯片,該加密芯片需能提供2 048 Byte的私鑰,因此,加密芯片采用TF32A 09器件。
(3)取用Linux2.6內核操作系統,以及相對應的UBOOT啟動程序。在該內核代碼中修改進程管理程序,增加認證程序和加密芯片驅動程序。修改UBOOT的地址映射關系,建立隱藏地址段。
4.1 系統啟動的執行時間
在通用Linux OS和安全可信OS的啟動過程中,用定時器做一個啟動時間測試函數,用來檢測2個OS的啟動時間,并且精簡一些啟動打印信息,加快啟動速度,通過對比獲得2個OS的啟動時間的差異,測試次數為50次,取平均值,單位為m s。測試得到的數據為:通用Linux OS的啟動時間為10 000± 0.1 ms,安全可信OS的啟動時間為10 010±0.1 ms。由測得的數據分析可知,增加可信計算架構的安全可信OS比通用Linux OS多花費10 m s的啟動時間,多出的時間主要是用來啟動或建立認證程序。測試時間偏差在±10%之間。
4.2 進程可信認證的執行時間
在安全可信OS中,生成一些進程用來測試可信認證的執行情況。這些進程將攜帶公鑰,并請求OS中的認證程序進行可信認證。測試進程數從1個到20個再到40個,開啟和關閉P2041的多核模式,使用定時器計數認證執行時間,取平均時間,然后將這些數據進行對比,結果如表1所示。

表1 進程可信認證的執行時間μs
考慮到程序的優化以及測試環境的差異可能會導致數據的不同,因此,該表給出了偏差范圍力求準確。由表1可知,在多核狀態下進程認證程序的綜合執行時間要少些,進程個數增加會增加進程認證的綜合執行時間。
為解決目前信息系統的安全性問題,本文從信息系統的核心部件操作系統內核著手,提出一種安全可信操作系統的實現方法。在傳統Linux的基礎上,實現了地址隱藏和安全存儲、非對稱加密認證算法和進程可信認證機制,從而構建出具有可信計算結構特征的操作系統。其中,地址隱藏和安全存儲技術用來解決系統對私鑰安全存儲及其他操作的問題;非對稱加密認證技術用來解決系統安全認證秘鑰的問題;進程可信認證技術用來解決系統安全運行及身份認證問題。這些技術使其能從行為安全方面對系統驅動、應用軟件等進程提供可信認證,因此,能夠保證整個信息系統的安全。測試結果證明了其有效性。今后將繼續優化安全可信操作系統的內核,降低時間開銷,進一步提高執行性能。
[1] 肖 敬,喻 超,毋國慶.一種基于嵌入式安全系統的可信計算機系統[J].計算機工程,2006,32(13):246-247,279.
[2] 王 博,李 波,高振鐵.基于TPM的嵌入式可信計算平臺設計[J].單片機與嵌入式系統應用,2011,11(1):13-15.
[3] Potter B.High Time for Trusted Computing[J].Security &Privacy,2009,7(6):54-56.
[4] Goh W,Yeo C K.Teaching an Old TPM New Tricks:Repurposing for Identity-based Signatures[J].Security &Privacy,2013,11(5):28-35.
[5] 劉海雷,王震宇,馬鳴錦,等.嵌入式可信終端TPM接口的研究與實現[J].計算機工程與設計,2008,29(13):3316-3319.
[6] David C,Ryan C.可信計算[M].趙 波,譯.北京:機械工業出版社,2009.
[7] Rahm atian M,Kooti H,Harris I G,et al.Hardware assisted Detection of Malicious Software in Em bedded System s[J].Em bedded System s Letters,2012,4(4):94-97.
[8] Schaumont P,Raghunathan A.Guest Editors' Introduction:Security and Trust in Embedded-systems Design[J]. Design&Test of Computers,2007,24(6):518-520.
[9] Zhang Huanguo,M u Yi.Trusted Computing and Information Security[J].Communications,2013,10(11).
[10] Oliveira D P R,Andreia F M L,Delisandra F V,et a1. Energy Consumption Analysis of the Cryptographic Key Generation Process of RSA and ECC Algorithm s in Embedded Systems[J].Latin America Transactions,2014,12(6):1141-1148.
[11] Herzog J.Applying Protocol Analysis to Security Device Interfaces[J].Security&Privacy,2006,4(4):84-87.
[12] 徐明迪,楊連嘉.嵌入式實時操作系統可信計算技術研究[J].計算機工程,2014,40(1):130-133.
編輯 劉 冰
Secure Operating System Realization Method with Trusted Computing Architecture
LIU Zhichen
(Em bedded Product Development Department,Changsha Xiangji-Haidun Technology Co.,Ltd.,Changsha 410100,China)
To solve the security problem of the embedded system equipment,this paper establishes information security system at the operating system kernel level,and proposes the implementation of a secure operating system.The key technology of the trusted computing architecture about asymmetric encryption and authentication,address hidden and safety storage,trusted authentication for process is realized and joined to the original Linux Operating System(OS),and the secure OS with the trusted computing architecture is formed.The secure OS can provide the behavior of certification for the process to ensure that the whole information system security.Experimental result proves that the correctness and applicability of trusted computing architecture,and the architecture can provide the security of the embedded system equipment.
trusted computing;asymmetric encryption authentication;address hidden;safety storage;trusted authentication
10.3969/j.issn.1000-3428.2015.09.030
劉智臣.具有可信計算架構的安全操作系統實現方法[J].計算機工程,2015,41(9):164-167.
英文引用格式:Liu Zhichen.Secure Operating System Realization Method with Trusted Computing Architecture[J]. Computer Engineering,2015,41(9):164-167.
1000-3428(2015)09-0164-04
A
TP316
劉智臣(1980-),男,工程師、碩士,主研方向:信息隱藏,身份認證。
2014-09-22
2014-10-23 E-m ail:liu_zhichen@163.com