專利名稱:一種建立基于efi的可信引導系統(tǒng)的方法
技術領域:
本發(fā)明屬于信息安全認證系統(tǒng)范圍,具體涉及利用安全U盤的認證功能和安全 可信存儲功能,在Linux系統(tǒng)啟動前對啟動用戶進行認證并對關鍵的配置文件以及 操作系統(tǒng)內核文件進行校驗,確保啟動的Linux操作系統(tǒng)是一個干凈、可信的操作系 統(tǒng)。
背景技術:
可信是安全的基礎.近年來被高度關注的可信計算平臺技術從可信的角度來幫 助提高系統(tǒng)的安全性.可信計算的核心思想是"可信傳遞",TCG (Trusted Computing Gro叩:可信計算組織)提出了兩種實現(xiàn)可信傳遞的關鍵技術,一是在計算平臺上引入 "可信根",二是利用可信根來建立可信鏈.對于PC平臺而言,TCG定義了從計算平 臺加電BIOS (Basic丄nput/0utput System:基本輸入輸出系統(tǒng))執(zhí)行開始,到引導 代碼的執(zhí)行,再到操作系統(tǒng)啟動和上層應用程序的執(zhí)行的一系列過程,信任將通過 這個過程一直傳遞下去,直到整個計算環(huán)境的建立.由此可見,引導過程的安全是計 算機系統(tǒng)安全的基點,引導階段的可信驗證是建立可信鏈的關鍵一環(huán).根據(jù)TCG相關 規(guī)范,建立平臺信任鏈的關鍵硬件是TPM (Trusted Platform Module) . TPM是一塊 類似于智能,的芯片,是整個終端的信任根.我們也可以制作安全U盤(具有智能卡 和U盤的雙重功能)作為系統(tǒng)可信根。
怎樣基于TPM建立系統(tǒng)的可信引導環(huán)境,國內外的學者對此進行了研究。Enforcer 是Danmouth大學開發(fā)的一個Linux安全模塊,它修改了LILO(Linux Loader)以支持 TPM,使用TPM封裝了一個加密文件系統(tǒng)的加密密碼,引導過程中若發(fā)現(xiàn)指定文件的 完整性與預期的不符則拒絕釋放該密鑰.AEGIS系統(tǒng)是基于嵌入式的安全模塊,將系 統(tǒng)引導分為多個層次,在引導過程的每一層之間轉移的時候都進行完整性驗證,轉 移間完整性驗證失敗時涉及到了一個恢復過程.德國波鴻大學的TrustedGrub和IBM的TCG Grub都是利用系統(tǒng)的TPM芯片,遵循了TCG規(guī)范,但只提供了簡單的引導過程 的度量.德國的Drseden大學的BemhardKauer開展了基于TPM和L4操作系統(tǒng)的認證啟 動研究工作.然而,上述的研究都是基于傳統(tǒng)BIOS進行的。
從IBM于上世紀八十年代初推出了全世界第一 臺PC機開始,BIOS就成了個人計算 機必備的系統(tǒng)軟件。傳統(tǒng)上的BI0S經(jīng)過了長達20多年的時間,基本上沒有大的特別 的改進。EFI是Extensible Firmware Interface的縮寫,中文意思是可擴展固件接 口。 EFI是Intel為了解決BIOS難于擴充的缺陷而推出的一項新技術,作為傳統(tǒng)BIOS 的接班人之一,是理論上能夠很好地接替并且擴展現(xiàn)有BIOS功能的方案。EFI既保留 了傳統(tǒng)BIOS的所有基本功能,同時又針對傳統(tǒng)BIOS的不足進行了必要的補充。
在基于新的EFI情況下,結合安全U盤的認證和安全功能建立平臺信任鏈是一個 需要研究的課題,國內外目前在這方面的研究很少。
發(fā)明內容
本發(fā)明的目的是提供一種建立基于EFI的可信引導系統(tǒng)的方法,其特征在于,
具體包括
第一步,通過Linux操作系統(tǒng)下的初始化模塊對安全U盤進行初始化,設置需要 驗證的啟動用戶認證信息和操作系統(tǒng)內核模塊的完整性校驗信息;
第二步,對支持EFI的機器進行啟動,當通過EFI引導管理器提示選擇啟動模 塊時,選擇從文件ELilo.efi啟動;若機器不支持EFI啟動,則需要使用EFI EDK 中的DUET制作EFI啟動U盤,并將ELilo.efi以及操作系統(tǒng)內核模塊和相關的 initrd模塊存放在EFI啟動U盤上;使用EFI啟動U盤啟動系統(tǒng)到EFI Shell環(huán)境; 第三步,使用EFI Shell環(huán)境下的命令load裝載EFI下的安全U盤驅動程序; 第四步,使用ELilo啟動操作系統(tǒng)內核。ELilo利用安全U盤對啟動用戶進行認 證并對操作系統(tǒng)內核進行可信驗證,如果通過,則啟動系統(tǒng),否則終止系統(tǒng)的啟動 過程。
所述Linux操作系統(tǒng),在新的EFI環(huán)境下使用安全U盤作為系統(tǒng)的一個可信硬件,根據(jù)可信計算理論,設計并實現(xiàn)對引導階段文件的可信校驗,建立引導階段 的可信鏈。
所述ELilo啟動內核是使用Elilo引導模塊,利用安全U盤提供的安全功能對 Elilo模塊進行安全增強,對啟動階段的文件進行檢驗,完成引導階段的可信啟動。 所述支持EFI的機器為長城安全電腦二代、惠普RX2600等。 所述不支持EFI的機器為普通基于傳統(tǒng)BIOS的PC機等。 本發(fā)明相比現(xiàn)有技術有如下優(yōu)點
1. 基于EFI進行引導階段文件的可信檢驗,是對基于傳統(tǒng)BIOS技術可信引導的 有益補充.
2. 在引導階段對啟動過程中的關鍵文件進行完整性校驗,若通過則啟動系統(tǒng),否 則終止系統(tǒng)的啟動過程,增強了系統(tǒng)的可信性.
3. 在啟動階段對啟動用戶進行認證增強了系統(tǒng)的安全性。
4. 使用安全U盤作為可信根,增強了系統(tǒng)的實用性和便利性,更符合用戶的使 用習慣。
圖1是基于EFI的Linux操作系統(tǒng)引導流程圖 圖2是本發(fā)明的基于EFI的操作系統(tǒng)可信引導流程圖 圖3是ELilo系統(tǒng)中Linux內核模塊探測功能bzlmagejrobe 0的流程圖 圖4是本發(fā)明的Linux內核模塊探測功能bzlmagej)robe ()的流程圖 圖5是ELilo系統(tǒng)中Linux內核模塊裝載功能do_kernel—load()的流程圖 圖6是本發(fā)明的基于安全U盤的Linux內核模塊可信裝載功能 do—kernel—load O流程圖
圖7是本發(fā)明的基于EFI的安全U盤驅動棧示意圖
具體實施例方式
本發(fā)明提供一種建立基于EFI的可信引導系統(tǒng)的方法,下面結合附圖作對本發(fā)明作進一步詳述
圖1,圖2,圖3,圖4,圖5,圖6顯示了本發(fā)明的工作原理.,
如圖1所示,基于EFI的操作系統(tǒng)引導流程。整個EFI引導系統(tǒng)的主要模塊是 EFI引導管理器和EFILoader?;趥鹘y(tǒng)BIOS的Linux操作系統(tǒng)引導模塊主要有 Lilo和Grub。目前支持EFI的開源Linux操作系統(tǒng)引導模塊有ELilo和Grub2,本 發(fā)明使用ELilo。 Linux引導過程中,我們假定EFI以及其中的引導管理器都是可信 的,首先由引導管理器選擇ELilo引導系統(tǒng)。由ELilo査找并裝載內核,然后將系 統(tǒng)控制權交給裝載的操作系統(tǒng)內核,從而啟動操作系統(tǒng).
如圖2所示,基于EFI的操作系統(tǒng)可信引導過程中,主要對ELilo進行了安全增 強,由ELilo調度操作系統(tǒng)內核運行前對操作系統(tǒng)內核模塊進行可信驗證,若符合 可信的條件,則繼續(xù)引導操作系統(tǒng),從而啟動操作系統(tǒng);否則,停止操作系統(tǒng)的調 度和運行。具體流程如下
第一歩,通過Linux操作系統(tǒng)下的初始化模塊對安全U盤進行初始化,設置需要 驗證的內核模塊的完整性校驗信息。
第二步,對系統(tǒng)固件支持EFI的機器進行啟動,當通過EFI引導管理器提示選 擇啟動模塊時,選擇從文件ELilo. efi啟動;若系統(tǒng)固件不支持EFI啟動,則需要 使用TianoCore EDK中的DUET制作EFI啟動U盤,并將ELilo以及操作系統(tǒng)內核和 相關的initrd模塊存放在EFI啟動U盤上。使用EFI啟動U盤啟動系統(tǒng)到EFI Shell 環(huán)境下,假設操作系統(tǒng)內核模塊為vmlinuz-2.6. 18-8.10WS, Initrd模塊為 initrd-2. 6. 18-8. 10WS. img, Linux安裝的根分區(qū)為/dev/sda10,則使用ELilo命 令 ELilo -i initrd-2. 6. 18-8. 10WS. img vmlinuz-2.6.18-8. 10WS ro .rootVdev/sda10啟動內核運行。
第三步,ELilo利用安全U盤對操作系統(tǒng)內核以及相關的配置文件進行可信驗 證,若通過,則啟動系統(tǒng),否則終止系統(tǒng)的啟動過程。
圖3所示,Elilo原有的啟動流程中,首先要探測操作系統(tǒng)內核的存在,即通過
6讀取并分析引導扇區(qū),根據(jù)相關的配置數(shù)據(jù)對內核進行讀取。
圖4所示,我們修改了 Elilo啟動流程中探測操作系統(tǒng)內核,其中增加了對內 核文件內容的完整性值的計算,并將計算結果存放在VI中,并在后續(xù)的功能模塊中 對其進行檢査.
圖5所示,Elilo原有的啟動流程中操作系統(tǒng)內核探測成功后,便對操作系統(tǒng) 內核進行裝載,裝載成功后,通過調用EFI的引導服務接口 BS->ExitBootServices 0 終止EFI的引導服務,將系統(tǒng)控制權轉交給操作系統(tǒng)內核,進而調用啟動操作系統(tǒng) 內核的函數(shù)start_kernel ()啟動整個系統(tǒng)。
圖6所示,我們修改了 Elilo啟動流程中對操作系統(tǒng)內核的裝載模塊,在操作 系統(tǒng)內核真正加載之前,通過EFI下的安全U盤協(xié)議接口 EFI—SECURE—DISK中的相 關函數(shù)指針訪問安全U盤模塊。首先對啟動用戶進行認證,若認證不通過,停止操 作系統(tǒng)的裝載過程;若認證通過,則將原來存放在安全U盤模塊內的操作系統(tǒng)內核 完整性校驗值V2讀出并與V1進行比較,若相等,則對操作系統(tǒng)內核的完整性校驗 成功,立即終止EFI的引導服務,并將系統(tǒng)控制權轉交給操作系統(tǒng)內核,進而調用 啟動操作系統(tǒng)內核的函數(shù)start一kernel()啟動整個系統(tǒng);否則停止操作系統(tǒng)內核的 裝載,系統(tǒng)停止運行。
圖7所示為EFI下的安全U盤驅動棧。為了在操作系統(tǒng)內核被裝載運行前對 操作系統(tǒng)內核文件進行完整性校驗,需要使用一個安全設備作為可信存儲,本發(fā)明 使用一個安全存儲U盤,安全U盤為該發(fā)明提供信息的安全可信存儲功能。安全存 儲U盤的使用需要EFI下的驅動。最下層的是USB主機控制器設備驅動,其上是USB 總線驅動,然后是USB塊傳輸設備驅動,最上層是USB大容量設備驅動和智能卡設 備驅動。
權利要求
1.一種建立基于EFI的可信引導系統(tǒng)的方法,其特征在于,具體包括第一步,通過Linux操作系統(tǒng)下的初始化模塊對安全U盤進行初始化,設置需要驗證的啟動用戶認證信息和Linux操作系統(tǒng)內核模塊的完整性校驗信息;第二步,對支持EFI的機器進行啟動,當通過EFI引導管理器提示選擇啟動模塊時,選擇從文件ELilo.efi啟動;若機器不支持EFI啟動,則需要使用TianoCoreEDK中的DUET制作EFI啟動U盤,并將ELilo以及操作系統(tǒng)內核模塊和相關的initrd模塊存放在EFI啟動U盤上;使用EFI啟動U盤啟動系統(tǒng)到EFI Shell環(huán)境下;第三步,使用EFI Shell命令load裝載EFI下的安全U盤驅動程序;第四步,使用ELilo啟動內核,ELilo利用安全U盤對啟動用戶進行認證并對操作系統(tǒng)內核進行可信驗證,如果通過,則啟動系統(tǒng),否則終止系統(tǒng)的啟動過程。
2.根據(jù)權利要求1所述建立基于EFI的可信引導系統(tǒng)的方法,其特征在于, 所述Urmx操作系統(tǒng),在新的基于EFI的BIOS環(huán)境下使用安全U盤作為系統(tǒng)的一個 Q了信硬件,根據(jù)可信計算理論利用可信根建立可信鏈實現(xiàn)系統(tǒng)町信的方法,設計并 實現(xiàn)對引導階段文件的可信校驗,建立引導階段的可信鏈。
3.根據(jù)權利要求1所述建立基于EFI的可信引導系統(tǒng)的方法,其特征在于,所 述ELilo啟動操作系統(tǒng)內核是使用Elilo引導模塊,利用安全U盤提供的安全功能 對ElUo模塊進行安全增強,對啟動階段的文件進行檢驗,完成引導階段的可信啟 動。
全文摘要
本發(fā)明公開了屬于信息安全認證系統(tǒng)范圍的一種建立基于EFI的可信引導系統(tǒng)的方法。通過Linux操作系統(tǒng)下的初始化模塊對安全U盤進行初始化,設置需要驗證的操作系統(tǒng)內核模塊的完整性校驗信息。對系統(tǒng)固件支持EFI的機器進行啟動,將ELilo以及操作系統(tǒng)內核模塊和相關的initrd模塊存放在EFI啟動U盤上,使用EFI Shell命令裝載EFI下的安全U盤驅動程序;利用安全U盤對啟動用戶進行認證并對操作系統(tǒng)內核進行可信驗證。在Linux系統(tǒng)啟動前對啟動用戶進行認證并對關鍵的配置文件以及操作系統(tǒng)內核文件進行校驗,確保啟動的Linux操作系統(tǒng)是一個干凈、可信的操作系統(tǒng)。
文檔編號G06F21/22GK101645127SQ200910086668
公開日2010年2月10日 申請日期2009年6月17日 優(yōu)先權日2009年6月17日
發(fā)明者劉吉強, 彭雙和, 臻 韓 申請人:北京交通大學