博客專欄

EEPW首頁 > 博客 > 一文帶你看懂ATM的應(yīng)用權(quán)限訪問控制能力

一文帶你看懂ATM的應(yīng)用權(quán)限訪問控制能力

發(fā)布人:開發(fā)者頭條 時間:2022-04-29 來源:工程師 發(fā)布文章
1. 背景


隨著智能終端時代的到來以及各類智能終端產(chǎn)品的日益普及,社會對于隱私保護(hù)意識也大幅提升,保護(hù)用戶個人數(shù)據(jù)和隱私的安全已成為操作系統(tǒng)的核心功能之一。

而應(yīng)用權(quán)限訪問控制就是系統(tǒng)保障用戶隱私和數(shù)據(jù)不被濫用的一道堅(jiān)實(shí)的安全屏障。但目前應(yīng)用權(quán)限訪問控制普遍面臨權(quán)限濫用和缺失跨設(shè)備訪問控制場景等問題。

針對以上問題, OpenHarmony構(gòu)建了ATM(AccessTokenManager,總體管理服務(wù)),用于提供應(yīng)用權(quán)限訪問控制能力。ATM通過對應(yīng)用進(jìn)行分級,執(zhí)行最小授權(quán)原則,避免了權(quán)限濫用問題;同時支持跨平臺執(zhí)行權(quán)限訪問控制功能,以便滿足分布式應(yīng)用場景。

注:由于篇幅有限,本文將主要介紹單設(shè)備場景下的應(yīng)用權(quán)限訪問控制。

2. ATM的應(yīng)用權(quán)限訪問控制概念介紹

1) 應(yīng)用權(quán)限

默認(rèn)情況下,應(yīng)用只能訪問有限的系統(tǒng)資源。但某些情況下,應(yīng)用為了擴(kuò)展功能,需要訪問額外的系統(tǒng)或其他應(yīng)用的數(shù)據(jù)(包括用戶個人數(shù)據(jù))、功能。系統(tǒng)或應(yīng)用也必須以明確的方式對外提供接口來共享其數(shù)據(jù)或功能。OpenHarmony提供了一種訪問控制機(jī)制來保護(hù)這些數(shù)據(jù)或功能不被非法使用,這種訪問控制機(jī)制就是應(yīng)用權(quán)限。

應(yīng)用權(quán)限保護(hù)的對象可以分為數(shù)據(jù)和功能:

● 數(shù)據(jù)包含了個人數(shù)據(jù)(如照片、通訊錄、日歷、位置等)、設(shè)備數(shù)據(jù)(如設(shè)備標(biāo)識、相機(jī)、麥克風(fēng)等)、應(yīng)用數(shù)據(jù)。

● 功能則包括了設(shè)備功能(如打電話、發(fā)****、聯(lián)網(wǎng)等)、應(yīng)用功能(如彈出懸浮框、創(chuàng)建快捷方式等)等。

應(yīng)用權(quán)限是應(yīng)用訪問操作某種對象的通行證。當(dāng)應(yīng)用訪問操作目標(biāo)對象時,目標(biāo)對象會對應(yīng)用進(jìn)行權(quán)限檢查,如果沒有對應(yīng)權(quán)限,則訪問操作將被拒絕。

2) 應(yīng)用

應(yīng)用權(quá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)限證書的后裝應(yīng)用以及其他普通應(yīng)用。

系統(tǒng)利用內(nèi)核保護(hù)機(jī)制來識別和隔離應(yīng)用資源,將不同的應(yīng)用隔離開,保護(hù)各個應(yīng)用自身和系統(tǒng)免受惡意應(yīng)用的攻擊。默認(rèn)情況下,應(yīng)用間不能彼此交互,而且對系統(tǒng)的訪問會受到限制。

例如,如果應(yīng)用A(一個單獨(dú)的應(yīng)用)嘗試在沒有權(quán)限的情況下讀取應(yīng)用B的數(shù)據(jù)或者調(diào)用系統(tǒng)的能力撥打電話,操作系統(tǒng)會阻止此類行為,因?yàn)閼?yīng)用 A 沒有被授予相應(yīng)的權(quán)限。

了解完應(yīng)用權(quán)限等概念后,你是否也好奇ATM是如何提供應(yīng)用權(quán)限訪問控制能力的呢?請跟隨小編一起往下看。

3. ATM如何提供應(yīng)用權(quán)限訪問控制能力?

通過ATM,系統(tǒng)提供了統(tǒng)一的應(yīng)用權(quán)限訪問控制功能,支持應(yīng)用或者其他服務(wù)查詢與校驗(yàn)應(yīng)用的APL(Ability Privilege Level, 元能力權(quán)限等級)等信息,實(shí)現(xiàn)系統(tǒng)歸一化的權(quán)限管理體系。接下來小編將從以下兩個方面為大家介紹ATM如何實(shí)現(xiàn)應(yīng)用權(quán)限訪問控制能力的:

1. ATM服務(wù)框架,介紹ATM如何通過統(tǒng)一架構(gòu)管理應(yīng)用的AT(AccessToken)信息。

2. 洋蔥式訪問控制模型,介紹ATM如何對應(yīng)用權(quán)限申請范圍進(jìn)行管控;

1) ATM服務(wù)框架

