確保 Web Service 安全

在確保 Web Service 的安全性,以及實現該特性的可用技術方面,我們會遇到諸多問題,這些問題構成了本文探討的主題。與互操作性有關的安全性問題,則是我們的另一個主題。此外,我們還將簡單闡述用以確保 Web Service 安全而開發的新標準,它們在未來將提供標準化安全服務。針對 Web Service 安全而提供的若干商用產品,也將是我們快速討論的內容。我們還將涉及到的內容包括:英特爾如何通過各項計劃,爲 Web Service 安全域獻力獻策。

本文需要讀者對 Web Service 體系結構、IIS 和 .NET 安全有一定程度的瞭解。

安全性基礎

應用安全解決方案需要解決與信息安全有關的各式各樣的安全性問題。在諸如 Web Service 這類分佈式客戶機服務器環境之下,當信息在各種開放式網絡基礎設施中傳輸時,越來越多的安全性問題都與信息安全有關,這類問題如下所述:

  • 保密性:確保聽到對話的任何第三方均無法讀取或解釋數據。
  • 完整性:爲接收方提供檢測原始消息或數據是否更改的能力,防止傳輸過程中有意或無意地更改數據。
  • 身份驗證:確保訪問信息的客戶或用戶是用戶本人。
  • 授權:確保客戶或用戶擁有訪問信息的權限。
  • 預防抵賴:確保客戶或用戶日後無法否認對信息的使用。
 
Web Service 體系結構
Web Service 體系結構在最常用的傳輸協議 HTTP 上使用 XML/SOAP,因此,它允許以純文本形式交換信息。但是第三方可以很輕鬆地截取並解釋這些信息。所以,提供安全性變得日益重要。

上述安全服務可通過使用 SOAP 安全性在傳輸層或應用層提供。這將導致在不同安全機制下,會存在一些差異,之所以出現上述情況,原因即在於,安全性問題突然開始與 Web Service 提供商的平臺性能存在關聯,同時這也會給互操作性帶來影響,如下文所述。

.NET 環境下的安全性

.NET 環境下的 Web Service 由 IIS 來提供,在該環境下,可以利用 IIS 的內置安全特性。

  • 支持 HTTP 的 SSL 能夠爲 HTTP 中傳輸的數據提供保密性和完整性。通過啓用客戶端 X.509 證書(在 SSL 協議中是否使用客戶端證書是可選的)可以提供預防抵賴服務。一旦啓用 SSL,通過這些連接發送的所有數據都將加密並使用簽名。
     
  • IIS 提供多種身份驗證機制:基本身份驗證、摘要式身份驗證、集成 Windows 身份驗證 (NTLM/Kerberos) 或 X.509 證書。對於提供 Web服務的特定目錄,可以啓用其中任何一種身份驗證機制,相應地客戶也可以提交相應證書,並通過 IIS 驗證。此外,需要修改 Web Service 中的 web.config 文件以指明需要使用“windows”身份驗證。同時,IIS 中需禁用匿名訪問。
     
  • 可使用 .NET 提供的“代碼訪問安全”機制提供身份驗證。本質上,在採用 Web Service 方式時,這種機制能夠提供調用 Web Service 的用戶的身份。在已經對用戶身份(由客戶根據 IIS 配置驗證機制來提供)進行檢索以後,您可以顯式地檢查是否已授權用戶訪問該 Web 方法。
     
Java 環境下的安全性

  • 對於 Java 環境中提供的 Web Service,您也可以啓用面向 HTTP 的 SSL。這也將爲通過 HTTP 傳輸的數據提供保密性和完整性。
     
  • 但是,此環境僅可採用基本身份驗證的身份驗證機制。這要求您向相應的 Web Service 器中添加相應的用戶名和密碼。
     
Web Service 相關安全標準

確保 Web Service 安全的另外一種方式是確保通過不夠安全的底層傳輸協議(例如 HTTP)傳輸的數據的安全。我們可以通過下面討論的各項技術實現這一點。

SOAP 是一種基於 XML 的簡單文本消息格式,用於生成 Web Service 請求和響應。SOAP 消息分爲兩部分:SOAP 消息頭和 SOAP 消息體。消息頭用於保存與請求有關的任何潛在的元數據,而消息體用於保存該消息包含的基本數據內容。

爲了提供消息保密功能,SOAP 消息體可包含加密消息數據,而消息頭可包含通過消息發送方的私鑰進行加密的會話密鑰。在接收端,使用發送方公鑰可提取會話密鑰,然後使用該會話密鑰解密並提取 SOAP 消息體中包含的數據。該過程還可以保證消息來自特定用戶,因爲只有該用戶才能訪問對會話密鑰進行加密的私鑰。

如欲瞭解有關 XML 加密的更多信息,請參閱 XML 加密語法和處理;如欲瞭解有關 XML 簽名的信息,請參閱 XML 簽名語法和處理

同樣,爲了提供消息完整性,可以生成 SOAP 消息體的消息摘要,並通過 SOAP 消息頭髮送。在接收端,接收方可以重新生成這些雜亂的消息作爲 SOAP 消息體,並與通過消息頭接收的摘要消息進行比較。如果這兩個值相互匹配,則可以確定消息沒有在傳輸過程中發生更改。

通過服務器端和客戶端上的 Web Service 堆棧提供的支持,可以完成這種基於 XML 的加密、簽名以及完整性檢查功能。隨着標準的日益成熟和廣爲接受,會有越來越多的工具包將支持這些標準。

