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

基于Fuzzy-IBE的Android防惡意代碼注入方案

2016-03-15 02:15:50張悅,鄭東,張應輝
桂林電子科技大學學報 2016年1期

?

基于Fuzzy-IBE的Android防惡意代碼注入方案

引文格式: 張悅,鄭東,張應輝.基于Fuzzy-IBE的Android防惡意代碼注入方案[J].桂林電子科技大學學報,2016,36(1):39-43.

張悅,鄭東,張應輝

(西安郵電大學 無線網絡安全技術國家工程實驗室,西安710121)

摘要:為了防范Android惡意代碼的注入,提升APK的安全性,抵御對其認證文件的碰撞攻擊,基于Fuzzy-IBE設計了一種Android防惡意代碼注入方案。該方案利用APK自身的多個資源文件作為APK的屬性信息,并將屬性進行Hash處理,映射為Fuzzy-IBE的解密私鑰,防止了惡意攻擊者對APK的注入,同時優化了應用程序的內部結構,減少了應用的體積。實驗結果表明,該方案對于防止惡意代碼注入是有效的。

關鍵詞:智能移動端;Fuzzy-IBE;Android;惡意代碼注入;Android簽名

時至今日,Android系統日趨鼎盛,由其衍生的操作系統百花齊放,隨之而來的是數不勝數的應用程序。除了Google公司提供給用戶的基礎應用,各個硬件廠商也定制了個性化的應用,與自己的硬件捆綁銷售;另一方面,第三方應用市場也不愿錯過這樣的好機會,紛紛開發出自己的應用平臺,上架自己的應用。應用市場里有著如此數量龐大、琳瑯滿目的應用,卻缺乏規范化、統一的管理,使得惡意軟件有了可乘之機,用戶稍不小心,就會“中招”,造成隱私泄露和經濟損失。惡意軟件常用的伎倆之一就是利用反編譯技術[1-2]將其本身注入[3]到正常的應用中,致使應用感染病毒。用戶安裝了帶有病毒的應用之后,程序仍能執行其本來的功能,但惡意軟件卻悄悄地開了后門,做著危害用戶權益的行為。

數字簽名[4]是一種防止數據偽造、篡改的方案,包括簽名算法和驗證算法。一般來說,數據發布者用自己的私鑰對數據進行簽名,數據接收者用發布者的公鑰來驗證接收數據的簽名,以確保數據的來源可信。Android系統內置了簽名驗證機制,未簽名的安裝包(APK)無法安裝到手機上[5]。但Android系統的簽名機制還不完善[6],首先其依賴于RSA的安全性,而隨著科技的進步,針對RSA的攻擊方法越來越多;其次,APK需要耗費額外的存儲資源進行驗證文件的存儲,并且隨著多次Hash和簽名的進行,Hash值并非與資源文件直接關聯,而是與資源文件的Hash值關聯,這樣難免會使得安全性在一定程度上打折扣。鑒于此,設計了一種基于Fuzzy-IBE的防惡意代碼注入方案,可有效地防止惡意代碼的注入,提升APK的安全性,同時優化了APK結構,減小了APK的體積。

1知識鋪墊

1.1安卓安全性相關知識

1.1.1安卓APK包解析

APK其實際是一個壓縮格式的文件。解壓后的APK如圖1所示。

圖1 APK解壓Fig.1 APK decompression

現對重要的文件目錄及文件作簡單說明:

1)assets為外部資源目錄,包含程序運行過程中可能用到的外部引用;

2)lib為外部引入的資源庫,如開源框架jar文件,NDK編譯的so庫;

3)META-INF目錄存放檢驗相關文件,是安卓簽名保障的核心所在;

4)res為資源文件目錄,其中包括圖片、色彩描述、尺寸映射描述信息;

5)AndroidManifest.xml為程序全局配置文件;

6)classes.dex為編譯后的二進制資源文件,程序的代碼編譯集成在此文件。

通過AndroidManifest.xml文件中Application節點下的PackageName可識別APK。如在安裝APK的PackageInstaller時,會對APK的包名進行檢查,包名相同的2個程序會被認作同一個APK。實際上,手機不會校驗APK內部結構以及資源上的差異,而僅僅對APK的包名進行標識,以確定是否為同一個APK。

1.1.2安卓簽名機制

Android應用的簽名機制,主要目的是對APK的完整性和唯一性進行校驗。簽名過程如下:

1)將APK中所有的資源文件進行SHA-1運算,并將得到的摘要用Base64進行格式規整,寫入MANIFEST.MF文件,一同寫入的還有應用程序版本、簽名版本等信息。

2)將得到的MANIFEST.MF文件用RSA-SHA-1算法進行Hash,同時將MANIFEST.MF文件中的每個消息摘要再進行一次摘要,寫入CERT.SF文件。

3)用開發者私鑰將CERT.SF文件簽名,與公鑰一起寫入CERT.RSA文件。安裝時,驗證簽名的過程則相反,首先從CERT.RSA文件中獲取公鑰信息,并驗證簽名信息,若驗證成功,繼續對包內所含文件進行Hash,然后從相應的文件中提取Hash值和二次Hash值,如全部相同,則允許安裝,否則終止安裝。

這種驗證方式一定程度上能保證安裝包的可靠性。因為APK的本質是一個壓縮文件包,若將APK改名為ZIP,便可用常用的解壓軟件將APK解壓縮,若無簽名機制的保護,則任何人都可以隨意更改其中的資源文件和代碼段。但此簽名方式存在以下缺點:

1)核心算法采用的是RSA算法。其作為一個20世紀70年代提出的算法,隨著科技的發展,計算能力的不斷提升,已失去其安全性。雖然最直接的攻擊方法是分解大整數,但可利用效率更高的算法去攻擊RSA算法,其中具有代表性的是差分算法[7]。

2)過程繁瑣且存在安全隱患。需對資源文件進行2次Hash后才能簽名,這對計算資源造成了一定程度的浪費。更重要的是,在Hash計算過程中,可能存在安全隱患,已有很多針對Hash函數的攻擊算法,如生日攻擊[8]。但目前大多數的算法攻擊,只是一種碰撞攻擊,文獻[9]闡述了Android簽名主要的Hash算法SHA-1的碰撞攻擊。若原文件Hash值為H(A),攻擊者將含有惡意意圖的文件進行一定的加工,使其Hash值也為H(A),可達到偽造證書、惡意代碼植入、欺騙簽名的目的。根據碰撞攻擊的原理,惡意攻擊者替換資源文件后,若能基于偽造文件的Hash值,通過添加冗余無用的資源文件的方法,對原來的CERT.SF文件的Hash值作一次碰撞,重新生成一個CERT.SF文件,使得該文件的Hash值與原文件的H(A)相同,便可達到欺騙系統校驗的目的。

3)該方式使用了MANIFEST.MF、CERT.SF、CERT.RSA三個文件用于保存驗證信息,對存儲資源造成了一定的浪費。

1.1.3安卓惡意代碼注入

惡意代碼注入的原理如下:

1)準備好一段惡意代碼,這段惡意代碼可以僅僅是一個模塊,也可以是一個具有完整流程的惡意應用。

2)將一個正常的APK反編譯處理成smali代碼,或將惡意代碼模塊進行反編譯,得到smali代碼。smali代碼相當于java代碼與.dex可執行文件之間的中間代碼。

3)通過機器分析后,得到合適的注入點,將惡意代碼模塊的啟動點插入到注入點,并進行編譯,編譯成功后,進行簽名。惡意代碼注入過程如圖2所示。

圖2 惡意代碼注入過程Fig.2 The injection process of malicious code

圖3為Eclipse開發軟件中DDMS工具顯示的正常應用注入成功的后臺日志截圖。通過惡意代碼注入后,游戲“憤怒的小鳥”變成了一款可以向指定服務器匯報短信內容的惡意應用。

圖3 正常應用注入成功的后臺日志Fig.3 Running log after injection

1.2Fuzzy-IBE介紹

2005年Sahai等[10]首次提出了模糊身份加密(fuzzy identity-based encryption,簡稱Fuzzy-IBE)的概念,證明了其安全性,并對應用場景做了相應的描述。Fuzzy-IBE要求用密鑰生成算法對一個集合中的元素(該集合中每個元素關聯一個屬性)生成公私鑰對,然后將私鑰通過保密信道發送給用戶,用戶間傳遞信息時,首先分享者根據接收者的屬性對信息進行加密,為了確保接收者可以成功解密,加密選擇的屬性與接收者本身的屬性交集要大于一個指定的閥值,若未達到該閥值,則不能解密。

設G1為一個以素數p為階的雙線性群[11],g為生成元,e:G1×G2→G2是一個雙線性運算:

