999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java卡安全性研究

2017-07-05 11:15:26張雪蓮吳震杜之波王敏向春玲
關(guān)鍵詞:方法

張雪蓮,吳震,杜之波,王敏,向春玲

(成都信息工程大學(xué)信息安全工程學(xué)院,四川 成都 610225)

Java卡安全性研究

張雪蓮,吳震,杜之波,王敏,向春玲

(成都信息工程大學(xué)信息安全工程學(xué)院,四川 成都 610225)

為了保護(hù)個(gè)人隱私以及財(cái)產(chǎn)的安全性,提出了Java卡安全性研究。在系統(tǒng)論述Java卡基本組成結(jié)構(gòu)的基礎(chǔ)上,對(duì)邏輯攻擊、故障注入、聯(lián)合攻擊等攻擊方式的研究工作進(jìn)行了總結(jié),探討了其中存在的一些問(wèn)題,進(jìn)一步對(duì)各種攻擊方式提出了相應(yīng)的防御措施并分析其存在的不足。最后對(duì)未來(lái)的研究方向進(jìn)行了展望。

Java卡;邏輯攻擊;故障注入;聯(lián)合攻擊;防御措施

1 引言

Java卡是基于Java編程技術(shù)開(kāi)發(fā)的多應(yīng)用智能卡,以多應(yīng)用的支持、良好的安全特性、面向?qū)ο蟮木幊汰h(huán)境、應(yīng)用程序動(dòng)態(tài)下載等眾多優(yōu)點(diǎn)成為智能卡技術(shù)在網(wǎng)絡(luò)時(shí)代的主流應(yīng)用,同時(shí)也使這一技術(shù)成為智能卡領(lǐng)域研究和發(fā)展的熱門(mén)[1]。隨著磁條卡被發(fā)現(xiàn)存在著許多安全隱患,Java卡開(kāi)始廣泛應(yīng)用于通信、醫(yī)療、銀行、國(guó)家電網(wǎng)等眾多領(lǐng)域。由于卡片內(nèi)存儲(chǔ)著一些很有價(jià)值的敏感信息(個(gè)人的身份信息、密鑰等),因此一直以來(lái)都是黑客攻擊的目標(biāo)。Java卡規(guī)范在制定時(shí)充分考慮了安全特性,并提供了幾種安全機(jī)制[2]:通過(guò)防火墻機(jī)制將各應(yīng)用進(jìn)行隔離以確保運(yùn)行環(huán)境的安全性;Java卡虛擬機(jī)(JCVM,Java card virtual machine)檢查堆棧和緩存溢出以保證非法的內(nèi)存訪問(wèn);Java Card 3.0[3]標(biāo)準(zhǔn)版(classic edition)和連接版(connected edition))連接版本強(qiáng)制在卡上進(jìn)行字節(jié)碼校驗(yàn)(BCV,bytecode verifier)確保了執(zhí)行程序的類(lèi)型安全。另外,Java卡產(chǎn)品一般也都實(shí)現(xiàn)了Global Platform規(guī)范,能夠?qū)ㄆ袘?yīng)用的下載、安裝、個(gè)人化和刪除達(dá)到安全管理的目的。雖然有如此多的保護(hù)措施,但是攻擊者還找到了不同的方法來(lái)攻陷智能卡的安全體系。

密碼算法的實(shí)現(xiàn)都是以硬件為載體的,針對(duì)硬件層面普遍使用物理攻擊方式中的故障注入。它的研究主要在密碼分析領(lǐng)域[4],但也可以對(duì)任何代碼層產(chǎn)生威脅。雖然故障注入能夠在智能卡攻擊方面改變智能卡內(nèi)存單元或寄存器的內(nèi)容[5],但是這對(duì)硬件設(shè)備和技術(shù)要求比較高,相比之下,軟件層面的攻擊則不需要專(zhuān)門(mén)的設(shè)備作為支撐。在Java卡3.0版本發(fā)布之前,要實(shí)現(xiàn)卡上字節(jié)碼校驗(yàn)功能的代價(jià)較大,此時(shí)字節(jié)碼校驗(yàn)都是在卡外執(zhí)行的。在此背景下,攻擊者能夠?qū)嵤┸浖用娴倪壿嫻?,?jīng)典的攻擊方式是修改已經(jīng)通過(guò)卡外校驗(yàn)的應(yīng)用程序的CAP文件,使其變成惡意的應(yīng)用后裝載到卡片上。然而,Java卡3.0連接版引入強(qiáng)制卡上字節(jié)碼校驗(yàn)的新特性,使直接加載惡意程序不再可能,于是出現(xiàn)了一種將硬件層面的故障注入與軟件層面的邏輯攻擊相結(jié)合的新型攻擊方式——聯(lián)合攻擊[6]。聯(lián)合攻擊利用故障注入繞過(guò)某種安全機(jī)制,使攻擊能夠在新版本的Java卡平臺(tái)實(shí)施。聯(lián)合攻擊不僅彌補(bǔ)了邏輯攻擊只能依賴(lài)于未經(jīng)驗(yàn)證的惡意程序進(jìn)行攻擊的不足,而且能夠永久地改變或訪問(wèn)卡上敏感信息,成為目前智能卡攻擊的主流攻擊方式之一。

