Web 服務 - 安全性



安全性對於 Web 服務至關重要。但是,XML-RPC 和 SOAP 規範都沒有明確的安全或身份驗證要求。

Web 服務存在三個特定的安全問題:

  • 機密性
  • 身份驗證
  • 網路安全

機密性

如果客戶端向伺服器傳送 XML 請求,我們如何確保通訊保持機密?

答案在這裡:

  • XML-RPC 和 SOAP 主要執行在 HTTP 之上。
  • HTTP 支援安全套接字層 (SSL)。
  • 可以透過 SSL 對通訊進行加密。
  • SSL 是一項成熟的技術,並且已廣泛部署。

單個 Web 服務可能包含一系列應用程式。例如,一個大型服務可能會將三個其他應用程式的服務繫結在一起。在這種情況下,SSL 不夠;需要在服務路徑上的每個節點對訊息進行加密,並且每個節點都代表鏈中潛在的薄弱環節。目前,還沒有針對此問題的公認解決方案,但 W3C XML 加密標準是一個很有前景的解決方案。此標準為加密和解密整個 XML 文件或 XML 文件的部分內容提供了一個框架。您可以在 www.w3.org/Encryption 檢視。

身份驗證

如果客戶端連線到 Web 服務,我們如何識別使用者?使用者是否有權使用該服務?

可以考慮以下選項,但對於強大的身份驗證方案沒有明確的共識。

  • HTTP 包含對基本身份驗證和摘要身份驗證的內建支援,因此可以像目前保護 HTML 文件一樣保護服務。

  • SOAP 數字簽名 (SOAP-DSIG) 利用公鑰加密技術對 SOAP 訊息進行數字簽名。它使客戶端或伺服器能夠驗證另一方的身份。請在 www.w3.org/TR/SOAP-dsig 檢視。

  • 結構化資訊標準促進組織 (OASIS) 正在開發安全斷言標記語言 (SAML)。

網路安全

目前還沒有簡單的答案來解決這個問題,並且它一直是爭論的焦點。目前,如果您真的打算過濾掉 SOAP 或 XML-RPC 訊息,一種可能性是過濾掉所有將內容型別設定為 text/xml 的 HTTP POST 請求。

另一種方法是過濾 SOAPAction HTTP 標頭屬性。防火牆供應商目前也在開發專門用於過濾 Web 服務流量的工具。

廣告

© . All rights reserved.