地理信息共享平台安全访问机制的研究

2011-06-12 08:55刘志鸿王山东李玲梅
网络安全技术与应用 2011年6期
关键词:元组空间数据图层

刘志鸿 王山东,2 李玲梅

1安徽工业大学计算机学院 安徽 243032 2河海大学地球科学与工程学院 江苏 210098

0 引言

本文研究不同用户访问地理信息共享平台的安全性,并制定相应的策略尤为重要。在此提出了分两个等级来进行安全访问的方式:第一、低级安全访问模型,主要是根据不同的数据图层来进行访问;第二、高级安全访问模型,主要是结合ArcSDE与Oracle一起来进行访问,并在此基础上提出了基于角色管理的元组级标记的多级安全访问控制模型。

1 ArcSDE及多级安全介绍

用户在访问地理信息共享平台时,首先通过应用程序客户端提交对数据操作的请求,然后请求会通过Web服务器处理,接着通过GIS软件(比如ArcGIS Server) 来进行处理空间数据,再通过数据库引擎——中间件ArcSDE来访问空间数据库(如Oracle等)。本课题是以ARCGIS的系列产品作为实例系统来进行论述的,所以介绍并分析用户访问共享平台中涉及到的ArcSDE数据库引擎及多级安全访问控制模型等相关知识很重要。

1.1 ArcSDE数据引擎

1.1.1 ArcSDE工作原理

依据空间数据管理的方式来看,ArcSDE可看成是一种连续的空间数据模型,从而可用关系数据库系统(RDBMS)来管理空间地理数据。ArcSDE的主要功能有:(1)将应用程序中的空间信息导入到关系数据库中,并交给它来管理;(2)从关系数据库中读取空间信息,并转换为地理信息系统的应用程序能够处理的数据格式。所以ArcSDE是空间数据进出数据库的桥梁。采用中间件技术虽然多点麻烦,但它能很好地解决了地理信息共享平台与空间数据库访问安全模式的限制问题。下面来介绍ArcSDE工作原理,如图1所示。

(1) 对于客户应用是最终用户使用的软件,比如ArcInfo等。

(2) 服务器端包括ArcSDE应用服务器、SQL引擎以及RDBMS。ArcSDE通过 SQL引擎执行空间数据的搜索,将搜索的结果在服务器端缓存并发回给客户端来显示。

图1 ArcSDE工作原理

ArcSDE还提供了一种直接访问数据库的连接方式。它是由客户端接口直接把请求转换成SQL命令发送到RDBMS上,并解释返回空间及属性数据,最终显示在客户端。

1.1.2 ArcSDE数据存储与管理

空间数据经过ArcSDE的转换,RDBMS利用关系表来存储带有空间及属性数据的空间信息。属性数据存储在业务表(Business-table,B表)中,其中每一个实体对应表中的一个元组。空间数据存储在特征表(Feature-table, F表)中,索引数据存储在索引表(Index-table)中。而在关系数据库管理系统中,比如:ORACLE,它可以把空间数据存储在一张关系表中,所以可以利用关系数据库来实现连续的、无缝的数据存储。

ArcSDE所创建、管理并访问的表被记录下来的所有空间数据列的行为及属性的相关信息,叫做空间元数据。下面介绍一下常用的元数据层表(layer-table)。

ArcSDE通过层表来管理图层,同时对客户端调用空间数据的操作做出响应。在层表中Layer-ID列是每个图层的标识,即是层表的主键列;Table-name列用来指向每个图层B表指针;Spatial-column列表示B表与F表进行关联的列,也是空间列名。当用户要将图层数据存入空间数据库的时候,SDE就会在数据库中创建相对应的B表、F表及索引表,并将数据存入表格中,最终是在层表中生成一条描述空间图层信息的记录;当用户要操作数据库中的图层时,ArcSDE根据Table-name列值找到图层B表,根据 Spatial-column列值找到对应的F表,然后进行相应的运算,最终将结果返回给客户端,从而让用户看见。在整个数据请求过程中,对用户可见的表只有层表。

1.2 多级安全访问控制模型

1.2.1 BLP模型

BLP模型是由Bell D.E.和LaPadula L.J.在1973年提出的一种典型的多级安全的模拟军事访问控制模型。它的出发点是维护整个系统的保密性,从而有效地防止信息泄露。它的核心思想是解决多级安全(Multilevel Security, MLS)问题的基础。BLP通过制定主体对客体的访问规则和操作权限管理来保证系统的安全性,BLP模型中基本控制方式有两种:

(1) 强制存取控制(MAC):是通过主体(用户)和客体(数据对象)安全级匹配规则来确定该主体是否被准许存取该客体。在多级安全模型中,MAC主要是使用“安全级”来操作的,其中主体和客体均可定义一定的安全级,安全级是由分层密级和非分层范畴构成的。分层密级简称密级,一般分为普通(U)、秘密(C)、机密(S)、绝密(TS)等,它们是线性有序的,通常按密级高低升序排列。其排列顺序规定为:普通<秘密<机密<绝密。非分层范畴是一个类别的集合,每一个类别实际上是一个名称,因而非分层范畴是一系列名称的集合,它们彼此独立,并且无序。例如{建筑物图层,管线图层},它们组成了一个非分层范畴。

