论文部分内容阅读
XML(eXtensible Markup Language)已经成为互联网上数据表示和交换事实上的标准,同时XML安全也引起了越来越多的关注,例如在Web服务中要求服务器拒绝未授权用户对敏感信息的访问请求。XML安全包括通信安全和管理安全。其中管理安全的研究还处于实验阶段,一般采用访问控制技术解决。
由于XML的半结构化特性和XML查询语言(如XPath)的复杂性,相对于传统的访问控制,XML访问控制所要解决的问题更加复杂,主要表现在:如何支持复杂的访问控制规则(简称为规则)和用户访问条件(简称为访问条件),同时保证效率;如何确保安全策略正确执行:如何将传统访问控制模型应用到XML。
为解决上述问题,本文并设计实现了基于角色的XML访问控制系统RbXAC.(Role-based XML Access Control),它支持规则和访问条件中带有{//,*,[]}的复杂XPath式。当存在DTD(Document Type Definition)模式文档时,RbXAC能保证未授权信息不会从DTD泄露,同时尽可能只输出满足DTD约束的有效可访问条件。
围绕着RbXAC系统的研发,本文重点探讨并完成了以下工作:
1、通过DTD对规则进行验证和具体化,确保规则有效且尽量不存在冗余。
如存在DTD文档,RbXAC系统首先将规则中的XPath式表示成自动机,将DTD文档作为输入,运行自动机验证规则并具体化规则,这会使得强制执行(Enforcemenf)后输出的无效访问条件尽量减少,大大减轻XML查询引擎的负担。
2、通过改进的安全视图技术保证未授权信息不会从DTD文档泄露。
利用有效规则构造自动机,RbXAC系统生成视图DTD发放给相应用户,限制用户从原始DTD获得未授权信息。同时,将有效规则构造的自动机视图化,为强制执行阶段做好准备。
3、通过访问条件权限检查确保输出的可访问条件正确应用了规则约束。
访问条件权限检查阶段完成强制执行的功能。在该阶段,RbXAC将访问条件作为输入,驱动规则(或有效规则)构造的自动机运行,检查并重写访问条件,输出可访问条件。
4、将基于角色的访问控制模型扩展到XML。
在上述功能的基础上,RbXAC继续将RBAC(Role-based Access Control)模型应用到XML访问控制,并实现了核心RBAC模型。
我们使用Java实现了RbXAC系统并进行了测试。实验结果表明,在保证效率的前提下,提出的方法能够支持复杂的XPath式,并且规则验证和具体化可以较大地减轻XML查询引擎的负担。