專利名稱:對軟件版本的安裝的授權(quán)的制作方法
技術(shù)領(lǐng)域:
公開了一種用于維護(hù)計(jì)數(shù)器的方法、產(chǎn)品裝置以及設(shè)備。
背景技術(shù):
像移動電話和其他數(shù)據(jù)處理設(shè)備這樣的嵌入式系統(tǒng)依賴于正確軟件的執(zhí) 行。而且,甚至用于相當(dāng)小的系統(tǒng)的軟件也變得日益復(fù)雜,從而增加了出錯(cuò)和 非故意的特征的風(fēng)險(xiǎn),特別是在軟件生命周期期間的早期版本中。而且,早期 軟件版本的功能一般是受限的。因此,日益需要對存儲在嵌入式設(shè)備中的軟件 從較舊版本到己更新版本的頻繁更新。為了明了哪個(gè)版本被安裝在設(shè)備中,所 述設(shè)備一般維護(hù)一個(gè)版本計(jì)數(shù)器,該版本計(jì)數(shù)器的值對應(yīng)于當(dāng)前已安裝的版本 號。
盡管用于保護(hù)靜態(tài)和動態(tài)數(shù)據(jù)以防未授權(quán)操作的方法是已知的,例如如在
國際專利申請WO 02/27441中所公開的那樣,但是這種方法沒有提供對軟件版 本的回滾的保護(hù),例如它們并未阻止一個(gè)已經(jīng)授權(quán)的用戶利用重新安裝較舊的 軟件版本來安裝軟件更新。
然而,通常希望的是實(shí)施軟件更新策略,其防止一個(gè)已經(jīng)獲得了具有初始 軟件版本的移動電話的用戶執(zhí)行超出初始版本的范圍的回滾,即防止重新安裝 比初始版本舊的較舊軟件版本。例如,這樣一種未授權(quán)的回滾可能不是所希望 的,因?yàn)檩^舊的軟件版本可能包括允許不誠實(shí)的用戶禾傭所述設(shè)織,彌如中 斷SIM鎖定等等之類的未授權(quán)的或不希望的操作的錯(cuò)誤。
因此,通常希望的是提供一種用于維護(hù)版本計(jì)數(shù)器的方法,其防止一個(gè)用 戶執(zhí)4彌出初始軟件版本的范圍的軟件回滾,所述初始軟件版本一般是用戶獲 得處理設(shè)備時(shí)所具有的版本。
國際專利申請WO 01/33317公開了一種訪問控制系統(tǒng),該系統(tǒng)用于驗(yàn)證在 設(shè)備中存儲的數(shù)據(jù)是受保護(hù)數(shù)據(jù)(例如被用來控制對其他受保護(hù)材料的訪問的 數(shù)據(jù))最近的已授權(quán)版本。這個(gè)現(xiàn)有技術(shù)的訪問控制系統(tǒng)包括計(jì)數(shù)器和安全存 儲單元,所述安全存儲單元被配置成包含將所述計(jì)數(shù)器的內(nèi)容綁定到正在被保
6護(hù)的數(shù)據(jù)的參數(shù)。
然而,盡管上述現(xiàn)有技術(shù)的系統(tǒng)提供了單向的版本計(jì)數(shù)器,但是上述現(xiàn)有 技術(shù)系統(tǒng)的問題是它需要安全存儲單元。例如,在^A式系統(tǒng)的情況下,這種 安全存儲單元一般被實(shí)施為安全的片上可重寫的、非易失性存儲器,其結(jié)合實(shí)
施所述控制系統(tǒng)的ASIC邏輯來實(shí)施。然而,這種安全的可重寫的、非易失性存 儲器的實(shí)現(xiàn)需要ASIC生產(chǎn)期間的附加步驟,從而增加了整個(gè)生產(chǎn)成本。
發(fā)明內(nèi)容
通過一種由處理設(shè)備維護(hù)版本計(jì)數(shù)器的方法來解決上述及其他問題,所述 版本計(jì)數(shù)謝旨示存儲在所述處理設(shè)備中的存儲內(nèi)容的版本,所述方法包括以第 一和第二模式中的一種,擇性地操作所述處理設(shè)備,其中對以第一模式操作 所述處理設(shè)備的訪問限于授權(quán)的用戶并且與對第二模式的訪問分開控制。
以第一模式操作處理設(shè)備的步驟包括
■生成至少一個(gè)初始完整性保護(hù)值,其用于加密地保護(hù)在以第二模式操作處 理設(shè)備期間所述版本計(jì)數(shù)器的初始計(jì)數(shù)器值的完整性;其中初始計(jì)數(shù)器值是從
計(jì)數(shù)器值序列中選擇的;以及
-將所述初始完整性保護(hù)值作為當(dāng)前完整性保護(hù)值存儲在存儲介質(zhì)中; 以第二模式操作處理設(shè)備的步驟包括將當(dāng)前計(jì)數(shù)器值遞增到后續(xù)的計(jì)數(shù) 器值,該后續(xù)的計(jì)數(shù)器值在計(jì)數(shù)器iW列中是在當(dāng)前計(jì)數(shù)器值之后;其中遞增 包括從所述存儲介質(zhì)中刪除用于加密地保護(hù)當(dāng)前計(jì)數(shù)器值的完整性的當(dāng)前完
整性保護(hù)值。
因此,提供一種不M于安全存儲器的軟件防回滾機(jī)制。
特別是,因?yàn)閺拇鎯橘|(zhì)中刪除了撤銷的計(jì)數(shù)器值的完整性保護(hù)值,并且 因?yàn)閮H僅允許以分開保護(hù)的操作模式來計(jì)算完整性保護(hù)值,所以防止沒有特定 授權(quán)的常規(guī)用戶重新生成撤銷的計(jì)數(shù)器值。
如上所述,在此處所述的處理設(shè)備的實(shí)施例中,所述處理設(shè)備能夠以第一 和第二模式中的一種 擇性地操作,其中對以第一模式操作處理設(shè)備的訪問 限于授權(quán)的用戶并且與對第二模式的訪問分開控制。因此, 一個(gè)被授權(quán)以第二 模式操作設(shè)備的用戶未必也被授權(quán)以第一模式操作設(shè)備。選擇性的操作例如可 以通過提供所述設(shè)備可以被引導(dǎo)的兩種模式、或者通過最初準(zhǔn)許以第二模式訪問來實(shí)施,以及以成功的訪問控制為條件來提供對以第一模式提供的附加功能 的訪問。
可以以多種不同的方式來執(zhí)行完整性保護(hù)值的刪除,例如通過用更新的值 來重寫撤銷的完整性保護(hù)值,通過用預(yù)定的數(shù)據(jù)項(xiàng)(例如零)來重寫保護(hù)值, 或者以任何其他防止用戶隨后從所述存儲介質(zhì)中檢索刪除的數(shù)據(jù)的合適的方 式。
此處所述的方法和設(shè)備的優(yōu)點(diǎn)是防止了版本計(jì)數(shù)器的意外回滾。而且,使 得故意地回滾到與先前己經(jīng)在當(dāng)前用戶的控制下安裝的版本號相對應(yīng)的較舊的 計(jì)數(shù)器值變得困難,因?yàn)樗枰獙Υ鎯Φ募杀Wo(hù)值的操作,例如通過檢索所 有集成保護(hù)值,并且在已經(jīng)刪除了它們之后結(jié)合版本計(jì)數(shù)器的遞增來重新輸入 它們。無論如何,防止了用戶將版本計(jì)數(shù)器回滾至l鵬出它的初始值范圍,即超 出在用戶獲得設(shè)備時(shí)計(jì)數(shù)器的值的范圍。
一旦設(shè)備同時(shí)被更新到后續(xù)的版本,以上更新策略從表面上看可能似乎沒 有嚴(yán)格地防止W^版本回滾(包括回到設(shè)備被獲得時(shí)的初始版本的回滾)的策 略那么嚴(yán)格。然而,應(yīng)該注意到,這種更新策略的嚴(yán)格實(shí)施將需要一種每當(dāng)較 新版本的更新可用時(shí)就迫使用戶更新軟件的機(jī)制。在沒有這種機(jī)制的情況下, 用戶可以剛好省略更新所述設(shè)備,并且從而仍然會^I多操作具有初始軟件版本的 設(shè)備而不必執(zhí)行版本回滾。
出于本說明的目的,術(shù)語"版本計(jì)數(shù)器"打算指任何為存儲內(nèi)容(例如軟 件版本、存儲數(shù)據(jù)的版本等等)的版本序列中的每一個(gè)提供基本上唯一值的設(shè) 備或機(jī)構(gòu)。版本計(jì)數(shù)器可以被實(shí)施為數(shù)據(jù)項(xiàng)(例如數(shù)字或其他值)的順序地有 序集。應(yīng)該理解,版本計(jì)數(shù)器也可以被實(shí)施為生成隨機(jī)數(shù)的非重復(fù)序列的隨機(jī) 數(shù)發(fā)生器,或者被實(shí)施為另一個(gè)唯一{戰(zhàn)生器。在一些實(shí)施例中,版本計(jì)數(shù)器 是用于對在設(shè)備中安裝的軟件的軟件版本進(jìn)衍十?dāng)?shù)的版本計(jì)數(shù)器。
在一些實(shí)施例中,以第一模式操作處理設(shè)備包括
-生成完整性保護(hù)iW列,其用于加密地保護(hù)計(jì)數(shù)器值序列中各自計(jì)數(shù)器值 的完整性;其中所述計(jì)數(shù)器辦列從所述初銜十?dāng)?shù)器值開始)l,地排序;以及 -將完整性保護(hù)辦列存儲在存儲介質(zhì)中。
因此,根據(jù)本實(shí)施例,在開始以第一模式操作設(shè)備鄉(xiāng)司倉犍并存儲了一組 完整性保護(hù)值。每當(dāng)在隨后以第二模式操作設(shè)備期間將版本計(jì)數(shù)器從當(dāng)前值遞增到后續(xù)值時(shí),就從存儲介質(zhì)中刪除與在后續(xù)值之前的計(jì)數(shù)器值對應(yīng)的一個(gè)或 多個(gè)完整性保護(hù)值,特別是與當(dāng)前計(jì)數(shù)器值對應(yīng)的完整性保護(hù)值,從而防止隨 后對當(dāng)前計(jì)數(shù)器值的密碼驗(yàn)證。
在一些實(shí)施例中,可以提供遞增計(jì)數(shù)器的兩種模式不可逆遞增,其中先 前的完整性保護(hù)值被刪除;以及可逆遞增,其中完整性保護(hù)值不被刪除。在又 一個(gè)實(shí)施例中,可以在從實(shí)際遞增計(jì)數(shù)器開始經(jīng)過了預(yù)定時(shí)間之后執(zhí)行對完整 性保護(hù)值的刪除。可選地或者另外,可以在實(shí)際遞增計(jì)數(shù)器后的預(yù)定數(shù)目的重 新弓l導(dǎo)之后執(zhí)行對完整性保護(hù)值的刪除。對計(jì)數(shù)器更新的這種延遲的參與可能 是有用的,以便允許用戶在參與它之前測試更新的軟件版本的正確操作。
在一個(gè)實(shí)施例中,所述方法進(jìn)一步包括提供完整性保護(hù)值計(jì)算單元,所述 完整性保護(hù)值計(jì)算單元適于只有當(dāng)以所述第一和第二模式中的第一種操作所述 設(shè)備時(shí)才輸出所述完整性保護(hù)值序列中的生成的完整性保護(hù)值。因此,僅僅被 授權(quán)以第一模式操作所述設(shè)備的用戶可以(重新)計(jì)算所述完整性保護(hù)值。例 如,設(shè)備制造商可以選擇把對第一模式的訪問限制于所述制造商。因此,制造 商可以在生產(chǎn)所述電子設(shè)備期間以第一模式操作所述設(shè)備以便生成合適數(shù)目的 完整性保護(hù)值并將其存儲在設(shè)備上。所有隨后獲得所述設(shè)備的用戶可以僅僅以 第二模式訪問所述設(shè)備,從而防止重新生成用于過時(shí)計(jì)數(shù)器值的完整性保護(hù)值。
在一些實(shí)施例中,遞增當(dāng)前計(jì)數(shù)器值到后續(xù)計(jì)數(shù)器值包括生成對應(yīng)于后 續(xù)計(jì)數(shù)器值的后續(xù)完整性保護(hù)值;以及用所述后續(xù)完整性保護(hù)值替換所述當(dāng)前 完整性保護(hù)值。因此,在這個(gè)實(shí)施例中,不需要在設(shè)備中從開始就存儲大量的 完整性保護(hù)值,因此節(jié)省了存儲容量并且避免由存儲的完整性保護(hù)值的數(shù)目來 限制可保護(hù)的計(jì)數(shù)器值的范圍。而且,當(dāng)以第二模式操作時(shí),所述設(shè)備僅僅生 成對應(yīng)于后續(xù)計(jì)數(shù)器值的完整性保護(hù)值,從而仍然防止未被授權(quán)以第一模式操 作所述設(shè)備的用戶重新生成先前計(jì)數(shù)器值的完整性保護(hù)值,所述先前計(jì)數(shù)器值 1劍1 排序的計(jì)數(shù)器值而言比當(dāng)前計(jì)數(shù)器衝氏的等級的計(jì)數(shù)器值。
當(dāng)生成后續(xù)完整性保護(hù)值包括根據(jù)當(dāng)前完整性保護(hù)值來驗(yàn)證當(dāng)前計(jì)數(shù)器值 并且根據(jù)對所述當(dāng)前計(jì)數(shù)器值的成功驗(yàn)證來生成所述后續(xù)完整性保護(hù)值時(shí),進(jìn) 一步提高了所述方法的安全性,因?yàn)樗鲈O(shè)備只有在當(dāng)前值被成功地驗(yàn)證時(shí)才 生成后續(xù)完整性保護(hù)值。
當(dāng)每個(gè)生成的完整性保護(hù)值對于對應(yīng)的計(jì)數(shù)器值和所述設(shè)備是唯一的時(shí),防止用戶只從計(jì)數(shù)器還沒有被遞增的另一個(gè)設(shè)備中拷貝先前的完整性保護(hù)值。
術(shù)語"完整性保護(hù)值"打算包括通過用于保證存儲在存儲器中的信息不被 意外地或惡意地改變或破壞的機(jī)制所生成的任何娜項(xiàng)。完整性保護(hù)機(jī)制的例 子包括消息認(rèn)證碼、單向散列函數(shù)、以及數(shù)字簽名。當(dāng)完整性機(jī)制是加密的完 整性保護(hù)機(jī)制即基于秘密密鑰時(shí),提高了完整性保護(hù)的安全性。當(dāng)完整性保護(hù) 值是消息認(rèn)證碼時(shí),實(shí)現(xiàn)了特別安全和高效的完整性保護(hù)。
消息認(rèn)證碼(MAC)是用于完整性保護(hù)數(shù)據(jù)的己知機(jī)制。MAC是采用可 變長度輸A^I密鑰以產(chǎn)生定長的完整性傲戶值作為輸出(所謂的MAC值或標(biāo) 記值)的函數(shù)。MAC通常在共享一個(gè)秘密密鑰的雙方之間使用,以便驗(yàn)證在雙 方之間傳送的信息。MAC可以M將單向斷涵數(shù)應(yīng)用于所述數(shù)據(jù)以及使用秘 密密鑰加密所述結(jié)果來計(jì)算。可以與密碼散列函數(shù)結(jié)合的合適的MAC函數(shù)的 例^S括使用例如AES或安全單向散列函數(shù)的HMAC(用于消息認(rèn)證的密鑰散 列法)、密碼±央鏈接(CBC) MAC。在此處所述的方法和設(shè)備的實(shí)施例中,消 息認(rèn)證碼被用來檢驗(yàn)存儲在處理設(shè)備的存儲介質(zhì)中的計(jì)數(shù)器值的完整性,從而 避M把所述計(jì)數(shù)器值存儲在安全存儲單元中的需要。
因此,在一些實(shí)施例中,完整性保護(hù)包括存儲計(jì)算的與將被保護(hù)的計(jì)數(shù)器 值相關(guān)的參考完整性保護(hù)值,例如消息認(rèn)證碼值,從而使它對于隨后由處理設(shè) 備對計(jì)數(shù)器值的檢查是可用的。因此,當(dāng)檢查所述計(jì)數(shù)器值時(shí),設(shè)備i柳存儲 在設(shè)備中的秘密密鑰計(jì)算計(jì)數(shù)器值的完整性保護(hù)值,并且比較所述結(jié)果與先前 存儲的參考完整性f尉戶值,例如參考MAC值。因此,在這個(gè)實(shí)施例中,禾鵬 密鑰只需要為數(shù)字處理設(shè)備所知。在一些實(shí)施例中,秘密密鑰是只有處理設(shè)備 才有的秘密的數(shù)據(jù)項(xiàng),例如只為處理設(shè)備所知的秘密的數(shù)據(jù)項(xiàng)。
當(dāng)每一1H十?dāng)?shù)器值是設(shè)備唯一的時(shí),提供針對從一個(gè)設(shè)備拷貝完整性保護(hù) 值到另一個(gè)設(shè)備的附加保護(hù)。
在一些實(shí)施例中,由完整性ISJ戶模塊來實(shí)施借助于對應(yīng)的完整性保護(hù)值對 計(jì)數(shù)器值的生成和驗(yàn)證,該完整性保護(hù)模塊被保護(hù)以防受到修改,從而提高了 過程的安全性。所述完整性保護(hù)模i央例如可以由受保護(hù)的硬件模塊和域由可信 程序代碼來實(shí)施。這里的術(shù)語"可信,將代碼"打算包括任何完整性保護(hù)的程 序代碼,例如在處理設(shè)備的固件中包括的程序代碼、在其執(zhí)行之前被加密地完 整性檢驗(yàn)的代碼、在處理設(shè)備的引導(dǎo)ROM代碼中包括的程序代碼等等,例如
10基于存儲在一次性可編程(OTP)存儲器中的,性保護(hù)值。 在一些實(shí)施例中,所述方法進(jìn)一步包括
-接收所述存儲內(nèi)容的更新版本,所述更新版本包括版本指示符; -驗(yàn)證接收的存儲內(nèi)容的可靠性(authenticity);
-基于版本指示符和版本計(jì)數(shù)器的當(dāng)前值來對接收的更新的存儲內(nèi)Wl行 版本控制;
-以版本控制的結(jié)果為條{條受所述接收的更新的存儲內(nèi)容。
因此,提供一種對存儲內(nèi)容的高效且安全的更新。所述處理設(shè)備可以經(jīng)由 任何合適的數(shù)據(jù)接口、經(jīng)由有線或無線通信接口等等來接收存儲內(nèi)容,所述數(shù) 據(jù)接口例如在諸如CD、 "i己憶棒或其他存儲設(shè)備之類的計(jì)算機(jī)可讀介質(zhì)上。
對可靠性的驗(yàn)證可以包括任何在現(xiàn)有技術(shù)中已知的合適技術(shù),例如借助于 數(shù)字簽名和/或證書、借助于消息認(rèn)證碼等等。
版本控制可以包括任何在現(xiàn)有技術(shù)中已知的合適的版本控制機(jī)制,例如用 于在IBM MX Unix操作系統(tǒng)中的軟件模塊的軟件編號和LINUX內(nèi)核的編號, 例如ffi51比,本指示符和版本計(jì)數(shù)器的當(dāng)前值。在一些實(shí)施例中,當(dāng)版本指 示符大于或等于版本計(jì)數(shù)器的最低可靠計(jì)數(shù)器值(即對于其在設(shè)備中存儲有效 完整性保護(hù)值的最低計(jì)數(shù)器值)時(shí),接受更新的存儲內(nèi)容。當(dāng)版本控制失敗時(shí), 例如因?yàn)榻邮盏陌姹靖f或與當(dāng)前版本或最低可靠版本不兼容,更新過程可能
被中止,可能生成錯(cuò)誤消息,禾n/或設(shè)備可以以任何其他合適的方式進(jìn)行。
當(dāng)被接受時(shí),設(shè)備一般存儲更新的存儲內(nèi)容以便替換對應(yīng)的存儲內(nèi)容。在 一些實(shí)施例中,所述更新進(jìn)一步包括遞增版本計(jì)數(shù)器到對應(yīng)于如此處所述的 接收的更新的存儲內(nèi)容的版本指示符的值。例如,所述遞增可以包括設(shè)置版本 計(jì)數(shù)器等于接收的版本指示符。在另一個(gè)實(shí)施例中,所述遞增可以包括設(shè)置版 本計(jì)數(shù)器等于在版本計(jì)數(shù)器序列中具有等于接收的版本指示符的位置的計(jì)數(shù)器 值。
本發(fā)明涉及包括上文和下文中所述的方法、對應(yīng)設(shè)備、以及計(jì)算機(jī)程序的 不同方面,每一個(gè)方面產(chǎn)生結(jié)合上述方法所述的一個(gè)或多個(gè)益處和優(yōu)點(diǎn),并且 每一個(gè)方面具有對應(yīng)于結(jié)合上述方法所述的實(shí)施例的一個(gè)或多個(gè)實(shí)施例。
更具體地說,根據(jù)另一方面,配置成維護(hù)指示存儲在數(shù)據(jù)處理設(shè)備中的存 儲內(nèi)容的版本的版本計(jì)數(shù)器的數(shù)據(jù)處理設(shè)備能夠選擇性地以第一和第二模式中的一種來操作,其中對以第一模式操作處理設(shè)備的訪問限于授權(quán)的用戶并且與 對第二模式的訪問分開控制。
處理設(shè)備在以第一模式操作時(shí)被配置成執(zhí)行下列步驟
-生^^f述版本計(jì)數(shù)器的至少一個(gè)初始計(jì)數(shù)器值,其中所述初始計(jì)數(shù)器值是 從計(jì)數(shù)器辦列中選擇的;
-生成初始完整性保護(hù)值,其用于加密地保護(hù)在以第二模式操作處理設(shè)備期
間生成的初^i十?dāng)?shù)器值的完整性;以及
-將初始完整性保護(hù)值作為當(dāng)前完整性保護(hù)值存儲在存儲介質(zhì)中。 處理設(shè)備在以第二模式操作時(shí)被進(jìn)一步配置成遞增當(dāng)前計(jì)數(shù)器值至IJ后續(xù)計(jì)
數(shù)器值,后續(xù)計(jì)數(shù)器值在計(jì)數(shù)器值序列中是在當(dāng)前計(jì)數(shù)器值之后;其中遞增包
括w;f述存儲介質(zhì)中冊i滁用于加密地保護(hù)當(dāng)前計(jì)數(shù)器值的完整性的當(dāng)前完整
性保護(hù)值。
術(shù)語"處理設(shè)備"打算包括任何包含用于數(shù)據(jù)處理的處理裝置的電子設(shè)備。 特別是,術(shù)語"處理設(shè)備"打算包括任何電子設(shè)備、便攜式無線電通信設(shè)備、 以及其他手持式或便攜式設(shè)備、以及供這種設(shè)備中使用的集成電路、芯片或芯 片組。術(shù)語"便攜式無線電通信設(shè)備"包括諸如移動終端(例如移動電話)、尋 呼機(jī)、通信器、電子記事本、智能電話、個(gè)人數(shù)字助理(PDA)、手持式計(jì)^t幾 等等之類的所有設(shè)備。
術(shù)語"存儲介質(zhì)"打算包括任何適合于存儲數(shù)字?jǐn)?shù)據(jù)項(xiàng)的電路或設(shè)備。這 種存儲介質(zhì)的例子包括非易失性存儲器、只讀存儲器(ROM)、隨機(jī)存取存儲 器(RAM)、閃速存儲器、可擦除可編程只讀存儲器(EPROM)等等。在一些 實(shí)施例中,存儲介質(zhì)被包括在處理設(shè)備中。
根據(jù)另一方面, 一種更新存儲在處理設(shè)備中的存儲內(nèi)容的方法包括
由所述處理設(shè)備維護(hù)版本計(jì)數(shù)器,所述版本計(jì)數(shù)謝旨示所述存儲內(nèi)容的版 本,其中維護(hù)版本計(jì)數(shù)器包括選擇性地以第一和第二模式中的一種來操作處理 設(shè)備,其中對以第一模式操作處理設(shè)備的訪問限于授權(quán)的用戶并且與對第二模 式的訪問分開控制。
其中以第一模式操作處理設(shè)備包括
-生成至少一個(gè)初始完整性保護(hù)值,其用于加密地保護(hù)在以第二模式操作處
理設(shè)備期間所述版本計(jì)數(shù)器的初始計(jì)數(shù)器值的完整性;其中該初^i十?dāng)?shù)器值是從計(jì)數(shù)器辦列中選擇的;以及
-^^刀始完整性保護(hù)值作為當(dāng)前完整性保護(hù)值存儲在存儲介質(zhì)中;
其中所述方法進(jìn)一步包括 -以第二模式操作處理設(shè)備;
陽接^^f述存儲內(nèi)容的更新的版本,所述更新的版本包括版本指示符; -驗(yàn)證接收的存儲內(nèi)容的可靠性;
-基于版本指示符和版本計(jì)數(shù)器的當(dāng)前值來對接收的更新的存儲內(nèi)容執(zhí)行 版本控制;
-以版本控制的結(jié)果為條j條受所述接收的更新的存儲內(nèi)容;以及
-遞增當(dāng)前計(jì)數(shù)器值到后續(xù)計(jì)數(shù)器值,所述后續(xù)計(jì)數(shù)劉就應(yīng)于所艦本指 示符并且在計(jì)數(shù)器值序列中的當(dāng)前計(jì)數(shù)器值之后;其中遞增包括從所述存儲介 質(zhì)中冊l」除用于加密地保護(hù)當(dāng)前計(jì)數(shù)器值的完整性的當(dāng)前完整性保護(hù)值。
注意,上面和下文中所述的方法的特征可以以軟件來實(shí)施,并且在數(shù)據(jù)處 理設(shè)備或通過諸如計(jì)算機(jī)可執(zhí)行指令之類的程序代碼裝置的執(zhí)行而形成的其他 處理裝置上被執(zhí)碎亍。在這里和下文中,術(shù)語"處理裝置"包括適當(dāng)?shù)剡m于執(zhí)行 以上功能的任何電路和/或設(shè)備。特別是,J^i^括通用的或?qū)S玫目删幊?微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、可編程邏輯陣列 (PLA)、現(xiàn)場可編程門陣列(FPGA)、專用電子電路等等、或者它們的組合。
因此,根據(jù)另一方面,一種計(jì)算機(jī)程序包括程序代碼裝置,其適于當(dāng)所述 計(jì)算機(jī)程序在數(shù)據(jù)處理設(shè)備上運(yùn)行時(shí)fM據(jù)處理設(shè)備執(zhí)行上面和下文中描述的 方法的各步驟。
例如,程序代碼裝置可以經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)從存儲介質(zhì)或從另一個(gè)計(jì)算機(jī)被 加載到諸如RAM (隨機(jī)存取存儲器)之類的存儲器中??蛇x擇地,所述的特征 可以通過5,線電路代替軟件或與軟件相結(jié)合來實(shí)施。
根據(jù)在下文中參考附圖所述的實(shí)施例,上述及其他方面將是顯而易見的并 且被闡明,在附圖中
圖1示出處理設(shè)備的一個(gè)實(shí)施例的示意方框圖。
圖2示出用于實(shí)施計(jì)數(shù)器的處理單元的例子禾卩用于維護(hù)版本計(jì)數(shù)器值和完整性保護(hù)值的數(shù)據(jù)結(jié)構(gòu)的例子的示意方框圖。
圖3示出用于實(shí)施計(jì)數(shù)器的處理單元的另一個(gè)例子的示意方框圖。
圖4示出計(jì)數(shù)器機(jī)制的一個(gè)實(shí)施例的流程圖。
圖5示出用于維護(hù)版本計(jì)數(shù)器值和完整性保護(hù)值的數(shù)據(jù)結(jié)構(gòu)的例子。
具體實(shí)施例方式
圖1示出作為處理設(shè)備的一個(gè)例子的、包括一個(gè)或多個(gè)專用集成電路 (ASIC)的設(shè)備的示意方框圖,所述處理設(shè)備例如是供移動終端或任何其他電子 設(shè)備中使用的一個(gè)或多個(gè)ASIC??傮w上用100 g的ASIC設(shè)備包括中央處理 邏輯±央102、用于將 輸入到ASIC設(shè)備/從ASIC設(shè)備輸出數(shù)據(jù)的接口塊186、 以及用于存儲數(shù)據(jù)和/或程i^f戈碼的i^存儲塊103。
存儲塊103經(jīng)由系統(tǒng) 總線105與中央處理邏輯塊102連接。數(shù)據(jù)存儲塊103包括用于存儲程序指 令的程序存儲器塊106,用于容納寄存器、隨機(jī)存取存儲器(RAM)等等的數(shù) 據(jù)存儲器塊107,以及可重寫的非易失性存儲器塊108,例如電可擦除可編程只 讀存儲器(EEPROM)。程序存儲器塊可以被實(shí)施為只讀存儲器(ROM)、以及 可擦除可編程只讀存儲器(EPROM)、閃速存儲器、EEPROM等等。然而應(yīng)當(dāng) 理解,數(shù)據(jù)存儲±央可以包括附加的和/或替換的存儲器±央或存儲類型。
中央處理邏輯±央102包括微處理器188或其^3i合于例如通過執(zhí)行存儲在 娜存儲塊103中的禾將代碼雜制移動終端或其他電子設(shè)備的操作的邏輯電 路。特別是,中央處理邏lli央102被配置成維護(hù)存儲在非易失性存儲器i央108 的單元109中的版本計(jì)數(shù)器值,該非易失性存儲器i央108用于維護(hù)存儲在數(shù)據(jù) 存儲塊103中的程序代碼的版本號。而且,中央處理邏輯塊被配置成啟動版本 計(jì)數(shù)器值109的完整性檢查,例如每隔一定間隔、在弓l導(dǎo)過程期間、在安勢升 級期間、禾口/或在執(zhí)行與版本計(jì)數(shù)器相關(guān)聯(lián)的禾辨代碼之前等等。而且,中央處 理邏輯塊102被,,對應(yīng)軟件的新版本被加載到 存儲±央103中時(shí)啟動 對^^諸的版本計(jì)數(shù)器值109的遞增。
為此,中央處理塊102包括完整性保護(hù)邏輯塊101,所述完整性j斜戶邏輯土央 101包,輯電路,該邏輯電路被配置膝驗(yàn)證如在下面更加詳細(xì)地描述的計(jì)數(shù)器 值109的完整性,以倒斜戶計(jì)數(shù)器值以免被未授權(quán)的用戶操作,例如修改、用 另一個(gè)值衛(wèi)別是較小值)替換等等。為此,非易失性存儲器塊108進(jìn)一步包
14括存儲單元110,所述存儲單元110用于存儲一個(gè)或多個(gè)完整性保護(hù)值以供由完
整性保護(hù)邏輯i央101實(shí)施的驗(yàn)證過程4頓。完整性保護(hù)值由完整性保護(hù)邏輯土央 101生成,并且由完整性保護(hù)邏輯i央101在驗(yàn)證存儲在存儲單元109的(多個(gè)) 計(jì)數(shù)器值期間用作參考完整性傲戶值。完整性保護(hù)邏輯土央101會辦以兩種模式 操作第一模式或所謂的"編程模式",以及第二模式或所謂的"驗(yàn)證模式"。 操作模式由中央處理邏輯塊102借助于合適的控串賠號來控制。當(dāng)以"編程模 式"操作時(shí),完整性保護(hù)邏輯塊101生成至少一個(gè)初始參考保護(hù)值。生成的完 整性保護(hù)值被存儲在存儲單元110中以作為用于稍后驗(yàn)證目的的參考值。當(dāng)以 "驗(yàn)證模式"操作時(shí),由完整性保護(hù)邏輯塊101執(zhí)行對存儲在單元109中的(多 個(gè))計(jì)數(shù)器值的^i正。
如將在下面更加詳細(xì)地描述的夷卩樣,完整性保護(hù)邏輯塊101包掛方問控制 塊111,所述訪問控制塊111被配置成當(dāng)用戶請求以"編程模式"操作完整性保 護(hù)邏輯塊101時(shí)執(zhí)4刊蟲立的認(rèn)證過程??蛇x擇地,訪問控制111可以由在完整 性保護(hù)邏輯塊101之外的訪問控制i央來執(zhí)行。應(yīng)當(dāng)理解,照此例如以"驗(yàn)證模 式"對處理設(shè)備的操作也可能例如借助于初始訪問控制來進(jìn)行用戶認(rèn)證過程。 因此,除初始訪問控制或者初始訪問控制的替代方式之外,還可以執(zhí)行用于以 "編程模式"操作完整性保護(hù)邏輯塊101的訪問控制lll。在第一種情況下,用 戶可能被要求一開始獲得授權(quán)來訪問設(shè)備,例如以"驗(yàn)證模式"操作設(shè)備。為 了切換操作到"編程模式",需要一種不同于初銜方問控制的附B訪問控制。在 第二種情況下,設(shè)備可以是例如能夠以兩種替換的操作模式進(jìn)行引導(dǎo), 一種包 括以"驗(yàn)證模式"操作設(shè)備,以及另一種包括以"編程模式"操作設(shè)備。因此, 取決于用戶希望以哪一種模式操作設(shè)備,用戶執(zhí)行對應(yīng)的一種訪問控制過程。
完整性保護(hù)邏輯塊101被實(shí)施為受保護(hù)的硬件塊,即被實(shí)施為進(jìn)行保護(hù)以 防未授權(quán)訪問的硬件塊。特別是,在一些實(shí)施例中,完整性保護(hù)邏輯±央101被 配置成使得只有在以"編程模式"操作ASIC時(shí),即在已經(jīng)引導(dǎo)ASIC的用戶被 授權(quán)以"編程模式"操作ASIC時(shí),才可以從完整性{尉戶邏輯±央101中讀出至少 一個(gè)初始完整性傲戶值。
對用戶授權(quán)的驗(yàn)證可以以任何合適的方式執(zhí)行,例如通過要求用戶輸入與 先前存儲的值進(jìn)行比較的訪問碼,通過要求用戶輸入有效密鑰卡或其他硬件安 全設(shè)備,通過執(zhí)行基于用戶的身體屬性(例如指紋)的認(rèn)證機(jī)制、或者任何其
15他用于確定用戶是已經(jīng)被授權(quán)的用戶的合適的機(jī)制。用于提供授權(quán)的證據(jù)的合
適方法的例子是所謂的Fiat-Shamir識別算法,例如如在US 4,748,668中所描述 的那樣。應(yīng)當(dāng)理解,用于輸入"編程模式"的訪問控制可以基于與用于以"驗(yàn) 證模式"操作設(shè)備的訪問控制相同的或不同的認(rèn)證機(jī)制。例如,對兩種模式的 訪問可以通過基于訪問碼的相同的認(rèn)證機(jī)制來控制,但是其中對于這兩種模式 需要不同的訪問碼。
硬fH呆護(hù)可以通過任何合適的保護(hù)技術(shù)來實(shí)施,例如如在WRakl, WEffing 的"Smart Card Handbook" (3rd ed., Wiley 2003 )的第8.2章"Smart card Security" 中所述的用來保護(hù)智能卡中的硬件的所述技術(shù)。
值得注意的是,(多個(gè))計(jì)數(shù)器值109和(多個(gè))完整性保護(hù)值110被存儲 在受保護(hù)的完整性保護(hù)邏輯塊101之外。特別是,(多個(gè))計(jì)數(shù)器值109和(多 個(gè))完整性保護(hù)值110可以被存儲在未受保護(hù)的非易失性存儲器中,特別是在 可重寫的存儲器(例如設(shè)備100的存儲器塊108)中。
盡管ASIC設(shè)備100被顯示為單個(gè)塊,但是^絵認(rèn)識到,設(shè)備100可以被實(shí) 施為多個(gè)不同的ASIC。例如,為了斷氏生產(chǎn)成本,可能希望在不同的ASIC上 實(shí)施EEPROM和微M器以及完整性保護(hù)邏輯塊。因此,術(shù)語"ASIC"以及 "ASIC設(shè)備"打算包括單個(gè)ASIC以及各獨(dú)立的ASIC的組合。
現(xiàn)在將參考圖2和圖3更詳細(xì)地描述完整性保護(hù)邏輯塊101的實(shí)施例。
圖2示出完整性保護(hù)邏輯塊的例子的更詳細(xì)的方框圖。完整性保護(hù)邏輯塊 201包括MAC計(jì)算塊212,其被配置成計(jì)算一個(gè)或多個(gè)用于保護(hù)相應(yīng)的計(jì)數(shù)器 值的加密的消息認(rèn)證碼(MAC)值。
通常,MAC計(jì)算可以由下列等式M示A/ = //化《,其中/Z是合適的 MAC函數(shù),"是將被保護(hù)的數(shù)據(jù),M是計(jì)算的MAC值,以及A:是禾總密鑰值。 在一些實(shí)施例中,秘密密鑰&在ASIC100上是可訪問的,但是不能從ASIC 100 中讀出。^S的MAC函數(shù)的例子是如在Network Working Group Request for Comments (RFC) 2104, "HMAC: Keyed-Hashing for Message Authentication", February 1997中定義的HMAC函數(shù)。因此,在當(dāng)前認(rèn)證用209表示的計(jì)數(shù)器值 W的情況下,完整性保護(hù)邏輯塊201從存儲±央109中接收計(jì)數(shù)器值209,并且 把計(jì)數(shù)器值209 m到MAC計(jì)算塊212中。MAC計(jì)算塊212進(jìn)一步接收例如 在ASIC 100或完整性保護(hù)塊201的安全存儲器(例如內(nèi)部ROM)中存儲的以防不希望的讀出的、用216標(biāo)的禾總密鑰t即這樣的完整性保護(hù)塊201已經(jīng) 讀TO所述秘密密鑰A的訪問。MAC計(jì)算塊212計(jì)算MAC值A(chǔ)^/f化m"并 且將計(jì)算的值287轉(zhuǎn)發(fā)至帳式選擇器218,例如開關(guān)。
如上所述,完整性《尉戶塊201可以以如由控制輸入215控制的兩種模式操 作"編程模式"和"驗(yàn)證模式"。如上所述,以"編程模式"的操作易受到由 訪問控制211實(shí)施的對應(yīng)的訪問控制。因此,訪問控制塊211接收模式選擇控 制信號215。如果模式選擇信號215對應(yīng)于"編程模式",則訪問控制塊211驗(yàn) 證用戶的可靠性以便確保以"編程模式"的完整性保護(hù)塊的操作限于如上所述 的授權(quán)的用戶。如果用戶被授權(quán),貝U訪問控制塊211將模式選擇信號215作為 控制信號轉(zhuǎn)發(fā)到選擇器218以便控制計(jì)算的MAC值的數(shù)據(jù)流。如果模式選擇 信號215對應(yīng)于"驗(yàn)證模式",貝U訪問控制塊211皿擇信號轉(zhuǎn)發(fā)到選擇器218。 應(yīng)當(dāng)理解,在一些實(shí)施例中"驗(yàn)證模式"也可能受到訪問控制。
當(dāng)以"編程模式"操作時(shí),選擇器218將計(jì)算的MAC值287經(jīng)由連接220 轉(zhuǎn)發(fā)到輸出214,從i亥輸出214, MAC值作為參考MAC值被存儲在存儲單元 110中。在這個(gè)實(shí)施例中,完整性保護(hù)塊201在以"編程模式"操作時(shí)被控制以 便計(jì)算用于預(yù)定數(shù)目W個(gè)版本計(jì)數(shù)器值Fera/o"Cow的,F(xiàn)em'o"Coi^2,...., 論ra'o"Co柳 的多個(gè)MAC值附ac—FC7,/ = 論rao"Cow"",附ac—FC2化/ =
投ra/朋CoM"^,…,mac—FCw—化/ =J^raowCoww^并將其存儲在存儲單元 110中。為了本描述的目的,假定版本計(jì)數(shù)器值以遞增次序排序,即 P§ra/owCoi#^< ftra朋Coww^〈…〈投ra/owCo朋^。然而應(yīng)當(dāng)理角軍,計(jì)數(shù)器f直可以 根據(jù)任何魏的排序方案菊頃序地排序。預(yù)先計(jì)算和存儲MAC值的數(shù)目//可 以被選擇作為需要的存儲空間和應(yīng)該由受保護(hù)的版本計(jì)數(shù)器管理的版本更新的 預(yù)期數(shù)目之間的折衷。例如,版本MAC值214可以與相應(yīng)的版本計(jì)數(shù)值相關(guān) 地存儲在例如如圖2b所示出的表格娜結(jié)構(gòu)中??蛇x擇地,版本MAC值可以 獨(dú)立于版本計(jì)數(shù)器值被存儲。例如,在設(shè)備包括用于例如通過遞增計(jì)數(shù)器生成 計(jì)數(shù)器辦歹啲邏輯的實(shí)施例中,計(jì)數(shù)器值不需要被明確地存儲。
當(dāng)以"驗(yàn)證模式"操作時(shí),選鄉(xiāng)218將計(jì)算的MAC值麟到驗(yàn)證器士央 217 (例如比較器)。驗(yàn)證:^塊217比較計(jì)算的MAC值287與存儲在存儲單元 110處的一個(gè)或多個(gè)參考MAC值210。在參考MAC值210與它們各自的計(jì)數(shù) 器值209被相關(guān)地存儲的實(shí)施例中,驗(yàn)證器塊可以比較計(jì)算的MAC值287和與由其計(jì)算MAC值287的計(jì)數(shù)器值相關(guān)地存儲的參考值210。可選擇地,驗(yàn)i正 器決217可以連續(xù)地比較計(jì)算的MAC值287和存儲的參考值210,直到發(fā)現(xiàn)匹 配為止或者直到所有的參考值都已經(jīng)被處理為止。驗(yàn)證器塊217生成指示對應(yīng) 于計(jì)算的MAC 287的匹配參考MAC 210是否被發(fā)現(xiàn)的輸出信號219,即所述 輸出信號219指^i十?dāng)?shù)器值209是否是可靠的和最新的。由完整性保護(hù)塊201 在輸出節(jié)點(diǎn)213處輸出所述輸出信號213。
在處理設(shè)備的每次啟動時(shí)或每當(dāng)由在處理設(shè)備上運(yùn)行的應(yīng)用程序請求時(shí), 例如M核心軟件的平臺,完整性保護(hù)塊被控制以驗(yàn)證存儲在如上所述的存儲 單元109中的當(dāng)前計(jì)數(shù)器值。在一些實(shí)施例中,每當(dāng)版本控制過程訪問版本計(jì) 數(shù)器時(shí),京M版本計(jì)數(shù)器的完整性進(jìn)行驗(yàn)證。如果計(jì)算的MAC值287對應(yīng)于 存儲在存儲器110中的參考MAC值210,處理設(shè)備就繼續(xù)正常工作;否則處理 設(shè)備的一些鄉(xiāng)萬有功能被禁止和/棘取另一頓當(dāng)?shù)膭幼鳌?br>
此處所述的版本計(jì)數(shù)器可以以多種不同的方式被用于軟件版本控制。在下 文中將描述兩個(gè)例子,其中版本計(jì)數(shù)器的當(dāng)前值(即具有與其相關(guān)聯(lián)的有效完 整性傲戶值的最低計(jì)數(shù)器值)識別允許的衝氐軟件版本,該版本被允許在處理 設(shè)備上執(zhí)行。
在一個(gè)例子中,版本控制由安裝的軟件本身來執(zhí)行。在這種系統(tǒng)中,軟件
具有數(shù)字簽名以便確保軟件沒有被未授權(quán)的用戶改變。用于驗(yàn)證接收的/存儲的
軟件的可靠性的合適方法的例子包括在美國專利no. 6,026,293中或在可信計(jì)算
組(www.trustedcomputinggroup.org.)的PC客戶端工作組的規(guī)范中描述的方法。
可選:tM者另外,軟件的可靠性可以由另一個(gè)合適的機(jī)制來保護(hù)。當(dāng)處理設(shè)備
被引導(dǎo)時(shí)和減當(dāng)軟件的執(zhí)行被啟動時(shí),處理設(shè)備驗(yàn)證軟件的數(shù)字簽名。如果數(shù)
字簽名沒有被成功地驗(yàn)證,貝忡止弓l導(dǎo)過程和/或軟件的執(zhí)行。軟件進(jìn)一步包括
指示軟件的版本號的版本指示符。當(dāng)軟件的執(zhí)行被啟動時(shí),軟件比較它自己的 版本指示符和由通過如此處所述的處理設(shè)備維護(hù)的版本計(jì)數(shù)器的當(dāng)前計(jì)數(shù)器值
指示的當(dāng)前允許的(多個(gè))版本號。如果軟件的版本指示符等于或大于版本計(jì) 數(shù)器的當(dāng)前計(jì)數(shù)器值,軟件就繼續(xù)執(zhí)行;否則就中止執(zhí)行。如果軟件的版本指 示符大于版本計(jì)數(shù)器的當(dāng)前計(jì)數(shù)器值,處理設(shè)備就遞增版本計(jì)數(shù)器到等于所安 裝軟件的版本指示符的更新值。如此處所述,這個(gè)遞增包括刪除與所有小于更 新值的計(jì)數(shù)器值相關(guān)聯(lián)的(多個(gè))完整性保護(hù)值,例如(多個(gè))MAC值。在可替換的例子中,上述的版本控制通過獨(dú)立的加載器軟件或啟動軟im 行。不過,在這個(gè)可替換的實(shí)施例中,數(shù)字簽名或其他將被執(zhí)行的軟件的完整 性保護(hù)仍然防止執(zhí)行軟件的未授權(quán)的操作(例如改^^本指示符)。
當(dāng)處理設(shè)備賜被控制來從當(dāng)前鞭新/遞增/遞升版本計(jì)數(shù)器到后續(xù)值時(shí),
處理設(shè)備100從存儲器110中刪除所有與小于所述后續(xù)計(jì)數(shù)器值的計(jì)數(shù)器值相 關(guān)聯(lián)的參考MAC值。例如,計(jì)數(shù)器值的更新可以由在中央處理邏輯塊102的 微處理器188上執(zhí)行的軟件更新代理141執(zhí)行。在一些實(shí)施例中,版本計(jì)數(shù)器 的遞升在ASIC的安全部分中被實(shí)施??蛇x擇地,遞升可以由可信的/驗(yàn)i正的軟 件來執(zhí)行。
在Jd^lfe本計(jì)數(shù)器值旨&o"C畫"旨w'o"C謹(jǐn)6,…,f^ra/o"Cow" 的例子 中,當(dāng)版本計(jì)數(shù)器從rm,b"Cow^遞增到Fera'o"Co柳^時(shí),處理設(shè)備從存儲器 中刪除MAC值附ac—類似地,如果版本計(jì)數(shù)器遞增到Km/o"Cow%, 處理設(shè)備就從存儲器中刪除MAC值附ac—FCje乂 ...,願c—陀/。圖2c說明 在圖2b中所示的計(jì)數(shù)器值和MAC值的表,但是在更iH十?dāng)?shù)器值到投ra朋Ow^ 之后,即從存儲器中刪除了MAC值附ac—『7—<…,附ac—FC^—w/。因此,通 常當(dāng)前計(jì)數(shù)器值是其完整性可成功驗(yàn)證的最小計(jì)數(shù)器值,即對于其在設(shè)備中存 儲有效關(guān)聯(lián)的完整性保護(hù)值的最小計(jì)數(shù)器值。因此,隨后由完整性保護(hù)塊試圖 驗(yàn)證樹氐計(jì)數(shù)器值將失敗,因?yàn)閷?yīng)的參考MAC值不再存在。而且,沒有被 授權(quán)以"編程模式"操作ASIC的用戶不能重fH十算對應(yīng)于先前(較低的)計(jì)數(shù) 器值的MAC值。
上述例子進(jìn)一步說明后續(xù)計(jì)數(shù)器值可以是序列中任何后續(xù)計(jì)數(shù)器值,并且 不必是緊接的計(jì)數(shù)器值,即當(dāng)遞增計(jì)數(shù)器值時(shí)可以瑕敏中間計(jì)數(shù)器值。在, 例子中,計(jì)數(shù)器值例如可以從投ra/oMCow購遞增到Kra/owCbM加2或遞增到 Fm/朋Cow賄,》2。例如當(dāng)軟件版本被更新到一個(gè)新的版本以至于一個(gè)或多個(gè) 中間版本被瑕撾時(shí),這可能是有用的。
圖3示出完整性保護(hù)邏||±央301的另一個(gè)例子的更詳細(xì)的方框圖。完整性 保護(hù)邏輯塊301類似于圖2的完整性{斜戶±央,并且包括MAC計(jì)算塊212,其
被配置成計(jì)算用于保護(hù)相應(yīng)的計(jì)數(shù)器值的一個(gè)或多個(gè)加密的消息認(rèn)證碼 (MAC)值;控制選離218的訪問控制塊211;以及驗(yàn)證器塊217。 MAC計(jì) 算塊212、訪問控制塊211、選擇器218、以及驗(yàn)證器塊217己經(jīng)結(jié)合圖2進(jìn)行
19了描述,并且這里將不再次進(jìn)行描述。
完整性保護(hù)塊301不同于圖2的完整性保護(hù)塊201 ,因?yàn)橥暾员Wo(hù)塊301 包括另一 MAC計(jì)算塊312。 MAC計(jì)算塊312 ^!^亍與MAC計(jì)算塊212相同的 計(jì)算,并且它接收相同的秘密密鑰k。然而,MAC計(jì)算塊312接收遞增的計(jì)數(shù) 器值333而不是麟到MAC計(jì)算塊212的計(jì)數(shù)器值209。為此,完整性保護(hù)塊 301包括遞增塊332,其接收計(jì)數(shù)器值209,并且生成遞增的計(jì)數(shù)器值333,即 在計(jì)數(shù)器1W列中接下來的計(jì)數(shù)器值。可選擇地,MAC計(jì)算塊212和312可以 被合并成單個(gè)塊,可選:ttt同遞增i央332 —起。在又一個(gè)可^J奐的實(shí)施例中, 完整性保護(hù)塊301只包括單個(gè)MAC計(jì)算塊,其被控制來jl,地生成用于計(jì)數(shù) 器值209和遞增的計(jì)數(shù)器值333的MAC值。由MAC計(jì)算塊312生成的遞增的 計(jì)數(shù)器值333的MAC值331被饋送到開關(guān)330。如果驗(yàn)證器塊217已經(jīng)針對參 考MAC值110成功地驗(yàn)證了當(dāng)前計(jì)數(shù)器值109的MAC值,則開關(guān)330由驗(yàn)證 器塊217的輸出219進(jìn)行控制以j擠關(guān)330將MAC值331麟到輸出213。如 果驗(yàn)證器土央217沒有成功地驗(yàn)證當(dāng)前計(jì)數(shù)器值(或者如果驗(yàn)證器±央217沒有從 MAC計(jì)算塊212接收至嚇入,因?yàn)橥暾员Wo(hù)塊301以"編程模式"操作), 則在輸出213處不提供MAC值331 。
因此,在圖3的例子中,當(dāng)完整性保護(hù)塊301以"驗(yàn)證模式"操作時(shí),并 且如果版本計(jì)數(shù)器值論ra'owO w賄針對它的參考MAC被成功地驗(yàn)證,完整性 保護(hù)塊301被配置以便輸出Fmz'朋C做賄+;的MAC值。在這個(gè)實(shí)施例中,完整 性保護(hù)塊301以"編程模式"操作,以便生成并存儲一個(gè)僅僅用于第一有效計(jì) 數(shù)器值的初始參考MAC。通常這在生產(chǎn)設(shè)備期間進(jìn)行,例如作為生產(chǎn)步驟的一 部分,其中設(shè)備由制造商加載軟件。在這種情況下,制造商被授權(quán)以"編程模 式"操作設(shè)備。以"編程模式"激活設(shè)備所需的任何密鑰、口令等等都可以這 樣由制造商保密。
現(xiàn)在將參考圖4更詳細(xì)地描述當(dāng)以"驗(yàn)證模式"操作時(shí)由圖3的完整性保 護(hù)塊301所執(zhí)行的過程。
圖4示出計(jì)數(shù)器機(jī)制的一個(gè)實(shí)施例的流程圖。在初始步驟S401中,過程接 收當(dāng)前計(jì)數(shù)器值加和對應(yīng)的MAC參考值脂c一加—<。在隨后的步驟S402中, 過程根據(jù)接收的計(jì)數(shù)器值■和秘密密鑰A計(jì)算MAC值w"c—c"一/ 化加卩。在步 驟S403 ,過程比較計(jì)算的MAC值附ac—和接收的參考MAC值附ac一c^—化/。
20如果它們相等,則過程進(jìn)行到步驟S405;否則過程進(jìn)行到步驟S404。在步驟 S404,過程輸出錯(cuò)誤狀態(tài)"否",其指示當(dāng)前計(jì)數(shù)器的驗(yàn)證沒有成功,并且過程 終止。選擇性地,過程可以進(jìn)一步輸出該過程接收到的不正確的參考值 腸c—陀/。在步驟S405,即如果計(jì)算的和參考MAC值相同,則過程計(jì)算遞 增的計(jì)數(shù)器加+7的MAC值/^,c"&^,并且在步驟S406輸出計(jì)算的值以作為 參考MAC mac——化/=/^07&^連同當(dāng)前計(jì)數(shù)器值被成功驗(yàn)證的指示 "是"。
這個(gè)實(shí)施例的優(yōu)點(diǎn)是它將要被存儲的MAC參考值的歹瞎減少到當(dāng)前和隨 后的參考值,因此節(jié)省了設(shè)備中的存儲空間。當(dāng)遞增版本計(jì)數(shù)器時(shí),處理設(shè)備 禾擁在前一驗(yàn)證步驟期間計(jì)算的后續(xù)參考值腿cjb7&K替換所存儲的當(dāng)前
參考值wac—cw一w/。在隨后的驗(yàn)證步驟期間這樣生成下一參考MAC值 顧c/加+2K。在一些實(shí)施例中,僅僅保存了當(dāng)前參考值。例如,軟件更新可 以包括對當(dāng)前計(jì)數(shù)器的驗(yàn)證,其又產(chǎn)生隨后的如上所述將被計(jì)算和輸出的參考 值。在存儲器中當(dāng)前參考值可以這樣用后續(xù)艦替換。
圖5結(jié)合與圖3和圖4 一起描述的實(shí)施例示出用于維護(hù)版本計(jì)數(shù)器值和完 整性保護(hù)值的數(shù)據(jù)結(jié)構(gòu)的例子。圖5a示出表格結(jié)構(gòu),其中將當(dāng)前計(jì)數(shù)器值(在 這個(gè)例子中是論ra'朋Co朋&)和下一更高的計(jì)數(shù)器值(在這個(gè)例子中是 論ra/朋a^賄+;)與它們各自的參考MAC值附ac—「0_"/和附ac—FCW—"/相關(guān) iikiS行存儲。圖5b示出在版本更新到版本投ra'朋Cow賄+;之后的表格結(jié)構(gòu)。因 此,在該表格結(jié)構(gòu)中,過時(shí)的計(jì)數(shù)器值和參考MAC已經(jīng)分別由新的當(dāng)前值 J^ra/owCcw74:+2禾口附ac—陀/重寫0而且,新的后續(xù)值論ra'owCo朋^+2禾口 腦c^C^—<己經(jīng)被寫入到 結(jié)構(gòu)中。因此,再一次,當(dāng)前計(jì)數(shù)器值是其完
整性可成功驗(yàn)證的最小計(jì)數(shù)器值,即對于其在設(shè)備中存儲有效關(guān)聯(lián)的完整性保 護(hù)值的最小計(jì)數(shù)器值。隨后由完整性保護(hù)塊試圖驗(yàn)證較低計(jì)數(shù)器值將失敗,因
為對應(yīng)的參考MAC值不再存在。而且,未被授權(quán)以"編程模式"操作ASIC的 用戶不能重fH十算對應(yīng)于先前(劍氐)計(jì)數(shù)器值的MAC值,因?yàn)锳SIC在以"驗(yàn) 證模式"操作時(shí)僅僅輸出后續(xù)MAC值而不是當(dāng)前或先前的MAC值。
盡管已經(jīng)詳細(xì)地描述和示出了一些實(shí)施例,但是本發(fā)明并不局限于它們, 而是還可以在后面權(quán)利要求書限定的主題的范圍內(nèi)以其他方式來具體實(shí)現(xiàn)。
特別是,已經(jīng)主要參考作為 處理設(shè)備的例子的移動終端描述了上述實(shí)施例。然而應(yīng)當(dāng)理解,此處所述的方法、產(chǎn)品裝置、以及設(shè)備也可以被應(yīng)用于 其他 處理設(shè)備。
而且,己經(jīng)主要結(jié)合單個(gè)軟件版本計(jì)數(shù)器描述了,實(shí)施例。然而應(yīng)當(dāng)理 解,此處所述的方法、設(shè)備和產(chǎn)品裝置也可以被應(yīng)用于其他類型的用于計(jì)數(shù)其 他更新事件、狀態(tài)等等的、涉及存儲內(nèi)容的版本而不是軟件版本的版本計(jì)數(shù)器。 這種存儲內(nèi)容的例子包括但不限于存儲的數(shù)據(jù),例如存儲在數(shù)據(jù)庫中的數(shù)據(jù)等 等。類似地,處理設(shè)備可以借助于此處所述機(jī)制維護(hù)多于一個(gè)的計(jì)數(shù)器,例如 用于不同的軟件實(shí)體或?!姥?、數(shù)據(jù)項(xiàng)等等的不同計(jì)數(shù)器。
此處所述的方法、產(chǎn)品裝置、以及設(shè)備可以借助于包括幾個(gè)不同元件的硬 件以及借助于適當(dāng)編程的微處理器來實(shí)施。在列舉幾條置的設(shè)備權(quán)利要求中,
可以M31同一項(xiàng)硬件(例如適當(dāng)編程的微處理器、 一個(gè)或多個(gè)數(shù)字信號處理器 等等)來具體實(shí)現(xiàn)這些裝置中的幾個(gè)。僅僅在相互不同的從屬權(quán)利要求中記載 或在不同的實(shí)施例中描述某些措施的事實(shí),并不表明不能有利地使用這些措施 的組合。
應(yīng)該強(qiáng)調(diào),術(shù)語"包括/包含"在用于本說明書時(shí)* 用來規(guī)定所述的特征、 整體、步驟或組件的存在,但是并不排除一個(gè)或多個(gè)其他的特征、整體、步驟、 組件、或它們的組的存在或添加。
權(quán)利要求
1、一種由處理設(shè)備維護(hù)版本計(jì)數(shù)器的方法,所述版本計(jì)數(shù)器指示存儲在所述處理設(shè)備中的存儲內(nèi)容的版本,所述方法包括選擇性地以第一和第二模式中的一種來操作所述處理設(shè)備,其中對以第一模式操作所述處理設(shè)備的訪問限于授權(quán)的用戶并且與對第二模式的訪問分開控制;其中以第一模式操作所述處理設(shè)備包括-生成至少一個(gè)初始完整性保護(hù)值,其用于加密地保護(hù)在以第二模式操作所述處理設(shè)備期間所述版本計(jì)數(shù)器的初始計(jì)數(shù)器值的完整性;其中所述初始計(jì)數(shù)器值是從計(jì)數(shù)器值序列中選擇的;以及-將所述初始完整性保護(hù)值作為當(dāng)前完整性保護(hù)值存儲在存儲介質(zhì)中;其中以第二模式操作所述處理設(shè)備包括遞增當(dāng)前計(jì)數(shù)器值到后續(xù)計(jì)數(shù)器值,所述后續(xù)計(jì)數(shù)器值在所述計(jì)數(shù)器值序列中是在所述當(dāng)前計(jì)數(shù)器值之后;其中遞增包括從所述存儲介質(zhì)中刪除用于加密地保護(hù)所述當(dāng)前計(jì)數(shù)器值的完整性的當(dāng)前完整性保護(hù)值。
2、 根據(jù)權(quán)利要求1所述的方法,其中以第一模式操作所述處理設(shè)備包括-生成用于加密地保護(hù)計(jì)數(shù)器值序列中的各自計(jì)數(shù)器值的完整性的完整性 保護(hù)辦列;其中所述計(jì)數(shù)器^歸列M^f述初始計(jì)數(shù)器值開始順序地排序;以 及-將所述完整性保護(hù){ 列存儲在存儲介質(zhì)中。
3、 根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括提供完整性保護(hù)值計(jì)算單元, 所述完整性保護(hù)值計(jì)算單元適于只有當(dāng)以所述第一和第二模式中的第一種來操 作所述設(shè)備時(shí)才輸出生成的所述完整性f:^戶值序列中的完整性保護(hù)值。
4、 根據(jù)權(quán)禾腰求1所述的方法,其中遞增當(dāng)前計(jì)數(shù)器值到后續(xù)計(jì)數(shù)器值包 括生成對應(yīng)于所述后續(xù)計(jì)數(shù)器值的后續(xù)完整性保護(hù)值;以及用所述后續(xù)完整 性傲戶值替換所述當(dāng)前完整性保護(hù)值。
5、 根據(jù)權(quán)利要求4所述的方法,其中生成所述后續(xù)魏性保護(hù)值包括基 于所述當(dāng)前完整性保護(hù)值來驗(yàn)證所述當(dāng)前計(jì)數(shù)器值;以及以所述當(dāng)前計(jì)數(shù)器值 的成功驗(yàn)證為條件生^^f述后續(xù)完整性保護(hù)值。
6、 根據(jù)權(quán)利要求1至5中的任何一項(xiàng)所述的方法,其中針生成的完整性保護(hù)m于對應(yīng)的計(jì)數(shù)器值和所述設(shè)備是唯一的。
7、 根據(jù)權(quán)利要求1至6中的任何一項(xiàng)所述的方法,其中^生成的完整性 保護(hù)值是由消息認(rèn)證碼函數(shù)根據(jù)所述版本計(jì)數(shù)器的值和秘密密鑰值所生成的消 息認(rèn)證碼值。
8、 根據(jù)權(quán)利要求7所述的方法,其中所述秘密密鑰值是特定于設(shè)備的。
9、 根據(jù)權(quán)禾腰求1至8中的任何一項(xiàng)所述的方法,其中每一個(gè)所述計(jì)數(shù)器 值是設(shè)備唯一的。
10、 根據(jù)權(quán)利要求1至9中的任何一項(xiàng)所述的方法,其中借助于對應(yīng)的完 整性保護(hù)值生成和驗(yàn)證計(jì)數(shù)器值是由完整性保護(hù)模塊實(shí)施的,所述完整性保護(hù) 模塊被保護(hù)以防^U修改。
11、 根據(jù)權(quán)禾腰求10所述的方法,其中所述完整性保護(hù)模塊是硬件模塊。
12、 根據(jù)權(quán)利要求l至ll中的任何一項(xiàng)所述的方法,其中所述處理設(shè)備是 可編程微處理器。
13、 根據(jù)權(quán)利要求1至12中的任何一項(xiàng)所述的方法,其中所述處理設(shè)備是 移動終端。
14、 根據(jù)權(quán)利要求1至13中的任何一項(xiàng)所述的方法,其中所述存儲介質(zhì)被 包括在所述處理設(shè)備中。
15、 根據(jù)權(quán)利要求1至14中的任何一項(xiàng)所述的方法,其中所述計(jì)數(shù)器是軟 件版本計(jì)數(shù)器。
16、 根據(jù)權(quán)利要求1至15中的任何一項(xiàng)所述的方法,進(jìn)一步包括 -接收所述存儲器內(nèi)容的更新版本,所述更新版本包括版本指示符; -驗(yàn)證接收的存儲內(nèi)容的可靠性;-基于所述版本指示符和所述版本計(jì)數(shù)器的當(dāng)前值對接收的已更新存儲內(nèi) 容執(zhí)行版本控制;-以所 本控制的結(jié)果為割條受所述接收的已更新存儲內(nèi)容。
17、 根據(jù)權(quán)禾腰求16所述的方法,進(jìn)一步包括遞增所述版本計(jì)數(shù)器到對 應(yīng)于接收的已更新存儲內(nèi)容的版本指示符的后續(xù)計(jì)數(shù)器值。
18、 根據(jù)權(quán)利要求1至17中的任何一項(xiàng)所述的方法,其中接受包括用所 接受的接收的已更新存儲內(nèi)容來更新存儲在所述處理設(shè)備中的存儲內(nèi)容。
19、 一種計(jì)算機(jī)程序產(chǎn)品,包括程序代碼^g,所3^程序代碼,適于當(dāng) 所述禾將代碼體在數(shù)據(jù)處理設(shè)備上被執(zhí)行時(shí)執(zhí)行根據(jù)權(quán)利要求1至18中的任何一項(xiàng)所述的方法。
20、 一種被配置成維護(hù)版本計(jì)數(shù)器的處理設(shè)備,所述版本計(jì)數(shù)激旨示存儲在所述處理設(shè)備中的存儲內(nèi)容的版本,所述處理設(shè)備能夠選擇性地以第一和第 二模式中的一種來操作,其中對以第一模式操作所述處理設(shè)備的訪問限于授權(quán)的用戶并且與對第二模式的訪問分開控制;其中當(dāng)以第一模式操作時(shí),所述處理設(shè)備被配置成執(zhí)行下列步驟-生^^f述版本計(jì)數(shù)器的至少一個(gè)初始計(jì)數(shù)器值,其中所述初始計(jì)數(shù)器值是從計(jì)數(shù)器Hff列中選擇的;-生成初始完整性保護(hù)值,其用于加密地保護(hù)在以第二模式操作所述處理設(shè)備期間生成的初^i十?dāng)?shù)器值的完整性;以及-將所述初始完整性傲戶值作為當(dāng)前完整性保護(hù)值存儲在存儲介質(zhì)中; 其中所述處理設(shè)備被進(jìn)一步配置成當(dāng)以第二模式操作時(shí)遞增當(dāng)前計(jì)數(shù)器值到后續(xù)計(jì)數(shù)器值,所述后續(xù)計(jì)數(shù)器值在所述計(jì)數(shù)器值序列中是在所述當(dāng)前計(jì)數(shù)器值之后;其中遞增包括從所述存儲介質(zhì)中刪除用于加密地保護(hù)所述當(dāng)前計(jì)數(shù)器值的完整性的所述當(dāng)前完整性保護(hù)值。
21、 根據(jù)權(quán)利要求20所述的處理設(shè)備,其被配置成當(dāng)以第一模式操作時(shí)執(zhí) 行下列步驟-生成計(jì)數(shù)器辦列;其中所述計(jì)數(shù)器辦列/A^述初^i十?dāng)?shù)器值開始被順 序地排序;-生成用于加密地保護(hù)生成的計(jì)數(shù)器值序列中的各自計(jì)數(shù)器值的完整性的 對應(yīng)的完整性保護(hù)值序列;以及-將所述完整性保護(hù)辦列存儲在存儲介質(zhì)中。
22、 根據(jù)權(quán)利要求21所述的處理設(shè)備,包括識性保護(hù)值計(jì)算單元,所述 完整性保護(hù)值計(jì)算單元適于只有當(dāng)所述設(shè)備以所述第一和第二模式中的第一種 操作時(shí)才輸出生成的所述完整性保護(hù)辦列中的完整性保護(hù)值。
23、 根據(jù)權(quán)利要求20所述的處理設(shè)備,進(jìn)一步適于鵬生艦應(yīng)于后續(xù)計(jì)數(shù)器值的后續(xù)完整性保護(hù)值以及通過用所述后續(xù)完整性保護(hù)值替換所述當(dāng)前完 整性保護(hù)^Kii增所述當(dāng)前計(jì)數(shù)器值至U后續(xù)計(jì)數(shù)器值。
24、 根據(jù)權(quán)利要求23所述的處理設(shè)備,進(jìn)一步適于借助于所述當(dāng)前完整 性保護(hù)值驗(yàn)證所述當(dāng)前計(jì)數(shù)器值;以及以對所述當(dāng)前計(jì)數(shù)器值的成功驗(yàn)證為條件生^j^述后續(xù)完整性保護(hù)值。
25、 根據(jù)權(quán)利要求20至24中的任何一項(xiàng)所述的處理設(shè)備,適于生成每個(gè)完整性保護(hù)值以便對于對應(yīng)的計(jì)數(shù)器值和所述設(shè)備是唯一的。
26、 根據(jù)權(quán)利要求20至25中的任何一項(xiàng)所述的處理設(shè)備,適于生成每個(gè)完整性保護(hù)值以作為由消息認(rèn)證碼函數(shù)根據(jù)所述版本計(jì)數(shù)器的值和秘密密鑰值 所生成的消息認(rèn)證^M。
27、 根據(jù)禾又利要求26所述的處理設(shè)備,其中所述秘密密鑰值是特定于設(shè)備的。
28、 根據(jù)權(quán)利要求20至27中的任何一項(xiàng)所述的處理設(shè)備,其中每一個(gè)所述計(jì)數(shù)器值是設(shè)備唯一的。
29、 根據(jù)權(quán)利要求20至28中的任何一項(xiàng)所述的處理設(shè)備,包括完整性保護(hù)模塊,所述完整性保護(hù)模塊適于借助對應(yīng)的完整性保護(hù)值來實(shí)施對計(jì)數(shù)器值 的生成和驗(yàn)證;以及其中所述完整性保護(hù)模±央被保護(hù)以免受到修改。
30、 根據(jù)權(quán)利要求29所述的處理設(shè)備,其中所述完整性保護(hù)模塊是硬件模塊。
31、 根據(jù)權(quán)利要求20至30中的任何一項(xiàng)所述的處理設(shè)備,其中所述處理 設(shè)備是可編程微M器。
32、 根據(jù)權(quán)利要求20至31中的任何一項(xiàng)所述的處理設(shè)備,其中所述處理 設(shè)備是移動終端。
33、 根據(jù)權(quán)利要求20至32中的任何一項(xiàng)所述的處理設(shè)備,其中所述處理 設(shè)備包括所述存儲介質(zhì)。
34、 根據(jù)權(quán)利要求20至33中的任何一項(xiàng)所述的處理設(shè)備,其中所述計(jì)數(shù) 器是軟件版本計(jì)數(shù)器。
全文摘要
一種維護(hù)指示存儲在處理設(shè)備中的存儲內(nèi)容的版本的版本計(jì)數(shù)器的方法。所述方法包括以第一或第二模式選擇性地操作設(shè)備。對第一模式的訪問限于授權(quán)的用戶并且與對第二模式的訪問分開控制。在第一模式中,生成至少一個(gè)初始完整性保護(hù)值,其用于加密地保護(hù)在以第二模式操作所述處理設(shè)備期間所述版本計(jì)數(shù)器的初始計(jì)數(shù)器值,其中所述初始計(jì)數(shù)器值是從計(jì)數(shù)器值序列中選擇的;以及將所述初始完整性保護(hù)值作為當(dāng)前完整性保護(hù)值存儲在存儲介質(zhì)中。在第二模式中,當(dāng)前計(jì)數(shù)器值被遞增到后續(xù)計(jì)數(shù)器值;其中遞增包括從所述存儲介質(zhì)中刪除當(dāng)前完整性保護(hù)值。
文檔編號G06F21/57GK101427259SQ200780014710
公開日2009年5月6日 申請日期2007年4月18日 優(yōu)先權(quán)日2006年4月24日
發(fā)明者B·斯米茨 申請人:艾利森電話股份有限公司