專利名稱:恢復(fù)基本輸入輸出系統(tǒng)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種恢復(fù)基本輸入輸出系統(tǒng)的方法及系統(tǒng)。
背景技術(shù):
TCM(Trusted Cryptography Module,可信安全芯片)模塊是通過(guò)LPC總線接口放置在計(jì)算機(jī)主板上的硬件模塊,TCM芯片提供了平臺(tái)完整性度量、提供平臺(tái)唯一身份標(biāo)識(shí)、提供硬件級(jí)的密鑰保護(hù)等基本安全功能,芯片及其固件構(gòu)成一個(gè)完整的安全計(jì)算環(huán)境,為可信計(jì)算提供基礎(chǔ)支撐。TCM模塊通過(guò)建立信任鏈來(lái)保障平臺(tái)完整性。平臺(tái)信任鏈的建立是在計(jì)算機(jī)上電后,TCM模塊首先接管執(zhí)行權(quán),以自身的可信度量根為起點(diǎn),依次對(duì)基本輸入輸出系統(tǒng)(Basic Input Output System,下文簡(jiǎn)稱BIOS),硬盤(Master Boot Record,下文簡(jiǎn)稱MBR),初始化程序加載器和操作系統(tǒng)進(jìn)行度量,通過(guò)信任關(guān)系傳遞來(lái)保障平臺(tái)完整性。BIOS作為第一個(gè)被度量組件,其正確性具有重要意義。BIOS存儲(chǔ)在計(jì)算機(jī)主板上的FLASH閃存或EEPROM中,由于其可被重寫,具有可靠性和安全性方面的問(wèn)題。在BIOS升級(jí)過(guò)程中,因?yàn)殡娫粗袛?,操作者失誤或者軟件錯(cuò)誤等因素,可能導(dǎo)致FLASH燒 寫錯(cuò)誤,從而無(wú)法引導(dǎo)計(jì)算機(jī)系統(tǒng)。由于計(jì)算機(jī)上電后首先運(yùn)行的就是B10S,通過(guò)篡改B10S,惡意程序可以最早的劫取執(zhí)行權(quán)從而控制計(jì)算機(jī),因此BIOS也是惡意程序的攻擊目標(biāo),如早期的CIH病毒,最近出現(xiàn)的BMW木馬。
發(fā)明內(nèi)容
為了解決因用戶操作不當(dāng)或者病毒等造成的BIOS損害所導(dǎo)致計(jì)算機(jī)系統(tǒng)的安全問(wèn)題,本發(fā)明提供了一種使用TCM模塊備份BIOS并在計(jì)算機(jī)上電啟動(dòng)時(shí)使用備份BIOS恢復(fù)BIOS的系統(tǒng)及方法。本發(fā)明使用TCM芯片對(duì)BIOS的每次更新做同步備份,利用TCM的數(shù)據(jù)加解密功能保證BIOS備份的完整性,將備份保存到TCM擴(kuò)展的存儲(chǔ)器件上隔離系統(tǒng)訪問(wèn);計(jì)算機(jī)上電時(shí),TCM芯片的對(duì)BIOS的完整性進(jìn)行驗(yàn)證。如果驗(yàn)證通過(guò),使用該BIOS引導(dǎo)系統(tǒng);如果不能通過(guò)驗(yàn)證,則TCM芯片自動(dòng)使用BIOS備份恢復(fù)BIOS,然后引導(dǎo)系統(tǒng),防止因?yàn)锽IOS被破壞而對(duì)系統(tǒng)功能和安全產(chǎn)生影響。在本發(fā)明的一個(gè)具體實(shí)施例中,本發(fā)明恢復(fù)BIOS的系統(tǒng),包括啟動(dòng)代碼只讀存儲(chǔ)器(下文簡(jiǎn)稱BOOT ROM)和安全芯片,其中,BOOT ROM用于存儲(chǔ)原BIOS ;安全芯片用于對(duì)原BIOS進(jìn)行備份,將備份BIOS保存至安全芯片的擴(kuò)展存儲(chǔ)單元;執(zhí)行原BIOS之前,對(duì)原BIOS的有效性進(jìn)行驗(yàn)證;若驗(yàn)證未通過(guò),則根據(jù)備份BIOS恢復(fù)原BIOS。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的系統(tǒng)中,安全芯片用于讀取原BIOS數(shù)據(jù),根據(jù)哈希算法計(jì)算原BIOS數(shù)據(jù)的消息摘要,根據(jù)認(rèn)證算法對(duì)消息摘要進(jìn)行加密,得到第一哈希運(yùn)算消息認(rèn)證碼數(shù)值(下文簡(jiǎn)稱第一 HMAC值),將原BIOS數(shù)據(jù)和第一 HMAC值保存至安全芯片的擴(kuò)展存儲(chǔ)空間。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的系統(tǒng)中,安全芯片用于計(jì)算機(jī)執(zhí)行原BIOS之前,讀取原BIOS數(shù)據(jù),使用備份原BIOS數(shù)據(jù)時(shí)相同的哈希算法和相同的認(rèn)證算法得到第二哈希運(yùn)算消息認(rèn)證碼數(shù)值(下文簡(jiǎn)稱第二 HMAC值);比較第一 HMAC值與第二 HMAC值是否相同;若相同,則對(duì)原BIOS的有效性驗(yàn)證通過(guò);若不同,則對(duì)原BIOS的有效性驗(yàn)證未通過(guò)。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的系統(tǒng)中,安全芯片用于若驗(yàn)證未通過(guò)時(shí),將備份BIOS燒寫至BOOT ROM。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的系統(tǒng)中,安全芯片的擴(kuò)展存儲(chǔ)單元為電可擦除可編程只讀存儲(chǔ)器(下文簡(jiǎn)稱EEPR0M)、編碼型快閃存儲(chǔ)器(下文簡(jiǎn)稱NOR FLASH)、儲(chǔ)存型快閃存儲(chǔ)器(下文簡(jiǎn)稱NARD FALSH)中的一種。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的系統(tǒng)中,擴(kuò)展存儲(chǔ)單元與安全芯片通過(guò)串行外圍接口(下文簡(jiǎn)稱SPI)、線式串行總線(下文簡(jiǎn)稱IIC)、安全數(shù)據(jù)輸入輸出接口(下文簡(jiǎn)稱SD10)或并行接口相連。同時(shí)本發(fā)明也提供了一種恢復(fù)BIOS的方法,步驟如下:對(duì)原BIOS進(jìn)行備份;執(zhí)行原BIOS之前,對(duì)原BIOS的有效性進(jìn)行驗(yàn)證;若驗(yàn)證未通過(guò),則根據(jù)備份BIOS恢復(fù)原BIOS。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的方法中,對(duì)原BIOS進(jìn)行備份的方法包括:使用安全芯片對(duì)原BIOS的每次更新進(jìn)行備份,并將備份BIOS保存至安全芯片的擴(kuò)展存儲(chǔ)單元。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的方法中,使用安全芯片對(duì)原BIOS的每次更新進(jìn)行備份,并將備份BIOS保存至安全芯片的擴(kuò)展存儲(chǔ)單元的方法包括:使用安全芯片讀取原BIOS數(shù)據(jù);根據(jù)HASH算法計(jì)算原BIOS數(shù)據(jù)的消息摘要;根據(jù)認(rèn)證算法對(duì)消息摘要進(jìn)行加密,得到第一 HMAC值;將原BIOS數(shù)據(jù)和第一 HMAC值保存至安全芯片的擴(kuò)展存儲(chǔ)單元。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的方法中,對(duì)原BIOS的有效性進(jìn)行驗(yàn)證的方法包括:執(zhí)行原BIOS之前,安全芯片讀取原BIOS數(shù)據(jù),使用備份原BIOS數(shù)據(jù)時(shí)相同的哈希算法和相同的認(rèn)證算法得到第二 HMAC值;比較第一 HMAC值與第二 HMAC值是否相同;若相同,則對(duì)原BIOS的有效性驗(yàn)證通過(guò);若不同,則對(duì)原BIOS的有效性驗(yàn)證未通過(guò)。在一個(gè)具體實(shí)施例中,在上述恢復(fù)BIOS的方法中,若驗(yàn)證未通過(guò),則根據(jù)備份BIOS恢復(fù)原BIOS的方法包括:將備份BIOS燒寫至BOOT ROM。通過(guò)本發(fā)明的實(shí)施,利用計(jì)算機(jī)上電時(shí),TCM芯片先于BIOS運(yùn)行并可對(duì)BIOS進(jìn)行訪問(wèn)的特點(diǎn),對(duì)BIOS進(jìn)行驗(yàn)證并自動(dòng)恢復(fù),比雙BIOS需要地址轉(zhuǎn)換開關(guān)決定BIOS映射的方式,結(jié)構(gòu)更加簡(jiǎn)單,能夠保證BIOS及其備份的一致,在BIOS被破壞時(shí),能在上電啟動(dòng)時(shí)第一時(shí)間恢復(fù)B10S,為后續(xù)的度量的可信性提供保證,保障系統(tǒng)可信和安全。
圖1為本發(fā)明一實(shí)施例提供的恢復(fù)BIOS系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明一實(shí)施例提供的恢復(fù)BIOS的流程圖。
具體實(shí)施例方式下面通過(guò)具體實(shí)施方式
結(jié)合附圖的方式對(duì)本發(fā)明做出進(jìn)一步的詳細(xì)說(shuō)明。圖1為本發(fā)明恢復(fù)BIOS的系統(tǒng)主板的結(jié)構(gòu)示意圖,本發(fā)明中安全芯片用于對(duì)原基本輸入輸出系統(tǒng)進(jìn)行備份,將備份基本輸入輸出系統(tǒng)保存至安全芯片的擴(kuò)展存儲(chǔ)單元;執(zhí)行原基本輸入輸出系統(tǒng)之前,對(duì)原基本輸入輸出系統(tǒng)的有效性進(jìn)行驗(yàn)證;若驗(yàn)證未通過(guò),則根據(jù)備份基本輸入輸出系統(tǒng)恢復(fù)原基本輸入輸出系統(tǒng)。BOOT ROM用于存儲(chǔ)原基本輸入輸出系統(tǒng)。在具體實(shí)例中,本發(fā)明的安全芯片通過(guò)LPC接口連接到計(jì)算機(jī)主板的南橋芯片上,在計(jì)算機(jī)上電后,安全芯片空間映射到LPC總線的地址空間,程序直接通過(guò)內(nèi)存映射訪問(wèn)TCM模塊。LPD#信號(hào)是掉電指示信號(hào),LRESET#是LPC復(fù)位信號(hào),LCLK#是LPC接口時(shí)鐘信號(hào),LFRAME#是LPC接口幀同步信號(hào),LAD
是地址/數(shù)據(jù)復(fù)用總線。此時(shí)安全芯片的擴(kuò)展存儲(chǔ)單元選擇EEPROM存儲(chǔ)器,安全芯片和EEPROM大容量存儲(chǔ)之間使用公知的標(biāo)準(zhǔn)SPI串行接口連接,該存儲(chǔ)器容量可達(dá)2M字節(jié)。EEPROM用于存儲(chǔ)BIOS驗(yàn)證數(shù)據(jù)和BIOS備份。TCM芯片是TCM模塊的主控制器,提供密鑰管理、數(shù)據(jù)加解密、數(shù)據(jù)審計(jì)以及關(guān)鍵數(shù)據(jù)存儲(chǔ)等基礎(chǔ)功能,接受用戶指示備份BIOS并且保存到擴(kuò)展存儲(chǔ)器;在上電伊始,完成BIOS有效性驗(yàn)證,BIOS恢復(fù)和可信度量等功能,然后復(fù)位系統(tǒng),由BIOS做進(jìn)一步的度量完成系統(tǒng)啟動(dòng)。圖2為本發(fā)明中安全芯片恢復(fù)BIOS的流程圖,從圖2中可以看到:計(jì)算機(jī)在上電之后,安全芯片先行工作;安全芯片對(duì)BOOT ROM中存儲(chǔ)的原BIOS進(jìn)行有效性的驗(yàn)證;若驗(yàn)證通過(guò)的話,則計(jì)算機(jī)系統(tǒng)繼續(xù)從原BIOS中啟動(dòng);若本次驗(yàn)證沒(méi)有通過(guò)的話,安全芯片就根據(jù)其擴(kuò)展存儲(chǔ)單元中存儲(chǔ)的BIOS備份恢復(fù)BOOT ROM中存儲(chǔ)的原BIOS ;恢復(fù)之后,計(jì)算機(jī)系統(tǒng)從恢復(fù)之后的BIOS啟動(dòng);計(jì)算機(jī)系統(tǒng)成功啟動(dòng)。下面針對(duì)安全芯片如何對(duì)BIOS進(jìn)行備份、驗(yàn)證、恢復(fù)的過(guò)程進(jìn)行具體的說(shuō)明,以進(jìn)一步對(duì)本發(fā)明做出詮釋。計(jì)算機(jī)系統(tǒng)中安全芯片對(duì)原BIOS進(jìn)行備份的方法:使用安全芯片對(duì)原BIOS的每次更新進(jìn)行備份,并將備份BIOS保存至安全芯片的擴(kuò)展存儲(chǔ)單元。使用安全芯片對(duì)原BIOS的每次更新進(jìn)行備份,并將備份BIOS保存至安全芯片的擴(kuò)展存儲(chǔ)單元的方法步驟如下:使用安全芯片讀取原BIOS數(shù)據(jù);根據(jù)HASH算法計(jì)算原BIOS數(shù)據(jù)的消息摘要;根據(jù)認(rèn)證算法對(duì)消息摘要進(jìn)行加密,得到第一 HMAC值;
將原BIOS數(shù)據(jù)和第一 HMAC值保存至安全芯片的擴(kuò)展存儲(chǔ)單元。安全芯片對(duì)原BIOS的有效性進(jìn)行驗(yàn)證的方法包括:執(zhí)行原BIOS之前,安全芯片讀取原BIOS數(shù)據(jù),使用備份原BIOS數(shù)據(jù)時(shí)相同的哈希算法和相同的認(rèn)證算法得到第二 HMAC值;比較第一 HMAC值與第二 HMAC值是否相同;若相同,則對(duì)原BIOS的有效性驗(yàn)證通過(guò);若不同,則對(duì)原BIOS的有效性驗(yàn)證未通過(guò);若驗(yàn)證未通過(guò),則安全芯片根據(jù)備份BIOS恢復(fù)原BIOS的方法是:將備份BIOS燒寫至 BOOT ROM。本發(fā)明利用計(jì)算機(jī)上電時(shí),TCM芯片先于BIOS運(yùn)行并可對(duì)BIOS進(jìn)行訪問(wèn)的特點(diǎn),對(duì)BIOS進(jìn)行驗(yàn)證并自動(dòng)恢復(fù),比雙BIOS需要地址轉(zhuǎn)換開關(guān)決定BIOS映射的方式,結(jié)構(gòu)更加簡(jiǎn)單,能夠保證BIOS及其備份的一致,在BIOS被破壞時(shí),能在上電啟動(dòng)時(shí)第一時(shí)間恢復(fù)B10S,為后續(xù)的度量的可信性提供保證,保障系統(tǒng)可信和安全。以上僅是本發(fā)明的具體實(shí)施方式
而已,并非對(duì)本發(fā)明做任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施方式所做的任意簡(jiǎn)單修改、等同變化或修飾,均仍屬于本發(fā)明技術(shù)方案的保護(hù)范圍。
權(quán)利要求
1.一種恢復(fù)基本輸入輸出系統(tǒng)的方法,包括: 對(duì)原基本輸入輸出系統(tǒng)進(jìn)行備份; 執(zhí)行原基本輸入輸出系統(tǒng)之前,對(duì)原基本輸入輸出系統(tǒng)的有效性進(jìn)行驗(yàn)證; 若驗(yàn)證未通過(guò),則根據(jù)備份基本輸入輸出系統(tǒng)恢復(fù)原基本輸入輸出系統(tǒng)。
2.如權(quán)利要求1所述的方法,其特征在于,對(duì)原基本輸入輸出系統(tǒng)進(jìn)行備份的方法包括:使用安全芯片對(duì)原基本輸入輸出系統(tǒng)的每次更新進(jìn)行備份,并將備份基本輸入輸出系統(tǒng)保存至所述安全芯片的擴(kuò)展存儲(chǔ)單元。
3.如權(quán)利要求2所述的方法,其特征在于,使用安全芯片對(duì)原基本輸入輸出系統(tǒng)的每次更新進(jìn)行備份,并將備份基本輸入輸出系統(tǒng)保存至所述安全芯片的擴(kuò)展存儲(chǔ)單元的方法包括: 使用安全芯片讀取原基本輸入輸出系統(tǒng)數(shù)據(jù); 根據(jù)哈希算法計(jì)算所述原基本輸入輸出系統(tǒng)數(shù)據(jù)的消息摘要; 根據(jù)認(rèn)證算法對(duì)所述消息摘要進(jìn)行加密,得到第一哈希運(yùn)算消息認(rèn)證碼數(shù)值; 將所述原基本輸入輸出系統(tǒng)數(shù)據(jù)和第一哈希運(yùn)算消息認(rèn)證碼數(shù)值保存至所述安全芯片的擴(kuò)展存儲(chǔ)單元。
4.如權(quán)利要求3所述的方法,其特征在于,對(duì)原基本輸入輸出系統(tǒng)的有效性進(jìn)行驗(yàn)證的方法包括: 執(zhí)行原基本輸入輸出 系統(tǒng)之前,安全芯片讀取原基本輸入輸出系統(tǒng)數(shù)據(jù),使用備份原基本輸入輸出系統(tǒng)數(shù)據(jù)時(shí)相同的哈希算法和相同的認(rèn)證算法得到第二哈希運(yùn)算消息認(rèn)證碼數(shù)值; 比較所述第一哈希運(yùn)算消息認(rèn)證碼數(shù)值與所述第二哈希運(yùn)算消息認(rèn)證碼數(shù)值是否相同; 若相同,則對(duì)原基本輸入輸出系統(tǒng)的有效性驗(yàn)證通過(guò); 若不同,則對(duì)原基本輸入輸出系統(tǒng)的有效性驗(yàn)證未通過(guò)。
5.如權(quán)利要求1所述的方法,其特征在于,若驗(yàn)證未通過(guò),則根據(jù)備份基本輸入輸出系統(tǒng)恢復(fù)原基本輸入輸出系統(tǒng)的方法包括:將備份基本輸入輸出系統(tǒng)燒寫至啟動(dòng)代碼只讀存儲(chǔ)器。
6.—種恢復(fù)基本輸入輸出系統(tǒng)的系統(tǒng),包括啟動(dòng)代碼只讀存儲(chǔ)器和安全芯片,其中, 所述啟動(dòng)代碼只讀存儲(chǔ)器用于存儲(chǔ)原基本輸入輸出系統(tǒng); 所述安全芯片用于對(duì)原基本輸入輸出系統(tǒng)進(jìn)行備份,將備份基本輸入輸出系統(tǒng)保存至所述安全芯片的擴(kuò)展存儲(chǔ)單元;執(zhí)行原基本輸入輸出系統(tǒng)之前,對(duì)原基本輸入輸出系統(tǒng)的有效性進(jìn)行驗(yàn)證;若驗(yàn)證未通過(guò),則根據(jù)備份基本輸入輸出系統(tǒng)恢復(fù)原基本輸入輸出系統(tǒng)。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述安全芯片用于讀取原基本輸入輸出系統(tǒng)數(shù)據(jù),根據(jù)哈希算法計(jì)算所述原基本輸入輸出系統(tǒng)數(shù)據(jù)的消息摘要,根據(jù)認(rèn)證算法對(duì)所述消息摘要進(jìn)行加密,得到第一哈希運(yùn)算消息認(rèn)證碼數(shù)值,將所述原基本輸入輸出系統(tǒng)數(shù)據(jù)和第一哈希運(yùn)算消息認(rèn)證碼數(shù)值保存至所述安全芯片的擴(kuò)展存儲(chǔ)空間。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述安全芯片用于計(jì)算機(jī)執(zhí)行原基本輸入輸出系統(tǒng)之前,讀取原基本輸入輸出系統(tǒng)數(shù)據(jù),使用備份原基本輸入輸出系統(tǒng)數(shù)據(jù)時(shí)相同的哈希算法和相同的認(rèn)證算法得到第二哈希運(yùn)算消息認(rèn)證碼數(shù)值;比較所述第一哈希運(yùn)算消息認(rèn)證碼數(shù)值與所述第二哈希運(yùn)算消息認(rèn)證碼數(shù)值是否相同;若相同,則對(duì)原基本輸入輸出系統(tǒng)的有效性驗(yàn)證通過(guò);若不同,則對(duì)原基本輸入輸出系統(tǒng)的有效性驗(yàn)證未通過(guò)。
9.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述安全芯片用于若驗(yàn)證未通過(guò)時(shí),將備份基本輸入輸出系統(tǒng)燒寫至所述啟動(dòng)代碼只讀存儲(chǔ)器。
10.如權(quán)利要求6至9任一項(xiàng)所述的系統(tǒng),其特征在于,所述安全芯片的擴(kuò)展存儲(chǔ)單元為電可擦除可編程只讀存儲(chǔ)器、編碼型快閃存儲(chǔ)器、儲(chǔ)存型快閃存儲(chǔ)器中的一種;所述擴(kuò)展存儲(chǔ)單元與所述安全芯片通過(guò)串行外圍接口、線式串行總線、安全數(shù)據(jù)輸入輸出接口或并行接口相連 。
全文摘要
本發(fā)明提供了一種恢復(fù)基本輸入輸出系統(tǒng)的方法及系統(tǒng),該方法及系統(tǒng)解決了因病毒或者用戶操作不當(dāng)?shù)仍斐葿IOS的損害所導(dǎo)致的安全問(wèn)題。該方法包括對(duì)原BIOS進(jìn)行備份;執(zhí)行原BIOS之前,對(duì)原BIOS的有效性進(jìn)行驗(yàn)證;若驗(yàn)證未通過(guò),則根據(jù)備份BIOS恢復(fù)原BIOS,然后繼續(xù)引導(dǎo)系統(tǒng),防止因?yàn)锽IOS被破壞而對(duì)系統(tǒng)功能和安全產(chǎn)生影響。本發(fā)明比雙BIOS需要地址轉(zhuǎn)換開關(guān)決定BIOS映射的方式,結(jié)構(gòu)更加簡(jiǎn)單,能夠保證BIOS及其備份的一致,在BIOS被破壞時(shí),能在上電啟動(dòng)時(shí)第一時(shí)間恢復(fù)BIOS,為后續(xù)的度量的可信性提供保證,保障系統(tǒng)可信和安全。
文檔編號(hào)G06F11/14GK103186434SQ201110458400
公開日2013年7月3日 申請(qǐng)日期2011年12月31日 優(yōu)先權(quán)日2011年12月31日
發(fā)明者臧磊真 申請(qǐng)人:國(guó)民技術(shù)股份有限公司