專利名稱:保障一存儲(chǔ)器中的固件安全的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于內(nèi)嵌式系統(tǒng),尤指可以保障一存儲(chǔ)器中的固件安全的方法 及系統(tǒng)。
背景技術(shù):
視頻游戲機(jī)(video game console),像是PS2TM或是XboxTM等等,都是將 固件存放在內(nèi)嵌式存儲(chǔ)器,來控管其操作的內(nèi)嵌式系統(tǒng)。譬如說,固件中可 能包含有用來辨識(shí)有授權(quán)的正版游戲CD-ROM的程序碼。這樣的固件應(yīng)該要 保密,才能防止被不當(dāng)?shù)男薷幕蚴歉?,以避免未授?quán)的盜版游戲CD-ROM 的使用。
一般而言,當(dāng)內(nèi)嵌式存儲(chǔ)器中沒有固件時(shí),為了要使內(nèi)嵌式存儲(chǔ)器可以 被更新,所以內(nèi)嵌式系統(tǒng)就會(huì)內(nèi)建提供有一條額外的路徑,像是整合驅(qū)動(dòng)電 子裝置(Integrated Drive Electronics, IDE)或是任何一種串列周邊介面(Serial Peripheral Interface, SPI)。通過這么一條額外的路徑,不論內(nèi)嵌式存儲(chǔ)器中原 本是否存在有一固件,主機(jī)(譬如一個(gè)人計(jì)算機(jī))便可以將固件更新或是寫入內(nèi) 嵌式存儲(chǔ)器。只是,這么一條額外的路徑同時(shí)也提供了固件被不當(dāng)讀取的可 能。
這個(gè)問題的一種解決方法,是在使用這額外的路徑之前,要求使用者輸 入一個(gè)密碼(password)。如果所輸入的密碼跟集成電路上的一驗(yàn)證碼一致,那
這額外的路徑就可以存取內(nèi)嵌式系統(tǒng)中內(nèi)嵌式存儲(chǔ)器內(nèi)的固件。只是,如果 驗(yàn)證碼是以硬件的方式實(shí)現(xiàn)在一顆集成電路(integrated circuit, IC)上,那所有
的這類內(nèi)嵌式系統(tǒng)的使用者都會(huì)使用相同的驗(yàn)證碼,這會(huì)導(dǎo)致驗(yàn)證碼的保密 工作會(huì)變的很困難或是不可能。如果IC中有些電子式熔絲(electric foses)來產(chǎn)
生個(gè)人所希望且獨(dú)特的驗(yàn)證碼,那不只是電子式熔絲會(huì)增加整個(gè)IC的面積,
連帶的,電子式熔絲也需要有特別的制造工藝來制造,兩者都會(huì)增加非常多 的成本。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種保障一存儲(chǔ)器中的固件安全的方法。所述的存儲(chǔ) 器中的存儲(chǔ)器數(shù)據(jù)被檢查。如果所述的存儲(chǔ)器中的所述的存儲(chǔ)器數(shù)據(jù)符合一 條件,則允許一主機(jī)讀寫整個(gè)所述的存儲(chǔ)器。如果所述的存儲(chǔ)器中的所述的 存儲(chǔ)器數(shù)據(jù)不符合所述的條件,則防止所述的主機(jī)讀取至少所述的存儲(chǔ)器的
一部分。
本發(fā)明實(shí)施例也提供一種存儲(chǔ)器模塊。 一存儲(chǔ)器用以保存存儲(chǔ)器數(shù)據(jù)。 一存儲(chǔ)器檢查模塊連接到所述的存儲(chǔ)器,檢查所述的存儲(chǔ)器數(shù)據(jù)。當(dāng)所述的 存儲(chǔ)器數(shù)據(jù)符合一條件時(shí),所述的存儲(chǔ)器檢査模塊送出一致能信號(hào)。當(dāng)所述 的存儲(chǔ)器數(shù)據(jù)不符合所述的條件時(shí),所述的存儲(chǔ)器檢査模塊停止所述的致能 信號(hào)。 一下載模塊連接于所述的存儲(chǔ)器與一主機(jī)之間。當(dāng)所述的致能信號(hào)被 送出時(shí),所述的下載模塊允許所述的主機(jī)讀取整個(gè)所述的存儲(chǔ)器。當(dāng)所述的
致能信號(hào)被停止時(shí),所述的下載模塊防止所述的主機(jī)(host)讀取至少所述的存
儲(chǔ)器的一部分。
本發(fā)明實(shí)施例也提供一種固件更新方法。將原始數(shù)據(jù)從一主機(jī),通過一 下載路徑(download path),寫入一內(nèi)嵌式存儲(chǔ)器(embedded memory)。讀取所
述的內(nèi)嵌式存儲(chǔ)器中一被寫入的部分。依據(jù)從所述的內(nèi)嵌式存儲(chǔ)器中所讀到 的數(shù)據(jù),產(chǎn)生一驗(yàn)證結(jié)果,并提供給所述的主機(jī)。所述的驗(yàn)證結(jié)果所帶有的 信息少于所述的所讀到的數(shù)據(jù)。所述的主機(jī)無法讀取所述的內(nèi)嵌式存儲(chǔ)器中 所述的被寫入的部分。所述的主機(jī)依賴所述的驗(yàn)證結(jié)果來確認(rèn)寫入的結(jié)果。
本發(fā)明實(shí)施例也提供一種固件更新系統(tǒng)。 一下載模塊連接于一主機(jī)與一 內(nèi)嵌式存儲(chǔ)器之間,可提供一下載路徑與所述的主機(jī),來將原始數(shù)據(jù)寫入所
述的內(nèi)嵌式存儲(chǔ)器中。 一驗(yàn)證模塊讀取所述的內(nèi)嵌式存儲(chǔ)器中一被寫入的部 分,并依據(jù)從被寫入的部分所讀到的數(shù)據(jù),產(chǎn)生提供一驗(yàn)證結(jié)果至所述的主 機(jī)。所述的驗(yàn)證結(jié)果所帶有的信息少于所述的所讀到的數(shù)據(jù)。所述的主機(jī)無 法讀取所述的內(nèi)嵌式存儲(chǔ)器中所述的被寫入的部分。所述的主機(jī)依賴所述的 驗(yàn)證結(jié)果來確認(rèn)寫入的結(jié)果。
本發(fā)明用很少的成本且用傳統(tǒng)的制造工藝技術(shù),便可以有效地隱密內(nèi)嵌 式存儲(chǔ)器中所存放的固件。
圖1與圖2為通過標(biāo)準(zhǔn)介面連接在一起的一內(nèi)嵌式系統(tǒng)與一主機(jī)的功能 方塊圖。
附圖標(biāo)號(hào)
主機(jī) 10;標(biāo)準(zhǔn)介面~11;
微處理器 12;內(nèi)嵌式系統(tǒng) 13;
存儲(chǔ)模塊 14;內(nèi)嵌式存儲(chǔ)器 16;
下載模塊 18;存儲(chǔ)器檢查模塊 20;
抹除模塊 22;內(nèi)嵌式系統(tǒng) 23;
存儲(chǔ)模塊 24;下載模塊 26;
驗(yàn)證模塊 28;先入先出存儲(chǔ)器 30。
具體實(shí)施例方式
圖1為通過標(biāo)準(zhǔn)介面連接在一起的一內(nèi)嵌式系統(tǒng)與一主機(jī)的功能方塊圖。
主機(jī)10可以是一個(gè)人電腦。標(biāo)準(zhǔn)介面11可以是一 IDE總線或是任何一種SPI 介面。內(nèi)嵌式系統(tǒng)13包含有一微處理器12以及一存儲(chǔ)模塊14。存儲(chǔ)模塊14 包含有下載模塊18、內(nèi)嵌式存儲(chǔ)器16、存儲(chǔ)器檢査模塊20、以及抹除模塊 22。內(nèi)嵌式存儲(chǔ)器16可以是一序列(serial)或是平行(pamllel)閃存存儲(chǔ)器(flash
memory),用來存放微處理器12操作時(shí)所依據(jù)的固件。內(nèi)嵌式存儲(chǔ)器16可以 置于 一 多晶片模塊(multi-chip module , MCM)或是于一系統(tǒng)單晶片 (System-on-chip, SOC)設(shè)計(jì)中。下載模塊18與存儲(chǔ)器檢査模塊20—起執(zhí)行 如同警衛(wèi)的工作,來決定是否內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù)可以公開予主 機(jī)10。當(dāng)收到一個(gè)抹除觸發(fā)(emse-trigger)信號(hào)時(shí),抹除模塊22可以將內(nèi)嵌式 存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù)抹除。
于本發(fā)明的一個(gè)實(shí)施例中,如果內(nèi)嵌式存儲(chǔ)器16不是"空"的,就禁止 內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù)公開或是釋放給主機(jī)10。即如果內(nèi)嵌式存儲(chǔ) 器16中的存儲(chǔ)器數(shù)據(jù)不符合條件,則內(nèi)嵌式存儲(chǔ)器16會(huì)被假定為不是"空" 的。譬如說,因?yàn)楣碳械闹噶罨蚴菙?shù)據(jù)一般都是混雜著0跟1,故若存儲(chǔ)器 數(shù)據(jù)全部為0或是全部為1,那內(nèi)嵌式存儲(chǔ)器16就會(huì)被判定是空的,反之即 被判定為不是"空"的。換言之,如果存儲(chǔ)器數(shù)據(jù)具有一預(yù)設(shè)的特征,那內(nèi) 嵌式存儲(chǔ)器16就可被判定是空的。當(dāng)然,也有其他可能的判定方式。譬如說, 如果存儲(chǔ)器數(shù)據(jù)的循環(huán)冗余校驗(yàn)碼(cyclic redundancy check, CRC)與預(yù)設(shè)結(jié)果 一樣,那內(nèi)嵌式存儲(chǔ)器16就可以被判定是空的。
因此,在允許主機(jī)讀寫整個(gè)內(nèi)嵌式存儲(chǔ)器16之前,存儲(chǔ)器檢査模塊20 先檢査內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù),并且依據(jù)先前所描述的條件,判定 內(nèi)嵌式存儲(chǔ)器16是否是空的。存儲(chǔ)器檢查模塊20可以檢查整個(gè)內(nèi)嵌式存儲(chǔ) 器16或是其中的一部分。如果內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù)符合條件, 存儲(chǔ)器數(shù)據(jù)就被判定是空的,那存儲(chǔ)器檢査模塊20就送出一致能信號(hào),下載 模塊18便據(jù)以在主機(jī)IO與內(nèi)嵌式存儲(chǔ)器16之間提供一下載路徑。如果存儲(chǔ) 器數(shù)據(jù)不符合條件,存儲(chǔ)器數(shù)據(jù)就被判定不是空的,那存儲(chǔ)器檢査模塊20就 停止所述的致能信號(hào),因此下載模塊18也取消了那下載路徑,而主機(jī)10就 無法讀取內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù)。
觸發(fā)或啟動(dòng)存儲(chǔ)器檢查模塊20來檢査內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù) 的時(shí)間必須發(fā)生在允許主機(jī)10讀寫整個(gè)內(nèi)嵌式存儲(chǔ)器16之前。譬如說,觸
發(fā)或啟動(dòng)存儲(chǔ)器檢査模塊20可以發(fā)生在當(dāng)整個(gè)內(nèi)嵌式系統(tǒng)13(包含有存儲(chǔ)器 模塊14)開始被供電時(shí),所以內(nèi)嵌式系統(tǒng)13開機(jī)供電之后,由存儲(chǔ)器檢查模 塊20發(fā)出的致能信號(hào)就維持在送出狀態(tài)或是停止?fàn)顟B(tài)。另一種做法(亦可算是 一額外的步驟),是主機(jī)10在每次想要嘗試去更新內(nèi)嵌式存儲(chǔ)器16之前,就 必須先送出一個(gè)檢查觸發(fā)信號(hào)給存儲(chǔ)器檢査模塊20,以執(zhí)行檢査的動(dòng)作。
在主機(jī)10與內(nèi)嵌式存儲(chǔ)器16之間的下載路徑被取消的狀態(tài)下,主機(jī)10 至少不能讀取內(nèi)嵌式存儲(chǔ)器16中的一部分,因此,可能帶有官方固件的存儲(chǔ) 器數(shù)據(jù),整體上而言,是隱密而不可知的。在下載路徑被取消的狀態(tài)下,至 少有一部分的內(nèi)嵌式存儲(chǔ)器16是無法被主機(jī)10所讀取的??赡艿臓顩r描述 如下主機(jī)完全無法讀取內(nèi)嵌式存儲(chǔ)器16的任何部分;主機(jī)10僅能讀取一 部分的內(nèi)嵌式存儲(chǔ)器16;或是僅能讀取內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù)經(jīng)過 計(jì)算后的一個(gè)邏輯結(jié)果。在這個(gè)狀態(tài)(下載路徑被取消的狀態(tài))下,內(nèi)嵌式存儲(chǔ) 器16可能可以容許主機(jī)10進(jìn)行寫入的動(dòng)作。
如上所述, 一預(yù)設(shè)的特征可以當(dāng)作一個(gè)條件,來作為判定內(nèi)嵌式存儲(chǔ)器 16是否是空的依據(jù)。為了使制造廠商出貨后的內(nèi)嵌式系統(tǒng)13可以被一主機(jī) IO寫入固件,內(nèi)嵌式存儲(chǔ)器16可以在制造廠商的一測(cè)試階段中,如于內(nèi)嵌式 存儲(chǔ)器16還沒有裝設(shè)到內(nèi)嵌式系統(tǒng)13中前,就預(yù)先"凈空",及先寫入具 所述的預(yù)設(shè)特征的數(shù)據(jù)。如此,當(dāng)內(nèi)嵌式存儲(chǔ)器16裝設(shè)到內(nèi)嵌式系統(tǒng)13后, 存儲(chǔ)器檢查模塊20就會(huì)開啟下載路徑,使主機(jī)10可以將新固件寫入內(nèi)嵌式 存儲(chǔ)器16中。
內(nèi)嵌式存儲(chǔ)器16中的固件有可能因錯(cuò)誤而需要更新的時(shí)候。尤其是當(dāng)內(nèi) 嵌式存儲(chǔ)器16被判定不是空的時(shí)候,抹除模塊22便提供了一種更新內(nèi)嵌式 存儲(chǔ)器16中固件的方法。依據(jù)主機(jī)10所送出的一抹除觸發(fā)信號(hào),抹除模塊 22使內(nèi)嵌式存儲(chǔ)器16執(zhí)行抹除,并且必要時(shí),對(duì)內(nèi)嵌式存儲(chǔ)器16寫入數(shù)據(jù), 使內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù)可以被判定為空。如此,存儲(chǔ)器檢査模塊 20會(huì)判定內(nèi)嵌式存儲(chǔ)器16為空的,開啟下載路徑,主機(jī)10便可以對(duì)整個(gè)內(nèi)
嵌式存儲(chǔ)器16進(jìn)行讀與寫的動(dòng)作,也可寫入新的固件。所以,不論被抹除的 存儲(chǔ)器數(shù)據(jù)中是正常的或是有錯(cuò)誤固件,它都已經(jīng)被抹除,無法被主機(jī)10通 過標(biāo)準(zhǔn)介面11來讀取。
如同業(yè)界所知的,當(dāng)一主機(jī)連接到一內(nèi)嵌式系統(tǒng)時(shí),寫入原始數(shù)據(jù)到內(nèi) 嵌式存儲(chǔ)器的動(dòng)作之后,往往接著從內(nèi)嵌式存儲(chǔ)器中讀取剛剛寫入的數(shù)據(jù), 以驗(yàn)證原始數(shù)據(jù)跟剛剛寫入的數(shù)據(jù)有沒有一致(一樣),借以確認(rèn)寫入動(dòng)作是否 真的成功無誤。這樣的讀取過程也造成內(nèi)嵌式存儲(chǔ)器中的固件曝光的可能。 圖2中的實(shí)施例變更了讀出路徑(readoutpath),而以提供一驗(yàn)證結(jié)果給主機(jī)做 取代,借以確保內(nèi)嵌式存儲(chǔ)器中的數(shù)據(jù)免于曝光。
圖2為通過標(biāo)準(zhǔn)介面連接在一起的一內(nèi)嵌式系統(tǒng)與一主機(jī)的另一功能方 塊圖。內(nèi)嵌式系統(tǒng)23包含有一微處理器12以及一存儲(chǔ)模塊24。存儲(chǔ)模塊24 包含有下載模塊26、內(nèi)嵌式存儲(chǔ)器16、以及驗(yàn)證模塊28。在圖1與圖2中, 帶有相同功能的元件會(huì)以相同的符號(hào)表示,其細(xì)節(jié)將不再重述。
下載模塊26與驗(yàn)證模塊28 —起執(zhí)行如同警衛(wèi)的工作,將一讀取路徑改 變方向,并提供一驗(yàn)證結(jié)果給一主機(jī)。如同圖2所示,通過一寫入路徑32(由 標(biāo)準(zhǔn)介面11、下載模塊26以及于下載模塊26跟內(nèi)嵌式存儲(chǔ)器16之間的總線 一起所構(gòu)成),主機(jī)10可以將原始數(shù)據(jù)寫入內(nèi)嵌式存儲(chǔ)器16中。然而,位于 主機(jī)10與內(nèi)嵌式存儲(chǔ)器16之間的下載模塊26并不允許主機(jī)10去讀取剛剛 主機(jī)10對(duì)于內(nèi)嵌式存儲(chǔ)器16所寫的數(shù)據(jù)。取而代之的是,讀出路徑34被導(dǎo) 引到驗(yàn)證模塊28,所以驗(yàn)證模塊28讀取內(nèi)嵌式存儲(chǔ)器16中剛剛主機(jī)10所寫 的數(shù)據(jù),并據(jù)此產(chǎn)生一驗(yàn)證結(jié)果給主機(jī)10。主機(jī)10就依賴這驗(yàn)證結(jié)果來確認(rèn) 寫入的結(jié)果,得知寫入是否成功且正確。譬如說,如果驗(yàn)證結(jié)果是"正"的, 主機(jī)10會(huì)判定先前的數(shù)據(jù)寫入內(nèi)嵌式存儲(chǔ)器16的動(dòng)作是成功的,然后才接 著將下一筆數(shù)據(jù)寫入內(nèi)嵌式存儲(chǔ)器16。
為了隱密內(nèi)嵌式存儲(chǔ)器16中的存儲(chǔ)器數(shù)據(jù),驗(yàn)證結(jié)果所帶有的信息必須 要少于從內(nèi)嵌式存儲(chǔ)器16所讀到的數(shù)據(jù)。譬如說,驗(yàn)證結(jié)果可以是從內(nèi)嵌式
存儲(chǔ)器16所讀到的數(shù)據(jù)去除掉其中幾個(gè)位或是位組的結(jié)果、可以是所讀到的 數(shù)據(jù)的循環(huán)冗余校驗(yàn)碼、可以是所讀到的數(shù)據(jù)的一種邏輯運(yùn)算后的結(jié)果、或 是其他類似的做法結(jié)果。因?yàn)橹鳈C(jī)IO知道剛剛寫入的數(shù)據(jù)應(yīng)所述的是什么, 如果主機(jī)10也知道驗(yàn)證模塊28中對(duì)于讀取數(shù)據(jù)的處理方式,主機(jī)10便可以 產(chǎn)生一個(gè)預(yù)期的驗(yàn)證結(jié)果。這個(gè)預(yù)期的驗(yàn)證結(jié)果可以用來與真正從驗(yàn)證模塊 28所獲得的驗(yàn)證結(jié)果做比較,主機(jī)10便可以大略的判定是否前一次的寫入是 否成功。
另一種可行的做法是將以上的判定過程放在驗(yàn)證模塊28中執(zhí)行。如同圖 2所示,驗(yàn)證模塊28可以有一個(gè)先入先出存儲(chǔ)器(first-in-first-out, FIFO)30, 作為一個(gè)緩沖器(buffer),來暫存要寫到內(nèi)嵌式存儲(chǔ)器16的原始數(shù)據(jù)。FIFO 30 同時(shí)也可以作為原始數(shù)據(jù)的快取存儲(chǔ)器來增加寫入的速度。借由將緩沖器 (FIFO30)中所暫存的原始數(shù)據(jù)與從內(nèi)嵌式存儲(chǔ)器16所讀到的數(shù)據(jù)做比較,驗(yàn) 證模塊28自己便可以精確地判定先前的寫入動(dòng)作是否成功,并通過發(fā)出或是 停止一成功信號(hào)(當(dāng)成一驗(yàn)證結(jié)果),來告知主機(jī)10。主機(jī)10無法從內(nèi)嵌式存 儲(chǔ)器16讀取數(shù)據(jù),僅能從所收到的驗(yàn)證結(jié)果來判斷先前的寫入是否成功。
內(nèi)嵌式存儲(chǔ)器16可以被獨(dú)立包裝的一般標(biāo)準(zhǔn)型存儲(chǔ)器(commodity memory)IC所取代。在說明書與權(quán)利要求書中,存儲(chǔ)器泛指(但不限于)標(biāo)準(zhǔn)型 存儲(chǔ)器IC或是內(nèi)嵌式存儲(chǔ)器。
在圖1與圖2中所舉的實(shí)施例都在內(nèi)嵌式存儲(chǔ)器與主機(jī)之間提供了如同 警衛(wèi)的工作,來確保內(nèi)嵌式存儲(chǔ)器中所存放的固件不會(huì)被主機(jī)所完全讀取。 本發(fā)明的實(shí)施例可以相容于傳統(tǒng)的IC制造技術(shù),而且也僅僅需要少量的額外 晶片面積。所以本發(fā)明的實(shí)施例用很少的成本且用傳統(tǒng)的制造工藝技術(shù),便 可以有效地隱密內(nèi)嵌式存儲(chǔ)器中所存放的固件。
本發(fā)明雖以較佳實(shí)施例揭露如上,然而其并非用以限定本發(fā)明,任何掌 握此項(xiàng)技術(shù)的人,在不脫離本發(fā)明的精神和范圍內(nèi),可做些許的更動(dòng)與潤(rùn)飾, 因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求范圍所界定的為準(zhǔn)。
權(quán)利要求
1.一種保障一存儲(chǔ)器中的固件安全的方法,其特征在于,所述的保障一存儲(chǔ)器中的固件安全的方法包含有檢查所述的存儲(chǔ)器中的存儲(chǔ)器數(shù)據(jù);如果所述的存儲(chǔ)器中的所述的存儲(chǔ)器數(shù)據(jù)符合一條件,則允許一主機(jī)讀寫整個(gè)所述的存儲(chǔ)器;以及如果所述的存儲(chǔ)器中的所述的存儲(chǔ)器數(shù)據(jù)不符合所述的條件,則防止所述的主機(jī)讀取至少所述的存儲(chǔ)器的一部分。
2. 如權(quán)利要求1所述的保障一存儲(chǔ)器中的固件安全的方法,其特征在于, 所述的保障一存儲(chǔ)器中的固件安全的方法另包含有抹除所述的存儲(chǔ)器,以使所述的存儲(chǔ)器數(shù)據(jù)符合所述的條件。
3. 如權(quán)利要求1所述的保障一存儲(chǔ)器中的固件安全的方法,其中,所述 的存儲(chǔ)器為一序列或是平行閃存存儲(chǔ)器。
4. 如權(quán)利要求1所述的保障一存儲(chǔ)器中的固件安全的方法,其中,所述 的主機(jī)讀寫整個(gè)所述的存儲(chǔ)器的一下載路徑包含有一整合驅(qū)動(dòng)電子裝置或是 任何一種串列周邊介面裝置。
5. 如權(quán)利要求1所述的保障一存儲(chǔ)器中的固件安全的方法,其中,所述 的存儲(chǔ)器通過計(jì)算所述的存儲(chǔ)器數(shù)據(jù)的循環(huán)冗余校驗(yàn)碼來檢查,而所述的條 件為所述的循環(huán)冗余校驗(yàn)碼與一預(yù)設(shè)結(jié)果一樣。
6. 如權(quán)利要求1所述的保障一存儲(chǔ)器中的固件安全的方法,其中,所述 的條件為所述的存儲(chǔ)器數(shù)據(jù)全部為0或是全部為1。
7. 如權(quán)利要求1所述的保障一存儲(chǔ)器中的固件安全的方法,其中,所述 的條件為所述的存儲(chǔ)器數(shù)據(jù)具有一預(yù)設(shè)的特征。
8. 如權(quán)利要求7所述的保障一存儲(chǔ)器中的固件安全的方法,其特征在于, 所述的保障一存儲(chǔ)器中的固件安全的方法另包含有下列步驟于一測(cè)試階段時(shí),將具有所述的預(yù)設(shè)的特征的預(yù)設(shè)數(shù)據(jù)寫入所述的存儲(chǔ)器中。
9. 如權(quán)利要求1所述的保障一存儲(chǔ)器中的固件安全的方法,其中,防止 所述的主機(jī)讀取至少所述的存儲(chǔ)器的一部分的步驟,僅允許所述的主機(jī)讀取 所述的存儲(chǔ)器的一部分,或是完全禁止所述的主機(jī)讀取所述的存儲(chǔ)器。
10. —種存儲(chǔ)器模塊,其特征在于,所述的存儲(chǔ)器模塊包含有 一存儲(chǔ)器,用以儲(chǔ)存存儲(chǔ)器數(shù)據(jù);一存儲(chǔ)器檢查模塊,連接到所述的存儲(chǔ)器,檢査所述的存儲(chǔ)器數(shù)據(jù),當(dāng) 所述的存儲(chǔ)器數(shù)據(jù)符合一條件時(shí),送出一致能信號(hào),當(dāng)所述的存儲(chǔ)器數(shù)據(jù)不符合所述的條件時(shí),停止所述的致能信號(hào);以及一下載模塊,連接于所述的存儲(chǔ)器與一主機(jī)之間,當(dāng)所述的致能信號(hào)被 送出時(shí),允許所述的主機(jī)讀取所述的存儲(chǔ)器,當(dāng)所述的致能信號(hào)被停止時(shí), 所述的下載模塊防止所述的主機(jī)讀取所述的存儲(chǔ)器。
11. 如權(quán)利要求10所述的存儲(chǔ)器模塊,其中,當(dāng)所述的存儲(chǔ)器模塊開始被供電時(shí),或是當(dāng)所述的主機(jī)嘗試去更新所述的存儲(chǔ)器時(shí),所述的存儲(chǔ)器檢 查模塊被啟動(dòng)。
12. 如權(quán)利要求10所述的存儲(chǔ)器模塊,其中,所述的存儲(chǔ)器檢查模塊通過計(jì)算所述的存儲(chǔ)器數(shù)據(jù)的循環(huán)冗余校驗(yàn)碼來檢査所述的存儲(chǔ)器數(shù)據(jù)。
13. 如權(quán)利要求10所述的存儲(chǔ)器模塊,其中,于一測(cè)試階段時(shí),所述的存儲(chǔ)器被寫入具有一預(yù)設(shè)的特征的預(yù)設(shè)數(shù)據(jù)。
14. 如權(quán)利要求10所述的存儲(chǔ)器模塊,其特征在于,所述的存儲(chǔ)器模塊另包含有一抹除模塊,用以將所述的存儲(chǔ)器中的所述的存儲(chǔ)器數(shù)據(jù)抹除,并使所 述的存儲(chǔ)器數(shù)據(jù)符合所述的條件。
15. 如權(quán)利要求10所述的存儲(chǔ)器模塊,其中,存儲(chǔ)器檢查模塊檢査所述的存儲(chǔ)器數(shù)據(jù)的一部分。
16. 如權(quán)利要求10所述的存儲(chǔ)器模塊,其中,當(dāng)所述的致能信號(hào)被停止時(shí),所述的下載模塊禁止所述的主機(jī)讀取所述的存儲(chǔ)器。
17. —種固件更新方法,所述的固件更新方法包含有 將原始數(shù)據(jù)從一主機(jī),通過一下載路徑,寫入一內(nèi)嵌式存儲(chǔ)器; 讀取所述的內(nèi)嵌式存儲(chǔ)器中一被寫入的部分;以及依據(jù)從所述的內(nèi)嵌式存儲(chǔ)器中所讀到的數(shù)據(jù),產(chǎn)生一驗(yàn)證結(jié)果,并提供 給所述的主機(jī);其中,所述的驗(yàn)證結(jié)果所帶有的信息少于所讀到的所述的數(shù)據(jù),所述的 主機(jī)無法讀取所述的內(nèi)嵌式存儲(chǔ)器中所述的被寫入的部分,且所述的主機(jī)依 賴所述的驗(yàn)證結(jié)果來確認(rèn)寫入的結(jié)果。
18. 如權(quán)利要求17所述的固件更新方法,其特征在于,所述的固件更新 方法另包含有將所述的原始數(shù)據(jù)暫存在一緩沖器中;以及比較所述的緩沖器中的原始數(shù)據(jù)與從所述的內(nèi)嵌式存儲(chǔ)器中所讀到的數(shù) 據(jù),來產(chǎn)生所述的驗(yàn)證結(jié)果。
19. 如權(quán)利要求18所述的固件更新方法,其中,所述的緩沖器為一先入 先出存儲(chǔ)器。
20. —種固件更新系統(tǒng),所述的固件更新系統(tǒng)包含有 一內(nèi)嵌式存儲(chǔ)器;一下載模塊,連接于一主機(jī)與所述的內(nèi)嵌式存儲(chǔ)器之間,可提供一下載 路徑與所述的主機(jī),來將原始數(shù)據(jù)寫入所述的內(nèi)嵌式存儲(chǔ)器中;以及一驗(yàn)證模塊,讀取所述的內(nèi)嵌式存儲(chǔ)器中一被寫入的部分,并依據(jù)從被 寫入的部分所讀到的數(shù)據(jù),產(chǎn)生一驗(yàn)證結(jié)果至所述的主機(jī);其中,所述的驗(yàn)證結(jié)果所帶有的信息少于所述的所讀到的數(shù)據(jù),所述的 主機(jī)無法讀取所述的內(nèi)嵌式存儲(chǔ)器中所述的被寫入的部分,且所述的主機(jī)依 賴所述的驗(yàn)證結(jié)果來確認(rèn)寫入的結(jié)果。
全文摘要
本發(fā)明是關(guān)于一種保障一存儲(chǔ)器中的固件安全的方法及系統(tǒng)。所述的存儲(chǔ)器中的存儲(chǔ)器數(shù)據(jù)被檢查;如果所述的存儲(chǔ)器中的所述的存儲(chǔ)器數(shù)據(jù)符合一條件,則允許一主機(jī)讀寫整個(gè)所述的存儲(chǔ)器;如果所述的存儲(chǔ)器中的所述的存儲(chǔ)器數(shù)據(jù)不符合所述的條件,則防止所述的主機(jī)讀取至少所述的存儲(chǔ)器的一部分。本發(fā)明用很少的成本且用傳統(tǒng)的制造工藝技術(shù),便可以有效地隱密內(nèi)嵌式存儲(chǔ)器中所存放的固件。
文檔編號(hào)G06F12/14GK101192200SQ20071019462
公開日2008年6月4日 申請(qǐng)日期2007年11月27日 優(yōu)先權(quán)日2006年11月27日
發(fā)明者葉裕隆, 許績(jī)?nèi)? 趙銘陽(yáng) 申請(qǐng)人:聯(lián)發(fā)科技股份有限公司