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

Java Web 服務性能深度剖析:WS-Security 巨大開銷與 WS-SecureConversation 優化策略

     編輯:Java 相關知識

WS-Security 基於 XML 加密/簽名標準,提供機密性、完整性、真實性等全方位安全,互操作性優異。但其性能代價高昂。本文通過實測量化 WS-Security 處理開銷與訊息膨脹,對比 SSL 與 WS-SecureConversation,並給出選型指導與優化建議。

測試環境與基準應用

  • 硬體:Athlon X2 5400+、4GB RAM、Mandriva 64-bit Linux。
  • 軟體:Sun JVM 1.6.0_13 32-bit、Tomcat 6.0.20 (Server 1024MB Heap)、Client 512MB Heap。
  • 框架:Axis2 1.5 + 最新 Rampart 夜間構建版。
  • 應用:地震數據檢索服務 (93,000 條記錄內存索引)。請求指定範圍,返回分組結果。兩測試序列:
    • 小訊息:1,000 請求,僅 826 條匹配。
    • 大訊息:100 請求,176,745 條匹配。

六大安全配置實測對比

配置說明
plain無安全
sslHTTPS (TLS)
usernameWS-Security 純文本 UsernameToken
signWS-Security 主體/Header 簽名 + Timestamp
encrWS-Security 主體加密
signencr簽名 + 加密 + Timestamp

核心發現 (相對 plain 倍數):

  • SSL:性能接近 plain (小訊息 +80%,大訊息 +20%)。
  • UsernameToken:小訊息比 SSL 慢數倍,大訊息更甚 (主要開銷在 DOM 轉換)。
  • 簽名/加密:計算密集型,signencr 達 plain 21 倍 耗時。

測試時間比較

性能瓶頸深度解析

  1. DOM 轉換開銷:Rampart 當前實現將所有訊息轉為 DOM (即使無安全處理)。UsernameToken 測試中 DOM 創建佔大頭,大訊息下與實際加密耗時相当。
  2. XML 規範化:簽名需將 XML 轉為規範格式,DOM 模型最易實現,但轉換成本高。
  3. 加密/摘要計算:非對稱加密 (證書) 計算密集,為必然開銷。

Rampart 1.5 計劃修復 DOM 問題,可改善 UsernameToken,但簽名/加密核心開銷難大幅降低。

訊息大小膨脹分析

訊息大小比較

  • UsernameToken 僅增大請求。
  • 簽名/加密同時增大請求/回應。
  • Header 開銷固定,小訊息相對影響劇烈。
  • Base64 編碼帶來額外填充開銷。

WS-SecureConversation:會話機制優化

基於 WS-Security/WS-Trust,建立安全會話令牌 (SCT),後續訊息使用對稱金鑰加密/簽名,避免重複非對稱運算。

  • 測試配置:僅加密主體,對比 encr (證書非對稱加密)。
  • 小訊息:速度近 2 倍 (非對稱開銷佔比大)。
  • 大訊息:提升 18% (對稱加密主體成主導)。

WS-SecureConversation 時間比較

額外開銷:初始 Token 交換需 2-3 輪額外請求/回應 (RST/RSTR)。

何時選用 WS-Security vs SSL?

需求推薦方案理由
點對點機密性/完整性,單一服務器直連處理SSL (HTTPS)性能近無安全,標準成熟,部署簡單
多跳傳遞,中間系統不可信,需端到端機密性WS-Security 加密SSL 僅保護單跳,中間節點可見明文
需不可抵賴真實性、審計追蹤WS-Security 簽名SSL 僅連接建立時驗證,無法事後證明具體訊息來源
長會話、高頻小訊息交換WS-SecureConversation會話令牌大幅降低非對稱運算開銷
需傳遞 SAML/UsernameToken 等標準安全令牌WS-Security標準化互操作優於自建方案

降低 WS-Security 成本的實戰策略

  1. 避免疊加:勿同時啟用 SSL + WS-Security 全開,按需選擇單一機制。
  2. 細粒度策略:僅對敏感操作/訊息應用安全 (參考前文)。
  3. 採用 WS-SecureConversation:長會話、小訊息場景優先。
  4. 硬體加速:XML Gateway 卸載加密/簽名,但需評估安全邊界與實際增益。
  5. 評估業務量:低頻服務 (如每小時數十請求) 性能影響可忽略,無需過度優化。

結語

WS-Security 性能成本顯著 (簽名加密達 20x 開銷),SSL 點對點加密多數場景更優。但涉及多跳、審計、標準令牌傳遞等高級需求時,WS-Security/WS-SecureConversation 成為必要投資。理解開銷來源 (DOM、規範化、非對稱運算),採取細粒度策略、會話優化、硬體卸載等組合拳,可在安全與性能間取得平衡。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved