2020年10月14日 星期三

WSS(Web Service Security)協議

WebSocket協議是html5的一種通信協議,該協議兼容我們常用的瀏覽器。例如Chrome、 Firefox、IE等。它可以使客戶端和服務端雙向數據傳輸更加簡單快捷,並且在TCP連接進行一次握手後,就可以持久性連接,同時允許服務端對客戶端推送數據。外加傳統模式的協議一般HTTP請求可能會包含較長的頭部,但真正有效的可能只有小部分,從而就佔用了很多資源和帶寬。因此WebSocket協議不僅可以實時通訊,支持擴展;也可以壓縮節省服務器資源和帶寬。


WS協議和WSS協議兩個均是WebSocket協議的SCHEM,兩者一個是非安全的,一個是安全的。也是統一的資源標誌符。就好比HTTP協議和HTTPS協議的差別。非安全的沒有證書,安全的需要SSL證書。 (SSL是Netscape所研發,用來保障網絡中數據傳輸的安全性,主要是運用數據加密的技術,能夠避免數據在傳輸過程被不被竊取或者監聽。)其中WSS表示在TLS之上的WebSocket。 WS一般默認是80端口,而WSS默認是443端口,大多數網站用的就是80和433端口。 (在高防防護過程中,80和433端口的網站是需要備案才可以接入國內的。)當然網站也會有別的端口,這種如果做高防是方案是可以用海外高防的。 WS和WSS的體現形式分別是TCP+WS AS WS ,TCP+TLS+WS AS WS。服務器網址就是 URL。


WebSocket協議的特點:建立在TCP 協議之上,服務端實現容易;與HTTP 協議有良好的兼容性,握手時不容易被屏蔽,可以通過各種HTTP 代理服務器;數據輕量,實時通訊;可以發送文本和二進制數據。不限制同源,客戶端可以與任意服務器端進行通訊。因此WebSocket協議的出現,為很多人解決了關於擴展以及兼容性協議的煩惱問題。

Web Service 可以透過網路以 HTTP 傳送 SOAP 訊息封包的方式提供跨平台、跨語言的系統整合。在一般的使用情境中,Web Service 提供者會在 UDDI 註冊其服務,並使用 WSDL 描述 Web Service 的呼叫使用細節。而用戶端則從 UDDI 尋找所需的 Web Service,將 SOAP 訊息封包發送到佈署在 URI 資源所在的服務端點(即 Web Service),經過相關邏輯處理之後,Web Service 會以 SOAP 訊息封包回應給用戶端處理結果或者錯誤訊息。


SOAP

SOAP 是一個協定規範,定義傳遞 XML 資料的方法,也定義了使用 HTTP 作為底層通訊協定時執行遠端呼叫(RPC)的方法。

UDDI(Universal Description, Discovery and Integration Service)

UDDI 是提供用戶端在網路上動態尋找其他 Web Service 的機制,商務處理可以使用 UDDI 介面動態的連接到外部合作者所提供的服務,我們也可以把它想像成商業應用程式上的 DNS 服務,而 UDDI 的註冊分為兩種:一種是要發佈服務的客戶,另一種則是想要取得服務的客戶。

WSDL

WSDL 是一種 Web 服務定義語言,WSDL 為服務提供者提供描述在不同協定或編碼方式上呼叫 Web Service 的方法,簡單的說,WSDL 就是用來描述一個 Web Service 能做什麼?位置在哪?如何呼叫?

WS-Security

協議內容包含如何在 Web Service 的 SOAP 訊息層級保證其完整性和機密性的規約。WSS 協議包括 SAML、Kerberos 和認證憑證格式(如 X.509)的詳細使用規範。WS-Security 描述了如何將簽章和加密標頭(Header)加入 SOAP 訊息。包括如何在 SOAP 訊息中加入安全字串(token)的機制,不限純文字也包括二進制的安全字串,例如 X.509 憑證和 Kerberos 門票(ticket)。

WS-Security 將安全特性放入 SOAP 訊息的標頭中,在應用層作處理。這樣的協議保證了端到端的安全,補足了僅使用 SSL 或 IPSec 確保點對點傳輸安全的不足。下圖說明了 WS-Security 在既有的 SOAP 訊息封包所增加的安全性內容。



當 Web Service 的用戶端透過實作標準的 WS-Security,把安全性字串或簽章內容加到原本的 SOAP 訊息標頭,Web Service 即可取出這些安全性內容進行身份驗證、授權、訊息解密以及訊息完整性檢核等工作。

Reference

淺談 Web Service Security(WSS)

沒有留言:

張貼留言