亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種應(yīng)用程序數(shù)據(jù)訪問隔離方法及裝置與流程

文檔序號:11729703閱讀:696來源:國知局
一種應(yīng)用程序數(shù)據(jù)訪問隔離方法及裝置與流程

本申請涉及數(shù)據(jù)訪問技術(shù),具體涉及一種應(yīng)用程序數(shù)據(jù)訪問隔離方法。本申請同時(shí)涉及一種應(yīng)用程序數(shù)據(jù)訪問隔離裝置。



背景技術(shù):

個人電腦、智能手機(jī)等終端設(shè)備已經(jīng)成為了人們生活中不可或缺的組成部分,這些終端設(shè)備上通常安裝有多個應(yīng)用程序,為人們提供天氣咨詢、購物、聊天、攝像、發(fā)送電子郵件等多種服務(wù)功能。各應(yīng)用程序通常會在文件系統(tǒng)的目錄中存儲與本程序運(yùn)行相關(guān)的數(shù)據(jù),應(yīng)用程序根據(jù)運(yùn)行的需求對所述數(shù)據(jù)進(jìn)行訪問。為了保證整個系統(tǒng)運(yùn)行的穩(wěn)定性及安全性,通常需要在不同的應(yīng)用程序之間提供數(shù)據(jù)訪問隔離機(jī)制。

其中,比較簡單易行的隔離機(jī)制是:應(yīng)用程序之間處于完全互相隔離的狀態(tài),即,每個應(yīng)用程序都只能訪問自己的數(shù)據(jù),而不能訪問其他應(yīng)用程序的數(shù)據(jù)。采用這種嚴(yán)格的隔離方案可以避免出現(xiàn)某些應(yīng)用程序惡意訪問其他應(yīng)用程序數(shù)據(jù)的情況,但在實(shí)際應(yīng)用中,部分應(yīng)用程序(例如相同廠家出品的某些互信應(yīng)用程序)之間又需要共享數(shù)據(jù),而嚴(yán)格的隔離機(jī)制,造成互信應(yīng)用程序之間的數(shù)據(jù)共享困難。

針對上述問題,某些系統(tǒng)允許部分應(yīng)用程序之間可以互訪數(shù)據(jù),例如安卓(android)系統(tǒng),其允許具有相同簽名的app(安裝在手機(jī)上的應(yīng)用程序)互相訪問數(shù)據(jù),例如:使用相同的私鑰簽署需要數(shù)據(jù)共享功能的app,然后使用manifest文件給這些app分配相同的用戶id,即uid,這些具有相同uid的app即可互相訪問數(shù)據(jù)、實(shí)現(xiàn)彼此之間的數(shù)據(jù)共享。android的隔離機(jī)制實(shí)際上是基于uid的隔離,其本質(zhì)是:相同作者的app可以互相訪問數(shù)據(jù)。

上述基于uid的隔離方案雖然在數(shù)據(jù)隔離的基礎(chǔ)上實(shí)現(xiàn)了部分app的數(shù)據(jù)共享,但是由于具有相同簽名這一強(qiáng)制性要求,維度單一,不夠靈活,限制了應(yīng)用程序數(shù)據(jù)訪問隔離的自由度,無法滿足實(shí)際應(yīng)用中相對復(fù)雜的應(yīng)用程序數(shù)據(jù)隔離需求。



技術(shù)實(shí)現(xiàn)要素:

本申請實(shí)施例提供一種應(yīng)用程序數(shù)據(jù)隔離方法,以解決現(xiàn)有的隔離方案過于簡單、無法滿足復(fù)雜的應(yīng)用程序數(shù)據(jù)隔離需求的問題。本申請實(shí)施例還提供一種應(yīng)用程序數(shù)據(jù)訪問隔離裝置。

本申請?zhí)峁┮环N應(yīng)用程序數(shù)據(jù)訪問隔離方法,包括:

接收第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求;

判斷第一應(yīng)用程序是否在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中;

若是,允許第一應(yīng)用程序執(zhí)行訪問操作,否則拒絕執(zhí)行訪問操作;

其中,每個應(yīng)用程序?qū)儆谝粋€域、并且具有標(biāo)識其所屬域的域?qū)傩?,屬于同一個域的應(yīng)用程序可以互相訪問數(shù)據(jù);不同域之間具有預(yù)先設(shè)定的層級關(guān)系、以及基于層級關(guān)系的應(yīng)用程序數(shù)據(jù)訪問規(guī)則。

可選的,應(yīng)用程序的域?qū)傩允遣捎萌缦路绞筋A(yù)先設(shè)置的:

在安裝應(yīng)用程序時(shí),根據(jù)安裝包攜帶的配置信息設(shè)置應(yīng)用程序的域?qū)傩浴?/p>

可選的,應(yīng)用程序的域?qū)傩允歉鶕?jù)預(yù)設(shè)規(guī)則預(yù)先設(shè)置的。

可選的,所述預(yù)先設(shè)定的層級關(guān)系包括:直接或者間接包含的父子域關(guān)系;

