新四季網

防止對存儲器中指令的不正當使用的製作方法

2023-07-09 10:36:56

專利名稱:防止對存儲器中指令的不正當使用的製作方法
一般來講,本發明涉及對存儲器中記錄的敏感指令的不正當、即非法使用的防範措施。具體來講,本發明涉及到防止對例如設在智慧卡中的微控制器(也稱為微控制機)或任何其它可攜式電子裝置的只讀存儲器ROM中的保密數據項進行寫、讀或修改。
許多智慧卡可能含有敏感數據或程序,知道這些數據或程序會導致這樣的後果、即發現製造廠家的工業技術秘密、編程技術或工具、如應用程式接口(API)等。在很多情況下,智慧卡引用一種安全性矩陣,根據該矩陣,以讀方式、特別是針對ROM存儲器中數據的任何訪問,都會被位於卡的微控制器的非易失性EEPROM(電可擦可編程只讀存儲器)或RAM(隨機存取存儲器)中的指令、或者連接著微控制器的任何其它RAM存儲器、例如在卡之外且包含在接受該卡的終端中的RAM存儲器中的指令所禁止。在這種情況下,顯然只能藉助於本身寫在ROM存儲器中的指令讀取ROM存儲器中的數據。
但是,已了解能訪問或修改保密數據項的指令的地址的黑客能夠獲取保密數據項。
為了說明這種可能性,

