王越峰 孫天澤
摘 要:本文在分析BIOS工作原理的基礎(chǔ)上, 提出將網(wǎng)絡(luò)身份認(rèn)證模塊嵌入到主板的BIOS中的方案, 實(shí)現(xiàn)機(jī)房管理中在BIOS下進(jìn)行客戶端的認(rèn)證過程。做到降低管理成本, 提高系統(tǒng)安全性, 有效解決計(jì)算機(jī)機(jī)房因不斷增加而產(chǎn)生的管理難的問題。
關(guān)鍵詞:BIOS 注冊(cè)認(rèn)證 機(jī)房管理
中圖分類號(hào):TP393.07文獻(xiàn)標(biāo)識(shí)碼:B文章編號(hào):1673-8454(2009)19-0075-03
隨著計(jì)算機(jī)機(jī)房規(guī)模的不斷擴(kuò)大,就要求提高實(shí)驗(yàn)室管理的效率及計(jì)算機(jī)的利用率,可靠、有效地管理機(jī)房中的計(jì)算機(jī)和系統(tǒng)資源,為了實(shí)現(xiàn)這種要求,就必須使用戶在進(jìn)入公共機(jī)房正式使用計(jì)算機(jī)之前進(jìn)行注冊(cè),即完成網(wǎng)絡(luò)身份認(rèn)證。同時(shí),隨著計(jì)算機(jī)的發(fā)展,一些擴(kuò)展卡都集成在主板上,為了充分利用主板上的硬件資源,在此提出網(wǎng)絡(luò)身份認(rèn)證模塊嵌入主板BIOS中的實(shí)現(xiàn)方法。
一、BIOS簡(jiǎn)介
BIOS是只讀存儲(chǔ)器基本輸入/輸出系統(tǒng),它是被固化到計(jì)算機(jī)中的一組程序,為計(jì)算機(jī)提供最低級(jí)的、最直接的硬件控制,在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用。BIOS是硬件與軟件程序之間的接口,負(fù)責(zé)解決硬件的即時(shí)需求,并按軟件對(duì)硬件的操作要求具體執(zhí)行。BIOS的功能包括自檢及初始化、硬件中斷處理、程序服務(wù)處理。
1.自檢及初始化
這個(gè)部分的功能是啟動(dòng)計(jì)算機(jī),包括三個(gè)部分,第一個(gè)部分是用于計(jì)算機(jī)剛接通電源時(shí)對(duì)硬件部分的檢測(cè),也叫做加電自檢(POST),功能是檢查計(jì)算機(jī)是否良好。第二個(gè)部分是初始化,包括創(chuàng)建中斷向量、設(shè)置寄存器、對(duì)一些外部設(shè)備進(jìn)行初始化和檢測(cè)等,其中很重要的一部分是BIOS設(shè)置,主要是對(duì)硬件設(shè)置的一些參數(shù),當(dāng)計(jì)算機(jī)啟動(dòng)時(shí)會(huì)讀取這些參數(shù),并和實(shí)際硬件設(shè)置進(jìn)行比較,如果不符合,會(huì)影響系統(tǒng)的啟動(dòng)。最后一個(gè)部分是引導(dǎo)程序,功能是引導(dǎo)DOS或其他操作系統(tǒng)。BIOS先從軟盤或硬盤的開始扇區(qū)讀取引導(dǎo)記錄,如果沒有找到,則會(huì)在顯示器上顯示沒有引導(dǎo)設(shè)備,如果找到引導(dǎo)記錄則會(huì)把計(jì)算機(jī)的控制權(quán)轉(zhuǎn)給引導(dǎo)記錄,由引導(dǎo)記錄把操作系統(tǒng)裝入計(jì)算機(jī),在計(jì)算機(jī)啟動(dòng)成功后,BIOS就完成了任務(wù)。
2.程序服務(wù)處理和硬件中斷處理
程序服務(wù)處理程序主要是為應(yīng)用程序和操作系統(tǒng)服務(wù),這些服務(wù)主要與輸入輸出設(shè)備有關(guān)。為了完成這些操作,BIOS必須直接與計(jì)算機(jī)的I/O設(shè)備打交道,它通過端口發(fā)出命令,向各種外部設(shè)備傳送數(shù)據(jù)以及從它們那里接收數(shù)據(jù),使程序能夠脫離具體的硬件操作,而硬件中斷處理則分別處理PC機(jī)硬件的需求。
BIOS的服務(wù)功能是通過調(diào)用中斷服務(wù)程序來實(shí)現(xiàn)的,這些服務(wù)分為很多組,每組有一個(gè)專門的中斷。
二、BIOS啟動(dòng)過程
1.CPU通過執(zhí)行一段位于內(nèi)存最高端的15字節(jié)的代碼完成啟動(dòng)。32位機(jī)內(nèi)存最高地址FFFFFFF:0000 JMP BIOS POST。
2.大部分POST TEST通過,BIOS在中斷向量表(00000000H——000003FFH)中填寫服務(wù)例程。
3.BIOS 掃描C0000——DFFFFH 內(nèi)存映象空間,檢查各種擴(kuò)展的ROM 塊,傳遞控制,此時(shí),擴(kuò)展ROM 程序可獲得控制權(quán),將自身掛到系統(tǒng)上。BIOS 對(duì)擴(kuò)展的ROM 檢查從C0000H 開始,以2KB 為增量,直到DFFFFH。每一個(gè)有效的擴(kuò)展的ROM 塊,必須建立一個(gè)標(biāo)識(shí)供POST 來識(shí)別它。適配器的ROM塊控制結(jié)束,最后返回到 BIOS。
4.繼續(xù)其他POST。
5.調(diào)用INT 19H 的中斷向量,執(zhí)行引導(dǎo)程序,實(shí)現(xiàn)系統(tǒng)自舉。
三、嵌入程序模塊頭信息
嵌入到BIOS中的程序模塊必須滿足一定的要求,否則BIOS無法讀取。其頭信息如表1所示。
字節(jié)0、1組成一個(gè)字,值為AA55H,BIOS檢測(cè)過程中的模塊有效標(biāo)志。
字節(jié)2:模塊長(zhǎng)度,表示ROM中以512字節(jié)為一塊的信息塊的個(gè)數(shù)。最大值為FFH,即模塊的長(zhǎng)度不能超過127.5K。
字節(jié)3:ROM 可執(zhí)行程序開始。POST找到有效ROM模塊時(shí),遠(yuǎn)調(diào)用ROM模塊字節(jié)3中的指令,ROM模塊可獲得控制權(quán),最后執(zhí)行RETF指令返回BIOS POST。
另外,嵌入模塊文件中所有字節(jié)進(jìn)行相加,得到和K,K MOD 100H = 0,K即為計(jì)算機(jī)系統(tǒng)認(rèn)可的有效模塊校驗(yàn)和。
四、網(wǎng)絡(luò)身份認(rèn)證實(shí)現(xiàn)原理及嵌入方法
1.網(wǎng)絡(luò)身份認(rèn)證實(shí)現(xiàn)原理
網(wǎng)絡(luò)身份認(rèn)證就是系統(tǒng)通過網(wǎng)絡(luò)通訊核查用戶的身份證明過程,實(shí)質(zhì)上是查明用戶是否具有他所請(qǐng)求資源的存取和使用權(quán)。用戶身份認(rèn)證是安全系統(tǒng)的第一道防線,目的是防止非法用戶訪問系統(tǒng),其方法是由系統(tǒng)提供一定的方式讓用戶標(biāo)識(shí)自己的名字或身份。
用戶標(biāo)識(shí)和鑒定的方法有很多種,而且在一個(gè)系統(tǒng)中往往是多種方法并舉,以獲得更強(qiáng)的安全性。常用的方法是用一個(gè)用戶名或者用戶標(biāo)識(shí)號(hào)來標(biāo)明用戶身份。系統(tǒng)內(nèi)部記錄著所有合法用戶的標(biāo)識(shí),系統(tǒng)鑒別此用戶是否是合法用戶,若是,則可以進(jìn)入下一步的核實(shí);若不是,則不能使用系統(tǒng)。為了進(jìn)一步核實(shí)用戶,系統(tǒng)常常要求用戶輸入口令(Password)。通過用戶名和口令來鑒定用戶的方法簡(jiǎn)單易行,但用戶名與口令容易被人竊取,因此用戶身份認(rèn)證還可以采用比較復(fù)雜的計(jì)算過程和函數(shù)來完成。
基于注冊(cè)系統(tǒng)安全性的考慮,避免注冊(cè)的種種弊端,在此提出網(wǎng)絡(luò)注冊(cè)中基于BIOS系統(tǒng)的用戶身份認(rèn)證方法。在BIOS下,注冊(cè)程序作為擴(kuò)展BIOS,單獨(dú)生成一個(gè)ROM模塊,注冊(cè)程序主要具備如下功能:對(duì)進(jìn)入實(shí)驗(yàn)室的用戶進(jìn)行身份認(rèn)證,合法用戶可以使用任何一臺(tái)計(jì)算機(jī),非法用戶拒絕登錄。注冊(cè)程序在操作系統(tǒng)引導(dǎo)之前運(yùn)行,無高層的IP地址協(xié)議,故注冊(cè)程序需要與登錄服務(wù)器聯(lián)系,得到自己的IP地址,服務(wù)器的MAC地址,使用TCP/IP協(xié)議和登錄服務(wù)器進(jìn)行通信。登錄服務(wù)器首先開機(jī),等候客戶機(jī)的請(qǐng)求??蛻魴C(jī)在啟動(dòng)時(shí),必須從網(wǎng)絡(luò)上得到自身的IP地址,以及服務(wù)器的IP地址,因此,首先以廣播的方式和服務(wù)器進(jìn)行聯(lián)絡(luò),服務(wù)器收到客戶機(jī)的請(qǐng)求后,向客戶機(jī)返回客戶機(jī)的IP地址,以及服務(wù)器的IP地址、MAC地址;然后,客戶機(jī)接收用戶的登錄信息,并用TCP/IP協(xié)議把登錄信息發(fā)送給服務(wù)器,服務(wù)器驗(yàn)證登錄信息之后,把控制信息發(fā)送給客戶機(jī),注冊(cè)認(rèn)證程序接收到服務(wù)器的控制信息后,如果客戶是合法用戶,則退出注冊(cè)認(rèn)證程序,啟動(dòng)計(jì)算機(jī)。如果為非法用戶,則鎖定系統(tǒng),不啟動(dòng)計(jì)算機(jī),直到有合法的用戶登錄為止。
網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)的用戶身份識(shí)別特點(diǎn)為:
(1)滿足計(jì)算機(jī)啟動(dòng)時(shí)用戶認(rèn)證的順序,先認(rèn)證,后啟動(dòng)計(jì)算機(jī)。網(wǎng)絡(luò)身份認(rèn)證是在操作系統(tǒng)啟動(dòng)之前進(jìn)行,這樣才能保證系統(tǒng)注冊(cè)認(rèn)證的安全性,這種身份認(rèn)證是在啟動(dòng)BIOS的過程中進(jìn)行的,沒有進(jìn)行任何操作系統(tǒng)的裝載。只有當(dāng)認(rèn)證結(jié)束后,才裝載操作系統(tǒng)。
(2)網(wǎng)絡(luò)身份認(rèn)證程序進(jìn)行的認(rèn)證是在沒有任何操作系統(tǒng)的情況下模擬TCP/IP協(xié)議。
為提高網(wǎng)絡(luò)注冊(cè)程序的安全性,避免其他人對(duì)數(shù)據(jù)的竊取,還可以對(duì)系統(tǒng)本身的通訊數(shù)據(jù)采取加密措施。數(shù)據(jù)加密是防止數(shù)據(jù)在存儲(chǔ)和傳輸過程中失密的有效手段。加密的基本思想是根據(jù)一定的算法將原始數(shù)據(jù)(明文)變換為不可直接識(shí)別的格式(密文),從而使得不知道解密算法的人無法獲知數(shù)據(jù)的內(nèi)容。
加密方法主要有替換和置換兩種,單獨(dú)使用這兩種方法的任意一種都是不夠安全的。但是將這兩種方法結(jié)合起來就能提供相當(dāng)高的安全程度。
2.模塊嵌入方法
鑒于Award BIOS在市場(chǎng)上非常流行,用戶使用也很普遍,本文重點(diǎn)介紹在Award BIOS中嵌入用戶模塊的方法。Award BIOS嵌入程序設(shè)計(jì)的基本流程包括:
(1)首先用匯編編寫DOS下的COM程序,必須注意到程序是優(yōu)先于操作系統(tǒng)執(zhí)行的,所以程序中不能調(diào)用任何DOS中斷服務(wù)。
(2)調(diào)試通過后,在COM文件前加上文件頭,最后返回指令為RETF,控制文件大小為512字節(jié)的整數(shù)倍,重新編譯生成COM文件。
(3)生成的COM文件,利用其中的checksum工具生成文件的校驗(yàn)碼,在值為0的字節(jié)處添加相應(yīng)的16進(jìn)制數(shù),直到校驗(yàn)和為xx00H為止。
(4)用BIOS分析工具cbrom將文件作為ISA或PCI模塊嵌入到BIOS文件中。
(5)用讀寫B(tài)IOS工具awdFlash將新的BIOS文件燒錄到主板BIOS中。
3.分析AwardBIOS DOS工具cbrom
cbrom的功能就是在BIOS文件中添加、刪除與提取模塊,以便滿足用戶自己的需求,用法如下:
cbrom BIOS文件名 /參數(shù) 模塊名|RELEASE|EXTRACT
參數(shù)說明:
/d 顯示BIOS文件中的所有模塊文件;
/isa 在BIOS文件中添加或提取用戶需要的ISA模塊文件,添加時(shí)后面必須提供模塊名;
/pci 在BIOS文件中添加或提取用戶需要的PCI模塊文件,添加時(shí)后面必須提供模塊名;
RELEASE 釋放刪除BIOS文件中的模塊文件;
EXTRACT 從BIOS文件中提取需要的模塊文件并進(jìn)行解壓還原。
4.讀寫AwardBIOS DOS工具awdflash
awdflash的功能就是對(duì)主板BIOS進(jìn)行刷新,以升級(jí)新的BIOS提高計(jì)算機(jī)的運(yùn)行性能,用法如下:
awdflash BIOS文件名 /參數(shù)1/參數(shù)2……
參數(shù)說明:
/py 自動(dòng)完成BIOS的刷新;
/sy 備份原來的BIOS到磁盤文件;
/sb 升級(jí)BIOS時(shí)強(qiáng)行跳過BootBlock模塊;
/cp 刷新結(jié)束后清除即插即用數(shù)據(jù)(ESCD);
/cc 更新完BIOS之后清空CMOS;
/cd 刷新BIOS結(jié)束后清除DMI數(shù)據(jù);
/r 刷新BIOS結(jié)束后自動(dòng)重新啟動(dòng)計(jì)算機(jī);
/pn 不運(yùn)行升級(jí)程序;
/sn 不備份系統(tǒng)老的BIOS文件;
/tiny 只占用很少的內(nèi)存。
五、結(jié)束語
隨著計(jì)算機(jī)的不斷發(fā)展,計(jì)算機(jī)主板BIOS的存儲(chǔ)容量不斷增加,這樣就給用戶將自己研發(fā)的運(yùn)行模塊嵌入到主板BIOS中提供了很大的自由空間。另外,主板BIOS的讀寫及分析工具也由原來的通用變?yōu)閷S?這些工具主要掌控在主板制造廠家及計(jì)算機(jī)制造商的手中,避免用戶隨意在主板BIOS中嵌入模塊,以免影響計(jì)算機(jī)的運(yùn)行效率及性能,即使必須嵌入的模塊,也要經(jīng)過嚴(yán)格測(cè)試后,在不影響計(jì)算機(jī)的運(yùn)行性能的情況下才能嵌入。因此,主板BIOS的讀寫嚴(yán)格控制的趨勢(shì),勢(shì)必強(qiáng)化了BIOS的嚴(yán)密性,用戶模塊嵌入到主板BIOS中不僅增加了自身的安全性,而且還減少了硬件開銷。
參考文獻(xiàn):
[1]沈美明,溫冬嬋.80x86匯編語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2001.
[2]蔡友家.MASM6.11匯編語言應(yīng)用[M].北京:機(jī)械工業(yè)出版社,1998.
[3]錢曉捷,陳濤.16/32位微機(jī)原理、匯編語言及接口技術(shù)[M].北京:機(jī)械工業(yè)出版社,2001.
[4]趙士濱.計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)[M].北京:清華大學(xué)出版社,1999.
[5]劉勇.計(jì)算機(jī)網(wǎng)絡(luò)及互連技術(shù)[M].北京:人民郵電出版社,2000.
[6](美)Craig Zacker著.王建華等譯.現(xiàn)代網(wǎng)絡(luò)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2002.
(編輯:金冉)