所述基于層級關(guān)系的應(yīng)用程序數(shù)據(jù)訪問規(guī)則包括:子域中的應(yīng)用程序可以訪問父域中的應(yīng)用程序的數(shù)據(jù),其他屬于不同域的應(yīng)用程序不可以互相訪問數(shù)據(jù)。

可選的,所述判斷第一應(yīng)用程序是否在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中,包括:

判斷第一應(yīng)用程序是否滿足以下數(shù)據(jù)訪問條件中的任意一項(xiàng):與第二應(yīng)用程序?qū)儆谕挥?,或者第一?yīng)用程序所屬域是第二應(yīng)用程序所屬域的子域;

若是,則判定所述第一應(yīng)用程序在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中,否則判定不在所述域中。

可選的,在所述接收第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求之前,執(zhí)行下述操作:

為各應(yīng)用程序分別分配唯一的應(yīng)用程序標(biāo)識,為預(yù)先設(shè)定的各域分別分配唯一的組,每個組具有唯一的組標(biāo)識;

為各應(yīng)用程序的數(shù)據(jù)指定相應(yīng)應(yīng)用程序所屬域?qū)?yīng)的組標(biāo)識;

將各應(yīng)用程序標(biāo)識添加到應(yīng)用程序所屬域?qū)?yīng)的組內(nèi)、以及所屬域的父域?qū)?yīng)的組內(nèi);

所述判斷第一應(yīng)用程序是否滿足數(shù)據(jù)訪問條件中的任意一項(xiàng),包括:

判斷第一應(yīng)用程序的標(biāo)識是否在被訪問數(shù)據(jù)的組標(biāo)識所對應(yīng)的組內(nèi);若在,則判定第一應(yīng)用程序滿足所述數(shù)據(jù)訪問條件中的任意一項(xiàng),否則判定不滿足。

可選的,所述方法在基于linux的軟件系統(tǒng)中運(yùn)行,所述應(yīng)用程序標(biāo)識為uid,所述組標(biāo)識為gid;

所述判斷第一應(yīng)用程序的標(biāo)識是否在被訪問數(shù)據(jù)的組標(biāo)識所對應(yīng)的組內(nèi),是利用linux的權(quán)限控制機(jī)制實(shí)現(xiàn)的。

可選的,所述應(yīng)用程序數(shù)據(jù)包括:在預(yù)先設(shè)定的、對應(yīng)于應(yīng)用程序的目錄中的數(shù)據(jù)。

可選的,在所述接收第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求之前,包括:

動態(tài)調(diào)整第一應(yīng)用程序和/或第二應(yīng)用程序的域?qū)傩浴?/p>

可選的,所述動態(tài)調(diào)整第一應(yīng)用程序和/或第二應(yīng)用程序的域?qū)傩裕ǎ?/p>

根據(jù)接收到的域?qū)傩哉{(diào)整指令,調(diào)整相應(yīng)應(yīng)用程序的域?qū)傩?;或者?/p>

根據(jù)預(yù)先設(shè)定的定時(shí)授權(quán)方案,調(diào)整相應(yīng)應(yīng)用程序的域?qū)傩浴?/p>

相應(yīng)的,本申請還提供一種應(yīng)用程序數(shù)據(jù)訪問隔離裝置,包括:

訪問請求接收單元,用于接收第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求;

權(quán)限判斷單元,用于判斷第一應(yīng)用程序是否在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中;

允許訪問單元,用于當(dāng)所述權(quán)限判斷單元的輸出為是時(shí),允許第一應(yīng)用程序執(zhí)行訪問操作;

拒絕訪問單元,用于當(dāng)所述權(quán)限判斷單元的輸出為否時(shí),拒絕第一應(yīng)用程序執(zhí)行訪問操作。

可選的,所述裝置包括:

第一域?qū)傩栽O(shè)置單元,用于在安裝應(yīng)用程序時(shí),根據(jù)安裝包攜帶的配置信 息設(shè)置應(yīng)用程序的域?qū)傩浴?/p>

可選的,所述裝置包括:

第二域?qū)傩栽O(shè)置單元,用于根據(jù)預(yù)設(shè)規(guī)則預(yù)先設(shè)置應(yīng)用程序的域?qū)傩浴?/p>

可選的,所述權(quán)限判斷單元,具體用于判斷第一應(yīng)用程序是否滿足以下數(shù)據(jù)訪問條件中的任意一項(xiàng):與第二應(yīng)用程序?qū)儆谕挥?,或者第一?yīng)用程序所屬域是第二應(yīng)用程序所屬域的子域;若是,則判定所述第一應(yīng)用程序在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中,否則判定不在所述域中。

可選的,所述裝置還包括在所述訪問請求接收單元之前觸發(fā)的下列單元:

應(yīng)用及組標(biāo)識分配單元,用于為各應(yīng)用程序分別分配唯一的應(yīng)用程序標(biāo)識,為預(yù)先設(shè)定的各域分別分配唯一的組,每個組具有唯一的組標(biāo)識;

數(shù)據(jù)標(biāo)識指定單元,用于為各應(yīng)用程序的數(shù)據(jù)指定相應(yīng)應(yīng)用程序所屬域?qū)?yīng)的組標(biāo)識;

應(yīng)用標(biāo)識添加單元,用于將各應(yīng)用程序標(biāo)識添加到應(yīng)用程序所屬域?qū)?yīng)的組內(nèi)、以及所屬域的父域?qū)?yīng)的組內(nèi);

所述權(quán)限判斷單元,具體用于判斷第一應(yīng)用程序的標(biāo)識是否在被訪問數(shù)據(jù)的組標(biāo)識所對應(yīng)的組內(nèi);若在,則判定所述第一應(yīng)用程序在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中,否則判定不在所述域中。

可選的,所述權(quán)限判斷單元,具體用于利用linux的權(quán)限控制機(jī)制,判斷第一應(yīng)用程序的標(biāo)識是否在被訪問數(shù)據(jù)的組標(biāo)識所對應(yīng)的組內(nèi)。

可選的,所述裝置包括:

域?qū)傩詣討B(tài)調(diào)整單元,用于在所述訪問請求接收單元工作之前,動態(tài)調(diào)整第一應(yīng)用程序和/或第二應(yīng)用程序的域?qū)傩浴?/p>

可選的,所述域?qū)傩詣討B(tài)調(diào)整單元,具體用于根據(jù)接收到的域?qū)傩哉{(diào)整指令,調(diào)整相應(yīng)應(yīng)用程序的域?qū)傩?;或者,根?jù)預(yù)先設(shè)定的定時(shí)授權(quán)方案,調(diào)整相應(yīng)應(yīng)用程序的域?qū)傩浴?/p>

與現(xiàn)有技術(shù)相比,本申請具有以下優(yōu)點(diǎn):

本申請?zhí)峁┑膽?yīng)用程序數(shù)據(jù)訪問隔離方法,在接收到第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求后,判斷第一應(yīng)用程序是否在對第二應(yīng)用程序數(shù)據(jù)具 有訪問權(quán)限的域中,若是,允許第一應(yīng)用程序執(zhí)行訪問操作,否則拒絕執(zhí)行訪問操作;其中,每個應(yīng)用程序?qū)儆谝粋€域、并且具有標(biāo)識其所述域的域?qū)傩?,屬于同一個域的應(yīng)用程序可以互相訪問數(shù)據(jù),不同域之間具有預(yù)先設(shè)定的層級關(guān)系、以及基于層級關(guān)系的應(yīng)用程序數(shù)據(jù)訪問規(guī)則。

本申請?zhí)峁┑纳鲜龇椒?,由于采用了基于域的、且具有層級關(guān)系的數(shù)據(jù)隔離方案,通過在不同域間設(shè)定基于層級的數(shù)據(jù)訪問規(guī)則,相當(dāng)于從多個維度實(shí)現(xiàn)數(shù)據(jù)隔離機(jī)制,能夠?yàn)閼?yīng)用程序提供合理的數(shù)據(jù)訪問權(quán)限,靈活地實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享。特別是在不同域之間引入基于直接或者間接包含的父子域關(guān)系,能夠清晰的構(gòu)建樹形共享關(guān)系,滿足非對稱的應(yīng)用程序數(shù)據(jù)訪問需求。

此外,如果需要改變應(yīng)用程序之間的數(shù)據(jù)訪問關(guān)系,只需要動態(tài)調(diào)整應(yīng)用程序的域?qū)傩约纯?,簡便易行,從而允許相同應(yīng)用程序在不同的系統(tǒng)中具有不同的數(shù)據(jù)訪問能力,以滿足實(shí)際應(yīng)用中的安全性需求。

附圖說明

圖1是本申請的一種應(yīng)用程序數(shù)據(jù)訪問隔離方法的實(shí)施例的流程圖;

圖2是本申請的一種應(yīng)用程序數(shù)據(jù)訪問隔離裝置的實(shí)施例的示意圖。

具體實(shí)施方式

在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請。但是,本申請能夠以很多不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請內(nèi)涵的情況下做類似推廣,因此,本申請不受下面公開的具體實(shí)施的限制。

在本申請中,分別提供了一種應(yīng)用程序數(shù)據(jù)隔離方法,以及一種應(yīng)用程序數(shù)據(jù)訪問隔離裝置,在下面的實(shí)施例中逐一進(jìn)行詳細(xì)說明。

本申請?zhí)峁┑膽?yīng)用程序數(shù)據(jù)訪問隔離方法,其核心在于:預(yù)先為每個應(yīng)用程序設(shè)定標(biāo)識其所屬域的域?qū)傩?、以及不同域間基于層級關(guān)系的數(shù)據(jù)訪問規(guī)則,在接收第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求時(shí),若第一應(yīng)用程序在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中,則允許第一應(yīng)用程序執(zhí)行訪問操作,否則不允許。

與單純基于相同uid的數(shù)據(jù)訪問隔離方案相比較,本申請的技術(shù)方案由于采用了基于域的、且具有層級關(guān)系的數(shù)據(jù)隔離方案,相當(dāng)于從多個維度實(shí)現(xiàn)數(shù)據(jù)隔離機(jī)制,能夠?yàn)閼?yīng)用程序提供合理的數(shù)據(jù)訪問權(quán)限,靈活地實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享。

