摘要
提出了一种访问控制描述方法和服务域的概念。以服务域作为访问控制策略的组织单元,简化访问控制的管理和使用。
DAFMATI是一种支持**多授权**类型的授权框架。这种模型主要是针对**医疗应用系统**。能够动态把访问请求分为3种:一般、紧急和基于上下文的。
访问控制策略描述
①目的
- 简化用户配置过程,底层的访问控制模型对用户来说是透明的。用户描述了访问控制的配置后,系统对其做一致性检查,并将其映射到底层的访问控制模型配置。
②策略描述基本元素包括:
- 用户(User):访问控制的主体,一般都是指系统用户。
- 客体(Object):系统中包含或接受信息的被动实体。
- 访问属性(Access Attribute):访问方式,如读、写等。
③策略描述包括以下内容:
- 用户集合(User Set):某些用户在系统中需要完成的任务相同,可以把他们归入一个用户集合 ,然后对这个集合进行统一配置。定义方式:US:USName={userl,user2,…}。USName是用户集合的名字。
规则:一个用户最多只能属于一个用户集合;而一个用户集合可以包含多个用户。
- 客体集合(Object Set):同理。定义方式:OS:OSName= {object1,object2 ,…}。OSName是客体集合的名字。
规则:一个客体最多只能属于一个客体集合,而一个客体集合可以包含多个客体。
- 授权:授权的形式,是用三元组来表示用户、用户集合,客体、客体集合到访问属性的映射。用 x 表示访问属性,有4种授权形式:(User,Object,x) (User,OS,x) (US,Object,x) (US,OS,x)
如果一个用户User1对客体O1具有访问属性x1,同时User1所属用户集合对O1具有访问属性x2,那么User1对客体O1最终的访问属性就是这两种属性的交集x1∩x2
- 用户和客体的等级:等级是用户或客体的一个属性,用一个非负整数表示。信息只能从低级流向高级
用户User1读访问客体O1,则必须有G1(User1的等级)≤G2(O1的等级);
用户User1可读写客体O1,则必须有G1(User1的等级)≥G2(O1的等级);
等级的定义方式:GRADE={(entity1,grade1);(entity2,grade2);…}
基于服务域的策略组织
①规则
- 引入服务域的概念,把不同的网络服务划入各自独立的服务域中,与该服务相关的主客体等都在服务域内,服务域是进行服务器管理及策略描述的一个基本单位。
- 服务域是某一个服务运行所涉及到的所有主、客体的集合,记为D,包括所要访问的文件、设备、网络,以及用于管理这一服务的用户、角色、类型等。
- 服务域的定义包括下面几个部分:
Service Domain {Name= “…”;USER={…};OBJECT={…};…}。其中Name为该服务域的名称;USER为服务域中所包含的所有用户;OBJECT为服务域中所包含的所有客体。
- 为保证服务域之间的相互独立,引入规则:将不同的服务划分为不同的独立的服务域;服务域定义必须互斥,对两个不同的服务域,分别定义两个不同的服务器 的工作范围。
- 服务域的不相交主要有5个方面内容:用户和所属的用户集合 必须属于同一个服务域;客体和所属的客体集合也必须属于同一个服务域;两个服务域的主体部分不相交;两个服务域的客体部分不相交;一个服务域中的主体只能同一服务域的客体有访问权限,而不能访问另外一个域的客体。
②基于服务域的描述模板
- 限制服务器访问资源:通过服务域取消服务器对一般文件的权限,同时通过客体集合设置实现对访问服务域中资源访问权限的限制。服务域中的客体集合为O ,服务器对资源的访问请求为A,把集合O分为子集O1,O2,…On,对其中的任意一个Oi满足:
- 用户集合配置:设置用户集合的基本原则就是权限分离以及最小特权。
划分不同的服务域,给不同的服务域设置不同的用户和用户集合;在某个服务域内,根据不同的任务划分不同的用户集合,用于服务器的运行或管理。一般至少设置如下几个用户集合:
服务器用户集合:对应服务器程序运行时的角色;
服务器管理用户集合:管理并维护服务器正常运行,对服务域中的大部分客体都有绝对的权限。
审计角色:审计服务器运行状态,根据日志文件进行,权限是读访问日志文件。
安全策略描述模型的实现
①一致性检查
- 一致性检查6条检查规则:
(1) 任意两个服务域的用户和客体都不能有交集;
(2) 任一服务域中,只能使用本服务域中定义的用户和客体;
(3) 每个用户只能属于一个用户集合;
(4) 每个客体只能属于一个客体集合;
(5) 任一服务域中,只能使用本服务域中已经定义的用户集合和客体集合;
(6) 用户和客体的等级值只能为0至252
②访问控制机制的映射
- 映射中主要用到的3个模型:ACL、MAC和RC。
(1)ACL:定义了哪个主体可以以哪种权限访问哪个客体
(2)RC:一种基于角色和类型的模型,每个用户都有一个默认的角色,其所有进程都会继承这个角色。对客体的访问根据进程当前角色和客体的类型允许或拒绝。
(3)MAC每个实体都有一个安全级别,安全级别包括两项:安全分级(S)和安全范畴(C)。安全分级是一个分层次的值,如公开、秘密、机密和绝密;范畴表示工作区域,可以用集合表示。
实体E1安全级别为(S1,C1),实体E2安全级别为(S2,C2),且S1≥s2且C1是C2的超集,则表示E1支配E2。
MAC中两条最基本的原则:(1)非上读。一个主体Si要对客体Oj进行读访问,则必须有Si支配Oj。(2)非下写。如果Si同时对O1有读权限,对O2有写权限,那么必须有O2支配O1。
- 映射方法:
(1)(User,Object,c)和(User,OS,x),添加到客体Object和客体集合OS对应的类型的ACL中;
(2)(US,Object,x)和(US,OS,x)两种描述,映射到RC模型,添加到RC策略库中;
(3)对于用户和客体等级的描述,将被映射为MAC模型的安全分级。
③策略库结构
保存原有的配置信息