為拉格朗日參數,其中S為素數的集合。

具體算法描述如下:

1)初始化。主要用于生成系統主密鑰,隨機選擇ti作為屬性的私鑰,對應的公鑰為

2)私鑰生成。已知屬性集合ω?U,任意選擇一個d-1維多項式q,使得q(0)=y,可得用戶的私鑰為Di(i∈ω)=gq(i)/ti。

4)解密。若|ω∩ω′|≥d,則利用拉格朗日插值公式可計算:

2方案設計

方案的核心思想是將APK中的每個資源看作APK的屬性,用屬性加密APK的核心校驗數據。該方案共有3個參與者。

1)系統。主要職責是生成主要的參數及屬性對應的私鑰,校驗APK的合法性。

2)開發者。向系統提交自己的APK,證明自己是該APK的開發者。

3)用戶。提交APK的屬性給系統,系統向其返回屬性對應私鑰。用戶得到私鑰后,解密對應的APK,加載至系統。

2.1方案描述

1)初始化開發者與系統的管理密鑰。由開發者和系統共同執行,開發者生成一個APK,遞交給系統,系統隨機生成一個管理密鑰y,并公開系統公鑰Y=e(g,g)y。

2)屬性生成。該算法由用戶或者開發者執行,用于生成APK對應的屬性參數。APK中所有的資源文件和配置文件都可看作該APK的屬性,所以對所有APK內部文件(除了classes.dex文件之外的資源文件和配置文件),進行一次Hash計算,并將計算所得的Hash值作一次數值上的轉換。假設除去classes.dex文件之外的文件共有n個,Hash算法會將任意長度的二進制值映射為固定長度的較小二進制值,通過二進制轉十進制的方法,把該二進制值轉換為十進制數字,用ti,i∈n表示,其中n為所有屬性的個數。

3)APK加密。由開發者和系統協同執行。若是第1次加密APK,開發者會選擇隨機值s,并將其保存。s將作為開發者的口令,用以向系統證明身份。開發者將該s與APK一同發給系統,系統中有一個數據庫,保存著APK的包名和對應開發者的s。系統首先會進行一次檢索操作,檢索APK的包名,因APK的包名是唯一確定的,系統檢索到該APK包名后,會進一步對比開發者提供的s與包名對應的s是否相同,若相同則允許加密,否則,拒絕對APK進行加密。在APK所有屬性中,classes.dex文件包含了所有的代碼段,無疑是最重要的屬性之一,因此選擇該文件作為被加密的源文件。將classes.dex文件用M表示,系統結合生成的屬性,將ti作

映射后所得的密鑰對M作屬性加密,加密后的結果為:

4)驗證階段。由系統與用戶合作執行。用戶調用生成的APK屬性,同時向系統請求解密私鑰。系統執行如下操作:任意選擇一個n-1維多項式q,使得q(0)=y,得到私鑰Di(i∈n)=gq(i)/ti,將APK的所有屬性生成對應的私鑰;然后將私鑰返回給用戶,用戶根據所得的私鑰對APK進行解密,若解密后成功加載,證明該APK未被篡改,也未被注入。解密過程同Fuzzy-IBE。

2.2方案的攻擊情況分析

1)替換的資源不包括classes.dex文件。在傳輸過程中,若有用戶對APK進行拆包操作,并替換了某些文件,屬性值就會相應地減少,根據Fuzzy-IBE中的解密公式,將不能用拉格朗日插值公式對其進行恢復,因而無法解密。

2)替換的資源包括classes.dex文件。若惡意開發者替換了包括classes.dex文件的所有資源,然后要對APK進行一次加密操作,就必須知道開發者的口令s,因為每個APK的包名與s唯一對應,若要開發一個包名相同的APK包,必須擁有s,否則,會提示加密操作失敗。此時,該惡意開發者只能重新選擇一個s′,其開發的應用便完全成了另外一個應用,不能達到注入的目的。

3)惡意開發者冒充用戶,若要獲取開發者的s,可以對應用進行解密操作,但整個解密過程無法獲知s。雖然密文M和返回的私鑰都包含s信息,但根據雙線性Diffie-Hellman假設,無法從這2個信息中恢復出s。

4)系統開發者要對APK進行功能上的新增,只需向系統提供自身的口令s,便可對APK進行加密操作,重新生成功能新增的APK。

3方案的優勢