本申請?zhí)峁┑膽?yīng)用程序數(shù)據(jù)訪問隔離方法,在具體實(shí)施時(shí),可以由獨(dú)立的服務(wù)提供方實(shí)施,應(yīng)用程序之間的數(shù)據(jù)訪問請求提交給所述服務(wù)提供方,由服務(wù)提供方判斷是否允許訪問;也可以由被訪問的應(yīng)用程序,即:數(shù)據(jù)提供方,在接收數(shù)據(jù)訪問請求后實(shí)施本方法進(jìn)行判斷,并根據(jù)本方法的判斷結(jié)果做出相應(yīng)的處理。下面對本申請的實(shí)施例進(jìn)行詳細(xì)說明。

請參考圖1,其為本申請的一種應(yīng)用程序數(shù)據(jù)訪問隔離方法的實(shí)施例的流程圖。在實(shí)施本申請?zhí)峁┑姆椒ㄖ?,可以先進(jìn)行域的劃分、設(shè)置不同域之間的層級關(guān)系和應(yīng)用程序數(shù)據(jù)訪問規(guī)則,并對應(yīng)用程序的域?qū)傩赃M(jìn)行設(shè)置。

本實(shí)施例所述的域,是指邏輯上的應(yīng)用程序集合,在具體實(shí)施時(shí),可以遵循某種預(yù)設(shè)規(guī)則進(jìn)行域的劃分,例如,可以根據(jù)應(yīng)用程序所隸屬的公司進(jìn)行域的劃分,即:將出自相同公司的應(yīng)用程序組成一個域;可以根據(jù)應(yīng)用程序的作者進(jìn)行域的劃分,即:將出自相同作者的應(yīng)用程序組成一個域;也可以根據(jù)應(yīng)用程序的功能進(jìn)行域的劃分,例如,將與支付相關(guān)的應(yīng)用程序組成一個域。在具體實(shí)施時(shí),還可以采用不同于上述方式的其他方式預(yù)先進(jìn)行域的劃分,本實(shí)施例不對具體的劃分方式進(jìn)行限定。

每個應(yīng)用程序?qū)儆谝粋€域,屬于同一個域的應(yīng)用程序可以互相訪問數(shù)據(jù),不同域之間具有預(yù)先設(shè)定的層級關(guān)系,以及基于層級關(guān)系的應(yīng)用程序數(shù)據(jù)訪問規(guī)則。在具體實(shí)施時(shí),可以根據(jù)具體需求為域設(shè)置層級屬性,并且預(yù)先設(shè)定處于不同層級、以及相同層級的域之間的數(shù)據(jù)訪問關(guān)系,例如:處于不同層級的域中的應(yīng)用程序不能互相訪問彼此的數(shù)據(jù),而處于相同層級的兄弟域中的應(yīng)用程序可以互相訪問彼此數(shù)據(jù)等。采用這種方式設(shè)置數(shù)據(jù)訪問規(guī)則,相當(dāng)于在域劃分這一維度的基礎(chǔ)上,增加了層級關(guān)系維度,從而可以從多個維度實(shí)現(xiàn)數(shù)據(jù)隔離機(jī)制,能夠?yàn)閼?yīng)用程序提供合理的數(shù)據(jù)訪問權(quán)限,靈活地實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享。

優(yōu)選地,本實(shí)施例提供基于父子域的優(yōu)選實(shí)施方式,即:不同域之間的層級關(guān)系包括:直接或者間接包含的父子域關(guān)系,相應(yīng)的,所述基于層級關(guān)系的 應(yīng)用程序數(shù)據(jù)訪問規(guī)則包括:子域中的應(yīng)用程序可以訪問父域中的應(yīng)用程序的數(shù)據(jù),其他屬于不同域的應(yīng)用程序之間不可以互相訪問數(shù)據(jù),其中包括父域中的應(yīng)用程序也不可以訪問子域中的應(yīng)用程序的數(shù)據(jù)。采用上述基于父子域的數(shù)據(jù)訪問規(guī)則,由于具有相同父域的子域中的應(yīng)用程序能夠通過父域共享數(shù)據(jù),從而能夠清晰的構(gòu)建樹形共享關(guān)系,同時(shí)由于父域中的應(yīng)用程序不可以訪問子域中的應(yīng)用程序數(shù)據(jù),因此可以滿足非對稱的應(yīng)用程序數(shù)據(jù)訪問需求。

需要說明的是,所述父子域關(guān)系可以是直接包含的、也可以是間接包含的。在本實(shí)施例中,將直接包含或者間接包含某一子域的域,稱為所述子域的父域,同樣的道理,將直接包含或者間接包含于某一父域的域,稱為所述父域的子域。例如,域b是域a的子域,域c是域b的子域,則域a直接包含域b、間接包含域c,那么對于域a來說,域b和域c都是其子域,對于域c來說,域a和域b都是其父域。本實(shí)施例重點(diǎn)描述基于父子域的優(yōu)選實(shí)施方式。

