APP下载

面向应用对象的访问控制模型研究

2012-08-15盖新貌

计算机工程与设计 2012年1期
关键词:保密性访问控制完整性

李 勇,盖新貌

(1.解放军信息工程大学 电子技术学院,河南 郑州450004;2.国防科学技术大学 计算机学院,湖南 长沙410073)

0 引 言

分布式应用系统具有内部结构复杂、分布离散、用户量大、职责多样等特点,对其进行访问控制应充分考虑应用环境的上下文。目前常见的访问控制策略 (包括自主访问控制、强制访问控制和基于角色的访问控制)对分布式应用系统的保护效果并不理想:由于应用服务平台的作用,难以在分布式应用系统中实施基于安全标记的强制访问控制模型[1-5];基于角色的访问控制[6-8]虽然便于实施,但无法随上下文环境实现对权限的动态控制以及用户权限的时间关联约束。相对于上述模型,基于任务的访问控制模型(task-based access control,TBAC)[9-11]从工作流中的任务角度建模,依据任务和任务状态的不同对权限进行动态管理,更适合分布式应用系统。但目前关于TBAC模型的研究成果尚不足以直接应用,原因有二:一是TBAC模型的控制目标 (授权步、授权结构体)是工作流层面的抽象概念,如果在实际的信息系统中实施TBAC模型需要将这些抽象概念映射到应用环境中,目前未见相关研究成果;二是基于任务的访问控制缺乏具体的安全规则。本文将角色的概念和面向对象的思想[12]引入TBAC模型,提出了面向应用对象的访问控制(application object oriented access control,AOOAC)模型,解决了TBAC模型面临的两个问题。

1 面向应用对象的访问控制模型

1.1 基本思想

TBAC模型中,任务是一个逻辑概念,定义为分派给某一组织或个人按一定流程完成的工作,任务实例是任务的一次具体完成过程。为了简化问题,本文假设所有的任务都是原子任务。

从现实的角度看,信息系统的工作模式为:用户以一定身份登录应用系统完成特定的任务。因此,用户、角色、应用系统与任务之间存在密不可分的联系,本文从 “用户-角色-应用-任务”的角度进行建模。把任务抽象为应用类,把任务实例涉及的角色、进程、资源等因素封装为应用对象 (应用对象可理解为进程家族在访问客体资源时的代理),在此基础上把授权步映射为应用对象,通过角色安全向量和客体安全向量实现客体与应用对象的关联,从而实现TBAC模型到实际应用系统的映射。在安全策略方面,本文用临时权限保证逆向信息流的合法性,用保护态实现对客体的分阶段保护和对逆向信息流的限制。

1.2 模型元素

定义1 用户是应用系统的使用者和任务的执行者,记为u,用户集记为U。

定义2 角色是用户登录应用系统的身份,记为r,角色集记为R。

用户集和角色集之间是多对多映射关系。在角色分配过程中应考虑角色之间的静态职责分割和动态职责分割[13]。角色分配不作为本文研究的重点,此处不再赘述。

定义3 主体是系统中的主动实体 (进程),记为sub,主体集记为SUB。客体是系统中的被动实体 (文件、设备、服务等),记为obj,客体集记为OBJ。主体对客体的操作类型为OP= {r,a,w},r、a、w分别表示只读、只写、读写操作。

定义4 应用对象用四元组 (R,SUB,OBJ,T)表示,其中T为有效期。应用对象记为ao,应用对象的集合记为AO。ao∈AO,ao.r是用户登录应用系统的角色;ao.SUB是用户以角色ao.r登录应用系统形成的主体以及该主体的后代主体构成的集合 (ao.SUBSUB);ao.OBJ是由ao.SUB创建的客体集 (ao.OBJOBJ);ao.t是应用对象的有效期。应用类是对完成相同任务的应用对象的抽象,记为ac,应用类的集合记为AC。

约定1ao∈AO,ao.OBJ称为ao的内部客体,OBJ-ao.OBJ称为ao的外部客体。

应用类是一个抽象概念,应用对象是一个具体概念。一个应用类可以实例化为多个应用对象,这些应用对象用于完成相同的任务,具有相同的角色和有效期,但拥有不同的进程子集和客体子集。另外,应用类是相对静态的,应用对象是动态的,其内部状态随着任务的执行过程而不断变化。

定义5ao∈AO,ao.state表示该应用对象的状态,应用对象的状态空间定义为 {active,sleep,sdead,fdead},分别表示应用对象处于活跃状态、睡眠状态成功死亡状态和失败死亡状态。

