XML数字签名在网络办公系统中的应用研究

阅读: 评论:0

2024年1月29日发(作者:)

XML数字签名在网络办公系统中的应用研究

2010年第8期 NO.8.2010 第28卷 毕节 学院 学报 JOURNAL OF BHIE UNIVERSITY V0l_28 (总第121期) General No.12l XML数字签名在网络办公系统中的应用研究 龙亚,黔枫,彭佩 (毕节学院计算机科学系,贵州毕节551700) 摘要:通过利用XML数字签名和加解密技术结合的方法。研究了XML数字签名在网络办公系 统中的应用,解决了网络办公系统中文件传输的安全性问题。 关键词:加密;XML数字签名;网络办公系统 中图分类号:TP393 文献标识码:A 文章编号: 随着计算机网络技术的发展,网络办公系统已经在高校的信息化建设和高校日常事务处理过程 中发挥着越来越重要的作用,因此网络办公系统对于安全性的要求也就越来越高,如何增强提高网 络办公系统中文件传输的安全性问题已经成为一个急需解决的问题。可扩展标记语言XML是SGML 的精简子集,可方便的描述结构化和半结构化的数据。随着Internet技术的飞速发展,XML已经在 电子商务、电子政务、数字出版、Web服务、XML数据库、数据存储等领域得到了日益广泛的应 用,成为表示数据、交换数据的业界标准[1-s]。本文主要是通过XML数字签名和加解密技术结合在 网络办公系统的应用,特别是利用XML安全技术对文件传阅签名、文件信息存取权限、文件传送的 不可否认性等来提高网络办公系统中文件传输的安全性。 1 XML的加密和数字签名 1.1 XML加密 由W3C制定的XML加密规范可以对某个文档选定的部分进行加密,这样,XML文档的制作者 可以根据需要将最重要的部分选择性地进行加密,而使用者也能对需要保护的部分进行加密。而且, XML加密为需要结构化数据安全交换的应用程序提供了一种端到端的安全性.XML本身是对数据进 行结构化最好的技术,因此基于XML的加密成为处理数据互换程序中安全性的复杂需求的方法[11。 1.2 XML数字签名 XML数字签名是一个W3C fWoAd Wide Web Consoaium)规范,W3C将XML数字签名解释为: 定义一种与XML语法兼容的数字签名语法描述规范 。描述数字签名本身和签名的生成与验证过程。 作为一个安全有效的数字签名方案,该规范提供了数字签名的完整性、签名确认性和不可抵赖性厨。 1_3 XML数字签名的工作原理 数字签名广泛应用在网络安全中,它以密码学为基础。密码学主要分为对称和非对称两大类, 其区别在于加解密密钥是否相同。事实上,数字签名一般采用非对称密码算法。非对称密码是一种 先进的密码思想,它采用一对数字相关的密钥来替代单个共享的私密密钥,以解决对称密码术的密 钥交换和信任问题。在这个密钥对中,一个为私钥,另一个为公钥。私钥为用户私有,公钥通过某 种机制公布,并且两者无关联(并非完全没有联系,是指从一个无法推得另一个)。由于它使用两种 不同的密钥,因而称为非对称,并且因此可以用于消息认证和防抵赖。在应用数字签名时,一般都 收稿日期:Olo_04—22 基金项目:毕节学院科学研究基金资助课题“XML数字签名在网络办公系统中的应用研究”,项目编号:2O0920l2 作者简介:龙亚(1976一),女,贵州黔西人,毕节学院计算机科学系讲师,硕士。研究方向:数字签名及离散数学。 ・93・ 

