利用WSE 加密SOAP報文(3)

來源:互聯網
上載者:User
加密 WSE對加密的支援

WSE支援對SOAP 報文的部分加密.對稱式加密使用一個共用的密鑰,不對稱式加密支援使用x.509認證.當使用WSE來加密SOAP報文時,整個body節點的內容被加密,除非明確指定不要加密.下面舉了2個例子,一個加密這個主體部分,一個加密部分.

WSE執行階段程式庫實現了所有的WS-security.在SecurityInputFilter 和SecurityOutputFilter 類中SecurityOutputFilter 類中.前者通過尋找Security節點在一個

進入的SOAP報文中,如果該節點存在.它建立了一個代表任意安全標記和加密金鑰,解密節點,驗證任何數位簽章的對象.對於一個進入的報文,任何任何安全的節點都剋通過報文產生的SOAPcontext對象的安全屬性進行訪問.相反的, SecurityOutputFilter為進出報文實施加密和簽名的操作,附帶任何特定的安全標記或者加密金鑰.安全措施,比如委任標記,加密,或者簽署進出報文利用報文的SOAPContext.Security和SOAPContext.ExtendedSecurity屬性, ExtendedSecurity只在需要建立安全前序時候使用Security屬性只在為包含最終目的地時使用

配置WSE

儘管在安裝時,WSE已經被安裝到asp.net Web 服務器上,但是還需要一些額外的配置,如果需要那些asp.net應用使用安全支援的話.當建立完畢asp.net Web 服務後工程後,visual studio.net,引用Microsoft.Web.Services.dll 程式集需要載入到該項目中.你也需要對SOAPExtensionTypes節點添加一個新的SOAP擴充.這可在 Web.config檔案中建立一個新的 add 節點.如下所示

<configuration>

<system.Web>

...

<WebServices>

<SOAPExtensionTypes>

<add type=

"Microsoft.Web.Services.WebServicesExtension,

Microsoft.Web.Services,

Version=1.0.0.0,

Culture=neutral,

PublicKeyToken=31bf3856ad364e35"

priority="1" group="0" />

</SOAPExtensionTypes>

</WebServices>

</system.Web>

</configuration>



type屬性的值必須不能包含任何間斷或者額外的空格.這個例子為了可讀性有額外的換行. 如果WebServices 和SOAPExtensionTypes 節點不存在,它們必須加到 Web.config檔案裡面.一種更容易的方法是完全WSE組態工具.一種visual studio的外掛程式,使用它您可以非常容易的配置使用WSE的Web service 項目.當然還有一下其他相關的配置必須手工配置.

當使用WSE進行編程時,你需要添加一個Microsoft.Web.Services 和一個System.security名字空間的引用.在用戶端和伺服器端的工程中,如果既在客戶請求和伺服器回應中加密了.在客戶部分你應該使用添加Web參考工具為基於WSE的Web service工程產生Web service代理.

給SOAP報文進行對稱式加密

接下來,讓我們再來看看如何用WSE來給SOAP報文使用對稱金鑰密碼編譯。下面的例子是基於一個啟用WSE的Web服務的,這個Web服務將返回一個SOAP回應報文,在該報文本文內包含了一些敏感性資料。這麼說,用戶端給服務發送一個簡單的Web服務要求,該請求將返回一個由三元 DES對稱式加密演算法(使用了一個共用密鑰和一個初始向量,IV)加密過的XML文檔,當用戶端收到了加密後的回應資訊後,SecurityInputFilter將調用一個在用戶端的解密密鑰提供者,來訪問用戶端上相同的共用密鑰,以此來對報文體進行解密,這個解密密鑰提供者必須由你來編寫,並且提供一個用於同步共用密鑰的方法。這些例子假設雙方都知道密鑰,並且我們所要做的,僅僅是提供密鑰的名字,以此作為一個暗示,給對方知道我們用的是哪個祕密金鑰加密的資訊。

雙方之間管理、同步和和對密鑰保密的時候一定要多加小心。有個解決方案使用了一個分布式密鑰機制,例如Kerberos。但從WSE的1.0版本開始,WSE就不再繼續支援Kerberos了。


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。