基于XML的多类型数据客体访问控制

2015-12-23 01:07杜学绘曹利峰陈华城
计算机工程与设计 2015年2期
关键词:访问控制客体文档

冯 瑜,杜学绘,曹利峰,陈华城

(1.信息工程大学 数学工程与先进计算国家重点实验室,河南 郑州450004;2.解放军95851部队,江苏 南京210046;3.解放军73503部队,福建 福州350001)

0 引 言

信息安全等级保护[1]要求三级及三级以上信息系统实现强制访问控制,安全标记作为强制访问的前提,也成为实现多级安全的基础性关键技术。要实现安全标记功能,必须有安全标记绑定技术做支撑,目前大多数绑定技术都将标记与客体整体关联[2],访问控制对象只能是整个数据客体,极大限制了客体的利用率,不能满足客体多元化、分级化的信息系统,且大量应用的不同需求使得客体的结构和格式呈多样化趋势,不同应用开发独立的安全标记实施系统,使得不同平台、不同应用间的数据交互时访问控制困难[3]。为了解决上述问题,本文引入可扩展标记语言XML (extensible markup language)[4],通过分析 不同类型数据客体逻辑结构,将结构化、半结构化和非结构化数据用树形XML进行统一表示,定义多级XML 文档,实现数据客体与安全标记的细粒度绑定,并在此基础上实现多类型数据客体的强制访问控制。

1 相关技术

XML之所以能实现一致的标记绑定和高细粒度的强制访问控制,是因为其具有层次化结构、平台无关性和极大的灵活性等特点:

(1)XML文档是由自描述的嵌套元素构成,根据嵌套关系可将XML 文档看成树形结构,每个元素为树中的结点,用于表示复杂数据客体中不同敏感级别的信息。对包含有多等级安全信息的XML数据客体实施访问控制,访问控制对象可以是整个XML,也可以是文档中的片段、元素节点甚至是元素属性,实现了灵活的、高细粒度访问控制。

(2)XML可用于表示包括结构化、半结构化和非结构化数据,且在多种计算环境中被多种工具解释。用XML将异构数据客体进行统一化表示,为格式和形式不同的众多电子文件提供统一的基于XML的安全标记管理系统,从实际推动安全标记的一致性工作。

由于XML具有以上特性,因此本文将XML 引入多类型数据客体的访问控制中,解决现有研究中安全标记绑定粒度粗、扩展性一致性不足的问题。

2 基于XML的数据客体统一化表示

要实现安全标记的一致性绑定和细粒度的访问控制,首先要将异构数据客体进行统一描述,转换为树形结构的XML文档,再以XML文档内的节点、片段为访问控制对象实现细粒度访问控制。数据客体按照结构类型的不同,可分为结构化、半结构化以及非结构化数据[5]。尽管客体类型复杂,但是依据其内部关系,客体均能采用数据树进行表示[6]。本节将分析不同类型客体的数据特征,通过逻辑多级分割,将其表示成树形XML结构。

结构化数据是指结构良好,能够用二维表结构来逻辑表达的数据,通常是存储在关系数据库中。每个数据库表都能表示成深度为2的树形结构,以表名为根,记录为孩子节点,记录的表项为叶子节点;而XML本身就是半结构化数据,是一个典型的元素与节点对应的逻辑树形结构;非结构化数据相对而言数据格式多样,数据逻辑关系复杂,我们将对几类代表性的非结构化数据格式进行逻辑分析,典型的数据格式有文本文件、视频、图像等。

(1)文本文件:常用的电子文档有两种类型:纯文本文档,如TXT 格式文档和具有目录树的word文档。

纯文本文档数据结构性差,数据按行和段排列,文字间的分割符只有段落标志,因此本文设计将文档作为XML树的根结点,以段落为单位创建下级节点,生成深度为2的树形XML。

目录树结构的word文档统一表示思路是文档整体为XML根节点,目录节点转换为数据树中的元素节点,目录下的子目录及数据内容则在对应元素节点下生成下级元素及元素内容。文档中存在图片、表格等非结构化数据以整体进行处理成二进制序列,在所属目录对应的元素下创建子元素。

