博客專欄

        EEPW首頁 > 博客 > 一文帶你看懂ATM的應用權限訪問控制能力

        一文帶你看懂ATM的應用權限訪問控制能力

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


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

        而應用權限訪問控制就是系統保障用戶隱私和數據不被濫用的一道堅實的安全屏障。但目前應用權限訪問控制普遍面臨權限濫用和缺失跨設備訪問控制場景等問題。

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

        注:由于篇幅有限,本文將主要介紹單設備場景下的應用權限訪問控制。

        2. ATM的應用權限訪問控制概念介紹

        1) 應用權限

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

        應用權限保護的對象可以分為數據和功能:

        ● 數據包含了個人數據(如照片、通訊錄、日歷、位置等)、設備數據(如設備標識、相機、麥克風等)、應用數據。

        ● 功能則包括了設備功能(如打電話、發****、聯網等)、應用功能(如彈出懸浮框、創建快捷方式等)等。

        應用權限是應用訪問操作某種對象的通行證。當應用訪問操作目標對象時,目標對象會對應用進行權限檢查,如果沒有對應權限,則訪問操作將被拒絕。

        2) 應用

        應用權限訪問控制中所指的應用,按可信程度從高到低的順序進行劃分,可以分為:系統服務、系統應用、系統預置特權應用、同簽名應用、系統預置普通應用、持有權限證書的后裝應用以及其他普通應用。

        系統利用內核保護機制來識別和隔離應用資源,將不同的應用隔離開,保護各個應用自身和系統免受惡意應用的攻擊。默認情況下,應用間不能彼此交互,而且對系統的訪問會受到限制。

        例如,如果應用A(一個單獨的應用)嘗試在沒有權限的情況下讀取應用B的數據或者調用系統的能力撥打電話,操作系統會阻止此類行為,因為應用 A 沒有被授予相應的權限。

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

        3. 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) 洋蔥式訪問控制模型

        i. 介紹

        應用的權限申請規則是基于洋蔥式訪問控制模型的,如圖2所示,洋蔥式訪問控制模型分為三層,從里往外看:最里層是操作系統核心層,應用的APL=system_core。中間層是系統增強服務層,應用的APL=system_basic。最外層則是普通應用程序層,應用的APL=system_normal。

        圖2 洋蔥式訪問控制模型

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

        ii. 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"。這類應用是操作系統非必要軟件,通過開放接口即可實現此類應用的功能。

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

        洋蔥式訪問控制模型通過對應用實行嚴格的等級制度管控,根據不同的等級制定不同的安全和訪問控制策略,實現了權限范圍可控目標。同時為應用在跨設備運行時提供統一的隱私保護機制。

        4. 結語

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

        碼云平臺OpenHarmony項目ATM代碼倉:

        https://gitee.com/openharmony/security_access_token


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

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

        linux相關文章:linux教程


        電機保護器相關文章:電機保護器原理


        關鍵詞: 開源

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 栾川县| 潢川县| 鲁山县| 绍兴市| 平乡县| 益阳市| 阜阳市| 巴青县| 长宁区| 永川市| 陵川县| 寿宁县| 湘潭市| 花莲市| 即墨市| 上蔡县| 繁昌县| 固始县| 龙里县| 清水县| 娱乐| 沧源| 塔城市| 邯郸市| 华亭县| 旺苍县| 清流县| 常熟市| 盐山县| 郁南县| 清苑县| 四会市| 花莲县| 乳山市| 陇西县| 文水县| 麻城市| 夹江县| 呼图壁县| 上虞市| 舞钢市|