Connection Encryption
概述
Photon Fusion擴展了Photon Realtime的現有加密系統,並支援Fusion客戶端和Fusion伺服器之間的端到端連線加密。此加強功能是對同儕節點和Photon Cloud之間已經支援的連線加密的補充。
Fusion加密系統以安全的方式處理連線交握的所有底層細節,從金鑰建立到金鑰交換,以及透過網路發送的封包的實際加密/解密。雖然這會產生最小的處理成本,但它確保只有預期的同儕節點可以在遊戲階段中解析更新。
下圖說明了每個Fusion同儕節點可以維護多種連線類型:
Cloud Connection
:這是本機同儕節點和Photon Cloud之間的連線。它是強制性的,主要用於對戰配對,必要時可以作為中繼。所有遊戲模式(Single player
除外)都至少保持這種連線類型。Direct Connection
:這種連線是在Fusion Server
和Fusion Client
之間建立的,用於直接通信。
基本設定
加密設定非常直接:
1. 下載並匯入資料包加密原生外掛元件
請聯絡Photon支援團隊,獲取適用於您平台的DatagramEncryption
外掛元件。
由於其大小和很少使用,此外掛元件不包含在預設Fusion套裝軟體中,但它是加密系統正常運行所必需的。
我們提供了外掛元件之後,請閱讀附帶的README檔案,瞭解如何將其匯入到您的專案中。
2. Photon Cloud連線加密
為本機同儕節點和Photon Cloud之間的連線啟用加密,請執行以下步驟:
- 開啟
PhotonAppSettings
資產。 - 設定埠為
443
。 - 設定
Protocol
為UDP
。 - 設定
AuthMode
為Auth Once Wss
。 - 在
Encryption Mode
選擇Datagram Encryption GCM
。
這些設定可確保本機同儕節點和Photon Cloud之間的連線在資料包級別進行加密。
這涵蓋了Shared
模式的加密。
有關加密模式的更多資訊,請參閱加密模式檔案。
3. Photon Fusion直接連線加密
在NetworkProjectConfig
資產上啟用Fusion加密系統。
此信號表示必須以加密方式建立Fusion Server
和Fusion Client
之間的連線。
這只影響ClientServer
模式(Client
、Host
、Server
、AutoHostOrClient
),因為在Shared
模式下,只有一種類型的連線——在本機同儕節點和Photon Cloud之間。
加密系統說明
封包加密系統應用以下具有特定設定的眾所周知的算法來實現其行為:
資料加密過程可以用以下步驟來描述:
- 加密資料:
- 使用上述算法對整個緩衝區進行加密。
- 生成基於封包內容的
Hash
並將其附加到資料緩衝器。
- 解密資料:
- 驗證
Hash
碼;否則,該封包將被丟棄。 - 對接收到的資料緩衝區進行解密。
- 驗證