密码学应用(二)访问控制

密码学应用(二)

    • 简介
    • 访问控制模型
      • 自主访问控制模型
      • 强制访问控制模型
        • BLP模型
        • Biba模型
        • Clark-Wilson模型概念
        • Chinese wall模型
        • 基于角色的访问控制(RBAC)模型
        • 基于属性的访问控制(ABAC)模型

简介

访问控制技术:指防止对任何资源进行未授权的访问,从而使计算机在合法的范围内使用。
一般是指通过用户身份及其所属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术。
访问控制通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。

访问控制模型

访问控制模型:在为用户对系统资源提供最大限度共享的基础上,对用户的访问权限进行管理,防止对信息的非授权篡改和滥用。保证用户在系统安全策略下正常工作,拒绝非法用户的非授权访问请求,拒绝合法用户越权的服务请求。

访问控制模型
自主访问控制模型(DAC) 访问控制列表(ACL)
权能列表(Capacity List)
强制访问控制模型(MAC) 保密性 Bell-Lapudula模型
完整性 Biba模型
Clark-Wilson模型
Chinese Wall模型
基于角色访问控制模型(RBAC)
基于属性访问控制模型(ABAC)(面向对象)

自主访问控制模型

自主访问控制:是指用户有权对自身所创建的访问对象(文件、数据表等)进行访问,并可将对这些对象的访问权授予其他用户和从授予权限的用户收回其访问权限。


常用应用:Linux的文件权限,实现访问控制表/矩阵:

gatfacl FileName	#获取文件控制访问列表
setfacl -m u:userName:7 FileName	#设置用户在文件或目录控制访问列表
setfacl -m g:groupName:7 FileName	#设置用户组在文件或目录控制访问列表
setfacl -x u:UserName FileName	#删除某用户在某个目录或者文件上的访问列表
setfacl -x u:groupName FileName	#删除某用户组在某个目录或者文件上的访问列表
setfacl -b FileName	#取消对该文件上的所有ACL权限

DAC模型特点:

  • 授权的实施主体自主负责赋予和回收其他主体对客体资源的访问权限。DAC模型一般采用访问控制矩阵和访问控制列表来存放不同主题的访问控制信息,从而达到对主体访问权限的限制目的;
  • ADL(访问控制表)是DAC中常用的一种安全机制,系统安全管理员通过维护ACL来控制用户访问有关数据。
    DAC模型缺点:
  • 主题的权限太大,无意间就可能泄露信息;
  • 不能防备特洛伊木马的攻击访问控制表;
  • 当用户数量多、管理数据量大时,ACL会很庞大。不移维护。

访问控制矩阵(ACM:Acess Control Matrix)中使用矩阵的列和行来分别对应访问主体和访问客体,二者交叉位置的元素则代表着相应的主体对客体的操作规则:密码学应用(二)访问控制_第1张图片
访问控制列表(ACL:Access Control List):列表对应某个固定客体,其中的列表示能够对此客体进行一定操作的主体。
密码学应用(二)访问控制_第2张图片

强制访问控制模型

简介:

主体和客体都有一个固定的安全属性,系统用该安全属性来决定一个主体是否可以访问某个客体。是一种强加给访问主体的规则。

BLP模型

BLP模型(Bell-Lapudula):是D.Elliott Bell和Leonard J.Lapudula于1973年提出的一种模拟军事安全策略的计算机访问控制模型;
BLP也是最早也是最常用的一种多级访问控制模型;
BLP用于保证系统信息的机密性
BLP模型的安全策略包括自主安全策略和强制安全策略两个部分:

  • 自主安全策略使用一个访问控制矩阵表示,矩阵中的元素表示主体对客体所有允许的访问模式,主体按照在访问矩阵中被授权的对客体的访问权限对客体进行相应的访问;
  • 强制安全策略对每个主体和客体都定义了安全级,安全级由密级和范畴构成。安全级之间存在着支配关系(密级:绝密>机密>秘密>公开,范畴:军事、外交、商务等。密级是大小关系,范畴是包含关系)。

BLP安全特性:

  • 低安全级不可以向高安全级读,高安全级可以向低安全级写;

*特性:

  • 低安全级可以向高安全级写,低安全级不可以向高安全级读;
  • 高安全级可以向低安全级读,高安全级不可以向低安全级写;
    (两种特性同时存在)密码学应用(二)访问控制_第3张图片
    (BLP模型和Biba模型安全特性相反。)

Biba模型

Biba模型:由Biba在1977年提出,多级访问控制模型,保护数据完整性
强制安全策略为每一个主体和客体都分配了完整级;
Biba安全特性:

  • 低安全级可以想高安全级读,低安全级不可以高安全级写;
  • 高安全级可以向低安全级写,高安全级不可以向低安全级读;

(BLP模型和Biba模型安全特性相反。)

Clark-Wilson模型概念

Clark-Wilson模型是一个确保商业数据完整性的访问控制模型,由计算机科学家David D. Clark和会计师Davicl R.Wilson发表于1987年,并于1989年进行了修订。
如果说BLP模型更注重于军事领域的计算机应用的话,Clark-Wilson模型则偏重于满足商业应用的安全需求。

在商业应用环境中,最关心系统数据的完整性以及对这些数据操作的完整性。数据的完整性是指,如果数据满足给定的条件,则称数据处于一个一致性状态,在每次操作前和操作后,数据都必须满足这个一致性条件。系统的一个事务处理就是一系列操作,使系统从一个一致性状态转移到另一个一致性状态。
数据操作的完整性是指,需要有人检查和验证事务处理是否被正确执行,一个事务需要两个或两个以上的不同的人来执行,如果要使用一个事务处理来破坏数据,必须有两个不同的人员犯错,或者他们合谋担保该事务处理已被正确实现。

Chinese wall模型

Chinese Wall模型由Brewer和Nash提出,是一种同等考虑保密性和完整性的访问控制模型。
Chinese Wall模型主要用于解决商业应用中的利益冲突问题,它在商业领域的应用与BLP模型在军事领域的作用相当。
与BLP模型不同的是,访问数据不是受限于数据的属性(密级),而是受限于主体已经获得了对哪些数据的访问权限。Chinese Wall模型的主要设计思想是将一些可有旨会产生访问冲突的数据分成不同的数据集,并强制所有主体最多只能访问一个数据集,而选择访问哪个数据集并未受强制规则的限制。

Chinese Wall模型定义

在Chinese Wall模型中,客体分为无害客体和有害客体两种,其中,无害客体为可以公开的数据,有害客体为会产生利益冲突,需要限制的数据。
Chinese Wall安全模型的两个主要属性:
① 用户必须选择一个他可以访问的区域(DAC)。
② 用户必须自动拒绝来自其他用户所选区域的利益冲突区域的访问(MAC)。

基于角色的访问控制(RBAC)模型

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。
RBAC认为授权实际就是who,what,how三者之间的关系,即who对what进行how的操作。Who,权限的拥用者或主体(如Principal、User、Group、Role、Actor等等);what,权限针对的对象或资源(Resource、Class);How,具体的权限(Privilege,正向授权与负向授权)。
密码学应用(二)访问控制_第4张图片

RBAC模型支持三个著名的安全原则:

  • 最小权限原则
    受保护的敏感信息du只能在一定范围内被共享,履行工作职责zhi和职能的安全dao主体,在法律和相关安全策略允许的前提下,为满足工作需要。仅被授予其访问信息的适当权限,称为最小化原则。敏感信息的。知情权”一定要加以限制,是在“满足工作需要”前提下的一种限制性开放。可以将最小化原则细分为知所必须(need to know)和用所必须(need to use)的原则。
  • 分权制衡原则
    在信息系统中,对所有权限应该进行适当地划分,使每个授权主体只能拥有其中的一部分权限,使他们之间相互制约、相互监督,共同保证信息系统的安全。如果—个授权主体分配的权限过大,无人监督和制约,就隐含了“滥用权力”、“一言九鼎”的安全隐患。
  • 安全隔离原则
    隔离和控制是实现信息安全的基本方法,而隔离是进行控制的基础。信息安全的一个基本策略就是将信息的主体与客体分离,按照一定的安全策略,在可控和安全的前提下实施主体对客体的访问。

RBAC的优点:

主要在于易用和高效。给用户授权时只需要对角色授权,然后将相应的角色分配给用户即可;从技术角度讲,思路清晰且易于实现,且后期维护时只需要维护关系模型,显得简单而高效。

RBAC的缺点主要有两个:

  1. 在进行较为复杂的权限校验时需要不断地遍历和递归,会造成一定的性能影响。
  2. 缺少数据权限模型,基于 RBAC来实现数据权限校验比较复杂和低效。

基于属性的访问控制(ABAC)模型

ABAC:更精细的访问控制,用来匹配我们复杂的业务场景,同时这个模型易于理解和实现,也利于控制与运维


传统的 RBAC 与 ACL 等访问控制机制中,可以认为是 ABAC 的子集,对于 RBAC,只是我们的访问机制的实现只是基于属性 role而已,ACL 则是基于属性是 identity 的 AC。


术语

  • Attribute:属性,用于表示 subject、object 或者 environment conditions的特点,attribute 使用 key-value 的形式来存储这些信息,比如我在公司的 role 是 developer,role 是key,developer 是 value,而我的小组昵称袋熊,key 是 team,value 是 wombat。

  • Subject:常常指代使用系统的人或者其他使用者(non-person entity,NPE),比如说客户端程序,访问 API 的client 或者移动设备等等。当然一个 subject 可以有多个的 attributes,就像用户属性这些我们曾经用过的名词一样。

  • Object:指代我们这个 ACM 需要管理的资源,比如文件,比如某项记录,比如某台机器或者某个网站,任何你需要进行访问控制的资源都可以称为object,同样 object 也可以有多项属性,比如袋熊组的桌子,或者洛克组的线上实例,我们也常常使用 resource来描述这些资源,但是在 ABAC 的环境下,我们称为 object。

  • Operation:有了 object 有了 subject,自然就有了 subject需要做的事情,比如查看某条记录,登录某台服务器,使用某个 SaaS服务进行报销或者查看候选人的作业。往往包括我们常说的读、写、修改、拷贝等等,一般 operation 是会表达在 request 中的,比如HTTP method。

  • Policy:通过 subject、object 的 attribute 与 environment conditions 一起来判断subject 的请求是否能够允许的关系表示,比如说:policy可以用人类语言这样表达,只有袋熊组的人才能访问这几台服务器,或者只有在办公室才能访问这些资源,但对于机器来说,无非就是一个判断语句罢了。当然了,policy可以是一堆这样 boolean 逻辑判断的组合,比如只有公司的正式员工、并且在公司的六楼区域的网络中,才能访问某个服务。你可以使用Specification Pattern 来实现 policy,其实没那么复杂。

  • Environment Conditions:表示目前进行的访问请求发生时,的操作或情境的上下文。Environment conditions 常常用来描述环境特征,是独立于 subject 与 object的,常用来描述系统的情况:比如时间,当前的安全等级,生产环境还是测试环境等等。

你可能感兴趣的:(密码学)