1、1访问控制访问控制(access control):实现既定安全策略的系统安全技术目标:防止对任何资源进行非授权的访问。访问控制系统一般包括:(1)主体(2)客体(3)安全访问策略 主体是对客体提出请求访问的主动实体,通常指用户或代表用户执行的程序。客体是接受主体访问的被动实体,是需要保护的资源。访问控制策略是主体对客体的访问规则集。权限是主体可对客体执行的动作。授权是指资源的所有者或控制者将权限授予给他人,准许他人访问资源。3访问控制的三个任务:一是授权,即确定可给予哪些主体访问客体的权限;二是确定访问权限(读、写、执行、删除、追加等访问方式的组合)三是实施访问权限。4访问控制基本原则(1)
2、最小特权原则)最小特权原则最小特权(Least Privilege)指的是“在完成某种操作时所赋予主体必不可少的特权”。最小特权原则按照主体所需权限的最小化原则分配主体权限,赋予主体权限不能超过主体执行操作时所需的权限。给予主体“必不可少”的特权,这就保证了所有的主体都能在所赋予的特权之下完成所需要完成的任务或操作;只给予主体“必不可少”的特权,这就限制了每个主体所能进行的操作。5(2)职责分离原则)职责分离原则是指遵循不相容职责相分离的原则,实现合理的组织分工。6访问控制策略:也称安全策略,是为了满足应用的安全需求制定的主体对客体访问的一系列规则集 它反映信息系统对安全的需求。是对访问如何控
3、制,如何做出访问决定的高层指南。最基本的访问规则可表示为:7l自主访问控制(Discretionary access control:DAC)l强制访问控制(Mandatory access control:MAC)l基于角色的访问控制(Role based access control:RBAC)l基于属性的访问控制(Attribute based access control,ABAC)访问控制策略模型8例子自主访问控制,如主流操作系统(Windows NT Server,UNIX 系统),防火墙(ACLs)等强制访问控制自主访问控制模型l任何访问控制策略能表示成最基本的三元组,因此可以被
4、形式化成矩阵。File1File2File3User1rwrrwoUser2rwxor User3rxrwowl两种流行的实现机制为基于矩阵的列或者行列或者行来压缩信息。基于列:访问控制列表基于列:访问控制列表(ACL:Access Control List)基于行:基于行:能力表(Capabilities List,CL)File1File2File3User1rwrrwoUser2rwxor User3rxrwow对应的访问控制列表:acl(File1)=(User1,rw),(User2,rwxo),(User3,rx)acl(File2)=(User1,r),(User2,r),(Us
5、er3,rwo)acl(File3)=(User1,rwo),(User3,w)能力表:cap(User1)=(File1,rw),(File2,r),(File3,rwo)cap(User2)=(File1,rwxo),(File2,r)cap(User3)=(File1,rx),(File2,rwo),(File3,w)Unix简化后的保护位访问控制列表(文件权限表)nACLs 很长,所以合并用户 nUNIX:三级用户:owner,group,rest 三类权限:r,w,x 强制访问控制模型在强制访问控制模型,用户和客体资源都被赋予一定的安全级别,用户不能改变自身和客体的安全级别,只有管理
6、员才能够确定用户和组的访问权限。和DAC模型不同的是,MAC是一种多级访问控制策略,它的主要特点是系统对访问主体和受控对象实行强制访问控制,系统事先给访问主体和受控对象分配不同的安全级别属性,在实施访问控制时,系统先对访问主体和受控对象的安全级别属性进行比较,再决定访问主体能否访问该受控对象。多级安全 由于用户的访问涉及到访问的权限控制规则集合,将敏感信息与通常资源分开隔离的系统,称之为多级安全信息系统。多级安全系统必然要将信息资源按照安全属性分级考虑,安全类别有两种类型,一种是有层次的安全级别(Hierarchical Classification),分为TS,S,C,RS,U 5级,它们是
7、绝密级别(Top Secret)、秘密级别(Secret)、机密级别(Confidential)、限制级别(Restricted)和无级别级(Unclassified);另一种是无层次的安全级别,不对主体和客体按照安全类别分类,只是给出客体接受访问时可以使用的规则和管理者。14机密性安全策略Bell-LaPadula模型 保密性分类形式是按照线性排列的安全许可。这些许可代表了敏感等级。安全许可越高,信息就越敏感。数据和用户被划分为以下安全等级 公开(Unclassified)受限(Restricted)秘密(Confidential)机密(Secret)高密(Top Secret)每一个主体都
8、有一个安全许可。当我们同时指主体的许可和客体的密级时,用术语“密级”。15机密性安全策略Bell-LaPadula模型 Bell-LaPadula安全模型中结合了强制性访问控制和自主访问控制。“S对O有自主的读(写)访问权”,表示了与自主访问控制部分相对应的S和O的访问控制矩阵条目中包含一项读(写)的权限。即如果没有强制性控制,S就可以读(写)O。16机密性安全策略Bell-LaPadula模型设L(S)=l,是主体S的安全许可,并设L(O)=l,是客体O的安全密级。对于所有安全密级li,i=0,k1,有li li+1。简单安全条件,预备版:S可以读O,当且仅当lo ls,且S对O具有自主型读
9、权限。(不上读)*-属性(星号属性),预备版:S可以写O,当且仅当ls lo,且S对O具有自主型写权限。(不下写)17机密性安全策略Bell-LaPadula模型n不上读/不下写保证保密性禁止读允许读Top Secret主体SecretUnclassifiedTop Secret客体SecretUnclassified允许读允许写禁止写Top Secret主体SecretUnclassifiedTop Secret客体SecretUnclassified允许写18例子n防火墙所实现的单向访问机制n不允许敏感数据从内部网络(安全级别为“机密”)流向Internet(安全级别为“公开”)n提供“不
10、上读”功能来阻止Internet对内部网络的访问 n提供“不下写”功能来限制进入内部的数据流只能经由由内向外发起的连接流入(例如,允许HTTP的GET操作而拒绝POST操作,或阻止任何外发的邮件)19完整性安全策略Biba模型系统包括一个主体集合S,一个客体集合O和一个完整性等级集合I,这些等级是有序的。等级越高,程序正确执行的可靠性就越高。高等级的数据比低等级的数据具备更高的精确性和可靠性。此外,这个概念隐含的融入了“信任”这个概念。事实上,用于衡量完整性等级的术语是“可信度”。20完整性安全策略Biba模型s S可以读取o O,当且仅当i(s)i(o)。s S可以写入o O,当且仅当i(o
11、)i(s)。s1 S可以执行s2 S,当且仅当i(s2)i(s1)。(调用)21完整性安全策略Biba模型不下读/不上写保证完整性 允许读禁止读High integrityMedium integrityLow integrity允许读禁止写允许写允许写High integrityMedium integrityLow integrityHigh integrityMedium integrityLow integrityHigh integrityMedium integrityLow integrity22例子对WEB服务器的访问过程 定义Web服务器上发布的资源安全级别为“秘密”,Int
12、ernet上用户的安全级别为“公开”,依照Biba模型,Web服务器上数据的完整性将得到保障 Internet上的用户只能读取服务器上的数据而不能更改它 23基于角色访问控制(RBAC)核心RBAC包含了5个基本的数据元素:用户集(USERS)、角色集(ROLES)、对象集(OBJS)、操作集(OPS)、权限集(PRMS)。RBAC的基本思想是权限被分配给角色,角色被分配给用户。此外,核心RBAC中还包含了用户会话集,用户建立会话,通过会话激活角色。会话是从用户到该用户的角色集的某个激活角色子集的映射。会话激活了用户授权角色集的某个子集,这个子集称为活跃角色集。GB/T 25062-2010
13、RBAC参考模型通过四个RBAC模型组件来进行定义核心RBAC、角色层次RBAC、静态职责分离关系、动态职责分离关系。24核心RBAC25层次RBAC角色继承:角色有自己的属性,但可能还继承其他角色的许可。角色继承可以用祖先关系来表示。角色2是角色1的“父亲”,它包含角色1的权限 心脏病专家风湿病专家21专家医生护士上级访问权限高于下级26带约束的RBAC角色限制:包括角色互斥与角色基数限制。对于某些特定的操作集,某一个用户不可能同时独立地完成所有这些操作。角色互斥可以有静态和动态两种实现方式。静态角色互斥:只有当一个角色与用户所属的其他角色彼此不互斥时,这个角色才能授权给该用户。动态角色互斥
14、:只有当一个角色与一主体的任何一个当前活跃角色都不互斥时,该角色才能成为该主体的另一个活跃角色。角色基数限制是指在创建角色时,要指定角色的基数。在一个特定的时间段内,有一些角色只能由一定人数的用户占用。基于属性的访问控制 开放网络环境中系统访问控制的新挑战 海量性。终端、用户数量庞大,加重了系统管理的负担 动态性。节点和用户以及访问数据对象实时变化,体现出很强的动态性,无法预先获得主客体身份的全集。隐私性。信息的共享对个人隐私和数据隐私的保护提出了更高的要求。数据交付于数据服务提供商前需考虑对存储于数据服务平台上的数据保护,如数据加密后存储在云端,只有满足某些条件的用户才可以访问,保护了数据隐
15、私。ABAC适合于开放和分布式系统中的授权和访问控制。基于属性的访问控制:进行授权时,系统需要进一步考虑用户、被访问资源及当前上下文环境这些实体的属性约束。把与访问控制相关的时间、实体空间位置、实体行为、访问历史等信息当作主体、客体、权限和环境的属性来统一建模,通过定义属性之间的关系描述复杂的授权和访问控制约束,能够灵活地表达细粒度、复杂的访问控制策略,更好地支持大规模信息化系统的细粒度,动态的访问控制。l ABAC策略是一个四元组(S,O,P,E),其中S,O,P和E分别是由主体属性、客体属性、权限属性和环境属性确定的主体、客体、权限和环境集合。l ABAC授权是一个四元组(,E),表示属性
16、值为v1,v2,vn的主体s对属性值为v1,v2,vm的客体o在环境属性集合E满足条件下,实施属性值为v1,v2,vk的操作例如,在一个网上组播系统中,ABAC模型包含:主体属性为用户类型,年龄、费用余额,IP地址,管理域,客体属性为资源类型、所需费用,应用域,权限属性有操作类型,环境属性为访问量。其中用户类型=管理员,高级用户,普通用户,未注册用户;管理域=清华大学,北京大学;资源类型=L1,L2,L3;应用域=清华大学,北京大学;操作类型=在线观看,下载,上传,编辑,删除。访问控制策略定义为:普通用户通过付费的方式或者于年龄大于13小于21的高级会员可以收看电影类型L2的节目;年龄大于21的高级用户可以下载或在线观看所有类型的电影;管理员具有管理域内的资源进行所有的操作权限;对于未注册用户,只有访问客户端的IP为202开头且服务器的访问用户数量不足50人时才能在线观看L1的资源。31