一、背景
隨著智能終端時代的到來以及各類智能終端產品的日益普及,社會對于隱私保護意識也大幅提升,保護用戶個人數據和隱私的安全已成為操作系統的核心功能之一。 而應用權限訪問控制就是系統保障用戶隱私和數據不被濫用的一道堅實的安全屏障。但目前應用權限訪問控制普遍面臨權限濫用和缺失跨設備訪問控制場景等問題。 針對以上問題, OpenAtom OpenHarmony(簡稱“OpenHarmony”)構建 了ATM(AccessTokenManager,總體管理服務),用于提供應用權限訪問控制能力。ATM通過對應用進行分級,執行最小授權原則,避免了權限濫用問題;同時支持跨平臺執行權限訪問控制功能,以便滿足分布式應用場景。 注:由于篇幅有限,本文將主要介紹單設備場景下的應用權限訪問控制。
二、ATM的應用權限訪問控制概念介紹
1. 應用權限
默認情況下,應用只能訪問有限的系統資源。但某些情況下,應用為了擴展功能,需要訪問額外的系統或其他應用的數據(包括用戶個人數據)、功能。系統或應用也必須以明確的方式對外提供接口來共享其數據或功能。OpenHarmony 提供了一種訪問控制機制來保護這些數據或功能不被非法使用,這種訪問控制機制就是應用權限。
應用權限保護的對象可以分為數據和功能:
●數據包含了個人數據(如照片、通訊錄、日歷、位置等)、設備數據(如設備標識、相機、麥克風等)、應用數據。
●功能則包括了設備功能(如打電話、發短信、聯網等)、應用功能(如彈出懸浮框、創建快捷方式等)等。
應用權限是應用訪問操作某種對象的通行證。當應用訪問操作目標對象時,目標對象會對應用進行權限檢查,如果沒有對應權限,則訪問操作將被拒絕。
2.應用
應用權限訪問控制中所指的應用,按可信程度從高到低的順序進行劃分,可以分為:系統服務、系統應用、系統預置特權應用、同簽名應用、系統預置普通應用、持有權限證書的后裝應用以及其他普通應用。
系統利用內核保護機制來識別和隔離應用資源,將不同的應用隔離開,保護各個應用自身和系統免受惡意應用的攻擊。默認情況下,應用間不能彼此交互,而且對系統的訪問會受到限制。
例如,如果應用 A(一個單獨的應用)嘗試在沒有權限的情況下讀取應用 B 的數據或者調用系統的能力撥打電話,操作系統會阻止此類行為,因為應用 A 沒有被授予相應的權限。
了解完應用權限等概念后,你是否也好奇 ATM 是如何提供應用權限訪問控制能力的呢?請跟隨小編一起往下看。
三、ATM如何提供應用權限訪問控制能力?
通過 ATM,系統提供了統一的應用權限訪問控制功能,支持應用或者其他服務查詢與校驗應用的 APL(Ability Privilege Level, 元能力權限等級)等信息,實現系統歸一化的權限管理體系。接下來小編將從以下兩個方面為大家介紹ATM如何實現應用權限訪問控制能力的:
1. ATM 服務框架,介紹 ATM 如何通過統一架構管理應用的AT(AccessToken)信息。
2. 洋蔥式訪問控制模型,介紹 ATM 如何對應用權限申請范圍進行管控。
1.ATM服務框架
對于運行在設備上的應用, ATM 為每個應用分配唯一的標識(TokenID),在資源使用時通過 TokenID 作為唯一身份標識映射獲取對應應用的權限和授權狀態信息,并依此進行鑒權,以管控應用的資源訪問行為。ATM 的服務框架如圖 1 所示:
圖1 ATM服務框架圖
ATM 總體管理服務作為 ATM 服務的總體入口,它可以將業務請求分發到下級的三個模塊:TokenID 管理、權限管理和 APL 管理。
TokenID 管理模塊:在 TokenID 與 AT 信息一一對應的基礎上,TokenID 管理提供了 TokenID 及其對應 AT 信息的初始化創建、查詢、更新以及刪除等服務。當目標應用被拉起時,ATM 會為其分配唯一身份標識 TokenID,并保存應用的初始化 AT 信息。每個 AT 信息由設備內的一個 32bits 的唯一標識符 TokenID 來進行標識。
●TokenID是每個應用的身份標識(可以理解為應用的身份證)。
●AT 信息包括應用身份標識 APP ID、子用戶 ID、應用分身索引信息、應用 APL、應用權限授權狀態等信息(可以理解為應用的身份證信息)。
權限管理模塊:主要提供應用權限定義信息、應用權限授權狀態信息的處理服務。權限管理模塊在 TokenID 管理模塊的基礎上,向業務提供應用的權限信息查詢、授權、鑒權等服務,管理應用權限的使用記錄,構筑 ATM 的應用權限訪問控制功能。
APL 管理模塊:APL 管理模塊基于唯一身份標識 TokenID,提供應用的權限申請合法性校驗功能,規范化權限申請范圍,進行權限最小化管理。當前,應用的權限申請規則是基于洋蔥式訪問控制模型的,下面請跟隨小編繼續了解洋蔥式訪問控制模型。
2.洋蔥式訪問控制模型
1) 介紹
應用的權限申請規則是基于洋蔥式訪問控制模型的,如圖 2 所示,洋蔥式訪問控制模型分為三層,從里往外看:
最里層是操作系統核心層,應用的 APL=system_core;
中間層是系統增強服務層,應用的 APL=system_basic;
最外層則是普通應用程序層,應用的 APL=system_normal。
圖2 洋蔥式訪問控制模型
2) APL等級劃分規則
APL 等級的劃分規則根據是否是操作系統核心能力(system_core)、系統基礎服務(system_basic)和普通應用(normal)進行劃分的。詳細介紹如下:
A. 操作系統核心能力 APL="system_core"
操作系統核心能力是系統最核心的底層服務,它需要擁有所有權限以便實現對系統的管理。
操作系統核心能力包括:AMS(Ability Manager Service,能力管理系統)、BMS(Bundle Manager Service,包管理系統)、DMS(Distributed Manager Service,分布式消息系統)、軟總線等。
操作系統核心能力的 APL="system_core"。這類應用可申請訪問操作系統核心資源的權限,對系統的影響程度非常大,目前只對系統服務開放。
B. 系統基礎服務 APL="system_basic"
在操作系統核心能力基礎上,為操作系統提供基礎服務的應用就叫系統基礎服務,系統基礎服務包括:
?最小集基礎應用,提供用戶進行設備操作時所必需的最小集基礎應用。如系統啟動、系統設置、身份認證、系統調度和管理等。
?智慧化服務,提供智慧化基礎服務。如 AR、VR、AI 引擎的服務。
?系統調度和管理應用,提供系統最基本的性能、功耗、后臺應用的管理功能。
系統基礎服務的 APL="system_basic",這類應用可申請訪問操作系統基礎服務相關資源的權限。
C. 普通應用 APL="normal"
普通應用包括三方應用和不在系統基礎服務范圍內的預置應用。三方應用包括社交類、資訊類、視頻播放類、游戲類等應用。預置應用包括時鐘、天氣等應用。
普通應用的 APL="normal"。這類應用是操作系統非必要軟件,通過開放接口即可實現此類應用的功能。
洋蔥式訪問控制模型通過對應用實行嚴格的等級制度管控,根據不同的等級制定不同的安全和訪問控制策略,實現了權限范圍可控目標。同時為應用在跨設備運行時提供統一的隱私保護機制。
四、結語
以上就是 OpenHarmony 為大家提供的 ATM 應用權限訪問控制的簡單介紹。未來我們將圍繞 ATM 在多設備等場景下的應用權限訪問控制能力進一步提升與增強,我們衷心希望廣大開發者一起加入,與我們一起碰撞出思想的火花,圍繞著訪問控制的相關內容,共同把安全隱私體驗進一步增強!
ATM代碼倉:
https://gitee.com/openharmony/security_access_tokenhttps://gitee.com/openharmony/security_access_tokenhttps://gitee.com/openharmony/security_access_token
審核編輯 :李倩
-
ATM
+關注
關注
0文章
148瀏覽量
34145 -
OpenHarmony
+關注
關注
25文章
3722瀏覽量
16317
原文標題:OpenHarmony 3.1 Release版本關鍵特性解析——一文帶你看懂ATM的應用權限訪問控制能力
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論