摘 要: 擴(kuò)展標(biāo)記語(yǔ)言XML(Extensible Markup Language)為實(shí)現(xiàn)安全、高效的電子商 務(wù)提供了一種開(kāi)放的標(biāo)準(zhǔn)。以王小云教授的研究成果為代表的解密算法對(duì)現(xiàn)有的XML數(shù)據(jù)安 全通信提出了新的挑戰(zhàn),為此提出了一種改進(jìn)的XML安全技術(shù),并將其應(yīng)用到基于網(wǎng)絡(luò)的電 子商務(wù)設(shè)計(jì)中。性能比較和理論分析表明,該技術(shù)能在一定程度上彌補(bǔ)現(xiàn)有技術(shù)的不足,具 有一定的實(shí)用價(jià)值。
關(guān)鍵詞:電子商務(wù) XML安全 改進(jìn)技術(shù)
中圖分類(lèi)號(hào):F724.6 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004-4914(2008)04-250-02
一、引言
電子商務(wù)是經(jīng)濟(jì)全球化和貿(mào)易自由化的重要手段,也是傳統(tǒng)產(chǎn)業(yè)變革和企業(yè)技術(shù)跨越的 關(guān)鍵動(dòng)力。電子商務(wù)自從出現(xiàn)以來(lái),就以其巨大的能量和動(dòng)力,給整個(gè)世界的經(jīng)濟(jì)運(yùn)行方式 和社會(huì)生活形態(tài)帶來(lái)了翻天覆地的變化。目前,電子商務(wù)己經(jīng)成為各國(guó)政府為增強(qiáng)國(guó)家競(jìng)爭(zhēng) 力并贏得市場(chǎng)資源配置優(yōu)勢(shì)而大力推進(jìn)的戰(zhàn)略性任務(wù)。
擴(kuò)展標(biāo)記語(yǔ)言XML(Extensible Markup Language)是世界萬(wàn)維網(wǎng)聯(lián)盟制定的一種數(shù)據(jù) 標(biāo)準(zhǔn)。它以其結(jié)構(gòu)化、互操作性、易于交換和可擴(kuò)展性的特點(diǎn)在很多行業(yè)得到了廣泛的應(yīng)用 。XML為實(shí)現(xiàn)安全、高效的電子商務(wù)提供了一種開(kāi)放的標(biāo)準(zhǔn),它解決了傳統(tǒng)數(shù)據(jù)交換的一些 弱點(diǎn),將中小企業(yè)帶入到電子商務(wù)之中。使用XML結(jié)構(gòu)化的數(shù)據(jù)可以將數(shù)據(jù)從商業(yè)規(guī)范和表 現(xiàn)形式中分離出來(lái),便利地進(jìn)行交換和處理,所以它一經(jīng)出現(xiàn)就成為新一代數(shù)據(jù)交換的標(biāo)準(zhǔn) 。但是電子商務(wù)將關(guān)注過(guò)多地放在實(shí)現(xiàn)數(shù)據(jù)交換上,對(duì)于保證XML數(shù)據(jù)安全的問(wèn)題缺乏足 夠的重視。隨著現(xiàn)有解密算法提出的新挑戰(zhàn),忽視XML數(shù)據(jù)的安全會(huì)使得交易中的機(jī)密信息 和敏感信息面臨危險(xiǎn)。因此,本文提出了一種改進(jìn)的XML安全技術(shù),并將其應(yīng)用到電子商務(wù) 的設(shè)計(jì)中。
二、傳統(tǒng)的XML安全技術(shù)及面臨的挑戰(zhàn)
傳統(tǒng)的數(shù)據(jù)傳輸方案是:根據(jù)XML數(shù)據(jù)安全標(biāo)準(zhǔn)把加密或簽名后的密文信息加入原XML文 檔中,與原XML文檔一起傳輸。這種傳輸方式,在加密和簽名算法可靠的前提下,可以實(shí)現(xiàn)X ML文檔細(xì)粒度的加密和簽名,不存在著數(shù)據(jù)安全的問(wèn)題。
然而,新的解密算法的提出對(duì)現(xiàn)有的XML數(shù)據(jù)安全通信提出了新的挑戰(zhàn)。在2004年的8月 ,一直在國(guó)際上廣泛應(yīng)用的密碼算法MD5被中國(guó)密碼專(zhuān)家—山東大學(xué)的王小云教授所破解。 王小云教授的研究成果作為密碼學(xué)領(lǐng)域的重大發(fā)現(xiàn)宣告了固若金湯的世界通行密碼標(biāo)準(zhǔn)MD5 大廈轟然倒塌,引發(fā)了密碼學(xué)界的軒然大波。密碼學(xué)界認(rèn)為“MD5被破解了,它即將從應(yīng)用 中淘汰”。2005年2月,王小云教授又破解了美國(guó)在電子商務(wù)領(lǐng)域中廣泛使用的SHA-1密碼算 法。MD5,SHA-1是當(dāng)前國(guó)際通行的兩大密碼標(biāo)準(zhǔn)。MD5由國(guó)際著名密碼學(xué)家圖靈獎(jiǎng)獲得者兼 公鑰加密算法RSA的創(chuàng)始人Rivest設(shè)計(jì),SHA-1是由美國(guó)專(zhuān)門(mén)制定密碼算法的標(biāo)準(zhǔn)機(jī)構(gòu)—美國(guó) 國(guó)家標(biāo)準(zhǔn)技術(shù)研究院(NIST)與美國(guó)國(guó)家安全局(NSA)設(shè)計(jì)。兩大算法是目前國(guó)際電子簽 名及許多其它密碼應(yīng)用領(lǐng)域的關(guān)鍵技術(shù),廣泛應(yīng)用于金融、證券等電子商務(wù)領(lǐng)域。其中,SH A-1早在1994年便為美國(guó)政府采納,目前是美國(guó)政府廣泛應(yīng)用的計(jì)算機(jī)密碼系統(tǒng)。
這兩個(gè)密碼算法在XML簽名標(biāo)準(zhǔn)中也被廣泛使用。這兩個(gè)密碼算法被破解意味著從理論 上講,經(jīng)過(guò)認(rèn)證的簽名可以被偽造,從而使數(shù)據(jù)的真確性和完整性受到了前所未有的挑戰(zhàn)。 事實(shí)上,國(guó)際密碼學(xué)家Lenstra利用王小云教授提供的MD5碰撞,偽造了符合X.509標(biāo)準(zhǔn)的數(shù) 字證書(shū),這就說(shuō)明了MD5密碼算法的破譯已經(jīng)不僅僅是理論破譯結(jié)果,而是可以導(dǎo)致實(shí)際的 攻擊。
現(xiàn)有的XML數(shù)據(jù)安全標(biāo)準(zhǔn),在應(yīng)用上把加密和簽名后的密文數(shù)據(jù)與原文檔一起傳輸。這 種傳輸方式,在新的解密算法出現(xiàn)后,就存在著很大的風(fēng)險(xiǎn)性。因此,我們必需對(duì)現(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)出現(xiàn)在密文數(shù)據(jù)保存在原XML文檔中,并一起進(jìn)行傳輸。所 以,當(dāng)整個(gè)XML文檔被截取或非法復(fù)制后,由于現(xiàn)有加密或簽名算法的缺陷,XML文檔會(huì)被非 法用戶(hù)獲得。
針對(duì)上述XML數(shù)據(jù)傳輸方式所存在的風(fēng)險(xiǎn),本文在實(shí)現(xiàn)WS Security規(guī)范所提出的安全標(biāo) 準(zhǔn)的基礎(chǔ)上做出改善,把密文信息與原XML文檔分離傳輸。設(shè)計(jì)出一個(gè)新的可應(yīng)用在電子商 務(wù)信息系統(tǒng)中的XML數(shù)據(jù)安全傳輸方案。通過(guò)實(shí)現(xiàn)這個(gè)XML數(shù)據(jù)的安全通信方案,電子商務(wù)系 統(tǒng)可實(shí)現(xiàn)XML數(shù)據(jù)較高的通信安全性和認(rèn)證安全性。
方案充分利用XML數(shù)據(jù)結(jié)構(gòu)上的特點(diǎn),制訂了一個(gè)提高XML數(shù)據(jù)的通信安全性和認(rèn)證安全 性的通信方案。方案的設(shè)計(jì)如下:
在發(fā)送端,首先根據(jù)XML文檔中各元素內(nèi)容的重要性編制一個(gè)DTD文檔對(duì)XML文檔進(jìn)行分 解,并生成一個(gè)XSLT樣式表;然后,使用由W3C最新制訂的XSLT 2.0技術(shù)把單一的XML文檔轉(zhuǎn) 換為多個(gè)獨(dú)立的XML文檔;進(jìn)而根據(jù)XML數(shù)據(jù)的保密程度對(duì)該分離后的XML文檔進(jìn)行XML簽名確 認(rèn),為保證數(shù)字簽名的有效性,使用SHA-256的簽名算法對(duì)XML數(shù)據(jù)進(jìn)行簽名確認(rèn);簽名后, 對(duì)各XML文檔進(jìn)行加密(如DES算法),對(duì)DTD文檔和XSLT樣式單使用XML加密中高安全等級(jí)的 加密算法(如RSA算法)進(jìn)行加密,而且把XML數(shù)據(jù)、DTD文檔和XSLT樣式單傳輸?shù)浇邮斩恕?/p>
在接收端,首先對(duì)接收到的各XML文檔進(jìn)行解密和簽名認(rèn)證,然后利用XSLT 2.0技術(shù), 根據(jù)DTD文檔和XSLT樣式單的記錄,把分解后的各XML文檔重新組合為單一的文檔。因?yàn)槎鄠€(gè) 單獨(dú)的XML文檔難以在網(wǎng)絡(luò)中被全部截取,而缺少任何一個(gè)分解后的XML文檔就無(wú)法重組為原 XML文檔,所以在一定程度上保障了XML數(shù)據(jù)的保密性。
在本方案中,把不同保密等級(jí)的數(shù)據(jù)進(jìn)行分離傳輸,避免了密文數(shù)據(jù)與XML文檔一起傳 輸?shù)谋撞。瑴p低了XML數(shù)據(jù)被截取和破解的風(fēng)險(xiǎn),這就保證了整個(gè)XML文檔的安全。
(二)改進(jìn)的XML技術(shù)在電子商務(wù)中的應(yīng)用
根據(jù)本文提出的方案和某電子商務(wù)系統(tǒng)的實(shí)際要求,設(shè)計(jì)出電子商務(wù)平臺(tái)XML數(shù)據(jù)安全 框架如圖1所示。
根據(jù)電子商務(wù)信息系統(tǒng)的XML數(shù)據(jù)安全保護(hù)方案的框架設(shè)計(jì),將其分為以下四個(gè)模塊: 文檔轉(zhuǎn)換模塊、加/解密模塊、數(shù)字簽名模塊、密鑰管理模塊,下面將詳細(xì)說(shuō)明每個(gè)模塊的 作用。
文檔轉(zhuǎn)換模塊根據(jù)原XML文檔的結(jié)構(gòu)和DTD文檔的描述在發(fā)送端生成一個(gè)XSLT樣式單,記 錄被分解的XML文檔的節(jié)點(diǎn)位置、次序和各節(jié)點(diǎn)的內(nèi)容。利用XSLT 2.0把一個(gè)XML文檔的各個(gè) 節(jié)點(diǎn)及內(nèi)容轉(zhuǎn)換為多個(gè)XML文檔,在接收端通過(guò)該XSLT樣式單實(shí)現(xiàn)XML文檔的重組工作。文檔 的轉(zhuǎn)換如圖2所示。
加/解密模塊根據(jù)電子商務(wù)信息系統(tǒng)中XML數(shù)據(jù)應(yīng)用特點(diǎn)和安全需求,以XML加密標(biāo)準(zhǔn)為 基礎(chǔ)進(jìn)行構(gòu)建,實(shí)現(xiàn)了對(duì)電子商務(wù)系統(tǒng)協(xié)同工作中整個(gè)XML文檔的加密。該模塊中的所有工 作由以下三部分分步完成:(1)申請(qǐng)模塊:通過(guò)提供數(shù)據(jù)和相關(guān)參數(shù)發(fā)出XML加密執(zhí)行請(qǐng)求 ;(2)加密器:執(zhí)行XML數(shù)據(jù)加密;(3)解密器:對(duì)XML加密數(shù)據(jù)進(jìn)行解密。
數(shù)據(jù)簽名模塊的實(shí)施基礎(chǔ)是由W3C制定的XML-Signature標(biāo)準(zhǔn)的語(yǔ)法和處理規(guī)范。數(shù)字簽 名模塊為電子商務(wù)信息系統(tǒng)提供端到端的XML數(shù)據(jù)完整性保證,還可以提供有關(guān)數(shù)據(jù)發(fā)件人 的驗(yàn)證信息。為了達(dá)到較好的效果,簽名必須是應(yīng)用程序數(shù)據(jù)的一部分,這樣可以在創(chuàng)建XM L文檔時(shí)生成簽名,并可以在最終使用和處理文檔時(shí)對(duì)簽名進(jìn)行驗(yàn)證。XML數(shù)據(jù)簽名可以定義 一系列XML元素,這些元素可以?xún)?nèi)嵌或以其它方式附加在任何XML文檔中。這樣,收件人可以 驗(yàn)證收到的文檔與發(fā)件人原本發(fā)送的文檔是否相同。
密鑰管理模塊分為服務(wù)端和用戶(hù)端,用戶(hù)不必直接與PKI的提供者交互,而是通過(guò)服務(wù) 端得到PKI的密鑰和證書(shū)服務(wù),把原來(lái)用戶(hù)直接面對(duì)的問(wèn)題轉(zhuǎn)移到服務(wù)端,通過(guò)服務(wù)層向用 戶(hù)提供基于XML的密鑰管理服務(wù)。電子商務(wù)信息系統(tǒng)的密碼管理模塊的終端用戶(hù)分為密鑰擁 有者和使用者兩類(lèi),它們可以根據(jù)自己的需要,向系統(tǒng)服務(wù)端發(fā)出服務(wù)請(qǐng)求,服務(wù)端由兩大 功能模塊組X-KRSS(密鑰注冊(cè)服務(wù)系統(tǒng))和X-KISS(密鑰信息服務(wù)系統(tǒng))組成,分別向客 戶(hù)端的兩類(lèi)用戶(hù)提供密鑰信息管理服務(wù)。密碼管理模塊的服務(wù)端和客戶(hù)端之間采用XML數(shù)據(jù) 交互通信,而它與PKI提供者之間交互的具體協(xié)議通信,可以在服務(wù)端實(shí)現(xiàn),對(duì)客戶(hù)端的應(yīng) 用而言,屏蔽了PKI的底層細(xì)節(jié),只提供基于XML的密鑰管理服務(wù)。
(三)各應(yīng)用模塊的具體實(shí)現(xiàn)
文檔轉(zhuǎn)換模塊的實(shí)現(xiàn):.NET框架中,有一個(gè)XSLTransform類(lèi)中的Transform()方法來(lái)轉(zhuǎn) 換XML文檔。實(shí)現(xiàn)方案中XML文檔的轉(zhuǎn)換時(shí),根據(jù)預(yù)先定義的DTD文檔生成一個(gè)XSLT樣式單( 即XSLT的指令集),調(diào)用.NET XSLT處理引擎中Transform()方法實(shí)現(xiàn)文檔的轉(zhuǎn)換。在W3C定 義的XSLT 2.0的規(guī)范中,根據(jù)XSLT樣式單可產(chǎn)生多個(gè)輸出,通過(guò)<xsl: result-document>屬 性,指示輸出文件的名字和類(lèi)型。
加/解密模塊的實(shí)現(xiàn):.NET框架中,有三個(gè)命名空間涉及到XML的加密:
1.System.Security.Cryptography.
這是一個(gè)提供密碼服務(wù)的命名空間。在這個(gè)加密命名空間中有支持多種加密算法的類(lèi)。 密碼服務(wù)程序類(lèi)的列表如表1所示。
2.System.Secur ity.Cryptography.X509Certificates包含了W3C規(guī)范中X.509證書(shū)檢索等的有關(guān)功能。
3.System.Security.Cryptography.XML應(yīng)用在.NET框架下的特有的XML加密系統(tǒng),可對(duì) XML文檔部分或全部?jī)?nèi)容進(jìn)行加密。
上述的三個(gè)命名空間使得XML加密功能在使用的方便性方面有了很大的提高,這也是.NE T在實(shí)現(xiàn)XML數(shù)據(jù)安全方面的優(yōu)勢(shì)。上述方案的加/解數(shù)據(jù)模塊中,需要對(duì)分解后的XML文檔 ,根據(jù)安全等級(jí)使用不同安全等級(jí)的加密算法,在.NET的命名空間中可方便找出不同的算法 實(shí)現(xiàn)該加密過(guò)程。
數(shù)據(jù)簽名模塊的實(shí)現(xiàn)。.NET框架在System.Security.Cryptography.XML命名空間中提供 了XML數(shù)字簽名所需的全部支持。在System.Security.Cryptography.XML命名空間中可直接 創(chuàng)建<Signature>、<Reference>、<KeyInfo>和<DataObject>等XML數(shù)字簽名元素的對(duì)象,并 可使用SignedXML類(lèi)和它的ComputerSignature()和CheckSignature()來(lái)實(shí)現(xiàn)XML數(shù)字簽名和 驗(yàn)證XML數(shù)字簽名的功能。
密鑰管理模塊的實(shí)現(xiàn)。在.NET框架下,XML密鑰管理規(guī)范服務(wù)是以Web服務(wù)的形式實(shí)現(xiàn)的 。它允許客戶(hù)端應(yīng)用程序訪問(wèn)PKI服務(wù)端,但客戶(hù)端應(yīng)用程序不需要關(guān)心底層PKI的語(yǔ)法,從 而減少客戶(hù)機(jī)應(yīng)用程序的復(fù)雜性。XKMS服務(wù)幫助電子商務(wù)企業(yè)輕松地將網(wǎng)絡(luò)安全措施(如數(shù) 據(jù)加密和數(shù)字簽名)和電子商務(wù)信息系統(tǒng)的應(yīng)用結(jié)合起來(lái)。XML安全標(biāo)準(zhǔn)措施是建立于XKMS 服務(wù)所提供的網(wǎng)絡(luò)交易中的信任關(guān)系上,XKMS服務(wù)是實(shí)現(xiàn)XML數(shù)字加密和簽名服務(wù)的媒介。
.NET框架使用Web服務(wù)描述語(yǔ)言(WSDL)來(lái)定義Web服務(wù)的,WSDL定義了消息和XML類(lèi)型 。而使用WSDL創(chuàng)建XKMS服務(wù)分兩個(gè)步驟:
1.用WSDL創(chuàng)建XKMS對(duì)象模型。WSDL實(shí)用工具可創(chuàng)建一個(gè)適當(dāng)類(lèi)型的字段,該字段的名 稱(chēng)與XML元素或?qū)傩缘拿Q(chēng)對(duì)應(yīng),這些類(lèi)型直接映射為.NET公共語(yǔ)言運(yùn)行庫(kù)(CLR)類(lèi)型。利 用這些字段構(gòu)建出XKMS對(duì)象模型。
2.用WSDL實(shí)用工具生成的原型代碼可以使XKMS服務(wù)得以實(shí)現(xiàn)。這些原型代碼可以控制W eb服務(wù)名稱(chēng)、XML命名空間和參數(shù)序列化的屬性,以該代碼創(chuàng)建一個(gè)XKMS服務(wù)實(shí)現(xiàn)非常簡(jiǎn)單 ,只需把KeyService類(lèi)定義和相關(guān)聯(lián)的屬性復(fù)制到一個(gè)ASMX文件并添加必需的Web服務(wù)聲明 :
<%@WebService Language = # class = XKMS.KeyService%>
另外還需KeyService類(lèi)放置在命名空間XKMS中,這有助于表明KeyService的用途。
有了用于XKMS服務(wù),還需要構(gòu)建客戶(hù)端應(yīng)用程序。
XKMS服務(wù)包含了客戶(hù)端服務(wù)需要的方法以及使用那些方法所需要的所有類(lèi)型。構(gòu)建KXMS 客戶(hù)端包括: 使用服務(wù)注冊(cè)RSA公鑰值; 根據(jù)KeyName值查找RSA公鑰; 根據(jù)KeyID或值KeyName驗(yàn)證RSA公鑰。
通過(guò)客戶(hù)端應(yīng)用程序交互式地收集任何所需的輸入,用戶(hù)可以執(zhí)行一系列這些操作,調(diào) 用XKMS服務(wù)。
四、結(jié)論
隨著XML文件在電子商務(wù)領(lǐng)域的廣泛應(yīng)用,很多安全問(wèn)題也愈發(fā)顯現(xiàn),特別是電子交易 信息的機(jī)密性、完整性、真實(shí)性和抗否認(rèn)性等方面難以得到有效保證。本文在深入分析XML 安全技術(shù)的基礎(chǔ)上,針對(duì)當(dāng)前解密算法的挑戰(zhàn),提出了一種改進(jìn)的XML安全技術(shù),并將其應(yīng) 用于一個(gè)基于VS.net平臺(tái)、以WEB服務(wù)為基礎(chǔ)的電子商務(wù)系統(tǒng)中。理論分析和仿真實(shí)驗(yàn)表明 ,該技術(shù)能在一定程度上克服傳統(tǒng)方法的不足,具有一定的現(xiàn)實(shí)意義和經(jīng)濟(jì)效益。
參考文獻(xiàn):
1.卿斯?jié)h. 電子商務(wù)協(xié)議中的可信第三方角色[J]. 軟件學(xué)報(bào),2003(11)
2.張立志. 電子商務(wù)系統(tǒng)的安全研究[J]. 安陽(yáng)大學(xué)學(xué)報(bào),2004(4)
3.吳潔. XML應(yīng)用教程[M]. 北京: 清華大學(xué)出版社,2005
4.Murdoch Mactaggart. XML加密和XML簽名簡(jiǎn)介[M]. Developer Works,2006
5.唐韶華,甘志勇. 基于XKMS的PKI服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子與信息學(xué)報(bào),2005(2 )
(作者單位:湖南司法警官職業(yè)學(xué)院 湖南長(zhǎng)沙 410131)
(責(zé)編:紀(jì)毅)