(2)图像:图像所提供的信息是基于视觉感观的,因此对图像的逻辑分割必须考虑到图像内容所展示的视觉效果的实际意义。本文以图片内有意义的图形单位和色块为对象,对图形单位及背景进行实效分割,分割的图形单位及背景可根据一定规则再进行二次分割,并依据图像节点之间在图像中的相对位置[7,8],为每个图形分割块,创建XML节点,则一个图像可以表示为以整个图像为根节点,若干分割块、分割子块为子节点的树形XML。

(3)视频:在视频流数据[9]中,其最小的物理数据单元是 “镜头”,所以视频分割的目的是将连续图像帧分割成长短不一的视频镜头。一般来说,一段视频由一些描述独立故事单元的场景构成;一个场景由一些语义相关的镜头组成;而每个镜头是由一些连续帧构成。本文将视频用XML统一化表示的思路是:视频整体抽象成XML 文档根节点,将构成视频的每个场景表示成孩子节点,每个场景所包含的镜头表示成场景节点的下级节点,连续帧则表示成叶子节点,帧节点的数据内容为每一帧图片的二进制序列。

3 多级XML文档访问控制模型XBLP

为了有效实施统一的安全标记访问控制,本文在异构数据客体XML统一化表示的基础上,提出面向多级XML文档的访问控制模型XBLP。模型定义了扩展了安全标记的多级XML 文档,规范了XML 安全标记语法和约束规则,并给出安全标记绑定算法,实现安全标记与数据客体的绑定。

3.1 安全标记扩展的多级XML文档

一个完整的多级XML 除了包括文档中直接包含的元素、属性、安全标记等,还包括不同层次节点间安全标记的约束关系。

3.1.1 多级XML文档定义

XML的基本模型包含XML 内容信息和结构信息,利用节点之间的嵌套关系可以将一个XML文档表示成一棵以文档根元素为根节点,文档元素为子节点的树形结构,本文我们称其为文档树。扩展了安全标记的XML文档即是为文档树中的节点添加安全标记绑定,为不同敏感级的节点赋予不同安全等级的安全标记,使得整棵文档树呈现节点多等级化的特点,如图1所示。我们将扩展了安全标记的多级安全XML文档称为多级XML文档。

定义1 多级XML 文档:多级XML 文档是一个九元组:XLabDoc = (r,Ve,Va,L0,Ns,SubElem,Attrs,Name,Lab),其中:r为多级XML文档的根元素,是整个文档的标识,r∈Ve;Ve为文档数据节点集,包括一个数据客体经过逻辑分割成相应的数据元素节点,客体O =∑ei,ei∈Ve;Va为文档属性节点集,属性attri是对元素ei的描述attri∈Va;L0为文档中安全标记集,是每个安全级别和范畴集二元组λi=(Class,Categorys),文档内安全标记的DTD 定义见表1。