在本實(shí)施例中,每個應(yīng)用程序?qū)儆谇覂H屬于一個域,并且用域?qū)傩詷?biāo)識其所屬的域。每個應(yīng)用程序的域?qū)傩酝ǔJ穷A(yù)先設(shè)置好的,例如可以在安裝應(yīng)用程序時(shí)根據(jù)安裝包攜帶的配置信息設(shè)置應(yīng)用程序的域?qū)傩?,也可以采用預(yù)設(shè)規(guī)則進(jìn)行設(shè)置,或者結(jié)合上述兩類信息為應(yīng)用程序設(shè)置域?qū)傩浴?/p>

下面通過一個具體的例子,說明應(yīng)用程序域?qū)傩缘脑O(shè)置方式。在本例子中,每個應(yīng)用程序都有唯一的package信息,該信息可以從安裝包攜帶的配置信息中獲取,其構(gòu)成方式為:package=app.domain,其中,app為應(yīng)用程序的名稱,domain信息為可選的。進(jìn)行應(yīng)用程序域?qū)傩栽O(shè)置的預(yù)設(shè)規(guī)則為:首先根據(jù)規(guī)則表初步判斷應(yīng)用程序所屬的域,對于未在規(guī)則表中顯式指定的應(yīng)用程序、以及進(jìn)行初步判斷后的應(yīng)用程序,可以根據(jù)其唯一的package信息中包含的domain信息進(jìn)一步判斷其所屬的域。

例如:某系統(tǒng)預(yù)先劃分以下域:trust、pay、dom、sub、cc、g1、g2,其中trust和cc是處于同一層級的域,trust域是dom域、sub域以及pay域的父域,dom域是sub域的父域,cc域是g1域和g2域的父域;此外,在所述系統(tǒng)中已安裝了package信息分別如下所示的一系列應(yīng)用程序:a0.sub.dom、a1.sub.dom、a2.dom、b0、b1、f1.g1.cc、f2.g1.cc、f3.g2.cc、f4.cc。

預(yù)設(shè)規(guī)則表的語法為:所屬域名:[package=?],規(guī)則表的具體內(nèi)容為:

trust:package=a0.sub.dom

trust:package=a1.sub.dom

trust:package=a2.dom

trust.pay:package=b0

trust.pay:package=b1

根據(jù)上述預(yù)先設(shè)定的規(guī)則以及規(guī)則表,為每個應(yīng)用程序指定其所屬的域,得到如下所示的從屬關(guān)系,其中冒號后面為域直接包含的應(yīng)用程序的名稱。

trust:

--dom:a2

--sub:a0,a1

--pay:b0,b1

cc:f4

--g1:f1,f2

--g2:f3

通過上述方式確定每個應(yīng)用程序所屬的域,并相應(yīng)設(shè)置應(yīng)用程序的域?qū)傩?,例如a0應(yīng)用程序的域?qū)傩詾閟ub域。

上述給出了基于預(yù)設(shè)規(guī)則設(shè)置應(yīng)用程序域?qū)傩缘睦?,在具體實(shí)施時(shí),可以采用不同于上述方式的其他方式設(shè)置應(yīng)用程序的域?qū)傩浴?/p>

在為應(yīng)用程序設(shè)置域?qū)傩院?,可以?zhí)行本實(shí)施例的步驟101-步驟103,實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)訪問隔離。下面對各個步驟逐一進(jìn)行說明。

步驟101、接收第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求。

應(yīng)用程序?yàn)榱藢?shí)現(xiàn)其功能,通常會維護(hù)與本應(yīng)用程序運(yùn)行相關(guān)的應(yīng)用程序數(shù)據(jù),并在需要的時(shí)候訪問所述數(shù)據(jù),執(zhí)行讀寫操作等。應(yīng)用程序及其數(shù)據(jù)之間的對應(yīng)關(guān)系通常由承載應(yīng)用程序的系統(tǒng)負(fù)責(zé)維護(hù)。

所述應(yīng)用程序數(shù)據(jù)包括:在預(yù)先設(shè)定的、對應(yīng)于應(yīng)用程序的目錄中的數(shù)據(jù),以安卓系統(tǒng)為例,運(yùn)行于該系統(tǒng)中的每個應(yīng)用程序,都有預(yù)先設(shè)定的、與之對應(yīng)的應(yīng)用程序目錄(目錄名通常是應(yīng)用程序在androidmanifest.xml文件中定義的包的名稱),位于該目錄下的以數(shù)據(jù)文件形式承載的數(shù)據(jù),通常就稱為所述應(yīng)用程序的數(shù)據(jù)。

應(yīng)用程序通常對自己的數(shù)據(jù)具有絕對的訪問權(quán)限,但是不同應(yīng)用程序間的數(shù)據(jù)訪問則需要進(jìn)行必要的訪問隔離控制,當(dāng)?shù)谝粦?yīng)用程序發(fā)起訪問第二應(yīng)用程序數(shù)據(jù)的相關(guān)調(diào)用操作后,實(shí)施本方法的應(yīng)用程序或者系統(tǒng)就會接收到所述訪問請求。

步驟102、判斷第一應(yīng)用程序是否在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中,若是,執(zhí)行步驟103,否則,執(zhí)行步驟104。

本步驟可以根據(jù)第一應(yīng)用程序以及第二應(yīng)用程序的域?qū)傩?、以及預(yù)先設(shè)定的域內(nèi)及域間數(shù)據(jù)訪問規(guī)則,判斷第一應(yīng)用程序是否在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中。

