• 
    

    
    

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

      安卓敏感數(shù)據(jù)和能力的訪問控制增強(qiáng)機(jī)制研究

      2016-09-08 10:32:11韓偉力
      關(guān)鍵詞:訪問控制安卓聯(lián)系人

      王 蔚 周 韜 韓偉力

      (復(fù)旦大學(xué)軟件學(xué)院 上海 201203)

      ?

      安卓敏感數(shù)據(jù)和能力的訪問控制增強(qiáng)機(jī)制研究

      王蔚周韜韓偉力

      (復(fù)旦大學(xué)軟件學(xué)院上海 201203)

      安卓設(shè)備中的敏感數(shù)據(jù)和感知能力面臨嚴(yán)重安全威脅?,F(xiàn)有的安全機(jī)制主要從應(yīng)用層實(shí)施粗粒度訪問控制,無法有效保護(hù)用戶敏感數(shù)據(jù)和設(shè)備感知能力。為此,提出基于密碼學(xué)和細(xì)粒度安全策略驅(qū)動(dòng)的安卓敏感數(shù)據(jù)和能力訪問控制增強(qiáng)機(jī)制。首先,結(jié)合密鑰管理和細(xì)粒度加密策略,利用高強(qiáng)度對(duì)稱加密算法對(duì)敏感數(shù)據(jù)進(jìn)行加密,解決敏感數(shù)據(jù)的安全存儲(chǔ)問題;其次,應(yīng)用基于細(xì)粒度安全策略的訪問控制機(jī)制,從安卓平臺(tái)層控制感知能力的訪問權(quán)限,實(shí)現(xiàn)感知數(shù)據(jù)保護(hù)的目的。通過原型系統(tǒng)和性能測(cè)試,提出的安卓敏感數(shù)據(jù)和能力的訪問控制增強(qiáng)機(jī)制可以運(yùn)行在當(dāng)前安卓平臺(tái)上,并且性能是可接受的。

      安卓安全訪問控制細(xì)粒度隱私保護(hù)

      0 引 言

      近年來,安卓智能手機(jī)的全球市場(chǎng)份額大幅攀升[1],大量的安全問題也不斷顯現(xiàn)。安卓的安全體系通過權(quán)限機(jī)制控制第三方應(yīng)用程序?qū)Χ绦?、?lián)系人、感知設(shè)備等敏感資源的訪問。然而,由于粗粒度的權(quán)限控制,使用者和開發(fā)者通常為了更好地用戶體驗(yàn)而希望獲得更多權(quán)限,從而導(dǎo)致系統(tǒng)的安全機(jī)制直接失效,安卓設(shè)備也因此面臨了更多安全威脅。其中,惡意代碼植入、權(quán)限擴(kuò)大攻擊等帶來的惡意收費(fèi)、竊聽、位置泄露等安全事件頻發(fā)。這些用戶敏感信息的泄漏問題,給安卓系統(tǒng)安全帶來了巨大的挑戰(zhàn)。

      1 研究背景

      1.1國(guó)內(nèi)外研究現(xiàn)狀

      國(guó)內(nèi)外的研究人員在安卓權(quán)限管理上做了大量的研究。Bugiel等人研究發(fā)現(xiàn)權(quán)限的過度請(qǐng)求違反了最少權(quán)限法則,從而帶來隱私泄露和財(cái)產(chǎn)損失的隱患[2]。此外,Schlegel等人對(duì)權(quán)限擴(kuò)大攻擊進(jìn)行了研究,發(fā)現(xiàn)惡意應(yīng)用程序可以通過和其他應(yīng)用程序協(xié)作,在沒有顯式請(qǐng)求的情況下訪問敏感資源[3]。

      研究人員在隱私數(shù)據(jù)保護(hù)方面也做了大量研究。Rayarikar等人在安卓系統(tǒng)上實(shí)現(xiàn)了一個(gè)對(duì)短信進(jìn)行加密的應(yīng)用程序,采用AES算法對(duì)數(shù)據(jù)進(jìn)行加解密[4]。吳劍華等人通過黑白名單的方式,實(shí)現(xiàn)對(duì)隱私數(shù)據(jù)的授權(quán)訪問以及對(duì)進(jìn)程的實(shí)時(shí)監(jiān)控[5]。

      此外,常見的系統(tǒng)保護(hù)軟件,如騰訊手機(jī)管家等,它們將隱私數(shù)據(jù)文件隱藏在磁盤的隱藏空間中,使得惡意軟件或攻擊者無法得到,以達(dá)到防止數(shù)據(jù)泄露的目的。但在該解決方案中,文件本身并沒有加密,所以仍存在明文獲取、隱私泄露的風(fēng)險(xiǎn)。

      1.2研究?jī)?nèi)容和意義

      面對(duì)大量的安卓安全威脅,研究者們已經(jīng)做了大量的研究,但這些研究大多停留在粗粒度控制上,用戶不能對(duì)資源進(jìn)行自定義的保護(hù)配置。畢竟,在實(shí)際應(yīng)用場(chǎng)景中,我們并不需要對(duì)整個(gè)磁盤或者整個(gè)數(shù)據(jù)庫(kù)進(jìn)行加密操作。此外,由于缺乏對(duì)感知來源的控制,麥克風(fēng)等感知來源可能被惡意程序調(diào)用,從而獲取用戶的敏感數(shù)據(jù),造成用戶隱私數(shù)據(jù)的泄露。

      基于以上問題,本文提出基于安卓系統(tǒng)的訪問控制增強(qiáng)機(jī)制。通過對(duì)聯(lián)系人和短信數(shù)據(jù)進(jìn)行細(xì)粒度加密,實(shí)現(xiàn)隱私數(shù)據(jù)的保護(hù)。同時(shí),本文采用權(quán)限阻斷的方式,對(duì)感知來源數(shù)據(jù)進(jìn)行保護(hù)。最后,本文通過性能實(shí)驗(yàn)驗(yàn)證了保護(hù)機(jī)制的可用性和可靠性。本文主要貢獻(xiàn)如下:1) 設(shè)計(jì)并實(shí)現(xiàn)了隱私數(shù)據(jù)加解密框架,保護(hù)自定義字段的數(shù)據(jù),避免全加密對(duì)系統(tǒng)造成的性能負(fù)擔(dān)。2) 設(shè)計(jì)了權(quán)限阻斷機(jī)制,在不同的應(yīng)用場(chǎng)景中完成對(duì)權(quán)限的授予和阻斷,從而保護(hù)感知來源數(shù)據(jù)。

      2 相關(guān)理論與技術(shù)

      2.1安卓體系結(jié)構(gòu)

      安卓系統(tǒng)的體系結(jié)構(gòu)由4個(gè)層次組成:應(yīng)用程序?qū)?、?yīng)用程序框架層、Android的運(yùn)行時(shí)和系統(tǒng)庫(kù)、Linux內(nèi)核層[6]。

      應(yīng)用程序?qū)犹峁┝嘶镜膽?yīng)用程序包。該層由一個(gè)或多個(gè)不同的組件組成:活動(dòng)、服務(wù)、廣播接收器和內(nèi)容提供商。應(yīng)用程序不一定包含全部組件,但必須至少有一個(gè)活動(dòng)呈現(xiàn)圖形用戶界面。應(yīng)用程序框架層是應(yīng)用開發(fā)的基礎(chǔ),該層包括了活動(dòng)管理器、窗口管理器等10個(gè)部分。應(yīng)用程序框架為不同目的(如電源管理、資源處理、窗口管理)提供管理器。應(yīng)用程序應(yīng)該使用管理器的服務(wù),而不是直接使用底層的函數(shù)庫(kù)。這種方式使得通過沙盒式權(quán)限系統(tǒng)對(duì)管理器強(qiáng)制實(shí)施應(yīng)用程序權(quán)限變?yōu)榭赡?。系統(tǒng)庫(kù)和Android運(yùn)行時(shí)中,系統(tǒng)庫(kù)包含了9個(gè)子系統(tǒng),運(yùn)行時(shí)由Dalvik 虛擬機(jī)和 Java 核心庫(kù)組成[7]。Linux內(nèi)核是安卓核心系統(tǒng)服務(wù)的重要依賴。安卓使用的內(nèi)核是 Linux 2.6系列內(nèi)核,并被修改以滿足電源管理、內(nèi)存管理和運(yùn)行時(shí)環(huán)境中的特殊需要。

      2.2安卓系統(tǒng)訪問控制模型

      訪問控制是一種顯式的準(zhǔn)許或限制主體對(duì)客體訪問能力及范圍的方法[8]。訪問控制通過限制關(guān)鍵資源的訪問,防止非法用戶的入侵,從而保證系統(tǒng)資源的合法使用。安卓對(duì)應(yīng)用程序和數(shù)據(jù)的訪問控制主要通過兩種機(jī)制的結(jié)合,一種為L(zhǎng)inux內(nèi)核安全機(jī)制,另一種為安卓特有的安全機(jī)制。

      (1) Linux內(nèi)核安全機(jī)制

      Linux操作系統(tǒng)提供了認(rèn)證和訪問控制機(jī)制。首先, root用戶作為超級(jí)用戶能對(duì)系統(tǒng)的所有資源做最大限度的調(diào)整,還可以允許或禁止其他用戶對(duì)系統(tǒng)的訪問[9]。其次,文件系統(tǒng)是Linux系統(tǒng)安全的核心。安卓系統(tǒng)中的文件也受制于此文件權(quán)限機(jī)制。Linux系統(tǒng)中的文件使用了文件讀寫許可機(jī)制,不同的用戶對(duì)不同的文件具有各自的讀、寫和執(zhí)行權(quán)限。此外,Linux將許多系統(tǒng)功能視作偽文件,所以文件訪問機(jī)制也能有效地對(duì)驅(qū)動(dòng)、硬件傳感器、音頻設(shè)備等進(jìn)行訪問控制。

      (2) 安卓特有安全機(jī)制

      訪問控制的核心是授權(quán)策略。授權(quán)策略是用于確定一個(gè)主體能否對(duì)客體擁有訪問能力的一套規(guī)則。訪問控制模型定義了主體、客體、訪問規(guī)則是如何表示和操作的,它決定了授權(quán)策略的表達(dá)能力和靈活性。安卓利用權(quán)限機(jī)制控制應(yīng)用程序?qū)γ舾匈Y源的訪問,每個(gè)權(quán)限代表了針對(duì)系統(tǒng)資源的一個(gè)或者一組操作許可,具有細(xì)粒度的安全特征[10]。

      應(yīng)用程序默認(rèn)沒有任何權(quán)限,它必須在自己的配置文件AndroidManifest.xml中用uses-permission標(biāo)簽聲明自己所需要的權(quán)限,才可以使用某個(gè)系統(tǒng)資源或者訪問某些數(shù)據(jù)[11]。安卓約有130條內(nèi)置權(quán)限分別對(duì)應(yīng)了系統(tǒng)中的設(shè)備、功能以及數(shù)據(jù)等的訪問權(quán)限[12],應(yīng)用程序也可以定義額外的權(quán)限。此外,權(quán)限有四個(gè)保護(hù)級(jí)別[13]:正常、危險(xiǎn)、簽名、簽名或系統(tǒng)。

      安卓應(yīng)用程序還使用了數(shù)字簽名機(jī)制對(duì)應(yīng)用程序安裝包進(jìn)行數(shù)字簽名,以對(duì)應(yīng)用程序開發(fā)者進(jìn)行身份合法性認(rèn)證,防止惡意應(yīng)用開發(fā)者替換合法應(yīng)用程序。此外,文件簽名還可以確保安裝文件內(nèi)容的完整性和正確性[14]。

      最后,安卓系統(tǒng)實(shí)現(xiàn)了將不同應(yīng)用程序之間、進(jìn)程之間互相隔離。默認(rèn)情況下,應(yīng)用程序沒有權(quán)限訪問系統(tǒng)資源或其他應(yīng)用程序的資源。每個(gè)應(yīng)用程序和系統(tǒng)進(jìn)程都被分配唯一且固定的UserID。當(dāng)應(yīng)用程序需要共享數(shù)據(jù)或進(jìn)程時(shí),系統(tǒng)會(huì)驗(yàn)證程序的sharedUserID和簽名,如果結(jié)果相同,那么虛擬機(jī)認(rèn)定兩個(gè)應(yīng)用程序由相同開發(fā)者開發(fā),為兩個(gè)程序分配相同的User ID,以實(shí)現(xiàn)程序之間的數(shù)據(jù)和進(jìn)程共享[15]。

      3 威脅分析與代碼分析

      3.1安卓威脅分析

      (1) 開發(fā)者威脅

      來自開發(fā)者的基于權(quán)限的威脅主要分為過度授權(quán)和權(quán)限擴(kuò)大攻擊兩類。

      權(quán)限的過度請(qǐng)求是安卓安全中最大的問題之一。它違反了最少權(quán)限法則,給用戶帶來隱私泄露和財(cái)產(chǎn)損失的隱患[2]。例如一個(gè)請(qǐng)求了SEND_SMS短信發(fā)送權(quán)限的單機(jī)游戲,利用了不必要的短信發(fā)送權(quán)限在用戶不知情的情況下發(fā)送付費(fèi)短信。

      一般來說,惡意應(yīng)用程序造成的影響會(huì)受到安卓系統(tǒng)沙盒機(jī)制限制[16]。但權(quán)限擴(kuò)大攻擊允許惡意應(yīng)用程序和其他應(yīng)用程序相互協(xié)作從而在沒有顯式請(qǐng)求的情況下訪問敏感資源[3]。權(quán)限擴(kuò)大攻擊可以分為混淆代理攻擊和共謀攻擊。

      (2) root威脅

      安卓系統(tǒng)基于Linux系統(tǒng)。在Linux系統(tǒng)中,root用戶作為管理員用戶,可以訪問整個(gè)系統(tǒng)。在默認(rèn)設(shè)定下,使用者無法獲取root權(quán)限。然而在現(xiàn)實(shí)場(chǎng)景中,用戶有許多方法可以獲得root權(quán)限。root權(quán)限可以使用戶實(shí)現(xiàn)卸載自帶軟件,取消應(yīng)用權(quán)限,運(yùn)行防火墻等功能。然而,當(dāng)root被竊取后,安卓系統(tǒng)的最高權(quán)限也被授予,系統(tǒng)安全和用戶隱私將受到極大威脅。

      (3) 物理威脅

      安卓系統(tǒng)一般都以手機(jī)等智能設(shè)備作為載體,因此,也不可避免受到以下的物理威脅:儲(chǔ)存卡威脅、設(shè)備遺失或報(bào)廢威脅、傳感器威脅等。

      通常情況下,手機(jī)存儲(chǔ)卡上的數(shù)據(jù)是不會(huì)被加密的。儲(chǔ)存卡讀取成為竊取用戶隱私的方便途徑。攻擊者可通過運(yùn)行相關(guān)程序,獲得存儲(chǔ)卡上的明文數(shù)據(jù)。設(shè)備遺失或報(bào)廢會(huì)導(dǎo)致數(shù)據(jù)的機(jī)密性受到威脅。惡意用戶可以利用用戶遺失或報(bào)廢的設(shè)備獲取存儲(chǔ)在手機(jī)中的數(shù)據(jù)。此外,手機(jī)是傳感器的集合體。研究學(xué)者發(fā)現(xiàn),手機(jī)的震動(dòng)功能、麥克風(fēng)、定位系統(tǒng)均存在威脅漏洞,用戶也因此會(huì)面臨更復(fù)雜更嚴(yán)重的攻擊。

      3.2訪問控制代碼分析

      (1) 數(shù)據(jù)庫(kù)表結(jié)構(gòu)分析

      安卓系統(tǒng)中聯(lián)系人和短信數(shù)據(jù)存儲(chǔ)在SQLite數(shù)據(jù)庫(kù)中。SQLite是一個(gè)存儲(chǔ)效率高、查詢快、運(yùn)行時(shí)占用內(nèi)存小且能被多個(gè)進(jìn)程同時(shí)訪問的開源數(shù)據(jù)庫(kù)。SQLite本身沒有提供任何安全控制機(jī)制,只要用戶得到數(shù)據(jù)庫(kù)文件或訪問數(shù)據(jù)庫(kù)的權(quán)限[17],便能夠讀取這些信息,也直接導(dǎo)致了用戶的隱私數(shù)據(jù)泄露。

      通過研究,我們發(fā)現(xiàn)安卓系統(tǒng)中聯(lián)系人數(shù)據(jù)庫(kù)contacts2.db存放在/data/data/com.android.providers.contacts/databases路徑下。為了獲取對(duì)該數(shù)據(jù)庫(kù)的訪問,第三方應(yīng)用需申請(qǐng)READ_CONTACTS和WRITE_CONTACTS權(quán)限。聯(lián)系人數(shù)據(jù)庫(kù)主要涉及到三個(gè)表:contacts、raw_contacts和data。其中,contact表保存了所有聯(lián)系人信息,具體字段包括聯(lián)系人編號(hào)、聯(lián)系次數(shù)、是否有電話號(hào)碼等。Raw_contacts表存儲(chǔ)了聯(lián)系人的詳細(xì)信息包括顯示名稱、昵稱、是否被刪除等。Data表存儲(chǔ)了所有創(chuàng)建過的聯(lián)系人的詳細(xì)信息。通過相關(guān)分析可知,本文需要對(duì)三個(gè)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行選擇性加密即可實(shí)現(xiàn)聯(lián)系人數(shù)據(jù)的細(xì)粒度保護(hù)機(jī)制。

      另一方面,安卓系統(tǒng)中的短信數(shù)據(jù)庫(kù)mmssms.db存放在/data/data/com.android.providers.telephone/databases路徑下。第三方應(yīng)用需申請(qǐng)READ_SMS、WRITE_SMS、SEND_SMS等權(quán)限以獲取訪問短信數(shù)據(jù)庫(kù)文件的權(quán)限。數(shù)據(jù)庫(kù)mmssms.db中包含所有與短信有關(guān)的表結(jié)構(gòu)。其中sms表用于存儲(chǔ)短信內(nèi)容、短信屬性、重要字段的描述等。此外,person字段指向了contacts表中的聯(lián)系人編號(hào),body字段描述了短信的內(nèi)容。在這兩個(gè)字段的基礎(chǔ)上。本文實(shí)現(xiàn)了添加聯(lián)系人并選擇是否對(duì)短信內(nèi)容進(jìn)行加密的細(xì)粒度保護(hù)機(jī)制。

      (2) 權(quán)限檢查分析

      安卓操作系統(tǒng)中的權(quán)限檢查模塊主要針對(duì)系統(tǒng)服務(wù)的訪問控制策略。安卓系統(tǒng)提供約30項(xiàng)以特權(quán)用戶的身份運(yùn)行的系統(tǒng)服務(wù),包括管理應(yīng)用程序、提供位置信息、提供藍(lán)牙連接和管理用戶賬戶等重要功能[18]。權(quán)限檢查模塊允許開發(fā)者利用權(quán)限保護(hù)服務(wù)的單個(gè)方法而不是整個(gè)服務(wù),以實(shí)現(xiàn)對(duì)服務(wù)的細(xì)粒度的訪問控制。例如,checkPermission可用于判斷給定的進(jìn)程和用戶是否被賦予某條權(quán)限。

      4 訪問控制增強(qiáng)模塊需求與設(shè)計(jì)

      如圖1所示,為文本設(shè)計(jì)的訪問控制增強(qiáng)系統(tǒng)的總體架構(gòu)圖。該架構(gòu)旨在實(shí)現(xiàn)對(duì)安卓設(shè)備三個(gè)功能模塊的訪問控制,即:聯(lián)系人管理模塊、短信管理模塊和感知來源控制模塊。為了更好地實(shí)現(xiàn)訪問控制增強(qiáng)模塊,本文采用了策略管理和密鑰管理兩個(gè)機(jī)制。在策略管理機(jī)制下,用戶可以指定修改聯(lián)系人、短信的加密策略以及對(duì)于感知來源的細(xì)粒度控制策略;在密鑰管理機(jī)制下,用戶可以通過密鑰機(jī)制實(shí)現(xiàn)對(duì)隱私數(shù)據(jù)的安全保護(hù)。

      圖1 安卓訪問控制增強(qiáng)系統(tǒng)總體架構(gòu)圖

      4.1聯(lián)系人管理模塊

      聯(lián)系人管理是訪問控制增強(qiáng)系統(tǒng)中的重要部分,其主要特點(diǎn)為:在加密策略的驅(qū)動(dòng)下,對(duì)聯(lián)系人數(shù)據(jù)進(jìn)行加密操作,以保護(hù)聯(lián)系人數(shù)據(jù)的安全性。本系統(tǒng)主要實(shí)現(xiàn)了聯(lián)系人的查看、添加、刪除和搜索的功能。

      用戶通過點(diǎn)擊按鈕進(jìn)行相關(guān)的聯(lián)系人操作。例如,用戶點(diǎn)擊聯(lián)系人信息添加按鈕,系統(tǒng)需要從聯(lián)系人管理模塊獲取聯(lián)系人密鑰,然后獲取聯(lián)系人加解密策略,最后根據(jù)該策略將聯(lián)系人信息中需要加密的字段加密處理并存儲(chǔ)。

      由于安卓系統(tǒng)并沒有考慮聯(lián)系人數(shù)據(jù)的加解密問題,因此,本文增加了一個(gè)名為encryptdata的數(shù)據(jù)表記錄數(shù)據(jù)加解密狀態(tài)信息。由于本方案為細(xì)粒度加密,系統(tǒng)需要維護(hù)數(shù)據(jù)庫(kù)中每個(gè)字段的加密策略,因此encryptdata表和data表相對(duì)應(yīng),并通過字段的比特值表示加密狀態(tài),其中,1表示信息已加密。

      4.2短信管理模塊

      短信管理實(shí)現(xiàn)了加解密策略驅(qū)動(dòng)下短信的接受、發(fā)送、刪除和搜索的功能。在訪問控制增強(qiáng)機(jī)制中,系統(tǒng)通過對(duì)短信的加解密來保證短信操作的安全性和機(jī)密性。用戶通過策略管理機(jī)制制定短信加解密策略,并將安全管理策略存儲(chǔ)在策略庫(kù)中。

      當(dāng)設(shè)備接收到新短信時(shí),短信管理模塊會(huì)將其存儲(chǔ)于短信數(shù)據(jù)庫(kù)中。此時(shí),對(duì)策略庫(kù)的檢索會(huì)被觸發(fā),系統(tǒng)會(huì)獲取對(duì)應(yīng)發(fā)件人的短信加密規(guī)則。系統(tǒng)成功驗(yàn)證用戶的短信密鑰后,會(huì)選擇對(duì)該短信進(jìn)行加密保存或者直接保存。同樣,當(dāng)用戶在安卓設(shè)備上撰寫新的短信并點(diǎn)擊發(fā)送后,本模塊會(huì)驗(yàn)證收件人是否屬于短信加密列表,并進(jìn)行加密儲(chǔ)存。此外,針對(duì)密文的短信搜索和刪除服務(wù)均需建立在驗(yàn)證密鑰的前提下進(jìn)行。

      4.3感知來源控制模塊

      感知來源控制模塊在應(yīng)用框架層對(duì)安卓設(shè)備的感知來源進(jìn)行細(xì)粒度權(quán)限設(shè)置。本系統(tǒng)的感知來源控制模塊主要實(shí)現(xiàn)了感知權(quán)限的狀態(tài)設(shè)置和感知場(chǎng)景的新建、修改和刪除的功能。

      首先,用戶進(jìn)入感知權(quán)限設(shè)置界面設(shè)置感知權(quán)限狀態(tài)。感知來源的狀態(tài)可設(shè)置為開啟或者關(guān)閉,且立即生效。其次,在預(yù)置場(chǎng)景中,用戶可以新建、修改、刪除感知場(chǎng)景。用戶點(diǎn)擊新建或修改按鈕后,可在感知來源列表中設(shè)置感知來源的狀態(tài),并輸入名稱、保存該場(chǎng)景。此外,用戶可直接選擇相應(yīng)的感知來源場(chǎng)景快捷地對(duì)系統(tǒng)的感知來源進(jìn)行相應(yīng)權(quán)限的保護(hù)。

      應(yīng)用程序訪問感知設(shè)備,需要經(jīng)過框架層、Linux內(nèi)核層和設(shè)備驅(qū)動(dòng)程序三個(gè)層次。因此,本系統(tǒng)要實(shí)現(xiàn)對(duì)感知設(shè)備的訪問控制,可以在這三個(gè)層次中分別插入策略執(zhí)行點(diǎn)。策略執(zhí)行點(diǎn)截獲應(yīng)用程序訪問感知設(shè)備的請(qǐng)求,向策略決策點(diǎn)請(qǐng)求訪問決策(即允許或拒絕),并按收到的訪問決策執(zhí)行。

      5 訪問控制增強(qiáng)機(jī)制實(shí)現(xiàn)

      5.1策略管理機(jī)制

      策略管理機(jī)制用于管理聯(lián)系人和短信的加解密策略以及感知來源的控制策略,聯(lián)系人和短信根據(jù)加解密策略選擇明文或密文加載,感知設(shè)備也根據(jù)權(quán)限策略而設(shè)定是否可用。

      策略文件包含policyset、policy、rule的三層結(jié)構(gòu)。其中,前者元素可包含一至多條的后者元素,同時(shí)policyset可以內(nèi)嵌零至多條的policyset。如圖2所示為一個(gè)policy.xml的源文件,系統(tǒng)的策略編輯器通過操作策略文件完成對(duì)加密選項(xiàng)的選擇。

      圖2 策略實(shí)現(xiàn)圖

      用戶通過策略編輯器選擇對(duì)聯(lián)系人、短信進(jìn)行加密,選擇后status發(fā)生改變,從初始狀態(tài)0變?yōu)榧用軤顟B(tài)1。后臺(tái)通過讀取policy.xml中對(duì)應(yīng)status值,選擇對(duì)聯(lián)系人、短信進(jìn)行加密。這樣的設(shè)計(jì)實(shí)現(xiàn)了基于場(chǎng)景的安全策略設(shè)置,降低了安卓用戶敏感數(shù)據(jù)的訪問控制策略設(shè)置的復(fù)雜度。

      本文實(shí)現(xiàn)了系統(tǒng)中的聯(lián)系人策略管理配置界面,用戶可以選擇將聯(lián)系人的字段分別加密,生成策略文件。當(dāng)用戶存儲(chǔ)聯(lián)系人信息時(shí),系統(tǒng)會(huì)查看當(dāng)前的策略文件,對(duì)需要加密的字段進(jìn)行加密并存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中。這樣即使第三方應(yīng)用獲取了對(duì)聯(lián)系人數(shù)據(jù)的訪問權(quán)限,由于底層數(shù)據(jù)庫(kù)中的數(shù)據(jù)是密文存儲(chǔ)的,也只能獲取到密文信息,通過這樣的方式,可以避免隱私數(shù)據(jù)的泄露。

      5.2密鑰管理機(jī)制

      (1) 初始化密鑰

      系統(tǒng)在初始化過程中,需要進(jìn)行密鑰初始化工作,以設(shè)置對(duì)聯(lián)系人數(shù)據(jù)和短信數(shù)據(jù)進(jìn)行加解密操作所需的系列密鑰。

      初始化安卓設(shè)備時(shí),用戶輸入初始口令,密鑰管理模塊使用SHA-256算法對(duì)初始口令進(jìn)行加密后保存,并生成相應(yīng)加密密鑰。此外,系統(tǒng)使用SHA-256算法加密初始口令、聯(lián)系人特定字段和安卓設(shè)備號(hào)后取前128位作為聯(lián)系人應(yīng)用的密鑰;使用SHA-256算法加密初始口令、短信特定字段、安卓設(shè)備號(hào)后后取前128位作為短信應(yīng)用的密鑰。

      (2) 信息加解密

      在本系統(tǒng)中,聯(lián)系人、短信加解密均使用AES算法。

      在聯(lián)系人信息管理模塊中,用戶在策略管理點(diǎn)制定聯(lián)系人加解密策略,并存儲(chǔ)在策略庫(kù)中。當(dāng)用戶新建聯(lián)系人并保存數(shù)據(jù)時(shí),聯(lián)系人模塊會(huì)觸發(fā)對(duì)策略庫(kù)的檢索,以獲取聯(lián)系人的加密規(guī)則。系統(tǒng)成功驗(yàn)證用戶的聯(lián)系人密鑰后,依據(jù)加密規(guī)則加密聯(lián)系人的數(shù)據(jù),并將密文數(shù)據(jù)保存于聯(lián)系人數(shù)據(jù)庫(kù)中。同樣,當(dāng)用戶試圖查看聯(lián)系人信息時(shí),聯(lián)系人模塊觸發(fā)對(duì)策略庫(kù)的檢索,獲取聯(lián)系人的加密規(guī)則,成功驗(yàn)證聯(lián)系人密鑰后,解密聯(lián)系人的數(shù)據(jù),并最終顯示聯(lián)系人的明文信息。

      在短信管理模塊中,用戶在策略管理點(diǎn)制定短信加解密策略并存儲(chǔ)在策略庫(kù)中。當(dāng)安卓設(shè)備接收到一條短信時(shí),存儲(chǔ)過程會(huì)觸發(fā)對(duì)策略庫(kù)的檢索。系統(tǒng)獲取發(fā)件人的短信加密規(guī)則,并成功驗(yàn)證用戶的短信密鑰后,會(huì)選擇對(duì)該短信進(jìn)行加密或者直接保存。同樣,當(dāng)用戶試圖查看短信箱內(nèi)的短信時(shí),短信模塊會(huì)觸發(fā)對(duì)策略庫(kù)的檢索,獲取相應(yīng)的加密規(guī)則。系統(tǒng)成功驗(yàn)證短信密鑰后,會(huì)解密短信數(shù)據(jù),并最終顯示短信的明文信息。

      5.3感知來源控制的實(shí)現(xiàn)

      (1) 安卓應(yīng)用框架層實(shí)現(xiàn)

      針對(duì)感知設(shè)備的權(quán)限保護(hù),本系統(tǒng)修改了權(quán)限檢查模塊,通過插入策略執(zhí)行點(diǎn),使得在權(quán)限檢查時(shí),合法的感知設(shè)備請(qǐng)求一律返回PERMISSION_DENIED 參數(shù)。在本訪問控制增強(qiáng)機(jī)制中,選擇了在訪問控制層進(jìn)行感知設(shè)備的控制。這種做法具有實(shí)現(xiàn)復(fù)雜度低、覆蓋全部API、兼容性強(qiáng)的優(yōu)點(diǎn)。

      具體實(shí)現(xiàn)如圖3所示,通過在加入以下具有下劃線的代碼片,使得系統(tǒng)在檢查名稱為android.permission.CAMERA的權(quán)限時(shí),一律返回PERMISSION_DENIED參數(shù)。

      圖3 應(yīng)用框架層代碼修改

      (2) 安卓Linux內(nèi)核層實(shí)現(xiàn)

      感知來源的權(quán)限控制還可以通過Linux內(nèi)核層實(shí)現(xiàn)。對(duì)Linux內(nèi)核來說,應(yīng)用程序在安裝完成時(shí)會(huì)被分配一個(gè)唯一的用戶ID,并以該用戶ID運(yùn)行。對(duì)于安卓系統(tǒng)權(quán)限,應(yīng)用程序被授予后,其用戶ID也被加入該權(quán)限的用戶組。例如應(yīng)用程序被授予CAMERA權(quán)限后,其用戶ID就成為camera用戶組的成員。在安卓應(yīng)用框架層的訪問控制機(jī)制中,粒度為整個(gè)外置存儲(chǔ)設(shè)備,而在Linux內(nèi)核層,普通文件的訪問控制粒度為單個(gè)文件。因此,對(duì)大部分感知設(shè)備的訪問,應(yīng)用框架層由權(quán)限進(jìn)行控制,Linux內(nèi)核層則由用戶ID和組ID機(jī)制進(jìn)行控制,在兩個(gè)層次的控制粒度都是對(duì)感知設(shè)備整體的訪問。

      SELinux (Security Enhanced Linux) 為L(zhǎng)inux內(nèi)核提供了強(qiáng)制訪問控制機(jī)制。SELinux對(duì)所有進(jìn)程、對(duì)象和操作實(shí)施系統(tǒng)級(jí)的安全策略,并實(shí)現(xiàn)了策略指定和策略實(shí)施邏輯的分離。例如,一個(gè)具有標(biāo)簽app_t應(yīng)用程序被授予訪問具有的標(biāo)簽microphone_t麥克風(fēng)的權(quán)限,策略管理模塊會(huì)新建一條允許app_t讀取和獲得microphone_t屬性的規(guī)則的策略,但不包括寫入、刪除和修改microphone_t的擁有者信息的權(quán)限。由于在SELinux中,默認(rèn)情況下所有訪問都被拒絕,沒有策略規(guī)則顯式允許訪問microphone_t的應(yīng)用程序?qū)o法訪問麥克風(fēng)。

      5.4性能測(cè)試

      (1) 系統(tǒng)整體性能對(duì)比

      針對(duì)本文所涉及的訪問控制增強(qiáng)機(jī)制,本文將其和原生安卓系統(tǒng)進(jìn)行了性能對(duì)比。對(duì)比測(cè)試環(huán)境為四核智能手機(jī),內(nèi)存13231.8 MB且RAM值為1872.1 MB。如表1所示,為原生安卓4.2.2系統(tǒng)和兩種啟動(dòng)策略管理模塊的系統(tǒng)的部分性能對(duì)比結(jié)果。表中分?jǐn)?shù)為測(cè)試工具AnTuTu的評(píng)分結(jié)果。由該對(duì)比可知,基于應(yīng)用框架層的策略管理模塊具有少量的性能優(yōu)勢(shì)。

      表1 系統(tǒng)整體性能對(duì)比

      (2) 聯(lián)系人模塊性能橫向?qū)Ρ?/p>

      圖4顯示了策略模塊啟動(dòng)前后,添加200、400、600、800條聯(lián)系人信息得到的平均添加時(shí)間。其中,曲線1~4為啟動(dòng)了策略模塊的結(jié)果,曲線5、6沒有啟動(dòng)策略模塊。每條曲線代表的實(shí)驗(yàn)場(chǎng)景如圖4所示。

      圖4 聯(lián)系人模塊性能橫向?qū)Ρ葴y(cè)試結(jié)果(單位ms)

      曲線1:策略模塊啟動(dòng),驗(yàn)證口令正確,添加一個(gè)包含完整聯(lián)系人字段并且加密所有信息;

      曲線2:策略模塊啟動(dòng),驗(yàn)證口令正確,添加一個(gè)只有一個(gè)字段的聯(lián)系人并且加密該字段;

      曲線3:策略模塊啟動(dòng),驗(yàn)證口令錯(cuò)誤,添加一個(gè)包含完整聯(lián)系人字段并且加密所有信息;

      曲線4:策略模塊啟動(dòng),驗(yàn)證口令錯(cuò)誤,添加一個(gè)只有一個(gè)字段的聯(lián)系人并且加密該字段;

      曲線5:未啟動(dòng)策略模塊,添加一個(gè)完整字段的聯(lián)系人;

      曲線6:未啟動(dòng)策略模塊,添加一個(gè)單個(gè)字段的聯(lián)系人。

      由圖4可以得出以下結(jié)論:首先,從整體來看,啟動(dòng)策略模塊后添加聯(lián)系人的平均時(shí)間大于未啟動(dòng)策略模塊所需要的時(shí)間。然后,在策略模塊啟動(dòng)后,添加的聯(lián)系人越多,平均消耗的時(shí)間越多,而未啟動(dòng)策略模塊的情況下,添加聯(lián)系人所需要的平均時(shí)間與聯(lián)系人的數(shù)量無關(guān)。在啟動(dòng)策略模塊的情況下,加密的字段越多,即聯(lián)系人信息越復(fù)雜所消耗的平均時(shí)間越多。

      在啟動(dòng)策略模塊后,針對(duì)聯(lián)系人信息的加密,系統(tǒng)會(huì)執(zhí)行以下四步操作:驗(yàn)證用戶是否持有密鑰;加密;儲(chǔ)存加密特征;儲(chǔ)存聯(lián)系人。因此,對(duì)比未啟動(dòng)策略模塊的情況,額外的時(shí)間開銷來自前三步,這與圖4中的實(shí)驗(yàn)結(jié)果相吻合。此外,由于本文在數(shù)據(jù)庫(kù)中額外添加了表格記錄聯(lián)系人字段加密信息。隨著系統(tǒng)中的聯(lián)系人增加,數(shù)據(jù)庫(kù)操作所需的時(shí)間也會(huì)增加,故曲線1~4中平均消耗時(shí)間隨著添加聯(lián)系人的增加而增加。

      (3) 短信模塊性能橫向?qū)Ρ?/p>

      表2列出了在策略管理模塊啟動(dòng)前后發(fā)送一定條數(shù)的短信所消耗時(shí)間的對(duì)比。該時(shí)間從用戶按下發(fā)送按鈕到短信在數(shù)據(jù)庫(kù)插入一條記錄并進(jìn)入發(fā)送服務(wù)計(jì)算而得??梢钥闯觯踩呗阅K啟動(dòng)前后對(duì)短信模塊的性能也無明顯的影響。因此安卓系統(tǒng)訪問控制增強(qiáng)機(jī)制保證了短信模塊的性能。

      表2 短信模塊性能橫向?qū)Ρ?/p>

      (4) 感知源狀態(tài)控制性能評(píng)測(cè)

      本實(shí)驗(yàn)中,我們?cè)谕愣骨v上分別以“照相機(jī)”和“錄音機(jī)”為關(guān)鍵字進(jìn)行搜索,選取搜索結(jié)果中的前20個(gè)應(yīng)用進(jìn)行實(shí)驗(yàn),以測(cè)試感知源訪問攔截率。我們?cè)趩⒂昧吮疚脑O(shè)計(jì)的訪問控制增強(qiáng)機(jī)制的設(shè)備上安裝并運(yùn)行這些應(yīng)用程序。同時(shí)制定阻止應(yīng)用程序訪問感知設(shè)備的策略,并執(zhí)行這些應(yīng)用程序的主要功能,觀察和分析應(yīng)用程序?qū)Ω兄O(shè)備的訪問是否阻止,計(jì)算攔截各種感知設(shè)備的應(yīng)用程序的成功率和應(yīng)用程序崩潰率。

      從表3可以看出,應(yīng)用框架層的感知源狀態(tài)控制能完全阻止應(yīng)用程序?qū)溈孙L(fēng)的訪問,但是有10%的應(yīng)用程序能繞過控制訪問攝像頭。基于Linux內(nèi)核層的感知源狀態(tài)控制能同時(shí)完全阻止應(yīng)用程序?qū)溈孙L(fēng)和攝像頭的訪問。同時(shí),兩者的應(yīng)用程序崩潰率都在可以接受的范圍之內(nèi)。

      表3 感知源狀態(tài)控制測(cè)試結(jié)果

      6 結(jié) 語(yǔ)

      本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于安卓系統(tǒng)的訪問控制增強(qiáng)機(jī)制。該機(jī)制能夠?yàn)橛脩籼峁┟舾袛?shù)據(jù)如聯(lián)系人、短信等信息的細(xì)粒度保護(hù),解決安全存儲(chǔ)問題,同時(shí)通過對(duì)安卓權(quán)限的訪問控制實(shí)現(xiàn)對(duì)感知源的安全控制。最后,本文通過對(duì)比實(shí)驗(yàn)驗(yàn)證了加解密模塊對(duì)系統(tǒng)性能造成的時(shí)間開銷在用戶的可接受范圍內(nèi),同時(shí)也驗(yàn)證了對(duì)感知源的訪問控制增強(qiáng)機(jī)制的有效性。

      然而,雖然本文設(shè)計(jì)實(shí)現(xiàn)的安卓訪問控制增強(qiáng)機(jī)制能有效的防止隱私數(shù)據(jù)的泄露問題,但在日益增加的用戶體驗(yàn)需求和日益復(fù)雜的安卓威脅下,本文提出的方案仍有不足之處。在未來,首先我們希望提供一個(gè)更加友好的方式以處理安全性和易用性上的平衡關(guān)系。然后我們希望在感知源數(shù)據(jù)保護(hù)的應(yīng)用程序崩潰問題上有所改善。最后我們希望在下一步工作中將密鑰的存儲(chǔ)位置從本地文件中轉(zhuǎn)移到更為安全的存儲(chǔ)位置。

      [1] Fragkaki E,Bauer L,Jia L,et al.Modeling and enhancing Android’s permission system[M]//Computer Security-ESORICS 2012.Springer Berlin Heidelberg,2012:1-18.

      [2] Bugiel S,Davi L,Dmitrienko A,et al.Xmandroid: A new android evolution to mitigate privilege escalation attacks[R].Technische Universit?t Darmstadt,Technical Report TR-2011-04,2011.

      [3] Schlegel R,Zhang K,Zhou X,et al.Soundcomber:A Stealthy and Context-Aware Sound Trojan for Smartphones[C]//NDSS.2011,11:17-33.

      [4] Rayarikar R,Upadhyay S,Pimpale P.SMS encryption using AES Algorithm on Android[J].International Journal of Computer Applications,2012,50(19):12-17.

      [5] 吳劍華,莫蘭芳,李湘.Android用戶隱私保護(hù)系統(tǒng)[J].信息網(wǎng)絡(luò)安全,2012(9):50-53.

      [6] 蔣紹林,王金雙,張濤,等.Android安全研究綜述[J].計(jì)算機(jī)應(yīng)用與軟件,2012,29(10):205-210.

      [7] Yan L K,Yin H.DroidScope:Seamlessly Reconstructing the OS and Dalvik Semantic Views for Dynamic Android Malware Analysis[C]//USENIX Security Symposium,2012:569-584.

      [8] 任海鵬.訪問控制模型研究現(xiàn)狀及展望[J].計(jì)算機(jī)與數(shù)字工程,2013,41(3):452-456.

      [9] 孫悅,張妹,李京平,等.基于Linux操作系統(tǒng)文件權(quán)限的設(shè)置[J].計(jì)算機(jī)安全,2008(3):36-38.

      [10] 諸姣,李宏偉,彭鑫,等.安卓應(yīng)用系統(tǒng)的功能與權(quán)限相關(guān)性研究[J].計(jì)算機(jī)應(yīng)用與軟件,2014,31(10):27-33.

      [11] Shin W,Kiyomoto S,Fukushima K,et al.Towards formal analysis of the permission-based security model for android[C]//Wireless and Mobile Communications,2009.ICWMC’09.Fifth International Conference on.IEEE,2009:87-92.

      [12] 劉志偉.Android操作系統(tǒng)安全性增強(qiáng)方案的設(shè)計(jì)與實(shí)現(xiàn)[D].西北大學(xué),2012.

      [13] 雷靈光,張中文,王躍武,等.Android系統(tǒng)代碼簽名驗(yàn)證機(jī)制的實(shí)現(xiàn)及安全性分析[J].信息網(wǎng)絡(luò)安全,2012(8):61-63.

      [14] 伊鵬翔.Dalvik虛擬機(jī)結(jié)構(gòu)與性能的研究[D].吉林:吉林大學(xué),2011.

      [15] Nauman M,Khan S.Design and implementation of a fine-grained resource usage model for the android platform[J].Int.Arab J.Inf.Technol.,2011,8(4):440-448.

      [16] Miller C.Mobile attacks and defense[J].Security & Privacy,IEEE,2011,9(4):68-70.

      [17] Owens M,Allen G.SQLite[M].Apress LP,2010.

      [18] Saltzer J H.Protection and the control of information sharing in Multics[J].Communications of the ACM,1974,17(7):388-402.

      ON ACCESS CONTROL ENHANCEMENT MECHANISM FOR SENSITIVE DATA AND CAPACITIES IN ANDROID

      Wang WeiZhou TaoHan Weili

      (SoftwareSchool,FudanUniversity,Shanghai201203,China)

      Sensitive data and perception capacities in Android devices face severe security threats. Current security mechanism cannot efficiently protect the sensitive data of users and perception capacity of devices, because it only provides a coarse-grained access control on application level. Therefore, this paper proposes an access control enhancement mechanism for sensitive data and capacities in Android, which is based on cryptography and fine-grained security policy drive. First, with the help of key management and fine-grained encryption policy, it leverages a high-strength symmetric encryption algorithm to encrypt the sensitive data and this solves the secure storage problem of sensitive data; Then, the mechanism leverages a fine-grained security policy-based access control mechanism to control the access privilege of perception capacities on layer of Android platform to reach the goal of perception data protection. Through prototype system and performance testing, the proposed access control enhancement mechanism for sensitive data and capacity of Android is able to operate on current Android platform with acceptable performance.

      Android securityAccess controlFine-grainedPrivacy protection

      2015-03-09。國(guó)家“核高基”科技重大專項(xiàng)課題基金項(xiàng)目(2012ZX01039-004-20)。王蔚,碩士生,主研領(lǐng)域:安卓安全,物聯(lián)網(wǎng)追溯安全。周韜,碩士生。韓偉力,副教授。

      TP309

      A

      10.3969/j.issn.1000-386x.2016.08.067

      猜你喜歡
      訪問控制安卓聯(lián)系人
      讓重要聯(lián)系人更醒目
      為每個(gè)聯(lián)系人設(shè)定不同的鈴聲
      電腦愛好者(2019年5期)2019-10-30 03:37:25
      文物表情包
      教你將手機(jī)聯(lián)系人導(dǎo)出到Excel
      ONVIF的全新主張:一致性及最訪問控制的Profile A
      一種基于安卓系統(tǒng)的手機(jī)側(cè)抓包分析方法
      動(dòng)態(tài)自適應(yīng)訪問控制模型
      淺析云計(jì)算環(huán)境下等級(jí)保護(hù)訪問控制測(cè)評(píng)技術(shù)
      大數(shù)據(jù)平臺(tái)訪問控制方法的設(shè)計(jì)與實(shí)現(xiàn)
      解決WP8.1手機(jī)聯(lián)系人顯示的問題
      红桥区| 玛曲县| 平昌县| 绥中县| 岳阳县| 合水县| 木兰县| 彝良县| 抚宁县| 梅河口市| 汝南县| 交城县| 凤庆县| 西和县| 昌都县| 绥中县| 彭阳县| 清远市| 青州市| 奉节县| 伊金霍洛旗| 正定县| 澎湖县| 凌源市| 灵山县| 焦作市| 柳江县| 陆丰市| 富川| 沐川县| 双牌县| 武鸣县| 桃江县| 竹溪县| 漯河市| 津市市| 凤冈县| 黄平县| 阳江市| 梧州市| 肥东县|