首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Web Services 安全機制深度解析:WS-Security、XML 加密簽名、SAML、XACML 與信任體系

     編輯:Java 相關知識

前言:為什麼需要專門的 WS 安全?

傳統 SSL/TLS 僅提供點對點傳輸層安全。Web Services 採用多跳 SOAP 消息路由,中介節點需檢查/轉發消息,傳輸層安全在中介點終止,**無法提供端到端的消息級完整性、機密性與身份傳播**。WS-Security 等規範正是為填補此空白而生。

核心規範族譜 (OASIS WSS TC / WS-I)

規範核心作用關鍵技術
WS-SecuritySOAP 消息級安全基石Security Header、UsernameToken、X.509/Kerberos BinarySecurityToken、XML Signature、XML Encryption、Timestamp/Nonce 防重放
WS-Policy聲明端點安全能力與要求策略斷言:加密算法、Token 類型、隱私規則
WS-Trust跨域信任與 Token 發放/驗證Security Token Service (STS)、RST/RSTR、委派信任
WS-SecureConversation會話級安全上下文與派生密鑰SCT (Security Context Token)、密鑰派生、會話管理
WS-Federation異構身份聯盟 (Kerberos + PKI)被動/主動請求者模式、Home Realm Discovery
WS-Authorization / XACML細粒度授權決策SAML 斷言作為決策輸入、XACML 策略語言
SAML認證/授權/屬性斷言交換格式Assertion、Protocol、Binding、Profile
XML Signature / Encryption數據級完整性與機密性Canonicalization、Transform、KeyInfo、EncryptedData/Key

WS-Security 深度剖析

1. Security Header 結構

<wsse:Security>
  <wsse:BinarySecurityToken ValueType="X509v3" EncodingType="Base64Binary">MIIC...</wsse:BinarySecurityToken>
  <ds:Signature> ... </ds:Signature>        <!-- 簽名 Body/Headers -->
  <xenc:EncryptedKey> ... </xenc:EncryptedKey> <!-- 加密對稱鑰 -->
  <xenc:EncryptedData> ... </xenc:EncryptedData> <!-- 加密 Body 部分 -->
  <wsu:Timestamp> ... </wsu:Timestamp>     <!-- 防重放 -->
</wsse:Security>

2. 三大核心機制

  • 完整性:對 `` 及關鍵 Header 簽名 (RSA-SHA256),接收方驗證簽名確認未篡改。
  • 機密性:生成隨機對稱鑰加密敏感數據 (AES-256),對稱鑰用接收方公鑰加密 (RSA-OAEP) 放入 ``。
  • 認證:`` (Digest/Nonce)、`` (X.509/Kerberos)、SAML Assertion。

信任模型與聯盟身份

WS-Trust 定義 STS:客戶憑證據 (用戶名/證書/SAML) 請求 STS 簽發新 Token (如 SAML 2.0 Bearer),目標服務信任 STS 簽名即接受 Token。WS-Federation 規範跨組織身份聯盟:被動模式 (瀏覽器重定向) + 主動模式 (SOAP/WS-Trust),支持 Home Realm Discovery 引導用戶選擇 IdP。

授權體系:SAML + XACML

  1. PEP (Policy Enforcement Point) 攔截請求,構造 XACML Request (Subject/Resource/Action/Environment)。
  2. PDP (Policy Decision Point) 根據 XACML Policy (Rule/Policy/PolicySet) 評估,返回 Permit/Deny/Indeterminate。
  3. SAML Assertion 提供主體屬性 (角色、組織、認證等級) 作為決策輸入。

UDDI 安全註冊

發布 API 僅允許授權用戶修改 `businessEntity`/`tModel`。每個 Operator Site 維護授權列表,創建者擁有修改刪除權。公共 UDDI 需滿足最低安全協議 (簽名、加密、訪問控制)。

WS-Reliability 可靠傳輸

由 Fujitsu、Hitachi、NEC、Oracle、Sonic、Sun 共同推進。基於 SOAP,提供:ExactlyOnce 交付保證、重複消息檢測、消息排序、確認機制 (Ack)。與安全層正交,可組合使用。

總結:分層 defence-in-depth

層級技術保護範圍局限
傳輸層SSL/TLS, IPSec點對點鏈路加密、服務器認證中介點可見明文,無端到端保護
消息層WS-Security (XML Sig/Enc)端到端完整性/機密性、身份傳播性能開銷大,需鑰管理
應用層SAML/XACML/WS-Policy業務級授權、策略驅動配置依賴下層提供可信身份
企業級 Web Services 安全需構建「傳輸層加密 + 消息層簽名加密 + 應用層授權」纵深防禦體系,WS-Security 系列規範提供了互操作的標準化基石。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved