一種龍芯硬件平臺上的linux操作系統(tǒng)保護方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全領(lǐng)域,具體涉及一種龍芯硬件平臺上的Iinux操作系統(tǒng)保護方法。
【背景技術(shù)】
[0002]近年來,圍繞發(fā)展自主可控、安全可信的國產(chǎn)軟硬件,國內(nèi)一些企業(yè)進行了積極的探索,涌現(xiàn)了一批以龍芯為代表的自主CPU芯片。針對龍芯硬件平臺配套的Linux操作系統(tǒng),Linux操作系統(tǒng)是開源軟件且十分普及,因此分析其內(nèi)部運行機制十分容易,也易于發(fā)現(xiàn)其缺陷和漏洞。運行Linux操作系統(tǒng)的龍芯硬件設(shè)備,若不進行保護,易于破解,易受攻擊,面臨著極大的安全風險。
[0003]隨著龍芯CPU的成熟和國產(chǎn)替代計劃的推進,龍芯越來越廣泛的應(yīng)用在國產(chǎn)通信設(shè)備和國防信息裝備中,本發(fā)明是一種針對龍芯硬件平臺的Iinux操作系統(tǒng)保護技術(shù),可有效的保護采用龍芯硬件的信息設(shè)備的數(shù)據(jù)安全。
[0004]Iinux是一種非常流行的開源操作系統(tǒng),擁有豐富的開源軟件,是龍芯CPU的配套操作系統(tǒng)。Linux操作系統(tǒng)通常作為軟件嵌入在龍芯硬件設(shè)備中,作為一個整體出售給客戶。由于Iinux操作系統(tǒng)的開源性,龍芯硬件設(shè)備被非法分子獲取后,面臨著極大的安全威脅,保護技術(shù)及安全性如下所示:
一、無保護技術(shù),安全性極低,面臨極大的安全性威脅:
1.可輕易獲取龍芯硬件設(shè)備操作系統(tǒng)所有文件,面臨著數(shù)據(jù)泄密的威脅;
2.文件系統(tǒng)暴露,面臨著被復制,盜版的威脅;
3.操作系統(tǒng)賬戶文件暴露,可輕易獲取管理員權(quán)限;
4.程序文件暴露,可被用來分析漏洞,面臨著被漏洞攻擊的威脅;
5.關(guān)鍵程序暴露,可用來分析破解,面臨著軟件知識產(chǎn)權(quán)被侵犯的威脅。
[0005]二、文件系統(tǒng)加密保護,安全性中,由于內(nèi)核未加密,此技術(shù)仍然面臨著較大的安全性威脅:
1.內(nèi)核暴露,可被用來分析漏洞,面臨著被漏洞攻擊的威脅;
2.內(nèi)核未加密,可被用來植入惡意程序,面臨著文件系統(tǒng)加密被破解的威脅;
三、磁盤加密保護,安全性高,采用此種技術(shù),可獲得較高的安全性保護,但是此技術(shù)實現(xiàn)較為復雜,需要專用的加密磁盤硬件,并改造龍芯固件以支持加密磁盤。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問題是:本發(fā)明提出了一種龍芯硬件平臺上的Iinux操作系統(tǒng)保護技術(shù),這項技術(shù)采用內(nèi)核加密和文件系統(tǒng)加密兩種方法,全面的保護操作系統(tǒng)數(shù)據(jù)安全。
[0007]本發(fā)明所采用的技術(shù)方案為:
一種龍芯硬件平臺上的Iinux操作系統(tǒng)保護方法,所述保護方法采用內(nèi)核加密和文件系統(tǒng)加密兩種方法,全面的保護操作系統(tǒng)數(shù)據(jù)安全。
[0008]其中,內(nèi)核加密是通過對Linux初始RAM磁盤(initrd)進行加密來實現(xiàn)的;在內(nèi)核生成階段,對Linux初始RAM磁盤進行加密;在系統(tǒng)啟動時,對Linux初始RAM磁盤進行解密;
文件系統(tǒng)加密是通過Iinux設(shè)備映射技術(shù)實現(xiàn),文件系統(tǒng)加密后,不能直接進行掛載,需要將加密的文件系統(tǒng)做映射,掛載映射后的文件系統(tǒng),才能對文件系統(tǒng)進行數(shù)據(jù)讀寫操作。
[0009]Linux初始RAM磁盤的過程,是在系統(tǒng)引導過程中掛載的一個臨時文件系統(tǒng),Linux啟動過程可分為兩階段的引導過程:第一個階段,Linux在內(nèi)存中初始化一個虛擬磁盤,然后將Linux初始RAM磁盤解壓并復制到此虛擬磁盤中,Linux初始RAM磁盤包含了各種可執(zhí)行程序和驅(qū)動程序,它們被用來初始化硬件和Linux運行環(huán)境;第二個階段,將這個虛擬磁盤卸載,并釋放內(nèi)存,然后掛載實際的文件系統(tǒng),并運行init程序,由init程序完成引導過程;
由此可見Linux操作系統(tǒng)中Linux初始RAM磁盤是非常重要的,其中包含了非常重要的系統(tǒng)引導程序,驅(qū)動程序和其他配置文件,若不進行加密,便可隨意更改替換其中的文件,注入惡意程序,變更啟動順序,對Linux操作系統(tǒng)的安全構(gòu)成了威脅。
[0010]文件系統(tǒng)是Linux在存儲設(shè)備上組織文件和數(shù)據(jù)的結(jié)構(gòu),通過對文件系統(tǒng)進行加密,將文件和數(shù)據(jù)以密文的形式存儲在磁盤上,可以防止龍芯硬件設(shè)備丟失后磁盤數(shù)據(jù)被盜。
[0011]所述內(nèi)核加密的實施步驟如下:
(1)修改內(nèi)核生成流程,在Linux初始RAM磁盤生成腳本最后追加加密過程,調(diào)用加密程序?qū)inux初始RAM磁盤進行加密;
(2)修改Linux源碼initrd部分,在其中嵌入解密函數(shù),修改initrd處理代碼,在開始處調(diào)用解密函數(shù)對Linux初始RAM磁盤進行解密;
(3)修改完成后編譯Linux源碼,將生成的內(nèi)核文件嵌入到龍芯硬件設(shè)備中。
[0012]所述文件系統(tǒng)加密實施步驟如下:
(O首先增加新的Linux設(shè)備映射驅(qū)動,將密碼算法嵌入在驅(qū)動中;
(2)編譯密碼算法驅(qū)動模塊,并加載驅(qū)動模塊;
(3)為龍芯硬件設(shè)備的磁盤做映射,并指定映射時使用密碼算法驅(qū)動模塊;
(4)將映射后的虛擬磁盤掛載到臨時目錄,并將龍芯硬件設(shè)備的文件系統(tǒng)復制到此臨時目錄中,完成文件系統(tǒng)加密存儲;
(5)修改Linux初始RAM磁盤中的文件系統(tǒng)掛載流程,將直接掛載改為先做磁盤設(shè)備映射,然后掛載映射后的虛擬磁盤設(shè)備。
[0013]采用上述文件系統(tǒng)加密技術(shù),數(shù)據(jù)加解密在內(nèi)核中完成,對程序運行無任何影響。
[0014]本發(fā)明的有益效果為:本發(fā)明改進了 Linux核心流程,采用內(nèi)核加密和文件系統(tǒng)加密結(jié)合的方法,從根本上保護其內(nèi)部運行機制,程序原理和關(guān)鍵數(shù)據(jù),既可以應(yīng)用在商業(yè)環(huán)境,防軟件盜版,保護知識產(chǎn)權(quán),也可以應(yīng)用于國防軍工等需要加密的環(huán)境,防破解,防泄密。本發(fā)明技術(shù)是一種軟件保護方案,無需硬件或固件的改動。
【附圖說明】
[0015]圖1為Linux內(nèi)核生成流程圖;
圖2為Linux啟動流程圖。
【具體實施方式】
[0016]下面參照附圖所示,通過【具體實施方式】對本發(fā)明進一步說明: