劉智臣
(長沙湘計(jì)海盾科技有限公司嵌入式產(chǎn)品研發(fā)部,長沙410100)
具有可信計(jì)算架構(gòu)的安全操作系統(tǒng)實(shí)現(xiàn)方法
劉智臣
(長沙湘計(jì)海盾科技有限公司嵌入式產(chǎn)品研發(fā)部,長沙410100)
為解決嵌入式系統(tǒng)設(shè)備的安全性問題,在操作系統(tǒng)內(nèi)核一級建立信息安全體系,提出一種安全可信操作系統(tǒng)的實(shí)現(xiàn)方法。在Linux基礎(chǔ)上實(shí)現(xiàn)非對稱加密認(rèn)證、地址隱藏、安全存儲(chǔ)、進(jìn)程可信認(rèn)證等關(guān)鍵技術(shù),從而構(gòu)造出可信計(jì)算架構(gòu),使得操作系統(tǒng)內(nèi)核可從行為安全方面對系統(tǒng)驅(qū)動(dòng)、應(yīng)用程序等進(jìn)程提供可信認(rèn)證,阻止認(rèn)證失敗的進(jìn)程在系統(tǒng)上運(yùn)行。實(shí)驗(yàn)結(jié)果證明了可信計(jì)算架構(gòu)的正確性,并能實(shí)現(xiàn)對嵌入式系統(tǒng)設(shè)備的安全保護(hù)。
可信計(jì)算;非對稱加密認(rèn)證;地址隱藏;安全存儲(chǔ);可信認(rèn)證
自從棱鏡門事件后,信息系統(tǒng)或終端的安全性受到廣泛關(guān)注,如何讓系統(tǒng)或終端具有較高的安全性,已成為從事有安全要求的應(yīng)用領(lǐng)域的設(shè)計(jì)師們優(yōu)先考慮的問題。對大部分智能化系統(tǒng)或終端而言,需要一套軟件系統(tǒng),而其核心便是操作系統(tǒng),因此,如果確保了操作系統(tǒng)及其上運(yùn)行的應(yīng)用程序的安全性,那么將有力保障系統(tǒng)或終端的安全。直到今日還沒有較好的國產(chǎn)操作系統(tǒng)可供選擇,即便它能可靠穩(wěn)定地運(yùn)行,但在安全性方面仍存在不足,這就使得很多場合只能采用國外操作系統(tǒng),從而帶來了潛在的安全漏洞或隱患,而其上運(yùn)行的應(yīng)用程序安全性更無從保證。為實(shí)現(xiàn)具有安全特性的操作系統(tǒng),本文將可信計(jì)算理論引入到操作系統(tǒng)中,提出一種具有可信計(jì)算架構(gòu)的安全操作系統(tǒng)實(shí)現(xiàn)方法。
為保護(hù)操作系統(tǒng)及其應(yīng)用程序的關(guān)鍵數(shù)據(jù)不受惡意程序的破壞,出現(xiàn)了殺毒軟件、數(shù)據(jù)加密等技術(shù),雖然這些技術(shù)能夠在一定程度上對操作系統(tǒng)進(jìn)行保護(hù),但它們是建立在操作系統(tǒng)之上的應(yīng)用程序,其本身不屬于操作系統(tǒng)內(nèi)核的組成部分,因此,安全保護(hù)作用具有一定局限性,而且這些程序本身是否安全也有待考證。在棱鏡門事件之后,許多著名的應(yīng)用軟件、操作系統(tǒng)都可能存在后門,因此,操作系統(tǒng)本身是否安全,以及其上運(yùn)行的應(yīng)用程序是否安全等問題已成為迫在眉睫要解決的問題。
保證系統(tǒng)的安全特性有很多種方法,至今公認(rèn)比較可行的辦法是采用基于可信賴平臺(tái)模塊(Trusted Platform M odule,TPM)[1-2]的可信計(jì)算體系結(jié)構(gòu),該體系結(jié)構(gòu)從硬件系統(tǒng)著手,然后一直向上延伸到軟件系統(tǒng),從而建立信息安全體系[3],但基于TPM模塊的可信計(jì)算體系結(jié)構(gòu)[4]依賴于對TPM硬件模塊的構(gòu)造,并根據(jù)TPM的特性在其上建立軟件系統(tǒng)[5],因此,這種建立在特定硬件系統(tǒng)下的安全體系雖然安全性較高、性能較強(qiáng),但是開發(fā)難度較大,技術(shù)壁壘較多,不利于推廣和自主研發(fā)。為了避免對硬件系統(tǒng)的較大依賴,可從軟件系統(tǒng)如操作系統(tǒng)內(nèi)核著手,建立可信計(jì)算體系,因此,安全可信操作系統(tǒng)就是根據(jù)這一思路進(jìn)行研制的,其具有可信計(jì)算理論特征,也是可信計(jì)算架構(gòu)的一種實(shí)例化。
安全可信操作系統(tǒng)是在傳統(tǒng)意義的Linux基礎(chǔ)上,創(chuàng)造性加入可信計(jì)算理論[6],從操作系統(tǒng)(Operating System,OS)一級建立信息安全體系。該操作系統(tǒng)可從行為安全方面對系統(tǒng)驅(qū)動(dòng)、應(yīng)用軟件等進(jìn)程提供可信認(rèn)證[7-8]。該OS的優(yōu)勢在于安全性高,且便于開發(fā)和技術(shù)推廣,對硬件系統(tǒng)沒有特殊依賴,但不足之處在于對私鑰存放的器件有安全性要求,且硬件資源對OS的執(zhí)行性能有影響[9]。
3.1 硬件系統(tǒng)架構(gòu)
安全可信操作系統(tǒng)的實(shí)現(xiàn)方法可以不依賴于硬件體系結(jié)構(gòu),但考慮到非對稱加密認(rèn)證的私鑰存放的安全性問題,建議在硬件系統(tǒng)中采用一塊加密芯片,并利用地址隱藏技術(shù)對關(guān)鍵數(shù)據(jù)進(jìn)行安全存儲(chǔ)。圖1是硬件系統(tǒng)架構(gòu)。
圖1 硬件系統(tǒng)架構(gòu)
Nor Flash可作為啟動(dòng)設(shè)備;Nand Flash可以存放數(shù)據(jù),并作為地址隱藏技術(shù)的載體;加密芯片能提供2 048 Byte的私鑰,并支持非對稱(密鑰)加密算法(RSA)[10],可以是異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transm itter,UART)接口,也可以是USB接口[11]等。
3.2 安全可信操作系統(tǒng)架構(gòu)
安全可信OS內(nèi)核加入了安全可信認(rèn)證機(jī)制,從而實(shí)現(xiàn)了可信計(jì)算的OS體系結(jié)構(gòu),創(chuàng)造性建立了安全可信的OS系統(tǒng)[12]。目前,國內(nèi)至今尚無基于可信計(jì)算體系結(jié)構(gòu)的安全可信操作系統(tǒng),而在國外,微軟、蘋果等公司在相應(yīng)的桌面OS中曾提出過可信OS,但一直未公開實(shí)現(xiàn)方法。
安全可信操作系統(tǒng)的軟件系統(tǒng)架構(gòu)如圖2所示,其中,雙箭頭線表示雙向數(shù)據(jù)交互;單箭頭線表示單向數(shù)據(jù)交互。
圖2 安全可信操作系統(tǒng)軟件架構(gòu)
安全可信認(rèn)證機(jī)制由OS內(nèi)核中的進(jìn)程管理模塊和認(rèn)證管理模塊協(xié)作完成。進(jìn)程管理模塊要求應(yīng)用程序進(jìn)行認(rèn)證,并根據(jù)認(rèn)證結(jié)果對應(yīng)用程序進(jìn)行相應(yīng)處理。當(dāng)應(yīng)用程序提交認(rèn)證請求時(shí),進(jìn)程管理模塊將調(diào)度認(rèn)證管理模塊進(jìn)行認(rèn)證,認(rèn)證管理模塊會(huì)根據(jù)非對稱加密算法進(jìn)行認(rèn)證,并將認(rèn)證結(jié)果返回給進(jìn)程管理模塊。非對稱加密認(rèn)證算法中的私鑰由加密芯片中獲取,公鑰由應(yīng)用程序提交。
在Linux內(nèi)核中實(shí)現(xiàn)可信計(jì)算架構(gòu),需完成以下工作:
(1)實(shí)現(xiàn)地址隱藏,對加密芯片的私鑰給以安全存儲(chǔ);
(2)實(shí)現(xiàn)非對稱加密認(rèn)證算法,提供對進(jìn)程的公鑰認(rèn)證;
(3)實(shí)現(xiàn)進(jìn)行的可信認(rèn)證過程。
3.2.1 地址隱藏及安全存儲(chǔ)
安全可信OS具備地址隱藏及安全存儲(chǔ)技術(shù),主要是對加密芯片的私鑰,及其涉及私鑰的操作進(jìn)行存儲(chǔ)和保護(hù)。通過Linux的Boot Loader啟動(dòng)程序?qū)Υ鎯?chǔ)器的物理地址空間進(jìn)行分配,可分為被隱藏的地址段和不受限制的地址段,隱藏地址段又可稱為受限制的地址段。在Boot Loader啟動(dòng)程序中,通過配置處理器的寄存器以及地址映射關(guān)系,使得Linux操作系統(tǒng)在建立內(nèi)存管理單元(Memory Management Unit,MMU)管理時(shí),只在不受限制的地址段上進(jìn)行,而被隱藏的地址段不參與MMU建立。在Linux系統(tǒng)啟動(dòng)后,MMU只能管理不受限制的物理地址段。而被隱藏地址段對MMU不可見,經(jīng)過以上處理后,除指定驅(qū)動(dòng)程序外,Linux操作系統(tǒng)及Linux操作系統(tǒng)上運(yùn)行的程序都不能直接訪問該被隱藏的地址段。指定驅(qū)動(dòng)程序不通過MMU的地址映射而是采用物理地址(實(shí)地址)對該被隱藏的地址段進(jìn)行操作。
由于隱藏地址段對操作系統(tǒng)和應(yīng)用程序不可見,只接受指定的驅(qū)動(dòng)程序訪問,此時(shí)該隱藏地址段中保存的數(shù)據(jù)或信息也受到了保護(hù),增加了系統(tǒng)的安全特性,實(shí)現(xiàn)原理如圖3所示。
圖3 地址隱藏及安全存儲(chǔ)實(shí)現(xiàn)
3.2.2 非對稱加密認(rèn)證
安全可信OS具備非對稱加密認(rèn)證機(jī)制,主要是使用加密芯片的私鑰,對進(jìn)程的公鑰進(jìn)行RSA認(rèn)證??稍谟布到y(tǒng)中設(shè)置一個(gè)用于生成私鑰的加密芯片,并在存儲(chǔ)器中開辟一塊特定存儲(chǔ)區(qū)域用于存儲(chǔ)與加密和解密相關(guān)的數(shù)據(jù),該存儲(chǔ)區(qū)域需隱藏,增加安全性。
當(dāng)操作系統(tǒng)收到應(yīng)用程序或進(jìn)程傳來的公鑰時(shí),激活認(rèn)證程序以完成認(rèn)證。認(rèn)證過程包括:
(1)通過加密芯片的驅(qū)動(dòng)程序從加密芯片中讀出私鑰;
(2)將私鑰保存到所述的特定存儲(chǔ)區(qū)域;
(3)使用RSA算法解密,完成認(rèn)證,并將認(rèn)證結(jié)果返回。
特定存儲(chǔ)區(qū)域只由認(rèn)證程序使用,在解密過程中,私鑰及與私鑰相關(guān)的數(shù)據(jù)均存儲(chǔ)在該特定存儲(chǔ)區(qū)域內(nèi),而不使用系統(tǒng)臨時(shí)內(nèi)存進(jìn)行存儲(chǔ),解密完成后對特定存儲(chǔ)區(qū)域進(jìn)行清空。應(yīng)使用加密芯片的驅(qū)動(dòng)程序完成對加密芯片的接口驅(qū)動(dòng)以及芯片內(nèi)部寄存器的讀寫。
認(rèn)證程序應(yīng)作為內(nèi)核態(tài)程序運(yùn)行在Linux操作系統(tǒng)中,受操作系統(tǒng)進(jìn)程調(diào)度,其他內(nèi)核程序或進(jìn)程不能調(diào)用該程序。當(dāng)操作系統(tǒng)啟動(dòng)后,認(rèn)證程序就開始運(yùn)行,并一直處于等待狀態(tài)。當(dāng)操作系統(tǒng)收到公鑰后,會(huì)激活該認(rèn)證程序運(yùn)行,實(shí)現(xiàn)原理如圖4所示。
圖4 非對稱加密認(rèn)證實(shí)現(xiàn)
3.2.3 進(jìn)程可信認(rèn)證
安全可信OS具備對其上運(yùn)行的進(jìn)程或應(yīng)用程序提供認(rèn)證的能力,從而保證進(jìn)程的安全可信。攜帶公鑰的進(jìn)程(PP)由進(jìn)程管理模塊(PM)啟動(dòng)運(yùn)行,并提交公鑰給操作系統(tǒng)進(jìn)程管理模塊,此后攜帶公鑰的進(jìn)程進(jìn)入等待狀態(tài)。在PM收到公鑰后,將公鑰提交給認(rèn)證模塊(CA),從而激活CA運(yùn)行。在CA獲得公鑰后,從指定位置提取私鑰,并使用指定算法進(jìn)行認(rèn)證,然后將認(rèn)證結(jié)果返回給PM。如果認(rèn)證通過,PM允許攜帶公鑰的進(jìn)程(PP)繼續(xù)運(yùn)行,如果認(rèn)證不通過,PM禁止攜帶公鑰的進(jìn)程(PP)運(yùn)行。在這個(gè)機(jī)制中,CA對PP不可見,只由PM調(diào)度。PM以管道或消息隊(duì)列方式將公鑰提交給CA。由硬件系統(tǒng)的私鑰生成器提供私鑰,認(rèn)證算法為支持2 048 Byte密鑰的RSA非對稱加密算法,秘鑰長度可根據(jù)實(shí)際運(yùn)行情況選擇。
在Linux內(nèi)核中,實(shí)現(xiàn)進(jìn)程的可信認(rèn)證機(jī)制,需要完成以下工作:
(1)優(yōu)化進(jìn)程管理模塊(PM)。Linux本身具有進(jìn)程管理調(diào)度功能,但基本沒有對進(jìn)程進(jìn)行認(rèn)證的能力,因此,需要在PM創(chuàng)建進(jìn)程之前增加認(rèn)證過程。
(2)增加認(rèn)證模塊(CA)。此模塊新增到OS內(nèi)核中,用來對進(jìn)程進(jìn)行認(rèn)證。CA只由PM調(diào)度,通過消息隊(duì)列或管道與PM交互信息,對其他進(jìn)程不可見。
(3)進(jìn)程攜帶公鑰的方式,由發(fā)起方實(shí)現(xiàn)。OS中的PM只對公鑰進(jìn)行收集,并提交給CA進(jìn)行認(rèn)證,并依據(jù)認(rèn)證結(jié)果決定是否創(chuàng)建進(jìn)程。
整個(gè)進(jìn)程認(rèn)證過程的原理實(shí)現(xiàn)如圖5所示。
圖5 進(jìn)程可信認(rèn)證過程
為了測試本文安全可信OS的執(zhí)行性能,搭建測試環(huán)境如下:
(1)處理器采用PowerPC P2041(四核)處理器,存儲(chǔ)器采用S29GL01GP(Nor Flash)和MT29F4G08(Nand Flash),內(nèi)存采用MT41J256M 16HA(DDR3),另外處理器集成USB,I2C和UART接口。
(2)選用具有UART,I2C或USB任一接口的加密芯片,該加密芯片需能提供2 048 Byte的私鑰,因此,加密芯片采用TF32A 09器件。
(3)取用Linux2.6內(nèi)核操作系統(tǒng),以及相對應(yīng)的UBOOT啟動(dòng)程序。在該內(nèi)核代碼中修改進(jìn)程管理程序,增加認(rèn)證程序和加密芯片驅(qū)動(dòng)程序。修改UBOOT的地址映射關(guān)系,建立隱藏地址段。
4.1 系統(tǒng)啟動(dòng)的執(zhí)行時(shí)間
在通用Linux OS和安全可信OS的啟動(dòng)過程中,用定時(shí)器做一個(gè)啟動(dòng)時(shí)間測試函數(shù),用來檢測2個(gè)OS的啟動(dòng)時(shí)間,并且精簡一些啟動(dòng)打印信息,加快啟動(dòng)速度,通過對比獲得2個(gè)OS的啟動(dòng)時(shí)間的差異,測試次數(shù)為50次,取平均值,單位為m s。測試得到的數(shù)據(jù)為:通用Linux OS的啟動(dòng)時(shí)間為10 000± 0.1 ms,安全可信OS的啟動(dòng)時(shí)間為10 010±0.1 ms。由測得的數(shù)據(jù)分析可知,增加可信計(jì)算架構(gòu)的安全可信OS比通用Linux OS多花費(fèi)10 m s的啟動(dòng)時(shí)間,多出的時(shí)間主要是用來啟動(dòng)或建立認(rèn)證程序。測試時(shí)間偏差在±10%之間。
4.2 進(jìn)程可信認(rèn)證的執(zhí)行時(shí)間
在安全可信OS中,生成一些進(jìn)程用來測試可信認(rèn)證的執(zhí)行情況。這些進(jìn)程將攜帶公鑰,并請求OS中的認(rèn)證程序進(jìn)行可信認(rèn)證。測試進(jìn)程數(shù)從1個(gè)到20個(gè)再到40個(gè),開啟和關(guān)閉P2041的多核模式,使用定時(shí)器計(jì)數(shù)認(rèn)證執(zhí)行時(shí)間,取平均時(shí)間,然后將這些數(shù)據(jù)進(jìn)行對比,結(jié)果如表1所示。
表1 進(jìn)程可信認(rèn)證的執(zhí)行時(shí)間μs
考慮到程序的優(yōu)化以及測試環(huán)境的差異可能會(huì)導(dǎo)致數(shù)據(jù)的不同,因此,該表給出了偏差范圍力求準(zhǔn)確。由表1可知,在多核狀態(tài)下進(jìn)程認(rèn)證程序的綜合執(zhí)行時(shí)間要少些,進(jìn)程個(gè)數(shù)增加會(huì)增加進(jìn)程認(rèn)證的綜合執(zhí)行時(shí)間。
為解決目前信息系統(tǒng)的安全性問題,本文從信息系統(tǒng)的核心部件操作系統(tǒng)內(nèi)核著手,提出一種安全可信操作系統(tǒng)的實(shí)現(xiàn)方法。在傳統(tǒng)Linux的基礎(chǔ)上,實(shí)現(xiàn)了地址隱藏和安全存儲(chǔ)、非對稱加密認(rèn)證算法和進(jìn)程可信認(rèn)證機(jī)制,從而構(gòu)建出具有可信計(jì)算結(jié)構(gòu)特征的操作系統(tǒng)。其中,地址隱藏和安全存儲(chǔ)技術(shù)用來解決系統(tǒng)對私鑰安全存儲(chǔ)及其他操作的問題;非對稱加密認(rèn)證技術(shù)用來解決系統(tǒng)安全認(rèn)證秘鑰的問題;進(jìn)程可信認(rèn)證技術(shù)用來解決系統(tǒng)安全運(yùn)行及身份認(rèn)證問題。這些技術(shù)使其能從行為安全方面對系統(tǒng)驅(qū)動(dòng)、應(yīng)用軟件等進(jìn)程提供可信認(rèn)證,因此,能夠保證整個(gè)信息系統(tǒng)的安全。測試結(jié)果證明了其有效性。今后將繼續(xù)優(yōu)化安全可信操作系統(tǒng)的內(nèi)核,降低時(shí)間開銷,進(jìn)一步提高執(zhí)行性能。
[1] 肖 敬,喻 超,毋國慶.一種基于嵌入式安全系統(tǒng)的可信計(jì)算機(jī)系統(tǒng)[J].計(jì)算機(jī)工程,2006,32(13):246-247,279.
[2] 王 博,李 波,高振鐵.基于TPM的嵌入式可信計(jì)算平臺(tái)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,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接口的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(13):3316-3319.
[6] David C,Ryan C.可信計(jì)算[M].趙 波,譯.北京:機(jī)械工業(yè)出版社,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] 徐明迪,楊連嘉.嵌入式實(shí)時(shí)操作系統(tǒng)可信計(jì)算技術(shù)研究[J].計(jì)算機(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ì)算架構(gòu)的安全操作系統(tǒng)實(shí)現(xiàn)方法[J].計(jì)算機(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-),男,工程師、碩士,主研方向:信息隱藏,身份認(rèn)證。
2014-09-22
2014-10-23 E-m ail:liu_zhichen@163.com