對于運(yùn)行在設(shè)備上的應(yīng)用, ATM為每個應(yīng)用分配唯一的標(biāo)識(TokenID),在資源使用時通過TokenID作為唯一身份標(biāo)識映射獲取對應(yīng)應(yīng)用的權(quán)限和授權(quán)狀態(tài)信息,并依此進(jìn)行鑒權(quán),以管控應(yīng)用的資源訪問行為。ATM的服務(wù)框架如圖1所示:

圖1 ATM服務(wù)框架圖

ATM總體管理服務(wù)作為ATM 服務(wù)的總體入口,它可以將業(yè)務(wù)請求分發(fā)到下級的三個模塊:TokenID管理、權(quán)限管理和APL管理。

TokenID管理模塊:在TokenID與AT信息一一對應(yīng)的基礎(chǔ)上,TokenID管理提供了TokenID及其對應(yīng)AT信息的初始化創(chuàng)建、查詢、更新以及刪除等服務(wù)。當(dāng)目標(biāo)應(yīng)用被拉起時,ATM會為其分配唯一身份標(biāo)識TokenID,并保存應(yīng)用的初始化AT信息。每個AT信息由設(shè)備內(nèi)的一個32bits的唯一標(biāo)識符TokenID來進(jìn)行標(biāo)識。

● TokenID是每個應(yīng)用的身份標(biāo)識(可以理解為應(yīng)用的身份證)。

● AT信息包括應(yīng)用身份標(biāo)識APP ID、子用戶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)限信息查詢、授權(quán)、鑒權(quán)等服務(wù),管理應(yīng)用權(quán)限的使用記錄,構(gòu)筑ATM的應(yīng)用權(quán)限訪問控制功能。

APL管理模塊:APL管理模塊基于唯一身份標(biāo)識TokenID,提供應(yīng)用的權(quán)限申請合法性校驗(yàn)功能,規(guī)范化權(quán)限申請范圍,進(jìn)行權(quán)限最小化管理。當(dāng)前,應(yīng)用的權(quán)限申請規(guī)則是基于洋蔥式訪問控制模型的,下面請跟隨小編繼續(xù)了解洋蔥式訪問控制模型。

2) 洋蔥式訪問控制模型

i. 介紹

應(yīng)用的權(quán)限申請規(guī)則是基于洋蔥式訪問控制模型的,如圖2所示,洋蔥式訪問控制模型分為三層,從里往外看:最里層是操作系統(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 洋蔥式訪問控制模型

我們通過給應(yīng)用分配APL等級,來管控不同應(yīng)用對系統(tǒng)資源的訪問,不同APL等級的應(yīng)用能申請的權(quán)限范圍也是不同的,下面一起看一下APL等級的劃分規(guī)則。

ii. APL等級劃分規(guī)則

APL等級的劃分規(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)對系統(tǒng)的管理。

操作系統(tǒng)核心能力包括:AMS(Ability Manager Service,能力管理系統(tǒng))、BMS(Bundle Manager Service,包管理系統(tǒng))、DMS(Distributed Manager Service,分布式消息系統(tǒng))、軟總線等。

操作系統(tǒng)核心能力的APL="system_core"。這類應(yīng)用可申請?jiān)L問操作系統(tǒng)核心資源的權(quán)限,對系統(tǒng)的影響程度非常大,目前只對系統(tǒng)服務(wù)開放。

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)用,提供用戶進(jìn)行設(shè)備操作時所必需的最小集基礎(chǔ)應(yīng)用。如系統(tǒ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)最基本的性能、功耗、后臺應(yīng)用的管理功能。

系統(tǒng)基礎(chǔ)服務(wù)的APL="system_basic",這類應(yīng)用可申請?jiān)L問操作系統(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)用包括社交類、資訊類、視頻播放類、游戲類等應(yīng)用。預(yù)置應(yīng)用包括時鐘、天氣等應(yīng)用。

普通應(yīng)用的APL="normal"。這類應(yīng)用是操作系統(tǒng)非必要軟件,通過開放接口即可實(shí)現(xiàn)此類應(yīng)用的功能。

注:若應(yīng)用想要提升自身的APL等級,需要通過應(yīng)用市場的審核。

洋蔥式訪問控制模型通過對應(yīng)用實(shí)行嚴(yán)格的等級制度管控,根據(jù)不同的等級制定不同的安全和訪問控制策略,實(shí)現(xiàn)了權(quán)限范圍可控目標(biāo)。同時為應(yīng)用在跨設(shè)備運(yùn)行時提供統(tǒng)一的隱私保護(hù)機(jī)制。

4. 結(jié)語

以上就是OpenHarmony 為大家提供的ATM應(yīng)用權(quán)限訪問控制的簡單介紹。未來我們將圍繞ATM在多設(shè)備等場景下的應(yīng)用權(quán)限訪問控制能力進(jìn)一步提升與增強(qiáng),我們衷心希望廣大開發(fā)者一起加入,與我們一起碰撞出思想的火花,圍繞著訪問控制的相關(guān)內(nèi)容,共同把安全隱私體驗(yàn)進(jìn)一步增強(qiáng)!

碼云平臺OpenHarmony項(xiàng)目ATM代碼倉:

https://gitee.com/openharmony/security_access_token


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

linux相關(guān)文章:linux教程


電機(jī)保護(hù)器相關(guān)文章:電機(jī)保護(hù)器原理


關(guān)鍵詞: 開源

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