2 Java卡系統(tǒng)架構(gòu)

Java卡是在智能卡硬件系統(tǒng)基礎(chǔ)上,在片內(nèi)通過(guò)軟件構(gòu)造的一個(gè)支持 Java程序下載、安裝并運(yùn)行的軟、硬件系統(tǒng)。其基本系統(tǒng)架構(gòu)由以下部分組成:底層硬件及操作系統(tǒng)、Java卡虛擬機(jī)(JCVM,Java card virtual machine)、Java卡的運(yùn)行時(shí)環(huán)境(JCRE,Java card runtime environment)、應(yīng)用程序編程接口(API,application programming interface)和裝載的應(yīng)用(applet)[7],如圖1所示。其中JCVM負(fù)責(zé)執(zhí)行字節(jié)碼(byte code)以及實(shí)現(xiàn)內(nèi)存的自動(dòng)管理機(jī)制[7]。由于智能卡本身有限的硬件資源,故不能在卡上實(shí)現(xiàn)全部JCVM的功能,因此Java卡虛擬機(jī)分為卡內(nèi)、卡外虛擬機(jī)這兩部分。卡外虛擬機(jī)主要負(fù)責(zé)將編譯后的class文件轉(zhuǎn)換為更加緊湊、高效的下載安裝文件,即CAP文件;卡內(nèi)虛擬機(jī)是Java卡的核心,一般由智能卡商開(kāi)發(fā)并提供給用戶(hù);JCRE層承載了卡上所有applet和對(duì)象之間的通信,擔(dān)任了對(duì)象通信過(guò)程中的超級(jí)管理員職責(zé);Java卡 API是一套供應(yīng)用開(kāi)發(fā)人員調(diào)用的開(kāi)放API,它使程序員在開(kāi)發(fā)應(yīng)用過(guò)程中只需關(guān)心其功能的實(shí)現(xiàn),不用關(guān)心底層硬件相關(guān)的各屬性,并且可跨平臺(tái)使用,開(kāi)發(fā)者只需熟練掌握相關(guān)編程接口即可。

圖1 Java卡系統(tǒng)組成結(jié)構(gòu)

3 Java卡攻擊分類(lèi)

關(guān)于智能卡的攻擊,從大的方面來(lái)說(shuō)可以分為兩類(lèi):一是硬件層面的攻擊;二是軟件層面的攻擊。硬件層面的攻擊是指借助一些專(zhuān)門(mén)的設(shè)備,對(duì)卡片運(yùn)行時(shí)的一些物理環(huán)境進(jìn)行分析或破壞,從而達(dá)到攻擊的目的[8];軟件層面的攻擊,即利用執(zhí)行程序在JCVM或JCRE實(shí)現(xiàn)上的一些漏洞,通過(guò)加載不規(guī)范代碼對(duì)卡片進(jìn)行攻擊。由于硬件層面的攻擊需要借助專(zhuān)門(mén)的設(shè)備,其中有些設(shè)備價(jià)格非常昂貴,并且對(duì)攻擊者的綜合素養(yǎng)要求較高,需要有豐富的逆向工程經(jīng)驗(yàn),因此一般只有專(zhuān)業(yè)的安全實(shí)驗(yàn)室才有能力實(shí)施。相比之下,軟件層面的攻擊則不一定需要專(zhuān)業(yè)設(shè)備的支撐,花費(fèi)的時(shí)間也很短,但對(duì)智能卡的安全威脅相對(duì)更大。針對(duì)Java卡的威脅具體可分為以下幾種[2]。

1)邏輯攻擊(logical attack):又稱(chēng)為軟件攻擊,即利用軟件運(yùn)行環(huán)境(如JCVM、JCRE)針對(duì)程序上的漏洞進(jìn)行攻擊。

2)物理攻擊(physical attack):對(duì)Java卡運(yùn)行時(shí)的物理環(huán)境進(jìn)行分析或修改。

3)聯(lián)合攻擊(combined attack):物理攻擊與邏輯攻擊相結(jié)合。

4)其他攻擊(other attack):在不改變硬件設(shè)備的情況下,對(duì)軟件實(shí)現(xiàn)過(guò)程中的時(shí)間、路徑、功耗等信息進(jìn)行分析。

3.1 邏輯攻擊

總體來(lái)說(shuō),邏輯攻擊主要是由Java卡實(shí)現(xiàn)上的漏洞和有限的運(yùn)行時(shí)執(zhí)行安全檢查導(dǎo)致的。2003年,Witteman[9]首次提出了基于Java卡平臺(tái)進(jìn)行邏輯攻擊的概念。之后出現(xiàn)了大量的邏輯攻擊,大致可歸為類(lèi)型轉(zhuǎn)換、共享接口機(jī)制、對(duì)象共享機(jī)制、事物本身在實(shí)現(xiàn)上的一些漏洞攻擊通信協(xié)議等大量的邏輯攻擊,一些典型的邏輯攻擊總結(jié)如下。

1)惡意程序攻擊

基于 CAP文件的篡改引入類(lèi)型混淆的字節(jié)碼,并將修改后的應(yīng)用裝載到Java卡中,這是使惡意代碼能在卡上運(yùn)行最簡(jiǎn)單有效的方式。但此方法僅適用于在卡外進(jìn)行字節(jié)碼校驗(yàn)和未簽名的CAP文件。例如,通過(guò)卡外修改CAP文件將數(shù)組引用指向的目標(biāo)由byte類(lèi)型改為short類(lèi)型,并將修改后的CAP文件裝載到卡里。由于數(shù)組的引用值本身不存在類(lèi)型這一說(shuō)法,則進(jìn)行類(lèi)型轉(zhuǎn)換時(shí)不會(huì)拋出異常。如果成功運(yùn)行篡改后的應(yīng)用,那么修改后可以讀出原來(lái)兩倍長(zhǎng)度的數(shù)組數(shù)據(jù),偏移溢出到原byte數(shù)組對(duì)象外面,導(dǎo)致訪問(wèn)其他內(nèi)存空間并返回有效的結(jié)果。

2)濫用對(duì)象共享機(jī)制

攻擊者可以不直接對(duì)CAP文件進(jìn)行篡改而是基于濫用實(shí)例共享接口的引用跨防火墻訪問(wèn),此方法主要依賴(lài)于 Java卡共享機(jī)制在實(shí)現(xiàn)上的缺陷,即使強(qiáng)制卡上字節(jié)碼校驗(yàn)仍有效。Montgomery等在文獻(xiàn)[10]中詳細(xì)描述了利用對(duì)象共享接口機(jī)制允許未經(jīng)授權(quán)訪問(wèn) Java卡內(nèi)存的攻擊方法,過(guò)程如下。

① 在服務(wù)器A定義一個(gè)可以共享的接口,并且在接口中定義將要被客戶(hù)端B訪問(wèn)的方法。

② 在服務(wù)器A定義一個(gè)類(lèi)C并實(shí)現(xiàn)該共享接口,在類(lèi)C里面具體實(shí)現(xiàn)接口中定義的方法,實(shí)例化對(duì)象O。

③ 若客戶(hù)端B想要訪問(wèn)服務(wù)器A中的實(shí)例對(duì)象O時(shí),則可以通過(guò)調(diào)用JCSystem.get Applet Shareable Interface Object方法,將訪問(wèn)請(qǐng)求和B的AID交給JCRE處理。

④ JCRE把該請(qǐng)求發(fā)送至A,若A確認(rèn)請(qǐng)求并且AID合法,則可以進(jìn)行訪問(wèn)。

此時(shí),攻擊者設(shè)計(jì)一個(gè)含有惡意代碼且和客戶(hù)端B具有相同AID的應(yīng)用D。應(yīng)用D被裝載到卡中之后對(duì)共享接口請(qǐng)求訪問(wèn),由于服務(wù)器A只對(duì)D的AID進(jìn)行檢查而對(duì)其內(nèi)容未進(jìn)行校驗(yàn),所以無(wú)法識(shí)別出應(yīng)用D的非法行為。

針對(duì)這種攻擊,可以通過(guò)在共享接口生成對(duì)象前定義多種身份校驗(yàn)方法識(shí)別偽造AID以實(shí)施防御。

3)濫用事務(wù)機(jī)制

事物漏洞的根源在于事務(wù)機(jī)制在實(shí)現(xiàn)上具有一定的差異性。事物處理操作過(guò)程只對(duì)永久數(shù)據(jù)的更新有效,而對(duì)于臨時(shí)對(duì)象及全局?jǐn)?shù)組不能保證數(shù)據(jù)的原子性。利用事物機(jī)制在實(shí)現(xiàn)上的漏洞制造類(lèi)型混淆。例如,局部變量存儲(chǔ)于棧內(nèi)存中,創(chuàng)建的對(duì)象和非靜態(tài)成員變量在堆內(nèi)存中分配空間。由于存儲(chǔ)的位置差異,導(dǎo)致終止事務(wù)時(shí)前者不會(huì)進(jìn)行回退操作,后者會(huì)回退到最初狀態(tài)(一般為0,引用值為空)。如果讓不同的局部變量和成員變量指向同一引用值,終止事務(wù)會(huì)刪除事務(wù)中創(chuàng)建的對(duì)象并釋放空間,導(dǎo)致下一次新分配對(duì)象的引用與未正常重置的引用值相同,從而使指向同一對(duì)象地址能夠訪問(wèn)之前的數(shù)據(jù)。當(dāng)然,對(duì)事物機(jī)制的攻擊確實(shí)也存在一定問(wèn)題:假設(shè)非原子方法在沒(méi)有事物的過(guò)程中被中斷,一些卡片返回了無(wú)法預(yù)測(cè)的結(jié)果;另外,如果對(duì)象引用既指向局部變量又分配給多個(gè)實(shí)例字段,那么當(dāng)事物被終止時(shí),很難確定哪個(gè)引用應(yīng)該被置空。

3.2 物理攻擊

物理攻擊中最有效的攻擊方式是故障注入。故障注入是在某些合適的時(shí)間改變芯片的工作條件,使芯片的中間狀態(tài)(如程序計(jì)數(shù)器、堆棧指針以及內(nèi)存)發(fā)生改變,進(jìn)而引起錯(cuò)誤的輸出或異常的旁路泄露,從而獲取卡上的一些敏感信息。當(dāng)然,故障注入這種錯(cuò)誤行為會(huì)造成不可避免的隨機(jī)性和不準(zhǔn)確性,而且所需設(shè)備的成本也有很大的差異性:一般光攻擊需要昂貴的設(shè)備費(fèi)用,尖峰、毛刺和電磁攻擊的成本比較低。因此,在成本預(yù)算較低的情況下,毛刺和尖峰攻擊比較常用。根據(jù)硬件層面故障注入實(shí)施方式的不同,可以將故障攻擊模型分為以下幾種。

1)尖峰脈沖攻擊(spike attack)

通過(guò)改變發(fā)送給芯片的電源信號(hào),可能干擾計(jì)算。該攻擊方式成本較低且不會(huì)對(duì)芯片造成永久性傷害,但空間精度也比較低,時(shí)間精度取決于電壓降在持續(xù)時(shí)間與目標(biāo)芯片同步的準(zhǔn)確度。

2)毛刺攻擊(glitch attack)

通過(guò)修改芯片工作電壓或時(shí)序電壓擾亂芯片運(yùn)算。這種攻擊可以不留下任何篡改的痕跡,其產(chǎn)生的錯(cuò)誤也是暫時(shí)的,不會(huì)對(duì)芯片造成任何損失。但在實(shí)際攻擊過(guò)程中對(duì)時(shí)鐘的修改技術(shù)具有一定的難度,隨著目標(biāo)設(shè)備攻擊頻率的增大,攻擊難度會(huì)相應(yīng)增大。

3)電磁擾亂攻擊(electromagnetic perturbation attack)

電磁擾亂攻擊主要通過(guò)在內(nèi)存單元附近產(chǎn)生強(qiáng)大的磁場(chǎng),導(dǎo)致內(nèi)存中表示狀態(tài)的離子在內(nèi)存空間雜亂無(wú)章地到處移動(dòng),以達(dá)到干擾的效果。電磁干擾會(huì)影響整個(gè)攻擊設(shè)備,有可能會(huì)對(duì)芯片造成永久性改動(dòng)。電磁擾亂攻擊比毛刺攻擊的時(shí)間精度稍微低一些。

4)光學(xué)攻擊(optical attack)

光學(xué)攻擊需要光能夠穿過(guò)保護(hù)層直接到達(dá)芯片,一方面可以通過(guò)特定波長(zhǎng)的光聚焦到一起,實(shí)現(xiàn)內(nèi)存單元的逆轉(zhuǎn);另一方面可以通過(guò)光電效應(yīng),改變和修改內(nèi)存單元的內(nèi)容。由于該攻擊技術(shù)允許攻擊者攻擊芯片底部部分電路,所以可能會(huì)永久地?zé)龎男酒?。該技術(shù)的優(yōu)點(diǎn)是可以更高效注入單個(gè)或多個(gè)故障,并且能達(dá)到較高的時(shí)間和空間精度。但實(shí)施該技術(shù)不僅需要花費(fèi)巨大的成本,而且還需要攻擊者具有一定逆向工程的能力。

3.3 聯(lián)合攻擊

2009年之前對(duì)Java卡邏輯攻擊的方式,基本上都是通過(guò)篡改CAP文件和Java卡自身實(shí)現(xiàn)上的一些缺陷。但隨著Java卡3.0版本的逐步推廣,Java卡3.0連接版強(qiáng)制在卡上進(jìn)行字節(jié)碼校驗(yàn)這一新特性使僅修改CAP文件的邏輯攻擊不再具有可行性。2010年,Barbu等[6]提出了聯(lián)合攻擊的概念。聯(lián)合攻擊實(shí)施起來(lái)操作比較復(fù)雜,涉及故障注入以及代碼攻擊這2個(gè)攻擊過(guò)程。下面以文獻(xiàn)[11]中如何攻擊操作數(shù)棧為例說(shuō)明。

操作數(shù)棧是整個(gè)Java虛擬機(jī)里一個(gè)至關(guān)重要的數(shù)據(jù)結(jié)構(gòu)。所有的Java指令都涉及將數(shù)據(jù)加載到棧中、對(duì)棧上的數(shù)據(jù)進(jìn)行運(yùn)算以及將操作結(jié)果壓回棧等一系列操作。Java卡里的操作數(shù)棧保存在調(diào)用Java方法所產(chǎn)生的棧幀里面,這也是Java卡RAM的一段存儲(chǔ)空間。