图1 多级XML文档树形结构 (U 表示XML

表1 安全标记的DTD 定义

Ns为文档命名集,包括元素和属性的命名;

Attrs是属性到元素的二元关系,若attr1∈Va,e1∈Ve,则Attrs(attr1,e1)表示attr1是e1的属性;

Name 是名称到属性或元素的二元关系,若attr1∈Va,e1∈Ve,则Name(n1,attr1),Name(n2,e1)分别表示attr1名称为n1,e1名称为n2;

Lab 是安全标记到属性或元素的二元关系,若attr1∈Va,e1∈Ve,则Lab(l1,attr1),Lab(l2,e1)分别表示attr1的安全标记为l1,e1安全标记为l2。

3.1.2 XML安全标记约束规则

多级XML文档具有树状层次结构,根元素是最外层节点,当要访问文档中某个元素或属性时,必须要获取目标节点的路径。而该路径是由从根节点到达目标节点所经过的所有外层节点组成,要访问目标节点则必须要先访问外层节点,因此内层元素的安全级别应比外层元素的安全级别高。据此,我们规定元素或者属性的安全标记必须支配其外层的安全标记。根据这一原则,本文定义多级XML文档绑定安全标记时的约束规则:

规则1:XML安全标记文档中,子元素的安全标记必须支配父元素的安全标记;

规则2:XML 安全标记文档中,若元素ei具有属性ai,则属性ai的安全标记必须支配元素ei的安全标记;

1.2.1 对患者的基本情况登记为老年患者的个人健康建立档案,将老年患者的病史、年龄、姓名等情况详细询问,通过统一设计的调查问卷逐一将详细信息登记[1]。

规则3:XML安全标记文档中,元素的安全标记符合级联递推关系,即若元素e1是e3的子元素,e3是e4的子元素…en是e2的子元素,则元素e1的安全标记支配元素e2的安全标记;

规则4:安全标记文档中,属性与元素安全标记的支配关系符合级联递推,即若属性a1是e2的子元素,e2是e3的子元素…en是e1的子元素,则属性a1的安全标记支配元素e1的安全标记;

规则5:安全标记文档根元素的安全标记必须被其它元素和属性的标记所支配,且根元素的安全标记即XML安全标记文档的安全标记,也是主体能访问文档的最小标记。

根据以上原则,XML文档的根节点是所有其它节点的最外层元素,根节点的安全标记能被所有元素节点和属性节点的安全标记支配。因此,给出XML安全标记文档的安全标记的定义。

定义2 文档的安全等级就是根节点的安全等级,即λ(XLabDoc)=λ(r)。

3.2 安全标记与XML文档绑定算法

多级XML文档是在XML统一化表示的基础上通过为文档绑定安全标记后生成的,本文给出了安全标记与多级XML文档的绑定算法 (algorithm of binding label to Mulit-XML,ABLMX),基本思想为:通过树的层次遍历,为文档树中的每个节点分配安全标记,安全标记包含的密级和范畴为人工定制。为保证网络传输过程中安全标记的完整性,在绑定时使用XML签名技术对文档树中节点及其安全标记进行签名,签名值与安全标记一起成为客体节点的子节点。ABLMX 算法见表2。

表2 安全标记绑定算法ABLMX

一个绑定了安全标记的XML文档的树形结构实例如图2所示。

图2 绑定安全标记的XML文档树形结构实例

3.3 XBLP模型访问控制规则

BLP模型[10]是应用最为广泛的经典强制访问控制模型,其中主体s 安全标记为λ(s),客体o 安全标记为λ(o)。安全标记二元组λ(C,G)之间的关系有两种:支配关系和不可比关系。标记λ1(C1,G1)支配 标记λ2(C2,G2)当且仅当C1≥C2且G1G2,记为λ2≤λ1或,如果两个标记不存在支配关系,则它们不可比。

主体s对客体o能否执行特定操作取决于二者安全标记之间的关系。BLP模型的访问控制规则可以概括为 “不向上读”和 “不向下写”,通过简单安全特性和*特性控制信息流的单向流动。但是XML 文档中包含有两部分信息:数据内容和结构信息。若低级别用户要向上写时,必须先获得高等级元素的信息结构,而XML的结构本身也是一种信息,为了保证低等级主体无法读取任何高安全等级信息,我们采用严格的BLP模型,除了执行简单安全特性外,还遵守严格的*一特性,即 “同级写”:主体能够写客体当且仅当主体与客体的安全标记相等。

XBLP模型的基本规则:① (简单安全特性)仅当λ(o)≤λ(s)时,主体s能够读客体o;② (严格*特性)仅当λ(o)=λ(s)时,主体s能够写客体o。

4 XBLP模型中多级XML文档相关操作

多级XML文档中包含的安全等级具有严格的从根节点到叶子节点的安全等级由低至高的结构,因此在多级XML文档访问控制实施过程中,也需要遵守安全标记约束规则。本文将多级XML文档上的操作分为读取 (extract)、插入(instert)、更新 (update)、删除 (remove)删除。

4.1 客体片段提取操作

当主体访问客体时,根据访问控制规则,不同安全密级的主体能获取的客体的信息也不同。根据XBLP 访问控制规则,若主体s能读取元素e1,则满足:主体s支配元素e1的安全标记:λ(s)≥λ(e1)。

客体片段提取操作思想为:根据主体的安全标记等级先判断主体对整个多级XML文档是否拥有访问权限 (多级XML文档的安全等级为根节点的安全标记等级),若主体能够访问根节点,则先根遍历整棵XML文档树。如果主体的安全等级能支配节点的安全等级则继续遍历,否则则终止遍历,并对节点进行剪枝操作,返回父节点,再遍历其余孩子节点,操作过程见表3。

表3 客体数据片段提取操作

通过客体片段提取操作,可实现不同密级主体访问的客体片段不同的效果,且客体片段的访问粒度能达到元素甚至属性级别,对图1中XML文档树实施片段提取结果实例如图3所示。

图3 不同安全等级主体访问图1中XML树时读取的数据片段根据主体密级不同而不同

4.2 插入子元素操作

插入子元素操作是指在多级XML文档中为已有节点创建新的子元素节点及其安全标记。根据XBLP 模型严格*特性,主体创建的元素应该与主体有相同的安全标记;根据XML安全标记约束规则3,子节点的安全标记必须支配其父节点的安全标记。因此,如果主体s想在元素e1中创建子元素e2,则满足:

主体s支配元素e1的安全标记:λ(s)≥λ(e1);

主体s与元素e2的安全标记相等:λ(s)=λ(e2)。

创建新的元素节点时,同时为其创建安全标记节点,并签名。插入子元素操作过程见表4。

表4 插入子元素操作过程

4.3 更新数据内容操作

更新操作是指对多级XML 文档内元素节点的数据内容、属性节点的属性内容进行更新。根据XBLP 模型,只有相同安全等级的主体才能读写客体,更新后的内容也要遵守安全标记结束规则,因此主体s更新多级XML 文档中的元素e1、属性a1则满足:

主体s与元素e1的安全标记相等:λ(s)=λ(e2);

主体s与属性a1的安全标记相等:λ(s)=λ(a1)。

元素节点或属性节点的内容更新后,只有节点内的数据内容发生变化,多级XML文档的结构并没有发生变化。

4.4 删除节点操作

删除操作是指删除多级XML文档内的元素节点或属性节点,同时删除其安全标记节点。根据XBLP 模型规则,主体只能删除安全等级相同的客体。若删除了低安全等级的客体,则改变了低级数据的内容,违反XBLP模型特性。因此,主体s删除元素e1、属性a1需满足:

主体s与元素e1的安全标记相等:λ(s)=λ(e1);

主体s与属性a1的安全标记相等:λ(s)=λ(a1)。

由于多级XML文档从结构上看是层次树形结构,被删除元素e1可能包含安全等级更高的子孙元素节点,这些节点对主体来说是不可见的。执行删除操作时若只将元素e1删除,那么高等级子孙节点失去结构支撑,破坏文档的完整性,并使得高等级信息不可用;若将这些高等级子孙元素一同删除,则造成越权操作;若拒绝删除,则使得主体能通过这个拒绝行为推理出高等级子孙节点的存在,泄漏了多级XML文档的结构信息,造成隐通道问题[11]。

因此,本文定义了滞后删除策略,为元素和属性节点引入 “visibles”属性,取值为 “true|false”。属性 “visibles=false”表示其对安全等级为λ(e1)的主体不可见,只有当主体的安全标记支配λ(e1)时,才能访问到该节点。删除操作过程见表5。

表5 删除操作过程

删除操作算法首先判断主体是否能够访问多级XML文档及是否拥有删除节点的操作权限。若允许删除操作,则通过后根遍历方式对子树进行遍历,递归算法 (9—17行)遍历子树节点,将安全等级与主体相同的叶子节点 (连同其安全标记及签名)直接删除;拥有高等级子孙节点的节点设置属性值 “visibles=false”。

5 基于XML的多类型数据客体访问控制系统设计

依据多类型数据客体与安全标记的绑定方法及基于多级XML文档的访问控制模型,本文给出了基于XML 的多类型数据客体的访问实施架构,如图4所示。

图4 基于XML的多类型数据客体的访问控制系统结构

图4中,访问服务代理,负责对主体进行身份认证和处理请求及反馈结果;主体标记管理,存储系统中主体的安全标记信息;XML统一化表示,负责将多种类型的客体依据其逻辑结构进行分割并表示成树形结构的XML格式文档;文档通过XML标记绑定模块,实现不同敏感级别的数据元素与不同级别安全标记的绑定,生成多级XML 文档;多级XML 文档管理,负责对多级XML 文档的存储、维护;XML安全标记管理,负责管理多级XML 文档,实施提取、提取、创建、更新、删除操作;客体视图生成,依据访问决策结果和多级XML文档生成视图返回给访问服务代理;访问控制决策中心 (XACDC)是模型的核心模块,负责在XBLP模型访问控制策略下依据安全标记做出访问决策,与客体视图生成模块联动,最终返回访问结果。

主体对数据客体发起访问时,访问请求受理步骤如下:

(1)主体请求访问数据客体时,先要经过访问服务代理对其进行身份认证;

(2)认证成功后,访问服务代理将主体请求及主体安全标记信息发送给访问控制决策中心 (XACDC);

(3)XACDC从用户标记管理模块获取主体安全标记,并向多级XML文档管理模块请求被访问数据客体的安全标记;

(4)XACDC根据访问控制策略,比较主体和数据客体的安全标记、判断请求操作类型,对请求做出正确处理,并将决策结果发送到客体视图生成模块;

(5)客体视图生成模块访问数据客体并根据决策结果生成主体可访问的数据客体视图,然后将最终结果返回给访问服务代理;

(6)访问服务代理将结果返回给主体。

6 结束语

安全标记是实施强制访问控制的基础,等级保护实施的关键,本文分析现有安全标记实施系统中存在的问题,针对多类型数据客体与安全标记的绑定问题提出了一种基于XML的统一化表示方法,在此基础上完成安全标记与客体的绑定,实现基于XML的多类型数据客体的访问控制。提出的绑定方法实现了数据客体与安全标记绑定的统一,解决了安全标记绑定粒度粗、扩展性不足的问题,为多级信息系统间异构数据交互和数据安全访问控制问题提供了技术支撑。

下一步的工作将探讨访问控制过程中数据聚合引起的客体密级提升问题,并研究如何保证安全标记在网络传输过程中的一致性,同时多级安全网络中安全标记与网络数据流的绑定问题也是下一步的研究内容。

[1]GB/T22239-2008.Baseline for classified protection of information system [S].(in Chinese).[GB/T22239-2008.信息系统安全等级保护基本要求 [S].]

[2]CAO Lifeng,LI ZHONG.Method of binding secure label to data object based on XML [J].Computer Science,2013,40(8):124-128 (in Chinese).[曹利峰,李中.基于XML 的数据客体与安全标记绑定方法 [J].计算机科学,2013,40(8):124-128.]

[3]Sander O,Ian B.A proposal for an xml confidentiality label and related binding of metadata to data objects[R].RTO-MPIST-091-22.NATO C3Agency,2010.

[4]World Wide Web Consortium (W3C. “extensible markup language(XML)1.0 (Second Edition)”[EB/OL]. [2013-08-19].http://www.w3c.org/TR/REC-xml.

[5]Barbulescu M,Grigoriu R O,Halcu I,et al.Integrating of structured,semi-structured and unstructured data in natural and build environmental engineering [C]//11th Roedunet International Conference(RoEduNet).IEEE,2013:1-4.

[6]LEE T Y.Formalisms on semi-structured and unstructured data schema computations[D].Hong Kong:University of Hong Kong,2010.

[7]Chen W B,Zhang C,Gao S.Segmentation tree based multiple object image retrieval[C]//IEEE International Symposium on Multimedia.IEEE,2012:214-221.

[8]CHEN Jun,WANG Qing.Image structure representation based on graph-cut and saliency [J].Application Research of Computers,2009,26 (9):3589-3593 (in Chinese). [陈君,王庆.基于图割和显著性的图像结构表示方法研究 [J].计算机应用研究,2009,26 (9):3589-3593.]

[9]Chergui A,Bekkhoucha A,Sabbar W.Video scene segmentation using the shot transition detection by local characterization of the points of interest[C]//6th International Conference on Sciences of Electronics,Technologies of Information and Telecommunications.IEEE,2012:404-411.

[10]Bell D E,Lapadula L J.Seccure computer system:Unified exposition and multics interpretation [R].The MITRE Cor-poration,TechRep:MTR-2997Revision 1,1976.

[11]FENG Xuebin,HONG Fan,LONG Tao,et al.Seccurity policy for REMOVE operation of multilevel XML document[J].Computer Engineering and Application,2008,44 (22):166-168 (in Chinese).[冯学斌,洪帆,龙涛,等.多级安全XML文档删除操作安全策略研究 [J].计算机工程与应用,2008,44 (22):166-168.]

猜你喜欢
访问控制客体文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
符号学视域下知识产权客体的同一性及其类型化解释
ONVIF的全新主张:一致性及最访问控制的Profile A
基于RI码计算的Word复制文档鉴别
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
旧客体抑制和新客体捕获视角下预览效应的机制*