安全開(kāi)機(jī)方法及電腦系統(tǒng)的制作方法
【專利摘要】用于電腦系統(tǒng)的安全開(kāi)機(jī)方法,包含有藉由一中央處理器設(shè)定一第一狀態(tài)的控制信號(hào)并輸出至一存儲(chǔ)器控制器,以使得一儲(chǔ)存有一加密開(kāi)機(jī)程序碼的閃存為只讀狀態(tài);根據(jù)該加密開(kāi)機(jī)程序碼,該中央處理器輸出一芯片身份以及一驗(yàn)證密鑰至一驗(yàn)證單元,以透過(guò)該驗(yàn)證單元判斷該芯片身份以及該驗(yàn)證密鑰是否皆正確;若正確,該中央處理器設(shè)定一第零狀態(tài)的控制信號(hào)并輸出至該存儲(chǔ)器控制器,以使得該閃存為可讀寫(xiě)狀態(tài);以及透過(guò)該驗(yàn)證單元對(duì)該加密開(kāi)機(jī)程序碼執(zhí)行解密動(dòng)作,并將該解密后的開(kāi)機(jī)程序碼儲(chǔ)存于該閃存中。
【專利說(shuō)明】安全開(kāi)機(jī)方法及電腦系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是指一種安全開(kāi)機(jī)方法及電腦系統(tǒng),尤指一種將加密后的開(kāi)機(jī)程序碼儲(chǔ)存于閃存中,以提升信息安全以及降低成本的安全開(kāi)機(jī)方法及電腦系統(tǒng)。
【背景技術(shù)】
[0002]隨著電腦系統(tǒng)的功能日益強(qiáng)化,在電腦開(kāi)機(jī)程序中所需要進(jìn)行的簽名驗(yàn)證、硬體初始化等參數(shù)的設(shè)定也日趨復(fù)雜。具體來(lái)說(shuō),在電腦系統(tǒng)開(kāi)機(jī)后,由基本輸入輸出系統(tǒng)(Basic Input/Output System)讀取開(kāi)機(jī)程序碼,執(zhí)行后續(xù)開(kāi)機(jī)步驟,如開(kāi)機(jī)自我測(cè)試(Power on Self Test, POST)、隨插即用測(cè)試(Plug and Play test)、硬體設(shè)定(HardwareConfiguration)等動(dòng)作,以進(jìn)入作業(yè)系統(tǒng)。因此,開(kāi)機(jī)程序碼幾乎無(wú)法容許有錯(cuò)誤于其中,因?yàn)樵陂_(kāi)機(jī)過(guò)程中任何的小錯(cuò)誤都可能導(dǎo)致電腦系統(tǒng)無(wú)法正常開(kāi)機(jī),陷入停頓或不正常關(guān)機(jī)的狀態(tài)。
[0003]傳統(tǒng)上用來(lái)儲(chǔ)存開(kāi)機(jī)程序碼的存儲(chǔ)器,常見(jiàn)的有時(shí)序/組合邏輯電路(Sequential/combination Logic Cell)、光罩只讀存儲(chǔ)器(Mask Read-Only Memory,MROM)或超級(jí)永久性存儲(chǔ)器(eXtra Permanent Memory,XPM)等。邏輯電路是透過(guò)半導(dǎo)體工藝,直接將開(kāi)機(jī)程序碼編寫(xiě)入邏輯電路中,一旦邏輯電路制造完成,則無(wú)法對(duì)開(kāi)機(jī)程序碼進(jìn)行修改。因此,在電腦產(chǎn)品生產(chǎn)之前必須完成開(kāi)機(jī)程序碼的設(shè)計(jì),若在產(chǎn)品生產(chǎn)之后發(fā)現(xiàn)錯(cuò)誤,則需替換整個(gè)邏輯電路,如此即限制了開(kāi)機(jī)程序碼的開(kāi)發(fā)周期以及設(shè)計(jì)彈性。光罩只讀存儲(chǔ)器為一種可重復(fù)編程的存儲(chǔ)器,可利用聚集離子束(Focused 1n Beam,F(xiàn)IB)等技術(shù)重復(fù)編寫(xiě)入數(shù)據(jù),因此可具有較高的設(shè)計(jì)彈性,但相對(duì)地其安全性較低,容易遭駭客攻擊、竄改其中的內(nèi)容。超級(jí)永久性存儲(chǔ)器其價(jià)格高昂并存有不穩(wěn)定的缺陷,因而不常見(jiàn)于市場(chǎng)上。
[0004]因此,如何將日趨復(fù)雜的開(kāi)機(jī)程序碼儲(chǔ)存于適當(dāng)?shù)拇鎯?chǔ)器中,同時(shí)搭配設(shè)計(jì)一種具有高設(shè)計(jì)彈性、高安全性以及低成本的開(kāi)機(jī)方法,實(shí)為本領(lǐng)域的重要課題之一。
【發(fā)明內(nèi)容】
[0005]因此,本發(fā)明的主要目的在于提供一種安全開(kāi)機(jī)方法及電腦系統(tǒng),將加密后的開(kāi)機(jī)程序碼儲(chǔ)存于閃存中,以提升信息安全以及降低生產(chǎn)成本。
[0006]本發(fā)明揭露一種安全開(kāi)機(jī)方法,用于一電腦系統(tǒng),該安全開(kāi)機(jī)方法包含有藉由一中央處理器設(shè)定一第一狀態(tài)的控制信號(hào)并輸出至一存儲(chǔ)器控制器,以使得一儲(chǔ)存有一加密開(kāi)機(jī)程序碼的閃存為只讀狀態(tài);根據(jù)該加密開(kāi)機(jī)程序碼,該中央處理器輸出一芯片身份以及一驗(yàn)證密鑰至一驗(yàn)證單元,以透過(guò)該驗(yàn)證單元判斷該芯片身份以及該驗(yàn)證密鑰是否皆正確;若正確,該中央處理器設(shè)定一第零狀態(tài)的控制信號(hào)并輸出至該存儲(chǔ)器控制器,以使得該閃存為可讀寫(xiě)狀態(tài);以及透過(guò)該驗(yàn)證單元對(duì)該加密開(kāi)機(jī)程序碼執(zhí)行解密動(dòng)作,并將該解密后的開(kāi)機(jī)程序碼儲(chǔ)存于該閃存中。
[0007]本發(fā)明另揭露一種電腦系統(tǒng),包含有一中央處理器;一閃存,用來(lái)儲(chǔ)存一加密開(kāi)機(jī)程序碼;一存儲(chǔ)器控制器,耦接于該閃存以及該中央處理器,用來(lái)根據(jù)該中央處理器設(shè)定的一第一狀態(tài)的控制信號(hào),控制該閃存為只讀狀態(tài),以便該中央處理器讀取該加密開(kāi)機(jī)程序碼;或根據(jù)該中央處理器設(shè)定的一第零狀態(tài)的控制信號(hào),使得該閃存為可讀寫(xiě)狀態(tài);以便該中央處理器讀取該加密開(kāi)機(jī)程序碼以及寫(xiě)入一解密開(kāi)機(jī)程序碼;以及一驗(yàn)證單元,耦接于該中央處理器以及該閃存,用來(lái)根據(jù)該中央處理器輸出的一芯片身份及一驗(yàn)證密鑰,判斷是否由中央處理器對(duì)該加密開(kāi)機(jī)程序碼執(zhí)行一解密動(dòng)作,以產(chǎn)生并儲(chǔ)存該解密開(kāi)機(jī)程序碼于該閃存。
【專利附圖】
【附圖說(shuō)明】
[0008]圖1為本發(fā)明實(shí)施例一電腦系統(tǒng)的示意圖;
[0009]圖2為本發(fā)明實(shí)施例另一電腦系統(tǒng)的示意圖;
[0010]圖3為本發(fā)明實(shí)施例一安全開(kāi)機(jī)流程的示意圖。
[0011]主要元件符號(hào)說(shuō)明
[0012]10、20電腦系統(tǒng)
[0013]11中央處理器
[0014]12閃存
[0015]13存儲(chǔ)器控制器
[0016]14隨機(jī)存取存儲(chǔ)器
[0017]15驗(yàn)證單元
`[0018]26只讀存儲(chǔ)器
[0019]0ΤΡ_ΒΙΤ控制信號(hào)
[0020]ID芯片身份
[0021]KEY驗(yàn)證密鑰
[0022]BootROM、BootR0M_ori開(kāi)機(jī)程序碼
[0023]0、1、2狀態(tài)
[0024]30安全開(kāi)機(jī)流程
[0025]301、302、303、304、305、306 步驟
【具體實(shí)施方式】
[0026]請(qǐng)參考圖1,圖1為本發(fā)明實(shí)施例一電腦系統(tǒng)10的示意圖。電腦系統(tǒng)10可以是任何需要執(zhí)行開(kāi)機(jī)程序的電子裝置,例如個(gè)人電腦、行動(dòng)電話、個(gè)人數(shù)位助理、伺服器或數(shù)位機(jī)上盒等。電腦系統(tǒng)10包含有一中央處理器11、一閃存(Flash Memory) 12、一存儲(chǔ)器控制器13、一隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM) 14以及一驗(yàn)證單元15。
[0027]如圖1所示,閃存12較佳地可為一系統(tǒng)級(jí)封裝串行閃存(System in PackageSerial Flash MemoRY,SiP SFLASH)或是采用一 Hard Macro工藝的串行閃存等。閃存12可用來(lái)儲(chǔ)存一開(kāi)機(jī)程序碼BootROM,以供中央處理器11讀取來(lái)執(zhí)行開(kāi)機(jī)程序。存儲(chǔ)器控制器13耦接于閃存12,并且透過(guò)寫(xiě)入以及讀取總線耦接于中央處理器11,用來(lái)根據(jù)中央處理器11輸出的控制信號(hào)0ΤΡ_ΒΙΤ,控制中央處理器11讀取或?qū)懭腴W存12的權(quán)限。舉例來(lái)說(shuō),當(dāng)控制信號(hào)0ΤΡ_ΒΙΤ預(yù)設(shè)為狀態(tài)O (第零狀態(tài))時(shí),中央處理器11可自由讀取或?qū)?shù)據(jù)寫(xiě)入閃存12中。當(dāng)控制信號(hào)0ΤΡ_ΒΙΤ設(shè)定為狀態(tài)I (第一狀態(tài))時(shí),中央處理器11只能讀取閃存12的內(nèi)容,而限制其寫(xiě)入動(dòng)作。驗(yàn)證單元15耦接于中央處理器11、閃存12以及隨機(jī)存取存儲(chǔ)器14,用來(lái)根據(jù)中央處理器11輸出的芯片身份ID以及驗(yàn)證密鑰KEY,對(duì)開(kāi)機(jī)程序碼BootROM執(zhí)行解密動(dòng)作,并將解密后的開(kāi)機(jī)程序碼BootROM儲(chǔ)存于閃存12。中央處理器11透過(guò)隨機(jī)存取存儲(chǔ)器14讀取解密后的開(kāi)機(jī)程序碼BootROM,以執(zhí)行開(kāi)機(jī)程序。
[0028]具體來(lái)說(shuō),當(dāng)電腦系統(tǒng)10開(kāi)啟電源準(zhǔn)備執(zhí)行開(kāi)機(jī)程序之前,中央處理器11設(shè)定控制信號(hào)0TP_BIT為1,使得存儲(chǔ)器控制器13限制寫(xiě)入閃存12的動(dòng)作并進(jìn)入只讀狀態(tài)。中央處理器11讀取儲(chǔ)存于閃存12中的加密開(kāi)機(jī)程序碼BootROM,據(jù)以輸出芯片身份ID以及驗(yàn)證密鑰KEY至驗(yàn)證單元15。若驗(yàn)證單元15判斷芯片身份ID以及驗(yàn)證密鑰KEY皆正確無(wú)誤,則對(duì)加密的開(kāi)機(jī)程序碼BootROM執(zhí)行解密動(dòng)作,并將解密后的開(kāi)機(jī)程序碼BootROM儲(chǔ)存于閃存12中。需要指出的是,在電腦系統(tǒng)中,任何指令操作歸根結(jié)底是由中央處理器執(zhí)行,因此上述對(duì)開(kāi)機(jī)程序碼BootROM進(jìn)行解密的動(dòng)作也需要由中央處理器11透過(guò)驗(yàn)證單元15完成;具體的,中央處理器11首先設(shè)定控制信號(hào)0TP_BIT為0,使得閃存12進(jìn)入可讀寫(xiě)狀態(tài),然后依照驗(yàn)證單元15的解密指令,藉助隨機(jī)存取存儲(chǔ)器14,從閃存12中提取加密的開(kāi)機(jī)程序碼BootROM,執(zhí)行解密操作,并將完成解密的開(kāi)機(jī)程序碼BootROM再寫(xiě)回閃存12中。當(dāng)驗(yàn)證單元15完成上述開(kāi)機(jī)程序碼BootROM的解密動(dòng)作,中央處理器11則透過(guò)隨機(jī)存取存儲(chǔ)器14讀取解密后的開(kāi)機(jī)程序碼BootROM,以執(zhí)行開(kāi)機(jī)程序。
[0029]簡(jiǎn)言之,由于閃存12的單位儲(chǔ)存容量的價(jià)格低廉以及具有易更新的特點(diǎn),本發(fā)明主要系將開(kāi)機(jī)程序碼BootROM儲(chǔ)存于閃存12中,以達(dá)到節(jié)省成本以及高設(shè)計(jì)彈性的目的。并且,為了提高開(kāi)機(jī)程序碼BootROM的安全性,本發(fā)明搭配了開(kāi)機(jī)程序碼BootROM的驗(yàn)證步驟,以防止開(kāi)機(jī)程序碼BootROM遭受駭客攻擊,達(dá)到信息保護(hù)的目的。
[0030]除此之外,圖1描述的開(kāi)機(jī)方法可與現(xiàn)有的開(kāi)機(jī)方法近一步地結(jié)合,以作為備用的開(kāi)機(jī)方案。請(qǐng)參考圖2,圖2為本發(fā)明實(shí)施例一電腦系統(tǒng)20的示意圖。圖2與圖1的差異在于,當(dāng)中央處理器11輸出的控制信號(hào)0TP_BIT為狀態(tài)2 (第二狀態(tài))時(shí),可直接讀取另一只讀存儲(chǔ)器26儲(chǔ)存的開(kāi)機(jī)程序碼BootR0M_ori,進(jìn)行開(kāi)機(jī)程序。其中只讀存儲(chǔ)器26可為任意形式的只讀存儲(chǔ)器,例如一次性可編程(One Time Programmable, OTP)只讀存儲(chǔ)器、電子抹除式可復(fù)寫(xiě)只讀存儲(chǔ)器(Electrically Erasable Programmable ROM,EEPR0M)等。若在電腦系統(tǒng)20量產(chǎn)的過(guò)程中或是量產(chǎn)之后,發(fā)現(xiàn)開(kāi)機(jī)程序碼BootR0M_ori存有錯(cuò)誤,則設(shè)計(jì)者可將除錯(cuò)完成的開(kāi)機(jī)程序碼BootROM儲(chǔ)存入閃存12中,并設(shè)定中央處理器11在執(zhí)行開(kāi)機(jī)程序前輸出的控制信號(hào)0TP_BIT為狀態(tài)1,以啟動(dòng)備用的開(kāi)機(jī)方案。如此可使電腦系統(tǒng)20在生產(chǎn)之后具有可維修性,不需為了修改開(kāi)機(jī)程序碼BootR0M_ori而替換只讀存儲(chǔ)器26。
[0031]關(guān)于上述電腦系統(tǒng)10、20的運(yùn)作方式可歸納為一安全開(kāi)機(jī)流程30,如圖3所示,安全開(kāi)機(jī)流程30包含有以下步驟:
[0032]步驟300:開(kāi)始。
[0033]步驟301:輸出控制信號(hào)0TP_BIT為狀態(tài)I,以讀取儲(chǔ)存于閃存12中的加密開(kāi)機(jī)程序碼 BootROM。
[0034]步驟302:根據(jù)加密開(kāi)機(jī)程序碼BootROM,輸出芯片身份ID以及驗(yàn)證密鑰KEY至驗(yàn)證單元15,以透過(guò)驗(yàn)證單元15判斷芯片身份ID以及驗(yàn)證密鑰KEY是否皆正確,若是,則進(jìn)行步驟303 ;若否,則進(jìn)行步驟305。[0035]步驟303:輸出控制信號(hào)0ΤΡ_ΒΙΤ為狀態(tài)0,對(duì)加密開(kāi)機(jī)程序碼BootROM執(zhí)行解密動(dòng)作,并將解密后的開(kāi)機(jī)程序碼BootROM儲(chǔ)存于閃存12中。
[0036]步驟304:透過(guò)隨機(jī)存取存儲(chǔ)器14讀取解密后的開(kāi)機(jī)程序碼BootROM,以執(zhí)行開(kāi)機(jī)程序。
[0037]步驟305:執(zhí)行關(guān)機(jī)程序。
[0038]步驟306:結(jié)束。
[0039]關(guān)于安全開(kāi)機(jī)流程30的詳細(xì)實(shí)施方式可參考前述,于此不贅述。
[0040]綜上所述,由于電腦系統(tǒng)可支援的功能日益強(qiáng)大,因此電腦系統(tǒng)開(kāi)機(jī)過(guò)程中所需的開(kāi)機(jī)程序碼也日趨復(fù)雜。本發(fā)明主要根據(jù)閃存的單位儲(chǔ)存容量的價(jià)格低廉以及具有易更新的特點(diǎn),將開(kāi)機(jī)程序碼儲(chǔ)存于閃存中,以達(dá)到節(jié)省成本以及高設(shè)計(jì)彈性的目的。并且,為了提高開(kāi)機(jī)程序碼的安全性,本發(fā)明搭配了開(kāi)機(jī)程序碼的驗(yàn)證步驟,以防止開(kāi)機(jī)程序碼遭受駭客攻擊,達(dá)到信息保護(hù)的目的。因此,本發(fā)明不僅可提供設(shè)計(jì)者更多的開(kāi)發(fā)時(shí)間、實(shí)現(xiàn)客制化功能,甚至可以在電腦系統(tǒng)量產(chǎn)過(guò)程中隨時(shí)更新開(kāi)機(jī)程序碼,達(dá)到設(shè)計(jì)靈活性佳、高信息安全性以及低成本的功效。
[0041]以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明申請(qǐng)專利范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
【權(quán)利要求】
1.一種安全開(kāi)機(jī)方法,用于一電腦系統(tǒng),該安全開(kāi)機(jī)方法包含有: 藉由一中央處理器設(shè)定一第一狀態(tài)的控制信號(hào)并輸出至一存儲(chǔ)器控制器,以使得一儲(chǔ)存有一加密開(kāi)機(jī)程序碼的閃存為只讀狀態(tài); 根據(jù)該加密開(kāi)機(jī)程序碼,該中央處理器輸出一芯片身份以及一驗(yàn)證密鑰至一驗(yàn)證單元,以透過(guò)該驗(yàn)證單元判斷該芯片身份以及該驗(yàn)證密鑰是否皆正確; 若正確,該中央處理器設(shè)定一第零狀態(tài)的控制信號(hào)并并輸出至該存儲(chǔ)器控制器,以使得該閃存為可讀寫(xiě)狀態(tài);以及 透過(guò)該驗(yàn)證單元對(duì)該加密開(kāi)機(jī)程序碼執(zhí)行解密動(dòng)作,并將該解密后的開(kāi)機(jī)程序碼儲(chǔ)存于該閃存中。
2.如權(quán)利要求1所述的安全開(kāi)機(jī)方法,其中當(dāng)該驗(yàn)證單元判斷該芯片身份以及該驗(yàn)證密鑰皆正確時(shí),則該中央處理器透過(guò)一隨機(jī)存取存儲(chǔ)器讀取解密后的該開(kāi)機(jī)程序碼,以執(zhí)行一開(kāi)機(jī)程序。
3.如權(quán)利要求1所述的安全開(kāi)機(jī)方法,其中當(dāng)該驗(yàn)證單元判斷該芯片身份以及該驗(yàn)證密鑰中至少一者不正確時(shí),則該中央處理器執(zhí)行一關(guān)機(jī)程序。
4.如權(quán)利要求1所述的安全開(kāi)機(jī)方法,其中該閃存是一系統(tǒng)級(jí)封裝串行閃存(Systemin Package Serial Flash Memory, SiP SFLASH)或是一米用 Hard Macro 工藝的串行閃存。
5.如權(quán)利要求1所述的安全開(kāi)機(jī)方法,其中該電腦系統(tǒng)另包含有一只讀存儲(chǔ)器,用來(lái)儲(chǔ)存一原始開(kāi)機(jī)程序碼。
6.如權(quán)利要求 5所述的安全開(kāi)機(jī)方法,其中另包含有: 藉由一中央處理器設(shè)定一第二狀態(tài)的控制信號(hào)并傳輸至該存儲(chǔ)器控制器,使得一存儲(chǔ)有一原始開(kāi)機(jī)程序碼的只讀存儲(chǔ)器可讀,并讀取該原始開(kāi)機(jī)程序碼,執(zhí)行一原始開(kāi)機(jī)程序。
7.一種電腦系統(tǒng),包含有: 一中央處理器; 一閃存,用來(lái)儲(chǔ)存一加密開(kāi)機(jī)程序碼; 一存儲(chǔ)器控制器,耦接于該閃存以及該中央處理器,用來(lái)根據(jù)該中央處理器設(shè)定的一第一狀態(tài)的控制信號(hào),控制該閃存為只讀狀態(tài),以便該中央處理器讀取該加密開(kāi)機(jī)程序碼;或根據(jù)該中央處理器設(shè)定的一第零狀態(tài)的控制信號(hào),使得該閃存為可讀寫(xiě)狀態(tài);以便該中央處理器讀取該加密開(kāi)機(jī)程序碼以及寫(xiě)入一解密開(kāi)機(jī)程序碼;以及 一驗(yàn)證單元,耦接于該中央處理器以及該閃存,用來(lái)根據(jù)該中央處理器輸出的一芯片身份及一驗(yàn)證密鑰,判斷是否由中央處理器對(duì)該加密開(kāi)機(jī)程序碼執(zhí)行一解密動(dòng)作,以產(chǎn)生并儲(chǔ)存該解密開(kāi)機(jī)程序碼于該閃存。
8.如權(quán)利要求7所述的電腦系統(tǒng),其中當(dāng)該驗(yàn)證單元判斷該芯片身份以及該驗(yàn)證密鑰皆正確時(shí),則該中央處理器透過(guò)一隨機(jī)存取存儲(chǔ)器讀取該閃存儲(chǔ)存的該解密開(kāi)機(jī)程序碼,以執(zhí)行一開(kāi)機(jī)程序。
9.如權(quán)利要求7所述的電腦系統(tǒng),其中當(dāng)該驗(yàn)證單元判斷該芯片身份以及該驗(yàn)證密鑰中至少一者不正確時(shí),則該中央處理器執(zhí)行一關(guān)機(jī)程序。
10.如權(quán)利要求7所述的電腦系統(tǒng),其中該閃存是一系統(tǒng)級(jí)封裝串行閃存(SysteminPackage Serial Flash Memory, SiP SFLASH)或是一米用 Hard Macro 工藝的串行閃存。
11.如權(quán)利要求7所述的電腦系統(tǒng),其另包含有一只讀存儲(chǔ)器,用來(lái)儲(chǔ)存一原始開(kāi)機(jī)程序碼。
12.如權(quán)利要求11所述的電腦系統(tǒng),其中當(dāng)該中央處理器設(shè)定一第二狀態(tài)的控制信號(hào)時(shí),該中央處理器讀取儲(chǔ)存于該 只讀存儲(chǔ)器的該原始開(kāi)機(jī)程序碼,以執(zhí)行一原始開(kāi)機(jī)程序。
【文檔編號(hào)】G06F21/72GK103679059SQ201210313814
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2012年8月29日 優(yōu)先權(quán)日:2012年8月29日
【發(fā)明者】胡德才 申請(qǐng)人:珠海揚(yáng)智電子科技有限公司