基于XML的数据安全保护技术

来源 :海峡科学 | 被引量 : 0次 | 上传用户:tt_lang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要] 在面向Internet环境的数据库安全方面,该文主要研究了内涵级的XML数据安全保护技术。在XML访问控制方面,改进了现有模型中授权主体的定义范畴,同时将请求评估模块和决策执行模块显式分开,增加了定制安全策略和安全规则的灵活性和通用性。探讨了利用XML对文档进行数字签名和对签名进行校验,以及对XML文档加解密的方法,并利用这些技术实现了一个基于Java通用平台的XML数字签名和加密原型系统。
  [关键词] XML 数据保护技术 数字签名
  
  1 引言
  
  伴随Web应用规模的扩大和层次的深入,作为数据存贮、查询、更新、分析载体的数据库系统,在存储模式、体系结构等方面也随之发生变化,逐步走向面向Internet的系统整合、数据集中。可扩展标记语言(eXtensible Markup Language,XML)是目前最热门的在World Wide Web上保存和传递信息的语言。本文利用XML语言本身的特性,如基于元素、可扩展、表现与内容分离等优点与传统的安全技术的结合,使这些传统的安全技术如签名、加密、访问控制等具有更细致的数据保护粒度和更丰富灵活的语义特征。研究内容包括XML访问控制策略与模型、元素级的XML数字签名技术和XML加密技术的实现等。
  
  2 基于XML的访问控制技术
  
  基于XML的访问控制的研究目标在于,为XML数据文档提供一个成熟的访问控制模型、策略和规范,使得安全管理员能够定制系统的安全策略并控制XML数据可以按照预想的方式展现在数据请求者面前。
  2.1 改进的XML访问控制模型与策略
  我们的访问控制模型中的主体XML访问控制处理器(XML Access Control Processor,XACP)包含两个主要的模块:请求评估模块(Request Evaluation Module,REM)和决策执行模块(Decision Execution Module,DEM)。当用户给出某个访问请求要求对目标XML文档执行某种动作的时候,XACP将按照以下步骤做出反应:
  (1) 用户提交访问请求,其中包括用户的身份标识、访问对象(文档或元素)、以及预期动作;
  (2) 请求评估模块检查策略库中的访问规则,生成对该请求的访问决议;
  (3) 决策执行模块执行确定的访问决议,如果访问决议中用户对所访问资源的请求操作为“更新”、“创建”或“删除”等写操作,则修改相应的目标文档;
  (4) 当访问决议中用户对所访问文档请求的操作为“读”时,生成该文档对象的访问视图返回给用户,同时将此视图保存到缓存。
  


  图1描述了访问控制系统的构架和上述过程,其中XML用户视图的计算方法将在以下作详细的描述。
  2.2 请求者视图计算方法
  将访问控制策略施加于授权主体和授权客体上,从本质上是一种对客体对象进行的投影操作(projection)。投影的结果是该主体(即访问请求者)根据授权规则所能访问的节点的集合。因此对每个请求者(requester)而言,授权决策模块最后都应该提供一个针对该请求者的XML文档的视图(view)。如果将XML视为树型结构的话,那么这样的一个视图就是对该树进行剪枝操作后的一颗子树。我们给XML文档树的每个节点n附加一个8元组的标签:<LXHn, RXHn, Ln,Rn, LXn,RXn,LSn,RSn>其中的L代表Local,R代表Recursive,X代表Xml schema,H代表Hard,S代表Soft。
  


  从元组中元素的排列顺序很容易看出,元素是按照优先级从高到低的顺序排列的。本地硬模式LXHn有最高优先级,递归软授权RSn优先级最低。元组中的每个元素代表该类型的访问许可信息的符号,其取值值域为{‘+’,‘-’,‘ε’},分别代表“肯定许可”,、“否定许可”和“不确定许可”。我们通过给文档树中的节点作标签(document tree labeling)的方法给出了计算用户视图的过程和相应的算法,如图2所示。
  在上述的用户视图计算过程中,首先,Initial Label根据策略库中的各条授权规则设置每个节点的8元组的标签;然后,Set Label过程根据每个节点及其父节点的元素标签更新自己的标签,从根节点开始对XML树进行自顶向下的顺序(preorder)遍历;Get Final Label过程计算每个节点标签中第一个非空的元组元素作为其最终标签(因为8元组标签按优先级从高到低排序);最后,将那些最终标签为‘-’或‘ε’的节点剪枝(‘ε’节点是否删除取决于全局策略是开放的还是封闭的),最终得到用户请求的XML文档的可访问视图。
  
  3 XML数字签名及加密的研究与实现
  
  随着信息技术的飞速发展和网络应用的日益普及,越来越多的事务以网络为媒介采用电子化方式进行处理,比如远程教育、电子商务、电子银行、电子政务等等。而安全问题是这些应用能否成功的关键问题。可扩展标记语言XML由于其自身的优点(基于元素的概念、可扩展性、表现与内容分离以及可表示复杂的结构等)而逐渐成为一种在WWW上进行信息描述和交换的标准。但XML仅是一种语言,它自身无法保证基于它的应用的安全性。因此,建立一个安全的应用平台便成为其应用的前提和基础。一般而言,所面临的安全威胁主要有以下几类:非法访问、非法篡改、假冒伪造、拒绝服务、抵赖等等。要抵御上述安全威胁,一个安全的基于Web的应用平台必须满足如下安全需求:
  (1) 机密性(Confidentiality)——其他任何人都不能访问或复制该数据;
  (2) 完整性——该数据从发送者到达接收者的过程中未被更改;
  (3) 身份验证——对发送者进行身份鉴定;
  (4) 抗抵赖——发送者不可否认该文档确由其发送,也不能否认文档的内容。
  3.1 XML数字签名的生成和校验
  一份XML数字签名的生成包括以下几个基本步骤:
  (1) 决定准备被签名的数据(或资源);
  (2) 对每个要签名的资源进行一系列变换操作最后计算其摘要值;
  (3) 收集各个参考对象(Reference)元素;
  (4) 对整个<SignedInfo>元素进行规范化处理后签名;
  (5) 添加密钥信息;
  (6) 将上述结果组装到一个<Signature>元素中。
  图3描述了对两个文档进行签名的数据流程,其中包括了对签名资源的变换过程和对<SignedInfo>元素的规范化处理过程。
  


  对XML数字签名的校验包含两个必需的步骤,分别是签名校验(SignatureValidation)和参考检验(Refenrence Validation)。
  签名校验就是对<Signedinfo>元素签名的校验。校验过程为:对<SignedInfo>进行规范化处理,然后用<Signature Method>指定的算法重新计算其摘要值,并用<KeyInfo>中或已知的签名者公钥来计算最后的签名值。如果该值与<SignatureValue>中的数值吻合,则这一步骤的校验通过。
  参考检验的过程,则是先对<Referenee>URI属性中的签名对象实施<Transform>中指定的变换算法,然后利用<DigestMethod>指定的单向哈希算法计算每个参考的摘要值,并与<DigestValue>中的数值进行比较,如果对所有的参考对象该值都是吻合的,则参考检验成功。只有当上述两个步骤都成功时,该XML数字签名的校验才算通过。
  3.2 XML文档的加密
  我们可以将XML文档整篇加密,然后安全地发送给一个或多个接收方,这是SSL或TLS的常见功能,但XML文档加密主要研究的是如何对同一文档的不同部分进行不同处理的情况。XML加密定义了一个对明文加密产生密文以及对密文解密恢复明文数据的过程。明文可以是任意文件,如一篇完整的XML文档或是XML文档的一个小段落,但只允许有两种形式的XML文档段落:XML元素或XML元素的内容。<EncryptedData>元素包含了三个子元素:<Encrytion Method>定义了加密的算法、<KeyInfo>提供密钥、<Cipher Data>提供密文。<EncryptionMethod>和<KeyInfo>都是可选的,发送人和接收人可以事先商定加密方法和密钥。如果接收者事先不知道解密的密钥,发送者可以先产生一个密钥并发送给接收者。在传输过程中,可以通过EncryptedKey对象或是密钥管理(使用<AgreementMelhod>)对密钥进行加密保护,也可以在加密数据的<KeyInfo>元素中发送,或使<RetrievalMethod>从<KeyInfo>引用。以下代码给出了XML加密语法和处理的构成元素:
   <EncryptedData Id ? Type ? MimeType ? Encoding?>
   <EncryptionMethod/>?
   <ds:KeyInfo>
   <EncryptedKey>?
   <AgreementMethod>?
   <ds:KeyName>?
   <ds:RetrievalMefhod>?
  <ds:*>?
   </ds:KeyInfo>?
   <CipherDala>
   <ciphervalue>?
   <CipherReference URI?>?
   </CipherData>
   <EncryptionProperties>?
  </EncryptedData>
  我们可以看到,XML加密语法的核心元素是<Encrypted Data>元素,该元素与<EncryptedKey>元素一起用来将加密密钥从发起方传送到已知的接收方,<EncryptedData>是从<EncryptedType>抽象类型派生的。要加密的数据可以是任意数据、XML文档、XML元素或XML元素内容,加密数据的结果是一个包含或引用密码数据的XML加密元素。当加密元素或元素内容时,<EneryptedData>元素替换XML文档加密版本中的该元素或内容。当加密的是任意数据时,<EncryptedData>元素可能成为新XML文档的根,或者可能成为一个后代元素。当加密整个XML文档时,<Enerypted Data>元素可能成为新文档的根。此外,<EncryptedData>不能是另一个<EncryptedData>元素的父代或后代元素,但是实际加密的数据可以是包括现有<EncryptedData>或<Encrypted Key>元素的任何内容。我们系统中的加密模块主要实现了DESede和RSA算法对XML文件的加密,用DESede可以对XML文件实现对整个文件、元素和元素内容的加密。由于用RSA算法加密所花的时间要比DESede多得多,而且BouncyCastle提供的RSA算法对明文的长度有一定的限制,所以对RSA算法只实现了XML文件的单元素或元素内容的加密。
  3.3 实现技术
  我们研究的X-Sig系统采用Java编程,主要实现了三大功能模块:密钥管理模块、数字签名模块和加解密模块。分别包括:生成和存储公开密码体制的密钥对及自签名证书、生成和存储对称密码体制的单密钥,对XML文件或元素的签名、校验、加密以及解密等操作。签名之前如果没有密钥的话,要先生成用于签名加密的密钥,对称密码体制和公开密码体制的密钥分别放在不同的密钥库中。签名分为detached、enveloping和enveloped签名,对于被签署对象为XML文件来说,这三种签名都可以生成,而且可以对其中的元素进行签名。而对于非XML文件来说,则只可以生成detached形式的签名。加密分为对整个XML文档的加密,对元素的加密和对元素内容的加密,系统整体模块如图4所示。
  


  X-sig数字签名模块的主要流程描述如下:
  (1) 选择要签名的文件;
  (2) 接收用户输入的各参数;
  (3) 按照是否进行Enveloped形式的签名决定是否生成新的DOM文档;
  (4) 设置id值;
  (5) 根据所选签名算法生成TemplateGeneralor实例并设置属性;
  (6) 根据用户输入选择何种方式注册Reference实例(分离式,嵌入式,封装式);
  (7) 调用getSignatureElement()生成签名的根元素;
  (8) 根据用户提供的密码取出密钥库中的密钥和证书信息;
  (9) 调用SignatureContext的sign()函数进行签名;
  (10) 生成keyinfo元素并插入到签名元素中;
  (11) 将签名保存为指定的XML文档。
  
  4 总结
  
  本文研究了Internet环境下基于XML的数据安全问题,包括XML的访问控制、数字签名与加密技术的研究,提出了基于XML的数据安全研究的论题。接着讨论了基于XML访问控制模型中的授权主体和授权客体、访问授权规范以及请求者视图的计算算法,提出了一个改进的XML访问控制模型框架,将请求评估模块和决策执行模块显式分开,使访问控制处理器不仅可以处理对XML文档的“读”请求和“写”请求,而且可以根据需要增加一些“临时”的授权动作。我们比较了XML数字签名与传统的数字签名技术的不同,阐述了利用XML对文档进行数字签名和对签名进行校验、以及对XML文档加解密的基本方法,探讨了基于Java的通用平台的XML数字签名和加密原型系统X-sig的实现技术。
  
  参考文献
  [1] 朱虹,冯玉才,王元珍等. 多级安全空间数据库的语义[J]. 小型微型计算机系统, 2001,(9).
  [2] 王元珍,汪皓. 基于信息流的存储隐通道标识方法研究[J]. 小型微型计算机系统, 2001,(4).
  [3] 朱虹,冯玉才. 隐通道识别技术研究[J]. 计算机科学, 2000,(5).
  [4] 冯玉才,周淳,朱虹. 安全DBMS中存储隐通道审计[J]. 小型微型计算机系统, 2001,(5).
  [5] 王晓京,何永忠. 用XML实现电子公文的签名和加密[J]. 计算机应用, 2002,(8).
