• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Java智能卡Applet防火墻安全評估技術(shù)研究

      2016-07-09 13:58:02田曉鵬楊元原
      網(wǎng)絡(luò)空間安全 2016年8期
      關(guān)鍵詞:安全評估一致性安全性

      田曉鵬 楊元原

      【 摘 要 】 針對當前Java智能卡Applet防火墻缺乏系統(tǒng)性評估技術(shù)的問題,論文提出了一種新的安全評估方法。該方法分別從一致性、安全性等角度系統(tǒng)衡量Applet防火墻的安全功能,一方面對Applet防火墻的合規(guī)性進行一致性評估,另一方面,利用典型的Java智能卡攻擊技術(shù),形成攻擊測試集合,對Applet交互過程中隱含的安全漏洞進行評估,從而實現(xiàn)系統(tǒng)性衡量Applet防火墻的安全性。

      【 關(guān)鍵詞 】 Java智能卡;Applet防火墻;安全評估;一致性;安全性

      【 中圖分類號 】 TP3

      【 文獻標識碼 】 A

      【 Abstract 】 The article presents a new systemic security evaluation method for Java card Applet firewall which is mainly focused on special attack method in previous research. The article attempts to evaluate Applet firewall in conforming and secure perspective. First introduce the method of compliance evaluation for Applet firewall. Then evaluate Applet firewall using test attack kit which is composed of typical smart card attack method.

      【 Keywords 】 java card; applet firewall; security evaluation; compliance;security

      1 引言

      Java智能卡是在智能卡硬件系統(tǒng)的基礎(chǔ)之上,在卡片內(nèi)通過軟件構(gòu)建的一個支持Java程序下載、安裝和運行的軟、硬件系統(tǒng)。Java智能卡最初由Schlumberger工程師提出,后來其他公司如Bull和Gemplus,參加到Schlumberger中來,形成Java Card Forum[1]。最后Sun公司加入,并和其他智能卡廠商一起開發(fā)出Java Card規(guī)范,目前最新的規(guī)范版本是Java Card 3.0.5。

      與傳統(tǒng)智能卡產(chǎn)品相比,Java智能卡具備平臺無關(guān)性、支持一卡多用和重用、靈活性、安全性等優(yōu)勢,在移動通信、金融證券、交通運輸、身份識別等領(lǐng)域具有廣泛的應(yīng)用[1]。目前,國家在大力推進智慧城市和物聯(lián)網(wǎng)建設(shè),SIM卡、銀行卡、交通卡、社??ǖ戎鸩礁鼡Q為智能卡產(chǎn)品,Java智能卡在上述產(chǎn)品中占據(jù)較大的市場份額。

      Java智能卡在設(shè)計時充分考慮了應(yīng)用環(huán)境的安全性,采用了CAP校驗、原子性和Applet防火墻等多種安全機制[2],其中Applet防火墻作為不同Applet程序之間進行數(shù)據(jù)隔離的唯一手段,其安全性關(guān)系到整個Java智能卡的安全。

      目前針對Java智能卡的研究中,主要集中于兩個方面。一是針對Java智能卡的字節(jié)碼校驗、交易機制以及算法等功能提出新的實現(xiàn)方法或者框架,如 Massimiliano Zilli等提出一種輕量級的Java卡壓縮算法[3];Dawei Zhang、Zhen Han和Wei Jin基于對象本地化提出一種優(yōu)化的交易機制[4]。另一方面是針對特定Java智能卡及Applet防火墻中存在的某些漏洞進行脆弱性分析,比如Jip Hogenboom 和Wojciech Mostowski提出的利用類型混淆技術(shù)(Type Confusion)對某種類型Java智能卡進行的內(nèi)存讀寫攻擊[5];以及Michael Lackner、Reinhard Berlach等針對類型混淆和緩沖區(qū)溢出攻擊提出合并方式的解決措施[6]。

      上述分析方法往往缺少系統(tǒng)性的手段,較少關(guān)注產(chǎn)品的實現(xiàn)方式是否與規(guī)范一致。而現(xiàn)今針對傳統(tǒng)安全產(chǎn)品和服務(wù)的脆弱性分析往往是建立安全知識庫,及時發(fā)布脆弱性漏洞和修補措施,智能卡產(chǎn)品亦是如此。

      本文從一致性評估、安全性評估等角度對Applet防火墻的整體安全進行評估,并結(jié)合目前已有的實現(xiàn)方法,提出系統(tǒng)性的安全評估技術(shù)。

      一致性評估主要是評估目標對象Applet防火墻的實現(xiàn)方法與Java智能卡規(guī)范中的要求是否一致,特別是針對對象異常和數(shù)據(jù)邊界的處理方式,實現(xiàn)不當容易造成數(shù)據(jù)泄露[7]。Applet防火墻實現(xiàn)的主要內(nèi)容是不同Applet間的數(shù)據(jù)共享機制,因此Java智能卡支持的數(shù)據(jù)共享方式是一致性評估的重點。

      安全性評估主要是通過收集Java智能卡以及Applet防火墻的攻擊防護方法,建立攻擊知識庫,并形成測試工具和方法集合,對評估對象進行單獨或者組合攻擊,以此衡量產(chǎn)品的安全性和健壯性[8]。

      2 Applet防火墻

      由于Java智能卡支持多應(yīng)用,即允許多個Applet同時存在于同一智能卡中,因此Java智能卡平臺需要提供一種機制將應(yīng)用相互隔離,即保證某一Applet不能隨意訪問其他Applet的對象或域。Java智能卡防火墻的主要功能是對不同Applet程序之間的內(nèi)存空間進行隔離和訪問控制[1]。默認情況下,一個Applet程序不能訪問其他Applet程序的方法、屬性,即便方法和屬性是Public屬性[9]。

      但是,由于業(yè)務(wù)的需要,部分Applet程序需要調(diào)用其他程序的方法和數(shù)據(jù),比如支付Applet程序,在支付環(huán)節(jié)發(fā)送驗證碼驗證用戶身份時,需要調(diào)用短信Applet程序。Applet防火墻提供一套機制,可用于不同Applet程序之間的數(shù)據(jù)共享。提供共享服務(wù)的Applet程序通過繼承指定接口程序,可為其它Applet程序提供數(shù)據(jù)。如果出現(xiàn)未授權(quán)的訪問請求,JCRE會拋出SecurityException異常。

      3 Applet防火墻安全評估

      3.1 一致性評估

      一致性評估是安全性評估、性能評估等其他測試評估的基礎(chǔ),類似于傳統(tǒng)系統(tǒng)的掃描測試,一致性評估有利于發(fā)現(xiàn)Applet防火墻實現(xiàn)中的漏洞,進而為后續(xù)攻擊提供切入點。與傳統(tǒng)網(wǎng)絡(luò)協(xié)議一致性評估不同的是,由于Applet防火墻作為Java智能卡COS的系統(tǒng)組件,評估的主要方法是安裝測試Applet套件到智能卡上,通過Applet的輸出結(jié)果來測試系統(tǒng)組件的實現(xiàn)是否與Java智能卡規(guī)范要求一致,這種測試方法實際上是一種灰盒測試。由此可知一致性測試的重點和難點是設(shè)計完備的測試Applet套件。

      由于評估方法的不同,傳統(tǒng)網(wǎng)絡(luò)協(xié)議一致性測試套件均無法應(yīng)用于Java智能卡,但是在設(shè)計和實現(xiàn)方法上卻有共同之處,如應(yīng)支持自動化執(zhí)行和有效的結(jié)果展示方法等。針對Applet防火墻,本文提出可在Java智能卡集中開發(fā)環(huán)境的基礎(chǔ)上,利用完備的Applet防火墻測試套件,并提供自動化編譯和執(zhí)行方法,最后通過界面輸出測試結(jié)果,如圖1所示。

      Applet防火墻的主要功能是支持不同Applet間以及Applet同JCRE間的數(shù)據(jù)交互。具體來說,這些機制包括JCRE上下文及其訪問權(quán)限、全局數(shù)組、入口點對象、共享接口及對象共享。因此,針對Applet防火墻的一致性評估主要是評估幾種不同的數(shù)據(jù)共享方式與Java智能卡規(guī)范的要求是否一致。

      3.1.1 全局數(shù)組

      在Java智能卡中,有時一些數(shù)據(jù)需要被所有的Applet和JCRE執(zhí)行上下文共享,為此引入了全局數(shù)組。防火墻允許JCRE指定基本數(shù)組為全局,此后數(shù)組的公共域即可被任何執(zhí)行上下文所訪問。當前Java智能卡規(guī)范中定義的全局數(shù)組只有APDU緩沖區(qū)數(shù)組和被當做Install方式輸入?yún)?shù)的bArray數(shù)組[9]。

      在對Java卡全局數(shù)組進行安全評估時,可針對APDU緩沖區(qū)數(shù)組和bArray數(shù)組設(shè)計測試腳本,對目標對象的異常處理進行測試,評估是否存在處理不一致的情況或者數(shù)據(jù)泄露的風險。如apdu.getBuffer()方法為JCRE調(diào)用返回APDU緩沖區(qū)數(shù)組,如果當前執(zhí)行上下文為指定Applet上下文,根據(jù)Java智能卡規(guī)范,賦值給其局部變量數(shù)組實例值是不允許的,嘗試賦值時,會拋出SecurityException異常。

      3.1.2 入口點對象

      JCRE可以訪問任何Applet的執(zhí)行上下文,但是反過來,Applet不能任意訪問JCRE,但是有時候需要調(diào)用JCRE的系統(tǒng)服務(wù)。Applet智能卡引入JCRE入口點對象來完成此訪問。指定的Applet對象實例通過訪問JCRE入口點對象的公用方法來完成系統(tǒng)調(diào)用。Java智能卡定義了臨時JCRE入口點對象和永久JCRE入口點對象[10]。

      在對Java智能卡入口點對象進行安全評估時,可針對入口點對象單獨或組合設(shè)計測試腳本,對目標對象的異常處理進行測試。如apdu為臨時JCRE入口點對象,根據(jù)Applet防火墻規(guī)范的要求,臨時JCRE入口點對象的公用方法可被任何執(zhí)行上下文所調(diào)用,但是出于安全方面的考慮,臨時JCRE對象入口點對象引用不能被存入任何類變量、實例變量和數(shù)組。

      另外,對于JCRE臨時接入點對象,如果不在JCRE執(zhí)行上下文中,根據(jù)Applet防火墻規(guī)范的要求,可以對其進行格式檢查和賦值操作,不會拋出異常。

      3.1.3 共享接口及對象共享

      Applet能夠訪問不同Package中聲明的共享方法,提供共享方法的服務(wù)Applet需要定義繼承Javacard.framework.Shareable的接口,并在指定的類中實現(xiàn)該接口[10]。對共享接口及對象共享進行一致性評估,主要是根據(jù)Applet防火墻規(guī)范的要求,對不同包中共享接口、共享對象的訪問權(quán)限方法進行遍歷,通過觀察防火墻拋出異常的方式或者不拋出異常,來評估與Applet防火墻規(guī)范要求的匹配程度。

      另外,Java智能卡的規(guī)范存在多個版本,在Java智能卡共享機制執(zhí)行動態(tài)方法鏈接時,如果Client和Server使用不同版本的共享接口,有可能導致類型混淆(Type Confusion),因此針對特定的Java卡,可設(shè)計不同版本類型的共享程序,以此評估目標對象的一致性。

      在對Applet防火墻進行一致性評估時,可以同健壯性評估結(jié)合在一起組合測試,即通過在上述正常測試腳本的基礎(chǔ)上,增加超長字符、亂碼、惡意Applet等,驗證是否出現(xiàn)敏感信息的泄漏。

      本文選取上海華虹公司的Java智能卡芯片,利用Java智能卡一致性評估平臺對Applet共享方法進行驗證評估,如下為全局數(shù)組實例的驗證結(jié)果,通過在被測芯片上安裝測試Applet組件,并發(fā)送CLA指令,通過Applet的響應(yīng)結(jié)果來驗證Applet防火墻的處理是否正確。

      3.2 安全性評估

      針對信息安全產(chǎn)品或者信息系統(tǒng)進行安全評估,除產(chǎn)品功能可按照相關(guān)國際標準或者國家標準進行測評,安全性評估及脆弱性評估由于各個機構(gòu)的資源、成本等因素限制,測試結(jié)果往往參差不齊,另外零日漏洞以及新攻擊方法的出現(xiàn)往往對Java智能卡的安全造成嚴重影響,需要及時響應(yīng)處理。

      目前常見的針對Java智能卡以及Applet防火墻的攻擊方法,主要包括信息收集、類型篡改、兼容性攻擊以及密鑰攻擊等,各種攻擊方法的最終目的是篡改或者獲取Applet中的敏感數(shù)據(jù)。Applet防火墻實現(xiàn)不當可能導致上述攻擊方法被成功執(zhí)行,造成Applet中的敏感信息泄露給其他Applet。

      本文提出建立Applet防火墻安全性測試平臺,通過利用已知的針對智能卡、Java智能卡以及Applet防火墻的攻擊技術(shù),形成攻擊測試知識庫,知識庫可根據(jù)需要進行動態(tài)更新,并可形成攻擊工具集合,以便提高攻擊效率。同時,收集Applet防火墻的相關(guān)標準、研究報告以及其他信息,為知識庫提供數(shù)據(jù)支撐。該測試平臺有利于全面、系統(tǒng)地對Applet防火墻的安全性進行評估;并且通過分析已有研究成果及攻擊方法,可為標準制定、攻擊更新提供平臺支撐。

      3.2.1 信息收集

      傳統(tǒng)的攻擊方法第一步總是信息收集,對于可開放下載應(yīng)用的Java智能卡來說,向卡上裝載一個帶有惡意代碼的應(yīng)用并運行它,雖然普通的攻擊行為會被Java智能卡拒絕,但通過收集拒絕或者報錯信息,仍可完成加密算法遍歷、統(tǒng)計已有應(yīng)用等信息收集。完成這項工作可為之后的漏洞攻擊做鋪墊。另外,通過閱讀生產(chǎn)廠商提供的開放文檔等公開信息,也可進一步獲取信息[11]。

      3.2.2 類型篡改

      由于Java智能卡支持多Applet應(yīng)用,為了防止惡意開發(fā)者上傳攻擊性Applet應(yīng)用,Java卡提供了CAP文件字節(jié)碼校驗功能。CAP文件字節(jié)碼校驗劃分為卡上校驗和卡下校驗,主要對CAP文件和EXP文件的合法性進行校驗,具體檢查對象包括頭文件、所有類文件。由于其轉(zhuǎn)換和下載到卡內(nèi)的時間并不連續(xù),因此攻擊者可以通過CFM( Cap File Manipulator) 工具進行CAP 文件篡改,從而可以實現(xiàn)將惡意應(yīng)用程序加載到Java 卡中[12]。

      如圖4所示,共享接口的公共方法的輸入?yún)?shù)是byte[4],通過類型篡改,使輸入?yún)?shù)修改為short[4],導致客戶端Applet可訪問的空間擴大一倍,達到讀取內(nèi)存空間的目的。

      盡管Java Card 3.0 的VM 標準中,強制規(guī)定實現(xiàn)卡內(nèi)字節(jié)碼校驗,這使得之前所有基于CAP 文件篡改的邏輯篡改都將失效。但是,一方面,市面上仍然存在大量沒有采用最新標準的Java卡,因此此漏洞仍然存在;另一方面,即便是采用最新標準的Java智能卡,如果事務(wù)程序回退機制存在Bug,仍然可以利用此漏洞。

      3.2.3 兼容性攻擊

      目前Java卡廣泛應(yīng)用于移動通信、銀行金融、公共交通等領(lǐng)域,每個領(lǐng)域均有自己定義的規(guī)范標準,同時,每個標準或者標準內(nèi)部也有子版本更新,版本的兼容性對于基礎(chǔ)Applet程序或者基礎(chǔ)庫至關(guān)重要。如果不同版本之間任意濫用,有可能導致意想不到的結(jié)果。

      如圖5所示,AppletPackage在CAP文件中實現(xiàn)具體的方法,并且在EXP文件中進行聲明;Applet通過EXP文件中的聲明調(diào)用相應(yīng)方法。EXP文件是Applet和Package的鏈接,由于EXP文件不會部署到卡上,這就要求輸入?yún)?shù)和返回值類型必須一致。不兼容性可能導致數(shù)據(jù)的泄漏以及功能異常。

      3.2.4 混合攻擊

      目前Java智能卡產(chǎn)品均采用了多種安全加固機制,導致之前的邏輯攻擊技術(shù),如類型篡改、兼容性攻擊等失效。對于這種情況,我們可以結(jié)合物理攻擊、旁路攻擊、邏輯篡改等智能卡攻擊技術(shù),修改或者監(jiān)聽程序處理邏輯,特別是對于Applet間數(shù)據(jù)交互過程和Applet裝載校驗過程,由于涉及到不同業(yè)務(wù)應(yīng)用,可能引起數(shù)據(jù)泄露。

      比如Applet程序經(jīng)過編譯、連接形成CAP安裝文件后,我們利用特殊工具增加類型篡改等惡意代碼,在進行卡上校驗時,由于最新Java智能卡均采用證書簽名等加固校驗技術(shù),正常情況下無法通過校驗。這里我們可以利用智能卡物理攻擊和旁路攻擊技術(shù),跟蹤并確定CAP校驗判定的位置,使指定位置的校驗判定結(jié)果反轉(zhuǎn),從而使惡意程序安裝到Java智能卡上,從而為進一步的攻擊做好鋪墊。

      需要說明的是,物理攻擊技術(shù)非常有效,但是成本較高,需要昂貴的儀器支撐;同時,操作較為復雜,需要掌握物理、化學和計算機等多種學科知識。

      4 結(jié)束語

      針對Java智能卡以及Applet防火墻的攻擊手段和方法種類繁多,如何全面、系統(tǒng)的評價Java智能卡以及Applet防火墻的安全是一個亟待解決的問題。本文從一致性、安全性評估角度對Applet防火墻的安全性進行脆弱性評估,并借鑒傳統(tǒng)信息安全產(chǎn)品的經(jīng)驗,提出建立攻擊知識庫和測試工具箱,收集常見的Java智能卡攻擊方法,形成較為完備的評估集合。

      目前相關(guān)的廠商和研究者也開發(fā)了相應(yīng)的工具和技術(shù),協(xié)助進行安全評估。比如Riscure公司開發(fā)的JCworkBench平臺能夠依據(jù)不同的智能卡標準對Java卡平臺的安全功能進行一致性評估;另外,針對類型篡改攻擊,目前很多研究是通過卡上攻擊來檢驗Java卡平臺的安全,Pietro Ferrara提出了一種Java卡Applet防火墻靜態(tài)分析工具,在卡外就可判斷Applet防火墻的安全性[13]。

      由于針對Java智能卡以及Applet防火墻的安全評估工具主要由國外廠商提供,對外依賴度較高,因此國內(nèi)相關(guān)的評估能力需要政府、廠商、相關(guān)檢驗機構(gòu)等多方面的努力。因此,隨著國家大力推進智慧城市建設(shè)以及相應(yīng)智能卡芯片更換的機遇,一方面要加快評估工具的研發(fā),特別是針對Applet防火墻的測評工具;同時加強智能卡芯片人才的培養(yǎng),從而進一步提高對國內(nèi)重要信息系統(tǒng)的安全保障能力。

      參考文獻

      [1] 張大偉,靳偉.Java智能卡原理與應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2008:5-100.

      [2] Marc WittemanJava Card Security[J],Information Security Bulletin,2003,8,291-298.

      [3] Massimiliano Zilli, Wolfgang Raschke, Reinhold Weiss, Christian Steger, Johannes Loinig. A light-weight compression method for Java card technology[J]. ACM SIGBED Review - Special Issue on the 4th Embedded Operating Systems Workshop (EWiLi 2014),2014,11(4):13-18.

      [4] Dawei Zhang, Zhen Han, Wei Jin. Optimized Java Card transaction mechanism based on object locality[C]. Proceedings of the 2010 ACM Symposium on Applied Computing.New York,USA:ACM,2010, 550-551.

      [5] Jip Hogenboom,Wojciech MostowskiFull Memory Read Attack on a Java Card[J],2009.https://wwwhome.ewi.utwente.nl/~mostowskiwi/papers/wissec2009.pdf.

      [6] Michael Lackner, Reinhard Berlach, Reinhold Weiss, Christian Steger.Countering type confusion and buffer overflow attacks on Java smart cards by data type sensitive obfuscation[C],CS2 '14 Proceedings of the First Workshop on Cryptography and Security in Computing SystemsPages. New York,USA:ACM, 2014, 19-24.

      [7] Wojciech Mostowski, Erik Poll Testing the Java Card Applet Firewall,http://www.cs.ru.nl/~erikpoll/papers/firewall2007.pdf.

      [8] Pietro Ferrara JAIL: Firewall Analysis of Java Card by Abstract Interpretation[J],Electronic Notes in Theoretical Computer Science,2006.

      [9] 王卓人,王峰. 智能卡大全[M].北京:電子工業(yè)出版社,2002.

      [10] Surender Reddy Adavalli Smart Card Solution: Highly secured Java Card Technology[J],2001.https://www.cs.auckland.ac.nz/courses/compsci725s2c/archive/termpapers/725adavalli.pdf.

      [11] Marc Witteman Advances in Smartcard Security[J], Information Security Bulletin,2002,11-22.

      [12] 劉嵩巖,毛志剛,葉以正.Java卡的研究與實現(xiàn)[J].2000,30(6),402-405.

      [13] Werner Dietl,Peter Muller,Arnd Poetzsch-HeffterA Type System for Checking Applet Isolation in Java Card,2005.

      https://softech.informatik.uni-kl.de/homepage/publications/Dietl.Mueller.Poetzsch-Heffter04typesystem.pdf.

      基金項目:

      上海市移動智能終端安全性測試公共服務(wù)平臺(上海市科學技術(shù)委員會2014年“科技創(chuàng)新行動計劃”專業(yè)技術(shù)服務(wù)平臺建設(shè)專項)(課題編號:14DZ2294400)。

      作者簡介:

      田曉鵬(1984-),男,漢族,河南偃師人,畢業(yè)于北京郵電大學,碩士研究生,中級檢驗員,助理研究員,參與國家發(fā)改委信息安全測評專項等;主要研究方向和關(guān)注領(lǐng)域:信息安全及相關(guān)檢測技術(shù)。

      楊元原(1981-),男,漢族,河南洛陽人,畢業(yè)于西安電子科技大學,博士研究生,高級檢驗員,助理研究員,作為牽頭人成功申報上海市智能卡等科研項目;主要研究方向和關(guān)注領(lǐng)域:信息安全及相關(guān)檢測技術(shù)。

      猜你喜歡
      安全評估一致性安全性
      兩款輸液泵的輸血安全性評估
      關(guān)注減污降碳協(xié)同的一致性和整體性
      公民與法治(2022年5期)2022-07-29 00:47:28
      新染料可提高電動汽車安全性
      注重教、學、評一致性 提高一輪復習效率
      IOl-master 700和Pentacam測量Kappa角一致性分析
      OA系統(tǒng)安全評估體系及策略制定
      通信鐵塔安全快速評估軟件的設(shè)計與實現(xiàn)
      移動通信(2016年20期)2016-12-10 09:35:43
      ApplePay橫空出世 安全性遭受質(zhì)疑 拿什么保護你,我的蘋果支付?
      基于事件觸發(fā)的多智能體輸入飽和一致性控制
      民用飛機系統(tǒng)功能危險性評估
      軟件導刊(2015年8期)2015-09-18 12:45:17
      山阴县| 永德县| 建始县| 萝北县| 铜梁县| 淮北市| 瓮安县| 二手房| 苗栗市| 安新县| 沙田区| 永清县| 博白县| 蒙城县| 本溪市| 尼勒克县| 屏东县| 高雄县| 都兰县| 芒康县| 定州市| 丰台区| 甘洛县| 民乐县| 琼海市| 扶风县| 汉沽区| 广汉市| 子洲县| 新昌县| 铁力市| 陵水| 慈溪市| 衡阳市| 安徽省| 定边县| 曲靖市| 布尔津县| 宝丰县| 慈利县| 河北省|