對于采用了基于父子域的優(yōu)選實(shí)施方式,本步驟則可以判斷第一應(yīng)用程序是否滿足以下數(shù)據(jù)訪問條件中的任意一項(xiàng):與第二應(yīng)用程序?qū)儆谕挥?,或者第一?yīng)用程序所屬域是第二應(yīng)用程序所屬域的子域。只要滿足任意一項(xiàng),則說明第一應(yīng)用程序在對第二應(yīng)用程序具有訪問權(quán)限的域中。

優(yōu)選地,為了便于進(jìn)行上述判斷,在具體應(yīng)用中可以引入組的概念,并采用如下實(shí)施方式:在執(zhí)行本步驟之前:為各應(yīng)用程序分別分配唯一的應(yīng)用程序標(biāo)識(id),為預(yù)先設(shè)定的各域分別分配唯一的組(group),每個組具有唯一的組標(biāo)識(groupid),為各應(yīng)用程序的數(shù)據(jù)指定相應(yīng)應(yīng)用程序所屬域?qū)?yīng)的組標(biāo)識,并將各應(yīng)用程序標(biāo)識添加到應(yīng)用程序所屬域?qū)?yīng)的組內(nèi)、以及所屬域的父域?qū)?yīng)的組內(nèi)。那么本步驟則可以直接判斷第一應(yīng)用程序的標(biāo)識是否在被訪問數(shù)據(jù)的組標(biāo)識所對應(yīng)的組內(nèi),若在,則說明第一應(yīng)用程序在對第二應(yīng)用程序具有訪問權(quán)限的域中,否則,說明第一應(yīng)用程序不在所述域中。

仍沿用上面所列舉的具體例子進(jìn)行說明,為各應(yīng)用程序分配的id以及為各域分配的groupid如下所示:

trust(groupid=1000):

--dom(groupid=1001):a2(id=101)

--sub(groupid=1002):a0(id=102),a1(id=103)

--pay(groupid=1003):b0(id=104),b1(id=105)

cc(groupid=1004):f4(id=106)

--g1(groupid=1005):f1(id=107),f2(id=108)

--g2(groupid=1006):f3(id=109)

各個組包含的應(yīng)用程序標(biāo)識如下:

groupid=1000包含的應(yīng)用程序標(biāo)識:101、102、103、104、105

groupid=1001包含的應(yīng)用程序標(biāo)識:101、102、103

groupid=1002包含的應(yīng)用程序標(biāo)識:102、103

groupid=1003包含的應(yīng)用程序標(biāo)識:104、105

groupid=1004包含的應(yīng)用程序標(biāo)識:106、107、108、109

groupid=1005包含的應(yīng)用程序標(biāo)識:107、108

groupid=1006包含的應(yīng)用程序標(biāo)識:109

如果本實(shí)施例中的第一應(yīng)用程序?yàn)閍0,第二應(yīng)用程序?yàn)閍2,由于為第二應(yīng)用程序數(shù)據(jù)指定的組標(biāo)識為1001,而第一應(yīng)用程序a0的標(biāo)識102在被訪問數(shù)據(jù)(即,第二應(yīng)用程序數(shù)據(jù))的組標(biāo)識所對應(yīng)的groupid=1001的組內(nèi),因此本步驟的判斷結(jié)果為第一應(yīng)用程序a0在對第二應(yīng)用程序a2具有訪問權(quán)限的域中,可以執(zhí)行后續(xù)步驟103。

同樣的道理,如果本實(shí)施例中的第一應(yīng)用程序?yàn)閍2,第二應(yīng)用程序?yàn)閍0,由于為第二應(yīng)用程序數(shù)據(jù)指定的組標(biāo)識為1002,而第一應(yīng)用程序a2的標(biāo)識101不在被訪問數(shù)據(jù)(即,第二應(yīng)用程序數(shù)據(jù))的組標(biāo)識所對應(yīng)的groupid=1002的組內(nèi),因此本步驟的判斷結(jié)果為第一應(yīng)用程序a2不在對第二應(yīng)用程序a0具有訪問權(quán)限的域中,執(zhí)行后續(xù)步驟104。

對于其他應(yīng)用程序之間的數(shù)據(jù)訪問操作,本步驟的判斷過程也都是類似的,此處不再贅述。通過上述對應(yīng)用程序a0、a2彼此間的數(shù)據(jù)訪問權(quán)限的判斷過程,可以看出,采用基于父子域的數(shù)據(jù)訪問隔離方案,不僅從多個維度實(shí)現(xiàn)數(shù)據(jù)隔離機(jī)制,能夠?yàn)閼?yīng)用程序提供合理的數(shù)據(jù)訪問權(quán)限,靈活地實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享,而且可以滿足非對稱的應(yīng)用程序數(shù)據(jù)訪問需求。