另一種即將推出的標準是 SAML,它將在 Web Service 安全互操作中起到非常重要的作用。SAML 即安全聲明標記語言,它是一種基於 XML 的框架,可用於在截然不同的各種 Web 訪問管理和安全產品之間交換身份驗證和授權信息。通過使用 SAML,可以用 XML 文檔顯示安全信息,並安全地從一個應用傳送到另一應用。該標準已通過結構信息標準化促進組織(OASIS)進行了標準化。SAML 支持應用與不同廠商所提供的各種安全系統進行通信。SAML 定義了不依賴於廠商的 XML 數據格式,用於表示安全信息。因此,廠商 A 提供的軟件可以使用 SAML 生成用戶信息或訪問控制決策;廠商 B 提供的軟件則可以使用這些信息,而不會泄漏廠商 A 的專有算法或數據格式。如欲瞭解更多信息,請訪問
http://www.oasis-open.org/committees/security/
用於 Web Service 安全的商用產品
某些獨立廠商已經開發各種旨在爲 Web Service 提供身份驗證和授權服務的產品。這樣,開發人員就無需再在每個不同的 Web Service 中都嵌入身份驗證和授權處理代碼。諸如 Negerity (http://www.netegrity.com) 提供的 Netegrity TransactionMinder產品可提供以行業標準(如我們之前討論的 XML 簽名和 SAML)爲基礎的基於策略的身份驗證、授權和審計服務。這些產品允許使用現有用戶目錄以及簡單的用戶和策略管理。請注意,這些產品傳輸過程中的數據加密仍取決於傳輸層安全。
英特爾和 Web Service 安全
英特爾一直積極促進基礎結構的研發,進而推進 Web Service 的應用。由於 Web Service 安全是最重要的構建模塊之一,只有將它確定下來,企業才能廣泛採用 Web Service ,因此,英特爾長期以來一直致力於下列事項:

  • 推動標準:英特爾是 OASIS WS-Security 技術委員會的成員。OASIS 是非贏利的全球性聯盟,它一直在推動電子商務標準的開發、融合和採用。WS-Security 定義了一套 SOAP 擴展,可以在 Web Service 應用中實現完整性和保密性,從而爲聯盟、策略和信任等高級目標打下堅實基礎。
     
  • 新一代處理器:爲啓用 Web Service 安全而採用的某些新技術(如 XML 簽名),與某些傳統技術相比,更耗資源。資源需求的不斷增大必將成爲企業環境採用 Web Service 的一塊絆腳石。但是新一代的 IA64 處理器針對此類技術提供了更出色的性能。同時,採用高級 800 MHz 系統總線和超線程(HT)技術的英特爾® 奔騰® 4 處理器,提供了更能滿足 Web Service 安全解決方案不斷增長的需求的性能。
     
  • Web Service 優化工具:由於上文提及的各種 Web Service 安全技術都將佔用處理器大量資源,因此 Web Service 優化顯得更加重要,英特爾已開發出各種工具,支持 Web Service 優化。Vtune™ 企業分析器能夠測量和改進 n 層 Microsoft* DNA* 和 .NET* 應用的深層次代碼級別性能。此外,Vtune™ 企業分析器可通過 Web Service 爲傳統應用提供支持,從而開發人員只需使用一種工具即可分析混合應用,藉助該工具,您還可以查看 HTTP、DCOM、Microsoft* SQL 和 SOAP 響應時間統計數據,並可使用這些信息優化 Web Service 應用。
    如欲瞭解有關用於 .Net 版 Web 應用的英特爾® VTune™ 可視化性能分析器的更多信息,請訪問 http://www3.intel.com/cd/software/products/apac/zho/vtune/index.htm
     
  • 英特爾的 Web Service :將 Web Service 加入到 EAI/B2Bi 策略
    英特爾信息技術 (IT) 事業部意識到: Web Service 是一項非常有前景的新技術,它將提升英特爾公司的價值。英特爾計劃將 Web Service 集成到其企業應用集成(EAI)及其供應鏈中,統稱爲企業到企業的集成(B2Bi)。英特爾還投資研發其它面向 EAI 和 B2Bi 的技術。
     
  • 支持第三方產品:英特爾已投資多家獨立公司以支持 Web Service 安全解決方案。如總部位於都柏林的獨立軟件廠商 Vordel,該公司已研發出一種實施開放標準的產品,可爲 Web Service 提供最基本的安全和帳戶管理功能。通過提供安全和身份驗證,Vordel 使各個公司能夠安全、穩定地使用 Web Service 。作爲一家英特爾戰略投資組合公司,Vordel 已經優化了其解決方案,可充分利用英特爾最先進的企業級處理器產品——英特爾® 至強® 處理器和英特爾® 安騰® 處理器。
    VordelSecure 2.0 爲企業提供高性能、可擴充的企業安全管理解決方案,可確保其 XML 通信的安全。通過使用基於代理的可擴充分佈式體系結構,可部署諸如 WS-Security 和 SAML等 XML 安全標準。
     
  • 諮詢: 英特爾® 解決方案服務 (ISS) 是一家全球諮詢和服務研發機構,專業提供分佈式解決方案和數據中心基礎設施服務。Web Service Practice 是 ISS 的一個組成部分,用以爲 Web Service 安全提供設計和部署支持。歡迎登錄英特爾® 解決方案服務,瞭解更多信息。
結論
現在有許多技術用於 Web Service 安全,其中許多技術都在一定程度上依賴於平臺。正在開發的新標準將允許不同平臺和開發工具套件之間進行更多的互操作。儘管存在上述問題,我們仍然能夠通過可靠的方式確保 Web Service 的安全,使其能夠向外部提供傳統的功能,從而提高工作效率,並實現更多功能。

未來展望

本系列的下一篇文章將討論關於 Web Service 的其他話題,例如部署和性能管理。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章