应用对象由活跃状态到睡眠状态称为被挂起,由睡眠状态到活跃状态称为被激活,由活跃或睡眠状态到死亡状态称为被撤销。应用对象状态转换的依据是应用对象之间的依赖关系。依赖本来是任务之间的相互关系,在AOOAC模型中体现在应用对象之间的相互关系上。对依赖关系的描述见文献 [10],本文只给出各种依赖关系的符号表示。

定义6ao,ao′∈AO:①ao顺序依赖于ao′记为ao→ao′;②ao同步依赖于ao′记为aoao′;③ao失败依赖于ao′记为ao|→ao′;④ao互斥依赖于ao′记为ao⊥ao′。

定义7 C是线性全序保密性级别。c∈C,c′∈C,c>c′表示保密性级别c高于保密性级别c′,c<c′表示保密性级别c低于保密性级别c′,c=c′表示保密性级别c等于保密性级别c′。I是线性全序完整性级别。i∈I,i′∈I,i>I′表示完整性级别i高于完整性级别i′,i<i′表示完整性级别i低于完整性级别i′,i=i′表示完整性级别i等于完整性级别i′。

定义8 角色安全向量定义为四元组 (C,I,D,P)。r∈R,r.c和r.i分别表示角色的保密性标记和完整性标记;D是组织机构中岗位的集合,岗位之间形成树状家族关系,r∈R,r′∈R,r.d∠r′.d表示r隶属于r′称r是r′的下属,r′是r的上级,r.d√r′.d表示r直接隶属于r′,称r是r′的直接下属,r′是r的直接上级,r.d~r′.d表示r和r′拥有相同的直接上级,称r和r′互为同事;P= (OP,OBJ,T)∪ { }是临时权限集,r∈R,r.p= 表示角色r没有有效的临时权限,r.p= (op,obj,t)表示角色r对应的应用对象在有效期t内拥有对客体obj进行op操作的临时权限。

约定2 nt表示当前时间。ao∈AO,ao.t≥nt表示应用对象已失效,ao.t<nt表示应用对象未失效;r∈R,r.p.t≥nt表示临时权限已失效,r.p.t<nt表示临时权限未失效。

定义9 客体安全向量定义为四元组 (C,I,PS)。obj∈OBJ,obj.c和obj.i分别表示客体的保密性标记和安全性标记;PS=(AO∪{},S)表示客体的保护态,其中AO是应用对象集,表示客体的属主,S= {no,public,protect,private}是客体在其属主内部的状态,obj∈OBJ,obj.ps.ao=表示res不属于任何应用对象,如果-ao∈AO使得obj.ps.ao=ao则表示obj是应用对象ao的内部客体;当且仅当obj.ps.ao=时obj.ps.s=no,否则obj.ps.s=public表示obj处于公开态,obj.ps.s=protect表示obj处于保护态,obj.ps.s=private表示obj处于私有态。

约定3obj∈OBJ,若obj.b=则称obj是公共客体,否则称其为非公共客体。

下面定义可信对象,用于完成动态授权和调整客体的保护态的特权操作。

定义10 可信角色是角色集合中的特殊元素,该角色拥有调整非公共客体的保护态以及授予应用对象临时权限的特权,可信角色记为tr。

定义11 用户以tr登录应用系统后生成的主体集以及相关权限集和客体集的封装体称为可信对象,记为to。

针对可信角色和可信对象,提出以下3条假设:

假设1 可信角色分配给可信赖的用户。

假设2 可信对象对应的静态代码是经过安全测评认证的,且静态代码的加载过程真实可信。

假设3 可信对象的行为规则是完备的,不存在安全漏洞。

1.3 安全规则

1.3.1 状态转换规则

规则1ao∈AO,当满足以下条件之一时ao被挂起:

(1)-ao'∈AO,ao→ao',且ao'.state≠sdead;

(2)-ao'∈AO,ao|→ao',且ao'.state≠fdead;

(3)-ao'∈AO,aoao',且ao'.state≠active;

(4)-ao'∈AO,ao⊥ao',且ao'.state=active。

规则2ao∈AO,当满足以下全部条件时被激活:

(1)-ao'∈AO,ao→ao',且ao'.state=sdead;

(2)-ao'∈AO,ao|→ao',且ao'.state=fdead;

(3)-ao'∈AO,aoao',且ao'.state=active;

(4)-ao'∈AO,ao⊥ao',且ao'.state≠active。

规则3ao∈AO,当且仅当满足以下条件之一时被撤销:

(1)ao的任务已经完成;

(2)ao.t>nt。

