專利名稱:用于在網絡內處理soap消息的方法以及網絡的制作方法
技術領域:
本發(fā)明涉及用于在網絡(尤其是IP (互聯網協議)網絡)內處理SOAP (簡單對象訪問協議)消息的方法,其中,基于XML(擴展標記語言)的SOAP消息包括具有二進制內容的片段,所述二進制內容將被移入SOAP消息的ΜΤ0Μ(消息傳輸優(yōu)化機制)附件,而對二進制內容的引用留在SOAP消息內,所述附件將分別由簽名和加密處理進行簽名和/或加密。此外,本發(fā)明涉及網絡,尤其是IP(互聯網協議)網絡,其中,能夠處理S0AP(簡單對象訪問協議)消息,基于XML(擴展標記語言)的SOAP消息包括具有二進制內容的片段,所述二進制內容將被移入SOAP消息的MTOM (消息傳輸優(yōu)化機制)附件,而對二進制內容的引用留在SOAP消息內,所述附件將分別由簽名和加密處理進行簽名和/或加密。
背景技術:
已知與二進制消息格式相比,處理XML消息是極為消耗資源的。如果使用XML安全手段(XML簽名、XML加密)對消息或消息部分進行簽名或加密,該屬性被破壞。當然,上述內容對于SOAP消息也是成立的,這是由于SOAP是基于XML的并且所使用的安全手段WS-安全性(Web服務安全性)基于XML安全性。作為結果,Web服務框架開發(fā)者若干年來致力于消息處理流的優(yōu)化。一種有前途的方式是流處理范例。對于不受保護的消息,已經例如在Web服務框架Apache Axis2中采用了流處理范例,并且對于受保護消息,第一結果是可見的。給出與當前技術(特別是,XML加密和簽名過程以及對相應消息的流處理)有關的信息的文檔如下I. Bartel,Mark,Boyer, John,Fox, Barb,LaMacchia, Brian,and Simon,Ed XMLSignature Syntax and Processing, W3CRecommendation,2002.2.Imamura,Takeshi,Dillaway,Blair,and Simon,Ed :XMLEncyption Syntax andProcessing, W3C Recommendation,2002.3.Gudgin, Martin, Mendelsohn, Noah, Nottingham, Mark, and Ruellan, Herve SOAP Message Transmission Optimization Mechanism,W3C Recommendation,2005.4.Gruschka, Nils, Luttenberger, Norbert, and Herkenhoner, Ralph Event-based SOAP Message Validation for WS-SecurityPoIicy-enriched WebServices, Proceedings of the 2006 International Conference on Semantic Web&WebServices,2006.5. Govindaraju,Madhusudhan, Slominski,Aleksander,Chiu, Kenneth,Liu, Pu,van Engelen,Robert,and Lewis,Michael J. Toward Characterizing the Performanceof SOAP Toolkits, Proceedings of the Fifth IEEE/ACM International Workshop on Grid Computing(GRID,04),IEEE Computer Society,365-372,2004.6.Lu, Wei, Chiu, Kenneth,Slominski, Aleksander,and Gannon,Dennis A Streaming Validation Model for SOAP Digital Signature, In The 14th IEEEInternational Symposium on High Performance Distributed Computing(HPDC-14),2005.7. Imamura, Takeshi, Clark, Andy, and Maruyama, Hiroshi A stream-basedimplementation of XML Encyption,XMLSEC>02 Proceedings of the 2002 ACM workshopon XML security, ACM Press,11-17,2002.SOAP消息處理的基本問題在于其高資源消耗。當對消息部分進行加密或簽名時,資源消耗甚至更高。流消息處理是降低資源消耗的一種方法。然而,受保護的MTOM附件限制了網絡流的一遍流處理(streaming one-pass processing)。更準確的說,如果SOAP消息(I)使用了 MTOM附件并且⑵使用WS-安全性來保護這些附件中的一個或多個,對消息處理的流處理不再可行。其原因解釋如下。要作為附件傳輸的SOAP文檔的二進制部分被MTOM引用替換。在網絡上,首先發(fā)送該SOAP文檔,接著將二進制部分作為MTOM附件發(fā)送。然而,附件實際上嵌入在SOAP消息內的引用位置。 對于針對SOAP文檔的大量典型操作(如,提取或移動文檔子樹),該屬性可以被忽略。然而,對于某些其他操作(包括用于簽名驗證的散列值計算或對加密內容進行解密),在處理SOAP消息內的引用時,必須完整讀取附件。因此,在該情況下,破壞了消息的一遍流處理。
發(fā)明內容
本發(fā)明的目的是改進并進一步發(fā)展用于在網絡內處理SOAP消息的方法以及用于以簡單方式允許對具有簽名和/或加密的MTOM附件的SOAP消息進行流處理的相應網絡。根據本發(fā)明,上述目的是通過包括權利要求I的特征的方法和包括權利要求13的特征的網絡實現的。根據權利要求1,該方法的特征在于在簽名處理期間,除了對簽名片段本身進行散列化,還將對不包括二進制內容的相同片段進行散列化,和/或在加密處理期間,除了對片段本身進行加密,還將對僅包括對二進制內容的引用而非二進制內容的片段進行加密。根據權利要求13,該網絡的特征在于散列裝置和/或加密裝置,所述散列裝置被適配為使得在簽名處理期間,除了對簽名片段本身進行散列化,還對不包括二進制內容的相同片段進行散列化;所述加密裝置被適配為使得在加密處理期間,除了對片段本身進行加密,還對僅包括對二進制內容的引用而非二進制內容的片段進行加密。根據本發(fā)明,已經意識到可以通過簡單地向傳出的SOAP消息添加與簽名和/或加密附件有關的附加信息,允許對具有簽名和/或加密MTOM附件的SOAP消息進行流處理。具體地,在簽名處理期間,除了對簽名片段本身進行散列化,還將對不包括二進制內容的相同片段進行散列化,并且能夠以適當方式將其添加至SOAP消息。相應地,在加密處理期間,除了對片段本身進行加密,還將對僅包括對二進制內容的引用而非二進制內容的片段進行加密。還可以將該附加信息添加至傳出的SOAP消息。在服務器側對SOAP消息的處理期間,基于添加至傳出的SOAP消息的附加部分,對具有簽名和/或加密MTOM附件的SOAP消息的一遍流處理將是可能的。優(yōu)選地,在簽名和/或加密處理期間,二進制內容可以以文本編碼(優(yōu)選地,base64編碼)形式存在于片段內?;谶@樣的文本編碼形式,可以在簽名和/或加密處理期間使用一般的簽名和加密技術。在本發(fā)明的方法期間,特別是簽名處理期間,可以基于不包括二進制內容的附加散列化片段,創(chuàng)建用于在傳輸協議內使用的附加塊。優(yōu)選地,這樣的附加塊可以是轉換塊,所述轉換塊可被添加至相應簽名的轉換元素。基于上述步驟,可以對一般的SOAP消息進行簡單擴展,從而允許對SOAP消息的一遍流處理。關于本發(fā)明的又一優(yōu)選實施例,可以基于僅包括對二進制內容的引用的附加加密片段,創(chuàng)建用于在傳輸協議內使用的加密屬性。這樣的加密屬性可以被簡單地添加至加密塊,以針對消息處理在服務器側進行一遍流處理。優(yōu)選地,加密屬性可以以文本編碼(優(yōu)選地,base64編碼)形式存在。從而,可以在本發(fā)明的方法期間使用一般的加密技術。關于極為簡單和有效的方法,對二進制內容的引用可以是X0P(XML 二進制優(yōu)化封 裝)引用。這樣的XOP引用能夠提供以下可能將二進制內容移出消息,僅引用部分留在原始消息內。關于極為有效的一遍流處理,可以對SOAP消息串行化,以進行服務器側的一遍流處理。關于服務器側處理期間的對SOAP消息的極為有效的處理,可以分別以一遍流方式并行地執(zhí)行對散列值的計算。為了提供極為簡單和可靠的方法,可以將WS-安全性(Web服務安全性)用于簽名和/或加密處理。從而,可以使用已知的簽名和/或加密技術來簡化上述方法。片段內的二進制內容的種類不限于任何特定應用。在優(yōu)選實施例中,二進制內容可以是照片、醫(yī)療圖像或軟件二進制文件。本發(fā)明對當前的Web服務安全性規(guī)范和消息處理方法引入擴展,以克服上述問題,并從而使得能夠對具有加密和/或簽名MTOM附件的SOAP消息進行流處理。更具體的說,本發(fā)明定義了 Web服務安全性規(guī)范(XML簽名和XML加密)的擴展。這些擴展由(支持在本發(fā)明中定義的機制的)Web服務客戶端添加至傳出的SOAP消息,并且包含與簽名或加密附件有關的附加信息。(支持在本發(fā)明中定義的機制的)Web服務服務器能夠使用這些擴展來以一遍流方式高效地處理該消息。這導致服務器側的更高的性能和降低的資源消耗。然而,由于未改變標準化的消息格式,不支持在本發(fā)明中定義的機制的Web服務服務器仍能處理SOAP消息內的簽名和加密。本發(fā)明結合MTOM附件提供了對SOAP安全性的擴展。提供了對包括附件的完整SOAP消息的一遍服務器側流處理。其結果是Web服務服務器性能更高,資源消耗降低。展現對當前標準和框架的完全后向兼容性。
存在設計和以有利方式進一步發(fā)展本發(fā)明教導的若干方式。為此,一方面要參照從屬于專利權利要求I的專利權利要求,另一方面要參照以下對以附圖示意的本發(fā)明實施例的優(yōu)選示例的說明。將結合借助于附圖對本發(fā)明優(yōu)選實施例的說明,來說明一般的優(yōu)選實施例和對教導的進一步發(fā)展。附圖中圖I示出了 MTOM SOAP消息的標準格式和串行化,
圖2示出了簽名MTOM SOAP消息的標準格式、處理和串行化,圖3示出了加密MTOM SOAP消息的標準格式、處理和串行化,圖4示出了根據本發(fā)明的用于創(chuàng)建簽名MTOM SOAP消息的實施例,圖5示出了根據本發(fā)明的用于創(chuàng)建加密MTOM SOAP消息的實施例,圖6示出了根據本發(fā)明的對簽名MTOM SOAP消息的服務器側處理的實施例,以及圖7示出了根據本發(fā)明的對加密MTOM SOAP消息的服務器側處理的實施例。
具體實施方式
以下圖I至7說明了本發(fā)明及其實施例。圖I至3示出了用于創(chuàng)建受保護的加密MTOM消息的標準方法。圖4至7示出了本發(fā)明的方法。圖I示出了 MTOM SOAP消息的標準格式和串行化。該圖I示出了如何創(chuàng)建MTOM附件。在左側,可以看到具有二進制內容(此處是照片)的SOAP消息片段。由于XML是文本格式,二進制內容僅能以文本編碼形式傳輸。對此,最常見的形式是base64編碼。對(特別是大的)二進制內容的這種處理產生了一些問題。主要地,使用base64增加了存儲器中和網絡上的空間消耗(33%)。此外,對大SOAP文檔的處理更加困難和消耗資源。為了克服這些問題,過去,公開了從SOAP消息中移除這些邏輯“外部文檔部分”并將它們作為附件傳輸的若干可能。其中,MTOM被認為是最佳方式,因為MTOM消除了例如SwA(具有附件的SOAP)的一些缺陷。如圖I所示,MTOM使用所謂XOP信息集(infoset)來存儲存儲器內的消息。借此,二進制數據(此處是照片)以原始形式保持在SOAP消息以外,SOAP消息僅包括對二進制文件的引用(〈xop: Include〉)。最后,在圖I的右側,可以看到如何通過網絡傳輸XOP彳目息集將串行化的XML部分和二進制部分作為傳輸協議(典型的,HTTP(超文本傳輸協議))內分開的MME(多用途互聯網郵件擴展)塊傳輸。如此,可以將二進制部分作為SOAP消息的附件按原樣(不編碼)傳輸。 圖2示出了簽名MTOM SOAP消息的標準格式、處理和串行化。圖2示出了啟用MTOM的SOAP消息的簽名創(chuàng)建過程。XOP信息集的重要屬性是〈XOp: Include〉引用是“值”引用,即,所有操作必須處理XML文檔以及嵌入在文檔內的二進制內容。對于許多操作(例如,移動<m:ph0t0>節(jié)點),無需對此進行考慮,這是由于對XOP信息集或原始信息的操作是等效的。然而,對于需要讀取并對簽名節(jié)點的完整內容進行散列化的簽名操作,必須附加該屬性。因此,如圖2所示,在對包括MTOM附件的節(jié)點進行簽名前,必須將附件嵌入XML文檔,所述XML文檔實際上重建了原始信息集。接著,可以對節(jié)點進行簽名,包括對base64編碼的二進制附件進行散列化。在簽名計算后,可以恢復XOP部分(未在圖2中示出),并且再次能夠作為附件來傳輸二進制部分。如果在服務器側處理這樣的串行化,其不能以一遍流方式實現。在處理了<m:ph0t0>節(jié)點后,必須暫停散列計算,直至已完整地接收到附件從而能夠執(zhí)行散列計算為止,這引起對SOAP處理的阻礙行為。圖3示出了加密MTOM SOAP消息的標準格式、處理和串行化。該圖示出了對包含MTOM附件的SOAP消息片段進行加密的方式。再次,在應用加密操作前,必須將附件重新嵌入(以及base64編碼)至XML文檔。在加密后,XML加密塊替換加密塊(以上示例中的<m: photo〉元素)ο再次,該加密塊包括base64編碼的二進制內容節(jié)點〈xenc: CipherData〉元素的內容。接著,可以從XML文檔提取二進制內容,并且二進制內容被串行化為MTOM附件。必須注意的是與簽名創(chuàng)建相反,加密消息的附件與未加密消息中的不同。由于加密處理已將未加密XML文檔的部分(此處為<m:photo>包裝)移至附件,再次,不能以一遍流方式執(zhí)行服務器側的處理(即,解密)。圖4示出了根據本發(fā)明的用于創(chuàng)建簽名MTOM SOAP消息的方法的實施例。該圖4示出了用于針對包含MTOM附件的片段創(chuàng)建XML簽名的本發(fā)明的方法。參見以下圖6,結果消息允許服務器側的一遍流處理。簽名處理的細節(jié)如下除了對簽名片段本身(在以上示例中,為〈m:ph0t0>)進行散列化,還對相同片段(不包括二進制內容)進行散列化。因此,將以下轉換塊添加至相應簽名的<ds: Transforms〉元素
<ds: Transform Algonthm="http:/7vvww.w3.org/2002/06/xrnldsig-filter2"> <dsf:XPath Filter="intersect"> xpath-of-signed- element </dsf:XPath>
<dsf:XPath Filter="subtract''> xpath-of~wrapping~ element /<*>
</dsf:XPath>
</ds:Transform>
前綴命名空間_
dsf_http ://www.w3. org/2002/06/xm I dsig-fi 1ter2_
dshttp://vvw w. w3. Org/2000/09/xm I ds i g#必須通過引用要簽名的元素和二進制內容的父元素(“包裝元素”)的XPath表達式來替換值 xpath-of-signed-eIement 和 xpath-of-wrapping-element。在圖 4 中使用的示例中,兩個表達式均為//m:photo。圖5示出了根據本發(fā)明的用于創(chuàng)建加密MTOM SOAP消息的方法的實施例。該圖5示出了用于對包含MTOM附件的片段進行解碼的本發(fā)明的方法。參見以下圖7,結果消息允許服務器側的一遍流處理。加密處理的細節(jié)如下除了來自“原始信息集”的片段(在以上示例中,包括二進制內容的元素〈m:ph0t0>)以外,還對來自“Χ0Ρ信息集”的相同片段(在以上示例中,包括XOP引用的元素<m:photo>)進行加密。將第二加密操作的結果作為加密屬性添加(base64編碼)至加密塊。更準確的說,將以下元素添加至<xenc:EncryptionProperties> 塊
<xenc: Encrypti on Property >
<nec.: Enc.rytedBinary Wrapper〉 encrypted-xop-infoset-fra^ment </nec: EncrytedBinary Wrapper〉
</xenc: Encryption Property〉
權利要求
1.一種用于在網絡(尤其是IP(互聯網協議)網絡)內處理SOAP(簡單對象訪問協議)消息的方法,其中,基于XML(擴展標記語言)的SOAP消息包括具有ニ進制內容的片段,所述ニ進制內容被移入SOAP消息的MTOM(消息傳輸優(yōu)化機制)附件,而對ニ進制內容的引用留在SOAP消息內,所述附件由簽名和加密處理分別進行簽名和/或加密, 所述方法的特征在于在簽名處理期間,除了對簽名片段本身進行散列化,還對不包括ニ進制內容的相同片段進行散列化;和/或在加密處理期間,除了對片段本身進行加密,還對僅包括對ニ進制內容的引用而非ニ進制內容的片段進行加密。
2.根據權利要求I所述的方法,其中,在簽名和/或加密處理期間,ニ進制內容以文本編碼(優(yōu)選地,base64編碼)形式存在于片段內。
3.根據權利要求I或2所述的方法,其中,基于不包括ニ進制內容的附加散列化片段,創(chuàng)建在傳輸協議內使用的附加塊。
4.根據權利要求3所述的方法,其中,所述附加塊是轉換塊,所述轉換塊將被添加至相應簽名的轉換單元。
5.根據權利要求I至4中任一項所述的方法,其中,基于僅包括對ニ進制內容的引用的附加加密片段,創(chuàng)建在傳輸協議內使用的加密屬性。
6.根據權利要求5所述的方法,其中,所述加密屬性被添加至加密塊。
7.根據權利要求5或6所述的方法,其中,所述加密屬性以文本編碼(優(yōu)選地,base64編碼)形式存在。
8.根據權利要求I至7中任一項所述的方法,其中,對ニ進制內容的引用是XOP(XMLニ進制優(yōu)化封裝)引用。
9.根據權利要求I至8中任一項所述的方法,其中,將所述SOAP消息串行化,以進行服務器側的一遍流處理。
10.根據權利要求9所述的方法,其中,在服務器側處理期間,并行地執(zhí)行散列值的計算。
11.根據權利要求I至10中任一項所述的方法,其中,將WS-安全性(Web服務安全性)用于簽名和/或加密處理。
12.根據權利要求I至11中任一項所述的方法,其中,所述ニ進制內容是照片、醫(yī)療圖像或軟件ニ進制文件。
13.—種網絡,尤其是IP(互聯網協議)網絡,優(yōu)選地用于執(zhí)行根據權利要求I至12中任一項所述的方法,其中,能夠處理基于XML(擴展標記語言)的SOAP消息,所述SOAP消息包括具有ニ進制內容的片段,所述ニ進制內容被移入SOAP消息的MTOM(消息傳輸優(yōu)化機制)附件,而對ニ進制內容的引用留在SOAP消息內,所述附件由簽名和加密處理分別進行簽名和/或加密, 所述網絡的特征在于散列裝置和/或加密裝置,所述散列裝置被適配為使得在簽名處理期間,除了對簽名片段本身進行散列化,還能夠對不包括ニ進制內容的相同片段進行散列化;所述加密裝置被適配為使得在加密處理期間,除了對片段本身進行加密,還能夠對僅包括對ニ進制內容的引用而非ニ進制內容的片段進行加密。
全文摘要
為了以簡單方式允許對具有簽名和/或加密MTOM附件的基于XML(擴展標記語言)的SOAP(簡單對象訪問協議)消息進行一遍流處理,要求保護一種用于在網絡(尤其是IP(互聯網協議)網絡)內處理SOAP消息的方法,其中,SOAP消息包括具有二進制內容的片段,二進制內容將被移入SOAP消息的MTOM(消息傳輸優(yōu)化機制)附件,而對二進制內容的引用留在SOAP消息內,所述附件將分別由簽名和加密處理進行簽名和/或加密。該方法的特征在于在簽名處理期間,除了對簽名片段本身進行散列化,還將對不包括二進制內容的相同片段進行散列化,和/或在加密處理期間,除了對片段本身進行加密,還將對僅包括對二進制內容的引用而非二進制內容的片段進行加密。此外,要求保護一種相應的網絡,優(yōu)選地,用于執(zhí)行上述方法。
文檔編號H04L29/08GK102783114SQ201080064805
公開日2012年11月14日 申請日期2010年2月26日 優(yōu)先權日2010年2月26日
發(fā)明者尼爾斯·古斯查卡, 魯吉·羅亞科諾 申請人:Nec歐洲有限公司