實(shí)例混淆是將一個(gè)類(lèi)(或是某個(gè)接口實(shí)現(xiàn)的)的實(shí)例i當(dāng)作同一個(gè)類(lèi)(或是同一接口實(shí)現(xiàn)的)的另一個(gè)實(shí)例i*來(lái)使用。如果來(lái)自2個(gè)不同應(yīng)用進(jìn)行實(shí)例混淆,則必須繞過(guò)防火墻應(yīng)用。在Java卡 3.0規(guī)范中,引入了認(rèn)證服務(wù)(authenticationservice)的概念,這個(gè)認(rèn)證服務(wù)由一系列接口的方式實(shí)現(xiàn),如圖2所示。圖2中認(rèn)證服務(wù)的接口提供了3種重要方法,其中,check方法用來(lái)驗(yàn)證用戶(hù),isvalidated方法用來(lái)檢查用戶(hù)是否驗(yàn)證成功,reset方法用于重置用戶(hù)認(rèn)證狀態(tài),由于這些方法都是共享對(duì)象,因此可以通過(guò)Java卡防火墻應(yīng)用。

圖2 Sharable接口的組織結(jié)構(gòu)

假設(shè)被攻擊的應(yīng)用提供了SharedPassordAuth這個(gè)接口給其他應(yīng)用,然后攻擊者創(chuàng)建一個(gè)應(yīng)用,包含實(shí)現(xiàn)了SharedPasswordAuth接口的若干個(gè)實(shí)例,只需產(chǎn)生一個(gè)故障使實(shí)例里的 check和isValidated方法的返回值總是真,則攻擊者自己偽造的認(rèn)證服務(wù)實(shí)例將會(huì)與真正的認(rèn)證服務(wù)實(shí)例成功混淆,認(rèn)證就會(huì)通過(guò),從而獲得非法訪問(wèn)。由于實(shí)驗(yàn)在Java card 2.2.2版本沒(méi)有認(rèn)證接口,因此下面使用一個(gè)共享接口證明該方法具有可行性。

① 在應(yīng)用中定義一個(gè)共享接口I,并在共享接口中定義共享接口方法。

② 創(chuàng)建實(shí)現(xiàn)了共享接口 A類(lèi)的一個(gè)實(shí)例 a和實(shí)現(xiàn)了共享接口B類(lèi)的256個(gè)實(shí)例(b0~b255)。

③ 通過(guò)虛擬方法getA方法獲取A類(lèi)的一個(gè)引用,并將其存儲(chǔ)到I類(lèi)型的局部變量a中,Ia=getA()。

④ 在將a壓到棧頂時(shí)產(chǎn)生一個(gè)故障,迫使a變成B類(lèi)實(shí)例的引用。

實(shí)驗(yàn)結(jié)果:在進(jìn)行了 10 000次攻擊之后,8.74%的概率成功將a混淆為B的實(shí)例,25.42%的概率a仍然是A的實(shí)例,其余情況卡片拋出異?;蜃枞?,最后沒(méi)有返回。實(shí)驗(yàn)表明,針對(duì)操作數(shù)棧進(jìn)行故障攻擊達(dá)到實(shí)例混淆的方法具有可行性。

3.4 其他攻擊

側(cè)信道攻擊:利用密碼設(shè)備在運(yùn)行過(guò)程中的執(zhí)行時(shí)間、功率消耗、電磁輻射等信息泄露和密碼算法的設(shè)計(jì)和實(shí)現(xiàn)特點(diǎn)進(jìn)行攻擊的方法[12]。由于側(cè)信道攻擊具有低成本、攻擊效果顯著的特點(diǎn),所以嚴(yán)重威脅了Java卡等密碼設(shè)備的安全性。

Vermoen等[13]提出了基于Java卡逆向工程進(jìn)行功耗分析的攻擊實(shí)驗(yàn),為了能夠逆向applet每一個(gè)字節(jié)碼指令的軌跡,還專(zhuān)門(mén)對(duì)JCVM不支持的指令序列進(jìn)行了測(cè)定。目前,此種攻擊方式已經(jīng)成功被應(yīng)用于商業(yè)用途。

4 防御措施

4.1 邏輯攻擊防御措施

1)引用對(duì)象類(lèi)型檢查

由于數(shù)組具有多種不同的類(lèi)型,在使用某個(gè)指令加載數(shù)組中特定類(lèi)型的數(shù)據(jù)時(shí),數(shù)組引用只能指向該類(lèi)型的數(shù)組。這意味著數(shù)組的引用只能指向一個(gè)short類(lèi)型的數(shù)組。

2)強(qiáng)制卡上字節(jié)碼校驗(yàn)

