共用方式為


全息遠端安全連線概述

如果你是全息遠端服務的新手,或許想 閱讀我們的概述

注意事項

此指引專指 HoloLens 2 及運行 Windows Mixed Reality 的 Windows 電腦上的全息遠端通訊。

本頁將介紹全息遠端通訊的網路安全。 您可以找到以下資訊:

  • 全息遠端通訊背景下的安全性以及你可能需要它的理由
  • 根據不同使用情境建議的措施

全息遠端安全

全息遠端通訊透過網路交換資訊。 若未採取安全措施,同一網路上的對手可能會破壞通訊完整性或取得機密資訊。

Windows 商店中的範例應用程式和全息遠端播放播放器都已關閉安全。 這樣做會讓樣本更容易理解。 這也有助於你更快開始開發。

對於現場測試或生產環境,我們強烈建議在您的全息遠端解決方案中啟用安全性。

全息遠端的安全,只要根據你的使用情境正確設定,能帶來以下保障:

  • 真實性: 玩家與遠端應用程式都能確定對方身份即為他們所聲稱的身份
  • 保密性: 第三方無法讀取玩家與遠端應用程式間交換的資訊
  • 完整性: 玩家與遠端可偵測通訊中的任何變更

重要事項

要使用安全功能,你需要同時實作自訂播放器和使用 Windows Mixed RealityOpenXR API 的自訂遠端應用程式。

注意事項

2.4.0 版本開始,可以使用 OpenXR API 建立遠端應用程式。 關於如何在 OpenXR 環境中建立安全連線的概述,可以 在這裡找到。

安全實施的規劃

當你啟用全息遠端通訊的安全性時,遠端通訊函式庫會自動啟用加密與完整性檢查,針對所有網路交換的資料。

不過要確保正確的認證需要額外工作。 你需要做什麼,取決於你的使用情境,接下來的部分會著重於釐清必要的步驟。

重要事項

本文只能提供一般性的指引。 若感到不確定,建議諮詢資安專家,針對你的使用情境提供具體指導。

先說一些術語:描述網路連線時,會用 客戶端伺服器 這兩個詞。 伺服器是負責監聽已知端點位址的連線,而用戶端則是連接伺服器端點的一方。

注意事項

客戶端和伺服器的角色並不取決於應用程式是作為播放器還是遠端。 雖然範例中玩家扮演伺服器角色,但如果更符合你的使用情境,角色反轉也很容易。

規劃伺服器對用戶端的認證

伺服器使用數位憑證向用戶端證明其身份。 用戶端會在連線握手階段驗證伺服器的憑證。 如果客戶端不信任伺服器,這時就會停止連線。

客戶端如何驗證伺服器憑證,以及可以使用哪些類型的伺服器憑證,取決於你的使用情境。

使用情境一: 伺服器主機名稱沒有固定,或者伺服器根本沒有用主機名稱來命名。

在這種情況下,發行伺服器主機名稱憑證既不實際 (也不) 可能。 我們建議您改為驗證證書的指紋。 就像人類指紋一樣,拇指指紋能唯一識別一張證書。

向客戶傳達指紋在帶外非常重要。 這表示你不能用同一個網路連線傳送,這段網路是用來遠端通訊的。 你可以手動輸入到客戶端設定中,或讓客戶掃描 QR 碼。

使用情境二: 伺服器可透過穩定的主機名稱被存取。

在這個使用情境下,伺服器有特定的主機名稱,你知道這個名稱不太可能改變。 接著你可以使用伺服器主機名稱發出的憑證。 信任是根據主機名稱和憑證的信任鏈建立的。

如果你選擇這個選項,客戶端需要事先知道伺服器的主機名稱和根憑證。

規劃客戶端對伺服器的認證

用戶端使用自由形式令牌對伺服器進行認證。 這個代幣應該包含什麼,還是要看你的使用情境:

使用情境一: 你只需要驗證客戶端應用程式的身份。

在此使用情境下,共享秘密即可足夠。 這個秘密一定複雜到無法被猜測。

一個好的共享秘密是隨機的 GUID,該 GUID 會被手動輸入到伺服器和用戶端的設定中。 要建立一個,例如你可以在 PowerShell 裡使用這個 New-Guid 指令。

確保這個共享秘密絕不會透過不安全的管道傳達。 遠端函式庫確保共享秘密始終以加密方式傳送,且只傳送給受信任的對等端。

使用情境二: 你還需要驗證客戶端應用程式的使用者身份。

共享秘密不足以涵蓋此使用情境。 相反地,你可以使用由身份提供者建立的憑證。 使用身份提供者的認證工作流程會是這樣的:

  • 用戶端會向身份提供者授權並請求一個令牌
  • 身份提供者會產生一個令牌並傳送給用戶端
  • 用戶端透過全息遙距將此令牌傳送給伺服器
  • 伺服器會驗證客戶端的憑證與身份提供者的關係

身份提供者的一個例子是 Microsoft 身分識別平台

就像前面的使用案例一樣,確保這些令牌不是透過不安全的管道傳送或以其他方式暴露。

另請參閱