刘莉苹,李国庆
(1.中国科学院 遥感与数字地球研究所 数字地球重点实验室,北京100094;2.中国科学院大学 资源与环境学院,北京100049)
空间数据网格是网格环境下面向空间数据共享与协同,构造一体化空间数据网格映像的技术体系。构建可靠的、动态的、可扩展的统一的空间数据网格安全体系是实现分布式异构空间数据共享协同的重要技术。对于开放网格环境中安全体系的研究已经有很多,但是多集中于对计算资源的访问控制[1]。并且由于空间数据复杂的属性特征,传统的应用于一致化数据的访问控制策略并不能很好的解决空间数据访问安全的问题。在空间数据网格中,身份、级别、地域等不同的用户拥有不同的数据权限,能访问各自权限内的不同级别、类型、时间范围和空间范围等的不同节点的数据。总的来讲,空间数据网格的访问控制有以下几个特点:
(1)空间数据用户权限控制呈现细粒度,设置表示较为复杂。不同的数据节点由于各自所提供的数据分辨率、产品级别、空间范围等不同,对不同的用户有不同的访问权限。
(2)空间数据呈海量增加,其访问控制机制必须很强的可扩展性,能适应空间数据的剧增带来的管理和维护问题。
(3)空间数据特有的分布异构和时空复杂特性,使得访问控制必须能够实现跨域的管理,最好能够有统一的权限控制机制使得用户单点登录即可安全访问权限内的所有数据。
近几年来关于空间数据网格安全体系的研究成果,如基于角色的访问控制,不能满足空间数据访问控制的要求,主要存在以下问题:
(1)对空间数据网格中主体和资源都缺乏详细的描述,不能表示复杂的细粒度的访问控制策略。
(2)随着用户和数据资源的剧增,角色设置也随之增加,难以管理和维护[2]。
(3)在分布式环境中,角色可能在不同安全域中存在差异[3]。
如何灵活高效的控制网格用户的数据访问权限,是实现空间数据网格安全化的关键技术点。基于属性(attribute based access control,ABAC)的权限控制机制可以很好的解决这个问题。
本文研究了将ABAC 纳入到空间数据网格安全框架,并与空间数据的特性相结合,建立相应的主体、资源、环境的属性及其语义关系和访问控制策略。并结合XACML对其进行了实现,直接在用户查询时根据控制策略实时生成带有访问约束条件的查询请求,实现访问安全控制。并成功应用于国家973项目中。
ABAC是一种应用于分布式环境中的访问控制模型,它通过对分布式环境中抽象出的关键实体设置属性来进行授权,实现访问控制。一般情况下,抽象出的稳定实体包括用户主体、资源和环境。具体定义详见参考文献[4]。
在空间数据网格中,主体属性是指与访问空间数据的用户相关的特征信息。本文将其分为用户基本属性和约束属性。基本属性是指同用户自身身份相关的一般信息,包括在注册网格系统的用户名、用户身份信息、所在地域、IP等[5];而约束属性则是与用户对资源的访问限制相关的属性,包括可访问的数据级别、空间范围、时间范围、卫星、传感器等。资源属性是指对用户所访问资源的特征描述,这里主要指空间数据的元数据。环境属性主要指用户访问时的上下文信息,包括当前时间,网络安全级别,各节点的可访问性等。
ABAC的策略模型定义可详见参考文献[4]。简单的说,包含策略主体和策略规则两部分:
(1)策略实体。策略实体包含主体(S)、资源(R)、环境(E)以及各自的属性。它们分别可以具备多个属性特征。具体属性设置可根据实际应用需要设定。
(2)策略规则。策略规则是指在特定的环境E 下,用基于S、R 和E属性值联合运算的函数,确定主体S对R的访问权限。
Rule:f(ATTR(s),ATTR(r),ATTR(e))→Access-Control(s,r,e)
根据属性值通过规则进行联合运算做出允许或拒绝访问的判断。策略可以包含多条规则。策略的最终结果是每条规则运算的集合。
在分布式空间数据网格环境下,由于对各种属性的评估可能出现多义性,运算无法得出确定结果,这样可能产生策略冲突。为保证网格系统的健壮性和正常运行,必须引入冲突消解策略,进行二次决策。
建立良好的属性描述模型是基于ABAC 安全框架中的基础。根据空间数据的访问模式确定用户属性和环境属性和资源属性的描述模型。该模型应该满足的重要要求是它必须具备良好的空间数据适用性,其语义结构应避免冲突[6]。
传统的应用于网格计算中的ABAC 并不存在任何对空间数据网格的适用性。空间数据本身具有复杂的空间特性和时序性[6]。所以作为访问主体,用户的属性设置呈细粒度,其中的用户约束属性应与空间数据的元数据相绑定。本研究中用户约束属性涵盖了对空间数据进行查询访问时普遍的一些约束条件,包括用户可访问节点、可查询地区范围、卫星种类、传感器、数据类型、数据级别、数据时间段、分辨率、数据提供者等,其设置是可扩展的[7]。这些约束条件的设置与元数据相适应,避免产品策略冲突。属性实体内容语义树如图1所示。
本研究在上述所设计的空间数据网格中对用户主体、数据资源和环境的属性描述模型基础上,结合XACML 的执行授权策略框架,并考虑空间数据特性和空间数据网格中的访问模式,设计并实现了ABAC 安全策略体系的基本框架。通过制定相应的XACML 访问控制策略,在用户提交查询请求时即根据与访问安全相关的属性信息实时生成带有访问权限控制的查询条件,再进入网格服务系统。XACML规范被广泛应用于实现自定义访问控制策略,它包含了两部分内容:一是描述请求/响应的通用访问控制策略语言,二是实现执行授权策略的框架[8]。本文利用XACML定义策略规则,并结合空间数据网格中各个实体的属性特征来对其访问请求、响应、处理等进行描述。
本文研究的空间数据网格中,ABAC 安全策略体系结构如图2所示。
图1 属性描述模型
图2 基于ABAC的空间数据网格访问控制框架
该框架主要由四大部分构成:该框架主要由访问执行模块(access execute module,AEM),访问决定模块(access decision module,ADM),属性管理模块(attribute management module,AMM),访问条件重构模块(access refactoring module,ARM)[9]。其功能分别为:
访问执行模块(AEM):负责拦截用户请求并将用户请求传递给访问决定模块;接收访问决定模块返回的决策结果,即带有权限控制的空间数据访问请求条件,并执行决策结果,向网格系统服务部分发出请求。
访问决定模块(ADM):负责接收访问执行模块传来的用户请求,向属性管理模块发出属性调用请求,并接收其返回的属性实体;通过调用策略仓库中相关策略,结合实体属性的授权信息实时生成带访问权限控制的查询条件,并返回给访问执行模块;该模块包含一个语义适配器,负责对属性实体、策略规则等空间数据相关的语义解析和搜索匹配等,使得各属性信息直接调用到与其相关的策略规则。
属性管理模块(AMM):负责管理网格用户的属性信息,包括对用户属性的设置、增删、更新等,向访问决策提供属性支持。
访问条件重构模块(ARM):负责建立和管理策略仓库,制定策略规则,提供策略支持,该模块是实现访问控制框架的核心。该部分空间数据的属性特征,分为6个部分。分别为平台维度策略、时间维度策略、空间维度策略、产品维度策略和其它属性策略和冲突消解策略。在进行访问控制是,根据需要调用相关策略。
根据上面所述的访问安全控制框架,结合相应的属性描述模型和策略决策机制。访问控流程如图3所示。
图3 访问控制流程
用户注册网格系统,根据用户初始信息和相应数据访问权限设置其属性;用户成为网格系统用户后,登录网格系统,发出查询或获取请求,生成相应订单标识号;
AEM 首先拦截用户请求并将用户查询获取条件传递给ADM,向PDM 发出访问控制决策请求;
ADM 接收到决策请求后,向AMM 发出调用相应属性信息的请求,AMM 将需要的信息,包括用户属性、元数据、环境信息等封装为属性实体返回给ADM;
ADM 调用ARM 的策略仓库,根据AMM 返回的属性信息和访问条件重构对用访问条件进行重构,生成已包含权限控制的访问条件;ADM 将该条件作为决策结果返回给AEM;
AEM 将带有权限控制的决策结果传递给网格服务系统,发出查询或获取等请求。
整个流程由权限控制中心统一调度,实现自动化访问安全控制。最后直接生成带访问权限控制的查询请求条件,转入网格服务系统。如果不能生成正常生成符合要求的查询请求,则直接提示访问安全异常。
本研究采用XACML 定义策略规则。XACML 将安全规则表示为用户、数据资源、环境3个主要属性的属性值集合,使用标签来标志属性的各个元素[10]。XACML 对各种数据类型和规则算法都有广泛的支持,并能根据分布式系统需要自定义和描述策略规则,可以表达复杂的策略,具有很强的适应性和可扩展性,能够描述和满足空间数据细粒度的访问控制安全需求。
在空间数据网格的访问控制中,有两个重要的XML:用户查询请求Request、属性描述和策略Policy。
2.3.1 Request描述
根据用户提交的查询请求,生成Request实体,它主要包含<Subject>、<Resource>两部分。<Subject>元素包含了本次查询的信息,包括作为主体的用户ID 和查询订单标识。<Resource>元素是对用户要查询的空间数据资源的描述,其中<Filter>元素是它的核心部分。<Filter>规定了用户对要查询的空间数据资源的限制条件。本研究中针对空间数据特有的时空复杂性,对传统的ABAC 策略的简单操作符进行了扩充,加入了范式、范围的判断符等,便于适用于空间数据关键字等的查询,空间区域的判断等,能最终重构出符合要求的查询条件。Request模板<Filter>部分如下所示:
2.3.2 策略描述和查询条件重构
系统具体通过策略或策略集重构用户的Request,加入访问控制条件。本研究的框架中,将拦截到的查询请求,进行相应的格式转换后,联合安全相关的属性信息,调用相应的策略规则对查询条件进行重构。Policy主要有<Target>和<Rules>构成。<Target>包含了用户主体属性、资源属性、环境属性,并将用户查询条件include进来。根据用户查询条件和其属性授权信息调用相关<Rules>最终重构用户查询条件,使得只有在用户访问权限内的资源对其可见,用户只得在此授权范围内访问任意数据资源,最终实现对访问权限的有效控制。针对用户请求的执行策略描述核心部分如下:
<Target>中的用户属性和空间数据资源属性会被关联到可用的<Policy>,这里语义适配器会自动根据属性字段信息并完成需要调用的策略的定位工作。<Target>包含的请求<Subject>,<Resource>和<Action>与<rule>的规则相关,以便进行决策,<Action>中提示用户查询条件,并根据每个元数据对应的<rule>生成决策,最后重构用户的查询条件,只对用户权限以内的数据进行查询访问。<Rules>提供在一个<Policy>中测试相关属性的条件。<Rules>决策库包含多个<Rule>,包括对时间、空间、平台等各维度的属性的判定。最终联合运算产生带有权限控制的查询条件,传给网格服务层。
本文依托的973项目对以上关键技术和原型系统进行了实现。该系统连接国内8个数据中心,预计汇集数据条目上亿。整个系统由多个数据网格节点组成,由一个中心节点作为代理来管理和控制用户对系统的访问,并实现各节点间数据资源的协同和共享。通过采用本文的所提出的安全控制框架和相应的控制机制,使得用户只可访问其权限范围内的数据资源,实现了资源访问的安全控制。原型系统的实现是基于SOA 架构,设计了中心节点的portal,作为系统用户服务的统一入口,使得分布式的空间数据资源很方便地被用户查询和使用。项目的部分用户界面如图4所示。
图4 项目部分界面效果
本文研究了基于ABAC 的空间数据网格安全体系,构建了整个权限控制框架并探讨了其中的关键技术点,并在项目中得以应用和验证。通过当用户登录数据网格查询数据时,首先由网格系统根据用户的属性,对查询条件进行重构后,对符合用户权限的节点、数据类型、数据级别等进行查询,进而及其灵活的解决了空间信息网格数据不可控的难题。基于ABAC模型的空间数据网格安全体系具有高效性和灵活性[11]:
高效性:基于用户自身进行权限控制,只需要控制网格用户本身的属性即可改变他访问的数据权限,不必对繁琐而海量的数据进行分级处理等。
灵活性:网格系统可以提供统一的用户权限控制中心,各个分节点只需要按照默认的编目存档方式将自己的数据纳入网格系统即可。
后续的研究将集中在以下两个方面:①完善的策略合成模型和冲突消解机制。针对空间数据描述的复杂性,需要建立更加完善的策略操作符库,以对决策进行灵活控制。并且针对可能的冲突消解机制应该完善[12]。②高效的空间数据和用户的本体语义描述模型。用以更好的解决策略合成时的出现的语义互操作问题。
[1]LEI Xingsong,LI Guoqing,YU Wenyang,et al.Research on security frame work of OGC-based spatial information grid [J].Computer Science,2012,39 (9):5-8 (in Chinese). [雷兴松,李国庆,于文洋,等.基于OGC 规范的空间信息网格安全体系研究 [J].计算机科学,2012,39 (9):5-8.]
[2]GUO Lei,YANG Sheng,YU Wensen.A research on access control model based on spatial data and role [J].Journal of Changchun Teachers College,2011,30 (5):21-24 (in Chinese).[郭磊,杨升,宇文森.基于空间数据和角色的访问控制模型研究 [J].常纯师范学院学报,2011,30 (5):21-24]
[3]WANG Xiaoming,FU Hong,ZHANG Lichen.Research progress on attribute-based access control[J].Chinese Journal of Electrics,2010,38 (7):1660-1667 (in Chinese).[王小明,付红,张立辰.基于属性的访问控制研究进展 [J].电子学报,2010,38 (7):1660-1667.]
[4]ZHANG Yi.Research and implementation of web services attribute-based access control in SOA environment[D].Xi’an:The Fourth Military Medical Research,2009:1-82 (in Chinese).[张毅.SOA 环境下基于属性的Web服务访问控制研究与实现 [D].西安:第四军医大学,2009:1-82.]
[5]WEN Junhao,ZENG Jun,ZHANG Zhihong.Security policy of attribute-based access control in SOA [J].Computer Science,2010,37 (9):36-39 (in Chinese).[文俊浩,曾骏,张志宏.SOA 中基于属性的访问控制安全策略 [J].计算机科学,2010,37 (9):36-39.]
[6]SUN Shengtao.A research on ontology based uncertainty reasoning and its application for national language spatial information retrieval[D].Beijing:Center of Earth Observation and Digital Earth,Chinese Academy of Science,2012:1-190 (in Chinese).[孙胜涛.空间自然语言检索中基于本体的不确定性推理研究和应用 [D].北京:中国科学院对地观测与数字地球科学中心,2012:1-190.]
[7]YAN Yunxuan.The research on the technology of automatic data grid entity building for heterogeneous spatial data sources[D].Beijing:Center of Earth Observation and Digital Earth,Chinese Academy of Science,2010:1-92 (in Chinese).[颜韵旋.网格上异构空间数据源自动化节点构建技术研究 [D].北京:中国科学院对地观测与数字地球科学中心,2010:1-92.]
[8]XACML [OL].http://baike.baidu.com/view/1170469.htm.2013.
[9]Bo Lang,Iran Foster,Frank Siebenlist,et al.A flexible attribute based access control method for grid computing [J].Grid Computing,2009,8 (7):169-180.
[10]SUN Changxia,MA Wenping,CHEN Hefeng.Provable secure multi-authority attribute-based signature without a central authority [J].Journal of University of Electronic Science and Technology of China,2012,41 (4):552-556 (in Chinese).[孙昌霞,马文平,陈和风.可证明安全的无中心多授权属性签名 [J].电子科技大学学报,2012,41 (4):552-556.]
[11]YANG Hongbian,LI Yanqing.Design of attribute-based access control model in multi-domain [J].Software Development and Design,2011 (6):13-17 (in Chinese). [杨红变,李艳青.多域环境下基于属性的访问控制模型设计 [J].软件开发与设计,2011 (6):13-17.]
[12]SHEN Haibo,HONG Fan.Study on attribute-based access control for web services [J].Computer Science,2006,33(4):92-96 (in Chinese).[沈海波,洪帆.面向Web服务的基于属性的访问控制研究 [J].计算机科学,2006,33 (4):92-96.]