監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

XML Web Service 安全性

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

XML Web Service 安全性


 
摘要:概述 Microsoft XML Web Service 和未來開發(fā)的努力方向。
  
當(dāng)我們談及 XML Web Service 時,人們最關(guān)心的問題就是其安全性。

XML Web Service 安全嗎?

鑒于安全性涉及諸多方面(例如身份驗證和授權(quán)、數(shù)據(jù)隱私和完整性等),以及 SOAP 規(guī)范中根本沒有提及安全性這一事實,我們不難理解人們?yōu)槭裁凑J為答案是否定的。但是,請不要低估了 Microsoft? XML Web Service。如今,您可以采取許多措施來創(chuàng)建安全的 XML Web Service。

要解決 XML Web Service 的安全性問題,我們需要考慮以下問題:

要達到什么樣的目的?- 僅允許授權(quán)用戶訪問 XML Web Service;禁止他人未經(jīng)授權(quán)擅自查看消息等。
如何達到預(yù)期效果?- 網(wǎng)絡(luò)、傳輸層、OS、服務(wù)或應(yīng)用。

解決方案中需要什么級別的互操作性?- 局部或全局。

那么,我們?nèi)绾未_保當(dāng)今 XML Web Service 的安全呢?答案就是:先回答上述問題,然后應(yīng)用保護任何其他 Web 應(yīng)用程序時所使用的相同技術(shù),即:

保護連接安全

對交互操作進行身份驗證和授權(quán)

正如您下面將要了解到的,這些技術(shù)提供了多種選擇,您可以將這些選擇結(jié)合起來以獲得額外的效果。例如,可以將防火墻與 XML Web Service 一起使用,從而根據(jù)客戶端的身份以及為他們所建立的相應(yīng)規(guī)則來限制對某些功能(方法)的訪問。

讓我們先來回顧一下保護現(xiàn)有基礎(chǔ)結(jié)構(gòu)的各種選擇,了解它們的功能。

保護基礎(chǔ)結(jié)構(gòu)的安全

一個安全的 XML Web Service 的核心是安全基礎(chǔ)結(jié)構(gòu)。Microsoft 提供了廣泛的技術(shù),如果把這些技術(shù)與總體安全保護計劃結(jié)合起來,企業(yè)就可以有效地保護其 IT 結(jié)構(gòu)的安全。正確實施的規(guī)劃過程包括:

詳細了解潛在的環(huán)境危險(例如病毒、黑客和自然災(zāi)害)。

對與危險有關(guān)的安全漏洞的后果進行預(yù)先分析并制定對策。

在這種理解和分析的基礎(chǔ)上,創(chuàng)建一個精心規(guī)劃的實現(xiàn)策略,將安全保護措施應(yīng)用到企業(yè)網(wǎng)絡(luò)的各個方面。

保護連接安全

保護 XML Web Service 安全的最簡單的一種方法就是確保 XML Web Service 客戶端與服務(wù)器之間的連接安全。根據(jù)網(wǎng)絡(luò)的范圍和交互操作的活動配置文件,我們可以通過多種技術(shù)來達到這一目的。最流行也最廣泛使用的三種技術(shù)為:基于防火墻的規(guī)則、安全套接字層 (SSL) 和虛擬專用網(wǎng)絡(luò) (VPN)。

如果您確切知道哪些計算機需要訪問您的 XML Web Service,則可以使用防火墻規(guī)則將訪問限制在已知 IP 地址的計算機范圍內(nèi)。如果需要限制對專用網(wǎng)絡(luò)(例如公司的 LAN/WAN)中的計算機的訪問,并且不用擔(dān)心將消息內(nèi)容保留為秘密(加密),那么這種技術(shù)非常有用。防火墻(例如 Microsoft Internet Security and Acceleration [ISA] Server)可以提供先進的基于策略的規(guī)則,這些規(guī)則可以根據(jù)客戶端的原始位置或標(biāo)識,對不同的客戶端提供不同的限制。當(dāng)不同的客戶端訪問相同 XML Web Service 上的不同功能(方法)時,這種技術(shù)很有用。

安全套接字層可用于在非托管網(wǎng)絡(luò)(例如 Internet)上建立安全連接。SSL 可以對客戶端和服務(wù)器之間發(fā)送的消息進行加密和解密。通過加密數(shù)據(jù),您可以防止消息在傳送過程中被讀取。SSL 先對客戶端的消息進行加密,然后將其傳送到服務(wù)器。服務(wù)器接收到消息后,SSL 將對其進行解密并驗證消息是否來自正確的發(fā)送者(此過程稱為身份驗證)。服務(wù)器或者客戶端和服務(wù)器可能具有證書,這些證書用作身份驗證過程的一部分在連接加密的頂層提供身份驗證功能。雖然 SSL 是創(chuàng)建安全通信的一種非常有效的方法,但應(yīng)當(dāng)考慮其性能成本。Microsoft XML Web Service 既支持客戶端中的集成 SSL,也支持服務(wù)器中的集成 SSL。

虛擬專用網(wǎng)絡(luò)是專用網(wǎng)絡(luò)的擴展,它可以連接共享網(wǎng)絡(luò)或公共網(wǎng)絡(luò)(如 Internet)。VPN 使您可以在兩臺安全連接的計算機之間發(fā)送數(shù)據(jù)。VPN 與 SSL 相似,但 VPN 是一個長期的點對點連接。這使 VPN 可以高效安全地應(yīng)用于 XML Web Service,但要求建立長期的連接并保持運行才能達到這種效果。

身份驗證和授權(quán)

