掩飾電子裝置壽命終期轉(zhuǎn)換的方法及包含相應控制模塊的裝置制造方法
【專利摘要】本發(fā)明涉及一種掩飾電子微處理器裝置壽命終期轉(zhuǎn)換的方法,包括含有壽命終期狀態(tài)變量(FdVE)的可再編程非易失性存儲器。變量值(FdVE)被下載(A)到隨機存取存儲器中。在執(zhí)行任一當前命令(COM)之前,檢查(B)隨機存取存儲器中的變量值(FdVR)。如果是空值,則執(zhí)行(C)壽命終期轉(zhuǎn)換。否則,繼續(xù)(D)初始化或執(zhí)行命令(COM)。如檢測(E)到侵入攻擊,壽命終期狀態(tài)變量(FdVR)被寫入(F)單隨機存取存儲器中,并從非易失性存儲器中以延時的方式刪除(G)壽命終期狀態(tài)變量(FdVE)。本發(fā)明適合于所有電子裝置,微處理器卡等等。
【專利說明】掩飾電子裝置壽命終期轉(zhuǎn)換的方法及包含相應控制模塊的裝置
[0001]本發(fā)明涉及掩飾電子裝置壽命終期轉(zhuǎn)換的方法,包括輸入/輸出端口,微處理器,隨機存取存儲器,只讀存儲器以及可再編程非易失性存儲器。非易失性存儲器包括電子裝置的壽命終期狀態(tài)變量,該狀態(tài)變量由控制模塊管理。
[0002]該電子裝置與電路板或者任何包括或與至少一個電路板連接的電子裝置相對應(但不唯一對應),所述電路板是諸如需要對外部入侵具有良好安全性的智能卡。
[0003]為了確保這樣的卡具有良好安全性,在檢測到一定數(shù)量的嚴重誤差時,激活壽命終期轉(zhuǎn)換機制。
[0004]然而這種裝置(特別是智能卡)的壽命終期轉(zhuǎn)換過程,仍有些問題,因為這樣的過程仍按照慣例依賴于寫入非易失性可編程存儲器(通常為電可擦只讀存儲器)的程序,以修改數(shù)據(jù)并限制應用。
[0005]這樣的程序似乎易受攻擊,因為由可編程存儲器的寫入程序引起的大量電流使程序在卡外能夠被檢測到。
[0006]從而惡意第三方有大量機會通過切斷裝置或卡的電源來阻止該程序的執(zhí)行。
[0007]為改善這種狀況,專利FR0708242以及PCT / FR2008 / 052106建議在引發(fā)壽命終期轉(zhuǎn)換的嚴重誤差事件之后,確保這種電子裝置的壽命終期轉(zhuǎn)換過程在隨機周期內(nèi)發(fā)生,同時向第三方掩飾相對于壽命終期轉(zhuǎn)換的寫入非易失性存儲器的程序,在實踐中防止隱蔽信道的攻擊。
[0008]在該項技術中,通過電子裝置執(zhí)行的應用程序的正常操作來模糊寫入操作,壽命終期轉(zhuǎn)換狀態(tài)變量寫入電子裝置的非易失性存儲器的程序得到掩飾。
[0009]在實踐中,將一個變量寫入非易失性存儲器的操作常常包含兩個連續(xù)階段:刪除階段,將變量設置為空值(據(jù)了解,“空值”是指一個非易失性存儲器的使用者對其無影響的預先定義的缺省值,例如"00"," FF"或其他值),然后是實際寫入階段,在此階段中非空值(指與空值不同的值)被分配給非易失性存儲器存儲空間里的變量。壽命終期轉(zhuǎn)換狀態(tài)變量寫入電子裝置的非易失性存儲器的程序,如上述現(xiàn)有技術中所說明的,也遵循此規(guī)則。
[0010]這些構成將變量寫入非易失性存儲器的操作的各個刪除和寫入階段中,每個階段都需要一定量的處理時間并消耗一定量的電能,兩階段消耗電能大約相同。
[0011]考慮到現(xiàn)有技術,本發(fā)明的目標是在維持掩飾壽命終期轉(zhuǎn)換所提供的安全水平的同時,提高其性能。
[0012]為此,本發(fā)明提出一種掩飾電子裝置的壽命終期轉(zhuǎn)換的方法,包括微處理器,隨機存取存儲器,只讀存儲器,其包含電子裝置的壽命終期狀態(tài)變量的可再編程非易失性存儲器,所述狀態(tài)變量由控制模塊管理,以及輸入/輸出端口。本方法包括以下步驟:
[0013]-將所述壽命終期狀態(tài)變量的值從所述非易失性存儲器中載入到隨機存取存儲器;并且,在所述微處理器執(zhí)行任一當前命令之前:
[0014]-檢查儲存在隨機存取存儲器中的所述壽命終期狀態(tài)變量的值;以及如果是空值(指非易失性存儲器的預先定義的缺省值):執(zhí)行電子裝置的壽命終期轉(zhuǎn)換操作;否則,存儲在隨機存取存儲器中的所述壽命終期狀態(tài)變量具有非空值(指與空值不同的值):
[0015]-繼續(xù)通過電子設備的微處理器進行初始化和/或執(zhí)行當前命令;并且,當檢測到入侵襲擊時:
[0016]-將電子裝置的所述壽命終期狀態(tài)變量寫入唯一的隨機存取存儲器,并且繼續(xù)初始化和/或執(zhí)行當前命令;以及
[0017]-以延時的方式只刪除所述非易失性存儲器中的壽命終期狀態(tài)變量,以便代替非易失性存儲器中的下一次更新操作(刪除和/或?qū)懭?的執(zhí)行。
[0018]延遲所述非易失性存儲器中壽命終期狀態(tài)變量的更新的行為有效地掩飾了電子裝置的壽命終期轉(zhuǎn)換,因為惡意第三方無法將更新壽命終期狀態(tài)變量引起的電流消耗與電子裝置的微處理器執(zhí)行的命令的正常運行所引起的電流消耗區(qū)別開來。此延遲更新行為得到了與專利FR0708242和PCT / FR2008 / 052106中相同的安全防護水平。
[0019]另外,對所述非易失性存儲器中的壽命終期狀態(tài)變量執(zhí)行“只刪除”的行為,指刪除階段后面沒有寫入階段,減少了所需的處理時間和耗電量,例如減少2倍。從而大大提高了電子裝置執(zhí)行應用程序期間的性能。
[0020]在一些可以結(jié)合任何可想到的形式的有利實施例中,本方法額外具有一些或者所有以下特點。
[0021]對于一組由電子裝置的微處理器執(zhí)行的命令來說,包括由非易失性存儲器中的系統(tǒng)操作構成的命令以及并非由非易失性存儲器中的任何操作構成的命令,本方法可額外單獨包含檢測或不檢測入侵襲擊,非易失性存儲器中僅虛擬變量的刪除操作。通過引入相似電子信號的“誘導”刪除,這進一步隱藏了電子裝置在非易失性存儲器中的壽命終期狀態(tài)變量的刪除。這樣,對于惡意第三方來說,更難從其產(chǎn)生的單電流消耗中識別壽命終期狀態(tài)變量的刪除。
[0022]非易失性存儲器中僅虛擬變量的刪除可以同壽命終期狀態(tài)變量一樣在存儲器的同一頁面執(zhí)行。
[0023]非易失性存儲器中虛擬變量的刪除可以在電子裝置的輸入/輸出端口線上執(zhí)行數(shù)據(jù)傳輸操作之前而執(zhí)行。
[0024]刪除非易失性存儲器中的壽命終期狀態(tài)變量之后,存在一個步驟,其包括檢查壽命終期狀態(tài)變量的值是否是空值,并且如果是空值,則對電子裝置執(zhí)行壽命終期轉(zhuǎn)換操作。
[0025]在確認壽命終期狀態(tài)變量是空值之后,非易失性存儲器中的壽命終期狀態(tài)變量的值的刪除可以替換為非易失性存儲器中虛擬變量的刪除。
[0026]如果檢測到不同于侵入攻擊的指令執(zhí)行中出現(xiàn)暫時誤差并且未證明是電子裝置的壽命終期轉(zhuǎn)換,所述方法另外包括:
[0027]在隨機存取存儲器中添加一個誤差計數(shù)器;
[0028]將誤差計數(shù)器的值與閾值作比較,如果所述誤差計數(shù)器的值超過了所述閾值:
[0029]將所述電子設備的壽命終期狀態(tài)變量的值寫入隨機存取存儲器中并執(zhí)行電子設備的壽命終期轉(zhuǎn)換。
[0030]本發(fā)明也提出了電子裝置,包括微處理器,隨機存取存儲器,只讀存儲器,包括電子裝置的壽命終期狀態(tài)變量的可再編程非易失性存儲器,所述狀態(tài)變量由控制模塊管理,以及輸入/輸出端口(I / O)。控制模塊包括計算機程序模塊,用以執(zhí)行作為上述本發(fā)明主題的方法的步驟。
[0031 ] 本發(fā)明進一步提出了存儲在存儲媒介的計算機程序產(chǎn)品并且包括由計算機或電子裝置的微處理器執(zhí)行的指令集。在執(zhí)行所述指令期間,所述程序執(zhí)行上述方法的步驟。
[0032]本發(fā)明的兩個主題,掩飾電子裝置的壽命終期轉(zhuǎn)換的方法以及包括相應控制模塊的電子裝置,適用于任何類型的電子裝置,但更適合卻不限于諸如處理和/或儲存?zhèn)€人的,私人的或機密數(shù)據(jù)的智能卡之類的電子裝置。 [0033]通過閱讀以下描述并研究附圖,將對此有更深理解,其中:
[0034]-圖1a表示根據(jù)本發(fā)明一實施例的方法步驟的純說明性流程圖;
[0035]-圖1b表示執(zhí)行圖1a所闡釋的方法的步驟的純說明性時序圖;
[0036]-圖1c到圖1f為圖1a所闡釋的方法步驟中一些有利細節(jié)的純說明性流程圖;
[0037]-圖2表示根據(jù)本發(fā)明一實施例的一電子裝置體系結(jié)構的純說明性功能圖,該裝置配有壽命終期轉(zhuǎn)換控制模塊。
[0038]現(xiàn)在,參見圖1a到圖1f給出了根據(jù)本發(fā)明一實施例的掩飾電子裝置的壽命終期轉(zhuǎn)換方法的更加詳細的描述。
[0039]一般說來,掩飾電路板壽命終期轉(zhuǎn)換的方法(本發(fā)明的一個主題)適用于任何電子裝置,該裝置包括微處理器,隨機存取存儲器,只讀存儲器以及包括電子裝置的壽命終期狀態(tài)變量的可再編程非易失性存儲器,所述狀態(tài)變量由控制模塊管理。尤其是,電子裝置還可包括輸入/輸出端口,該端口可以使主設備進行數(shù)據(jù)交換,或者甚至例如在網(wǎng)絡內(nèi)進行數(shù)據(jù)交換??稍倬幊谭且资源鎯ζ鞯母拍詈w電子可編程存儲器,電可擦只讀存儲器(EEPR0M存儲器),閃速存儲器等等。
[0040]在其運行時,電子裝置執(zhí)行啟動階段,表示為ATR(復位應答),然后執(zhí)行當前命令,表示為COM。
[0041]尤其是,相應的電子裝置當然可以有利地包括例如任何智能卡。
[0042]根據(jù)圖la,掩飾電子裝置的壽命終期轉(zhuǎn)換的方法包括步驟A,該步驟包括將儲存在非易失性存儲器中的壽命終期變量的值FdVE從所述裝置的非易失性存儲器中載入到電子裝置的隨機存取存儲器中。
[0043]相對步驟A的操作表示為:
[0044]FdVE — FdVE.[0045]在上述關系式中,?(^1;表示載入隨機存取存儲器中的電子裝置的壽命終期狀態(tài)變量值。
[0046]注意到,在具體案例中,存儲在非易失性存儲器中的壽命終期變量FdVE具有空值,指例如只對此變量先前儲存的值進行刪除后的預先定義的缺省值,則載入電子裝置的隨機存取存儲器中的壽命終期狀態(tài)變量FdVK有利地具有相同的空值。作為變量,給定非空值是指不同于空值的值,當變量FdVE有空值的時候它可以被分配給變量FdVK。該給定值可以為,例如,值"true"(或"0K")或任何其他定義值。在后一情況中,存儲在非易失性存儲器中的壽命終期狀態(tài)變量的值載入隨機存取存儲器中時,變量值發(fā)生改變(或者分配變量值以從空值改變?yōu)榻o定非空值)。
[0047]在圖1a的步驟A后并且在微處理器執(zhí)行任何當前命令COM前,本方法包括在步驟B檢查存儲在隨機存取存儲器中的壽命終期狀態(tài)變量的值。本項檢查可以包括,如驗證FdVK有值,也就是說驗證FdVK是否有空值。在上述情況中,當FdVE具有空值時,F(xiàn)dVK假定為給定非空值,例如值"true"(或"OK"),則所述驗證可以包括,將FdVK的值與給定非空值作比較,或相反地與不同于此給定非空值作比較。在圖1a所闡釋的非限定例子的步驟B中,本項驗證由一測試步驟表示:
[0048]
【權利要求】
1.一種掩飾電子裝置壽命終期轉(zhuǎn)換的方法,包括微處理器,隨機存取存儲器,只讀存儲器,其包括電子裝置壽命終期狀態(tài)變量的可再編程非易失性存儲器,所述狀態(tài)變量由控制模塊管理,以及輸入-輸出端口,所述方法包括以下步驟: -將所述壽命終期狀態(tài)變量的值(FdVE)從所述非易失性存儲器中載入(A)隨機存取存儲器;并且在通過所述微處理器執(zhí)行任一當前命令之前: -檢查(B)儲存在隨機存取存儲器中所述壽命終期狀態(tài)變量的值(FdVK);并且如果是空值:執(zhí)行(C)電子裝置的壽命終期轉(zhuǎn)換操作;否則,儲存在隨機存取存儲器中的所述壽命終期狀態(tài)變量(FdVK)具有非空值: -繼續(xù)(D)通過電子裝置的微處理器執(zhí)行初始化和/或當前命令(COM);并且,當檢測到(E)侵入攻擊時: -將電子裝置的所述壽命終期狀態(tài)變量(FdVK)寫入(F)唯一的隨機存取存儲器,并且繼續(xù)初始化和/或執(zhí)行當前命令;以及 -以延時的方式執(zhí)行(G)只刪除所述非易失性存儲器中的壽命終期狀態(tài)變量(FdVE),以便代替非易失性存儲器中的下次更新操作的執(zhí)行。
2.根據(jù)權利要求1所述的方法,其中對于電子裝置的微處理器所執(zhí)行的命令組(COM e {COMw, COM:}),包括由非易失性存儲器中的系統(tǒng)操作構成的命令(COMw)以及并非由非易失性存儲器中的任何操作構成的命令(COM:),所述方法還包括,獨立的入侵攻擊的檢測或非檢測,只刪除非易失性存儲器中不同于電子裝置壽命終期狀態(tài)變量的虛擬變量的執(zhí)行。
3.根據(jù)權利要求2所述的方法,其中,虛擬變量的刪除只在所述壽命終期狀態(tài)變量的存儲器的相同頁面執(zhí)行。
4.根據(jù)權利要求2或權利要求3所述的方法,其中通過微處理器在電子裝置輸入/輸出端口線上執(zhí)行數(shù)據(jù)傳輸操作之前,執(zhí)行只刪除非易失性存儲器中虛擬變量。
5.根據(jù)權利要求4所述的方法,其中,如果所述壽命終期狀態(tài)變量(FdVK)的值為空值,只刪除非易失性存儲器中的壽命終期狀態(tài)變量值(FdVE)替代了只刪除非易失性存儲器中虛擬變量。
6.根據(jù)權利要求2至5中任一項所述的方法,還包括,在只刪除非易失性存儲器中的壽命終期狀態(tài)變量(FdVE)后,檢查儲存在隨機存取存儲器(FdVr)中的所述壽命終期狀態(tài)變量的值是否為空值的步驟,以及如果確實具有空值而執(zhí)行電子裝置的壽命終期轉(zhuǎn)換操作的步驟。
7.根據(jù)上述權利要求中任一項所述的方法,其中,在執(zhí)行不同于侵入攻擊且沒有證實電子裝置的壽命終期需要轉(zhuǎn)換的指令時如果檢測到臨時誤差,所述方法還包括: 通過將隨機存取存儲器中的誤差計數(shù)器增加計數(shù)值來進行更新; 將誤差計數(shù)器的值與閾值作比較,而且如果所述誤差計數(shù)器的值超過閾值: 將電子裝置的所述壽命終期狀態(tài)變量的值寫入隨機存取存儲器并執(zhí)行電子裝置的壽命終期轉(zhuǎn)換。
8.一種電子裝置,包括微處理器、隨機存取存儲器、只讀存儲器,其包括電子裝置壽命終期狀態(tài)變量(FdVE)的可再編程非易失性存儲器,所述狀態(tài)變量由控制模塊管理,以及輸入/輸出端口,其中所述控制模塊包括計算機程序模塊(SCM),用以執(zhí)行根據(jù)權利要求1至7中任一項的方法的步驟。
9.計算機程序產(chǎn)品,儲存在存儲介質(zhì)中并且包括可以通過計算機或電子裝置的微處理器執(zhí)行的指令組,其中,在執(zhí)行所述指令時,所述程序執(zhí)行根據(jù)權利要求1至7任一項的所述方法的 步驟。
【文檔編號】G06F21/55GK103608822SQ201280014477
【公開日】2014年2月26日 申請日期:2012年1月10日 優(yōu)先權日:2011年3月21日
【發(fā)明者】馬埃爾·伯西厄, 邁克爾·巴塞 申請人:茂福公司