傳統 SSL/TLS 僅提供點對點傳輸層安全。Web Services 採用多跳 SOAP 消息路由,中介節點需檢查/轉發消息,傳輸層安全在中介點終止,**無法提供端到端的消息級完整性、機密性與身份傳播**。WS-Security 等規範正是為填補此空白而生。
| 規範 | 核心作用 | 關鍵技術 |
|---|---|---|
| WS-Security | SOAP 消息級安全基石 | 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 |
<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>
WS-Trust 定義 STS:客戶憑證據 (用戶名/證書/SAML) 請求 STS 簽發新 Token (如 SAML 2.0 Bearer),目標服務信任 STS 簽名即接受 Token。WS-Federation 規範跨組織身份聯盟:被動模式 (瀏覽器重定向) + 主動模式 (SOAP/WS-Trust),支持 Home Realm Discovery 引導用戶選擇 IdP。
發布 API 僅允許授權用戶修改 `businessEntity`/`tModel`。每個 Operator Site 維護授權列表,創建者擁有修改刪除權。公共 UDDI 需滿足最低安全協議 (簽名、加密、訪問控制)。
由 Fujitsu、Hitachi、NEC、Oracle、Sonic、Sun 共同推進。基於 SOAP,提供:ExactlyOnce 交付保證、重複消息檢測、消息排序、確認機制 (Ack)。與安全層正交,可組合使用。
| 層級 | 技術 | 保護範圍 | 局限 |
|---|---|---|---|
| 傳輸層 | SSL/TLS, IPSec | 點對點鏈路加密、服務器認證 | 中介點可見明文,無端到端保護 |
| 消息層 | WS-Security (XML Sig/Enc) | 端到端完整性/機密性、身份傳播 | 性能開銷大,需鑰管理 |
| 應用層 | SAML/XACML/WS-Policy | 業務級授權、策略驅動配置 | 依賴下層提供可信身份 |
企業級 Web Services 安全需構建「傳輸層加密 + 消息層簽名加密 + 應用層授權」纵深防禦體系,WS-Security 系列規範提供了互操作的標準化基石。