這些最佳做法僅作為示範參考。請自行獨立評估您的實作。
- 機密性
- 完整性
- 驗證
機密性
保護通訊免受外部觀察,將可見性限制在參與的通訊夥伴之間。可透過使用強式密碼編譯演算法與加密方式進行訊息加密來達成。只有經過強式加密的訊息,才能保證只有加密/解密金鑰的持有者能夠讀取或產生這些訊息,因此金鑰共用與驗證密切相關。 玩家 IP 位址的機密性也很重要。請透過專用伺服器或轉送伺服器路由通訊,避免單一直接通道 (例如語音聊天) 暴露玩家的 IP。完整性
偵測傳輸期間的竄改。可透過安全的訊息雜湊加上序號或時間戳記來達成。- 安全雜湊會建立訊息摘要,以揭露任何竄改行為。
- 序號/時間戳記可阻止攻擊者複製及重新傳送訊息。
驗證
安全地驗證通訊夥伴的身分並防止冒充。可透過服務使用可公開驗證的憑證,以及用戶端使用平台驗證權杖來達成。- 預設要求所有通訊夥伴都必須經過驗證。
- 對於公開的唯讀資料 (設定、每日訊息),只驗證來源服務是可以接受的,但請注意不要讓此模式擴散到其他情況。
- 遊戲平台上的遊戲用戶端應一律使用安全的平台驗證權杖。在用戶端中硬式編碼的密碼並不足夠,因為攻擊者可以猜測或擷取它們。
- 遊戲服務/帳戶權杖若遵循安全權杖指導方針,且在驗證平台權杖之後才核發,也是可以接受的。
相關 API 文件
- XCurl API 參考:支援 TLS 的 HTTPS 用戶端
- libHttpClient 參考:XSAPI 所使用的 HTTPS/WebSocket 傳輸
- 網路 API 參考:Winsock 與安全裝置位址
- XNetworking API 參考:憑證驗證與連線提示
- XSAPI REST 參考:對 XBOX services 進行經 XSTS 驗證的呼叫