1.3.2 访问控制规则

规则4obj∈OBJ,obj的安全向量按如下规则进行标记:

(1)若obj是由系统创建的公共客体,则在创建该客体时,按如下规则设置其安全向量:obj.ps.ao= ,obj.ps.s=no,obj.c为最低保密级别,obj.i为最高完整性级别;

(2)若obj是由应用对象创建的非公共客体 (假设obj由ao创建,ao∈AO),则在创建该客体时,按如下规则设置其安全向量:obj.c=ao.r.c,obj.i=ao.r.i,obj.ps.ao=ao,obj.ps.s=private;

(3)若 obj.ps.ao≠ ,则可信对象to可在 {public,protect,private}范围内调整obj.ps.s的值;

(4)若obj是由应用对象创建的非公共客体 (假设obj由ao创建,ao∈AO),则当ao被撤销时,obj.ps.ao≠ ,obj.ps.s=no。

规则5obj∈OBJ,若obj.ps.s=public,则to可对obj进行保密性检查或 (和)完整性检查,并赋予特定角色以指定方式访问obj的临时权限。

规则6 允许ao对obj执行r操作,当且仅当满足下列条件之一:

(1)ao.state=active∧obj.ps.ao=∧ao.r.c≥obj.c∧ao.r.i≤obj.i;

(2)-ao'∈AO,使得ao.state=active∧obj.ps.ao=ao'∧obj.ps.s=public∧ ((ao.r.c≥obj.c∧ao.r.i≤obj.i)∨ (ao.r.p= (r,obj,t)∧ao.r.p.t<nt));

(3)-ao'∈AO,使得ao.state=active∧obj.ps.ao=ao'∧obj.ps.s=protect∧ (ao'.r.d∠ao.r.d∨ao'.r.d~ao.r.d)∧ao.r.c≥obj.c∧ao.r.i≤obj.i;

(4)ao.state=active∧obj.ps.ao=ao。

规则7 允许ao对obj执行a操作,当且仅当满足下列条件之一:

(1)ao.state=active∧obj.ps.ao=∧ao.c≤obj.c∧ao.i≥obj.i;

(2)-ao'∈AO,使得ao.state=active∧obj.ps.ao=ao'∧obj.ps.s=public∧ ((ao.r.c≤obj.c∧ao.r.i≥obj.i)∨ (ao.r.p= (a,obj,t)∧ao.r.p.t<nt));

(3)-ao'∈AO,使得ao.state=active∧obj.ps.ao=ao'∧obj.ps.s=protect∧ (ao'.r.d∠ao.r.d∨ao'.r.d~ao.r.d)∧ao.c≤obj.c∧ao.i≥obj.i;

(4)ao.state=active∧obj.ps.ao=ao。

规则8 允许ao对obj执行w操作,当且仅当满足下列条件之一:

(1)ao.state=active∧obj.ps.ao=∧ao.c=obj.c∧ao.i=obj.i;

(2)-ao'∈AO,使得ao.state=active∧obj.ps.ao=ao'∧obj.ps.s=public∧ ((ao.r.c=obj.c∧ao.r.i=obj.i)∨ (ao.r.p= (w,obj,t)∧ao.r.p.t<nt));

(3)-ao'∈AO,使得ao.state=active∧obj.ps.ao=ao'∧obj.ps.s=protect∧ (ao'.r.d∠ao.r.d∨ao'.r.d~ao.r.d)∧ao.r.c=obj.c∧ao.r.i=obj.i;

(4)ao.state=active∧obj.ps.ao=ao。

规则6~规则8蕴涵以下几点:①任何应用对象可访问其内部客体;②临时权限只适用于访问处于公开状态的非公共客体;③任何处于保护态的客体只允许其属主的上级或同事访问;④任何处于私有态的客体只允许其属主访问。

2 模型安全性分析

BLP模型和Biba模型是访问控制的经典模型,分别用于解决保密性和完整性问题。下面通过证明AOOAC模型与BLP模型和Biba模型的符合性,分析该模型的安全性。

引理1 在不考虑临时权限的情况下,AOOAC模型符合BLP模型。

证明:只须证明在不考虑临时权限的情况下应用对象的行为满足ss-特性和*-特性。