強(qiáng)制卡上字節(jié)碼校驗(yàn)這一功能能有效地防止基于CAP文件篡改的邏輯攻擊。

3)制定更規(guī)范的Java卡規(guī)范

利用Java卡規(guī)范使客戶(hù)端和服務(wù)器端不通過(guò)共享接口就能意識(shí)到彼此的服務(wù)器端和客戶(hù)端,從而避免濫用共享接口。

4)正確執(zhí)行終止操作

規(guī)范代碼的書(shū)寫(xiě),切勿濫用。以便當(dāng)事物操作被終止時(shí)能進(jìn)行正確的回退操作。

4.2 物理攻擊防御措施

1)在芯片中增設(shè)傳感器來(lái)監(jiān)測(cè)芯片工作環(huán)境的變化,一旦監(jiān)測(cè)到惡意攻擊,立即啟動(dòng)自毀機(jī)制,從而避免敏感信息的泄露。

2)采用健壯的硬件設(shè)計(jì),通過(guò)設(shè)計(jì)多層電路,限制微型探針探測(cè);增加檢測(cè)電路,防御毛刺注入、激光注入等對(duì)芯片的干擾,使芯片工作處于穩(wěn)定正常狀態(tài)。

3)在密碼算法層面,采用安全的算法設(shè)計(jì),能夠?qū)λ惴ǖ倪\(yùn)行狀態(tài)進(jìn)行檢測(cè),最大程度防止錯(cuò)誤注入的引入,進(jìn)一步提高芯片的安全性。

4.3 聯(lián)合攻擊法防御措施

1)冗余檢查

對(duì)于操作數(shù)棧,防止故障注入最簡(jiǎn)單有效的方法是冗余法。即在入棧和出棧時(shí)都做一次檢查,進(jìn)而比較棧頂元素和所期望的值是否一致。但該方法也存在一些不足:只能發(fā)現(xiàn)在入棧和出棧瞬間寫(xiě)入或讀取數(shù)值的異常,而對(duì)入棧后出棧前這段時(shí)間內(nèi)棧內(nèi)元素的突變不能及時(shí)檢查出來(lái)。另外,如果對(duì)入棧和出棧的瞬間都進(jìn)行冗余檢查操作,勢(shì)必會(huì)對(duì)Java卡的性能造成一定的影響。

2)誘導(dǎo)錯(cuò)誤到當(dāng)前上下文

利用JCRE規(guī)范中的應(yīng)用防火墻機(jī)制將潛在的錯(cuò)誤傳播到當(dāng)前上下文。如果當(dāng)前上下文被改變,那么它在調(diào)用本身所創(chuàng)建對(duì)象的方法或訪問(wèn)對(duì)象的屬性時(shí)會(huì)被防火墻禁止而拋出異常。盡管將故障的檢測(cè)傳遞到防火墻來(lái)完成,實(shí)現(xiàn)起來(lái)會(huì)相對(duì)簡(jiǎn)單并且也降低了冗余檢查帶來(lái)的開(kāi)銷(xiāo),但此方法也存在不足之處:有可能在應(yīng)用防火墻中打開(kāi)一個(gè)缺口,從而對(duì)Java卡中的其他應(yīng)用造成安全隱患。

3)強(qiáng)制隔離內(nèi)存區(qū)域

針對(duì)不同上下文的內(nèi)存區(qū)域?qū)嵤?qiáng)制隔離,可以有效地防止攻擊者訪問(wèn)敏感上下文。對(duì)于嵌入式系統(tǒng)智能卡來(lái)說(shuō),從硬件的角度進(jìn)行防御可以通過(guò)ARM中配備的有效保護(hù)系統(tǒng)資硬件控制,如內(nèi)存保護(hù)單元(MPU,memory protection unit),實(shí)現(xiàn)強(qiáng)制隔離。

4.4 側(cè)信道攻擊防御措施

1)降低側(cè)信道信息泄露。例如,采用平衡電路降低信號(hào)能量,設(shè)置金屬防護(hù)抑制電磁輻射等措施。

2)執(zhí)行并行隨機(jī)處理以加大幅值對(duì)噪聲的影響。例如,將內(nèi)部編程電壓產(chǎn)生電路用作并行噪聲發(fā)生器。

3)用隨機(jī)值隱蔽中間媒介值。能量的泄露取決于一個(gè)數(shù)據(jù)中的位數(shù)。如果在實(shí)際數(shù)據(jù)上加上隨機(jī)數(shù)據(jù),處理完之后再減去,那么傳遞的路徑將不會(huì)泄露有用的信息。不過(guò),這種隱蔽會(huì)導(dǎo)致傳遞函數(shù)的非線性并產(chǎn)生錯(cuò)誤的結(jié)果。因此,這些函數(shù)需要仔細(xì)地重新設(shè)計(jì),以補(bǔ)償由隨機(jī)數(shù)據(jù)引起的背離。

5 結(jié)束語(yǔ)

