论文部分内容阅读
XML(eXtensible Markup Language)全称为可扩展标记语言。XML最初设计目标是通过数据本身描述数据的语义来使得在Web上和在应用程序之间的通信更加简单。就像万维网以超文本标记语言(HTMI)为基础一样,XML以文档管理为基础,并由一种用来构造大型文档的语言(被称为标准通用标记语言(SGML))派生而来。但是,不同与SGML和HTNll,XML不仅能表示数据库数据,而且还能表示商务应用中使用的许多其他类型的结构化数据。在一个应用程序必须与另一个应用程序进行交流的时候,或者是从一些其他的应用程序中整合信息的时候,XML作为一种数据格式特别有用。在很多实际应用中使用规范化关系模式来管理数据很难应付对复杂的数据需求建模而产生的大量的关系,而XML的自我描述和可扩展性的特点能很好的解决这个问题。所以XML自1998年被提出后得到了越来越广泛的应用,随着Web技术的深入发展,XML已经成为网络上信息描述和信息交换的标准。
本课题来源于中石化中原油田钻井三公司石油测试公司的石油测试工程管理信息系统项目。为了解决管理信息系统中复杂的数据关系和与上级部门信息系统的数据交换的异构问题,越来越多的管理系统采用XML作为数据交换和数据中介的标准。但很多系统在设计的时候把目光都放在实现数据的交换上,比如建立XML数据模型、转换与显示XML文档和设计XML查询语句等。对于在管理信息系统中XML数据的安全问题缺乏足够研究。因为XML数据与传统的数据有很大的不同,所以在设计管理信息系统时对于传统的数据采用的安全手段对XML数据就不再适用,所以对于XML安全策略在管理信息系统中的应用研究非常重要。
本文针对XML安全技术在管理信息系统中应用展开研究,主要研究内容及完成的工作:
(1)本文首先对XML的特点进行了分析,详细介绍了XML文档的结构,并对XML文档数据类型定义、XML文档显示技术和转换技术、XML简单应用程序接口和XML查询语言做了详细的分析。然后本文对Web Service进行了详细的介绍,并将其与XML的相互关系进行了说明。
(2)对XML数字签名和加密重点进行了研究,并提出了优化方案。对于XML密钥管理规范等其他安全技术,本文也做了详细分析。同时也对XML签名的语法和签名处理规则进行了研究分析,并根据中石化中原油田钻井三公司石油测试公司的石油测试工程管理信息系统项目的数据安全方案设计中所遇到的问题,提出了安全策略的优化方案,提高了系统中XML多重签名的效率并且减少了处理多重签名的开销。而且还针对在管理信息系统中实际处理数据时所需要的多个签名者对任意数目目标元素进行签名,并且要求保证签名与源文档紧密结合的问题,提出了比传统解决方式更有效率的优化解决方案XML签名处理和签名变换是公认的XML签名的最重要的方面,所以对XML签名处理模型进行了详细的归纳和研究,归纳出了XML签名的核心生成步骤和核心的验证步骤,并研究了XML签名规范化处理的方法。
(3)对XML加密的研究主要是对〈EncryptedData〉元素以及子元素的研究,详细研究了〈EncryptedData〉元素和它的子元素在文档加密时所发挥的特定作用,并根据这些特定的作用研究了实现对XML文档整体加密、XML文档元素加密和XML文档元素内容加密的具体实现方法。这些研究对于在管理信息系统中提高XML数据加密的效率和灵活处理不同保密要求的数据加密有着重要的意义。特别针对XML加密文档结构中〈EncryptedData〉元素可能产生的安全漏洞提出了处理方案。
(4)研究了在ASP.NET平台上,使用C#语言实现XML数字签名和加密的具体方法。也由此证明了本文研究的XML安全策略在管理信息系统中应用的可行性。
(5)基于对XML签名以及加密推荐标准研究的基础上,并结合管理信息系统的实际应用,提出了一种提高处理XML多重签名效率的方法。在传统的处理XML的签名方法中使用〈Reference〉元素来引用待签名的数据块,当对多个数据块进行签名时就需要使用〈Reference〉元素来引用不同的待签名的数据块。当需要是实现多个签名者同时对多个待签名的数据块签名时,在每个签名者签名的文档结构中的〈Signature〉元素中都要生成多个〈Reference〉元素来引用,当需要签名的数据块成百上千甚至更多时,每增加一个签名者就需要将所有的〈Reference〉元素复制一次,这样就会占用大量的空间。改进的签名方法巧妙的利用签名文档结构中定义签名附加特性的元素〈Object〉的子元素〈Manifest〉元素的特性,避免到了〈Reference〉元素反复的复制,从而减少了签名时系统的开销。更进一步的,还研究了使用XPath表达式,将〈Manifest〉独立于XML签名文档之外,使XML签名文档的语法结构更加简洁。数字签名的一个重要的方面就是使签名和原始文档紧密的结合在一起,正如纸张签名一样。多个签名者对文档中的任意目标元素进行签名,且必须将签名和XML文档紧密结合在一起是在设计XML安全策略是遇到的实际问题,传统的解决方案是把每个签名者的签名都使用整个原始文档产生“报文摘要”来达到签名的目的,这种解决方案的弊端在于如果文档很大,然而待签名的元素只是其中很小的一部分,每个签名者都使用整个文档产生“报文摘要”,则签名的效率会很低。针对这个问题本文提出了一种改进的签名方法使得签名方案能对XML任意元素签名而将文档其他元素排除在外,从而提高签名的效率。在对XML加密研究的主要成果就是针对XML加密文档结构中〈EncryptedData〉元素可能产生的漏洞,提出了一种将签名与加密结合的方法,避免了安全隐患。