基于XACML的安全建模和软件UML建模集成

时间:2022-10-29 08:43:44

基于XACML的安全建模和软件UML建模集成

摘要:软件系统建模人们习惯于系统需求、结构、部署建模,而把安全作为系统建立后的补充。文章通过学生成绩管理系统来描述,讨论如何扩充UML图素、引入VBAC描述角色与授权之间的关联,产生XACML描述的访问控制策略,使软件系统UML建模与系统安全建模集成。

关键词:UML;访问控制策略;VBAC;XACML

中图分类号:TP311.5文献标识码:A文章编号:1009-3044(2009)34-9733-02

Integration of System UML Modeling and System Security Modeling Based on XACML

ZHANG Sai-nan, WEI Hong-yan, QIAO Zheng-hong

(University of Science and Technology, Nanjing 211100, China)

Abstract: The points of this paper is about how to extend UML notation, describing the correlation of parts and warranty through VBAC, how to generating access control policies described by XACML, The paper describes how to realize the integration of system UML modeling and system security modeling by a student grade management system.

Key words: UML; access control policy; VBAC; XACML

大量研究表明,系统的异构性、系统的扩展及系统的分布性引起了面向对象的分布式系统访问控制策略可管理性差。软件系统建模人们习惯于系统需求、结构、部署建模,而把安全作为系统建立后的补充;也因为如此,使得系统的安全扩充难、集成难,管理难。

为了解决上述问题,软件系统在进行通常功能建模的过程中加入相应的安全建模,就能使软件系统的安全性能大大提高。图1[1]描述的是系统安全分析、设计与通常系统UML建模过程的集成。

1 XACML

可扩展访问控制标记语言 (Extensible Access Control Markup Language,XACML)是OASIAS制定的一种新的标记语言,它承诺可以使策略管理和访问决策标准化。作为一个OASIS标准,XACML定义了一种通用的用于保护资源的策略语言和一种访问决策语言可以取代各种信息访问控制的专有方法。

图2描述了XACML的体系结构和访问控制实施过程。在XACML中,访问请求首先到达策略执行点(policy enforcement point,PEP),PEP创建一个XACML请求并发送到策略决策点(policy decision point, PDP),后者评估请求并返回一个响应,该响应可以是允许访问的,也可以是拒绝访问的。PDP评估请求中的相关策略和规则后会做出授权决策。PDP需要向策略访问点(policy administration point,PAP)获得策略,PDP做出的授权决策被发送到PEP,PEP 履行义务,并根据PDP发送的授权决策允许或拒绝访问[2]。

下面以学生成绩管理系统为例,用基于VBAC[1]模型来说明系统开发和安全需求建模,以及访问控制策略的生成。

2 软件系统建模以及安全建模集成

VBAC中的角色是较粗粒度的任务的抽象,表示的是一系列的功能[1]。VBAC的角色对应于UML中的参与者[1]。图3的用例图中定义三个角色:Student、Teacher和Administrator。

图3中Administrator继承了Teacher,Teacher能够访问用例addGrade。按继承的语义,Administrator也可以访问用例addGrade。但是从安全要求出发,这种访问不可行的,系统要求只有Teacher有这个权利访问addGrade。因此,对于Administrator,addGrade就是禁用用例。 为了标识禁用用例,扩展角色和用例之间的关联的为。带有的关联称之为禁用关联,指的是未被授权的访问,而这些未被授权的访问必须被阻止。

系统开发者对系统的安全建模是通过用例模型中所描述的角色和用例之间的授权关系来表示。这里扩充用例图中的注释,以一种高层的、非形式的方式来描述系统中的角色访问权限。图4是加入安全建模的系统用例图,用例addReview对于Administrator是禁用用例,在Teacher与addGrade之间的关联上的注释中就能体现,同时Administrator与addGrade之间的关联的扩展为。

3 生成XACML 规范的访问控制策略

使用XACML提供的策略语言来描述readGrade所形成的访问控制策略。

Student grade management system access control policy

all the users in the "" namespace is allowed to read on the grade

read

假设现在有这样一个请求:a user named zhansainan in the "" namespace want to read his grade形成的request context如下:

XACML中decision request的信息被转换成request context:

file://example/med/record/grade/zhangsainan

read

PEP把这个request发送给PDP,PDP对这个访问请求通过现有的访问策略来决定该request是否在现有的访问策略范围内,然后给出一个response。通过sun公司XACML Implementation提供的simplePDP.java这个文件,执行结果如下:

Permit

也就是说PDP根据现有的策略,同意了这个访问请求。实事上,subject,resource以及action都是和policy是匹配的。

4 结论

通过扩充UML图素、引入VBAC描述角色与授权之间的关联,生成XACML描述的访问控制策略,使软件系统UML建模与系统安全建模集成。

参考文献:

[1] Brose G,koch M,Lohr K P.Integrating Access Control Design into the Software Development Process[C].Proc Of 6th International Conference on Integrated Design and Process Technology(IDPT),2002.

[2] XACML规范[EB/OL]./committees/tc_home.php?wg_abbrev=xacml.

上一篇:JFCunit在GUI界面自动化测试中的应用与实现 下一篇:基于MATLAB编译器的VC与MATLAB混合编程