近年來(lái),隨著磁條卡暴露出的諸多安全隱患,具有集多應(yīng)用于一身的芯片卡迅速占領(lǐng)了國(guó)內(nèi)市場(chǎng),一卡通天下的愿景也逐步成為了現(xiàn)實(shí)。與此同時(shí),金融詐騙等案件日益上升,隨著Java卡的廣泛應(yīng)用凸顯出了其存在的安全性。未來(lái)對(duì) Java卡的攻擊主要還是從軟件層面對(duì)嵌入式系統(tǒng)漏洞的挖掘入手(例如,卡刪除應(yīng)用時(shí)是否所有相應(yīng)的內(nèi)存清空,虛擬機(jī)非法指令實(shí)現(xiàn)上的差異性,AES、RSA等密碼算法的密鑰是否安全)。對(duì)Java卡的保護(hù)是一個(gè)軟硬件相互協(xié)同的過(guò)程,僅從軟件層面不能根本解決問(wèn)題,只有在強(qiáng)有力的硬件保護(hù)機(jī)制下才能將Java卡安全性發(fā)揮到極致,進(jìn)而為國(guó)家安全、社會(huì)穩(wěn)定和經(jīng)濟(jì)的發(fā)展做出巨大貢獻(xiàn)。

[1] 黨彥峰. Java智能卡軟件平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 上海: 上海交通大學(xué), 2008.

DANG Y F. The design and implementation of Java smart card software platform[D]. Shanghai: Shanghai Jiao Tong University, 2008.

[2] SéRé A A K, JULIEN I C, JLANET J L. Evaluation of countermeasures against fault attacks on smart cards[J]. International Journal of Security and Its Applications, 2011, 5(2): 49-60.

[3] 于暉. 基于混合攻擊的 Java 卡 3.0 安全性研究[J]. 信息安全與通信保密, 2014(9): 125-128.

YU H. Security study on Java card 3.0 based on hybrid attack[J]. Information Security and Communications Privacy, 2014(9): 125-128.

[4] AUMüLLER C,BIER P,FISCHER W. Fault attacks on RSA with CRT: concrete results and practical countermeasures[C]//The International Workshop on Cryptographic Hardware and Embedded Systems. 2002:260-275.

[5] GIRAUD C, THIEBEAULD H. A survey on fault attacks[M]//Smart Card Research and Advanced Applications. Berlin: Springer, 2004: 159-176.

[6] BARBU G, THIEBEAULD H, GUERIN V. Attacks on Java card 3.0 combining fault and logical attacks[C]// The International Conference on Smart Card Research and Advanced Application, IFIP Wg 8.8/11.2. 2010:148-163.

[7] WU Y C, SUN Y Q. Analysis and research of securing from attack for java card[C]//The International Conference on E-Business and E-Government. 2010:1296-1298.

[8] CHAUMETTE S,SAUVERON D. An efficient and SIMPLE way to test the security of Java cards TM[C]]//The International Workshop on Security in Information Systems.2006:331-341.

[9] WITTEMAN M. Java card security[J]. Information Security Bulletin, 2003, 8(10): 291-298.

[10] MOSTOWSKI W, POLL E. Malicious code on Java card smartcards: attacks and countermeasures[C]//The International Conference on Smart Card Research and Advanced Applications, IFIP Wg 8.8/11.2. 2008:1-16.

[11] BARBU G, DUC G, HOOGVORST P. Java card operand stack: fault attacks, combined attacks and countermeasures[M]//Smart Card Research and Advanced Applications. Berlin Heidelberg: Springer, 2011:297-313.

[12] PAUL C. Timing attacks on implementations of Diffie-Hellman, RSA, DSS, and other systems[M]//Advances in Cryptology — CRYPTO ’96. Berlin: Springer , 1996:104-113.

[13] VERMOEN D, WITTEMAN M, GAYDADJIEV G N. Reverse engineering Java card applets using power analysis[C]//The International Workshop on Information Security Theory and Practices. Smart Cards, Mobile and Ubiquitous Computing Systems, First IFIP TC6 / WG 8.8 / WG 11.2.2007:138-149.

Research on Java card security

ZHANG Xue-lian, WU Zhen, DU Zhi-bo, WANG Min, XIANG Chun-ling

(School of Information Security Engineering, Chengdu University of Information Technology, Chengdu 610225, China)

To protect privacy and the safety of property, the security research of Java card was proposed. On the basis of systematically discussing the basic composition of Java card, the key of attacking methods were summarized, including logical attack, fault injection and combined attack. At the same time, some problems with the attack process were presented. Moreover, some corresponding countermeasures were put forward and their shortages were analyzed. Finally, the future research direction was prospected.

Java card, logical attack, fault injection, combined attack, countermeasure

s: The National Science and Technology Major Project (No.2014ZX01032401-001), The National High Technology Research and Development Program (863 Program)(No.2012AA01A403), “The 12th Five-Years” National Cryptogram Development Fund (No.MMJJ201101022), Sichuan Provincial Science and Technology Support Programmer (No.2017GZ0313), The Project of Provincial Education Department Key Scientific Research of Sichuan Province (No.17ZB0082)

