Share via


如何保護連線和驗證要求 (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

這個主題概述 Windows 執行階段用來啟用 Windows 執行階段應用程式以保護連線的主要方法,並提供建立和使用安全網路連線所需的驗證認證。

技術

建立安全的通訊端連線

安全通訊端層 (SSL) 與較新的傳輸層安全性 (TLS) 是密碼編譯通訊協定,其設計目的在於提供網路通訊的驗證與加密。這些通訊協定的設計目的在於防止傳送和接收網路資料時遭到竊取和竄改。這些通訊協定使用用戶端伺服器模型以進行通訊協定交換。這些通訊協定也使用數位憑證與憑證授權單位,以驗證該伺服器是否為其本身所宣稱的伺服器。TLS 通訊協定記載於 IETF RFC 5246。較舊的 SSL 通訊協定是由 Netscape Communications 所記載。SSL 通常用來指這兩項通訊協定。

StreamSocket 物件可用來設定在用戶端與伺服器之間使用 SSL/TLS 進行通訊。對於 SSL/TLS 的支援受限於使用 StreamSocket 物件做為 SSL/TLS 交涉中的用戶端。收到在已建立的StreamSocket 上啟用 SSL/TLS 的連線時,SSL/TLS 目前無法在已建立 StreamSocket 的情況下由 StreamSocketListener 使用,因為並沒有為 StreamSocket.實作做為伺服器的 SSL/TLS 交涉。

如需如何建立 (或升級至) 連接網路服務之安全通訊端連線的範例,請參閱如何使用 TLS/SSL 保護通訊端連線

建立安全的 WebSocket 連線

如同傳統型的通訊端連線,在為 Windows 市集應用程式使用 Windows 8 中的 StreamWebSocketMessageWebSocket 功能時,也可以使用傳輸層安全性 (TLS)/安全通訊端層 (SSL) 加密 WebSocket 連線。 在大部分情況下,您會想使用安全的 WebSocket 連線。這將會增加連線成功的機率,因為許多 Proxy 都會拒絕未加密的 WebSocket 連線。

如需如何建立 (或升級至) 連線到網路服務的安全通訊端連線的範例,請參閱如何使用 TLS/SSL 保護 WebSocket 連線

除了 TLS/SSL 加密,伺服器可能還需要一個 Sec-WebSocket-Protocol 標頭值才能完成起始交握。由 StreamWebSocketInformation.ProtocolMessageWebSocketInformation.Protocol 屬性代表的這個值,指出連線的通訊協定版本,並可讓伺服器正確解譯正在開啟的交握和以後交換的資料。使用這個通訊協定資訊,如果伺服器在任何時間無法以安全的方式解譯連入資料,就可以關閉連線。

如果來自用戶端的起始要求不包含這個值,或提供的值不符合伺服器所期待,當發生 WebSocket 交握錯誤時,預期的值就會從伺服器傳送到用戶端。

提供驗證認證到 Web 服務

能讓 Windows 執行階段應用程式與安全 Web 服務互動的 Windows 執行階段網路 API,每一個都提供自己的方法來初始化用戶端,或是使用伺服器和 Proxy 驗證認證來設定要求標頭。使用指出使用者名稱、密碼以及使用這些認證之資源的 PasswordCredential 物件設定每個方法。下表提供這些 API 的對應:

WebSockets

Background Transfer

Syndication

AtomPub

 

相關主題

如何使用 TLS/SSL 保護通訊端連線

如何使用 TLS/SSL 保護 WebSocket 連線

連線到網路服務