身份驗證:身份驗證就是驗證標(biāo)識的過程,即驗證某人(或某物)與其聲稱的人(或物)是否一致。該人或物稱為“當(dāng)事者”。身份驗證要求證據(jù),稱為“憑據(jù)”。例如,客戶端應(yīng)用程序可以將密碼用作憑據(jù)。如果客戶端應(yīng)用程序提供正確的憑據(jù),則認為它與所聲稱的人或物一致。

授權(quán):完成對當(dāng)事者標(biāo)識的身份驗證后,便可以進行授權(quán)了。服務(wù)器通過檢查有關(guān)當(dāng)事者的某些訪問控制信息(例如訪問控制列表 [ACL])來確定訪問權(quán)限。客戶端可能具有不同的訪問級別。例如,某些客戶端可以完全訪問 XML Web Service;而其他客戶端則只能訪問某些操作。某些客戶端可以完全訪問所有數(shù)據(jù),某些客戶端只能訪問數(shù)據(jù)的子集,而某些客戶端只能進行只讀訪問。

在XML Web Service 中實現(xiàn)身份驗證的一個簡單而直接的方法是,利用信息交換所使用的協(xié)議的身份驗證功能。對于大多數(shù) XML Web Service 來說,這意味著利用 HTTP 的身份驗證功能。將 Microsoft Internet Information Server (IIS) 和 ISA 服務(wù)器與 Windows 2000 服務(wù)器配合使用,能為 HTTP 提供多種身份驗證機制的集成支持。

基本身份驗證 - 使用客戶端的非安全或半安全標(biāo)識,因為用戶名和密碼是以 base64 編碼文本發(fā)送的,而該文本易于解碼。如果憑據(jù)能與有效的用戶帳戶匹配,IIS 將授予客戶端訪問 XML Web Service 的權(quán)限。
SSL 上的基本身份驗證 - 與基本身份驗證相同,唯一區(qū)別在于通信通道被加密,從而保護了用戶名和密碼。對 Internet 方案而言,這是一個很好的選擇,但使用 SSL 會對性能產(chǎn)生很大影響。

簡要身份驗證 - 使用散列以安全方式傳送客戶端憑據(jù)。但是,這種方法可能不會受到用于構(gòu)建 XML Web Service 客戶端的開發(fā)人員工具的廣泛支持。如果憑據(jù)能與有效的用戶帳戶匹配,IIS 將授予客戶端訪問 XML Web Service 的權(quán)限。

集成 Windows 身份驗證 - 主要用于 Intranet 方案。使用 NTLM 或 Kerberos??蛻舳吮仨殞儆诜?wù)器所在的域,或者屬于服務(wù)器域的托管域。如果憑據(jù)能與有效的用戶帳戶匹配,IIS 將授予客戶端訪問 XML Web Service 的權(quán)限。

SSL 上的客戶端證書 - 要求每個客戶端獲取一個證書。證書被映射至用戶帳戶,IIS 將使用這些證書來授權(quán)對 XML Web Service 的訪問。盡管目前數(shù)字證書尚未廣泛使用,但這仍然不失為 Internet 方案的一種可行選擇。這種方法可能不會受到用于構(gòu)建 XML Web Service 客戶端的開發(fā)人員工具的廣泛支持。只能通過 SSL 連接使用這種方法,因此性能可能是一個需要考慮的問題。

從 XML Web Service 實施者的角度來看,使用上述任何一種身份驗證機制都有一個好處,即,無需在 XML Web Service 中進行代碼更改,因為在調(diào)用 XML Web Service 之前,IIS/ISA 服務(wù)器將執(zhí)行所有的身份驗證和 ACL 授權(quán)檢查。但是,在執(zhí)行客戶端時,還需要完成其他一些工作??蛻舳藨?yīng)用程序需要響應(yīng)服務(wù)器的身份驗證憑據(jù)請求。

在 XML Web Service 中進行身份驗證的其他方法包括:使用第三方服務(wù)(例如 Microsoft? .NET Passport 中的服務(wù)),使用 Microsoft ASP.NET 的會話功能,或者創(chuàng)建自定義身份驗證方法。

下一步:互操作性

您可能會發(fā)現(xiàn),如今,用于 Web 應(yīng)用程序安全保護的標(biāo)準(zhǔn)技術(shù)可以單獨使用或組合使用,以建立安全的 XML Web Service。這些技術(shù)建立在豐富的經(jīng)驗基礎(chǔ)之上,并且非常有效。不過,它們并沒有在 XML Web Service 體系結(jié)構(gòu)中提供集成解決方案。隨著 XML Web Service 方案日益復(fù)雜(例如跨托管邊界以及分布于多個系統(tǒng)或企業(yè)中),XML Web Service 實施者需要創(chuàng)建有效但并不提供普遍互操作性的自定義解決方案。

為滿足這些需要并增強 XML Web Service 的互操作性,Microsoft 及其合作伙伴正在制定一套安全規(guī)范。該規(guī)范建立于 SOAP 規(guī)范的擴展性機制之上,提供集成至 XML Web Service 結(jié)構(gòu)中的增強型安全保護功能。

這套安全規(guī)范的核心是 XML Web Service 安全語言 (WS-Security),它為 SOAP 消息提供了三種增強功能:憑據(jù)傳送、消息集成和消息保密。這些功能自身不能提供完整的安全保護解決方案;但 WS-Security 是一個構(gòu)建塊,它可以與基礎(chǔ)結(jié)構(gòu)和其他 XML Web Service 協(xié)議結(jié)合使用,以滿足各種應(yīng)用程序的安全保護要求。Microsoft Global XML Web Service 體系結(jié)構(gòu)是 WS-Security 和相關(guān)規(guī)范的主要內(nèi)容,它為 XML Web Service 基礎(chǔ)結(jié)構(gòu)的發(fā)展提供框架。

發(fā)布:2007-03-25 13:22    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
石家莊OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