安卓系统的自主访问控制和强制访问控制是怎么操作的

安卓系统是同时有DAC和MAC吗,这两个是怎么对访问进行控制的
2025-04-03 22:52:29
推荐回答(1个)
回答1:

自主访问控制
自主访问的含义是有访问许可的主体能够直接或间接地向其他主体转让访问权。自主访问控制是在确认主体身份以及(或)它们所属的组的基础上,控制主体的活动,实施用户权限管理、访问属性(读、写、执行)管理等,是一种最为普遍的访问控制手段。自主访问控制的主体可以按自己的意愿决定哪些用户可以访问他们的资源,亦即主体有自主的决定权,一个主体可以有选择地与其它主体共享他的资源。
基于访问控制矩阵的访问控制表(ACL)是DAC中通常采用一种的安全机制。ACL是带有访问权限的矩阵,这些访问权是授予主体访问某一客体的。安全管理员通过维护ACL控制用户访问企业数据。对每一个受保护的资源,ACL对应一个个人用户列表或由个人用户构成的组列表,表中规定了相应的访问模式。当用户数量多、管理数据量大时,由于访问控制的粒度是单个用
户,ACL会很庞大。当组织内的人员发生能变化(升迁、换岗、招聘、离职)、工作职能发生变化(新增业务)时,ACL的修改变得异常困难。采用ACL机制管理授权处于一个较低级的层次,管理复杂、代价高以至易于出错。
DAC的主要特征体现在主体可以自主地把自己所拥有客体的访问权限授予其它主体或者从其它主体收回所授予的权限,访问通常基于访问控制表(ACL)。访问控制的粒度是单个用户。没有存取权的用户只允许由授权用户指定对客体的访问权。DAC的缺点是信息在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。
强制访问控制
为了实现完备的自主访问控制系统,由访问控制矩阵提供的信息必须以某种形式存放在系统中。访问矩阵中的每行表示一个主体,每一列则表示一个受保护的客体,而矩阵中的元素,则表示主体可以对客体的访问模式。目前,在系统中访问控制矩阵本身,都不是完整地存储起来,因为矩阵中的许多元素常常为空。空元素将会造成存储空间的浪费,而且查找某个元素会耗费很多时间。实际上常常是基于矩阵的行或列来表达访问控制信息。
强制访问控制是“强加”给访问主体的,即系统强制主体服从访问控制政策。强制访问控制(MAC)的主要特征是对所有主体及其所控制的客体(例如:进程、文件、段、设备)实施强制访问控制。
为这些主体及客体指定敏感标记,这些标记是等级分类和非等级类别的组合,它们是实施强制访问控制的依据。系统通过比较主体和客体的敏感标记来决定一个主体是否能够访问某个客体。用户的程序不能改变他自己及任何其它客体的敏感标记,从而系统可以防止特洛伊木马的攻击。
Top Secret),秘密级(Secret),机密级(Confidential)及无级别级(Unclassified)。其级别为T>S>C>U,系统根据主体和客体的敏感标记来决定访问模式。访问模式包括:
read down):用户级别大于文件级别的读操作;
Write up):用户级别小于文件级别的写操作;
Write down):用户级别等于文件级别的写操作;
read up):用户级别小于文件级别的读操作;
自主访问控制不能抵御“特洛伊木马”攻击,而强制访问控制能够有效的防御“特洛伊木马”攻击。MAC最主要的优势是它阻止特洛伊木马的能力 一个特洛伊木马是在一个执行某些合法功能的程序中隐藏的代码,它利用运行此程序的主体的权限违反安全策略 通过伪装成有用的程序在进程中泄露信息 一个特洛伊木马能够以两种方式泄露信息: 直接与非直接泄露 前者, 特洛伊木马以这样一种方式工作, 使信息的安全标示不正确并泄露给非授权用户; 后者特洛伊木马通过以下方式非直接地泄露信息: 在返回给一个主体的合法信息中编制 例如: 可能表面上某些提问需要回答, 而实际上用户回答的内容被传送给特洛伊木马。