摘 要: 擴(kuò)展標(biāo)記語言XML(Extensible Markup Language)為實現(xiàn)安全、高效的電子商 務(wù)提供了一種開放的標(biāo)準(zhǔn)。以王小云教授的研究成果為代表的解密算法對現(xiàn)有的XML數(shù)據(jù)安 全通信提出了新的挑戰(zhàn),為此提出了一種改進(jìn)的XML安全技術(shù),并將其應(yīng)用到基于網(wǎng)絡(luò)的電 子商務(wù)設(shè)計中。性能比較和理論分析表明,該技術(shù)能在一定程度上彌補(bǔ)現(xiàn)有技術(shù)的不足,具 有一定的實用價值。
關(guān)鍵詞:電子商務(wù) XML安全 改進(jìn)技術(shù)
中圖分類號:F724.6 文獻(xiàn)標(biāo)識碼:A 文章編號:1004-4914(2008)04-250-02
一、引言
電子商務(wù)是經(jīng)濟(jì)全球化和貿(mào)易自由化的重要手段,也是傳統(tǒng)產(chǎn)業(yè)變革和企業(yè)技術(shù)跨越的 關(guān)鍵動力。電子商務(wù)自從出現(xiàn)以來,就以其巨大的能量和動力,給整個世界的經(jīng)濟(jì)運行方式 和社會生活形態(tài)帶來了翻天覆地的變化。目前,電子商務(wù)己經(jīng)成為各國政府為增強(qiáng)國家競爭 力并贏得市場資源配置優(yōu)勢而大力推進(jìn)的戰(zhàn)略性任務(wù)。
擴(kuò)展標(biāo)記語言XML(Extensible Markup Language)是世界萬維網(wǎng)聯(lián)盟制定的一種數(shù)據(jù) 標(biāo)準(zhǔn)。它以其結(jié)構(gòu)化、互操作性、易于交換和可擴(kuò)展性的特點在很多行業(yè)得到了廣泛的應(yīng)用 。XML為實現(xiàn)安全、高效的電子商務(wù)提供了一種開放的標(biāo)準(zhǔn),它解決了傳統(tǒng)數(shù)據(jù)交換的一些 弱點,將中小企業(yè)帶入到電子商務(wù)之中。使用XML結(jié)構(gòu)化的數(shù)據(jù)可以將數(shù)據(jù)從商業(yè)規(guī)范和表 現(xiàn)形式中分離出來,便利地進(jìn)行交換和處理,所以它一經(jīng)出現(xiàn)就成為新一代數(shù)據(jù)交換的標(biāo)準(zhǔn) 。但是電子商務(wù)將關(guān)注過多地放在實現(xiàn)數(shù)據(jù)交換上,對于保證XML數(shù)據(jù)安全的問題缺乏足 夠的重視。隨著現(xiàn)有解密算法提出的新挑戰(zhàn),忽視XML數(shù)據(jù)的安全會使得交易中的機(jī)密信息 和敏感信息面臨危險。因此,本文提出了一種改進(jìn)的XML安全技術(shù),并將其應(yīng)用到電子商務(wù) 的設(shè)計中。
二、傳統(tǒng)的XML安全技術(shù)及面臨的挑戰(zhàn)
傳統(tǒng)的數(shù)據(jù)傳輸方案是:根據(jù)XML數(shù)據(jù)安全標(biāo)準(zhǔn)把加密或簽名后的密文信息加入原XML文 檔中,與原XML文檔一起傳輸。這種傳輸方式,在加密和簽名算法可靠的前提下,可以實現(xiàn)X ML文檔細(xì)粒度的加密和簽名,不存在著數(shù)據(jù)安全的問題。
然而,新的解密算法的提出對現(xiàn)有的XML數(shù)據(jù)安全通信提出了新的挑戰(zhàn)。在2004年的8月 ,一直在國際上廣泛應(yīng)用的密碼算法MD5被中國密碼專家—山東大學(xué)的王小云教授所破解。 王小云教授的研究成果作為密碼學(xué)領(lǐng)域的重大發(fā)現(xiàn)宣告了固若金湯的世界通行密碼標(biāo)準(zhǔn)MD5 大廈轟然倒塌,引發(fā)了密碼學(xué)界的軒然大波。密碼學(xué)界認(rèn)為“MD5被破解了,它即將從應(yīng)用 中淘汰”。2005年2月,王小云教授又破解了美國在電子商務(wù)領(lǐng)域中廣泛使用的SHA-1密碼算 法。MD5,SHA-1是當(dāng)前國際通行的兩大密碼標(biāo)準(zhǔn)。MD5由國際著名密碼學(xué)家圖靈獎獲得者兼 公鑰加密算法RSA的創(chuàng)始人Rivest設(shè)計,SHA-1是由美國專門制定密碼算法的標(biāo)準(zhǔn)機(jī)構(gòu)—美國 國家標(biāo)準(zhǔn)技術(shù)研究院(NIST)與美國國家安全局(NSA)設(shè)計。兩大算法是目前國際電子簽 名及許多其它密碼應(yīng)用領(lǐng)域的關(guān)鍵技術(shù),廣泛應(yīng)用于金融、證券等電子商務(wù)領(lǐng)域。其中,SH A-1早在1994年便為美國政府采納,目前是美國政府廣泛應(yīng)用的計算機(jī)密碼系統(tǒng)。
這兩個密碼算法在XML簽名標(biāo)準(zhǔn)中也被廣泛使用。這兩個密碼算法被破解意味著從理論 上講,經(jīng)過認(rèn)證的簽名可以被偽造,從而使數(shù)據(jù)的真確性和完整性受到了前所未有的挑戰(zhàn)。 事實上,國際密碼學(xué)家Lenstra利用王小云教授提供的MD5碰撞,偽造了符合X.509標(biāo)準(zhǔn)的數(shù) 字證書,這就說明了MD5密碼算法的破譯已經(jīng)不僅僅是理論破譯結(jié)果,而是可以導(dǎo)致實際的 攻擊。
現(xiàn)有的XML數(shù)據(jù)安全標(biāo)準(zhǔn),在應(yīng)用上把加密和簽名后的密文數(shù)據(jù)與原文檔一起傳輸。這 種傳輸方式,在新的解密算法出現(xiàn)后,就存在著很大的風(fēng)險性。因此,我們必需對現(xiàn)有的標(biāo) 準(zhǔn)作出改善。
三、改進(jìn)的XML技術(shù)及其在電子商務(wù)中的應(yīng)用
(一)改進(jìn)的XML技術(shù)
傳統(tǒng)的數(shù)據(jù)傳輸方式的風(fēng)險出現(xiàn)在密文數(shù)據(jù)保存在原XML文檔中,并一起進(jìn)行傳輸。所 以,當(dāng)整個XML文檔被截取或非法復(fù)制后,由于現(xiàn)有加密或簽名算法的缺陷,XML文檔會被非 法用戶獲得。
針對上述XML數(shù)據(jù)傳輸方式所存在的風(fēng)險,本文在實現(xiàn)WS Security規(guī)范所提出的安全標(biāo) 準(zhǔn)的基礎(chǔ)上做出改善,把密文信息與原XML文檔分離傳輸。設(shè)計出一個新的可應(yīng)用在電子商 務(wù)信息系統(tǒng)中的XML數(shù)據(jù)安全傳輸方案。通過實現(xiàn)這個XML數(shù)據(jù)的安全通信方案,電子商務(wù)系 統(tǒng)可實現(xiàn)XML數(shù)據(jù)較高的通信安全性和認(rèn)證安全性。
方案充分利用XML數(shù)據(jù)結(jié)構(gòu)上的特點,制訂了一個提高XML數(shù)據(jù)的通信安全性和認(rèn)證安全 性的通信方案。方案的設(shè)計如下:
在發(fā)送端,首先根據(jù)XML文檔中各元素內(nèi)容的重要性編制一個DTD文檔對XML文檔進(jìn)行分 解,并生成一個XSLT樣式表;然后,使用由W3C最新制訂的XSLT 2.0技術(shù)把單一的XML文檔轉(zhuǎn) 換為多個獨立的XML文檔;進(jìn)而根據(jù)XML數(shù)據(jù)的保密程度對該分離后的XML文檔進(jìn)行XML簽名確 認(rèn),為保證數(shù)字簽名的有效性,使用SHA-256的簽名算法對XML數(shù)據(jù)進(jìn)行簽名確認(rèn);簽名后, 對各XML文檔進(jìn)行加密(如DES算法),對DTD文檔和XSLT樣式單使用XML加密中高安全等級的 加密算法(如RSA算法)進(jìn)行加密,而且把XML數(shù)據(jù)、DTD文檔和XSLT樣式單傳輸?shù)浇邮斩恕?/p>
在接收端,首先對接收到的各XML文檔進(jìn)行解密和簽名認(rèn)證,然后利用XSLT 2.0技術(shù), 根據(jù)DTD文檔和XSLT樣式單的記錄,把分解后的各XML文檔重新組合為單一的文檔。因為多個 單獨的XML文檔難以在網(wǎng)絡(luò)中被全部截取,而缺少任何一個分解后的XML文檔就無法重組為原 XML文檔,所以在一定程度上保障了XML數(shù)據(jù)的保密性。
在本方案中,把不同保密等級的數(shù)據(jù)進(jìn)行分離傳輸,避免了密文數(shù)據(jù)與XML文檔一起傳 輸?shù)谋撞。瑴p低了XML數(shù)據(jù)被截取和破解的風(fēng)險,這就保證了整個XML文檔的安全。
(二)改進(jìn)的XML技術(shù)在電子商務(wù)中的應(yīng)用
根據(jù)本文提出的方案和某電子商務(wù)系統(tǒng)的實際要求,設(shè)計出電子商務(wù)平臺XML數(shù)據(jù)安全 框架如圖1所示。
根據(jù)電子商務(wù)信息系統(tǒng)的XML數(shù)據(jù)安全保護(hù)方案的框架設(shè)計,將其分為以下四個模塊: 文檔轉(zhuǎn)換模塊、加/解密模塊、數(shù)字簽名模塊、密鑰管理模塊,下面將詳細(xì)說明每個模塊的 作用。
文檔轉(zhuǎn)換模塊根據(jù)原XML文檔的結(jié)構(gòu)和DTD文檔的描述在發(fā)送端生成一個XSLT樣式單,記 錄被分解的XML文檔的節(jié)點位置、次序和各節(jié)點的內(nèi)容。利用XSLT 2.0把一個XML文檔的各個 節(jié)點及內(nèi)容轉(zhuǎn)換為多個XML文檔,在接收端通過該XSLT樣式單實現(xiàn)XML文檔的重組工作。文檔 的轉(zhuǎn)換如圖2所示。
加/解密模塊根據(jù)電子商務(wù)信息系統(tǒng)中XML數(shù)據(jù)應(yīng)用特點和安全需求,以XML加密標(biāo)準(zhǔn)為 基礎(chǔ)進(jìn)行構(gòu)建,實現(xiàn)了對電子商務(wù)系統(tǒng)協(xié)同工作中整個XML文檔的加密。該模塊中的所有工 作由以下三部分分步完成:(1)申請模塊:通過提供數(shù)據(jù)和相關(guān)參數(shù)發(fā)出XML加密執(zhí)行請求 ;(2)加密器:執(zhí)行XML數(shù)據(jù)加密;(3)解密器:對XML加密數(shù)據(jù)進(jìn)行解密。
數(shù)據(jù)簽名模塊的實施基礎(chǔ)是由W3C制定的XML-Signature標(biāo)準(zhǔn)的語法和處理規(guī)范。數(shù)字簽 名模塊為電子商務(wù)信息系統(tǒng)提供端到端的XML數(shù)據(jù)完整性保證,還可以提供有關(guān)數(shù)據(jù)發(fā)件人 的驗證信息。為了達(dá)到較好的效果,簽名必須是應(yīng)用程序數(shù)據(jù)的一部分,這樣可以在創(chuàng)建XM L文檔時生成簽名,并可以在最終使用和處理文檔時對簽名進(jìn)行驗證。XML數(shù)據(jù)簽名可以定義 一系列XML元素,這些元素可以內(nèi)嵌或以其它方式附加在任何XML文檔中。這樣,收件人可以 驗證收到的文檔與發(fā)件人原本發(fā)送的文檔是否相同。
密鑰管理模塊分為服務(wù)端和用戶端,用戶不必直接與PKI的提供者交互,而是通過服務(wù) 端得到PKI的密鑰和證書服務(wù),把原來用戶直接面對的問題轉(zhuǎn)移到服務(wù)端,通過服務(wù)層向用 戶提供基于XML的密鑰管理服務(wù)。電子商務(wù)信息系統(tǒng)的密碼管理模塊的終端用戶分為密鑰擁 有者和使用者兩類,它們可以根據(jù)自己的需要,向系統(tǒng)服務(wù)端發(fā)出服務(wù)請求,服務(wù)端由兩大 功能模塊組X-KRSS(密鑰注冊服務(wù)系統(tǒng))和X-KISS(密鑰信息服務(wù)系統(tǒng))組成,分別向客 戶端的兩類用戶提供密鑰信息管理服務(wù)。密碼管理模塊的服務(wù)端和客戶端之間采用XML數(shù)據(jù) 交互通信,而它與PKI提供者之間交互的具體協(xié)議通信,可以在服務(wù)端實現(xiàn),對客戶端的應(yīng) 用而言,屏蔽了PKI的底層細(xì)節(jié),只提供基于XML的密鑰管理服務(wù)。

