0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ATM的应用权限访问控制概念介绍

OpenAtom OpenHarmony 来源:OpenAtom OpenHarmony 作者:OpenAtom OpenHarmony 2022-05-24 10:28 次阅读

一、背景

随着智能终端时代的到来以及各类智能终端产品的日益普及,社会对于隐私保护意识也大幅提升,保护用户个人数据和隐私的安全已成为操作系统的核心功能之一。 而应用权限访问控制就是系统保障用户隐私和数据不被滥用的一道坚实的安全屏障。但目前应用权限访问控制普遍面临权限滥用和缺失跨设备访问控制场景等问题。 针对以上问题, 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 所示:

d6d176a2-da98-11ec-ba43-dac502259ad0.png

图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。

d6fb0f94-da98-11ec-ba43-dac502259ad0.png

图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、VRAI 引擎的服务。

➢系统调度和管理应用,提供系统最基本的性能、功耗、后台应用的管理功能。

系统基础服务的 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
    ATM
    +关注

    关注

    0

    文章

    148

    浏览量

    34139
  • OpenHarmony
    +关注

    关注

    25

    文章

    3713

    浏览量

    16252

原文标题:OpenHarmony 3.1 Release版本关键特性解析——一文带你看懂ATM的应用权限访问控制能力

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux用户身份与进程权限详解

    访问权限是通过进程来体现的。本文主要介绍进程的权限,并通过示例解释用户身份与进程权限之间的关系。说明:本文的演示环境为 ubuntu 16.
    的头像 发表于 10-23 11:41 333次阅读
    Linux用户身份与进程<b class='flag-5'>权限</b>详解

    鸿蒙开发Ability Kit程序访问控制:申请使用受限权限

    受限开放的权限通常是不允许三方应用申请的。当应用在申请权限访问必要的资源时,发现部分权限的等级比应用APL等级高,开发者可以选择通过ACL方式来解决等级不匹配的问题,从而使用受限
    的头像 发表于 07-02 17:34 447次阅读
    鸿蒙开发Ability Kit程序<b class='flag-5'>访问</b><b class='flag-5'>控制</b>:申请使用受限<b class='flag-5'>权限</b>

    鸿蒙开发Ability Kit程序框架服务:应用权限管控概述 程序访问控制

    系统提供了一种允许应用访问系统资源(如:通讯录等)和系统能力(如:访问摄像头、麦克风等)的通用权限访问方式,来保护系统数据(包括用户个人数据)或功能,避免它们被不当或恶意使用。
    的头像 发表于 07-01 10:21 459次阅读
    鸿蒙开发Ability Kit程序框架服务:应用<b class='flag-5'>权限</b>管控概述 程序<b class='flag-5'>访问</b><b class='flag-5'>控制</b>

    鸿蒙开发组件:DataAbility权限控制

    DataAbility提供数据服务,并不是所有的Ability都有权限读写它,DataAbility有一套权限控制机制来保证数据安全。分为静态权限
    的头像 发表于 06-21 10:30 333次阅读
    鸿蒙开发组件:DataAbility<b class='flag-5'>权限</b><b class='flag-5'>控制</b>

    鸿蒙原生应用元服务-访问控制权限)开发应用权限列表三

    version 9及API version 9以上版本的SDK开发的应用申请。 ohos.permission.MEDIA_LOCATION 允许应用访问用户媒体文件中的地理位置信息。 权限级别
    发表于 04-25 16:12

    鸿蒙原生应用元服务-访问控制权限)开发应用权限列表二

    ohos.permission.START_ABILITIES_FROM_BACKGROUND 允许应用在后台启动或者访问其他组件。 权限级别 :system_basic 授权方式 :system_grant ACL
    发表于 04-24 15:43

    鸿蒙原生应用元服务-访问控制权限)开发应用权限列表一

    多个系统帐号之间相互访问权限级别 :system_basic 授权方式 :system_grant ACL使能 :TRUE ohos.permission.VIBRATE 允许应用控制马达振动
    发表于 04-23 14:33

    鸿蒙原生应用元服务-访问控制权限)开发校验环节

    一、场景介绍 应用在提供对外功能服务接口时,可以根据接口涉数据的敏感程度或所涉能力的安全威胁影响,在系统定义的权限列表中权限定义列表选择合适的权限限制当前接口的开放范围,对接口
    发表于 04-22 17:52

    鸿蒙原生应用元服务-访问控制权限)开发工作流程相关

    是否涉及敏感的数据或者功能,使用应用权限对当前接口进行访问控制。 2:应用可以在已有的权限列表选择适合的权限。比如应用提供的接口会涉及到麦克
    发表于 04-19 15:27

    鸿蒙原生应用元服务-访问控制权限)开发概念和使用基本原则

    ATM (AccessTokenManager) 是HarmonyOS上基于AccessToken构建的统一的应用权限管理能力。 默认情况下,应用只能访问有限的系统资源。但某些情况下,应用为了扩展
    发表于 04-18 15:39

    鸿蒙原生应用元服务-访问控制权限)开发等级和类型

    一、权限等级说明 根据接口所涉数据的敏感程度或所涉能力的安全威胁影响,ATM模块定义了不同开放范围的权限等级来保护用户隐私。 应用APL等级说明 元能力权限等级APL(Ability
    发表于 04-17 15:29

    鸿蒙原生应用元服务-访问控制权限)开发场景与权限声明

    ** 一、 场景介绍** 应用的APL(Ability Privilege Level)等级分为normal、system_basic和system_core三个等级,默认情况下,应用的APL等级
    发表于 04-16 14:40

    鸿蒙原生应用元服务-访问控制权限)开发Stage模型向用户申请授权

    一、向用户申请授权 当应用需要访问用户的隐私信息或使用系统能力时,例如获取位置信息、访问日历、使用相机拍摄照片或录制视频等,应该向用户请求授权。这需要使用 user_grant 类型权限。在此之前
    发表于 04-15 16:44

    访问控制列表什么?ACL的功能特点

    访问控制列表(Access Control List,简称ACL)是一种网络安全机制,用于定义和实施对网络资源或系统对象的访问权限。ACL可以精确地
    的头像 发表于 04-03 13:57 747次阅读

    如何解决C语言中的“访问权限冲突”异常?C语言引发异常原因分析

    一些措施来解决和防止其发生。本文将详细介绍C语言中访问权限冲突异常的原因以及解决方法。 一、访问权限冲突异常的原因分析
    的头像 发表于 01-12 16:03 5614次阅读