1)采用Fuzzy-IBE替換了原方案中的RSA,而目前針對RSA還沒有好的攻擊方案,這從理論上保證了其安全性。

2)增加了碰撞攻擊的實施難度。若APK中的某個資源被替換,惡意開發者就必須通過碰撞來模擬一個資源。相應地,若開發者替換的資源越多,攻擊者就必須付出更多的時間和精力來構建相同的Hash碰撞,從而增大了碰撞攻擊的實施難度。

3)采用APK本身資源的Hash作為加密密鑰,不必額外占用數個文件保存APK的認證信息,使得APK結構更為簡單,體積更為小巧。

4)有效地防止了攻擊者惡意代碼的注入。

4安全性分析

由于該方案的核心是對Fuzzy-IBE的變形操作,算法的安全性依賴于Fuzzy-IBE的安全性,而Fuzzy-IBE在選擇身份攻擊模型下被證明是安全的[10]。選擇身份攻擊模型要求攻擊者在攻擊之前就確定被挑戰的身份。對于此類算法的安全性分析,一般由一個思維游戲來進行。

該思維游戲將該方案規約到改進的雙線性Diffie-Hellman(modified bilinear Diffie-Hellman,簡稱MBDH)數學難題上。游戲有攻擊者、模擬者和挑戰者3個參與者,假如攻擊者可以在選擇身份模型下,攻破挑戰者的方案,則模擬者就可以利用攻擊者在攻擊過程中得到的信息,以不可忽略的概率解決MBDH數學難題。Fuzzy-IBE在該選擇身份攻擊下的安全模型表述如下。

1)初始化。攻擊者申明自己要攻擊的身份,記為α*。

2)建立階段。挑戰者運行建立階段的算法,告訴攻擊者公開參數和系統管理密鑰。

4)挑戰。攻擊者傳遞2個等長的挑戰明文m0、m1給挑戰者,讓挑戰者用模糊身份α*對2個明文中的1個進行加密,加密后的密文記為cb,b∈{0,1}。

5)階段二。重復階段一。

6)猜測。攻擊者對加密后的密文進行猜測,輸出猜測的結果b′∈{0,1},若b=b′,即攻擊者通過密文猜對其是由哪個明文加密所得,攻擊者獲勝。

在選擇身份攻擊模型下,文獻[10]證明了算法是安全的,即攻擊者在概率多項式時間內,贏得此思維游戲的概率很小,可以忽略。

5結束語

利用Fuzzy-IBE設計了一種Android防惡意代碼注入方案。該方案可有效地防止惡意代碼的注入,并使得應用結構更為簡單,體積更為小巧。但該方案仍存在一些缺陷:在開發者與系統交互信息時,s與APK是以明文的方式直接提交到系統,在這個過程中,若有惡意開發者對信息進行竊聽,并獲取開發者的身份標識s,就有可能冒充開發者對APK進行注入,而且當開發者每次生成一個APK時,都要向系統提供該s。如何保障s在傳遞過程中的安全性,盡可能減少s的傳遞次數,是今后研究的重點。

參考文獻:

[1]陳凱明,劉宗田.反編譯研究現狀及其進展[J].計算機科學,2001,28(5):113-115.

[2]徐尤華,熊傳玉.Android應用的反編譯[J].電腦與信息技術,2012,20(1):50-51.

[3]黃超,王菲飛.Android應用程序的惡意代碼靜態注入[J].保密科學技術,2014(1):41-45.

[4]鄭東,趙慶蘭,張應輝.密碼學綜述[J].西安郵電大學學報,2013,18(6):1-10.

[5]雷靈光,張中文,王躍武,等.Android系統代碼簽名驗證機制的實現及安全性分析[J].信息網絡安全,2012(8):61-63.

[6]吳文煥.Android應用程序數字簽名機制研究[J].軟件,2014(2):109-110.

[7]田軍艦,寇應展,陳財森,等.RSA公鑰密碼算法差分計時攻擊研究[J].計算機工程,2011,37(5):146-148.

[8]劉美,王玉柱,何定養,等.SHA-512算法及其基于生日攻擊的安全性分析[J].后勤工程學院學報,2010,26(3):92-96.

[9]WANG X,YIN Y L,YU H.Finding collisions in the full SHA-1[C]//Proceedings of the 25th Annual International Conference on Advances in Cryptology.Heidelberg:Springer,2005:17-36.