首先证明ss-特性。ss-特性要求主体对客体进行读操作的充要条件是主体安全级支配客体安全级。下面对客体类型进行讨论。①obj∈OBJ,若obj是由系统创建的公共客体,则根据规则4,obj拥有最低保密级别。因此ao∈AO,有ao.r.c≥obj.c,因此ao读访问obj符合ss-特性。②obj∈OBJ,若obj是由已死亡应用对象创建的公共客体,则根据规则4,obj.ps.ao=,obj.ps.s=no,根据规则6和规则8,ao∈AO读访问obj的充要条件是ao.r.c≥obj.c∧ao.r.i≤obj.i,符合ss-特性。③obj∈OBJ,若obj是非公共客体,则 -ao′∈AO,obj.ps.ao=ao′。此时,若obj.ps.s=public,在不考虑临时权限的情况下,根据规则6和规则8,ao∈AO读访问obj的充要条件是ao.r.c≥obj.c∧ao.r.i≤obj.i,符合ss-特性。若obj.ps.s=protect,根据规则6和规则8,ao∈AO读访问obj的充要条件是 (ao′.r.d∠ao.r.d∨ao′.r.d~ao.r.d)∧ao.r.c≥obj.c∧ao.r.i≤obj.i,该条件是对ao.r.c≥obj.c∧ao.r.i≤obj.i的加强,因此也符合ss-特性。若obj.ps.s=private,根据规则6和规则8,ao∈AO读访问obj的充要条件是ao=ao′,根据规则4,obj.c=ao′.r.c,因此符合ss-特性。综上所述,AOOAC模型在不考虑临时权限的情况下满足ss-特性。

同理可证AOOAC模型在不考虑临时权限的情况下满足*-特性。命题成立。

引理2 在不考虑临时权限的情况下,AOOAC模型符合Biba模型。

证明:与引理1证明过程相似,略。

引理3 AOOAC模型中由临时权限导致的逆向信息流不会破坏客体的保密性和完整性。

证明:由假设1-3可知命题成立。

引理4 AOOAC模型中非公共客体状态调整不会破坏客体的保密性和完整性。

证明:由假设1-3可知命题成立。

定理1 AOOAC模型能保证客体的保密性和完整性。

证明:由引理1-4可知命题成立。

3 与同类模型的比较

AOOAC模型融合了基于任务的访问控制、面向对象的访问控制和二维标识模型,本节简单分析AOOAC模型对相关模型的优势。文献 [9]形式化描述了TBAC模型,文献 [10]研究了任务之间的依赖关系,文献 [11]在TBAC中引入了角色的概念。但是,上述文献中存在的共同的问题是授权步、授权结构体等抽象概念在具体实施时难以 “落地”。本文提出的AOOAC模型通过将任务实例映射为应用对象较好的解决了这个问题。文献 [14-15]用面向对象的思想对系统访问控制因素进行抽象并提出访问控制规则,但访问控制规则只考虑了客体的归属而不考虑保密性和完整性因素。AOOAC模型提出的访问控制规则以保密性和完整性标记作为访问控制的主要因素,在此基础上通过客体的归属和保护态对访问行为作进一步的限制,增强了模型的安全性和适用性。文献 [3-5]研究了基于多级安全策略的二维标识模型,通过体调整客体的安全级别实现逆向信息流,这导致所有相关级别的主体都能访问级别调整后的客体,这显然不是级别调整的初衷。AOOAC模型的访问控制规则对文献 [3-4]进行了两点改进:①通过临时授权实现逆向信息流。②通过客体的保护态对应用对象的访问行为作进一步的限制。这在很大程度上提高了模型的可用性和安全性。

4 结束语

本文将面向对象思想和角色的概念引入TBAC模型,提出了面向应用对象的访问控制模型。该模型将TBAC模型中工作流层面的任务和任务实例映射为信息系统层面的应用类和应用对象,解决了基于任务的访问控制模型难以在现实系统中实施和缺少具体的安全规则等问题。将TBAC模型映射到AOOAC模型的前提条件是工作流程明确且相对固定,因此AOOAC模型并不是普适的,仅适用于人员可控、边界明确、工作流程可预期的生产型信息系统。下一步的工作重点是研究可信对象的行为规则。

[1]HE Jian-bo,QING Si-han,WANG Chao.Analysis of two improved BLP models[J].Journal of Software,2007,18 (6):1501-1509(in Chinese).[何建波,卿斯汉,王超.对两个改进的BLP模型的分析[J].软件学报,2007,18 (6):1501-1509.]

[2]ZHANG Xiang-feng,SUN Yu-fang.Dynamic enforcement of the strict integrity policy in Biba′s model [J].Journal of Computer Research and Development,2005,42 (5):746-754 (in Chinese).[张相锋,孙玉芳.Biba模型中严格完整性政策的动 态 实 施 [J].计算机研究与发展,2005,42 (5):746-754.]

