(57)【要約】【課題】ローカルエリアネットワークを介して複数のゲームコンソール間のセキュア通信を可能にする。【解決手段】システムアーキテクチャは３段階のセキュア通信プロトコルをサポートする。第１段階は、オーセンティックなゲームタイトルを実行するオーセンティックなゲームコンソールに固有の共有鍵を生成することに関係する。第２段階では、「クライアント」コンソール１００−２〜１００２−ｇが、ローカルエリアネットワークを介して要求を同報通信することにより、「ホスト」ゲームコンソール１００−１によってホスティングされる既存のゲームセッションを発見することを試みる。第３段階では、クライアント１００−２〜１００２−ｇとホストコンソール１００−１が、将来の通信を保護するため、１つまたは複数の秘密を導出するのに使用するデータを交換する鍵交換に関係する。【選択図】図３
2011259476.tif 000002
【特許請求の範囲】
【請求項１】
複数のゲームコンソールがローカルエリアネットワークを介して接続されているネットワークゲーミング環境における方法であって、
前記ローカルエリアネットワーク上のホストゲームコンソールによってホスティングされているゲームタイトルのプレイに加わる要求を生成するステップと、
前記ローカルエリアネットワークを介して前記要求を同報通信するステップと、
前記ホストゲームコンソールから応答を受信するステップであって、前記応答は、１つまたは複数のセッション鍵を含むステップと、
前記ホストゲームコンソールとの将来のセキュア通信を容易にするために、前記応答からの前記セッション鍵を使用するステップと
を備えたことを特徴とする方法。
【請求項２】
実行時に請求項２に記載の方法を実行するコンピュータ実行可能命令を備えたことを特徴とする１つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項３】
メモリと、
前記メモリと結合され、オーセンティックなゲームタイトルを実行するときにゲームコンソールにとって秘密である少なくとも１つの鍵を生成するように構成されたプロセッサであって、前記ゲームタイトルをホスティングしている共通ローカルエリアネットワーク上のホストゲームコンソールを前記鍵を使用して発見し、前記ローカルエリアネットワークを介して前記ホストゲームコンソールとセキュア通信リンクを確立するようにさらに構成されているプロセッサと
を備えたことを特徴とするゲームコンソール。
【請求項４】
第１ゲームコンソールおよび第２ゲームコンソールを備えたシステムであって、
前記第１のゲームコンソールおよび第２のゲームコンソールは、ローカルエリアネットワークヘの接続を容易にするためのネットワーク接続を有し、同じゲームタイトルを実行し、前記同じゲームタイトルを実行することによって同一の鍵を生成するように構成されており、
前記第１ゲームコンソールは、前記ローカルエリアネットワークを介してメッセージを同報通信することによって前記第２のゲームコンソールを発見するように構成されており前記メッセージは前記鍵によって保護される
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンソールベースのゲーミングシステムに関し、より詳細には、ローカルエリアネットワークを介して接続された２つのゲーミングシステム間でセキュア通信を確立する方法に関する。
【背景技術】
【０００２】
伝統的に、専用コンソールを備えるゲーミングシステムは、限られた数のプレイヤ(例えば２〜４人のプレイヤ)に対処するスタンドアロンマシンであった。パーソナルコンピュータベースのゲーミングは、一つには、インターネットを介して多くのリモートプレイヤとオンラインでゲームをプレイすることができるので普及してきた。したがって、専用ゲーミングシステムに関する１つの傾向は、インターネットベースのオンラインゲーミングや、複数のコンソールがローカルエリアネットワーク(ＬＡＮ)を介して接続されるＬＡＮベースのゲーミングなど、ネットワークを介するゲーミングを容易にする機能を提供することである。
【０００３】
ネットワークゲーミングでの１つの難問は、任意の２つのゲームコンソール間のネットワークトラフィックを、ネットワーク上の他の装置による改変または監視から保護することである。ゲーマは、独創的な不正機構を開発することで悪名高い。例えば、ゲーマは、コンピュータを使用して普通なら見ることのできないゲームマップの一部を表示したり、または保護されていないネットワークトラフィックを変更して、標的を完璧にしたりプレイヤを高速にするなど、プレイ中に自分自身が有利な立場になるようにすることもあった。遺憾ながら、以前のコンソールベースのゲーミングシステムではセキュア通信を実現していなかった。
【０００４】
尚、複数のゲーミングシステム間でセキュア通信を確立するコンソールベースのシステムにおいては、暗号化等の技術が要求されるが、暗号の基本的概要について開示したテキストがある(例えば、非特許文献１参照)。
【非特許文献１】Bruce Schneier, "Applied Cryptography: Protocols, Algorithms, and Source Code in C", published by John Wiley & Sons, copyright １９９４ (second edition １９９６)
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、ローカルエリアネットワークを介する２つ以上のゲーミングシステム間のセキュア通信をサポートするシステムアーキテクチャが求められている。
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、複数のゲームコンソールが、ローカルエリアネットワークを介してセキュア通信を確立することができるゲーミングシステム用のネットワークアーキテクチャの方法、そのゲームコンソール、そのシステム及び記録媒体を提供することにある。
【課題を解決するための手段】
【０００６】
コンソールベースのゲーミングシステム用のネットワークアーキテクチャを説明する。このアーキテクチャにより、複数のゲームコンソールが、ローカルエリアネットワークを介してセキュア通信を確立することが可能になる。
【０００７】
記載された実装では、システムアーキテクチャは３段階のセキュア通信プロトコルをサポートする。第１段階は、オーセンティックな（authentic）ゲームタイトルを実行するオーセンティックなゲームコンソールに固有の共用鍵を生成することに関係する。同じゲームを実行する同じゲームコンソールは、同じ共用鍵を生成することになる。第２段階では、「クライアント」コンソールは、ローカルエリアネットワークを介して要求を同報通信することによって、「ホスト」ゲームコンソールによってホスティングされる既存のゲームセッションを発見することを試みる。この同報通信要求は、次の好都合な機会にゲームのプレイに加わりたいことを表す。この同報通信要求は共用鍵を使用して保護される。クライアントコンソールがプレイすることにホストコンソールが同意した場合、ホストコンソールはセッション鍵を生成し、そのセッション鍵はクライアントコンソールにセキュアに返される。第３段階は、１つまたは複数の秘密を導出するのに用いるデータをクライアントコンソールとホストコンソールが交換する鍵交換に関係する。この鍵交換は、セッション鍵を使用して保護される。次いでこの秘密を使用して、進行中の通信に関する２つのコンソール間のセキュアポイントツーポイントリンクを確立する。
【図面の簡単な説明】
【０００８】
【図１】ゲームコンソールおよび１つまたは複数のコントローラを備えるゲーミングシステムを示す図である。
【図２】ゲーミングシステムのブロック図である。
【図３】図１のゲーミングシステムがローカルエリアネットワークを介して他のゲーミングシステムに接続されるネットワークゲーミングシステムを示す図である。
【図４】オーセンティックなゲームタイトルを実行するゲームコンソールが共用秘密鍵を生成する、セキュア通信プロセスの第１段階を示す図である。
【図５】クライアントゲームコンソールがローカルエリアネットワーク上のホストゲームコンソールを発見する、セキュア通信プロセスの第２段階を示す図である。
【図６】クライアントゲームコンソールとホストゲームコンソールがポイントツーポイント通信リンクを確立する、セキュア通信プロセスの第３段階を示す図である。
【発明の実施の形態】
【０００９】
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、各図面において同様の機能を有する箇所には同一の符号を付し、説明の重複は省略する。
以下の解説は、ローカルエリアネットワーク(ＬＡＮ)を介して接続された複数のゲーミングシステム間でセキュア通信を確立する、コンソールベースのシステムおよび技法を対象とする。この解説では、暗号化、解読、認証、ハッシング、およびデジタルシグニチャなどの基本的な暗号原理に読者が通じていることを想定している。暗号の基本的概要についてはテキストを参照されたい(例えば、非特許文献１参照)。
【００１０】
ゲーミングシステム 
図１に例示的ゲーミングシステム１００を示す。この例示的ゲーミングシステム１００は、ゲームコンソール１０２と、コントローラ１０４−１および１０４−２で表される最大４つのコントローラを含む。ゲームコンソール１０２には、内部ハードディスクドライブおよびポータブルメディアドライブ１０６が装備されている。ポータブルメディアドライブ１０６は、光記憶ディスク１０８で表される様々な形態のポータブル記憶媒体をサポートする。適切なポータブル記憶媒体の例には、ＤＶＤ（digital versatile disk）、ＣＤ（compact disk）-ＲＯＭ（read only member）、ゲームディスク、ゲームカートリッジなどが含まれる。
【００１１】
ゲームコンソール１０２は、最大４つのコントローラをサポートするようにその正面に４つのスロット１１０ａ〜１１０ｄを有するが、スロットの数および配置は変更することができる。電源ボタン１１２およびイジェクトボタン１１４もゲームコンソール１０２の正面に配置される。電源ボタン１１２はゲームコンソールへの電源を切り換え、イジェクトボタン１１４は、ポータブルメディアドライブ１０６のトレーを交互に開閉して記憶ディスク１０８の挿入および排出を可能にする。
【００１２】
ゲームコンソール１０２は、Ａ／Ｖインタフェースケーブル１２０を介してテレビジョンまたは他のディスプレイ(図示せず)に接続する。電源ケーブル１２２は、ゲームコンソールに電力を供給する。ゲームコンソール１０２にはさらに、ローカルエリアネットワーク(ＬＡＮ)またはインターネットなどのネットワークへのアクセスを容易にするために、ケーブルまたはモデムコネクタ１２４によって表される内蔵ネットワーク機能または外付けのネットワーク機能が装備される。
【００１３】
各コントローラ１０４−１〜１０４−２は、有線または無線のインタフェースを介してゲームコンソール１０２に結合される。図示する実装では、コントローラはＵＳＢ(ユニバーサルシリアルバス)互換であり、シリアルケーブル１３０を介してコンソール１０２に接続される。コンソール１０２は、広範なユーザ対話機構のうちいずれかを装備することができる。図１に示すように、各コントローラ１０４−１〜１０４−２には、２つのサムスティック１３２−１および１３２−２ａ〜 １３２−２ｂ、Ｄパッド１３４、ボタン１３６、ならびに２つのトリガ１３８が装備される。これらの機構は単に代表的なものであって、図１に示す機構を他の周知のゲーミング機構で置き換えることもでき、または図１に示す機構に他の周知のゲーミング機構を追加することもできる。
【００１４】
メモリユニット(MU)１４０をコントローラ１０４−２内に挿入して、追加かつ可搬の記憶域を設けることができる。ポータブルメモリユニットにより、ユーザがゲームパラメータを格納し、そのゲームパラメータを移送して、他のコンソール上でプレイすることが可能となる。記載された実装では、各コントローラは、２つのメモリユニット１４０を収容するように構成されるが、他の実装では、３つ以上または１つ以下を利用することもできる。
【００１５】
ゲーミングシステム１００は、例えばゲーム、音楽、およびビデオを再生することができる。様々な記憶装置を提供することによって、ハードディスクドライブ、ドライブ１０６内のポータブルメディア１０８、オンラインソース、またはメモリユニット１４０からタイトルを再生することができる。ゲーミングシステム１００が再生することができるものの例には、
１.ＣＤディスクおよびＤＶＤディスク、ハードディスクドライブ、またはオンラインソースから再生されるゲームタイトル
２.ポータブルメディアｓドライブ１０６内のＣＤ、ハードディスクドライブ上の圧縮ファイル(例えば、Windows(登録商標) Media Audio(WMA)フォーマット)、またはオンラインストリーミングソースから再生されるデジタル音楽
３.ポータブルメディアドライブ１０６内のＤＶＤディスク、ハードディスクドライブ上のファイル(例えば、Windows(登録商標) Media Video(WMV)フォーマット)、またはオンラインストリーミングソースから再生されるデジタルオーディオ/ビデオ
が含まれる。
【００１６】
図２に、ゲーミングシステム１００の機能構成要素をより詳細に示す。ゲームコンソール１０２は、中央演算処理装置(ＣＰＵ)２００と、フラッシュＲＯＭ(読取り専用メモリ)２０４、ＲＡＭ(ランダムアクセスメモリ)２０６、ハードディスクドライブ２０８、およびポータブルメディアドライブ１０６を含む様々なタイプのメモリにプロセッサがアクセスするのを容易にするメモリコントローラ２０２とを有する。ＣＰＵ ２００には、データを一時的に格納し、したがってメモリアクセスサイクルの数を低減し、それによって処理速度およびスループットを向上させるために、レベル１キャッシュ２１０およびレベル２キャッシュ２１２が装備される。
【００１７】
ＣＰＵ  ２００、メモリコントローラ２０２、および様々なメモリ装置は、様々なバスアーキテクチャのいずれかを使用するシリアルバスおよびパラレルバス、メモリバス、周辺バス、ならびにプロセッサバスまたはローカルバスを含む、１つまたは複数のバスを介して相互接続される。例えば、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(ＩＳＡ)バス、マイクロチャネルアーキテクチャ(ＭＣＡ)バス、エンハンスドＩＳＡ(ＥＩＳＡ)バス、ビデオエレクトロニクス規格協会(ＶＥＳＡ)ローカルバス、およびＰＣＩ（Peripheral Component Interconnect）バスを含めることができる。
【００１８】
１つの適切な実装としては、ＣＰＵ  ２００、メモリコントローラ２０２、ＲＯＭ  ２０４、およびＲＡＭ  ２０６が共通モジュール２１４上に一体化される。この実装では、ＲＯＭ  ２０４は、ＰＣＩバスおよびＲＯＭバス(どちらも図示せず)を介してメモリコントローラ２０２に接続されるフラッシュＲＯＭとして構成される。ＲＡＭ  ２０６は、メモリコントローラ２０２によって別々のバス(図示せず)を介して別々に制御される複数のＤＤＲ  ＳＤＲＡＭ(ダブルデータレート同期ダイナミックＲＡＭ)モジュールとして構成される。ハードディスクドライブ２０８およびポータブルメディアドライブ１０６は、ＰＣＩバスおよびＡＴＡ(ＡＴアタッチメント)バス２１６を介してメモリコントローラに接続される。
【００１９】
３Ｄグラフィックスプロセッサ２２０およびビデオエンコーダ２２２は、高速かつ高解像度のグラフィックス処理用ビデオ処理パイプラインを形成する。データは、グラフィックスプロセッサ２２０からデジタルビデオバス(図示せず)を介してビデオエンコーダ２２２に搬送される。オーディオプロセッサ２２４およびオーディオコーデック(コーダ/デコーダ)２２６は、高精度かつステレオの処理を有する、対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンク(図示せず)を介してオーディオプロセッサ２２４とオーディオコーデック２２６間で搬送される。ビデオおよびオーディオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、Ａ／Ｖ(オーディオ/ビデオ)ポート２２８にデータを出力する。図示する実装では、ビデオおよびオー
ディオ処理構成要素２２０-２２８は、モジュール２１４上に装着される。
【００２０】
ＵＳＢホストコントローラ２３０およびネットワークインタフェース２３２もモジュール２１４上に実装される。ＵＳＢホストコントローラ２３０は、バス(例えばＰＣＩバス)を介してＣＰＵ  ２００およびメモリコントローラ２０２に結合され、周辺コントローラ１０４−１〜１０４−４に対してホストとして働く。ネットワークインタフェース２３２は、ネットワーク(例えばＬＡＮ、インターネットなど)へのアクセスを提供する。ネットワークインタフェース２３２は、イーサネット(登録商標)カード、モデム、Bluetoothモジュール、ケーブルモデムなどを含む広範な有線または無線のインタフェース構成要素のうちいずれでもよい。
【００２１】
ゲームコンソール１０２は、２つのゲームコントローラ１０４−１〜１０４−４をそれぞれサブアセンブリサポートする２つのデュアルコントローラサポートサブアセンブリ２４０−１および２４０−２を有する。フロントパネルＩ／Ｏサブアセンブリ２４２は、電源ボタン１１２およびイジェクトボタン１１４の機能をサポートし、ＬＥＤ(発光ダイオード)または他のインジケータがゲームコンソールの外面に露出する。サブアセンブリ２４０−１、２４０−２、および２４２は、１つまたは複数のケーブルアセンブリ２４４を介してモジュール２１４に結合される。
【００２２】
８つのメモリユニット１４０−１〜１４０−８が、４つのコントローラ１０４−１〜１０４−４に接続可能なものとして示されている。すなわち、各コントローラに対してメモリユニットは２つである。各メモリユニット１４０−１〜１４０−８により、ゲーム、ゲームパラメータ、および他のデータを格納することができる追加の記憶域が提供される。メモリユニット１４０−１〜１４０−８は、コントローラに挿入したとき、メモリコントローラ２０２によってアクセスすることができる。
【００２３】
システム電源モジュール２５０はゲーミングシステム１００の構成要素に電力を供給する。ファン２５２は、ゲームコンソール１０２内の回路を冷却する。
コンソールユーザインタフェース(ＵＩ)アプリケーション２６０は、ハードディスクドライブ２０８上に格納される。ゲームコンソールに電源を投入したとき、コンソールアプリケーション２６０の様々な部分がＲＡＭ ２０６および/またはキャッシュ２１０、２１２内にロードされ、ＣＰＵ  ２００上で実行される。コンソールアプリケーション２６０は、ゲームコンソール上で利用可能な様々な媒体タイプにナビゲートするときに一貫したユーザ体験を提供するグラフィカルユーザインタフェースを提示する。
【００２４】
ゲームコンソール１０２は、暗号化、解読、認証、デジタル署名、ハッシングなどの共通暗号機能を実行する暗号エンジンを実装する。暗号エンジンは、ＣＰＵ  ２００の一部として実装することができ、またはＣＰＵ上で動作する、メモリ(例えばＲＯＭ  ２０４、ハードディスクドライブ２０８)内に格納されたソフトウェアで実装し、それによってＣＰＵが暗号機能を実行するように構成することもできる。
【００２５】
ゲーミングシステム１００は、単にシステムをテレビジョンまたは他のディスプレイに接続することによってスタンドアロンシステムとして動作することができる。このスタンドアロンモードでは、ゲーミングシステム１００により、１人または複数のプレイヤがゲームをプレイし、映画を視聴し、または音楽を聴くことが可能になる。しかし、ネットワークインタフェース２３２を介して利用可能にされるネットワークコネクティビティの統合により、ゲーミングシステム１００はさらに、より大規模なネットワークゲーミングコミュニティ内の参加者として動作することができる。このネットワークゲーミング環境を次に説明する。
【００２６】
ネットワークゲーミング 
図３に、複数のゲーミングシステム１００−１、１００−２、...、１００−ｇがローカルエリアネットワーク３０２を介して相互接続されている例示的ネットワークゲーミング環境３００を示す。ＬＡＮ  ３０２は、有線媒体および無線媒体を含む広範な従来の通信媒体のうち任意の１つまたは複数を使用して実装することができる。一例として、ＬＡＮ  ３０２は、イーサネット(登録商標)クロスオーバケーブルまたはイーサネット(登録商標)ハブを表す。ＬＡＮ  ３０２の他の可能な実装には、FireWire(具体的にはIEEE １３９４)およびユニバーサルシリアルバス(ＵＳＢ)が含まれる。
【００２７】
多くのゲームタイトルは、異なるコンソール上の複数のプレイヤをサポートするようにスケーラブルである。ＬＡＮ  ３０２を介して複数のゲーミングシステムを相互接続することにより、複数のプレイヤが同じゲームで競うことが可能となる。例えば、一部のゲームタイトルでは、最大１６人の異なるプレイヤが可能である。この最大１６人の異なるプレイヤは、任意のプレイヤとゲーミングシステムの組合せ(例えば、１６個のゲーミングシステム上のそれぞれ１人のプレイヤから、４個のゲーミングシステム上のそれぞれ４人のプレイヤまで)から構成することができる。
【００２８】
ネットワークベースのゲームは、ゲームコンソールのうちの１つによってホスィングされる。この解説では、ゲーミングシステム１００−１がクライアントゲーミングシステム１００−２、...、１００−ｇに関するゲームをホスティングすると仮定する。この状況では、ホスティング機能は、マルチプレイヤゲームへのプレイヤのアクセスを調整する機能である。「ホスティング」メタファ（metaphor）は、あるゲームコンソールが他のゲームコンソールにゲームコンテントを供給することを意味するのではない。各ゲームコンソール１００−１〜１００−ｇは、(例えばベンダのウェブサイトからオーセンティックなゲームタイトルを購入またはダウンロードして)ハードディスクドライブ２０８、またはデジタルビデオディスク(ＤＶＤ)１０８−１、１０８−２、...、１０８−gによって代表されるポータブル記憶媒体のどちらかに格納された、各ゲームコンソール１００−１〜１００−ｇ自体のゲームのコピーを有する。
【００２９】
セキュア通信プロトコル 
ネットワークゲーミング状態に関係するすべてのゲームコンソールは、始めに相互間のセキュア通信リンクを確立する。セキュア通信とは、改変に抵抗できるように２つのエンティティ間でデータを転送できることを意味する。転送されたデータは、エンティティによって認証することができ、トラステッドエンティティ（trusted entity）が実際にその特定のデータを送信したことを保証することができる。セキュア通信は、暗号化を使用することも使用しないこともある。暗号化により、効果的に、送信されるデータが監視者に対して見えないようにされる。暗号化を使用する場合、暗号化は認証の前または後に行うことができる。
【００３０】
図３を参照すると、参加することを望む各クライアントゲームコンソール１００−２〜１００−ｇは、ホストゲーミングシステム１００−１から許可を求める。ホストが望むなら、要求側クライアントコンソールとホストコンソールとの間にセキュア通信が確立される。セキュア通信リンクの確立は、３段階のプロセスによって実施される。簡潔に述べると、第１段階は、オーセンティックなゲームタイトルを実行するオーセンティックなゲームコンソールだけが知っている共用秘密鍵の生成に関係する。
【００３１】
第２段階は、ホストゲームコンソールによってホスティングされている既存のゲームセッションをクライアントコンソールが発見することを試みるセッションディスカバリに関係する。セッションディスカバリ中に、クライアントコンソールは、ローカルエリアネットワークを介してディスカバリ要求を同報通信する。このディスカバリ要求は、次の好都合な機会にＬＡＮベースのゲームに加わりたいことを表す。このディスカバリ要求は、共用鍵を使用して保護される。クライアントコンソールがプレイすることにホストコンソールが同意した場合、ホストコンソールは、セッション鍵を含むディスカバリ応答を生成する。このディスカバリ応答は、同報通信を介して直接または間接にクライアントコンソールに返される。
【００３２】
第３段階は、クライアントコンソールおよびホストコンソールが、１つまたは複数の秘密を導出するのに使用するデータを交換する鍵交換に関係する。この鍵交換は、セッション鍵を使用して保護される。次いでこの秘密を使用して、進行中の通信に関する複数のコンソール間のセキュアポイントツーポイントリンクを確立する。
【００３３】
セキュア通信プロトコルの１つの可能な実装に従って、これらの段階を以下でより詳細に説明する。
段階I:共用秘密鍵の生成
図４に、オーセンティックなゲームタイトルを実行するオーセンティックなゲーミングシステムに固有の共用秘密鍵が生成される、セキュア通信プロトコルの第１段階４００を示す。コンソールは、ＲＯＭ  ２０４の保護部分内など、セキュアな位置内に秘密鍵４０２を格納する。加えて、ゲーミングシステム上でプレイすることを認証された各ゲームタイトルは、関連する固有の、ランダムに生成されたタイトル鍵４０４を有する。タイトル鍵４０４は、同じゲームタイトルのあらゆるコピーに対して同じである。異なるタイトルは異なるタイトル鍵を有する。タイトル鍵４０４は、ＤＶＤ上など、ゲームタイトルの一部として格納することができ、あるいはゲームコンソールのハードディスクドライブ上に格納するためにオンラインで正当に購入し、ダウンロードしたゲームタイトルのソフトコ
ピーと一緒に格納することができる。
【００３４】
ＬＡＮ鍵ジェネレータ４０６は、ＬＡＮ鍵４０８を導出するためにコンソールベースの鍵４０２およびタイトルベースの鍵４０４を使用する。１つの実装では、ＬＡＮ鍵ジェネレータ４０６は、ネットワークスタック初期化中に２つの鍵４０２および４０４を使用して一方向暗号化関数を計算する。適切な暗号化関数の一例として、ＬＡＮ鍵ジェネレータ４０６は、鍵４０２および４０４を連結し、それに対してHMAC-SHA-１(Hashed Message Authentication Code-Secure Hash Algorithm １)演算を実行してＬＡＮ鍵４０８を生成する。
【００３５】
次いで、ＬＡＮ鍵４０８を使用して共用秘密鍵を生成する。より具体的には、ネットワークスタックを初期化したとき、同報通信鍵ジェネレータ４１０は、ＬＡＮ鍵４０８を使用してタイトル同報通信暗号鍵４１２およびタイトル同報通信シグニチャ鍵４１４を生成する。一例として、ジェネレータ４１０は、対称暗号、非対称暗号、ハッシングアルゴリズム、およびダイジェストアルゴリズムに対する鍵を生成することができる。
【００３６】
初期化中に、同報通信鍵４１２および４１４の生成が１度実行される。同じタイトルを実行するすべてのゲーミングシステムは、同じ鍵の対を生成することになる。同じＬＡＮ上の異なるタイトルを実行する任意のゲーミングシステムは、異なる鍵の対を有することになる。鍵の組合せにより、単にゲームタイトルを読み取ることができることによって特定のゲームに対する同報通信メッセージを傍受し、または変更する方法を誰かが発見することが防止される。
【００３７】
段階II:セッションディスカバリ 
図５に、ＬＡＮ上の任意の他のコンソールが特定のタイトルのマルチプレイヤゲームセッションを現在ホスティングしているかどうかをクライアントコンソールが発見することを試みる、セキュア通信プロトコルの第２段階５００を示す。小規模のローカルエリアネットワーク上に接続されたわずか数個のコンソールでは、１つまたは２つより多くのコンソールが特定のゲームをホスティングしていることは考えられない。少数のコンソールでは、第３者の対戦組み合わせは存在せず、したがって、同報通信技法を介してクライアントコンソール自体に対する適切なホストをクライアントコンソールが発見するにまかされる。しかし、利用可能なゲームセッションの数は将来非常に多数になる可能性があり、適切なマッチを見つけるために専用の対戦組み合わせサービスが使用されるかもしれないこ
とに留意されたい。
【００３８】
要求側クライアントコンソール１００−２および潜在的なホストコンソール１００−１によって実行されるオペレーションの一般的な流れの状況で第２段階を説明する。このようなオペレーションが実行される場所を伝えるために、オペレーションをクライアントコンソールおよびホストコンソールの下に示す。
【００３９】
オペレーション５０２では、クライアントコンソール１００−２が、要求メッセージおよび任意選択ノンス(nonce)Ni(起動側のノンス)を含む要求REQを生成する。オペレーション５０４では、クライアントコンソールは、タイトル同報通信暗号鍵４１２(KEと示す)を使用する対称鍵暗号E(例えばDES)を使用して、以下のように要求を暗号化する。
【００４０】
REQE=EKE[要求メッッセージ,Ni]
オペレーション５０６では、クライアントコンソールは、タイトル同報通信シグニチャ鍵４１４(KSと示す)を使用して、以下のように要求にデジタル署名する。
【００４１】
REQES=SKS[REQE]
オペレーション５０８では、クライアントコンソールは、暗号化し、署名した要求REQESをＬＡＮ ３０２上の他のコンソールに同報通信する。ホストコンソール１００−１は、予めＵＤＰ(user datagram protocol)ソケットをオープンしており、ＬＡＮを介してディスカバリ同報通信メッセージを聴取している。同じゲームタイトルを実行するコンソールは、タイトル同報通信鍵４１２および４１４の同じ組を生成することができ、したがってメッセージを認証および解読することができるので、要求を認識することになる。しかし、異なるゲームタイトルを実行するコンソールは、メッセージを廃棄することになる。１つのホストコンソールが存在し、かつ同じゲームタイトルを実行していると仮定する(オペレーション５１０)。したがって、ホストコンソールは、段階I(図４)で与えたのと同様に、タイトル同報通信暗号鍵４１２およびタイトル同報通信シグニチャ鍵４１４を導出することができる。
【００４２】
オペレーション５１２では、ホストコンソールは、同じタイトル同報通信シグニチャ鍵４１４を使用して要求を認証する。オペレーション５１４では、ホストコンソールは、同じタイトル同報通信暗号鍵４１２を使用して、以下のようにメッセージを解読する。
【００４３】
REQ=DKE[REQE]
オペレーション５１６では、ホストコンソールは、要求側クライアントコンソールがネットワークゲームに参加することが可能であるかどうかを判定する。この判定に影響を与える要素には、現在のプレイヤの数、ゲームでサポートするプレイヤの数、ゲームの現在の状況(すなわち、ちょうど開始したところ、セッションの中間など)などが含まれる。ホストコンソールが１つまたは複数のプレイヤを有する新しいクライアントコンソールを受諾すると仮定すると、ホストコンソールは、異なるセッション間を識別するのに使用する固有の鍵の対を生成する(オペレーション５１８)。これらの鍵は、ネットワーク鍵識別子NKIDおよびネットワーク鍵交換鍵NKEYを含む。識別子NKIDは、単に鍵NKEYに対する名前である。ある実装では、セッション鍵は乱数ジェネレータによって生成される。これらの鍵は、図６を参照しながら以下で説明する鍵交換段階で使用する。セッション鍵NKEYは将来、２つのコンソール間で交換される鍵交換パケットの内容を認証するのに使用することになり、一方鍵識別子NKIDは、ソースコンソールが接続されているゲームセッションを指定するのに使用する。セッション鍵NKIDおよびNKEYは、クライアントコンソールから何らかの要求を受信する前に事前生成できることに留意されたい。
【００４４】
オペレーション５２０では、ホストコンソールがディスカバリ要求に対する応答を生成する。この応答は少なくとも、応答メッセージ、NKID/NKEY対、およびホストゲームコンソールのネットワークアドレスＮＡＤＤＲを含む。応答メッセージは、起動側のノンスNi、応答側のノンスNr、およびゲーム固有のデータを含むことができる。オペレーション５２２では、ホストコンソールは、タイトル同報通信暗号鍵４１２を使用して、以下のように応答を暗号化する。
【００４５】
REPLYE=EKE[応答メッセージ,NKID,NKEY,NADDR]
オペレーション５２４では、ホストコンソールが、タイトル同報通信シグニチャ鍵４１４(KSと示す)を使用して、以下のように応答に署名する。  
【００４６】
REPLYES=SKS[REPLYE]
オペレーション５２６では、ホストコンソールが、ローカルエリアネットワーク３０２を介して要求側クライアントコンソール１００−２を含む他のコンソールに応答を同報通信する。オペレーション５２８では、クライアントコンソールが、応答を認証および解読する。あらゆるホストコンソールは、ネットワークアドレス、ならびにゲームセッションに固有の暗号鍵および識別子を含むそれ自体の暗号同報通信応答で応答する。ネットワーク上で利用可能な１つまたは複数のホストを発見すると、クライアントはホストのセッション鍵対を使用して所望のホストと通信する。他の潜在的なホストによって返された他のどのセッション鍵対も廃棄される。
【００４７】
段階III:鍵交換
図６に、クライアントとホストがセキュア鍵交換を実行して進行中の通信に関するセキュアポイントツーポイントリンクを確立する、セキュア通信プロトコルの第３段階６００を示す。ゲームセッションディスカバリの後、クライアントコンソールとホストコンソールは、タイトル同報通信暗号鍵４１２、タイトル同報通信シグニチャ鍵４１４、ならびに特定のゲームセッションに対するセッション鍵対NKID/NKEYを共用する。次に、クライアントコンソールとホストコンソールは、１つまたは複数の鍵を導出するのに使用するデータを交換する。この１つまたは複数の鍵は、このセキュアポイントツーポイント通信に使用される。記載された実装では、コンソールは、Diffie-Hellman指数演算を使用して、２つのコンソール間で共用される新しい秘密を、ＬＡＮを介して伝送することなく導出する。鍵交換はセッション鍵を使用して保護される。
【００４８】
この解説では、クライアントコンソールが鍵交換の起動側であり、ホストが応答側であると仮定する。クライアントが第１パケットを送信するとき、クライアントは、ゲームクライアントとゲームホストとの間に確立されたセキュリティ関連がないことを通知する。パケットはパケットキュー上に配置され、鍵交換プロセスがスタートする。
【００４９】
オペレーション６０２では、クライアントが初期鍵交換パケットKeyExInitを生成する。このパケットは、対称鍵を導出するのに使用する秘密を含む。この対称鍵は、ポイントツーポイント通信リンクでのセキュア通信で使用される。ある例示的実装では、鍵交換パケットは以下のデータを含むペイロードを有するＵＤＰパケットである。
【００５０】
【表１】
2011259476.tif 000003
【００５１】
オペレーション６０４では、クライアントコンソールがセッション鍵NKEYおよびハッシング関数Hを使用してメッセージ全体のハッシュダイジェストを次のように計算する。
HashInit=HNKEY[NonceInit,gx,NKID,NADDR,Time]
したがって、初期鍵交換パケットKeyExInitの作成は、ランダムノンス「NonceInit」の生成、Diffie-Hellman値の計算値「gX」の埋込み、NKIDおよびNADDRフィールドの埋込み、および「Time」フィールドの増分および設定を含む。他のすべてのフィールドは０にする。すべての先行するフィールドのハッシュダイジェスト(「HashInit」)は、パケットを受信側コンソール(例えばホストコンソール)で認証することができるように鍵交換パケットの「Hash」フィールド内に配置される。得られるパケットは以下のようになる。
【００５２】
KeyExInit:[NonceInit,gX,NKID,NADDR,Time,HashInit]
オペレーション６０６では、クライアントコンソールが初期鍵交換パケットKeyExInitをホストコンソールに送信する。このメッセージを受信したとき、ホストコンソールは、NKIDフィールド内の鍵識別子を使用して、特定のゲームセッションの鍵NKEYを識別する。次いでセッション鍵を使用して、クライアントコンソールから発信されたものとしてメッセージを認証する(オペレーション６０８)。より具体的には、ホストはセッション鍵NKEYを使用してコンテントのハッシュダイジェストを計算し、そのダイジェストを、初期鍵交換パケットで受信した添付の「HashInit」値と比較する。
【００５３】
オペレーション６１０では、ホストコンソールが応答鍵交換パケット(「KeyExResp」と示す)を作成する。続く例では、ホストコンソールがランダムノンス「NonceResp」を生成し、Diffie-Hellman関数gYから計算した値を埋め込み、NKIDおよびNADDRフィールドを埋め込み、「Time」フィールドを増分および設定する。「NonceInit」フィールドは、初期メッセージからコピーされる。
【００５４】
オペレーション６１２では、ホストコンソールがセッション鍵NKEYを使用して応答パケットを以下のようにハッシュする。
HashResp=HNKEY [NonceInit,NonceResp,gY,NKID,NADDR,Time]
ハッシュダイジェストは鍵交換パケットの「Hash」フィールド内に配置される。次に、応答パケットは以下の内容を有する。
【００５５】
KeyExResp: [NonceInit,NonceResp,gY,NKID,NADDR,Time,HashResp]
オペレーション６１４では、ホストコンソールがクライアントコンソールに応答鍵交換パケットKeyExRespを送信する。受信時に、クライアントコンソールは、NKIDフィールド内の鍵識別子を使用してセッション鍵NKEYを識別する。次いでセッション鍵NKEYを使用して、ホストコンソールから発信されたものとしてメッセージを認証する(オペレーション６１６)。すなわち、クライアントはセッション鍵NKEYを使用して応答パケットのハッシュダイジェストを計算し、そのダイジェストを、応答パケットで受信した添付の「HashResp」値と比較する。
【００５６】
この時点で、ホストとクライアントはどちらも、セキュリティ関連鍵を計算するための十分なデータを有している(オペレーション６１８)。セキュリティ関連鍵は、２つのコンソール間のポイントツーポイント通信を保護するのに使用する。この例では、各コンソールは２つのDiffie-Hellman指数を使用して関数gXYを計算する。次いで各コンソールは、NonceInit、NonceResp、およびgXYを入力として使用し、かつセッション鍵NKEYを使用して４つの異なるダイジェストを計算することができる。これらのダイジェストは、セキュリティ関連鍵を形成するのに使用する。
【００５７】
クライアントがセキュリティ関連鍵を有すると、鍵交換のために待機していた任意のパケットを自由に送信して完了することができる。しかし、ホストコンソールは、その応答メッセージKeyExRespが失われていなかったことが確かではないので、同じ鍵の組を有していても自由にそのようにすることができない。ホストは、KeyExAckメッセージを受信するか、または計算したセキュリティ関連鍵で認証されたパケットを受信するまで待機する(オペレーション６２０)。
【００５８】
一般的なケースでは、クライアントコンソールはパケットをホストに送信し、したがって鍵交換プロセスは、２つのメッセージ、KeyExInitおよびKeyExRespだけからなる。クライアントが送信するパケットを有さない場合、クライアントは、擬似肯定応答メッセージ(「KeyExAck」と示す)を送信することになる。このメッセージは、セッション鍵NKEYの代わりに計算したセキュリティ関連鍵を使用してメッセージがハッシュされる点で、２つの他の鍵交換メッセージとは異なる。
【００５９】
以後は、２つのコンソールがセキュリティ関連鍵を使用して、通信をセキュアにする。他のコンソールに送信する必要のあるすべてのネットワークパケットは、任意選択で暗号化した後に、認証データを検証する受信側コンソールでパケットコンテントを解読する前に認証される。ゲームセッションが終了した後、コンソールは、このセッション鍵対NKID/NKEYを使用する任意のコンソールからの鍵交換要求の受諾を停止することができる。セッション鍵の期間は、数分から数時間までと予想される。
【００６０】
結論 
本発明を構造的特徴および/または操作に特有の言い回しで説明したが、特許請求の範囲で定義される本発明は、説明した特定の特徴または操作に必ずしも限定されないことを理解されたい。むしろ、この特定の機能および操作は、特許請求の範囲の発明を実施する例示的形態として開示されている。
[発明の効果]
【００６１】
以上説明したように本発明によれば、複数のゲームコンソールが、ローカルエリアネットワークを介してセキュア通信を確立することが可能になる。
【符号の説明】
【００６２】
１００−１〜１００−ｇ  ゲーミングシステム
１０２  ゲームコンソール
１０４−１〜１０４−４  コントローラ
１０６  ポータブルメディアドライブ
１０８−１〜１０８−ｇ  光記憶ディスク
１１０ａ〜１１０ｄ  スロット
１１２  電源ボタン
１１４  イジェクトボタン
１２０  Ａ／Ｖインタフェースケーブル
１２２  電源ケーブル
１２４  ケーブルまたはモデムコネクタ
１３０  シリアルケーブル
１３２−１、１３２−２ａ、１３２−２ｂ  サムスティック
１３４  Ｄパッド
１３６  ボタン
１３８  トリガ
１４０−１〜１４０−８  メモリユニット
２００  ＣＰＵ
２０２  メモリコントローラ
２０４  フラッシュＲＯＭ
２０６  ＲＡＭ
２０８  ハードディスクドライブ
２１０  レベル１キャッシュ
２１２  レベル２キャッシュ
２１４  共通モジュール
２１６  ＡＴＡバス
２２０  ３Ｄグラフィックスプロセッサ
２２２  ビデオエンコーダ
２２４  オーディオプロセッサ
２２６  オーディオコーデック
２２８  Ａ／Ｖポート
２３０  ＵＳＢホストコントローラ
２３２  ネットワークインタフェース
２４０−１、２４０−２  デュアルコントローラポートサブアセンブリ
２４２  フロントパネルＩ／Ｏサブアセンブリ
２４４  ケーブルアセンブリ
２５０  システム電源モジュール
２５２  ファン
３０２  ローカルエリアネットワーク
４００  セキュア通信プロトコルの第１段階
４０２  秘密鍵
４０４  タイトル鍵
４０６  ＬＡＮ鍵ジェネレータ
４０８  ＬＡＮ鍵
４１０  同報通信鍵ジェネレータ
４１２  タイトル同報通信暗号鍵
４１４  タイトル同報通信シグニチャ鍵
５００  セキュア通信プロトコルの第２段階
６００  セキュア通信プロトコルの第３段階
【図１】
2011259476.tif 000004
【図２】
2011259476.tif 000005
【図３】
2011259476.tif 000006
【図４】
2011259476.tif 000007
【図５】
2011259476.tif 000008
【図６】
2011259476.tif 000009