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のピアの接続
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をご覧ください。

PhotonAppSettingsから暗号化を有効にする
PhotonAppSettingsから暗号化を有効にする

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

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

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

NetworkProjectConfigから暗号化を有効にする
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