会配合使用消息摘要算法,因为如果直接对原数据进行加密签名的话,会使签名十分冗长。所以先 计算其摘要。再对摘要进行签名。消息摘要算法也是密码学中很重要的一个方面。它是一种单向函 数.对原数据进行变换并获得摘要值(一般512位)。它的特点是攻击者无法针对一个摘要逆向生成 产生此摘要的原数据,由此可知它是提供完整性服务的关键。 数字签名的具体工作原理如下。 (11被发送文件采用哈希算法对原始报文进行运算,生成报文摘要,不同的报文所得到的报文 摘要各异,但对相同的报文它的报文摘要却是唯一的。 (2)发送方用自己的私钥对摘要进行加密来形成发送方的数字签名。 (31这个数字签名将作为报文的附件和报文一起发送给接收方。 (4)接收方首先从接收到的原始报文中用同样的算法计算出新的报文摘要,再用发送方的公钥 对报文附件的数字签名进行解密,比较两个报文摘要,如果值相同,接收方就能确认该数字签名是 发送方的。 因此XML数字签名是特定的XML语法,用于表示对任意的数据内容的数字签名。XML签名是 由一个签名清单的规范化形式的杂凑值生成的『6I。而XML签名可以定义一系列XML元素,这些元 素可以内嵌或以其它方式附加在任何XML文档中,这样收件人可以验证收到的消息与发件人原本发 送的消息是否相同。如图l是一个数字签名和加密技术结合起来的公文传送流程。 ~……一…‘ ‘ ‘……… …‘ ‘… …’…’… ’ 1消息 Il.(1)签名生成i (2 J签名验证 确认签名有效 — L’__  Hash运算 工 发送方私钥加密 已被修改,作其他处理 否相 Hash值 发送方公钥解密 数宇签名 数字签名 燃榭Hash ̄ .堡 一 2×ML数字签名在网络办公系统中的应用设计 2.1应用设计的原则 本系统设计遵循XML数字签名标准的语法表示和语义处理规则,以保证系统的灵活性,同时, 还遵循以下基本设计原则: (1)元素的语法处理和元素的语义处理分离:系统中所有与语法元素管理相关的内容构成了语法 处理的子系统。而所有与签名/验证语义处理有关的内容组成了语义处理子系统。 (2)可扩展的功能与语义处理分离:为了能够适应密码算法和数据读写的不断发展将有可能扩展 的内容组成自定义及扩展子系统 2.2应用设计的功能 依据XML数字签名在网络办公系统中收发文时所处理流程位置以及应用设计原则,我们将XML 数字签名在网络办公系统中实现的功能划分为文件加密、文件解密等,这一部分功能主要是接收用 户发来信息,生成合法的签名元素。为了保证用户发送的文件内容不被窃取和破坏,在本系统设计 中,在用户登录办公系统后,在拟写好公文标题、内容以及选择好文件接收方后。在发送方将公文 ・ 94 ・ 

送达服务器,提交给文件接收方之前,也即是发送用户在提交发送文件请求之后,就立即对发送方 即将送出的文件以XML数字签名方式进行加密,这样就保证了在数据提交到服务器过程以及保存到 服务器上后公文就已处于密码保护状态,这样即使是数据在传输过程中被截取或存储在网络存储器 中的文件被打开阅读,公文内容也全都已经加密而不会导致文件内容泄露。另外加密过程采用的数 字签名方式,在文件中包含了发送方信息,这样发出的文件就具有不可否认性。在文件接收方接收 到文件之后,如果还需要将文件发送给第三方,则可对需要发送的文件进行多重数字签名方式的加 密,同样保证了文件的安全性和不可否认性。 2-3应用设计的方案实现环境 本文将采用如下的实现环境: 硬件:PIV3.0G.5l2M,60G 软件: (1)操作系统:Windows 2000 Server或Windows2003 (2)开发工具:Microsoft Visual Studio 2005 (3)运行环境:IIS5.0十NET Framework 2.0 2.4 XML数字签名实现的技术要点 (1)创建引用 因为System.Security.Cryptography.Xml命名空间为非标准引用空间,所以在Visual Studio 2005中 使用前须在“网站”菜单中“添加引用”。 (2)创建SignedXML System.Security.Cryptography.Xm1.SignedXml类会负责创建签名文件。首先创建一个该类的实例, 再使用用于创建签名的设置来配置该实例。使用默认的构造函数来创建SignedXml类的新实例,再 使用AddReference方法来添加之前章节创建的Reference对象: ,/通过从磁盘加载XML文件创建XmlDocument对象。XmlDocument对象包含要加密的XML元素。 XmlDocument xmlDoc=new XmlDocument( ); xmlDoc.PreserveWhitespace=true; xmlDoc.Load(xmlPath);//xmlPath为需签名的XML文档即要发送的文件所在位置 //仓Ⅱ建一个新的SignedXrrd对象,并将XmlDocument对象传递给它。 SignedXml signedXml=new SignedXml(xmlDoc); (3)设置签名算法 需要创建一个新的非对称签名算法实例,并使用SigningKey属性来将其分配给SignedXml对象, 具体如以下语句所示: //, ̄g建CspParameters对象.并指定密钥容器的名称。 CspParameters cspParams=new CspParameters( ); cspParams.KeyContainerName=”XML_—DSIG_RSA_KEY”; ,/使用RSACryptoServiceProvider类生成一个对称密钥。当您将CspParameters对象传递给 RSACryptoServiceProvider类的构造函数时,该密钥将自动保存到密钥容器中。该密钥将被用来对 XML文档签名。 RSACryptoServiceProvider rsaKey New RSACryptoServiceProvider(cspParams); 这些语句会对用于创建签名的算法和密钥产生影响。.NET类支持使用RSA和DSA算法来生成 XML签名文件。 (4j创建签名 通过调用ComputeSignature方法来创建签名。也可以通过调用GetXml方法来获得签名,并使用 OuterXml属性来获得字符串的表示形式,具体如下所示: //将签名RSA密钥添加到SignedXml对象。 .95. 

signedXm1.SigningKey rsaKey; Reference reference=new Reference( ); , reference.Uri:””://创建说明签名内容的Reference对象。若要对整个文档进行签名,请将Uri 属性设置为””。 //将Xm!DsigEnvel0pedSignatureTransform对象添加到Reference对象中。变换使验证工具可以使 用与签名工具所用的相同方式表示XML数据。XML数据可以用不同方式表示,因此这一步对于验证 来说至关重要。 XmlDsigEnvelopedSignatureTransform env:new XmlDsigEnvelopedSignatureTransform( ); reference.AddTransform(env); signedXm1.AddReference reference1://将Re,fence对象添加到SignedXml对象中 signedXm1.ComputeSignature( );,/通过调用ComputeSignature方法计算签名。 XmlElement xmlDigitalSignature=signedXm1.GetXml( );//检索签名(--+<Signature> ̄素)的 XML表示形式.并将它保存到一个新的XmlElement对象中。 xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalS培nature,true)); //将元素 追加到XmlDocument对象中。 xmlDoc.Save(xmlPath1;//保存文档。 需要注意的是:XML签名文件包含了签名算法(DSA)、散列算法(SHA一1)的信息,它也包含了 基于64位加密的签名值。这是一个用于验证签名的信息的形式化表示形式,否则就必须以ad hoc方 式在双方之间通信(例如,在交换签名数据之前,Alice和Bob会交换消息以协商散列和签名算法)。 3实例 下面是一则文件发送的实例.首先用户登录后填写发送文件相关内容。如图2所示: 图2发送文件界面 用户填写完相关内容后,系统会根据用户自身信息及文件信息创建一个独立的XML文件,并对 其进行签名,结果如图3所示,然后将相关信息存人数据库。 需要加密或绝密的文件签名后再进行XML加密,如图4所示。 嚣 图3普通的文件直接进行签名 图4经过加密后得到的密文 ・96・ 

当接收方从数据库检索到有自己接收文件后,根据数据库中相关信息找到所关联的XML文档, 点击“查看详细”按钮进行数字签名验证 如果签名符合则显示出文件内容,如图5所示。如果签名不正确则给出提示,并可给发送人发 送质疑短信,中止程序执行,如图6所示。 — 黼锻 黼n——l盅 {蝴,_件上手j瞎名残印章再 可宙 可伪遣. 可,嗍.耽R簧名的文件 可改窭和簿g 可抵辕 l 々特点.匣量.电子文持却窖矗技复■, 更醴并且 馥翥逛 瓢甩盆诅 体瓤镌彀孛簦鲁哩谴}觉 的数字 《 签名琏论稚哆僚证它的机老性.宄l#性,鞋证性和 可蔷认性.由于常规的鼓字符名控术授育考虑到上下文. 《 釜喾的只是蚺m串节 骞 毫聱体噩皂.并幕隐宴酶抒毓名机警子赛现多重箍名. Ⅱ釜皂基手龇 l 树酗皓抽讫特点可以比较鲁矗电鼎整体签名郡舟簟名釉多重ir名.擅L挺柬在罔络办&幕鲢中右着十分 § 琵辍t曩的照甩.将斛最 I帆安量授末可U游直降倚瞬簦名、文件健患芹取蜘限、文舞棒选的 吾 l 辱方菌育着十舟重要神矫毒义.奉文圭薹飙进擅L数字整名日 氍盘.动鸵和腰L璐舭.并斑用脚名 I{ 醇啪甚基壤文#埔手工签名,蜡强了礴略舟蛰蓐蜕中文件鞲遘的安生性.晦时也对亍电丰敢舞靶龟 § }一舟中文件侍龉童性问矗研究鼻青一定的参专价僵 《 j § ≈ # § 蝻 娜 攥黼澍 盖 图5解密后得到的明文 图6验证不正确的界面图 因此,利用XML数字签名技术能在办公网上基本实现文件的传阅签名、文件信息存取权限、文 件传送的不可否认性等方面的安全保障。今后的工作主要是将XML数字签名和加密技术在网络办公 系统中的应用普及推广及解决多重数字签名在网络办公中的应用问题。 参考文献: [1】莫佳.XML数据签名研究与实现 重庆三峡学院学报,2009,25(3):42. [2]刘凤玲.基于XML数据安全保护技术的研究 辽宁师专学报,2008.1o(2):22—23. 【3】刘传领魏衍君.XML数字签名机制的研究【『】.通信技术,2008,41(6):124—125. [4]XML Signature[EB/OL].http://www.w3.org/XMLDSIG.2005.(05). [5]罗凌.XML数字签名在电子公文交换q-的应用卟重庆师范大学学报,2008,25(2):46-47. 【6]周杭霞,夏荣,何利力.基于XML数据安全交换的方法Ⅱ].计算机应用研究,2006,(4):126—128 Researches toXML Digital Signature Application in Network Ofifce System LONG Ya,QIAN Feng,PEN Pei (Computer Science Department of Bijie University,Bijie,Guizhou 55 1700,China) Abstract:Through the method use of XML digital signature technology to integrate eneryption and de— eryption technology,studied the application of XML digital signature in network office system,and re— solved the network file transfer security problem in network office system. Key words:Encryption;XML Digital Signature;Online Ofifce System (责编:郎 禹 责校:张永光) ・97・ 

XML数字签名在网络办公系统中的应用研究

本文发布于:2024-01-29 02:47:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170646765612154.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:签名   数字签名   文件
留言与评论(共有 0 条评论)
   
验证码:
排行榜

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23