多级安全模型的读写规则:(1)读规则,若主体安全级的密级大于或等于客体安全级的密级,且主体的非分层范畴包含客体的非分层范畴时,则此主体才能读该客体。这就是“向下读规则”。(2)写规则,若主体安全级的密级小于或等于客体安全级的密级,且主体的非分层范畴包含于客体的非分层范畴时,则该主体才能写该客体。这就是“向上写规则”。

(2) 自主存取控制(DAC):在BLP模型访问控制策略中,对于主体拥有的客体,有权控制自己及别人对客体有哪些访问权限。

1.2.2 多实例的多级安全模型

多级安全数据库分级有:数据项级、属性级、记录级以及表级。这样在一个关系表中包含了多种安全级的数据,我们称这种关系为多级关系。而多实例是指在同一张数据库关系表中,多个相同主键的元组可以同时存在。由于多实例的数据出现,导致了需要对原来的关系数据库模型进行重新定义,也就产生了多实例的多级安全模型。下面对关系模式、关系实例下个定义。

定义1 关系模式定义:R(A1,C1,A2,C2… …A n , Cn,TC),Ai∈Di;其中,Ai表示数据属性,Di表示Ai的值域,Ci是表示属性 Ai相关联的安全级,Ci定义在[Li,Hi]上,

Hi≥Li;TC为 (Li,Hi)元组的安全级,其中Li表示系统的低安全级,Hi表示系统的高安全级。在一个多级关系中,两个或多个元组具有同一个主键,我们称之为多实例,而原来的主键被称之为外观键(Apparent primary Key, AK),A1表示主键,这里的主键和一般关系数据库中的主键是不一样的,在此可以允许主键值重复出现。

定义 2 关系实例定义:多级关系实例用r(A1,C1 ,……,An,Cn,TC)表示,是不同元组(a1,c1 , … …an,cn,tc)的集合,其中:ai∈Di(Di为属性值域)ci∈ [Li,Hi];或者ai=null,ci∈ [Li,Hi]Unull,tc≥ l u b{ci|ci≠null;i= 1……n} ,其中lub表示最小上界。

多级实例分实体多级实例及元素多级实例。实体多级实例是由具有相同的主键属性值但主键属性安全级不同的元组组成,这样用户就认为他们之间所描述的实体是不同的。而元素多级实例是由主键属性值相同且安全级相同,但其它某些属性的值及其安全级不同的元组组成,从而反映了不同安全级用户对于同一实体在非主键属性上的不同看法。

2 低级访问模型的建立

本文所讲的低级安全访问模型,主要是根据不同的数据图层来进行安全访问的,并以ARCGIS的系列产品作为实例系统来进行论述的,ArcGIS Server是用于发布企业级GIS应用程序的综合平台。对于它开发的地理信息共享平台,将为各单位及各部门中各种类型的用户提供信息资源共享,但是对某些敏感的、保密的、特殊的数据图层,有些单位和用户是不能共享的,甚至不能读取的,并且共享平台项目中的大量资源信息是ArcGIS Server利用数据图层的形式来发布的。因此建立一套安全的访问平台的控制机制很重要,而本文的访问机制的实现是利用了微软NET 3.5框架的知识。

本文为了实现用户及角色的动态创建及相关操作,NET3.5提供了Membership类和Roles类来专门负责,使用Membership类可以添加验证、创建、删除和查找用户,改变密码以及用户相关的许多其他操作;使用Roles类可以添加和删除角色,给用户获取角色,改变用户的角色。

ArcGIS Server发布的地图可以有多个图层,而图层是最小的数据组织单元,其类型也是相对稳定。不同的图层显示不同的实体集合的空间地理信息。通过 NET3.5提供的User.IsInRole()方式,可以方便地判断登录用户所属哪个角色,根据不同的角色,来隐藏某些敏感的、特殊的图层。在开发的地理信息共享平台中,通过遍历地图中所有的地图服务,找到需要移除的图层 ID,利用 ArcGIS Server API中IMapFunctionality接口中的SetLayerVisibility(layerId,false)方法,负责隐藏不需要的图层。达到不同权限的用户获取到相应所属角色图层的目的,保证了用户访问的安全性,从而建立起了低级安全访问模型。

3 高级访问控制模型的建立

3.1 数据模型的建立

通过分析多级安全访问控制模型,以及根据ArcSDE存储管理的方式,在多实例的多级安全数据模型的基础上提出一种元组级标记(Tuple-level-tags)数据模型,称之为基于角色管理的元组级标记的多级安全访问控制模型,来表示空间数据在关系数据库Oracle中的存储。如表1所示元组级数据模型。

表1 元组级数据模型

