This document is about: FUSION 2
SWITCH TO

接続の暗号化

概要

Photon Fusionは、既存のPhoton Realtimeの暗号化システムの機能を強化・拡張し、Fusionのクライアントとサーバー間のエンドツーエンド暗号化に対応しています。

安全な接続ハンドシェイク・鍵の生成と交換・実際にネットワークで送信されるパケットの暗号化/複合化は、すべてFusionの暗号化システムによって処理されます。最小の処理コストで、ゲームセッション内の対象のピアのみがデータを解読できることが保証されています。

Fusionのピアが維持できる接続タイプを、以下の図に示します。

  1. Cloud Connection:ローカルピアとPhoton Cloud間の接続になります。この接続は必須で、主にマッチメイキングや、必要に応じたリレー機能の提供に使用されます。すべてのモード(シングルプレイヤーモードを除く)は、少なくともこの接続を維持しています。
  2. Direct Connection:Fusionのサーバーとクライアント間で直接通信するために確立される接続です。
Fusion Peers Connections
Fusionのピアの接続

基本セットアップ

暗号化のセットアップは簡単です。

1. データグラム暗号化のネイティブプラグインのダウンロードとインポート

対象プラットフォームのDatagramEncryptionプラグインを取得したい場合は、Photonのサポートチームにご連絡ください。
プラグインはサイズが大きく稀にしか使用しないため、デフォルトのFusionパッケージには含まれていませんが、暗号化システムを正しく機能させるために必須となります。

プラグインを取得したら、プロジェクトへのインポート方法を解説しているREADMEファイルをお読みください。

2. Photon Cloud 接続の暗号化

ローカルピアとPhoton Cloud間の接続の暗号化を有効にするためのステップは以下の通りです。

  1. PhotonAppSettingsアセットを開く
  2. ポートを443に設定する
  3. ProtocolUDPに設定する
  4. AuthModeAuth Once Wssに設定する
  5. Encryption ModeDatagram Encryption GCMを選択する

これによって、ローカルピアとPhoton Cloud間の接続が、データグラムレベルで暗号化されることが保証されます。
この設定は、共有モードでの暗号化もカバーします。

Encryption Modeの詳細は、ドキュメントのEncryptionModeをご覧ください。

Network Project Config - Encryption Enabled
PhotonAppSettingsから暗号化を有効にする

3. Photon Fusion ダイレクト接続の暗号化

NetworkProjectConfigアセットから、Fusionの暗号化システムを有効にしてください。
これによって、Fusionのサーバーとクライアント間の接続が暗号化して確立されます。

これは、ホストモード(ClientHostServerAutoHostOrClient)にのみ影響します。共有モードは、ローカルピアとPhoton Cloud間の接続のみです。

Network Project Config - Encryption Enabled
NetworkProjectConfigから暗号化を有効にする

暗号化システムについて

Fusionの暗号化システムは、以下の有名なアルゴリズムを適用することで実現しています。

  • Advanced Encryption Standard (AES) (doc page):
    • Key Size: 256 bits;
    • Mode: CipherMode.CBC (doc page).
  • Message Authentication Code (HMAC):
    • Using the HMACSHA256 function (doc page).

データ暗号化プロセスは、以下のような流れになります。

  1. データの暗号化:
    1. 上記のアルゴリズムを使用して、全体のバッファを暗号化する
    2. パケットに内容に基づいたハッシュが生成され、バッファに追加される
  2. データの復号化:
    1. ハッシュを検証して、不正なパケットを破棄する
    2. 受信したバッファを復号化する
Back to top