[10]SAHAI A,WATERS B.Fuzzy Identity-Based Encryption[M]//Advances in Cryptology-EUROCRYPT 2005.Heidelberg:Springer,2005:457-473.

[11]王海艷,徐明明.基于雙線性映射和屬性證書的遠程證明方案[J].計算機技術與發展,2012,22(1):233-237.

編輯:張所濱

An Android anti-malware injection scheme based on Fuzzy-IBE

ZHANG Yue, ZHENG Dong, ZHANG Yinghui

(National Engineering Laboratory for Wireless Security, Xi’an University of Posts and Telecommunications, Xi’an 710121, China)

Abstract:In order to prevent the injection of Android malicious code, improve the security of APK and resist the impact of the authentication file, An Android anti-malware injection scheme based on fuzzy-IBE is designed, the scheme uses APK’s own multiple resource file as APK attribute information, the property is processed by Hash and mapped into Fuzzy-IBE decryption key for preventing the application of malicious attackers effectively. The internal structure of the application is optimized, the size of the application is reduced. The experimental results show that the scheme is effective for anti-malware injection.

Key words:mobile intelligent terminal; Fuzzy-IBE; Android; malware injection; digital signature of Android

中圖分類號:TP309.2

文獻標志碼:A

文章編號:1673-808X(2016)01-0039-05

通信作者:鄭東(1964-),男,山西翼城人,教授,博士,研究方向為密碼學、云存儲安全。E-mail:zhengdong@xupt.edu.cn

基金項目:國家自然科學基金(61272037,61402366,61472472);陜西省自然科學基礎研究計劃(2013JZ020,2015JQ6236);陜西省教育廳科研計劃(15JK1686);西安郵電大學研究生創新基金(CXL2014-04)

收稿日期:2015-09-11

主站蜘蛛池模板: 女人18毛片水真多国产| 97se亚洲综合| 国产极品美女在线播放| 欧美成人精品高清在线下载| 最新亚洲av女人的天堂| 91精品久久久久久无码人妻| 亚洲欧美精品在线| 国产成人一区免费观看| 国产精品免费电影| 国产h视频免费观看| 婷婷色一二三区波多野衣| 亚洲无码不卡网| 国产精品无码翘臀在线看纯欲| 亚洲熟女中文字幕男人总站| 婷婷色中文| 波多野结衣在线一区二区| 国产一二三区在线| 色婷婷亚洲综合五月| 人妻精品久久久无码区色视| 成年午夜精品久久精品| h视频在线观看网站| 亚洲美女一区| 亚洲成网站| 国产亚洲欧美在线人成aaaa| 国产精品yjizz视频网一二区| 中国黄色一级视频| 香蕉99国内自产自拍视频| 久久精品一品道久久精品| 色偷偷男人的天堂亚洲av| 国产一二三区视频| a毛片在线| jizz在线免费播放| 色天天综合久久久久综合片| 国产在线欧美| 91久久精品国产| 亚洲一级毛片免费看| 国产在线视频自拍| 丁香六月激情综合| 亚洲精品欧美日本中文字幕| 成年片色大黄全免费网站久久| Jizz国产色系免费| 91丝袜乱伦| 国产丝袜啪啪| 亚洲国产中文欧美在线人成大黄瓜| 色婷婷综合激情视频免费看| 免费高清毛片| 永久在线精品免费视频观看| 亚洲精品无码不卡在线播放| 欧美精品成人| 精品视频一区二区三区在线播| 丁香五月亚洲综合在线 | 色综合久久综合网| av天堂最新版在线| 国产精品分类视频分类一区| 幺女国产一级毛片| 9966国产精品视频| 色吊丝av中文字幕| 欧美有码在线观看| 欧美不卡视频一区发布| 免费va国产在线观看| 99热国产这里只有精品无卡顿" | 午夜日韩久久影院| 国产91丝袜| 久久99精品久久久久久不卡| lhav亚洲精品| 午夜国产精品视频黄| 99久久精彩视频| 亚洲天堂精品在线观看| 国产超碰在线观看| 色综合久久无码网| 国产综合在线观看视频| 人妻中文字幕无码久久一区| 欧美视频在线观看第一页| 亚洲天堂网在线播放| 在线观看91精品国产剧情免费| 成年看免费观看视频拍拍| 97狠狠操| 欧美亚洲国产一区| 九色综合伊人久久富二代| 人妻无码AⅤ中文字| 99er精品视频| 亚洲乱码在线播放|