在具體實(shí)施時(shí),如果本方法在基于linux的系統(tǒng)中實(shí)施,那么上述判斷過程可以利用linux的權(quán)限控制機(jī)制實(shí)現(xiàn),從而簡化實(shí)施過程:為每個應(yīng)用程序分配的應(yīng)用程序標(biāo)識為系統(tǒng)內(nèi)唯一的uid,為各個域分配的組標(biāo)識為系統(tǒng)內(nèi)唯一的gid,那么當(dāng)?shù)谝粦?yīng)用程序訪問第二應(yīng)用程序數(shù)據(jù)時(shí),linux系統(tǒng)會自動檢查uid是否在gid對應(yīng)的group中,并返回相應(yīng)的檢查結(jié)果,從而完成本步驟的判斷。

步驟103、允許第一應(yīng)用程序執(zhí)行訪問操作。

執(zhí)行到本步驟,說明第一應(yīng)用程序在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中,因此允許第一應(yīng)用程序執(zhí)行訪問操作,例如,第一應(yīng)用程序可以讀取與第二應(yīng)用程序相對應(yīng)的目錄下的數(shù)據(jù)文件。

步驟104、拒絕第一應(yīng)用程序執(zhí)行訪問操作。

執(zhí)行到本步驟,說明第一應(yīng)用程序不在對第二應(yīng)用程序具有訪問權(quán)限的域 中,因此拒絕第一應(yīng)用程序執(zhí)行訪問操作,例如:不允許第一應(yīng)用程序讀取與第二應(yīng)用程序相對應(yīng)的目錄下的數(shù)據(jù)文件。

至此,通過上述步驟101-104,對本實(shí)施例提供的應(yīng)用程序數(shù)據(jù)訪問隔離方法進(jìn)行了詳細(xì)說明。在實(shí)際應(yīng)用中,應(yīng)用程序的域?qū)傩酝ǔJ穷A(yù)先設(shè)置好的,但是也可能會出現(xiàn)需要調(diào)整應(yīng)用程序所屬域的情況,因此本實(shí)施例所述的應(yīng)用程序的域?qū)傩允强蓜討B(tài)調(diào)整的,從而能夠根據(jù)需求在應(yīng)用程序運(yùn)行過程中改變其域?qū)傩?,允許相同的應(yīng)用程序在不同的系統(tǒng)中具有不同的數(shù)據(jù)訪問能力,以滿足實(shí)際應(yīng)用中的安全性等需求。具體實(shí)現(xiàn)可以是:在接收第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求之前,動態(tài)調(diào)整第一應(yīng)用程序和/或第二應(yīng)用程序的域?qū)傩裕旅娣謨煞N情況作進(jìn)一步說明。

1)可以根據(jù)接收到的域?qū)傩哉{(diào)整指令,調(diào)整相應(yīng)應(yīng)用程序的域?qū)傩?。例如,本?shí)施例中的第一應(yīng)用程序在起始階段被認(rèn)為是屬于安全領(lǐng)域的,因此為其設(shè)置了對應(yīng)于安全領(lǐng)域的域?qū)傩裕承┨厥馐录l(fā)生后,第一應(yīng)用程序的性質(zhì)被重新確定,因而需要調(diào)整第一應(yīng)用程序所屬的域,并相應(yīng)修改第一應(yīng)用程序的域?qū)傩?,以防止其出現(xiàn)危害,在具體實(shí)施時(shí),可以根據(jù)負(fù)責(zé)監(jiān)控應(yīng)用程序安全性的服務(wù)端發(fā)送的域?qū)傩哉{(diào)整指令,調(diào)整第一應(yīng)用程序的域?qū)傩浴?/p>

2)可以根據(jù)預(yù)先設(shè)定的定時(shí)授權(quán)方案,調(diào)整相應(yīng)應(yīng)用程序的域?qū)傩?。例如,本?shí)施例中的第一應(yīng)用程序在某個授權(quán)時(shí)間范圍內(nèi),可以具備訪問某些應(yīng)用程序數(shù)據(jù)的特殊權(quán)利,而在非授權(quán)時(shí)間范圍內(nèi),則不具備訪問能力,相當(dāng)于回收了其特殊權(quán)利,在這種情況下可以根據(jù)預(yù)先設(shè)定的定時(shí)授權(quán)方案,動態(tài)調(diào)整第一應(yīng)用程序的域?qū)傩浴?/p>

綜上所述,本實(shí)施例提供的應(yīng)用程序數(shù)據(jù)訪問隔離方法,由于采用了基于域的、且具有層級關(guān)系的數(shù)據(jù)隔離方案,通過在不同域間設(shè)定基于層級的數(shù)據(jù)訪問規(guī)則,相當(dāng)于從多個維度實(shí)現(xiàn)數(shù)據(jù)隔離機(jī)制,能夠?yàn)閼?yīng)用程序提供合理的數(shù)據(jù)訪問權(quán)限,靈活地實(shí)現(xiàn)應(yīng)用程序之間的數(shù)據(jù)共享。特別是引入基于直接或者間接包含的父子域關(guān)系,能夠清晰的構(gòu)建樹形共享關(guān)系,滿足非對稱的應(yīng)用程序數(shù)據(jù)訪問需求。

