一文帶你看懂ATM的應(yīng)用權(quán)限訪(fǎng)問(wèn)控制能力
隨著智能終端時(shí)代的到來(lái)以及各類(lèi)智能終端產(chǎn)品的日益普及,社會(huì)對(duì)于隱私保護(hù)意識(shí)也大幅提升,保護(hù)用戶(hù)個(gè)人數(shù)據(jù)和隱私的安全已成為操作系統(tǒng)的核心功能之一。
而應(yīng)用權(quán)限訪(fǎng)問(wèn)控制就是系統(tǒng)保障用戶(hù)隱私和數(shù)據(jù)不被濫用的一道堅(jiān)實(shí)的安全屏障。但目前應(yīng)用權(quán)限訪(fǎng)問(wèn)控制普遍面臨權(quán)限濫用和缺失跨設(shè)備訪(fǎng)問(wèn)控制場(chǎng)景等問(wèn)題。
針對(duì)以上問(wèn)題, OpenHarmony構(gòu)建了ATM(AccessTokenManager,總體管理服務(wù)),用于提供應(yīng)用權(quán)限訪(fǎng)問(wèn)控制能力。ATM通過(guò)對(duì)應(yīng)用進(jìn)行分級(jí),執(zhí)行最小授權(quán)原則,避免了權(quán)限濫用問(wèn)題;同時(shí)支持跨平臺(tái)執(zhí)行權(quán)限訪(fǎng)問(wèn)控制功能,以便滿(mǎn)足分布式應(yīng)用場(chǎng)景。
注:由于篇幅有限,本文將主要介紹單設(shè)備場(chǎng)景下的應(yīng)用權(quán)限訪(fǎng)問(wèn)控制。
2. ATM的應(yīng)用權(quán)限訪(fǎng)問(wèn)控制概念介紹1) 應(yīng)用權(quán)限
默認(rèn)情況下,應(yīng)用只能訪(fǎng)問(wèn)有限的系統(tǒng)資源。但某些情況下,應(yīng)用為了擴(kuò)展功能,需要訪(fǎng)問(wèn)額外的系統(tǒng)或其他應(yīng)用的數(shù)據(jù)(包括用戶(hù)個(gè)人數(shù)據(jù))、功能。系統(tǒng)或應(yīng)用也必須以明確的方式對(duì)外提供接口來(lái)共享其數(shù)據(jù)或功能。OpenHarmony提供了一種訪(fǎng)問(wèn)控制機(jī)制來(lái)保護(hù)這些數(shù)據(jù)或功能不被非法使用,這種訪(fǎng)問(wèn)控制機(jī)制就是應(yīng)用權(quán)限。
應(yīng)用權(quán)限保護(hù)的對(duì)象可以分為數(shù)據(jù)和功能:
● 數(shù)據(jù)包含了個(gè)人數(shù)據(jù)(如照片、通訊錄、日歷、位置等)、設(shè)備數(shù)據(jù)(如設(shè)備標(biāo)識(shí)、相機(jī)、麥克風(fēng)等)、應(yīng)用數(shù)據(jù)。
● 功能則包括了設(shè)備功能(如打電話(huà)、發(fā)****、聯(lián)網(wǎng)等)、應(yīng)用功能(如彈出懸浮框、創(chuàng)建快捷方式等)等。
應(yīng)用權(quán)限是應(yīng)用訪(fǎng)問(wèn)操作某種對(duì)象的通行證。當(dāng)應(yīng)用訪(fǎng)問(wèn)操作目標(biāo)對(duì)象時(shí),目標(biāo)對(duì)象會(huì)對(duì)應(yīng)用進(jìn)行權(quán)限檢查,如果沒(méi)有對(duì)應(yīng)權(quán)限,則訪(fǎng)問(wèn)操作將被拒絕。
2) 應(yīng)用
應(yīng)用權(quán)限訪(fǎng)問(wèn)控制中所指的應(yīng)用,按可信程度從高到低的順序進(jìn)行劃分,可以分為:系統(tǒng)服務(wù)、系統(tǒng)應(yīng)用、系統(tǒng)預(yù)置特權(quán)應(yīng)用、同簽名應(yīng)用、系統(tǒng)預(yù)置普通應(yīng)用、持有權(quán)限證書(shū)的后裝應(yīng)用以及其他普通應(yīng)用。
系統(tǒng)利用內(nèi)核保護(hù)機(jī)制來(lái)識(shí)別和隔離應(yīng)用資源,將不同的應(yīng)用隔離開(kāi),保護(hù)各個(gè)應(yīng)用自身和系統(tǒng)免受惡意應(yīng)用的攻擊。默認(rèn)情況下,應(yīng)用間不能彼此交互,而且對(duì)系統(tǒng)的訪(fǎng)問(wèn)會(huì)受到限制。
例如,如果應(yīng)用A(一個(gè)單獨(dú)的應(yīng)用)嘗試在沒(méi)有權(quán)限的情況下讀取應(yīng)用B的數(shù)據(jù)或者調(diào)用系統(tǒng)的能力撥打電話(huà),操作系統(tǒng)會(huì)阻止此類(lèi)行為,因?yàn)閼?yīng)用 A 沒(méi)有被授予相應(yīng)的權(quán)限。
了解完應(yīng)用權(quán)限等概念后,你是否也好奇ATM是如何提供應(yīng)用權(quán)限訪(fǎng)問(wèn)控制能力的呢?請(qǐng)跟隨小編一起往下看。
3. ATM如何提供應(yīng)用權(quán)限訪(fǎng)問(wèn)控制能力?通過(guò)ATM,系統(tǒng)提供了統(tǒng)一的應(yīng)用權(quán)限訪(fǎng)問(wèn)控制功能,支持應(yīng)用或者其他服務(wù)查詢(xún)與校驗(yàn)應(yīng)用的APL(Ability Privilege Level, 元能力權(quán)限等級(jí))等信息,實(shí)現(xiàn)系統(tǒng)歸一化的權(quán)限管理體系。接下來(lái)小編將從以下兩個(gè)方面為大家介紹ATM如何實(shí)現(xiàn)應(yīng)用權(quán)限訪(fǎng)問(wèn)控制能力的:
1. ATM服務(wù)框架,介紹ATM如何通過(guò)統(tǒng)一架構(gòu)管理應(yīng)用的AT(AccessToken)信息。
2. 洋蔥式訪(fǎng)問(wèn)控制模型,介紹ATM如何對(duì)應(yīng)用權(quán)限申請(qǐng)范圍進(jìn)行管控;
1) ATM服務(wù)框架
對(duì)于運(yùn)行在設(shè)備上的應(yīng)用, ATM為每個(gè)應(yīng)用分配唯一的標(biāo)識(shí)(TokenID),在資源使用時(shí)通過(guò)TokenID作為唯一身份標(biāo)識(shí)映射獲取對(duì)應(yīng)應(yīng)用的權(quán)限和授權(quán)狀態(tài)信息,并依此進(jìn)行鑒權(quán),以管控應(yīng)用的資源訪(fǎng)問(wèn)行為。ATM的服務(wù)框架如圖1所示:
圖1 ATM服務(wù)框架圖
ATM總體管理服務(wù)作為ATM 服務(wù)的總體入口,它可以將業(yè)務(wù)請(qǐng)求分發(fā)到下級(jí)的三個(gè)模塊:TokenID管理、權(quán)限管理和APL管理。
TokenID管理模塊:在TokenID與AT信息一一對(duì)應(yīng)的基礎(chǔ)上,TokenID管理提供了TokenID及其對(duì)應(yīng)AT信息的初始化創(chuàng)建、查詢(xún)、更新以及刪除等服務(wù)。當(dāng)目標(biāo)應(yīng)用被拉起時(shí),ATM會(huì)為其分配唯一身份標(biāo)識(shí)TokenID,并保存應(yīng)用的初始化AT信息。每個(gè)AT信息由設(shè)備內(nèi)的一個(gè)32bits的唯一標(biāo)識(shí)符TokenID來(lái)進(jìn)行標(biāo)識(shí)。
● TokenID是每個(gè)應(yīng)用的身份標(biāo)識(shí)(可以理解為應(yīng)用的身份證)。
● AT信息包括應(yīng)用身份標(biāo)識(shí)APP ID、子用戶(hù)ID、應(yīng)用分身索引信息、應(yīng)用APL、應(yīng)用權(quán)限授權(quán)狀態(tài)等信息(可以理解為應(yīng)用的身份證信息)。
權(quán)限管理模塊:主要提供應(yīng)用權(quán)限定義信息、應(yīng)用權(quán)限授權(quán)狀態(tài)信息的處理服務(wù)。權(quán)限管理模塊在TokenID管理模塊的基礎(chǔ)上,向業(yè)務(wù)提供應(yīng)用的權(quán)限信息查詢(xún)、授權(quán)、鑒權(quán)等服務(wù),管理應(yīng)用權(quán)限的使用記錄,構(gòu)筑ATM的應(yīng)用權(quán)限訪(fǎng)問(wèn)控制功能。
APL管理模塊:APL管理模塊基于唯一身份標(biāo)識(shí)TokenID,提供應(yīng)用的權(quán)限申請(qǐng)合法性校驗(yàn)功能,規(guī)范化權(quán)限申請(qǐng)范圍,進(jìn)行權(quán)限最小化管理。當(dāng)前,應(yīng)用的權(quán)限申請(qǐng)規(guī)則是基于洋蔥式訪(fǎng)問(wèn)控制模型的,下面請(qǐng)跟隨小編繼續(xù)了解洋蔥式訪(fǎng)問(wèn)控制模型。
2) 洋蔥式訪(fǎng)問(wèn)控制模型
i. 介紹
應(yīng)用的權(quán)限申請(qǐng)規(guī)則是基于洋蔥式訪(fǎng)問(wèn)控制模型的,如圖2所示,洋蔥式訪(fǎng)問(wèn)控制模型分為三層,從里往外看:最里層是操作系統(tǒng)核心層,應(yīng)用的APL=system_core。中間層是系統(tǒng)增強(qiáng)服務(wù)層,應(yīng)用的APL=system_basic。最外層則是普通應(yīng)用程序?qū)樱瑧?yīng)用的APL=system_normal。
圖2 洋蔥式訪(fǎng)問(wèn)控制模型
我們通過(guò)給應(yīng)用分配APL等級(jí),來(lái)管控不同應(yīng)用對(duì)系統(tǒng)資源的訪(fǎng)問(wèn),不同APL等級(jí)的應(yīng)用能申請(qǐng)的權(quán)限范圍也是不同的,下面一起看一下APL等級(jí)的劃分規(guī)則。
ii. APL等級(jí)劃分規(guī)則
APL等級(jí)的劃分規(guī)則根據(jù)是否是操作系統(tǒng)核心能力(system_core)、系統(tǒng)基礎(chǔ)服務(wù)(system_basic)和普通應(yīng)用(normal)進(jìn)行劃分的。詳細(xì)介紹如下:
A. 操作系統(tǒng)核心能力APL="system_core"
操作系統(tǒng)核心能力是系統(tǒng)最核心的底層服務(wù),它需要擁有所有權(quán)限以便實(shí)現(xiàn)對(duì)系統(tǒng)的管理。
操作系統(tǒng)核心能力包括:AMS(Ability Manager Service,能力管理系統(tǒng))、BMS(Bundle Manager Service,包管理系統(tǒng))、DMS(Distributed Manager Service,分布式消息系統(tǒng))、軟總線(xiàn)等。
操作系統(tǒng)核心能力的APL="system_core"。這類(lèi)應(yīng)用可申請(qǐng)?jiān)L問(wèn)操作系統(tǒng)核心資源的權(quán)限,對(duì)系統(tǒng)的影響程度非常大,目前只對(duì)系統(tǒng)服務(wù)開(kāi)放。
B. 系統(tǒng)基礎(chǔ)服務(wù)APL="system_basic"
在操作系統(tǒng)核心能力基礎(chǔ)上,為操作系統(tǒng)提供基礎(chǔ)服務(wù)的應(yīng)用就叫系統(tǒng)基礎(chǔ)服務(wù),系統(tǒng)基礎(chǔ)服務(wù)包括:
? 最小集基礎(chǔ)應(yīng)用,提供用戶(hù)進(jìn)行設(shè)備操作時(shí)所必需的最小集基礎(chǔ)應(yīng)用。如系統(tǒng)啟動(dòng)、系統(tǒng)設(shè)置、身份認(rèn)證、系統(tǒng)調(diào)度和管理等。
? 智慧化服務(wù),提供智慧化基礎(chǔ)服務(wù)。如AR、VR、AI引擎的服務(wù)。
? 系統(tǒng)調(diào)度和管理應(yīng)用,提供系統(tǒng)最基本的性能、功耗、后臺(tái)應(yīng)用的管理功能。
系統(tǒng)基礎(chǔ)服務(wù)的APL="system_basic",這類(lèi)應(yīng)用可申請(qǐng)?jiān)L問(wèn)操作系統(tǒng)基礎(chǔ)服務(wù)相關(guān)資源的權(quán)限。
C. 普通應(yīng)用APL="normal"
普通應(yīng)用包括三方應(yīng)用和不在系統(tǒng)基礎(chǔ)服務(wù)范圍內(nèi)的預(yù)置應(yīng)用。三方應(yīng)用包括社交類(lèi)、資訊類(lèi)、視頻播放類(lèi)、游戲類(lèi)等應(yīng)用。預(yù)置應(yīng)用包括時(shí)鐘、天氣等應(yīng)用。
普通應(yīng)用的APL="normal"。這類(lèi)應(yīng)用是操作系統(tǒng)非必要軟件,通過(guò)開(kāi)放接口即可實(shí)現(xiàn)此類(lèi)應(yīng)用的功能。
注:若應(yīng)用想要提升自身的APL等級(jí),需要通過(guò)應(yīng)用市場(chǎng)的審核。
洋蔥式訪(fǎng)問(wèn)控制模型通過(guò)對(duì)應(yīng)用實(shí)行嚴(yán)格的等級(jí)制度管控,根據(jù)不同的等級(jí)制定不同的安全和訪(fǎng)問(wèn)控制策略,實(shí)現(xiàn)了權(quán)限范圍可控目標(biāo)。同時(shí)為應(yīng)用在跨設(shè)備運(yùn)行時(shí)提供統(tǒng)一的隱私保護(hù)機(jī)制。
4. 結(jié)語(yǔ)以上就是OpenHarmony 為大家提供的ATM應(yīng)用權(quán)限訪(fǎng)問(wèn)控制的簡(jiǎn)單介紹。未來(lái)我們將圍繞ATM在多設(shè)備等場(chǎng)景下的應(yīng)用權(quán)限訪(fǎng)問(wèn)控制能力進(jìn)一步提升與增強(qiáng),我們衷心希望廣大開(kāi)發(fā)者一起加入,與我們一起碰撞出思想的火花,圍繞著訪(fǎng)問(wèn)控制的相關(guān)內(nèi)容,共同把安全隱私體驗(yàn)進(jìn)一步增強(qiáng)!
碼云平臺(tái)OpenHarmony項(xiàng)目ATM代碼倉(cāng):
https://gitee.com/openharmony/security_access_token
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
電機(jī)保護(hù)器相關(guān)文章:電機(jī)保護(hù)器原理