admin 管理员组

文章数量: 1086019


2024年4月19日发(作者:个人主页网页设计模板 html css)

维普资讯

第26卷第5期 

2006年5月 

计算机应用 

Computer Applications 

Vol_26 No.5 

Mav 2006 

文章编号:1001—9081(2006)05—1061—03 

XML文档的加密访问控制与传输 

盂健,曹立明,王小平,姚亮 

(同济大学计算机科学与技术系,上海200092) 

(michaelmeng1 978@1 63.com) 

摘要:以XML文档的特殊结构为基础,将加密与访问控制结合起来,提出了一个访问控制模型 

(Access Control Model,ACM)。根据访问控制模型,按照主机角色及其特点、主机角色间的关系和访 

问控制策略库(Access Control Base,ACB),设计了XML文档分组加密算法,产生密钥对照表,进行密 

钥分配与管理,将依据一个或多个密钥对XML文档解密的任务交给主机,减轻服务器的负担;根据访 

问控制策略对主机的访问权限进行时间限制,在访问控制模型的基础上提出依据访问控制权限,将加 

密后的XML文档安全传送给不同级别主机,并进行安全检查的方法。 

关键词:XML;访问控制;粒度;加密 

中图分类号:TP309.7;TP393.08 文献标识码:A 

Encryption access control and transmission of XML documents 

MENG Jian,CAO Li—ruing,WANG Xiao-ping,YAO Liang 

(Department ofComputer Science and Technology,Tongfi University,Shanghai 200092,China) 

Abstract:Extensible Markup Language(XML)has become the standard for data interchange on the Interact.In this 

paper,based on the special structure of XML documents,an acA2:e8¥control model(ACM)was brought forth.According to this 

 ̄cess control model and diferent roles of hosts,their characteristics,their relationships and access control base(ACB),an 

lagorithm of grouping and encrypting XML documents was designed.Key・collation table was created and keys were distributed 

nad managed.Hosts use one or more keys to decrypt XML documents and the server is set free.The acce8¥of hosts is temporally 

controlled by ACB.On the basis of access control model,the mefl ̄do of transmitting securely XML documents encrypted 

according to access control privileges,to hosts of idferent grades,and the method of security check—up were put forward. 

Key words:XML;access control;granularity;encryption 

0 引言 

到每一个XML语义元素…,访问控制模型必须能以多种粒度 

级别对XML语义元素制定访问权限,一般的访问控制机制对 

XML作为一种元语言,已经成为互联网异构环境下不同 

此并没有特殊的要求;访问XML文档的用户具有异构和动态 

类型和不同领域数据交换的开放标准 。XML文档通过定 

的特点,因此传统的基于ID(用户身份)的验证机制不再适 

义标记描述文档的结构和意义,其数据具有结构化、树形的特 

用,需要采用其他的验证机制 J。根据访问主体的特点,采 

点,具有强大的可延展性和自我描述性。在XML安全的加 

用基于角色的访问控制方式(role.based access control。 

密、数字签名和访问控制三方面中,访问控制机制是其中一个 

RBAC) 。根据访问主体在系统中需要完成的工作,定义角 

重要环节。我们依据XML文档的特殊结构,提出了一个访问 

色,并授予其一定的访问权限,访问控制机制根据角色需要完 

控制模型,首先对XML文档进行相应粒度级别的加密,利用 

成的任务,对每个角色进行权限的分配 J。 

主机的角色与特点和依据访问控制模型形成的ACB,将XML 

访问控制模型需要将访问权限限制在一定的时间范围 

文档分组,提出了采用多级密钥分组加密的算法,结合加密与 内。因此在不同的时间段内,访问主体可扮演不同角色,对文 

访问控制,生成密钥对照表,进行密钥分配与管理,并提出安 

档具有不同的访问权限。访问控制模型必须能够根据时间调 

全地传送XML文档并进行检验的方法。 

整不同角色的访问权限。 

1 XML文档的访问控制要求 2 XML文档的访问控制分级加密 

对网络中的数据进行保护的技术主要有数据加密、数字 根据对XML文档访问控制机制要求的分析,我们提出 

签名和访问控制等,其中,访问控制策略与机制是保护网络数 

个访问控制模型(ACM),ACM=(.s,H,ACP)其中,.s为服 

据的重要方法之一。在网络环境中,XML已经成为描述数据 务器、 为主机、ACP为访问控制策略。.s提供需要访问的XML 

的主要语言,具有较为特殊的树型结构特点 ,因此,需要根 文档, 向.s发送请求。ACP是一个六元组ACP=(,,P, 

据XML文档的特点构建访问控制模型和机制。 sub・sp,ace・sp,prop・ops,type)。下面分别介绍每个元素的意 