此外,如果需要改變應(yīng)用程序之間的數(shù)據(jù)訪問關(guān)系,只需要動態(tài)調(diào)整應(yīng)用程序的域?qū)傩约纯桑啽阋仔?,從而可以滿足實(shí)際應(yīng)用中的安全性需求,并允許相同應(yīng)用程序在不同的系統(tǒng)中具有不同的數(shù)據(jù)訪問能力。

在上述的實(shí)施例中,提供了一種應(yīng)用程序數(shù)據(jù)訪問隔離方法,與之相對應(yīng)的,本申請還提供一種應(yīng)用程序數(shù)據(jù)訪問隔離裝置。請參看圖2,其為本申請的一種應(yīng)用程序數(shù)據(jù)訪問隔離裝置的實(shí)施例示意圖。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅僅是示意性的。

本實(shí)施例的一種應(yīng)用程序數(shù)據(jù)訪問隔離裝置,包括:訪問請求接收單元201,用于接收第一應(yīng)用程序?qū)Φ诙?yīng)用程序數(shù)據(jù)的訪問請求;權(quán)限判斷單元202,用于判斷第一應(yīng)用程序是否在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中;允許訪問單元203,用于當(dāng)所述權(quán)限判斷單元的輸出為是時(shí),允許第一應(yīng)用程序執(zhí)行訪問操作;拒絕訪問單元204,用于當(dāng)所述權(quán)限判斷單元的輸出為否時(shí),拒絕第一應(yīng)用程序執(zhí)行訪問操作。

可選的,所述裝置包括:

第一域?qū)傩栽O(shè)置單元,用于在安裝應(yīng)用程序時(shí),根據(jù)安裝包攜帶的配置信息設(shè)置應(yīng)用程序的域?qū)傩浴?/p>

可選的,所述裝置包括:

第二域?qū)傩栽O(shè)置單元,用于根據(jù)預(yù)設(shè)規(guī)則預(yù)先設(shè)置應(yīng)用程序的域?qū)傩浴?/p>

可選的,所述權(quán)限判斷單元,具體用于判斷第一應(yīng)用程序是否滿足以下數(shù)據(jù)訪問條件中的任意一項(xiàng):與第二應(yīng)用程序?qū)儆谕挥?,或者第一?yīng)用程序所屬域是第二應(yīng)用程序所屬域的子域;若是,則判定所述第一應(yīng)用程序在對第二應(yīng)用程序數(shù)據(jù)具有訪問權(quán)限的域中,否則判定不在所述域中。

可選的,所述裝置還包括在所述訪問請求接收單元之前觸發(fā)的下列單元:

應(yīng)用及組標(biāo)識分配單元,用于為各應(yīng)用程序分別分配唯一的應(yīng)用程序標(biāo)識,為預(yù)先設(shè)定的各域分別分配唯一的組,每個組具有唯一的組標(biāo)識;

數(shù)據(jù)標(biāo)識指定單元,用于為各應(yīng)用程序的數(shù)據(jù)指定相應(yīng)應(yīng)用程序所屬域?qū)?yīng)的組標(biāo)識;

應(yīng)用標(biāo)識添加單元,用于將各應(yīng)用程序標(biāo)識添加到應(yīng)用程序所屬域?qū)?yīng)的組內(nèi)、以及所屬域的父域?qū)?yīng)的組內(nèi);

所述權(quán)限判斷單元,具體用于判斷第一應(yīng)用程序的標(biāo)識是否在被訪問數(shù)據(jù)的組標(biāo)識所對應(yīng)的組內(nèi);若在,則判定所述第一應(yīng)用程序在對第二應(yīng)用程序數(shù) 據(jù)具有訪問權(quán)限的域中,否則判定不在所述域中。

可選的,所述權(quán)限判斷單元,具體用于利用linux的權(quán)限控制機(jī)制,判斷第一應(yīng)用程序的標(biāo)識是否在被訪問數(shù)據(jù)的組標(biāo)識所對應(yīng)的組內(nèi)。

可選的,所述裝置包括:

域?qū)傩詣討B(tài)調(diào)整單元,用于在所述訪問請求接收單元工作之前,動態(tài)調(diào)整第一應(yīng)用程序和/或第二應(yīng)用程序的域?qū)傩浴?/p>

可選的,所述域?qū)傩詣討B(tài)調(diào)整單元,具體用于根據(jù)接收到的域?qū)傩哉{(diào)整指令,調(diào)整相應(yīng)應(yīng)用程序的域?qū)傩?;或者,根?jù)預(yù)先設(shè)定的定時(shí)授權(quán)方案,調(diào)整相應(yīng)應(yīng)用程序的域?qū)傩浴?/p>

本申請雖然以較佳實(shí)施例公開如上,但其并不是用來限定本申請,任何本領(lǐng)域技術(shù)人員在不脫離本申請的精神和范圍內(nèi),都可以做出可能的變動和修改,因此本申請的保護(hù)范圍應(yīng)當(dāng)以本申請權(quán)利要求所界定的范圍為準(zhǔn)。

在一個典型的配置中,計(jì)算設(shè)備包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。

內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。

1、計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲器(sram)、動態(tài)隨機(jī)存取存儲器(dram)、其他類型的隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。

2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件 和硬件方面的實(shí)施例的形式。而且,本申請可采用在一個或多個其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學(xué)存儲器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1