第四章访问控制技术主要内容1.访问控制概念2.访问控制矩阵3.BLP模型4.基于角色的访问控制模型5.访问控制实施6.访问控制技术新进展7.小结第四章访问控制技术1访问控制概念访问控制概念访问控制策略第四章访问控制技术访问控制概念访问控制涉及三个基本概念,即主体、客体和授权访问。主体。主体是一个主动的实体,该实体造成了信息的流动和系统状态的改变,它包括用户、用户组、终端、主机或一个应用,主体可以访问客体。客体。客体是指一个包含或接受信息的被动实体,对客体的访问要受控。授权访问。授权访问指主体访问客体的允许,对每一对主体和客体来说授权访问是给定的,决定了谁能够访问系统,能访问系统的何种资源以及如何使用这些资源。第四章访问控制技术访问控制策略访问控制策略是用于规定如何做出访问决定的策略。传统的访问控制策略包括一组由操作规则定义的基本操作状态。典型的状态包含一组主体(S)、一组对象(O)、一组访问权(A[S,O]),包括读、写、执行和拥有。访问控制策略涵盖对象、主体和操作,通过对访问者的控制达到保护重要资源的目的。对象包括终端、文本和文件,系统用户和程序被定义为主体。操作是主体和客体的交互。第四章访问控制技术2访问控制矩阵保护状态访问控制概念矩阵模型第四章访问控制技术保护状态系统的当前状态是由所有内存、二级缓存、寄存器和系统中其他设备的状态构成的集合。这个集合中涉及安全保护的子集称为保护状态。1.(系统的)状态——指一组内部存储器或外部存储器的当前值。2.(系统的)保护状态——状态存储器中用来描述系统的安全保护的子集,称为保护状态3.状态的安全性——假设P是系统的保护状态,Q是P中那些认为是安全的状态。第四章访问控制技术保护状态4.刻画Q中的状态是安全策略的研究目标;保证系统处于Q中的状态则是安全机制的研究目标。5.一组安全机制的作用是限制系统到达保护状态的子集合R⊆P。图4-1系统保护状态区分图第四章访问控制技术保护状态给定一组安全机制,它对于安全策略有下列概念:安全的—如果R⊆Q;精确的—如果R==Q;过保护的—如果它是安全的但不是精确的;宽松的—如果R不包含Q。第四章访问控制技术访问控制矩阵模型访问控制矩阵是用于描述当前保护状态的工具。描述一个保护系统的最简单框架模型是使用访问控制矩阵模型,这个模型将所有用户对于文件的权限存储在矩阵中。第四章访问控制技术访问控制矩阵模型客体——受保护的实体(如数据、文件等)的集合,记为O;主体——发起行为的实体集合(如人、进程等),记为S。访问权限——对象集合O和主体集合S之间的关系用带有权限的矩阵A来描述,所有权限的集合的类型用集合R来表示,记为R。对于一个主体s∈S和一个客体o∈O,用[s,o]∈R来表示允许s对o实施的所有访问权限集合。这样,可以得到以S中元素为行指标,O中元素为列指标,表值为a[s,o]的一个矩阵A,称为访问控制矩阵。这时,系统的安全状态可以用三元组(S,O,A)来表示。第四章访问控制技术客体主体主机1主机2主机3主机1{own}{ftp}{ftp}主机2{ftp,nfs,mail,own}{ftp,nfs,mail}主机3{ftp,mail}{ftp,nfs,mail,own}主体客体文件1文件2进程1进程2进程1{读,写,拥有}{读}{读,写,执行,拥有}{写}进程2{添加}{读,拥有}{读}{读,写,执行,拥有}第四章访问控制技术访问控制矩阵优缺点分析访问矩阵模型对访问控制理解,提供了一个很好的框架。现实中,直接用访问控制矩阵表示保护状态或安全状态是不现实的,描述状态的转移也是不方便的(上面两个例子向我们展示了静态的访问控制矩阵的概念。但是在实际系统中经常需要考虑保护状态处于动态转移的情形。)就好比用列表法表示一个复杂函数一样笨拙,更严重的是使用大量数据经常会掩盖其内在的逻辑关系。第四章访问控制技术3BLP模型BLP模型BLP模型的形式化描述第四章访问控制技术BLP模型BLP模型是一个形式化模型,使用数学语言对系统的安全性质进行描述,BLP模型也是一个状态机模型,它反映了多级安全策略的安全特性和状态转换规则。BLP模型定义了系统、系统状态、状态间的转换规则,安全概念、制定了一组安全特性,对系统状态、状态转换规则进行约束,如果它的初始状态是安全的,经过一系列转换规则都是保持安全的,那么可以证明该系统是安全的。第四章访问控制技术BLP模型BLP模型是一个形式化模型,使用数学语言对系统的安全性质进行描述,BLP模型也是一个状态机模型,它反映了多级安全策略的安全特性和状态转换规则。BLP模型定义了系统、系统状态、状态间的转换规则,安全概念、制定了一组安全特性,对系统状态、状态转换规则进行约束,如果它的初始状态是安全的,经过一系列转换规则都是保持安全的,那么可以证明该系统是安全的。第四章访问控制技术BLP模型在BLP模型中将主体对客体的访问分为r(只读),w(读写),a(只写),e(执行),以及c(控制)等几种访问模式,其中c(控制)是指该主体用来授予或撤销另一主体对某一客体的访问权限的能力。BLP模型的安全策略从两个方面进行描述:自主安全策略(DiscretionaryPolicy)和强制安全策略(MandatoryPolicy)。自主安全策略与访问控制矩阵有关。强制安全策略与(主体和客体的)密级和范畴有关。第四章访问控制技术BLP模型介绍of1lsLSfs:1loLOfo:1cf1lsLSfc:111()(),scfsfsSs所谓密级是一个有限全序集L。用两个函数和表示主体S和客体O的密级函数。主体的密级函数为:客体的密级函数为:为了使模型能适应主体的安全级变化的需要,还引入了一个主体的当前密级函数:主体的当前密级是可以变化的,但要求满足第四章访问控制技术访问控制矩阵为了能准确地理解密级的含义,用一个例子来说明。例3.假设主体的集合是S={Alice,Bob,Carol};客体的集合是O={Email_File,Telephone_Number_Book,Personal_File}。客体主体Email_FileTelephone_Number_BookPersonal_FileAlice{w}{r}{r}Bob{a}{w,o,app}{a}Carol{a}{r}第四章访问控制技术sf1cf1假设密级集合L={绝密,机密,秘密,敏感,普通}。L中的序:绝密机密秘密敏感普通。密级函数主、客体Alice绝密敏感Bob机密敏感Carol普通普通Email_File秘密Telephone_Number_Book普通Personal_File绝密密级函数表of1第四章访问控制技术Bell-LaPadula模型中,对不同的访问要有不同的密级关系。为了防止高密级的信息流入低密级的主体或客体中,在“读”访问中它要求主体的当前密级不得低于客体的密级(上读),而在“写”访问中则要求主体的密级不得高于客体的密级(下写),这样就能保证信息流只能从一个客体流到同等密级或较高密级的客体中,从而能适应军事指挥的信息机密性需求。Carol可以从Telephone_Number_Book中读取信息,然后写到Email_File中。三个主体中的任何一个都不能读取Email_File中的信息,因为Bob和Carol既不满足访问控制矩阵的要求又不满足密级的限制,而Alice的当前密级不满足读的要求(当她以后密级升高后可以)。第四章访问控制技术csCSfs:2csCSfc:2coCOfo:2Bell-LaPadula模型还使用了范畴的概念。范畴描述了实体(主体和客体)的一种信息。每一个实体被指定到若干个范畴内,每一个实体对应到了范畴集合的一个子集,而按照包含关系“⊆”,实体的范畴子集构成了一种偏序关系。用(C,⊆)表示范畴集合按照包含关系形成的偏序集。同实体的密级一样,定义主体的最高范畴等级、主体的当前范畴等级和客体的范畴等级如下。主体的最高范畴等级函数为:主体的当前主体的范畴等级函数为:客体的范畴等级函数为:第四章访问控制技术sf),(21ssff用表示主体的最高范畴等级函数范畴概念的思想是,仅当主体有访问需要的时候才考虑这种访问,略称为“需要知道(needtoknown)”思想。范畴直观上就是对业务的一种划分,以避免那些不需要的访问的发生。再把实体的密级和范畴等级的笛卡尔积称为实体的安全级,按照下属规则它构成一个偏序。cf),(21ccff用表示主体的当前范畴等级函数of),(21ooff用表示客体的范畴等级函数第四章访问控制技术在例3中,进一步假设范畴集合={VPN课题组,办公室,后勤},而相应的范畴等级函数由下表给出。sf1of1cf1范畴等级表范畴等级函数主、客体Alice{VPN课题组,办公室}{VPN课题组}Bob{VPN课题组}{VPN课题组}Carol{办公室,后勤}{办公室,后勤}Email_File{VPN课题组}Telephone_Number_Book{办公室,后勤}Personal_File{VPN课题组,办公室}第四章访问控制技术Carol仍然可以从Telephone_Number_Book中读取信息,因为Carol的当前安全等级(普通,{办公室,后勤})等于Telephone_Number_Book的安全等级(普通,{办公室,后勤}),满足“读低”的要求。但她不可以写到Email_File中,因为Email_File的安全等级是(秘密,{VPN课题组})对Carol的最高安全等级(普通,{办公室,后勤})没有控制关系,不满足“写高”的要求。第四章访问控制技术对BLP安全模型的评价BLP模型是一个最早的对多级安全策略进行描述的模型;BLP模型是一个严格形式化的模型,并给出了形式化的证明;BLP模型是一个很安全的模型,既有自主访问控制,又有强制访问控制;BLP模型控制信息只能由低向高流动,能满足军事部门等一类对数据保密性要求特别高的机构的需求。但是,总的来说,BLP模型“过于安全”。其一:上级对下级发文受到限制;其二,部门之间信息的横向流动被禁止;其三,缺乏灵活、安全的授权机制。另外,BLP模型也有不安全的地方。①低安全级的信息向高安全级流动,可能破坏高安全客体中数据完整性,被病毒和黑客利用。②只要信息由低向高流动即合法(高读低),不管工作是否有需求,这不符合最小特权原则。③高级别的信息大多是由低级别的信息通过组装而成的,要解决推理控制的问题。第四章访问控制技术4基于角色的访问控制模型RBAC模型介绍NISTRBAC模型RBAC模型的特点第四章访问控制技术RBAC模型介绍基于角色的访问控制(Role-BasedAccessControl,RBAC)模型是20世纪90年代研究出来的一种新模型,但从本质上讲,这种模型是对前面描述的访问矩阵模型的扩展。这种模型的基本概念是把许可权(Permission)与角色(Role)联系在一起,用户通过充当合适角色的成员而获得该角色的许可权。第四章访问控制技术NISTRBAC模型RBAC参考模型由4个模型构件定义:核心RBAC,层次RBAC,静态职责分离和动态职责分离。核心RBAC定义了获取一个完备的基于角色的访问控制系统的最小RBAC元素集合、元素集和关系。层次RBAC构件添加了关系来支持角色层次。它定义了角色之间的一个优先级关系。静态职责分离的关系模型构件定义了角色层次的存在和不存在关系。动态职责分离关系,定义了在一个用户会话中被激活的角色的排他关系。第四章访问控制技术核心RBAC核心RBAC包括五个基本的数据元素集:用户(USERS)、角色(ROLES)、对象(OBS)、操作(OPS)和权限(PRMS)。第四章访问控制技术层次RBAC层次是结构化角色来反映一个组织权威和责任的一种自然的方法。角色层次定义了角色之间的一个继承关系,继承根据权限描述。第四章访问控制技术约束的RBAC约束RBAC是在RBAC模型上增加了职责分离关系。职责分离关系用于组