XML文档的访问控制机制与一般的访问控制机制不同, 

义。 

传统的访问控制机制不能直接应用于对XML文档的访问控 ,表示ACP的有效时间,,={(tl,t2)I tl,t2∈T,tl<t2}, 

制中。由于XML查询语言(Xquery)的存在 ,可以直接寻找 

表示时间; 

收稿日期:2005—11—04;修订日期:2006—01—16 

作者简介:孟健(1977一),男,新疆石河子人,博士研究生,主要研究方向:分布式系统与安全;曹立明(1944一),男,浙江绍兴人,教授,博 

士生导师,主要研究方向:人工智能、多Agent系统;王小平(1962一),男,江苏扬中人,副教授,博士,主要研究方向:遗传算法、多Agent系统; 

姚亮(1981一),男,安徽蚌埠人,硕士研究生,主要研究方向:分布式系统安全. 

维普资讯

1062 计算机应用 2006生 

P={Pi(t t )I i=1,2,3,…,n l,t E T t<t , 

u Pi=,};尸是,的子集。 

ace—sp E}view,navi,bro—al,dele—attr,ins—attr, 

upda—attr.inst—elem。dele—elen,auth—all}。每个ace一印的取值 

分别表示对文档的操作权限,view表示允许对所有(或部分) 

元素进行读操作,navi表示可以通过受保护元素中的链接访 

问其他元素或属性,bro—al表示view和navi的合成,dele—attr表 

示允许删除元素属性, m—attr表示可以添加元素属性, 

upda—attr表示允许修改元素属性, m£一elem表示允许插入当 

前元素的子元素,dele—elen表示允许删除当前元素及其所有 

在Xpath规范中,以“/”引导的结点表示的是元素节点, 

以“@”引导的是属性节点,以“text()”引导的是文本节点。|s 

的任务是扫描ACB,根据每条ACP中角色、访问权限、策略级 

别等信息,将XML文档按照一定的规则分块,并对各部分依 

据级别密钥对照表(表1)运用不同的密钥加密。 

根据该文档的特点,|s首先将日分为admin、manager、 

employee三种不同角色,日在访问该文档前,都必须向|s提供 

关于其角色和其他相关信息,这些信息如图2所示。 

子元素,auth—all表示允许对元素作以上的所有操作,即 

auth—all=view『 ldele—attr f Idele—elen; 

sub—sp表明角色信息<sub,nttm>sub是一个xpath表达 

式,说明ACP允许的访问角色,nttm表示允许访问XML文档 

的角色的种类数; 

prop—ops xpath表达式,以“/”或“@”为前导符,分别表明 

路径所表示的节点性质,例如/business records ̄record指定 

record子节点中的所有元素,record employee@id表示record 

employee的 属性; 

type={cp I tp E Z,max(tp)≤nttm},表明ACP的优先 

级。type通常在形成访问控制策略库(ACB)后,在多条ACP产 

角色的主机 

生冲突的情况下使用,优先级别高的ACP得到优先执行” 。 

不同的日在对|s发出访问该XML文档请求前,|s首先根 

据角色产生若干条ACP,用访问控制模型六元组(,,P, 

sub—sp,acc—sp,prop—ops,type)表示。|s可对文档生成若干条相 

应的ACP。ACP集合形成ACB。 

访问控制策略库ACB: 

ACP1([01/01/2005,12/31/2006],[01/01/2005,12/31/2005], 

/H su ̄/Typc[@Role:AdmJn],amh—al1.Business Report,type:2) 

ACP2([01/01/2005,l2/3l/2005】,【01/01/2005,O6/3O/2O05], 

/H staff/Type[@Role:ma|l昭erI,view.BusinessReport,rank--3) 

ACP3([01/01/2005,l2/3l/2o05】,【01/0112005.07/31/2005], 

/H staff/Type【@Role:n1a|lager AND@Dept:H1】,viw,e 

wo&records,type=3) 

为了说明该模型对XML文档的访问控制操作,首先提出 

个XML文档的实例,并以树形图的形式将该文档表示出来: 

<business records company:”general company。’> 

<recoTd employee id: 54688 date creation: 05\03\01 > 

<pe ̄onal data> 

<sname>red</shame> 

<na/ne>paul</name> 

<adddress>…</address> 

<insurance id: … /> 

</personal data> 

<workexpefiences> 

<workexperlence id: 01 date: … dept: H1 > 

ACP4([01/01/2005,12/31/2006],【01/0112005,07/31/2005], 

/H staff/Type【@Role:nl ̄er AND@Dq,t:}I2】,viw,e 

