劉 煒
(陜西廣電網(wǎng)絡(luò)傳媒(集團(tuán))股份有限公司 西安分公司,陜西 西安 710038)
?
BIOS校驗(yàn)的可信操作系統(tǒng)啟動(dòng)方法
劉煒
(陜西廣電網(wǎng)絡(luò)傳媒(集團(tuán))股份有限公司 西安分公司,陜西 西安 710038)
摘要廣電網(wǎng)絡(luò)中的操作系統(tǒng),決定了主機(jī)安全防護(hù)系統(tǒng)中安全防護(hù)功能的有效性和自身程序的安全性。文中設(shè)計(jì)了一種基于BIOS校驗(yàn)的可信操作系統(tǒng)啟動(dòng)方法,通過對(duì)操作系統(tǒng)的身份驗(yàn)證來保證可信的操作系統(tǒng)被正確啟動(dòng),同時(shí)運(yùn)用文件分配表隱藏技術(shù)來防止操作系統(tǒng)被破壞和保護(hù)硬盤數(shù)據(jù)。該法校驗(yàn)準(zhǔn)確性較高,且數(shù)據(jù)安全性較好。
關(guān)鍵詞安全防護(hù);BIOS校驗(yàn);可信操作系統(tǒng);文件分配表隱藏
基本輸入輸出系統(tǒng)(Basic Input Output System,BIOS)[1]是固化在計(jì)算機(jī)主板核心的軟件系統(tǒng),其是連接操作系統(tǒng)和硬件設(shè)備的橋梁,通過其可對(duì)計(jì)算機(jī)的硬件設(shè)備進(jìn)行基本的輸入輸出操作。BIOS啟動(dòng)計(jì)算機(jī)的過程分為硬件啟動(dòng)和操作系統(tǒng)啟動(dòng)兩個(gè)階段。BIOS啟動(dòng)和初始化硬件的過程相對(duì)封閉和安全,而啟動(dòng)操作系統(tǒng)的階段則相對(duì)復(fù)雜和多樣,使用者可選擇從硬盤或從其他介質(zhì)啟動(dòng)操作系統(tǒng)等。操作系統(tǒng)啟動(dòng)的多樣性,給計(jì)算機(jī)的訪問控制和數(shù)據(jù)安全帶來很多風(fēng)險(xiǎn)。
目前在廣電網(wǎng)絡(luò)系統(tǒng)中,負(fù)責(zé)視頻信號(hào)錄播的主機(jī)系統(tǒng)安全性尤為重要。已經(jīng)采取的常規(guī)安全防護(hù)措施,其軟件自身的安全性和有效性仍依賴于操作系統(tǒng)的可信性,因此需要在操作系統(tǒng)啟動(dòng)階段就進(jìn)行安全防護(hù),真正做到系統(tǒng)可信。已有學(xué)者研究針對(duì)BIOS的安全問題提出一些安全設(shè)計(jì)方法和安全機(jī)制[2-3]。但由于這些方法的實(shí)現(xiàn)過程針對(duì)廣電系統(tǒng)中的主機(jī)來講并不適用,存在成本高或技術(shù)難度大的問題,本文從BIOS的啟動(dòng)階段設(shè)計(jì)了一種校驗(yàn)操作系統(tǒng)身份的方法,同時(shí)結(jié)合硬盤文件分配表FAT的加密隱藏技術(shù),增強(qiáng)了操作系統(tǒng)的可信性,同時(shí)不需要額外增加成本,簡(jiǎn)單易行。
1可信操作系統(tǒng)的啟動(dòng)方法
BIOS的主要功能是計(jì)算機(jī)加電啟動(dòng)時(shí)對(duì)CPU寄存器、定時(shí)器和各種控制器進(jìn)行測(cè)試,檢查其狀態(tài);初始化和測(cè)試內(nèi)存、主板芯片組、顯示卡以及相關(guān)的寄存器;記錄系統(tǒng)的設(shè)置狀態(tài),將中斷服務(wù)程序?qū)雰?nèi)存的常駐區(qū)域,向操作系統(tǒng)提供中斷服務(wù);最后訪問硬盤的MBR區(qū),引導(dǎo)操作系統(tǒng)并將計(jì)算機(jī)的控制權(quán)交給操作系統(tǒng)程序。
文件分配表(File Allocation Table,F(xiàn)AT)是用來記錄硬盤中所有文件存儲(chǔ)位置的數(shù)據(jù)表。硬盤經(jīng)過格式化和分區(qū)后,會(huì)在所屬分區(qū)中劃分3個(gè)區(qū)域:引導(dǎo)區(qū)、文件分配表區(qū)和數(shù)據(jù)區(qū)。文件分配表區(qū)共保存了兩個(gè)相同的FAT。這是因文件所占用的存儲(chǔ)空間(簇鏈)及空閑空間的管理均是通過FAT實(shí)現(xiàn)的,保存兩個(gè)即可保證若第一個(gè)損壞,還有第二個(gè)可以使用。FAT對(duì)于硬盤的使用較為重要,假若文件分配表區(qū)的FAT丟失或者隱藏,則硬盤上的文件就會(huì)因無法定位而不能使用了。通過FAT來定位文件位置的方法可見文獻(xiàn)[4]??尚挪僮飨到y(tǒng)啟動(dòng)的方法,如圖1所示。
圖1 BIOS校驗(yàn)操作系統(tǒng)身份的方法
BIOS在啟動(dòng)后會(huì)首先進(jìn)行各種硬件設(shè)備的檢測(cè)和初始化工作,包括對(duì)PCI設(shè)備的檢測(cè)和執(zhí)行擴(kuò)展的PCI模塊程序。本文設(shè)計(jì)的BIOS驗(yàn)證程序以PCI擴(kuò)展模塊(相比較其他類型的擴(kuò)展模塊,PCI類型的擴(kuò)展模塊兼容性最好[5])的形式內(nèi)嵌入某種PCI設(shè)備當(dāng)中。這樣當(dāng)BIOS檢測(cè)該P(yáng)CI設(shè)備時(shí),就會(huì)調(diào)用該擴(kuò)展模塊程序。此時(shí),PCI模塊程序并不會(huì)真正進(jìn)入BIOS驗(yàn)證程序當(dāng)中,而是查找系統(tǒng)的中斷服務(wù)表[6],將中斷服務(wù)INT19H的處理程序地址替換BIOS驗(yàn)證程序的入口地址。之所以這樣是因?yàn)闄z測(cè)PCI設(shè)備時(shí),可能硬盤設(shè)備并沒有完成初始化,還不能對(duì)存儲(chǔ)在硬盤上的操作系統(tǒng)進(jìn)行身份驗(yàn)證;只有在BIOS初始化完成所有硬件,且即將啟動(dòng)操作系統(tǒng)時(shí),進(jìn)行身份驗(yàn)證最合適。
通常情況下,BIOS在啟動(dòng)操作系統(tǒng)之前,會(huì)拋出INT19H的中斷。中斷處理程序查找能夠啟動(dòng)的磁盤,并將引導(dǎo)程序裝入內(nèi)存,開始操作系統(tǒng)的啟動(dòng)工作。利用BIOS啟動(dòng)操作系統(tǒng)時(shí)拋出INT19H中斷的特點(diǎn),將中斷處理程序替換為BIOS驗(yàn)證程序,同時(shí)保存原中斷處理程序地址。由驗(yàn)證程序讀取硬盤扇區(qū)中特定位置的操作系統(tǒng)標(biāo)志,判斷是否為可信的操作系統(tǒng)。若驗(yàn)證通過,則還原中斷處理程序的地址,繼續(xù)執(zhí)行操作系統(tǒng)啟動(dòng)的流程;否則,BIOS停止啟動(dòng)操作系統(tǒng)和等待用戶操作。
當(dāng)然,BIOS驗(yàn)證程序在驗(yàn)證通過后,還要硬盤FAT表已被加密的數(shù)據(jù)進(jìn)行解密還原,使得引導(dǎo)程序能夠正確分析操作系統(tǒng)的文件簇,這樣才能正常啟動(dòng)操作系統(tǒng)。加密FAT表的目的,就是要保護(hù)硬盤中文件不被破壞,提高操作系統(tǒng)的安全性。
2BIOS校驗(yàn)
BIOS驗(yàn)證程序完成對(duì)可信操作系統(tǒng)的身份校驗(yàn),需要經(jīng)過程序安裝、掛載和執(zhí)行3個(gè)步驟。
2.1程序安裝
程序安裝是指將驗(yàn)證程序以PCI擴(kuò)展模塊的形式嵌入PCI硬件設(shè)備中。首先在驗(yàn)證程序的頭部中加入擴(kuò)展頭說明。擴(kuò)展頭的匯編語言代碼[7]如下
PCI_EXTEND_HEADER:
db "PCIR";
VENDOR_IDdw10ecH;
DEVICE_IDdw8136H;
DATA_POINTERdw0H;
PCI_CFG_SIZEdw18H;
PCI_CFG_VERSIONdb0H;
CLASS_TYPE_LOWdb0H;
CLASS_TYPE_MIDdb0H;
CLASS_TYPE_HIdb2H;
IMAGE_SIZEdw10H;
VERSION_LEVELdw0H;
CODE_TYPEdb0H;
INDICATORdb80H;
PCI_RESERVEDdw0H;
擴(kuò)展頭告訴系統(tǒng),此程序?yàn)橐粋€(gè)PCI設(shè)備的擴(kuò)展模塊,然后通過BIOS的刷新工具,將此擴(kuò)展模塊安裝到特定PCI設(shè)備中。
2.2程序掛載
驗(yàn)證程序安裝成功后,并不會(huì)被BIOS所調(diào)用,而是需要通過掛載INT19H中斷處理程序后才能被BIOS執(zhí)行。所謂掛載就是將原程序的入口地址替換為驗(yàn)證程序自身的入口地址。被過載后驗(yàn)證程序才能被調(diào)用和進(jìn)行操作系統(tǒng)的身份驗(yàn)證。
程序掛載的過程代碼如下
(1)MOVAX, CS
(2)MOVDS, AX
(3)XORAX, AX
(4)MOVES, AX
(5)MOVEAX, DWORD PTR ES:[19H*4]
(6)MOVCS:OLDINT19, EAX
(7)CLI
(8)MOVAX, CS
(9)SHLEAX, 16
(10)MOVAX, OFFSET CheckOS
(11)MOVDWORD PTR ES:[19H*4], EAX
(12)STI
匯編代碼第(1)行~第(5)行,是從系統(tǒng)斷表中獲取中斷INT19H所存儲(chǔ)的處理程序的入口地址。 第(6)行保存老的程序入口地址到“OLDINT19”。 第(7)行是禁用系統(tǒng)中斷,以便修改系統(tǒng)中斷表。 第(8)行~第(11)行將驗(yàn)證程序“CheckOS”的入口地址,替換到中斷表INT19H的位置。第(12)行是恢復(fù)系統(tǒng)中斷。
2.3程序執(zhí)行
可信操作系統(tǒng)的標(biāo)志,存儲(chǔ)在硬盤的主引導(dǎo)區(qū)(MBR),也就是硬盤的第一個(gè)扇區(qū)。MBR的結(jié)構(gòu)主要分為3個(gè)部分:主引導(dǎo)程序、硬盤分區(qū)表(DPT)和結(jié)尾標(biāo)志,如圖2所示。從圖中可知MBR的大小為512Byte。可信操作系統(tǒng)的標(biāo)志由Mark1和Mark2兩部分組成:Mark1存儲(chǔ)在主引導(dǎo)程序的最后兩個(gè)字節(jié)(01BCH,01BDH),Mark2存儲(chǔ)在DPT的最后兩個(gè)字節(jié)(01FCH,01FDH)。選擇這4個(gè)位置存儲(chǔ)標(biāo)志,是因不影響主引導(dǎo)程序和DPT中其他位置的有效數(shù)據(jù)。
圖2 MBR的結(jié)構(gòu)
驗(yàn)證程序被調(diào)用后,就會(huì)去讀取硬盤MBR的內(nèi)容,然后提取出可信標(biāo)志進(jìn)行比對(duì)。如果是可信的操作系統(tǒng),則將控制權(quán)交給操作系統(tǒng)的引導(dǎo)程序,由其讀取MBR中有效的數(shù)據(jù),完成操作系統(tǒng)的啟動(dòng);否則停止啟動(dòng)操作系統(tǒng)。
3特性分析
3.1校驗(yàn)的準(zhǔn)確性
操作系統(tǒng)的可信標(biāo)志,是由驗(yàn)證程序在安裝時(shí)隨機(jī)產(chǎn)生的。雖然每臺(tái)計(jì)算機(jī)的可信標(biāo)志各不相同,但對(duì)每個(gè)可信操作系統(tǒng)來講又是固定的。
可信操作系統(tǒng)每啟動(dòng)一次,就由驅(qū)動(dòng)程序?qū)⒖尚艠?biāo)志重置一次。重置方法是在原有的標(biāo)志數(shù)值上減1(BIOS驗(yàn)證該標(biāo)志后再加1)。該驅(qū)動(dòng)程序是隨BIOS驗(yàn)證程序一起安裝的,其會(huì)在操作系統(tǒng)啟動(dòng)后被自動(dòng)加載運(yùn)行,直到操作系統(tǒng)關(guān)閉或重起;其主要作用是重置可信標(biāo)志和加密FAT。
引入驅(qū)動(dòng)程序的目的是為了提高BIOS驗(yàn)證的準(zhǔn)確度。因存在一塊硬盤上被有意或無意安裝多個(gè)操作系統(tǒng)的可能性,而這些操作系統(tǒng)中只能有一個(gè)是可信,其他操作系統(tǒng)均被認(rèn)為不可信的;所以必須阻止和破壞其他操作系統(tǒng)的安裝。一般情況下,在安裝操作系統(tǒng)的過程中需要重啟計(jì)算機(jī)兩次。若在這兩次當(dāng)中可信標(biāo)志沒有被重置,BIOS驗(yàn)證程序驗(yàn)證可信標(biāo)志時(shí)將會(huì)失敗,從而停止操作系統(tǒng)的安裝,進(jìn)而保證了可信操作系統(tǒng)的唯一性。
3.2數(shù)據(jù)的安全性
BIOS啟動(dòng)操作系統(tǒng)除了從硬盤中啟動(dòng)外,還能夠根據(jù)配置從光盤、USB介質(zhì)甚至是從網(wǎng)絡(luò)啟動(dòng)。一旦BIOS從其他方式啟動(dòng)操作系統(tǒng),則原有的可信操作系統(tǒng)不會(huì)被引導(dǎo),而硬盤中所存儲(chǔ)的數(shù)據(jù)就會(huì)脫離可信操作系統(tǒng)和安全軟件的保護(hù),存在被破壞和泄漏的風(fēng)險(xiǎn)。
為解決這一問題,需要對(duì)硬盤中的FAT進(jìn)行保護(hù),保護(hù)的方法就是FAT隱藏。所謂FAT隱藏,就是通過加密的方式將硬盤FAT中的原始數(shù)據(jù)進(jìn)行變換,使其不能被其他任何非可信的操作系統(tǒng)正確解析,硬盤上的文件也就不能使用了。這樣的方法起到數(shù)據(jù)保護(hù)的作用,提高了安全性。
當(dāng)然,在引導(dǎo)可信操作系統(tǒng)時(shí),BIOS驗(yàn)證程序會(huì)在校驗(yàn)通過后,立即對(duì)FAT的內(nèi)容進(jìn)行解密,不會(huì)影響系統(tǒng)的啟動(dòng)過程。在操作系統(tǒng)分析FAT的內(nèi)容完成后,加載驅(qū)動(dòng)程序的時(shí)候,由驅(qū)動(dòng)程序?qū)AT再次進(jìn)行加密,從而恢復(fù)FAT隱藏。
由于操作系統(tǒng)本身的文件大部分情況下均安裝在硬盤的第一個(gè)分區(qū),即主分區(qū),則對(duì)FAT的加密和解密只針對(duì)硬盤第一個(gè)分區(qū)(主分區(qū))的FAT1(主FAT扇區(qū))和FAT2(備用FAT扇區(qū))。這樣做的優(yōu)點(diǎn)是不用加解密其他分區(qū)的FAT數(shù)據(jù),加快處理速度。加密
算法可采用常見的對(duì)稱加密機(jī)制,如3DES、RC5[8]等,利用MBR中存儲(chǔ)的可信標(biāo)志作為加解密的密鑰。
4結(jié)束語
本文提出基于BIOS校驗(yàn)的可信操作系統(tǒng)啟動(dòng)方法,可應(yīng)用在安全級(jí)別要求較高的計(jì)算機(jī)監(jiān)控系統(tǒng)中。該方法增強(qiáng)了計(jì)算機(jī)操作系統(tǒng)身份驗(yàn)證的強(qiáng)度,對(duì)硬盤數(shù)據(jù)保護(hù)也較為有效。下一步將研究如何自動(dòng)還原已被破壞的可信操作系統(tǒng)。
參考文獻(xiàn)
[1]孫勇,楊義先.基于BIOS和USB盤實(shí)現(xiàn)對(duì)PC機(jī)的安全訪問[J].計(jì)算機(jī)應(yīng)用研究,2006,23(5):113-114,116.
[2]段晨輝.UEFI BIOS安全增強(qiáng)機(jī)制及完整性度量的研究[D].北京:北京工業(yè)大學(xué),2014.
[3]趙麗娜,陳小春,張超,等.BIOS安全更新及保護(hù)系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2015,34(8):2-4.
[4]劉可嘉,梁阿雷.實(shí)現(xiàn)實(shí)時(shí)FAT文件系統(tǒng)的一種簡(jiǎn)單方法[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(16):70-72.
[5]王曉箴,劉寶旭,藩林. BIOS惡意代碼實(shí)現(xiàn)及其檢測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程,2010, 36(21):17-18,21.
[6]鄭學(xué)堅(jiān),周斌.微型計(jì)算機(jī)原理及應(yīng)用[M].3版.北京:清華大學(xué)出版社,2001.
[7]張曉明,白鳳鳳,李雅紅.匯編語言程序設(shè)計(jì)[M].北京:國(guó)防工業(yè)出版社,2009.
[8]Schneider B.應(yīng)用密碼學(xué)協(xié)議、算法與C源程序[M].2版.吳世忠,祝世雄,張文政,等,譯.北京:機(jī)械工業(yè)出版社,2013.
A Trusted Operating System Boot Method Based on BIOS Authentication
LIU Wei
(Xi’an Branch, Shaanxi Radio and Television Network Media (Group), Xi’an 710038, China)
AbstractIn the broadcast television network, for host security protection systems, the effectiveness of the security protection and the security of the own procedures depend on the operating system. Based on BIOS authentication, this paper designs a trusted operating system boot method for the trust operating system to boot properly throughout the authentication on the operating system. The hidden file allocation tables (FAT) technology is adopted to prevent the operating system the data in the hard disk from being damaged. This method offers good accuracy and data security.
Keywordssecurity protection; BIOS authentication; trusted operating system; FAT hide
收稿日期:2015- 11- 20
作者簡(jiǎn)介:劉煒(1968-),男,碩士,工程師。研究方向:有線電視光電纜網(wǎng)絡(luò)建設(shè)等。
doi:10.16180/j.cnki.issn1007-7820.2016.07.026
中圖分類號(hào)TP 393
文獻(xiàn)標(biāo)識(shí)碼A
文章編號(hào)1007-7820(2016)07-088-04