瞭解 WS-SecureConversation 如何能改善 Web 服務的安全效能
簡介:WS-Security 為 SOAP 訊息交換添加了企業級的安全特性,但卻有大量的效能損失。WS-Trust 構建於 WS-Security 基礎上,提供了一種交換安全性權杖的方式,WS-SecureConversation 構建於 WS-Security 和 WS-Trust 基礎上,改善了進行中的訊息交換的效能。Dennis Sosnoski 將繼續他的 Java Web 服務 專欄系列,本期文章將介紹 WS-Trust 和 WS-SecureConversation。
WS-Security 構建於成熟的密碼學以及 XML 加密及簽名的行業標準基礎上,為 Web 服務應用程式提供了一整套的安全特性。對於很多應用程式,WS-Security 的特性必不可少,但往往要以犧牲效能為代價。本系列之前的文章探討了常見的 WS-Security 配置是如何影響主要的開源 Java™ Web 服務堆棧(Apache Axis2、Metro 和 Apache CXF)的效能的。
WS-Security 之所以常常伴隨效能損失主要是因為大量使用了非對稱式加密。正如在 “Axis2 WS-Security 簽名和加密” 一文中討論的,非對稱式加密由於可處理密匙對,因此是一種很有用的工具。密匙對中的一個密匙被用來加密另一個密匙能夠解密的訊息。密匙對的所有者可以讓一個密匙公開可用以便任何人都能使用它來加密發至此所有者的訊息,並且還能解密來自此所有者的訊息(由此驗證寄件者的身份)。非對稱式加密的一個劣勢是與對稱式加密相比,它需要更大的密匙大小以及更多的處理負荷,因為對稱式加密基於的是只為此次交換中所涉各方所知的單個私密密匙。
WS-SecureConversation 是一種標準,允許對稱式加密被用於進行中的客戶機和伺服器之間的訊息交換,從而消除了非對稱式加密增加的負荷。為了保障對稱式加密所需的私密密匙資訊的安全交換,WS-SecureConversation 構建於 WS-Security 和另一種標準 WS-Trust 的基礎上。WS-Trust 本身基於的是 WS-Security,定義了對發出並處理安全性權杖的 Web 服務的介面。
WS-Trust
WS-Trust 綜合了兩個相關函數。第一個函數是為了支援對安全性權杖的處理 — 具體而言就是發出、更換以及取消安全性權杖。第二個函數是為了支援中介信任關係。這兩個函數看起來雖然不同,但它們之間是相互關聯的,都要求安全性權杖必須是可信的,並且信任也必須要以某種形式的令牌表示。
WS-Trust 的核心是一組用來發出、更換、取消以及驗證安全性權杖的訊息。這些訊息可以由客戶機通過調用一種稱為 Security Token Service(STS)的特定類型的 SOAP Web 服務進行交換。它們還可以以其他的方式傳遞(比如以對另外一個服務的請求的安全頭部的形式)。