[摘要] 現(xiàn)代電子商務(wù)系統(tǒng)需要在不同企業(yè)的異構(gòu)平臺(tái)間完成數(shù)據(jù)收集、傳遞和處理,傳統(tǒng)的EDI模式已不能滿足這種需求。Web Service 在目前的電子商務(wù)中有著重要的應(yīng)用,本文分析了Web Service的整體架構(gòu)和技術(shù)特性,結(jié)合電子商務(wù)的發(fā)展趨勢(shì)提出了基于獨(dú)立安全服務(wù)的可重用的、柔性的電子商務(wù)安全體系結(jié)構(gòu),同時(shí)對(duì)使用WS-Security策略以及使用SAML確保電子商務(wù)可信任做了說(shuō)明。
[關(guān)鍵詞] Web Service 電子商務(wù) SOAP 獨(dú)立 安全體系
一、引言
電子商務(wù)(Electronic Commerce)是在Internet開放的網(wǎng)絡(luò)環(huán)境下,基于B/S(瀏覽器/服務(wù)器)應(yīng)用方式,實(shí)現(xiàn)消費(fèi)者的網(wǎng)上購(gòu)物、商戶之間的網(wǎng)上交易和在線電子支付的一種新型的商業(yè)運(yùn)營(yíng)模式。
隨著電子商務(wù)的發(fā)展,企業(yè)內(nèi)部、企業(yè)間的商業(yè)交互需求越來(lái)越多,不同商業(yè)以及企業(yè)間的應(yīng)用系統(tǒng)需要密切合作,共同完成整個(gè)商務(wù)流程,而傳統(tǒng)的EDI商務(wù)模式已不能滿足這種復(fù)雜的交互需求,現(xiàn)階段電子商務(wù)發(fā)展面臨的最大問(wèn)題是如何保障電子商務(wù)過(guò)程中的安全性,從而給消費(fèi)者以信心。在舊的業(yè)務(wù)系統(tǒng)中,采用了諸如CORBA,EJB,DCOM等分布式模型技術(shù)。雖然CORBA(通用對(duì)象請(qǐng)求代理體系結(jié)構(gòu))是目前較流行的一種分布式對(duì)象技術(shù),它通過(guò)對(duì)象之間的交互來(lái)實(shí)現(xiàn)資源的共享,為分布式環(huán)境下應(yīng)用系統(tǒng)的集成提供支持。但是,CORBA本身存在不少缺陷:如客戶、服務(wù)器方的組件接口是緊密耦合的,客戶組件在編譯時(shí)就必須綁定到服務(wù)器組件,如果接口改變,那么客戶組件必須重建;CORBA 采用IIOP 通信協(xié)議,容易受到防火墻和代理服務(wù)器的阻隔等①。采用Web Service解決方式時(shí),需要先確定提供給其他應(yīng)用系統(tǒng)使用的API(應(yīng)用程序接口),生成相應(yīng)WSDL(Web服務(wù)描述語(yǔ)言)文檔。然后將異種分布式組件封裝成Web Service。使用基于XML的SOAP相互通信,便可以實(shí)現(xiàn)應(yīng)用系統(tǒng)的集成。
Web Service技術(shù)的出現(xiàn)使我們看到解決電子商務(wù)安全問(wèn)題的更多希望,Web Service是構(gòu)筑在XML與Soap技術(shù)之上的一種典型的異構(gòu)分布技術(shù)。自Web Service技術(shù)出現(xiàn)以來(lái),其開放性的標(biāo)準(zhǔn)讓各個(gè)不同系統(tǒng)間能夠互相交換資料。這種良好的安全開放性使得以Web Service 構(gòu)建電子商務(wù)獨(dú)立安全系統(tǒng)成為發(fā)展的新趨勢(shì)。為實(shí)現(xiàn)不同商業(yè)企業(yè)間的應(yīng)用系統(tǒng)提供動(dòng)態(tài)安全集成,體現(xiàn)電子商務(wù)的真正價(jià)值。由此可以看出,目前實(shí)現(xiàn)電子商務(wù)獨(dú)立安全集成的關(guān)鍵技術(shù)是Web Services。
二、認(rèn)識(shí)Web Service技術(shù)
Web Services 是由企業(yè)發(fā)布的用于完成其特別業(yè)務(wù)需求的在線應(yīng)用服務(wù),其他企業(yè)、合作伙伴的應(yīng)用軟件能夠通過(guò)Intranet、Internet來(lái)動(dòng)態(tài)地訪問(wèn)并使用這些在線服務(wù)。它是技術(shù)與市場(chǎng)發(fā)展的必然結(jié)果,是在IBM、微軟等許多平臺(tái)供應(yīng)商、軟件提供商共同推動(dòng)下,并在W3C(萬(wàn)維網(wǎng)聯(lián)盟)的工作流、數(shù)據(jù)安全性等方面的規(guī)范下發(fā)展起來(lái)的標(biāo)準(zhǔn),各個(gè)供應(yīng)商對(duì)其的支持程度超過(guò)了以往的任何跨供應(yīng)商的軟件產(chǎn)品。
對(duì)于Web Services來(lái)說(shuō)它就是一組服務(wù),是較完整的地將安全、認(rèn)證等基本功能為一體的服務(wù)平臺(tái),并具有一系列相關(guān)的技術(shù)標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)使其具有作為一個(gè)服務(wù)平臺(tái)的完整性和優(yōu)越性。也可認(rèn)為是存在于Web服務(wù)器上的一組程序,這組程序被封裝成一個(gè)暗箱,對(duì)外提供一個(gè)能通過(guò)Web進(jìn)行調(diào)用的API接口,可用編程來(lái)調(diào)用它,其執(zhí)行結(jié)果被回傳到客戶端。
總之我們可以簡(jiǎn)單地把它理解為:Web Services 是一個(gè)集部署、發(fā)現(xiàn)、事務(wù)、安全、認(rèn)證等基本功能為一體的服務(wù)平臺(tái),并具有一系列相關(guān)的技術(shù)標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)使其具有作為一個(gè)服務(wù)平臺(tái)的完整性和優(yōu)越性。盡管不同的商業(yè)公司在戰(zhàn)略上開展Web Services 的出發(fā)點(diǎn)不盡相同,但都確立了軟件變服務(wù)的商業(yè)模式,并著力于解決服務(wù)的智能化以及個(gè)性化等問(wèn)題。
三、構(gòu)建Web Service的獨(dú)立安全服務(wù)體系
1.Web Service的技術(shù)特點(diǎn)分析
(1)面向服務(wù)。Web Services 把一切都看作服務(wù),這種服務(wù)可以在網(wǎng)絡(luò)上通過(guò)消息傳遞機(jī)制動(dòng)態(tài)地被發(fā)現(xiàn)、組織和重用。
(2)互操作性與松散耦合。通過(guò)SOAP消息機(jī)制遠(yuǎn)程調(diào)用進(jìn)行應(yīng)用交互,任何Web 服務(wù)都可以與其他Web 服務(wù)進(jìn)行交互,避免了在CORBA、DCOM(分布式組件對(duì)象模型)和其它協(xié)議之間轉(zhuǎn)換的麻煩,開發(fā)者可以使用任何語(yǔ)言來(lái)編寫Web服務(wù),無(wú)需變更他們的開發(fā)環(huán)境。Web Services 使用者與Web Services 提供者之間是松散耦合。
(3)封裝性。Web Services 對(duì)外封裝成由WSDL描述的服務(wù),屏蔽了業(yè)務(wù)邏輯的復(fù)雜性、實(shí)現(xiàn)技術(shù)的多樣性和開發(fā)平臺(tái)的異構(gòu)性。
(4)普遍性。Web 服務(wù)技術(shù)基于一系列開放標(biāo)準(zhǔn)。Web服務(wù)使用HTTP 和XML進(jìn)行通信,因此,任何支持這些技術(shù)的設(shè)備都可以擁有和訪問(wèn)Web服務(wù),具有使用上的廣泛性。
(5)集成性和簡(jiǎn)單性??梢允褂萌魏握Z(yǔ)言(如C、C++、VB、VC等)來(lái)編寫Web服務(wù),開發(fā)者無(wú)需更改他們的開發(fā)環(huán)境就可以生產(chǎn)和使用Web服務(wù)。Web服務(wù)技術(shù)不僅易于理解,并且IBM、微軟等大的供應(yīng)商所提供的開發(fā)工具能夠讓開發(fā)者快速創(chuàng)建、部署Web 服務(wù),已有的COM(Component Object Model 組件對(duì)象模型) 組件、Java Bean 等也可方便地轉(zhuǎn)化為Web 服務(wù)。
由于Web Services 技術(shù)建立在標(biāo)準(zhǔn)性與開放性基礎(chǔ)之上,徹底打破了以前封閉式的實(shí)現(xiàn)方法,通過(guò)Web Services 技術(shù),使用不同語(yǔ)言開發(fā)、運(yùn)行在各個(gè)不同平臺(tái)上的客戶端應(yīng)用可以無(wú)縫地獲取所需應(yīng)用,達(dá)到資源效率的最大化。
2.基于Web Service電子商務(wù)獨(dú)立安全系統(tǒng)邏輯結(jié)構(gòu)
我們可用如圖1或圖2兩種方式來(lái)表示基于Web Service電子商務(wù)獨(dú)立安全系統(tǒng)邏輯結(jié)構(gòu)。
由圖1可以看出Web Service的體系結(jié)構(gòu)主要由三部分構(gòu)成:一是獨(dú)立安全服務(wù)(服務(wù)提供者),它是Web服務(wù)的擁有者,能創(chuàng)建Web服務(wù)并通過(guò)Web服務(wù)注冊(cè)將其發(fā)布到Internet上,響應(yīng)對(duì)其服務(wù)調(diào)用的請(qǐng)求;二是客戶端(服務(wù)請(qǐng)求者)是Web服務(wù)功能的使用者,通過(guò)Web服務(wù)注冊(cè)查找所需的服務(wù),并向Web服務(wù)提供者發(fā)送請(qǐng)求以獲得服務(wù);三是應(yīng)用服務(wù)器(服務(wù)注冊(cè)中心)是把服務(wù)請(qǐng)求者與合適的服務(wù)提供者綁定在一起,維護(hù)已發(fā)表服務(wù)的注冊(cè)信息。
圖1 Web Service的安全體系邏輯結(jié)構(gòu)
圖2
統(tǒng)一安全服務(wù)體系結(jié)構(gòu)的基本想法就是將系統(tǒng)的安全體系結(jié)構(gòu)的復(fù)雜性遷移到所謂的統(tǒng)一安全服務(wù)器(層),由一個(gè)單獨(dú)的服務(wù)器來(lái)實(shí)現(xiàn)統(tǒng)一安全服務(wù),在此服務(wù)器上可以找到所有的安全算法,該服務(wù)器是對(duì)所定義域進(jìn)行鑒別的惟一場(chǎng)所,因而使得系統(tǒng)的其他部分無(wú)須承擔(dān)任何的安全職責(zé)。對(duì)于統(tǒng)一安全的鑒別/注冊(cè)方法來(lái)說(shuō),即便一個(gè)用戶在一個(gè)特定域中與許多不同的安全元素相互作用,也只需要進(jìn)行一次登錄。
被鑒別方首先調(diào)用統(tǒng)一安全服務(wù)來(lái)請(qǐng)求得到一個(gè)能夠在特定域中標(biāo)識(shí)其自身的身份ID。為了能夠獲得這個(gè)身份ID,被鑒別的一方首先必須提供正確的鑒別資格信息。鑒別資格信息具有多種不同的形式:例如,可以是簡(jiǎn)單的用戶名/口令或者證書,但是也可以采用別的方法。統(tǒng)一安全服務(wù)使用底層潛在的安全體系結(jié)構(gòu)對(duì)用戶的資格信息進(jìn)行驗(yàn)證,然后才賦予用戶一個(gè)身份ID。
具體過(guò)程如下:被鑒別方向統(tǒng)一安全服務(wù)發(fā)出登陸請(qǐng)求;統(tǒng)一安全服務(wù)返回被鑒別方身份ID;被鑒別方將應(yīng)用請(qǐng)求與身份ID發(fā)往應(yīng)用服務(wù)器;應(yīng)用服務(wù)器將身份ID發(fā)往統(tǒng)一安全服務(wù)進(jìn)行認(rèn)證以及判權(quán);統(tǒng)一安全服務(wù)返回認(rèn)證以及判權(quán)結(jié)果;應(yīng)用服務(wù)器根據(jù)返回的信息做出特定回應(yīng)。
3.構(gòu)建Web Service的獨(dú)立安全服務(wù)體系關(guān)鍵內(nèi)容
(1)基于Web Service安全體系所需相關(guān)協(xié)議。
①可擴(kuò)展標(biāo)記語(yǔ)言(XML)。XML(Extensible Markup Language)是平臺(tái)中表示數(shù)據(jù)的基本格式。除了易于建立和分析外,XML主要的優(yōu)點(diǎn)在于它與平臺(tái)無(wú)關(guān)、與廠商無(wú)關(guān)。Web Service若要讓異構(gòu)平臺(tái)上不同系統(tǒng)可以互相通訊和共享數(shù)據(jù),那么數(shù)據(jù)在Web上傳輸必須以一定的標(biāo)準(zhǔn)和格式進(jìn)行,這個(gè)表示數(shù)據(jù)的標(biāo)準(zhǔn)就是XML。
②簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP)。SOAP(Simple Object Access Protocol)是消息傳遞的協(xié)議,它規(guī)定了Web Service之間是怎樣傳遞信息的,包括傳遞信息的格式為XML,遠(yuǎn)程對(duì)象方法調(diào)用的格式,參數(shù)類型和XML格式之間的映射以及異常處理以及其他的相關(guān)信息。
③Web服務(wù)描述語(yǔ)言(WSDL)。WSDL(Web Service Description Language)定義了一套基于XML的語(yǔ)法,是描述Web服務(wù)的格式,包括服務(wù)名稱,服務(wù)所在的機(jī)器名稱,監(jiān)聽端口號(hào),傳遞參數(shù)的類型,個(gè)數(shù)和順序,返回結(jié)果的類型等。這樣使服務(wù)請(qǐng)求者才能調(diào)用提供的Web服務(wù)。
④通用發(fā)現(xiàn)、描述與集成(UDDI)。UDDI(Universal Description.Discovery and Integration)是一套基于Web的發(fā)布式的為Web服務(wù)提供的信息注冊(cè)中心的實(shí)現(xiàn)標(biāo)準(zhǔn)規(guī)范。同時(shí)也包含一組使企業(yè)能將自身提供的Web服務(wù)注冊(cè)以使得別的企業(yè)能夠發(fā)現(xiàn)的訪問(wèn)協(xié)議的實(shí)現(xiàn)標(biāo)準(zhǔn)。用于集中存放和查找WSDL描述文件,起著目錄服務(wù)器的作用。
(2)構(gòu)建安全服務(wù)器。構(gòu)建安全服務(wù)器的基本思想就是使用一臺(tái)獨(dú)立的服務(wù)器作為系統(tǒng)安全層,該層承擔(dān)所有安全職責(zé)。安全服務(wù)層向其他應(yīng)用層提供Web Service,這樣可以使得系統(tǒng)中不同應(yīng)用系統(tǒng)可以很方便的進(jìn)行安全功能的集成以便系統(tǒng)中的各個(gè)部分將安全職責(zé)方便的轉(zhuǎn)移到安全服務(wù)器上,并實(shí)現(xiàn)無(wú)障礙的在不同安全體系之中進(jìn)行轉(zhuǎn)換。此服務(wù)器主要承擔(dān)用戶身份注冊(cè)與鑒別任務(wù),并且是身份鑒別的惟一場(chǎng)所,使得系統(tǒng)中其它子系統(tǒng)可以很方便的進(jìn)行安全功能的集成。從而使得用戶雖然在不同安全體系中使用電子商務(wù)系統(tǒng),但也只需要一次登陸即可。
(3)系統(tǒng)實(shí)施的關(guān)鍵——UDDI。UDDI可以是商業(yè)或行業(yè)的UDDI,也可以是企業(yè)私有的UDDI。擁有私有UDDI注冊(cè)系統(tǒng)的企業(yè)發(fā)布服務(wù)的過(guò)程為:企業(yè)定義自己提供的Web Services;企業(yè)將服務(wù)發(fā)布于自己的UDDI上。要將服務(wù)發(fā)布到行業(yè)UDDI的發(fā)布過(guò)程為:企業(yè)通過(guò)瀏覽器登陸平臺(tái)系統(tǒng); 企業(yè)通知平臺(tái)自己可以提供的Web Services ;平臺(tái)定義提供的Web Services ;平臺(tái)將定義的Web Services 發(fā)布在UDDI中。
(4)對(duì)Web Service應(yīng)用WS-Security策略以實(shí)現(xiàn)端到端的安全性。WS-Security 定義了一個(gè)用于攜帶安全性相關(guān)數(shù)據(jù)的SOAP標(biāo)頭元素。但采用SOAP消息傳遞來(lái)解決某些復(fù)雜問(wèn)題,則僅僅基于 HTTP 的安全性是不夠的。而調(diào)用方以及消息的標(biāo)識(shí)、完整性和安全性需要在多個(gè)路由段中保留。HTTP 及其安全機(jī)制只是面向點(diǎn)到點(diǎn)的安全性。而更復(fù)雜的解決方式則需要端到端的安全性。WS-Security 解決的是如何在多點(diǎn)消息路徑中維護(hù)一個(gè)安全的環(huán)境。WS-Security 并不指定簽名或加密的格式,而是指定如何在SOAP消息中嵌入由其他規(guī)范定義的安全性信息。WS-Security 主要是一個(gè)用于基于XML的安全性元數(shù)據(jù)容器的規(guī)范。它指定了一個(gè)通過(guò) UsernameToken 元素傳輸簡(jiǎn)單用戶憑據(jù)的機(jī)制。此外,為了發(fā)送用于加密或簽名消息的二進(jìn)制令牌,還定義了一個(gè) BinarySecurityToken。WS-Security 將所有安全信息保存在消息的SOAP部分中,從而為 Web 服務(wù)安全性提供了端到端的解決方式。
WS-Security通過(guò)利用現(xiàn)有標(biāo)準(zhǔn)和規(guī)范來(lái)實(shí)現(xiàn)安全性,例如 Kerberos 和 X.509 用于身份驗(yàn)證;X.509還使用現(xiàn)有的PKI進(jìn)行密鑰管理;XML加密和XML簽名描述了XML消息內(nèi)容的加密和簽名方法;XML標(biāo)準(zhǔn)描述了為簽名和加密而準(zhǔn)備XML的方法。WS-Security在現(xiàn)有規(guī)范中添加了一個(gè)架構(gòu),且是由一種與傳輸無(wú)關(guān)的方式完成的。用于將這些機(jī)制嵌入到SOAP消息中。這樣就不必在 WS-Security 中定義一個(gè)完整的安全性解決方案了。所以應(yīng)用這一策略是非常重要的。
(5)使用SAML確保電子商務(wù)可信任。在電子商務(wù)中,經(jīng)常需要提供個(gè)人信息。這樣就會(huì)產(chǎn)生在不同的公司,可能都會(huì)有客戶的信息,因此,對(duì)于所有的站點(diǎn)來(lái)說(shuō)都要考慮客戶的信息的安全。SAML為SSO提供了一個(gè)安全的協(xié)議。它是允許Web站點(diǎn)安全地共用身份信息的一個(gè)規(guī)范。站點(diǎn)使用SAML的XML詞匯表和請(qǐng)求/應(yīng)答模式,通過(guò)HTTP交換身份信息。SAML依靠一批制定完善的安全標(biāo)準(zhǔn),包括SSL和X.509來(lái)保護(hù)SAML源站點(diǎn)和目標(biāo)站點(diǎn)之間通信的安全。源站點(diǎn)和目標(biāo)站點(diǎn)之間的所有通信都經(jīng)過(guò)了加密。為保證參與SAML交互的雙方站點(diǎn)都能驗(yàn)證對(duì)方的身份,還使用了證書。因此,可以設(shè)計(jì)SAML來(lái)解決這一問(wèn)題,它只允許少數(shù)經(jīng)過(guò)客戶選擇的團(tuán)體保留客戶的信息,在得到客戶的明確批準(zhǔn)后這些團(tuán)體可以與其他有關(guān)的團(tuán)體共享這些信息。這意味著客戶的信息安全掌握在客戶所信任的團(tuán)體的手中,并且可以訪問(wèn)一些供應(yīng)商通過(guò)組織多種底層次服務(wù)所提供的高級(jí)服務(wù)。
四、結(jié)論
在構(gòu)建了基于Web Service的獨(dú)立服務(wù)器后,處理機(jī)制全部集中在統(tǒng)一服務(wù)層并成為惟一的身份鑒別場(chǎng)所,同時(shí)對(duì)于整個(gè)系統(tǒng)安全策略的制定、實(shí)施與維護(hù)變得很簡(jiǎn)單。電子商務(wù)系統(tǒng)中的其它實(shí)體就沒(méi)有必要單獨(dú)實(shí)現(xiàn)所有的安全功能和機(jī)制,所以提高了整個(gè)系統(tǒng)的安全性。
統(tǒng)一安全服務(wù)層成為惟一可以接受安全信用信息的場(chǎng)所,而安全信用信息位于特定的安全域中。由于不必到處傳遞安全信用信息,統(tǒng)一安全服務(wù)增強(qiáng)了整個(gè)系統(tǒng)的安全性。且可以在一個(gè)廣闊的范圍里進(jìn)行鑒別。SOAP對(duì)于統(tǒng)一安全服務(wù)的接口使Web Service統(tǒng)一安全服務(wù)體系結(jié)構(gòu)變得非常通用,WS-Security策略將所有安全信息保存在消息的 SOAP 部分中,為 Web 服務(wù)安全性提供了端到端的解決方法。在傳輸方面是作為WS-Security重要補(bǔ)充的SAML,在傳輸方面,通過(guò)某點(diǎn)登陸能同時(shí)為使用者提供有效的安全性和方便性。
總之,統(tǒng)一安全服務(wù)本身也是一個(gè)Web service,使得系統(tǒng)中的其它部分可以很方便的將統(tǒng)一安全服務(wù)集成在一起。以提供又快又好的安全服務(wù)。
參考文獻(xiàn):
[1]徐舒亮葉少珍:基于Web服務(wù)的EAI解決方案探討[N].福州大學(xué)學(xué)報(bào),2004.12
[2]顧寧劉家茂柴曉路:Web Services 原理與研發(fā)實(shí)踐[M].機(jī)械工業(yè)出版社,2006
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。