TP39

A

10.11959/j.issn.2096-109x.2017.00173

張雪蓮(1992-),女,四川達(dá)州人,成都信息工程大學(xué)碩士生,主要研究方向?yàn)樾畔踩?、智能卡安全?/p>

吳震(1975-),男,江蘇蘇州人,成都信息工程大學(xué)副教授,主要研究方向?yàn)樾畔踩⒚艽a學(xué)、側(cè)信道攻擊與防御、信息安全設(shè)備設(shè)計(jì)與檢測(cè)。

杜之波(1982-),男,山東聊城人,成都信息工程大學(xué)講師,主要研究方向?yàn)樾畔踩?、?cè)信道攻擊與防御、天線應(yīng)用和物聯(lián)網(wǎng)安全。

王敏(1977-),女,四川資陽(yáng)人,博士,成都信息工程大學(xué)講師,主要研究方向?yàn)榫W(wǎng)絡(luò)攻防、側(cè)信道攻擊與防御。

向春玲(1990-),女,湖北宜昌人,成都信息工程大學(xué)助教,主要研究方向?yàn)樾畔踩⒚艽a學(xué)、側(cè)信道攻擊與防御、智能卡安全。

2017-02-28;修改日期:2017-04-23。通信作者:吳震,wzhen@cuit.edu.cn

國(guó)家重大科技專(zhuān)項(xiàng)基金資助項(xiàng)目(No.2014ZX01032401-001);國(guó)家高技術(shù)研究發(fā)展計(jì)劃(“863”計(jì)劃)基金資助項(xiàng)目(No.2012AA01A403);“十二五”國(guó)家密碼發(fā)展基金資助項(xiàng)目(No.MMJJ201101022);四川省科技計(jì)劃項(xiàng)目基金資助項(xiàng)目(No.2017GZ0313);四川省教育廳科研基金資助項(xiàng)目(No.17ZB0082)

猜你喜歡
方法
中醫(yī)特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數(shù)學(xué)教學(xué)改革的方法
化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學(xué)習(xí)方法
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡(jiǎn)單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢(qián)方法
捕魚(yú)
主站蜘蛛池模板: 99热在线只有精品| 欲色天天综合网| 亚洲男人在线天堂| 午夜在线不卡| 国产区在线观看视频| 色网站在线视频| 欧美国产在线一区| 国产成人高清精品免费软件| 日韩中文精品亚洲第三区| 免费毛片网站在线观看| 国产情精品嫩草影院88av| 欧美午夜在线观看| 久久中文电影| 中文字幕一区二区视频| 国产成人精品2021欧美日韩| 一区二区三区四区日韩| 欧美精品黑人粗大| 2022国产91精品久久久久久| 国产成+人+综合+亚洲欧美| 亚洲欧美日韩成人高清在线一区| 91色在线观看| 中文无码精品a∨在线观看| 免费女人18毛片a级毛片视频| 国产成人凹凸视频在线| 精品三级网站| 亚洲欧洲日本在线| 国产在线精品99一区不卡| AV不卡在线永久免费观看| 四虎国产精品永久一区| 在线观看国产精品第一区免费| 日本在线免费网站| 午夜啪啪网| 国产成人你懂的在线观看| 国产欧美日韩精品第二区| 国产日产欧美精品| 国产成人精品综合| 日韩精品一区二区三区视频免费看| 亚洲视频四区| 2021精品国产自在现线看| 丰满人妻一区二区三区视频| 美女被操91视频| 波多野结衣一二三| 欧美亚洲一区二区三区导航| 日韩一区精品视频一区二区| 99伊人精品| 国产国产人成免费视频77777| 亚洲国产精品无码AV| 亚洲人妖在线| 精品超清无码视频在线观看| 无码精品一区二区久久久| 在线观看亚洲精品福利片| 四虎精品黑人视频| 亚洲国产清纯| 强奷白丝美女在线观看| 国产精品亚洲一区二区三区在线观看| 99在线视频免费观看| 日韩精品无码不卡无码| 免费福利视频网站| 国产自产视频一区二区三区| 污网站在线观看视频| 国产主播在线观看| 欧美日韩在线国产| 精品一区二区三区无码视频无码| 一本一道波多野结衣av黑人在线| 国产精品三级av及在线观看| 国产精品一区二区无码免费看片| 粗大猛烈进出高潮视频无码| 国产精品美女免费视频大全| 538精品在线观看| 中文字幕第4页| 在线观看无码av五月花| 亚洲专区一区二区在线观看| 日韩精品高清自在线| 国产视频一二三区| 亚洲av无码专区久久蜜芽| 亚洲成a人在线观看| 亚洲精品天堂自在久久77| 欧美一级高清片久久99| 国产欧美精品一区aⅴ影院| 青草午夜精品视频在线观看| 午夜性爽视频男人的天堂| 99久久精品视香蕉蕉|