所表示的符号名称及意义和多级实例的多级安全模型中是一样的,可以把它当成是多级安全模型中的一个特殊情况:即Ci=TC( 2 ≤i≤n),此模型定义中没有“上写”数据流,这样可以保证高安全级数据信息的完整性,研究的地理信息共平台中密级取值集合为{非密(U),秘密(C),机密(S),绝密(TS)},从而本论文所描述的高级访问控制模型就构建起来了。

3.2 访问控制策略的构建

本文所研究是在地理信息共享平台上面的安全访问的机制,根据基于角色管理的元组级标记的多级安全访问控制模型的读写策略,我们主要从安全级划分与非分层范畴的定义来考虑。

(1) 安全级划分原则

根据此控制模型核心是要强制访问控制,以及主体及客体的安全级是用集合有序对形式表示:如<机密,{交通线路图层}>,根据多级系统安全级是由分层的密级和非分层的范畴组成,对于地理信息共享平台中所采集的小区空间数据中,保密级可以划分为无密(U)<秘密(C)<机密(S)<绝密(TS),非分层的范畴可以表示为集合{建筑物图层,管线图层,交通路线图层,绿化图层}中的一个子集。

(2) 非分层范畴比较原则

地理信息共享平台通过 ArcSDE把空间数据保存到Oracle数据库中,数据层次是:地图—图层—空间实体,用户所见的地图由图层构成,如在采集一个小区的空间数据时,地图构成可由交通线路图层、建筑物图层、绿化区图层及管线图层等叠加构成。每一图层经过ArcSDE引擎处理后对应着数据库中的二维表,而图层里的每个实体对应表中的一个元组。应用程序是通过ArcSDE里的层表来管理空间数据的,用户只能看见层表。因此基于角色管理的方式,可以把主体安全级中的非分层范畴用该主体所属角色权限访问的表范畴表示,客体的非分层范畴用该图层表所表示的信息范畴来表示,这样平台在设计时变得简单些,根据元组级标记的多级安全访问控制模型,仅仅需要直接进行保密级别的判断就可以。对于一个角色可以访问多个数据库对象(如元组、表、视图等),这样某一主体可以很容易地实现访问绿化图层和建筑物图层。地理信息共享平台处理用户访问的流程图如图2所示:首先用户发出访问地理信息共享平台的请求,然后通过系统的身份认证,如果失败,经过审计就结束请求。接着对用户进行权限的认证,如果失败,同样结束。紧接着经过基于角色管理的元组级标记的多级安全访问控制策略的检查,如果失败,也是结束,否则用户就可以进行空间数据的存取操作,当用户存取完想要的数据之后,最终结束用户的请求。

图2 共享平台处理流程图

(3) 读写策略制定

通过上面的讨论,依据BLP模型所讲的读写策略。在此用λ(s),λ(o)分别表示主体和客体的安全级标记,它由密级和非分层范畴构成。若主体能读客体,则有λ(s) ≥λ(o);若主体能够写客体,则有λ(o) ≥λ(s)。这样保证了“下读上写”的规则,数据仅仅在同级之间或者从低级向高级流动。依据元组级标记数据模型,在此对 BLP模型的写策略进行改进,规定写只能在同安全级间进行,不能“向上写”,从而制定了它的读写策略。

4 结语

地理信息共享平台是为政府、企业进行数据共享和数据交换的公共平台,所以研究其访问安全性至关重要,本文采用分两个等级的方式来进行处理,并提出了基于角色管理的元组级标记的多级安全访问控制模型。然而还存在许多不足之处,应该从多层次多角度来考虑安全访问,比如可以深入研究一下信息在网络传输及访问过程中的加解密方面的问题;还有此访问控制模型还存在信息泄露、数据冗余度大以及隐通道问题,这些都是以后需要改进地方。

[1]李军,彭凯等著.政务地理空间信息资源管理与共享服务应用[M].北京大学出版社.2009.

[2]潘瑜春,钟耳顺,梁军.基于空间数据库技术的地籍管理系统研究[J].地理研究.2003.

[3]桂润堂,钟霞,薛重生.基于ArcSDE空间数据库引擎技术的应用研究[J].微机发展.2003.

[4]余莉,何隆华.基于ArcSDE的矿产数据库管理系统开发[J].计算机应用.2009.

[5]张成才,孙喜梅,黄慧.SDE的实体—关系模型空间数据管理方式研究[J].计算机工程与应用.2003.

[6]李佳田,刘洪斌,武伟,王春晓.基于 SDE 的数据应用研究[J].微机发展.2003.

猜你喜欢
元组空间数据图层
Python核心语法
QJoin:质量驱动的乱序数据流连接处理技术*
GIS空间数据与地图制图融合技术
海量数据上有效的top-kSkyline查询算法*
基于减少检索的负表约束优化算法
解密照片合成利器图层混合模式
跟我学添加真实的光照效果
国外建筑CAD图层标准发展现状与研究
用Photoshop图层技术制作精美邮票
网格化存储的几项关键技术分析