work ̄cords[@Dept=}t2】,type:3) 

ACP5([01/01/2005,12,/31/2005],【01/01/2005,07/31/2005]. 

/H staff/Type【@Role:manager AND@Dept:H1】,auth—al1. 

wo ̄krecords[@Dept=HI],type:4】 

ACP6([01/01/2005,1/312/2005],【01/0112005,07/31/2005], 

/H staff/Type【@Role:manager AND@Dcpt:}I2】,auth—all, 

woSo ̄cords[@Dept:}I2】,type:4】 

ACP7([01/01/2005.12/31/2005],【01/01/2005.07/31/2005], 

</workexperiences> 

<workrecoMs> 

<work record IDTRF: 01 dept: It2 > 

</workreco ̄> 

<workreeo ̄IDIRF: 02 dept: H2 > 

/H staff/Tyl ̄[@Role=em#oye],view,Personal山l type=5) 

</workreco ̄> 

ACB中的每一条ACP表明每个具有不同相关信息的角色 

在不同的时问段内,对文档中的不同部分具有不同的访问权 

限”J。基于访问控制模型六元组(,,P,sub—sp,acc—sp, 

</workreCO ̄¥> 

</record> 

</busine8s l"ecord8> 

prop—ops,type)生成的ACB提供的相关信息,以ACP3为例,, 

为[01/01/2005,12/31/2005],表示该条ACP的最长有效时 

间;尸为[01/01/2005,07/312005],/表示对sub—sp表示的角 

色及特点,o,cc—sp的有效时间;sub sp为/H staff 

/Type[@Role=managerAND@Dept=H1] 其中角色 

为manager,特点为Dept:肌;acc—sp为view,表示允许对 

所有(或部分)元素进行读操作;prop—ops为workrecords。 

表示这条ACP涉及的文档块;type=3表示该条ACP的 

优先级为3。我们设计了一个XML文档加密算法,根据 

如下所示的算法,能够将XML文档分块,并为每一块文 

档分配相应的密钥,生成相应的密钥对照表(表1)。 

算法根据ACB,根据角色的不同以及角色的权限 

重叠,将XML文档分组,对每一组分别采用不同的密钥 

加密。生成XML密文。 

算法名:GroupingandEnerypting 

图1 XML文档的树形表示 

入口参数:ACB 

维普资讯

第5期 孟健等:XML文档的加密访问控制与传输 1063 

输出参数:密钥对照表XML文档密文S 

第1步:取出ACB中的第一条ACP,取出其中的角色及 

特点: 

Policiesl=getPolicies(sub—sp); 

第2步:取出下一条ACP,并比较两者的角色特点是否相 

日 一A: 5(B(AP(name,Ed)),A,AP(Req(XML1,acc-k, 

ace—t))) (1) 

A接收到消息ml后,使用日的公钥日 检查消息,通过日 

提供的身份信息name、Ed,确定日的角色及其特点,并用私钥 

A 解密,提取出Req,并发送消息m2到日,其中包含用日的公 

钥加密的文档密文S删 以及相应密钥组J}1、娩、船、… 

A 一日:A5(A,B,BP(S 1)) (2) 

同,若相同则选取文档内容多的与该角色相对应,若不相同则 

取出再下一条ACP进行比较: 

Policies2=getPolicies(sub-sp); 

If Polocies2≠null then 

(Compare Policiesl&Policies2; 

f Iequal then 

日收到密文和密钥后,可以对文档进行部分获全部的解 

密,阅读信息,或修改文档。完成相应操作后,发送消息 给 

服务器,其中包括修改或未修改的文档ModiXML1。 

日 一A:B5(B,A,AP(ModixML1)) (3) 

A首先提取m2中的acc—k,判断访问类型,若为view,则发 

Policies(sub-sp)=(compare policies2. 

prop・ops&policies1.prop-op); 

Else goto第2步l 

找出所有不同的角色及特点和与该角色相对应的访问范 

围,存放在名为actor—region的表中。 

第3步:比较actor.region表中不同角色的范围,若有任意 

两角色a、b,分别对应A、B两个文档块,A n B≠ 且A n B 

≠A、A n B≠B,则ab=A n B,a1=A n C,b1=B n C,以 

送拒绝消息m4。 

A 一B:A5(refuse)) (4) 

否则,根据ACB比较,若在六元组中,sub-sp、acc.sp对 

Modi 删均支持,且ModixM 在prop—ops范围内,acc-t在P标示 

的范围内,则发送m5给日,否则发送 ,参数 指出拒绝的原 

因。 

A 一B:As(accept)) 

A 一B:As(denial( )) 

(5) 

