安全數(shù)據(jù)讀取的方法和數(shù)據(jù)處理系統(tǒng)的制作方法
【專利摘要】公開了一種數(shù)據(jù)處理系統(tǒng)中的安全數(shù)據(jù)讀取方法。該方法包括以下步驟:地址分派器向第一存儲(chǔ)器區(qū)域分派第一讀取請(qǐng)求;在分派第一讀取請(qǐng)求之后,地址分派器向所述第一存儲(chǔ)器區(qū)域分派第二讀取請(qǐng)求;在分派第二讀取請(qǐng)求之后,地址分派器向所述第一存儲(chǔ)器區(qū)域分派第三讀取請(qǐng)求;如果響應(yīng)于第一讀取請(qǐng)求由存儲(chǔ)器產(chǎn)生的結(jié)果與響應(yīng)于第三讀取請(qǐng)求由存儲(chǔ)器產(chǎn)生的結(jié)果不一致,則異常信號(hào)發(fā)生器產(chǎn)生第一異常信號(hào);如果響應(yīng)于第二讀取請(qǐng)求,存儲(chǔ)器并不產(chǎn)生預(yù)定的結(jié)果,則異常信號(hào)發(fā)生器產(chǎn)生第二異常信號(hào);如果已經(jīng)產(chǎn)生了第一異常信號(hào)和第二異常信號(hào)中的至少一個(gè),則異常處理器斷定已經(jīng)發(fā)生了故障攻擊。此外,公開了相應(yīng)的數(shù)據(jù)處理系統(tǒng)。
【專利說明】
安全數(shù)據(jù)讀取的方法和數(shù)據(jù)處理系統(tǒng)
技術(shù)領(lǐng)域
[0001]本公開涉及安全數(shù)據(jù)讀取的方法。此外,本公開涉及對(duì)應(yīng)的數(shù)據(jù)處理系統(tǒng)。
【背景技術(shù)】
[0002]故障攻擊可以用于例如數(shù)據(jù)處理系統(tǒng)(例如計(jì)算機(jī)產(chǎn)品)的安全性與完整性進(jìn)行妥協(xié)。具體地,故障攻擊是智能卡的區(qū)域。在系統(tǒng)操作期間,故障攻擊將故障引入系統(tǒng),由此導(dǎo)致系統(tǒng)偏離其計(jì)劃的或意圖的操作。例如,光攻擊已經(jīng)被發(fā)現(xiàn)是一種引入故障并干擾微控制器的程序流的相對(duì)容易的方式。光攻擊典型地是在集成電路(IC)操作時(shí)在例如IC的表面上由閃光燈執(zhí)行的。
【發(fā)明內(nèi)容】
[0003]公開了一種數(shù)據(jù)處理系統(tǒng)中的安全數(shù)據(jù)讀取方法,所述數(shù)據(jù)處理系統(tǒng)包括:用于向包括第一存儲(chǔ)器區(qū)域的存儲(chǔ)器分派讀取請(qǐng)求的地址分派器、異常信號(hào)發(fā)生器和異常處理器,所述方法包括以下步驟:地址分派器向第一存儲(chǔ)器區(qū)域分派第一讀取請(qǐng)求;在分派第一讀取請(qǐng)求之后,地址分派器向所述第一存儲(chǔ)器區(qū)域分派第二讀取請(qǐng)求;在分派第二讀取請(qǐng)求之后,地址分派器向所述第一存儲(chǔ)器區(qū)域分派第三讀取請(qǐng)求;如果響應(yīng)于第一讀取請(qǐng)求由所述存儲(chǔ)器產(chǎn)生的結(jié)果與響應(yīng)于第三讀取請(qǐng)求由所述存儲(chǔ)器產(chǎn)生的結(jié)果不一致,則異常信號(hào)發(fā)生器產(chǎn)生第一異常信號(hào);如果響應(yīng)于第二讀取請(qǐng)求所述存儲(chǔ)器并不產(chǎn)生預(yù)定的結(jié)果,則異常信號(hào)發(fā)生器產(chǎn)生第二異常信號(hào);如果已經(jīng)產(chǎn)生了第一異常信號(hào)和第二異常信號(hào)中的至少一個(gè),則異常處理器斷定已經(jīng)發(fā)生了故障攻擊。
[0004]在該方法的示例性實(shí)施例中,第二讀取請(qǐng)求是具有已知答復(fù)的讀取請(qǐng)求。
[0005]在該方法的其它示例性實(shí)施例中,所述存儲(chǔ)器還包括與第一存儲(chǔ)器區(qū)域不同的第二存儲(chǔ)器區(qū)域,并且所述地址分派器在分派第一讀取請(qǐng)求與第三讀取請(qǐng)求之間分派指向第二存儲(chǔ)器區(qū)域的其它讀取請(qǐng)求。
[0006]在該方法的其它示例性實(shí)施例中,所述故障攻擊是通過光源執(zhí)行的光攻擊,并且第二存儲(chǔ)器區(qū)域在光源的光斑之外。
[0007]在該方法的其它示例性實(shí)施例中,第一讀取請(qǐng)求、第二讀取請(qǐng)求和第三讀取請(qǐng)求被包括在讀取流的第一分支中,并且其它讀取請(qǐng)求被包括在所述讀取流的第二分支中。
[0008]在該方法的其它示例性實(shí)施例中,該方法還包括:如果既沒有產(chǎn)生第一異常信號(hào)又沒有產(chǎn)生第二異常信號(hào),則斷定沒有發(fā)生故障攻擊。
[0009]此外,公開了一種數(shù)據(jù)處理系統(tǒng),包括:用于向存儲(chǔ)器分派讀取請(qǐng)求的地址分派器、異常信號(hào)發(fā)生器和異常處理器,所述地址分派器被布置為:向第一存儲(chǔ)器區(qū)域分派第一讀取請(qǐng)求;在分派第一讀取請(qǐng)求之后,向所述第一存儲(chǔ)器區(qū)域分派第二讀取請(qǐng)求;在分派第二讀取請(qǐng)求之后,向所述第一存儲(chǔ)器區(qū)域分派第三讀取請(qǐng)求;所述異常信號(hào)發(fā)生器被布置為:如果響應(yīng)于第一讀取請(qǐng)求由所述存儲(chǔ)器產(chǎn)生的結(jié)果與響應(yīng)于第三讀取請(qǐng)求由所述存儲(chǔ)器產(chǎn)生的結(jié)果不一致,則產(chǎn)生第一異常信號(hào);如果響應(yīng)于第二讀取請(qǐng)求所述存儲(chǔ)器并不產(chǎn)生預(yù)定的結(jié)果,則產(chǎn)生第二異常信號(hào);并且所述異常處理器被布置為:如果已經(jīng)產(chǎn)生了第一異常信號(hào)和第二異常信號(hào)中的至少一個(gè),則斷定已經(jīng)發(fā)生了故障攻擊。
[0010]在該系統(tǒng)的示例性實(shí)施例中,第二讀取請(qǐng)求是具有已知答復(fù)的請(qǐng)求。
[0011]在該系統(tǒng)的其它示例性實(shí)施例中,所述存儲(chǔ)器還包括與第一存儲(chǔ)器區(qū)域不同的第二存儲(chǔ)器區(qū)域,并且所述地址分派器被布置為:在分派第一讀取請(qǐng)求與第三讀取請(qǐng)求之間分派指向第二存儲(chǔ)器區(qū)域的其它讀取請(qǐng)求。
[0012]在該系統(tǒng)的其它示例性實(shí)施例中,所述故障攻擊是通過光源執(zhí)行的光攻擊,并且所述第二存儲(chǔ)器區(qū)域在所述光源的光斑之外。
[0013]在該系統(tǒng)的其它示例性實(shí)施例中,所述第一讀取請(qǐng)求、所述第二讀取請(qǐng)求和所述第三讀取請(qǐng)求被包括在讀取流的第一分支中,并且其它讀取請(qǐng)求被包括在所述讀取流的第二分支中。
[0014]在該系統(tǒng)的其它示例性實(shí)施例中,所述地址分派器還被布置為:如果既沒有產(chǎn)生第一異常信號(hào)又沒有產(chǎn)生第二異常信號(hào),則斷定沒有發(fā)生故障攻擊。
[0015]在該系統(tǒng)的其它示例性實(shí)施例中,所述地址分派器被包括在存儲(chǔ)器控制器中。
[0016]在該系統(tǒng)的其它示例性實(shí)施例中,所述存儲(chǔ)器控制器是閃存控制器或EEPROM存儲(chǔ)器控制器。
【附圖說明】
[0017]將參照附圖用更詳細(xì)地描述實(shí)施例,附圖中:
[0018]圖1示出了數(shù)據(jù)處理系統(tǒng)100的示例性實(shí)施例;
[0019]圖2A示出了在所述類型的數(shù)據(jù)處理系統(tǒng)中的安全數(shù)據(jù)讀取的方法200的示例性實(shí)施例;
[0020]圖2B示出了在所述類型的數(shù)據(jù)處理系統(tǒng)中的安全數(shù)據(jù)讀取的方法214的其它示例性實(shí)施例;
[0021]圖2C示出了在所述類型的數(shù)據(jù)處理系統(tǒng)中的安全數(shù)據(jù)讀取的方法218的其它示例性實(shí)施例。
【具體實(shí)施方式】
[0022]故障攻擊典型地針對(duì)命令的,例如條件跳轉(zhuǎn)或條件跳轉(zhuǎn)之前的測(cè)試指令。例如,故障攻擊可以用于規(guī)避智能卡中的個(gè)人識(shí)別碼(PIN)的驗(yàn)證。如果用戶輸入不正確地PINJt/她可以在程序?qū)⒁D(zhuǎn)到處理錯(cuò)誤PIN的固定程序時(shí)執(zhí)行故障攻擊。作為故障攻擊的結(jié)果,不執(zhí)行跳轉(zhuǎn)到處理錯(cuò)誤PIN的固定程序,并且程序繼續(xù)執(zhí)行,就像PIN正確一樣。在這種情況下,即使他/她只擁有錯(cuò)誤的PIN,通過故障攻擊,用戶可以獲得與正確PIN相關(guān)聯(lián)的權(quán)限。使用故障攻擊的其它類型的安全攻擊是對(duì)加密算法的安全攻擊,例如在加密協(xié)議中使用的安全攻擊。例如,使用故障攻擊,攻擊者可以使算法產(chǎn)生錯(cuò)誤值。通過分析按照方式中出現(xiàn)的錯(cuò)誤的類型,在一些情況下,攻擊者能夠斷定出例如密鑰。
[0023]光攻擊影響對(duì)存儲(chǔ)器的讀取訪問,包括易失性存儲(chǔ)器(例如RAM)和非易失性存儲(chǔ)器(例如只讀存儲(chǔ)器(ROM)、EEPR0M和閃存)。光攻擊的效果依賴于存儲(chǔ)器的實(shí)際類型和實(shí)際條件而變化。例如,在非易失性存儲(chǔ)器中,通常不是存儲(chǔ)器單元的內(nèi)容被光攻擊改變,而只是讀取回的值被光攻擊暫時(shí)改變;在光攻擊結(jié)束后,存儲(chǔ)器可以回到其沒有被光攻擊改變的之前的內(nèi)容。依賴于實(shí)際條件,效果可以是不對(duì)稱的,也就是比特傾向于更容易地從一個(gè)值變?yōu)榱硪粋€(gè)值,而不是從其它值變?yōu)橐粋€(gè)值。作為其它示例,在易失性存儲(chǔ)器中,光攻擊可以影響存儲(chǔ)器中的永久變化或讀取器件的瞬間變化。
[0024]引入故障的單個(gè)未中斷延伸的故障攻擊可以被稱作簡(jiǎn)單故障攻擊。對(duì)從存儲(chǔ)器的單個(gè)讀取進(jìn)行折中的故障攻擊可以被稱作短故障攻擊。對(duì)一個(gè)以上讀取操作(例如覆蓋一個(gè)以上的讀取操作的長閃光)進(jìn)行折中的簡(jiǎn)單故障攻擊可以被稱作長故障攻擊。包括多個(gè)獨(dú)立故障的故障攻擊可以被稱作多故障攻擊。
[0025]實(shí)際上,可能不能可靠地檢測(cè)到覆蓋來自存儲(chǔ)器的一個(gè)以上的讀取操作的故障攻擊。具體地,難以檢測(cè)在讀取流的分支(即在彼此間隔開的不同存儲(chǔ)器區(qū)域上執(zhí)行的讀取操作的分支)中的具體讀取操作上執(zhí)行的長故障攻擊。例如,可以使用具有特定光斑大小的激光束來執(zhí)行光攻擊:執(zhí)行第一分支的讀取操作的第一存儲(chǔ)器區(qū)域可以在激光光斑尺寸之內(nèi),并且執(zhí)行第二分支的讀取操作的第二存儲(chǔ)器區(qū)域可以不在激光光斑尺寸之內(nèi)。在這樣的情況下,相對(duì)難以檢測(cè)第一分支中的具體讀取操作上的長故障攻擊,因?yàn)樽x取流可以已經(jīng)分支到第二分支或分支到其它分支。
[0026]圖1示出了數(shù)據(jù)處理系統(tǒng)100的示例性實(shí)施例。數(shù)據(jù)處理系統(tǒng)100能夠執(zhí)行當(dāng)前公開的方法。例如,數(shù)據(jù)處理系統(tǒng)100可以基于如NXP B.V提交的專利申請(qǐng)WO 2009/138892 Al中描述的數(shù)據(jù)處理系統(tǒng)。在圖1的示例中,數(shù)據(jù)處理系統(tǒng)100包括地址分派器102、存儲(chǔ)器104、異常信號(hào)發(fā)生器106、異常處理器108以及中央處理單元(CPU)llO。地址分派器102包括讀取請(qǐng)求輸入101。所述系統(tǒng)可以嵌入到設(shè)備(例如智能卡片)中。CPU 110通過能夠傳輸讀取請(qǐng)求的連接來連接到地址分派器102。地址分派器102通過能夠傳輸讀取請(qǐng)求的連接來連接到存儲(chǔ)器104。存儲(chǔ)器104被配置為響應(yīng)于讀取請(qǐng)求來檢索數(shù)據(jù)對(duì)象。存儲(chǔ)器104被布置為向異常信號(hào)發(fā)生器106轉(zhuǎn)發(fā)所檢索的數(shù)據(jù)對(duì)象。異常信號(hào)發(fā)生器106被配置為按照與地址分派器102使用的分派方法兼容的方式來檢查由存儲(chǔ)器104檢索的數(shù)據(jù)對(duì)象。異常信號(hào)發(fā)生器106被配置為向異常處理器108有條件地發(fā)送至少一個(gè)異常信號(hào)。
[0027]在該示例中,異常信號(hào)發(fā)生器106被配置為向CPU110發(fā)送檢索的數(shù)據(jù)對(duì)象。異常處理器108被配置為在異常處理器108接收到異常信號(hào)的情況下進(jìn)行校正活動(dòng)。在操作中,CPU 110執(zhí)行軟件。例如,軟件可以是:應(yīng)用、操作系統(tǒng)軟件、庫、系統(tǒng)安全代碼或網(wǎng)絡(luò)協(xié)議。例如,CPU 110可以執(zhí)行需要校驗(yàn)PIN的銀行業(yè)務(wù)應(yīng)用。例如,CPU 110可以執(zhí)行引導(dǎo)序列,并且如果引導(dǎo)圖像是真實(shí)的,則需要校驗(yàn)。
[0028]CPU 110可以需要來自存儲(chǔ)器104的一些數(shù)據(jù)對(duì)象。例如,CPU 110可以需要知曉下一個(gè)執(zhí)行的指令,或下一個(gè)操作的數(shù)據(jù)對(duì)象。為此目的,CPU 110可以向包括在地址分派器102中的讀取請(qǐng)求輸入101發(fā)送讀取請(qǐng)求。地址分派器102決定如何調(diào)度讀取請(qǐng)求,例如,地址分派器102決定應(yīng)當(dāng)向存儲(chǔ)器104分派在輸入101處發(fā)生的讀取請(qǐng)求的頻率和時(shí)間。此外,地址分派器102使用當(dāng)前公開的方法。
[0029]如果地址分派器102分派讀取請(qǐng)求,則向存儲(chǔ)器104傳輸讀取請(qǐng)求。讀取請(qǐng)求命令存儲(chǔ)器104檢索一個(gè)或多個(gè)數(shù)據(jù)對(duì)象。典型地,讀取請(qǐng)求包括存儲(chǔ)器104中的存儲(chǔ)器區(qū)域內(nèi)的地址,即包含一個(gè)或多個(gè)諸如存儲(chǔ)器單元之類的位置的區(qū)域。存儲(chǔ)器104檢索讀取請(qǐng)求命令其檢索的至少一個(gè)數(shù)據(jù)對(duì)象,并向異常信號(hào)發(fā)生器106轉(zhuǎn)發(fā)該數(shù)據(jù)對(duì)象。
[0030]異常信號(hào)發(fā)生器106緩沖讀取請(qǐng)求的結(jié)果,并且/或者將讀取請(qǐng)求的結(jié)果與響應(yīng)于之前類似的讀取請(qǐng)求而緩沖的結(jié)果相比較。如果異常信號(hào)發(fā)生器106發(fā)現(xiàn)其已經(jīng)接收了指示存儲(chǔ)器104中的故障或故障攻擊(例如光攻擊)的一系列數(shù)據(jù)對(duì)象,則異常信號(hào)發(fā)生器106產(chǎn)生異常信號(hào),并且向異常處理器108發(fā)送異常信號(hào)。異常信號(hào)發(fā)生器106使用當(dāng)前公開的方法。
[0031]例如,異常信號(hào)可以由表示已經(jīng)發(fā)生故障的單個(gè)比特的信息構(gòu)成。異常信號(hào)還可以包括調(diào)試應(yīng)用以及/或者允許異常處理器108得出正確結(jié)論并且例如進(jìn)行校正活動(dòng)所需要的所有相關(guān)信息。異常處理器108因此可以被配置為在異常處理器108接收異常信號(hào)的情況下進(jìn)行校正活動(dòng)。校正活動(dòng)可以包括:記錄事件、終止應(yīng)用、關(guān)閉系統(tǒng)100、啟動(dòng)系統(tǒng)自毀序列、清空一個(gè)或多個(gè)存儲(chǔ)器、清空和/或破壞一個(gè)或多個(gè)保險(xiǎn)絲、重新啟動(dòng)應(yīng)用、重新引導(dǎo)系統(tǒng)100以及重復(fù)由異常信號(hào)引起的讀取請(qǐng)求。異常處理器108還可以例如在當(dāng)執(zhí)行低安全性應(yīng)用時(shí)發(fā)生故障的情況下或者在特殊調(diào)試模式下發(fā)生故障的情況下決定不進(jìn)行活動(dòng)。
[0032]可以使用專用的硬件來實(shí)現(xiàn)數(shù)據(jù)處理系統(tǒng)100,例如被配置為執(zhí)行當(dāng)前公開的方法的至少一部分步驟的電路。數(shù)據(jù)處理系統(tǒng)100可以由在操作使用中使用軟件控制的通用硬件實(shí)現(xiàn),或者數(shù)據(jù)處理系統(tǒng)100可以包括專用硬件、通用硬件和專用軟件的組合來實(shí)現(xiàn)數(shù)據(jù)處理系統(tǒng)100。存儲(chǔ)器104可以實(shí)現(xiàn)為存儲(chǔ)庫??梢园炊喾N方式來裝配地址分派器102、存儲(chǔ)器104、異常信號(hào)發(fā)生器106與異常處理器108之間的連接。例如,連接可以按串聯(lián)、并聯(lián)、或者通過總線的方式來實(shí)現(xiàn)。在本實(shí)施例的變體中,存儲(chǔ)器104可以向CPU 110和異常信號(hào)發(fā)生器106 二者轉(zhuǎn)發(fā)檢索的數(shù)據(jù)對(duì)象,并且異常信號(hào)發(fā)生器106可以不需要向CPU 110轉(zhuǎn)發(fā)檢索的數(shù)據(jù)對(duì)象。由此,CPU 110可以實(shí)現(xiàn)對(duì)存儲(chǔ)器104的內(nèi)容的更快的訪問。
[0033]圖2A示出了在所述類型的數(shù)據(jù)處理系統(tǒng)中的安全數(shù)據(jù)讀取的方法200的示例性實(shí)施例。該方法200包括以下步驟。在202處,地址分派器向存儲(chǔ)器的第一區(qū)域分派第一讀取請(qǐng)求。之后在204處,地址分派器向第一存儲(chǔ)器區(qū)域分派第二讀取請(qǐng)求。之后在206處,地址分派器向第一存儲(chǔ)器區(qū)域分派第三讀取請(qǐng)求。在208處,如果響應(yīng)于第一讀取請(qǐng)求由存儲(chǔ)器產(chǎn)生的結(jié)果與響應(yīng)于第三讀取請(qǐng)求由存儲(chǔ)器產(chǎn)生的結(jié)果不一致,則異常信號(hào)發(fā)生器產(chǎn)生第一異常信號(hào)。此外在210處,如果響應(yīng)于第二讀取請(qǐng)求,存儲(chǔ)器不產(chǎn)生預(yù)定的結(jié)果,則異常信號(hào)發(fā)生器產(chǎn)生第二異常信號(hào)。最后在212處,如果已經(jīng)產(chǎn)生了第一異常信號(hào)和第二異常信號(hào)中的至少一個(gè),則異常處理器斷定已經(jīng)發(fā)生了故障攻擊。應(yīng)當(dāng)注意的是,向存儲(chǔ)器區(qū)域分派讀取請(qǐng)求可以具體表示向所述區(qū)域中的具體地址或位置分派讀取請(qǐng)求。
[0034]應(yīng)當(dāng)注意的是,第三讀取請(qǐng)求能夠檢測(cè)第一讀取請(qǐng)求上的短故障攻擊,因?yàn)槠谕麖拇鎯?chǔ)器得到相同結(jié)果,或者期望從存儲(chǔ)器得到彼此一致的結(jié)果。更具體地,第三讀取請(qǐng)求能夠檢測(cè)在分派第一讀取請(qǐng)求的時(shí)刻執(zhí)行的、但在分派第三讀取請(qǐng)求之前已經(jīng)結(jié)束了的故障攻擊:基本上,第三讀取請(qǐng)求是應(yīng)當(dāng)產(chǎn)生與第一讀取請(qǐng)求相同結(jié)果的冗余讀取請(qǐng)求。如果故障攻擊已經(jīng)攻擊了第一讀取請(qǐng)求并且還沒有攻擊第三讀取請(qǐng)求,那么響應(yīng)于第一讀取請(qǐng)求和第三讀取請(qǐng)求由存儲(chǔ)器產(chǎn)生的結(jié)果將不會(huì)彼此一致。因此,檢測(cè)到故障攻擊。然而,當(dāng)在分派第三讀取請(qǐng)求(即冗余讀取請(qǐng)求)時(shí)故障攻擊還沒有結(jié)束時(shí),并且在向不同的第二存儲(chǔ)器區(qū)域(例如向執(zhí)行攻擊的光源的光斑之外的存儲(chǔ)器區(qū)域)分派其它讀取請(qǐng)求(即正常讀取請(qǐng)求,可能緊接著是對(duì)應(yīng)的冗余讀取請(qǐng)求)的情況下,可能將仍然檢測(cè)不到攻擊。也就是說,如果這種其它讀取請(qǐng)求在光源的光斑之內(nèi),則應(yīng)當(dāng)產(chǎn)生與其它讀取請(qǐng)求相同的結(jié)果的其它冗余讀取請(qǐng)求(未示出)仍能夠檢測(cè)到故障攻擊。然而,如果其它讀取請(qǐng)求沒有受到故障攻擊的影響,則仍然檢測(cè)不到長故障攻擊。當(dāng)在第一讀取請(qǐng)求與第三讀取請(qǐng)求之間分派多個(gè)其它讀取請(qǐng)求(即多個(gè)正常讀取請(qǐng)求,可能緊接著是其對(duì)應(yīng)的冗余讀取請(qǐng)求)時(shí)也是如此。在所有這些情況下,讀取流可能已經(jīng)分支到與分派了第一、第二和第三讀取請(qǐng)求的存儲(chǔ)器區(qū)域不同的一個(gè)或多個(gè)存儲(chǔ)器區(qū)域。在這些情況下,還將仍然檢測(cè)不到長故障攻擊,并且當(dāng)前公開的方法可以促進(jìn)長故障攻擊的檢測(cè)。圖2B和圖2C中示出了單個(gè)其它讀取請(qǐng)求的示例。
[0035]例如,通過在作為其它讀取請(qǐng)求的結(jié)果讀取流已經(jīng)分支到第二存儲(chǔ)器區(qū)域的情況下分派第二讀取請(qǐng)求(該讀取請(qǐng)求應(yīng)當(dāng)產(chǎn)生預(yù)定的結(jié)果),可以實(shí)現(xiàn)更容易地檢測(cè)到對(duì)第一讀取請(qǐng)求的長故障攻擊。也就是說,可能仍然檢測(cè)不到長故障攻擊,因?yàn)榈谝蛔x取請(qǐng)求和第三讀取請(qǐng)求二者都受到長故障攻擊的影響(并且因此以相同的方式發(fā)生變化,因此產(chǎn)生相同的結(jié)果),但是在這種情況下第二讀取請(qǐng)求將不會(huì)產(chǎn)生預(yù)定的結(jié)果,使得仍然可以檢測(cè)到攻擊。因此,只要在第三讀取請(qǐng)求之前分派了第二讀取請(qǐng)求,就可以檢測(cè)到所有可能長度的故障攻擊。
[0036]圖2B示出了在所述類型的數(shù)據(jù)處理系統(tǒng)中的安全數(shù)據(jù)讀取的方法214的其它示例性實(shí)施例。在該實(shí)施例中,在216處,地址分派器向與第一存儲(chǔ)器區(qū)域不同的第二存儲(chǔ)器區(qū)域分派其它讀取請(qǐng)求。具體地,在第一讀取請(qǐng)求與第二讀取請(qǐng)求之間分派其它讀取請(qǐng)求。備選地,如圖2C所示,可以在第二讀取請(qǐng)求與第三讀取請(qǐng)求之間分派其它讀取請(qǐng)求。在任何一種情況下,如上所述,其它讀取請(qǐng)求可能已經(jīng)導(dǎo)致讀取流分支到不受對(duì)于第一讀取請(qǐng)求執(zhí)行的故障攻擊影響的存儲(chǔ)器區(qū)域,并且在這種故障攻擊屬于長故障攻擊的情況下,其可能仍然不能被檢測(cè)到。根據(jù)本公開,通過在第一讀取請(qǐng)求和第三讀取請(qǐng)求(即冗余讀取請(qǐng)求)之間分派具有預(yù)定的結(jié)果的讀取請(qǐng)求,可以更容易地檢測(cè)到長故障攻擊。
[0037]在示例性實(shí)施例中,第二讀取請(qǐng)求被實(shí)現(xiàn)為具有已知答復(fù)的讀取請(qǐng)求。由此,可以提供可信的值作為預(yù)定的結(jié)果。本領(lǐng)域技術(shù)人員將設(shè)想到的是,更具體地,可以按已知的各種形式來實(shí)現(xiàn)具有已知答復(fù)的讀取請(qǐng)求。例如,可以向存儲(chǔ)有固定值的存儲(chǔ)器位置分派第二讀取請(qǐng)求,該固定值應(yīng)當(dāng)被存儲(chǔ)器返還來作為響應(yīng);該存儲(chǔ)器位置可以與分派有第一讀取請(qǐng)求的存儲(chǔ)器位置相鄰。備選但沒有限制地,具有已知答復(fù)的讀取請(qǐng)求可以實(shí)現(xiàn)為在讀取已知答復(fù)模式下的讀取請(qǐng)求。在這種情況下,可以向第一讀取請(qǐng)求所分派的相同位置分派第二讀取請(qǐng)求,并且讀取已知答復(fù)模式強(qiáng)制該位置以預(yù)定的方式來答復(fù)。這樣的讀取已知答復(fù)模式可以基于被稱作“禁止所有行”的特征,該特征在例如閃存和EEPROM存儲(chǔ)器中可用。應(yīng)當(dāng)注意的是,也可以使用其它實(shí)現(xiàn)。此外,應(yīng)當(dāng)注意的是,應(yīng)當(dāng)廣義的解釋本文中使用的術(shù)語“存儲(chǔ)器”,在這種理解方式下存儲(chǔ)器可以包括例如寄存器、光學(xué)存儲(chǔ)盤以及其它存儲(chǔ)介質(zhì)的存儲(chǔ)單元。此外,應(yīng)當(dāng)注意的是,雖然上述實(shí)施例涉及光學(xué)攻擊,但是本公開并不限于此。也就是說,當(dāng)前公開的方法和系統(tǒng)可以等同地應(yīng)用到其它類型的故障攻擊。
[0038]本文中描述的系統(tǒng)和方法可以由一個(gè)或多個(gè)計(jì)算機(jī)程序來實(shí)現(xiàn),這些計(jì)算機(jī)程序可以按多種形式主動(dòng)的和被動(dòng)的存在于單個(gè)計(jì)算機(jī)系統(tǒng)中,或者存在于多個(gè)計(jì)算機(jī)系統(tǒng)中。例如,它們可以作為軟件程序存在,軟件程序在源代碼、目標(biāo)代碼、可執(zhí)行代碼或其他形式中由程序指令組成,用于執(zhí)行一些步驟。上述任何一個(gè)都可以在計(jì)算機(jī)可讀介質(zhì)上實(shí)現(xiàn),計(jì)算機(jī)可讀介質(zhì)可以包括存儲(chǔ)設(shè)備和信號(hào),信號(hào)是壓縮形式的或者是非壓縮形式的。
[0039]在本文中所使用的術(shù)語〃移動(dòng)設(shè)備〃是指任何類型的便攜式電子設(shè)備,包括蜂窩式電話,個(gè)人數(shù)字助理(PDA),智能電話,平板電腦等。此外,術(shù)語〃計(jì)算機(jī)〃是指包括處理器的任何電子設(shè)備,處理器諸如是通用目的的中央處理單元(CPU),特定目的的處理器或微處理器。計(jì)算機(jī)能夠接收數(shù)據(jù)(輸入),對(duì)數(shù)據(jù)執(zhí)行一系列預(yù)定操作,以及從而產(chǎn)生信息或信號(hào)(輸出)形式的結(jié)果?;谏舷挛模g(shù)語〃計(jì)算機(jī)〃是指處理器,該處理器特別是或者通常是與包含在單個(gè)殼體或外殼內(nèi)的相互關(guān)聯(lián)的元件的裝配相關(guān)聯(lián)的處理器。
[0040]術(shù)語〃處理器〃是指數(shù)據(jù)處理電路,該數(shù)據(jù)處理電路可以是微處理器、協(xié)處理器、微控制器、微型計(jì)算機(jī)、中央處理單元、現(xiàn)場(chǎng)可編程門陣列(FPGA)、可編程邏輯電路、和/或基于存儲(chǔ)在存儲(chǔ)器中的操作指令操作信號(hào)(模擬或者數(shù)字)的任何電路。術(shù)語〃存儲(chǔ)器〃是指一個(gè)或多個(gè)存儲(chǔ)電路,諸如只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、易失性存儲(chǔ)器、非易失性存儲(chǔ)器、靜態(tài)存儲(chǔ)器、動(dòng)態(tài)存儲(chǔ)器、閃速存儲(chǔ)器、超高速緩沖存儲(chǔ)器、和/或存儲(chǔ)數(shù)字信息的任何電路。
[0041]在本文中所使用的術(shù)語"計(jì)算機(jī)可讀介質(zhì)"或者"存儲(chǔ)介質(zhì)"可以是任何裝置,能夠包含、存儲(chǔ)、通信、傳送、或者傳遞要使用的或者與指令執(zhí)行系統(tǒng)、設(shè)備或裝置有關(guān)的計(jì)算機(jī)程序。計(jì)算機(jī)可讀介質(zhì)可以是,例如但是并不限于,電子的、磁的、光的、電磁的、紅外線的或者半導(dǎo)體系統(tǒng)、設(shè)備、裝置或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的更多具體示例(非窮舉列表)包括以下示例:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)軟盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程只讀存儲(chǔ)器(EPR0M或者閃速存儲(chǔ)器)、光纖和便攜式光盤只讀存儲(chǔ)器(CDROM)。
[0042]注意到,以上實(shí)施例是參照不同的主題進(jìn)行描述的。具體地,可以參考方法類型權(quán)利要求描述一些實(shí)施例,同時(shí)參考裝置類型權(quán)利要求描述其他實(shí)施例。然而,除非另外指示,本領(lǐng)域技術(shù)人員將從上文獲知,除了屬于一種類型的主題的特征的任意組合之外,認(rèn)為本文件還公開了與不同主題有關(guān)的特征的任意組合,尤其是方法類型權(quán)利要求的特征與裝置類型權(quán)利要求的特征的組合。
[0043]此外,應(yīng)當(dāng)注意的是,附圖是示意性的。在不同附圖中,相似或相同的元件用相同的附圖標(biāo)記來表示。此外,應(yīng)注意在提供這些示例性實(shí)施例的簡(jiǎn)明描述中,可能并未描述落入本領(lǐng)域技術(shù)人員常規(guī)實(shí)踐中的實(shí)現(xiàn)細(xì)節(jié)。應(yīng)該理解的是,任何這種實(shí)施方式的開發(fā)中,如同在任何工程或設(shè)計(jì)項(xiàng)目中一樣,為了實(shí)現(xiàn)開發(fā)者的特定目標(biāo)(例如服從因?qū)嵤┓绞蕉惖南到y(tǒng)相關(guān)的或商業(yè)相關(guān)的制約),必須做出各種實(shí)施方式特定的判決。此外,應(yīng)理解這種開發(fā)嘗試可能是復(fù)雜的并消耗時(shí)間的,但依然是本領(lǐng)域普通技術(shù)人員慣常的設(shè)計(jì)、制作和制造。
[0044]最后,應(yīng)當(dāng)注意的是,本領(lǐng)域技術(shù)人員將能夠在不背離所附權(quán)利要求的范圍的情況下設(shè)計(jì)許多備選實(shí)施例。在權(quán)利要求中,置于括弧中的參考標(biāo)號(hào)不應(yīng)理解為限制權(quán)利要求。詞語〃包括〃不排除權(quán)利要求中列舉的元件或步驟之外的其他元件或步驟的存在。元件前面的詞語"一個(gè)"不排除多個(gè)這種元件的存在。權(quán)利要求中引用的措施可以通過包括多個(gè)分立元件的硬件和/或通過適當(dāng)編程的處理器來實(shí)現(xiàn)。在枚舉了若干裝置的設(shè)備權(quán)利要求中,這些裝置中的一些可以通過一個(gè)相同的硬件項(xiàng)目來實(shí)現(xiàn)。唯一的事實(shí)在于,在相互不同的從屬權(quán)利要求中敘述的一些措施并不表示這些措施的組合不能被有利地使用。
[0045]附圖標(biāo)記列表
[0046]100數(shù)據(jù)處理系統(tǒng)
[0047]101讀取請(qǐng)求輸入
[0048]102地址分派器
[0049]104存儲(chǔ)器
[0050]106異常信號(hào)發(fā)生器[0051 ]108異常處理器
[0052]110中央處理單元
[0053]200數(shù)據(jù)讀取方法
[0054]202分派第一讀取請(qǐng)求
[0055]204分派第二讀取請(qǐng)求
[0056]206分派第三讀取請(qǐng)求
[0057]208產(chǎn)生第一異常信號(hào)
[0058]210產(chǎn)生第二異常信號(hào)
[0059]212斷定故障攻擊
[0060]214數(shù)據(jù)讀取方法[0061 ]216分派其它讀取請(qǐng)求
[0062]218數(shù)據(jù)讀取方法
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)處理系統(tǒng)中的安全數(shù)據(jù)讀取的方法,所述數(shù)據(jù)處理系統(tǒng)包括用于向包括第一存儲(chǔ)器區(qū)域的存儲(chǔ)器分派讀取請(qǐng)求的地址分派器、異常信號(hào)發(fā)生器和異常處理器,所述方法包括以下步驟: -所述地址分派器向第一存儲(chǔ)器區(qū)域分派第一讀取請(qǐng)求; -在分派所述第一讀取請(qǐng)求之后,所述地址分派器向所述第一存儲(chǔ)器區(qū)域分派第二讀取請(qǐng)求; -在分派所述第二讀取請(qǐng)求之后,所述地址分派器向所述第一存儲(chǔ)器區(qū)域分派第三讀取請(qǐng)求; -如果響應(yīng)于所述第一讀取請(qǐng)求由所述存儲(chǔ)器產(chǎn)生的結(jié)果與響應(yīng)于所述第三讀取請(qǐng)求由所述存儲(chǔ)器產(chǎn)生的結(jié)果不一致,則所述異常信號(hào)發(fā)生器產(chǎn)生第一異常信號(hào); -如果響應(yīng)于所述第二讀取請(qǐng)求所述存儲(chǔ)器不產(chǎn)生預(yù)定的結(jié)果,則所述異常信號(hào)發(fā)生器產(chǎn)生第二異常信號(hào); -如果已經(jīng)產(chǎn)生了所述第一異常信號(hào)和所述第二異常信號(hào)中的至少一個(gè),則所述異常處理器斷定已經(jīng)發(fā)生了故障攻擊。2.根據(jù)權(quán)利要求1所述的方法,其中所述第二讀取請(qǐng)求是具有已知答復(fù)的讀取請(qǐng)求。3.根據(jù)權(quán)利要求1或2所述的方法,其中所述存儲(chǔ)器還包括與所述第一存儲(chǔ)器區(qū)域不同的第二存儲(chǔ)器區(qū)域,并且其中所述地址分派器在分派所述第一讀取請(qǐng)求與所述第三讀取請(qǐng)求之間分派指向所述第二存儲(chǔ)器區(qū)域的其它讀取請(qǐng)求。4.根據(jù)權(quán)利要求3所述的方法,其中所述故障攻擊是通過光源執(zhí)行的光攻擊,并且其中所述第二存儲(chǔ)器區(qū)域在所述光源的光斑之外。5.根據(jù)權(quán)利要求3或4所述的方法,其中,所述第一讀取請(qǐng)求、第二讀取請(qǐng)求和第三讀取請(qǐng)求被包括在讀取流的第一分支中,并且其中所述其它讀取請(qǐng)求被包括在所述讀取流的第二分支中。6.根據(jù)前述權(quán)利要求中的任一項(xiàng)所述的方法,還包括:如果既沒有產(chǎn)生所述第一異常信號(hào)又沒有產(chǎn)生所述第二異常信號(hào),則斷定還沒有發(fā)生故障攻擊。7.—種數(shù)據(jù)處理系統(tǒng),包括用于向存儲(chǔ)器分派讀取請(qǐng)求的地址分派器、異常信號(hào)發(fā)生器和異常處理器, 所述地址分派器被布置為: -向第一存儲(chǔ)器區(qū)域分派第一讀取請(qǐng)求; -在分派所述第一讀取請(qǐng)求之后,向所述第一存儲(chǔ)器區(qū)域分派第二讀取請(qǐng)求; -在分派所述第二讀取請(qǐng)求之后,向所述第一存儲(chǔ)器區(qū)域分派第三讀取請(qǐng)求; 所述異常信號(hào)發(fā)生器被布置為: -如果響應(yīng)于第一讀取請(qǐng)求由所述存儲(chǔ)器產(chǎn)生的結(jié)果與響應(yīng)于第三讀取請(qǐng)求由所述存儲(chǔ)器產(chǎn)生的結(jié)果不一致,則產(chǎn)生第一異常信號(hào); -如果響應(yīng)于所述第二讀取請(qǐng)求,所述存儲(chǔ)器不產(chǎn)生預(yù)定的結(jié)果,則產(chǎn)生第二異常信號(hào); 所述異常處理器被布置為: -如果已經(jīng)產(chǎn)生了所述第一異常信號(hào)和所述第二異常信號(hào)中的至少一個(gè),則斷定已經(jīng)發(fā)生了故障攻擊。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中所述第二讀取請(qǐng)求是具有已知答復(fù)的請(qǐng)求。9.根據(jù)權(quán)利要求7或8所述的系統(tǒng),其中所述存儲(chǔ)器還包括與所述第一存儲(chǔ)器區(qū)域不同的第二存儲(chǔ)器區(qū)域,并且其中所述地址分派器被布置為在分派所述第一讀取請(qǐng)求與所述第三讀取請(qǐng)求之間分派指向所述第二存儲(chǔ)器區(qū)域的其它讀取請(qǐng)求。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述故障攻擊是通過光源執(zhí)行的光攻擊,并且其中所述第二存儲(chǔ)器區(qū)域在所述光源的光斑之外。11.根據(jù)權(quán)利要求9或10所述的系統(tǒng),其中,所述第一讀取請(qǐng)求、第二讀取請(qǐng)求和第三讀取請(qǐng)求被包括在讀取流的第一分支中,并且其中所述其它讀取請(qǐng)求被包括在所述讀取流的第二分支中。12.根據(jù)權(quán)利要求7至11任一項(xiàng)所述的系統(tǒng),所述地址分派器還被布置為:如果既沒有產(chǎn)生所述第一異常信號(hào)又沒有產(chǎn)生所述第二異常信號(hào),則斷定還沒有發(fā)生故障攻擊。13.根據(jù)權(quán)利要求7至12中任一項(xiàng)所述的系統(tǒng),其中所述地址分派器被包括在存儲(chǔ)器控制器中。14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述存儲(chǔ)器控制器是閃存控制器或EEPROM存儲(chǔ)器控制器。
【文檔編號(hào)】G06F21/77GK105893877SQ201610085662
【公開日】2016年8月24日
【申請(qǐng)日】2016年2月15日
【發(fā)明人】阿斯特麗德·葆拉·瑪麗亞, 提姆·克彭
【申請(qǐng)人】恩智浦有限公司