其他文献
河源十三坊的入公太仪式是民间纪念王审知的民俗活动,坊间轮流值祀,而今花落吴家坊。一年来的筹备与全民的参与,让这场十三年一遇的盛典充斥着狂欢的气息,人们浩浩荡荡迎公太、厚礼祭祀、秉香祈愿、大宴宾客。这一刻,本是严谨守旧的客家人,却在这场欢畅淋漓的盛典中,放肆、洒脱。这是神的庆典,也是人的庆典。  2017年农历二月初三凌晨四点,培田响起了震耳欲聋的喧闹声,锣鼓、喇叭齐鸣,充斥着狂欢前的摩拳擦掌与亢奋
期刊
德化因“白”而立城,这里制成的白瓷温润细腻,如脂似玉。在宋元至明清时期,它借助繁盛的东南海运,让世界通过“白”与中国紧密相连,因而成为这座城市最“醒目”的色彩。时至今日,德化依然因为盛产白瓷而立于世界陶瓷之林。  如今我们走在德化的大街小巷中,仍能感受到这座城市因为陶瓷而传承千年的气质——就像高高耸立的戴云山一样朴实、沉稳、内敛,这也是“白”赋予这座城市的气质。  欧洲人叫它“中国白”  “Bla
期刊
2017年3月12日,趁着大好春光,村跑在连城四堡开启了新年第一站。这是村跑继塘前站后第二次跑进连城客家,四堡村跑不仅有着更精彩的客家文化体验,还趁着李花盛开的时节带着村卷们跑玩一场“李香墨韵,春跑花开”的春日趣跑。  村跑更是将“旅游+文化+健身”的旅行新方式带到古韵四堡,让更多人关注被遗忘的明清坊刻文化辉煌,让这座客家古镇重新焕发生机。  第二次跑进客家,我们到底想干啥  2017年的第一站村
期刊
在临海有很多活法。有人选择在数字时代开一家纸质书店,通过引导和分享让小城多了一个互动的平台,有人埋头精制咖啡,在小城中传播轻松的咖啡文化,有人持续创作,用艺术发声,也有人离开城市,在自然之间安家落户、接待友人。这些年轻人在“落后”于大时代的节奏中脚踏实地,选择自己想要的生活并乐观地坚持下去,也为这座小城增添了许多不同。  『10+1』艺术展  一座小城能和艺术发生什么关系  崇和门位于临海老城的中
期刊
全球独树一帜的单一纯麦威士忌百年品牌格兰菲迪(Glenfiddich),因其完美和谐的口味,深得广大威士忌爱好者和鉴赏家的厚爱。平时醉心中国传统文化的福璞美术馆创始人陈志金,不仅在文化地产商业领域游刃有余,更在紫砂壶的系统艺术收藏研究上可圈可点。谈起品鉴威士忌,他的饮酒哲学“独乐乐,不如众乐乐”,一群人“游于艺”,三五同好共享格兰菲迪,才是雅致生活的完美体现。  陈志金兼具企业家与艺术收藏家双重身
期刊
朋友说去冲绳一定要喝本地的“ORION”啤酒,ORION代表着猎户座,这款啤酒的LOGO是三颗星星,冲绳当地人说这代表着冲绳在日本版图上的位置:美丽的冲绳岛,就是西太平洋上最亮的三颗星。  黄昏下的那霸印象  飞机从上海起飞后,经过短暂的一个来小时便开始缓缓下降——是的,冲绳距离中国本土很近,在地理位置上,冲绳位于日本国土的最南端,正好在台湾岛与日本九州岛中间,和福建同样处北纬26度,直线距离不过
期刊
在今天,妈祖几乎成为福建海神的代名词。但在宋代泉州,官方鼎力支持的海神却是通远王。妈祖究竟是如何打败如日中天的通远王,逐渐上位,以至成为统御海上的最高神灵的?  妈祖原名林默,北宋时期福建莆田湄洲屿人。她在生前能预知祸福,造福当地百姓,于是去世后,得到百姓的立庙祀奉。但在获得官方认证之前,妈祖还只是福建民间众俗神之一,人们向她祈求消灾解厄,送子赐福,祈雨护航。直至北宋宣和五年(1123年),官方才
期刊
厦门,在很多人看来,是一座风情旖旎的岛城,海风轻拂,白浪逐沙。从厦门出发,一个多小时的车程,即可到达同安,再多花些时间驱车往更深处,你看到的世界就变了模样,从海滨直指山野丛林,一座城市的面貌更加丰富多元了起来。  选择一个地方,建造一座城市,不会是无缘无故的,人们对待自己的家园,总是谨慎再谨慎。大到一个都城,一个县城,小到一座家宅,一座桥梁,从选址开始,就有系统又涉猎甚广的一套成熟逻辑。  同安作
期刊
近日,厦门润丰吉祥温德姆至尊酒店迎来温德姆奖赏计划全球第5,000万名会员。在活动现场,温德姆酒店集团环球忠诚度计划高级副总裁Noah Brodsky,与温德姆酒店集团大中华区总裁刘晨军先生,共同祝贺徐阳先生获此殊荣。这一里程碑式的突破,标志温德姆奖赏计划取得傲人成绩,也让厦门润丰吉祥温德姆至尊酒店尽显至臻魅力。  作为业界闻名的经济型和中端酒店的领导者,温德姆一直致力于为每一位旅客提供优质的入住
期刊
[摘要] 以SKALAR San++连续流动分析仪对水样的NO3- -N浓度测定的线性范围、精密度、准确度、方法最低检测限、加标回收率进行了研究;并采用同一标准样品将间隔流动分析法和国家标准方法进行比对实验。结果显示:间隔流动分析法测定硝酸盐的工作曲线线性范围为0.01~10.0mg/L,最低检出浓度为0.0023 mg/L,重复测定的相对标准偏差小于5%,方法的精密度、准确度优良。与国标方法的离
期刊