[3]CAI Yi.Research on secure operating system for supporting trusted operating platform [D].Wuhan:Naval University of Engineering,2005:16-37 (in Chinese).[蔡谊.支持可信操作平台的安全操作系统研究 [D].武汉:海军工程大学,2005:16-37.]

[4]LI Yifa,SHEN Chang-xiang.A new secure model of operating system [J].Science in China Ser E Information Sciences,2006,36 (4):347-357 (in Chinese).[李益发,沈昌祥.一种新的操作系统安全模型 [J].中国科学 (E辑),2006,36(4):347-356.]

[5]LIU Wei-peng,ZHANG Xing.Research of duality and multilevel security model based on intransitive noninterference theory[J].Journal of Communications,2009,30 (2):52-58 (in Chinese).[刘威鹏,张兴.基于非传递无干扰理论的二元多级安全模型研究 [J].通信学报,2009,30 (2):52-58.]

[6]XIA Lei,HUANG Hao.Configure multi-level security policy using RBAC model [J].Application Research of Computers,2008,25 (3):891-894 (in Chinese).[夏磊,黄浩.一种使用RBAC模拟实施BLP的方法 [J].计算机应用研究,2008,25 (3):891-894.]

[7]ZHANG Hong-qi,ZHOU Jing,ZHANG Bin.Research of extension of static constraints mechanism in RBAC model [J].Journal of Beijing University of Posts and Telecommunication,2008,31 (3):123-127 (in Chinese).[张红旗,周靖,张斌.RBAC模型中静态约束机制的扩展 [J].北京邮电大学学报,2008,31 (3):123-127.]

[8]XU Feng,LAI Hai-guang,HUANG Hao,et al.Serviceoriented role-based access control [J].Chinese Journal of Computers,2005,28 (4):686-693 (in Chinese).[许峰,赖海光,黄皓,等.面向服务的角色访问控制技术研究 [J].计算机学报,2005,28 (4):686-693.]

[9]DENG Ji-bo,HONG Fan.Task-based access control model[J].Journal of Software,2003,14 (1):76-82 (in Chinese).[邓集波,洪帆.基于任务的访问控制模型 [J].软件学报,2003,14 (1):76-82.]

[10]ZHAO Yong,LIU Ji-qiang,HAn Zhen,et al.Research on access control model based on task [J].Computer Engerning,2008,34 (5):28-30 (in Chinese).[赵勇,刘吉强,韩臻,等.基于任务的访问控制模型研究 [J].计算机工程,2008,34 (5):28-30.]

[11]CHEN Wei-he,YIN Xin-chun,MAO Bing,et al.A task and role based access control model for Web [J].Journal of Computer Research and Development,2004,41 (9):1466-1473(in Chinese).[陈伟鹤,殷新春,茅兵,等.基于任务和角色的双重Web访问控制模型 [J].计算机研究与发展,2004,41 (9):1466-1473.]

[12]ZHENG Zhi-rong.Study on operating system security framework oriented for application object security [D].Wuhan:Naval University of Engineering,2005:15-17 (in Chinese).[郑志蓉.面向应用对象安全的操作系统安全结构框架研究[D].武汉:海军工程大学,2005:15-17.]

[13]XU Chun-gen,YAN Han,LIU Feng-yu.Formal specification for object-oriented model of role-based access control [J].Mini Micro Systems,2003,24 (5):853-858 (in Chinese).[许春根,严悍,刘凤玉.对象式基于角色访问控制模型的规范化 描述 [J].小 型微型 计算 机系统,2003,24 (5):853-858.]

[14]ZI Xiao-chao,MAO Bing,XIE Li.Research on object-oriented access control model and its applications [J].Computer Applications and Software,2004,21 (1):4-6 (in Chinese).[訾小超,茅兵,谢立.面向对象访问控制模型的研究与实现[J].计算机应用与软件,2004,21 (1):4-6.]

[15]LIU Wei-wei.Mobile code security based on trusted computing technology [D].Beijing:Beijing Jiaotong University,2009:83-88(in Chinese).[刘巍伟.基于可信计算技术的移动代码安全研究 [D].北京:北京交通大学,2009:83-88.]

猜你喜欢

保密性访问控制完整性
2009—2022 年广州地区保密性弃血情况调查
2019—2021年广州地区无偿献血后回告及保密性弃血工作分析及思考
稠油热采水泥环完整性研究
“以人为本,质量优先”处理方式在保密性弃血中的应用及结果分析
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
精子DNA完整性损伤的发生机制及诊断治疗
大数据平台访问控制方法的设计与实现