(6) 

此类推,直到所有分块文档ab、a 、b 一没有重叠为止。 

第4步:为每一个文档块分配一个密钥,将角色与一个或 

多个文档块对应起来,并为每个文档块分配密钥,生成密钥对 

照表(表1)。 

a)ab.key=kl; 

b)a1.key=k2; 

c)b1.key=k3。 

表1密钥对照表 

值得注意的是,虽然m4、m6同为拒绝请求,但其意义不 

同,refuse表示的是主机提出的是浏览的请求,但对文档进行 

了修改,与提出的请求不一致,而denial则表示根据ACP,不 

允许主机进行某种操作,原因可能是sub-sp不支持( =1)、 

acc—sp不支持( =2)、ModixMn不在prop-ops范围内( =3)、 

acc-t不在P标示的范围内( =4)或者其他原因( =5)。 

经过(1)一(6)的过程,将经过多级加密的文档安全地传 

送给了各个主机,并完成了XML的修改检验。由于经过了多 

文档块与密钥 角色与特点 

Business record.business record.key k1 

.. 

级加密,服务器只发送符合主机角色要求的相应密钥,主机无 

法获得其角色以外的密钥,从而无法实现角色以外的功能,防 

止了主机对文档的误操作和恶意操作。 

ad “ 

Workl'ecordsf@Dept=H1).key=k2 

orkrecords @Dept=H1 .key=k3 

Personal data.key k4 

4 结语 

本文提出了一种对XML文档授权和访问控制,以及验证 

的模型,在模型的基础上提出XML密文分块加密算法,并描 

述了基于分级加密的XML文档传输与安全检验。与其他的 

模型相比较,本模型的优点在于对XML文档进行了依据角色 

的多级加密,将解密的过程交给主机完成,缩短了服务器的服 

务时间,并在验证阶段再次利用ACB,确定主机的操作是否 

得当,完成对XML文档的操作。 

参考文献: 

【l】 ERDMANN M,STUDER R.How to structure and acee¥s XML doc- 

uments with ontologies【J】.Data and Knowledgus Engineering, 

2001,36:317—355. 

ManagerDept=H1 Workrecords(@Dept=H1).key k2 

ManagerDept=H2 Workreords(@Dept=H2).key k3 

Employee Personal data.key k4 

第5步:根据密钥对照表,对XML文档分级加密,生成 

XML密文s删L。 

算法说明:在选取ACP时,按照六元组中type的优先级 

顺序选取,由高到低依次进行。 

3 基于分级加密的XML文档传输与安全检验 

当日向s提出访问申请时,s(假设为A)接收日(假设为 

发出的访问请求,扫描密钥对照表,根据日的角色与特点 

将表中提供的相应密钥采用非对称加密的方式(A B,分别 

表示A、B的公钥,用来加密,A 、B 表示A、B的私钥,用来签 

名),发送密文 与密钥组。B解密文档,并作相应的阅读 

或修改操作,返回文档』l ,由A根据日发送的访问请求 

中的访问类型acc-k、访问时间acc-t以及ACB中对该角色授予 

【2】 BERTINA E,CARMINATI B,FERRARI E.XML security[rt]. 

Infommtion Security Technical Report,2001,6(2):44—58. 

【3】 W3C XML Working Group.Extensible markup lnguage(XML)a 

I.0【EB/OL】.http://www.xm1.com. 

【4】 OASIS Extensible access control markup language(XACML)【S】. 

Committe Speciifcation,2003. 

[51 MIKLAU G,SUCIU D.Cryptographically enforced conditional丑c- 

CCSS for XML【EB/OL].http://www.cs.washington.edu/homes/ 

suciu/webdb2002MS.ps.2002—05. 

的权限,分析日的操作是否得当,作相应检查,向日返回检查 

结果。以下是对这一过程的详细描述。 

假设XML文档在A,提出请求的是日。首先由日向A发出 

[61 HADA S,KUDO M.XML access control language:provisional au- 

thorization for XML documents.Tokyo Research Laboratory,IBM 

请求m1,用日的密钥 对消息签名,标明消息的发出者为 

日(包含名称name和号码Ed信息),接收者为A,用A的公钥 

A 加密的请求Req(包含请求的XML文档名称XML1、访问类 

型acc.k、访问时间acc-t)。 

Research[EO/BL].http://www.w3org/TR/xml—cl4n,2002—05 

l8. 

【7】 SCHMIDT A,WASS F,KERSTEN M,et n Xmark:A benchmark 

or XML datfa management【A】.Proc.VLDB【C】.HongKong, 

China。2002. 


本文标签: 文档 访问控制 访问 角色 密钥