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