国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

利用WSE 加密SOAP報文(3)

2024-07-21 02:21:40
字體:
來源:轉載
供稿:網友
菜鳥學堂:
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了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东海县| 靖西县| 临沧市| 军事| 溧阳市| 临安市| 新余市| 元谋县| 会同县| 西青区| 灵璧县| 临颍县| 廉江市| 云林县| 永嘉县| 怀来县| 永登县| 平山县| 两当县| 宁陕县| 荆州市| 武义县| 龙南县| 勃利县| 江川县| 建德市| 花垣县| 板桥市| 青铜峡市| 周至县| 璧山县| 连南| 弥渡县| 彭州市| 阿图什市| 舞钢市| 额济纳旗| 香港| 通辽市| 甘泉县| 朝阳市|