圖1表示按照先有技術的含有出自INTEL(註冊商標)的80C51微處理器的微控制器中的EEPROM存儲器和ROM存儲器中的部分內容的實例。微控制器的程序計數器的計數例如對於在ROM存儲器中含有的各單元的地址,從Adr0=0到AdrM=1000地變化,對於在EEPROM存儲器中含有的各單元的地址,從Adr(M+1)=1001到AdrP=2000地變化,其中M<<P。因而,存儲器中的數據指針DPTR的值可在0到P之間變化。
假設在ROM存儲器中,位於地址Adrm=100的「危險」指令[MOVC A,@A+DPTR]相當於移動指針DPTR的當前值在EEPROM存儲器中指向的「公開」數據項、如代碼字節CB,以便將數據項轉移到微控制器的中央處理器(CPU)中的累加器A。數據項CB被寫在地址Adrp處,其中M+1≤p≤P。返回指令RET位於ROM存儲器中的地址Adr(m+1)處,而緊接著是傳送指令MOVC。
在EEPROM存儲器中沒有任何攻擊者序列COM的正常情況下,當運行了寫在存儲器(特別是在地址Adrm之前的ROM存儲器的地址)中的第一部分程序(未示出)之後,指針DPTR收到p值。為了讀取數據項CB並傳送到累加器A,執行地址Adrm處的操作指令MOVC,數據項CB在返回指令RET之後的第二部分程序中被使用。
一個企圖獲取位於ROM存儲器中的地址Adrn處的保密數據項DS的黑客,例如m+1<n=200<M,他還了解指令MOVC的地址Adrm,為了將指針DPTR改到所需的n值,在EEPROM存儲器中寫了一個短執行命令序列COM。序列COM包括三個連續的指令。第一條指令[CLRA]將累加器A的內容設置為零。第二條指令[MOV DPTR,n]將數據指針DPTR設置到對應於地址Adrn的n值。第三條指令[CALLm]調用一個過程調用,用於直接執行ROM存儲器中在地址Adrm處的指令MOVC。
在所調用的「危險」指令執行期間,帶有n值的指針DPTR指向地址Adrn處的數據DS,所需的保密數據項DS被傳送到累加器A,並且可容易地被黑客獲取。在返回指令RET之後,任何指令的執行,例如黑客在EEPROM中緊接著調用指令[CALL m]寫的[MOVX@Ri,A]的執行,使他能夠通過清空累加器的內容,例如在微控制器外面的外部RAM存儲器中,獲得從ROM存儲器中讀取的保密數據項DS。
本發明的目的是在不阻止把「危險」指令寫在ROM存儲器中的前提下,抑制這類危險,以便防止不正當使用這種危險指令的結果。
為此,有一種方法,用於保護寫在存儲裝置中的指令序列中包含的操作指令,防止控制裝置發出的執行命令對序列指令的結束作出響應而訪問操作指令的執行結果,該方法的特徵在於所述序列包括在操作指令之後立即執行的、對與所述操作指令的至少一個操作數有關的條件的測試,當滿足該條件時,操作指令執行的結果從存儲裝置轉移到控制裝置,當不滿足該條件時,不執行序列指令的結束。
按照第一實施例,所述測試包括計算諸如隨操作數和預定值而定的差,所述條件是計算結果與至少一個預定閾值、比如零值的比較結果。當計算結果落在具有作為上限和下限其中之一的閾值的第一範圍中時,則把操作指令的結果轉移到控制裝置,當計算結果落在具有作為第二範圍的上限和下限中另一個的閾值的第二範圍中時,不執行結束指令。所述操作指令可以是對存儲裝置中的數據項的讀、寫或者修改,而操作數可以是數據地址指針。若不滿足所述條件,則可以通過執行指令到其本身的跳轉,致使結束指令不被執行,或者按照常規發出錯誤消息或者將卡拒絕。
按照第二實施例,操作指令是一種交易,測試條件是對交易的核准。最好是,操作指令是在控制裝置中讀取餘額之後對其進行的修改,把所述條件運用在餘額或餘額增量上,而傳送包括把修改後餘額從存儲裝置寫入控制裝置。
本發明還涉及包括微控制器的可攜式電子裝置,所述微控制器的不可重寫存儲器和可編程非易失性存儲器和/或隨機存取存儲器分別包含在用於實現本發明的方法的存儲裝置和控制裝置中。特別是,寫在不可重寫存儲器中的至少一條用於讀、寫或修改非易失性存儲器和/或隨機存取存儲器中數據項的操作指令之後,緊跟著寫在不可重寫存儲器中的測試,所述測試是針對與所述操作指令的至少一個操作數有關的條件,以便當不滿足所述條件時,使所述裝置失效。
從參照相應的附圖、對本發明的若干最佳實施例的以下描述中,將更清楚地看出本發明的其它特徵和優點。
圖1表示說明上面提到的先有技術的、針對寫在ROM存儲器中的序列而寫在EEPROM存儲器中的攻擊程序;圖2是一種智慧卡的框圖,其中根據本發明第一實施例的保護方法修改了寫在ROM存儲器中的受攻擊的序列;圖3表示按照第二個已知實施例的寫在ROM存儲器中的「危險」序列的指令。
圖4表示有關第二實施例的、根據本發明的保護方法修改後的「修改的危險」序列。
參考圖2,假設如圖1那樣,微控制器、特別是智慧卡CP或任何其它可攜式電子裝置含有實際上由上述80C51型微處理器構成的處理單元CPU。具體來講,單元CPU包括特別含有累加器A的算術邏輯單元UAL、指令地址計數器CP和當前指令寄存器RI。按照常規,微控制器還包括ROM型的不可重寫存儲器ME、可編程非易失型EEPROM的存儲器MC、以及為了與微控制器以外的世界、例如接受智慧卡CP的終端交換數據的隨機存取型RAM的存儲器MA。
當至少一部分寫在ROM存儲器中、一部分在EEPROM存儲器中的程序或應用程式運行期間,存儲器與處理器CPU通過總線BU、藉助於請求和包含指令執行的「結果」的響應來相互作用。
按照圖2所示的第一實施例,在EEPROM存儲器MC中找到黑客寫的具有三條指令的執行命令序列COM,EEPROM存儲器MC根據本發明構成了能訪問存儲器ME中被調用的「危險」操作指令的結果的控制裝置。因此,所述三個指令涉及到擦除累加器A的內容,將存儲器指針DPTR設置為與存儲器ME中的保密數據DS相關的地址Adrn的值n,以及調用在ROM存儲器中的地址Adrm處的單元m中寫的、被認為「危險」的指令。
與圖1中ROM存儲器的內容相比,在存儲器ME中增補了指令序列SQ,使得執行序列SEQ的結束指令RET、以便再一次執行存儲器MC中的指令是有條件的,要根據關於加在指向地址Adrm的先前的危險指令的操作數上的條件的測試而定。添加的序列主要包括下面兩條指令SUBB DPTR,#MJC$它們被寫在ME存儲器中的連續地址Adr(m+1)和Adr(m+2)處,緊跟「危險」指令[MOVC A,@A+DPTR]之後,並且在現在寫到地址Adr(m+3)處的指令RET之前。
第一條添加的指令SUBB在指針DPTR的最後值上減去從存儲器ME中最高地址AdrM而來的M值,其中所述指針DPTR的最後值通常被用來指向先前的操作指令MOVC執行時、在存儲器MC中讀取的數據項CB。
第二條添加的指令JC是條件指令「SI」(IF),它根據前一條減法操作DPTR=DPTR-M的結果實現地址跳轉。
如果DPTR-M的差值是負數,特別是作為對將指針DPTR的值設置為比M小的n值的黑客的調用指令[CALL m]的響應,地址Adr(m+2)處的指令JC跳轉到它本身,在ROM存儲器中強加一個無限循環,如虛線所示。這個無限反覆的循環阻止了隨後的結束指令RET的執行,因此禁止了黑客從累加器中恢復數據項DS。
反之,如果指針DPTR的最後值高於存儲器ME的地址的最大值M,即等於這樣一個值M+1≤p≤P,並指定存儲器MC中的某個公開數據單元,則差值DPTR-M為正值。指令JP使地址Adr(m+1)的指令SUBB的序列跳轉到地址Adr(m+3)的結束指令RET,以便繼續當前的程序。
在另一種形式中,地址單元Adrn中的「危險」操作指令不是執行數據讀取,而是執行數據寫入甚至是任何數據修改。
根據又一種變換形式,地址單元Adr(m+1)和Adr(m+2)中的添加指令由指針DPTR與存儲器ME的MIN(最小)和MAX(最大)兩個地址值比較來代替,這兩個地址指定其中存儲空間含有要保護的機密數據的單元。黑客嘗試的任何在MIN和MAX之間的指針值都導致無限循環JC。
在以上描述中,應當理解,智慧卡CP包括所有已知類型的智慧卡,也稱為微控制器卡,諸如下面以非限定性實例的方式提到的接觸式或非接觸式卡信用卡、付款卡、預付卡、電話卡、SIM卡、「附加」卡、中心購物卡、遊戲卡等等。更廣義地說,本發明不僅涉及到智慧卡,也涉及到通稱為電子數據處理裝置的其它可攜式電子裝置,如電子助手或電子組織者、電子錢包、令牌、袖珍計算器等等。
按照圖3所示的第二個已知實施例,在四個連續的地址單元Adr(m-1)、Adrm、Adr(m+1)和Adr(m+2)中,ROM存儲器含有交易序列的一些指令,所述交易序列涉及到從EEPROM存儲器將餘額SO讀到ROM存儲器中,用選擇的增量ΔSO來增加餘額、把增加的餘額SO=SO+ΔSO從ROM存儲器寫到EEPROM存儲器中,最後,序列指令Return(返回)的結束通常跟隨著從接受終端將智慧卡取出。
對於這個第二實施例,ROM和EEPROM存儲器都包含在作為電子錢包的智慧卡中。
按照先有技術,在餘額增加序列之前的地址單元Adr(m-2),有一個用於核准存款操作的測試,它包括這樣的條件,該條件至少涉及到存款操作、主要是操作增加指令SO=SO+ΔSO中含有的餘額操作數SO和/或增量操作數ΔSO。
所述測試核實該錢包是否處於正常的操作前後關係中。例如,所述條件可能是電子錢包的主人的銀行帳戶的餘額大於增量ΔSO,或者是增量ΔSO小於一個上限,和/或在預定時期內這類增量的總和小於最大授權存款。在核實條件之前,可能要通過與店主的銷售接受終端的點和/或銀行伺服器的對話識別用戶和/或核實電子錢包。
如果黑客知道ROM存儲器中包含餘額讀取指令的單元的地址Adr(m-1),不管在前一步是否滿足Adr(m-2)中的測試條件,黑客都能用他選擇的增量增加餘額,並且用Retum指令恢復被存款的電子錢包。最壞的情況是,黑客可能在EEPROM存儲器MC中寫入一個序列,用黑客所希望的次數重複執行指令Adr(m-1)到Adr(m+2)的序列。
參照圖4,按照本發明,為了防止黑客能藉助於寫在EEPROM存儲器MC中的程序來控制ROM存儲器MEa中的這種交易序列的執行,本發明通過在存儲器MEa中引入對存款的測試,從而保護這種序列。
這樣,緊跟地址Adrm處的「危險」操作增加指令之後,下一個地址單元Adr(m+1)含有例如與參考圖3給出的測試相同的測試、或者是針對與由結果SO=SO+ΔSO構成的操作數有關的條件的測試,比如與上限比較以及所有者的識別。
如果不滿足條件指令Adr(m+1),則不執行隨後的在地址Adr(m+2)和Adr(m+3)處的指令。增加的餘額不被寫入EEPROM存儲器MC,而且所述序列被切換成發送錯誤消息等,以便使電子錢包無效,還可能從接受終端中彈出它。
反之,如果滿足條件指令Adr(m+1),則按照地址Adr(m+2)處的指令將增加後的餘額SO寫入存儲器MC,並且當地址Adr(m+3)處的序列指令Return結束後,程序繼續運行。
雖然以上描述提到通過在不可重寫ROM存儲器ME中的地址Adrm處寫的「危險」指令,在正常情況下讀取非易失性EEPROM存儲器MC中的數據項CB,但是,本發明所指的控制裝置可以不僅包括EEPROM存儲器MC,而且包括微控制器的隨機存取存儲器RAMMA。
權利要求
1.一種方法,它用於保護寫在存儲裝置(ME)中的指令序列(SQ)中包含的操作指令(Adrm),防止來自控制裝置(MC)的執行命令(COM)對序列指令的結束(Adr(m+3))作出響應而訪問操作指令執行的結果,其特徵在於所述序列包括在操作指令(Adrm)之後立即執行的、針對與所述操作指令的至少一個操作數(DPTR)相關的條件的測試(Adr(m+1),Adr(m+2)),當滿足所述條件時,把所述操作指令執行的結果(CB)從所述存儲裝置(ME)轉移(RET)到所述控制裝置(MC),當不滿足所述條件時,不執行所述序列指令的結束(Adr(m+3))。
2.如權利要求1所述的方法,其特徵在於所述測試包括隨操作數和預定值(M)而定的計算,所述條件是所述計算的結果與至少一個預定閾值的比較。
3.如權利要求1或2所述的方法,其特徵在於所述操作指令(Adrm)是讀、寫或修改所述控制裝置(MC)中的數據項(CB),而所述操作數是數據地址指針(DPTR)。
4.如權利要求1至3中任何一個所述的方法,其特徵在於在不滿足所述條件之後,接著執行一個指令到其本身的跳轉(JC),從而導致所述結束指令(Adr(m+3))的不執行。
5.如權利要求1所述的方法,其特徵在於所述操作指令(Adrm)是一種交易,而所述測試條件(Adr(m+1))是對交易的核准。
6.如權利要求5所述的方法,其特徵在於所述操作指令(Adrm)是在所述控制裝置(MC)中讀取(Adr(m-1))餘額(SO)之後、對所述餘額(SO)的修改,所述條件被加在所述餘額或餘額增量(ΔSO)上,所述轉移包括把修改後的餘額從所述存儲裝置(MEa)寫到(Adr(m+2))所述控制裝置中。
7.一種包含微控制器的可攜式電子裝置(CP),其特徵在於所述微控制器的不可重寫存儲器和所述微控制器的非易失性可編程存儲器和/或隨機存取存儲器(MA)分別包含在用於實現如權利要求1到6中任何一個所述的方法的所述存儲裝置(ME)和所述控制裝置(MC)中。
8.如權利要求7所述的裝置,其特徵在於用於讀、寫或修改所述非易失性存儲器(MC)和/或所述隨機存取存儲器中的數據項的、寫在所述不可重寫存儲器中的至少一條所述操作指令(Adrm)之後,緊接著寫在所述不可重寫存儲器中的、針對與所述操作指令的至少一個操作數有關的條件的測試(Adr(m+1),Adr(m+2)),以便在不滿足所述條件時使所述裝置無效。
全文摘要
微控制器(CP)的ROM存儲器(ME)中的數據讀、寫、修改類型的或交易的操作指令(Adrm)可能會受到為了訪問保密數據項(DS)而不是公開數據項(CB)的、微控制器的EEPROM存儲器(MC)中的命令(COM)的攻擊,作為對結束指令(Adr(m+3))的響應。為了保護操作指令,在操作指令(Adrm)之後立刻執行測試(Adr(m+1))。測試條件、如比較與所述操作指令的至少一個操作數(DPTR)有關。只有滿足所述條件時,才將操作指令的結果(CB)轉移到EEPROM存儲器。
文檔編號G06F12/14GK1392980SQ0180293
公開日2003年1月22日 申請日期2001年9月26日 優先權日2000年9月27日
發明者P·帕利爾, D·納卡徹 申請人:格姆普拉斯公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