(三)各應(yīng)用模塊的具體實現(xiàn)
文檔轉(zhuǎn)換模塊的實現(xiàn):.NET框架中,有一個XSLTransform類中的Transform()方法來轉(zhuǎn) 換XML文檔。實現(xiàn)方案中XML文檔的轉(zhuǎn)換時,根據(jù)預(yù)先定義的DTD文檔生成一個XSLT樣式單( 即XSLT的指令集),調(diào)用.NET XSLT處理引擎中Transform()方法實現(xiàn)文檔的轉(zhuǎn)換。在W3C定 義的XSLT 2.0的規(guī)范中,根據(jù)XSLT樣式單可產(chǎn)生多個輸出,通過<xsl: result-document>屬 性,指示輸出文件的名字和類型。
加/解密模塊的實現(xiàn):.NET框架中,有三個命名空間涉及到XML的加密:
1.System.Security.Cryptography.
這是一個提供密碼服務(wù)的命名空間。在這個加密命名空間中有支持多種加密算法的類。 密碼服務(wù)程序類的列表如表1所示。

2.System.Secur ity.Cryptography.X509Certificates包含了W3C規(guī)范中X.509證書檢索等的有關(guān)功能。
3.System.Security.Cryptography.XML應(yīng)用在.NET框架下的特有的XML加密系統(tǒng),可對 XML文檔部分或全部內(nèi)容進(jìn)行加密。
上述的三個命名空間使得XML加密功能在使用的方便性方面有了很大的提高,這也是.NE T在實現(xiàn)XML數(shù)據(jù)安全方面的優(yōu)勢。上述方案的加/解數(shù)據(jù)模塊中,需要對分解后的XML文檔 ,根據(jù)安全等級使用不同安全等級的加密算法,在.NET的命名空間中可方便找出不同的算法 實現(xiàn)該加密過程。
數(shù)據(jù)簽名模塊的實現(xiàn)。.NET框架在System.Security.Cryptography.XML命名空間中提供 了XML數(shù)字簽名所需的全部支持。在System.Security.Cryptography.XML命名空間中可直接 創(chuàng)建<Signature>、<Reference>、<KeyInfo>和<DataObject>等XML數(shù)字簽名元素的對象,并 可使用SignedXML類和它的ComputerSignature()和CheckSignature()來實現(xiàn)XML數(shù)字簽名和 驗證XML數(shù)字簽名的功能。
密鑰管理模塊的實現(xiàn)。在.NET框架下,XML密鑰管理規(guī)范服務(wù)是以Web服務(wù)的形式實現(xiàn)的 。它允許客戶端應(yīng)用程序訪問PKI服務(wù)端,但客戶端應(yīng)用程序不需要關(guān)心底層PKI的語法,從 而減少客戶機(jī)應(yīng)用程序的復(fù)雜性。XKMS服務(wù)幫助電子商務(wù)企業(yè)輕松地將網(wǎng)絡(luò)安全措施(如數(shù) 據(jù)加密和數(shù)字簽名)和電子商務(wù)信息系統(tǒng)的應(yīng)用結(jié)合起來。XML安全標(biāo)準(zhǔn)措施是建立于XKMS 服務(wù)所提供的網(wǎng)絡(luò)交易中的信任關(guān)系上,XKMS服務(wù)是實現(xiàn)XML數(shù)字加密和簽名服務(wù)的媒介。
.NET框架使用Web服務(wù)描述語言(WSDL)來定義Web服務(wù)的,WSDL定義了消息和XML類型 。而使用WSDL創(chuàng)建XKMS服務(wù)分兩個步驟:
1.用WSDL創(chuàng)建XKMS對象模型。WSDL實用工具可創(chuàng)建一個適當(dāng)類型的字段,該字段的名 稱與XML元素或?qū)傩缘拿Q對應(yīng),這些類型直接映射為.NET公共語言運行庫(CLR)類型。利 用這些字段構(gòu)建出XKMS對象模型。
2.用WSDL實用工具生成的原型代碼可以使XKMS服務(wù)得以實現(xiàn)。這些原型代碼可以控制W eb服務(wù)名稱、XML命名空間和參數(shù)序列化的屬性,以該代碼創(chuàng)建一個XKMS服務(wù)實現(xiàn)非常簡單 ,只需把KeyService類定義和相關(guān)聯(lián)的屬性復(fù)制到一個ASMX文件并添加必需的Web服務(wù)聲明 :
<%@WebService Language = # class = XKMS.KeyService%>
另外還需KeyService類放置在命名空間XKMS中,這有助于表明KeyService的用途。
有了用于XKMS服務(wù),還需要構(gòu)建客戶端應(yīng)用程序。
XKMS服務(wù)包含了客戶端服務(wù)需要的方法以及使用那些方法所需要的所有類型。構(gòu)建KXMS 客戶端包括: 使用服務(wù)注冊RSA公鑰值; 根據(jù)KeyName值查找RSA公鑰; 根據(jù)KeyID或值KeyName驗證RSA公鑰。
通過客戶端應(yīng)用程序交互式地收集任何所需的輸入,用戶可以執(zhí)行一系列這些操作,調(diào) 用XKMS服務(wù)。
四、結(jié)論
隨著XML文件在電子商務(wù)領(lǐng)域的廣泛應(yīng)用,很多安全問題也愈發(fā)顯現(xiàn),特別是電子交易 信息的機(jī)密性、完整性、真實性和抗否認(rèn)性等方面難以得到有效保證。本文在深入分析XML 安全技術(shù)的基礎(chǔ)上,針對當(dāng)前解密算法的挑戰(zhàn),提出了一種改進(jìn)的XML安全技術(shù),并將其應(yīng) 用于一個基于VS.net平臺、以WEB服務(wù)為基礎(chǔ)的電子商務(wù)系統(tǒng)中。理論分析和仿真實驗表明 ,該技術(shù)能在一定程度上克服傳統(tǒng)方法的不足,具有一定的現(xiàn)實意義和經(jīng)濟(jì)效益。
參考文獻(xiàn):
1.卿斯?jié)h. 電子商務(wù)協(xié)議中的可信第三方角色[J]. 軟件學(xué)報,2003(11)
2.張立志. 電子商務(wù)系統(tǒng)的安全研究[J]. 安陽大學(xué)學(xué)報,2004(4)
3.吳潔. XML應(yīng)用教程[M]. 北京: 清華大學(xué)出版社,2005
4.Murdoch Mactaggart. XML加密和XML簽名簡介[M]. Developer Works,2006
5.唐韶華,甘志勇. 基于XKMS的PKI服務(wù)的設(shè)計與實現(xiàn)[J]. 電子與信息學(xué)報,2005(2 )
(作者單位:湖南司法警官職業(yè)學(xué)院 湖南長沙 410131)
(責(zé)編:紀(jì)毅)