説明

ゲーミングシステム用のネットワークアーキテクチャの方法、そのゲームコンソール、そのシステム及び記録媒体

【課題】 ローカルエリアネットワークを介して複数のゲームコンソール間のセキュア通信を可能にする。
【解決手段】 システムアーキテクチャは3段階のセキュア通信プロトコルをサポートする。第1段階は、オーセンティックなゲームタイトルを実行するオーセンティックなゲームコンソールに固有の共有鍵を生成することに関係する。第2段階では、「クライアント」コンソール100−2〜1002−gが、ローカルエリアネットワークを介して要求を同報通信することにより、「ホスト」ゲームコンソール100−1によってホスティングされる既存のゲームセッションを発見することを試みる。第3段階では、クライアント100−2〜1002−gとホストコンソール100−1が、将来の通信を保護するため、1つまたは複数の秘密を導出するのに使用するデータを交換する鍵交換に関係する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンソールベースのゲーミングシステムに関し、より詳細には、ローカルエリアネットワークを介して接続された2つのゲーミングシステム間でセキュア通信を確立する方法に関する。
【背景技術】
【0002】
伝統的に、専用コンソールを備えるゲーミングシステムは、限られた数のプレイヤ(例えば2〜4人のプレイヤ)に対処するスタンドアロンマシンであった。パーソナルコンピュータベースのゲーミングは、一つには、インターネットを介して多くのリモートプレイヤとオンラインでゲームをプレイすることができるので普及してきた。したがって、専用ゲーミングシステムに関する1つの傾向は、インターネットベースのオンラインゲーミングや、複数のコンソールがローカルエリアネットワーク(LAN)を介して接続されるLANベースのゲーミングなど、ネットワークを介するゲーミングを容易にする機能を提供することである。
【0003】
ネットワークゲーミングでの1つの難問は、任意の2つのゲームコンソール間のネットワークトラフィックを、ネットワーク上の他の装置による改変または監視から保護することである。ゲーマは、独創的な不正機構を開発することで悪名高い。例えば、ゲーマは、コンピュータを使用して普通なら見ることのできないゲームマップの一部を表示したり、または保護されていないネットワークトラフィックを変更して、標的を完璧にしたりプレイヤを高速にするなど、プレイ中に自分自身が有利な立場になるようにすることもあった。遺憾ながら、以前のコンソールベースのゲーミングシステムではセキュア通信を実現していなかった。
【0004】
尚、複数のゲーミングシステム間でセキュア通信を確立するコンソールベースのシステムにおいては、暗号化等の技術が要求されるが、暗号の基本的概要について開示したテキストがある(例えば、非特許文献1参照)。
【非特許文献1】Bruce Schneier, "Applied Cryptography: Protocols, Algorithms, and Source Code in C", published by John Wiley & Sons, copyright 1994 (second edition 1996)
【発明の開示】
【発明が解決しようとする課題】
【0005】
したがって、ローカルエリアネットワークを介する2つ以上のゲーミングシステム間のセキュア通信をサポートするシステムアーキテクチャが求められている。
本発明は、このような問題に鑑みてなされたもので、その目的とするところは、複数のゲームコンソールが、ローカルエリアネットワークを介してセキュア通信を確立することができるゲーミングシステム用のネットワークアーキテクチャの方法、そのゲームコンソール、そのシステム及び記録媒体を提供することにある。
【課題を解決するための手段】
【0006】
コンソールベースのゲーミングシステム用のネットワークアーキテクチャを説明する。このアーキテクチャにより、複数のゲームコンソールが、ローカルエリアネットワークを介してセキュア通信を確立することが可能になる。
【0007】
記載された実装では、システムアーキテクチャは3段階のセキュア通信プロトコルをサポートする。第1段階は、オーセンティックな(authentic)ゲームタイトルを実行するオーセンティックなゲームコンソールに固有の共用鍵を生成することに関係する。同じゲームを実行する同じゲームコンソールは、同じ共用鍵を生成することになる。第2段階では、「クライアント」コンソールは、ローカルエリアネットワークを介して要求を同報通信することによって、「ホスト」ゲームコンソールによってホスティングされる既存のゲームセッションを発見することを試みる。この同報通信要求は、次の好都合な機会にゲームのプレイに加わりたいことを表す。この同報通信要求は共用鍵を使用して保護される。クライアントコンソールがプレイすることにホストコンソールが同意した場合、ホストコンソールはセッション鍵を生成し、そのセッション鍵はクライアントコンソールにセキュアに返される。第3段階は、1つまたは複数の秘密を導出するのに用いるデータをクライアントコンソールとホストコンソールが交換する鍵交換に関係する。この鍵交換は、セッション鍵を使用して保護される。次いでこの秘密を使用して、進行中の通信に関する2つのコンソール間のセキュアポイントツーポイントリンクを確立する。
【発明の実施の形態】
【0008】
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、各図面において同様の機能を有する箇所には同一の符号を付し、説明の重複は省略する。
以下の解説は、ローカルエリアネットワーク(LAN)を介して接続された複数のゲーミングシステム間でセキュア通信を確立する、コンソールベースのシステムおよび技法を対象とする。この解説では、暗号化、解読、認証、ハッシング、およびデジタルシグニチャなどの基本的な暗号原理に読者が通じていることを想定している。暗号の基本的概要についてはテキストを参照されたい(例えば、非特許文献1参照)。
【0009】
ゲーミングシステム
図1に例示的ゲーミングシステム100を示す。この例示的ゲーミングシステム100は、ゲームコンソール102と、コントローラ104−1および104−2で表される最大4つのコントローラを含む。ゲームコンソール102には、内部ハードディスクドライブおよびポータブルメディアドライブ106が装備されている。ポータブルメディアドライブ106は、光記憶ディスク108で表される様々な形態のポータブル記憶媒体をサポートする。適切なポータブル記憶媒体の例には、DVD(digital versatile disk)、CD(compact disk)-ROM(read only member)、ゲームディスク、ゲームカートリッジなどが含まれる。
【0010】
ゲームコンソール102は、最大4つのコントローラをサポートするようにその正面に4つのスロット110a〜110dを有するが、スロットの数および配置は変更することができる。電源ボタン112およびイジェクトボタン114もゲームコンソール102の正面に配置される。電源ボタン112はゲームコンソールへの電源を切り換え、イジェクトボタン114は、ポータブルメディアドライブ106のトレーを交互に開閉して記憶ディスク108の挿入および排出を可能にする。
【0011】
ゲームコンソール102は、A/Vインタフェースケーブル120を介してテレビジョンまたは他のディスプレイ(図示せず)に接続する。電源ケーブル122は、ゲームコンソールに電力を供給する。ゲームコンソール102にはさらに、ローカルエリアネットワーク(LAN)またはインターネットなどのネットワークへのアクセスを容易にするために、ケーブルまたはモデムコネクタ124によって表される内蔵ネットワーク機能または外付けのネットワーク機能が装備される。
【0012】
各コントローラ104−1〜104−2は、有線または無線のインタフェースを介してゲームコンソール102に結合される。図示する実装では、コントローラはUSB(ユニバーサルシリアルバス)互換であり、シリアルケーブル130を介してコンソール102に接続される。コンソール102は、広範なユーザ対話機構のうちいずれかを装備することができる。図1に示すように、各コントローラ104−1〜104−2には、2つのサムスティック132−1および132−2a〜 132−2b、Dパッド134、ボタン136、ならびに2つのトリガ138が装備される。これらの機構は単に代表的なものであって、図1に示す機構を他の周知のゲーミング機構で置き換えることもでき、または図1に示す機構に他の周知のゲーミング機構を追加することもできる。
【0013】
メモリユニット(MU)140をコントローラ104−2内に挿入して、追加かつ可搬の記憶域を設けることができる。ポータブルメモリユニットにより、ユーザがゲームパラメータを格納し、そのゲームパラメータを移送して、他のコンソール上でプレイすることが可能となる。記載された実装では、各コントローラは、2つのメモリユニット140を収容するように構成されるが、他の実装では、3つ以上または1つ以下を利用することもできる。
【0014】
ゲーミングシステム100は、例えばゲーム、音楽、およびビデオを再生することができる。様々な記憶装置を提供することによって、ハードディスクドライブ、ドライブ106内のポータブルメディア108、オンラインソース、またはメモリユニット140からタイトルを再生することができる。ゲーミングシステム100が再生することができるものの例には、
1.CDディスクおよびDVDディスク、ハードディスクドライブ、またはオンラインソースから再生されるゲームタイトル
2.ポータブルメディアsドライブ106内のCD、ハードディスクドライブ上の圧縮ファイル(例えば、Windows(登録商標) Media Audio(WMA)フォーマット)、またはオンラインストリーミングソースから再生されるデジタル音楽
3.ポータブルメディアドライブ106内のDVDディスク、ハードディスクドライブ上のファイル(例えば、Windows(登録商標) Media Video(WMV)フォーマット)、またはオンラインストリーミングソースから再生されるデジタルオーディオ/ビデオ
が含まれる。
【0015】
図2に、ゲーミングシステム100の機能構成要素をより詳細に示す。ゲームコンソール102は、中央演算処理装置(CPU)200と、フラッシュROM(読取り専用メモリ)204、RAM(ランダムアクセスメモリ)206、ハードディスクドライブ208、およびポータブルメディアドライブ106を含む様々なタイプのメモリにプロセッサがアクセスするのを容易にするメモリコントローラ202とを有する。CPU 200には、データを一時的に格納し、したがってメモリアクセスサイクルの数を低減し、それによって処理速度およびスループットを向上させるために、レベル1キャッシュ210およびレベル2キャッシュ212が装備される。
【0016】
CPU 200、メモリコントローラ202、および様々なメモリ装置は、様々なバスアーキテクチャのいずれかを使用するシリアルバスおよびパラレルバス、メモリバス、周辺バス、ならびにプロセッサバスまたはローカルバスを含む、1つまたは複数のバスを介して相互接続される。例えば、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクス規格協会(VESA)ローカルバス、およびPCI(Peripheral Component Interconnect)バスを含めることができる。
【0017】
1つの適切な実装としては、CPU 200、メモリコントローラ202、ROM 204、およびRAM 206が共通モジュール214上に一体化される。この実装では、ROM 204は、PCIバスおよびROMバス(どちらも図示せず)を介してメモリコントローラ202に接続されるフラッシュROMとして構成される。RAM 206は、メモリコントローラ202によって別々のバス(図示せず)を介して別々に制御される複数のDDR SDRAM(ダブルデータレート同期ダイナミックRAM)モジュールとして構成される。ハードディスクドライブ208およびポータブルメディアドライブ106は、PCIバスおよびATA(ATアタッチメント)バス216を介してメモリコントローラに接続される。
【0018】
3Dグラフィックスプロセッサ220およびビデオエンコーダ222は、高速かつ高解像度のグラフィックス処理用ビデオ処理パイプラインを形成する。データは、グラフィックスプロセッサ220からデジタルビデオバス(図示せず)を介してビデオエンコーダ222に搬送される。オーディオプロセッサ224およびオーディオコーデック(コーダ/デコーダ)226は、高精度かつステレオの処理を有する、対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンク(図示せず)を介してオーディオプロセッサ224とオーディオコーデック226間で搬送される。ビデオおよびオーディオ処理パイプラインは、テレビジョンまたは他のディスプレイに送信するために、A/V(オーディオ/ビデオ)ポート228にデータを出力する。図示する実装では、ビデオおよびオー
ディオ処理構成要素220-228は、モジュール214上に装着される。
【0019】
USBホストコントローラ230およびネットワークインタフェース232もモジュール214上に実装される。USBホストコントローラ230は、バス(例えばPCIバス)を介してCPU 200およびメモリコントローラ202に結合され、周辺コントローラ104−1〜104−4に対してホストとして働く。ネットワークインタフェース232は、ネットワーク(例えばLAN、インターネットなど)へのアクセスを提供する。ネットワークインタフェース232は、イーサネット(登録商標)カード、モデム、Bluetoothモジュール、ケーブルモデムなどを含む広範な有線または無線のインタフェース構成要素のうちいずれでもよい。
【0020】
ゲームコンソール102は、2つのゲームコントローラ104−1〜104−4をそれぞれサブアセンブリサポートする2つのデュアルコントローラサポートサブアセンブリ240−1および240−2を有する。フロントパネルI/Oサブアセンブリ242は、電源ボタン112およびイジェクトボタン114の機能をサポートし、LED(発光ダイオード)または他のインジケータがゲームコンソールの外面に露出する。サブアセンブリ240−1、240−2、および242は、1つまたは複数のケーブルアセンブリ244を介してモジュール214に結合される。
【0021】
8つのメモリユニット140−1〜140−8が、4つのコントローラ104−1〜104−4に接続可能なものとして示されている。すなわち、各コントローラに対してメモリユニットは2つである。各メモリユニット140−1〜140−8により、ゲーム、ゲームパラメータ、および他のデータを格納することができる追加の記憶域が提供される。メモリユニット140−1〜140−8は、コントローラに挿入したとき、メモリコントローラ202によってアクセスすることができる。
【0022】
システム電源モジュール250はゲーミングシステム100の構成要素に電力を供給する。ファン252は、ゲームコンソール102内の回路を冷却する。
コンソールユーザインタフェース(UI)アプリケーション260は、ハードディスクドライブ208上に格納される。ゲームコンソールに電源を投入したとき、コンソールアプリケーション260の様々な部分がRAM 206および/またはキャッシュ210、212内にロードされ、CPU 200上で実行される。コンソールアプリケーション260は、ゲームコンソール上で利用可能な様々な媒体タイプにナビゲートするときに一貫したユーザ体験を提供するグラフィカルユーザインタフェースを提示する。
【0023】
ゲームコンソール102は、暗号化、解読、認証、デジタル署名、ハッシングなどの共通暗号機能を実行する暗号エンジンを実装する。暗号エンジンは、CPU 200の一部として実装することができ、またはCPU上で動作する、メモリ(例えばROM 204、ハードディスクドライブ208)内に格納されたソフトウェアで実装し、それによってCPUが暗号機能を実行するように構成することもできる。
【0024】
ゲーミングシステム100は、単にシステムをテレビジョンまたは他のディスプレイに接続することによってスタンドアロンシステムとして動作することができる。このスタンドアロンモードでは、ゲーミングシステム100により、1人または複数のプレイヤがゲームをプレイし、映画を視聴し、または音楽を聴くことが可能になる。しかし、ネットワークインタフェース232を介して利用可能にされるネットワークコネクティビティの統合により、ゲーミングシステム100はさらに、より大規模なネットワークゲーミングコミュニティ内の参加者として動作することができる。このネットワークゲーミング環境を次に説明する。
【0025】
ネットワークゲーミング
図3に、複数のゲーミングシステム100−1、100−2、...、100−gがローカルエリアネットワーク302を介して相互接続されている例示的ネットワークゲーミング環境300を示す。LAN 302は、有線媒体および無線媒体を含む広範な従来の通信媒体のうち任意の1つまたは複数を使用して実装することができる。一例として、LAN 302は、イーサネット(登録商標)クロスオーバケーブルまたはイーサネット(登録商標)ハブを表す。LAN 302の他の可能な実装には、FireWire(具体的にはIEEE 1394)およびユニバーサルシリアルバス(USB)が含まれる。
【0026】
多くのゲームタイトルは、異なるコンソール上の複数のプレイヤをサポートするようにスケーラブルである。LAN 302を介して複数のゲーミングシステムを相互接続することにより、複数のプレイヤが同じゲームで競うことが可能となる。例えば、一部のゲームタイトルでは、最大16人の異なるプレイヤが可能である。この最大16人の異なるプレイヤは、任意のプレイヤとゲーミングシステムの組合せ(例えば、16個のゲーミングシステム上のそれぞれ1人のプレイヤから、4個のゲーミングシステム上のそれぞれ4人のプレイヤまで)から構成することができる。
【0027】
ネットワークベースのゲームは、ゲームコンソールのうちの1つによってホスィングされる。この解説では、ゲーミングシステム100−1がクライアントゲーミングシステム100−2、...、100−gに関するゲームをホスティングすると仮定する。この状況では、ホスティング機能は、マルチプレイヤゲームへのプレイヤのアクセスを調整する機能である。「ホスティング」メタファ(metaphor)は、あるゲームコンソールが他のゲームコンソールにゲームコンテントを供給することを意味するのではない。各ゲームコンソール100−1〜100−gは、(例えばベンダのウェブサイトからオーセンティックなゲームタイトルを購入またはダウンロードして)ハードディスクドライブ208、またはデジタルビデオディスク(DVD)108−1、108−2、...、108−gによって代表されるポータブル記憶媒体のどちらかに格納された、各ゲームコンソール100−1〜100−g自体のゲームのコピーを有する。
【0028】
セキュア通信プロトコル
ネットワークゲーミング状態に関係するすべてのゲームコンソールは、始めに相互間のセキュア通信リンクを確立する。セキュア通信とは、改変に抵抗できるように2つのエンティティ間でデータを転送できることを意味する。転送されたデータは、エンティティによって認証することができ、トラステッドエンティティ(trusted entity)が実際にその特定のデータを送信したことを保証することができる。セキュア通信は、暗号化を使用することも使用しないこともある。暗号化により、効果的に、送信されるデータが監視者に対して見えないようにされる。暗号化を使用する場合、暗号化は認証の前または後に行うことができる。
【0029】
図3を参照すると、参加することを望む各クライアントゲームコンソール100−2〜100−gは、ホストゲーミングシステム100−1から許可を求める。ホストが望むなら、要求側クライアントコンソールとホストコンソールとの間にセキュア通信が確立される。セキュア通信リンクの確立は、3段階のプロセスによって実施される。簡潔に述べると、第1段階は、オーセンティックなゲームタイトルを実行するオーセンティックなゲームコンソールだけが知っている共用秘密鍵の生成に関係する。
【0030】
第2段階は、ホストゲームコンソールによってホスティングされている既存のゲームセッションをクライアントコンソールが発見することを試みるセッションディスカバリに関係する。セッションディスカバリ中に、クライアントコンソールは、ローカルエリアネットワークを介してディスカバ
リ要求を同報通信する。このディスカバリ要求は、次の好都合な機会にLANベースのゲームに加わりたいことを表す。このディスカバリ要求は、共用鍵を使用して保護される。クライアントコンソールがプレイすることにホストコンソールが同意した場合、ホストコンソールは、セッション鍵を含むディスカバリ応答を生成する。このディスカバリ応答は、同報通信を介して直接または間接にクライアントコンソールに返される。
【0031】
第3段階は、クライアントコンソールおよびホストコンソールが、1つまたは複数の秘密を導出するのに使用するデータを交換する鍵交換に関係する。この鍵交換は、セッション鍵を使用して保護される。次いでこの秘密を使用して、進行中の通信に関する複数のコンソール間のセキュアポイントツーポイントリンクを確立する。
【0032】
セキュア通信プロトコルの1つの可能な実装に従って、これらの段階を以下でより詳細に説明する。
段階I:共用秘密鍵の生成
図4に、オーセンティックなゲームタイトルを実行するオーセンティックなゲーミングシステムに固有の共用秘密鍵が生成される、セキュア通信プロトコルの第1段階400を示す。コンソールは、ROM 204の保護部分内など、セキュアな位置内に秘密鍵402を格納する。加えて、ゲーミングシステム上でプレイすることを認証された各ゲームタイトルは、関連する固有の、ランダムに生成されたタイトル鍵404を有する。タイトル鍵404は、同じゲームタイトルのあらゆるコピーに対して同じである。異なるタイトルは異なるタイトル鍵を有する。タイトル鍵404は、DVD上など、ゲームタイトルの一部として格納することができ、あるいはゲームコンソールのハードディスクドライブ上に格納するためにオンラインで正当に購入し、ダウンロードしたゲームタイトルのソフトコ
ピーと一緒に格納することができる。
【0033】
LAN鍵ジェネレータ406は、LAN鍵408を導出するためにコンソールベースの鍵402およびタイトルベースの鍵404を使用する。1つの実装では、LAN鍵ジェネレータ406は、ネットワークスタック初期化中に2つの鍵402および404を使用して一方向暗号化関数を計算する。適切な暗号化関数の一例として、LAN鍵ジェネレータ406は、鍵402および404を連結し、それに対してHMAC-SHA-1(Hashed Message Authentication Code-Secure Hash Algorithm 1)演算を実行してLAN鍵408を生成する。
【0034】
次いで、LAN鍵408を使用して共用秘密鍵を生成する。より具体的には、ネットワークスタックを初期化したとき、同報通信鍵ジェネレータ410は、LAN鍵408を使用してタイトル同報通信暗号鍵412およびタイトル同報通信シグニチャ鍵414を生成する。一例として、ジェネレータ410は、対称暗号、非対称暗号、ハッシングアルゴリズム、およびダイジェストアルゴリズムに対する鍵を生成することができる。
【0035】
初期化中に、同報通信鍵412および414の生成が1度実行される。同じタイトルを実行するすべてのゲーミングシステムは、同じ鍵の対を生成することになる。同じLAN上の異なるタイトルを実行する任意のゲーミングシステムは、異なる鍵の対を有することになる。鍵の組合せにより、単にゲームタイトルを読み取ることができることによって特定のゲームに対する同報通信メッセージを傍受し、または変更する方法を誰かが発見することが防止される。
【0036】
段階II:セッションディスカバリ
図5に、LAN上の任意の他のコンソールが特定のタイトルのマルチプレイヤゲームセッションを現在ホスティングしているかどうかをクライアントコンソールが発見することを試みる、セキュア通信プロトコルの第2段階500を示す。小規模のローカルエリアネットワーク上に接続されたわずか数個のコンソールでは、1つまたは2つより多くのコンソールが特定のゲームをホスティングしていることは考えられない。少数のコンソールでは、第3者の対戦組み合わせは存在せず、したがって、同報通信技法を介してクライアントコンソール自体に対する適切なホストをクライアントコンソールが発見するにまかされる。しかし、利用可能なゲームセッションの数は将来非常に多数になる可能性があり、適切なマッチを見つけるために専用の対戦組み合わせサービスが使用されるかもしれないこ
とに留意されたい。
【0037】
要求側クライアントコンソール100−2および潜在的なホストコンソール100−1によって実行されるオペレーションの一般的な流れの状況で第2段階を説明する。このようなオペレーションが実行される場所を伝えるために、オペレーションをクライアントコンソールおよびホストコンソールの下に示す。
【0038】
オペレーション502では、クライアントコンソール100−2が、要求メッセージおよび任意選択ノンス(nonce)Ni(起動側のノンス)を含む要求REQを生成する。オペレーション504では、クライアントコンソールは、タイトル同報通信暗号鍵412(KEと示す)を使用する対称鍵暗号E(例えばDES)を使用して、以下のように要求を暗号化する。
【0039】
REQE=EKE[要求メッッセージ,Ni
オペレーション506では、クライアントコンソールは、タイトル同報通信シグニチャ鍵414(KSと示す)を使用して、以下のように要求にデジタル署名する。
【0040】
REQES=SKS[REQE]
オペレーション508では、クライアントコンソールは、暗号化し、署名した要求REQESをLAN 302上の他のコンソールに同報通信する。ホストコンソール100−1は、予めUDP(user datagram protocol)ソケットをオープンしており、LANを介してディスカバリ同報通信メッセージを聴取している。同じゲームタイトルを実行するコンソールは、タイトル同報通信鍵412および414の同じ組を生成することができ、したがってメッセージを認証および解読することができるので、要求を認識することになる。しかし、異なるゲームタイトルを実行するコンソールは、メッセージを廃棄することになる。1つのホストコンソールが存在し、かつ同じゲームタイトルを実行していると仮定する(オペレーション510)。したがって、ホストコンソールは、段階I(図4)で与えたのと同様に、タイトル同報通信暗号鍵412およびタイトル同報通信シグニチャ鍵414
を導出することができる。
【0041】
オペレーション512では、ホストコンソールは、同じタイトル同報通信シグニチャ鍵414を使用して要求を認証する。オペレーション514では、ホストコンソールは、同じタイトル同報通信暗号鍵412を使用して、以下のようにメッセージを解読する。
【0042】
REQ=DKE[REQE]
オペレーション516では、ホストコンソールは、要求側クライアントコンソールがネットワークゲームに参加することが可能であるかどうかを判定する。この判定に影響を与える要素には、現在のプレイヤの数、ゲームでサポートするプレイヤの数、ゲームの現在の状況(すなわち、ちょうど開始したところ、セッションの中間など)などが含まれる。ホストコンソールが1つまたは複数のプレイヤを有する新しいクライアントコンソールを受諾すると仮定すると、ホストコンソールは、異なるセッション間を識別するのに使用する固有の鍵の対を生成する(オペレーション518)。これらの鍵は、ネットワーク鍵識別子NKIDおよびネットワーク鍵交換鍵NKEYを含む。識別子NKIDは、単に鍵NKEYに対する名前である。ある実装では、セッション鍵は乱数ジェネレータによって生成される。これらの鍵は、図6を参照しながら以下で説明する鍵交換段階で使用する。セッション鍵NKEYは将来、2つのコンソール間で交換される鍵交換パケットの内容を認証するのに使用することになり、一方鍵識別子NKIDは、ソースコンソールが接続されているゲームセッションを指定するのに使用する。セッション鍵NKIDおよびNKEYは、クライアントコンソールから何らかの要求を受信する前に事前生成できることに留意されたい。
【0043】
オペレーション520では、ホストコンソールがディスカバリ要求に対する応答を生成する。この応答は少なくとも、応答メッセージ、NKID/NKEY対、およびホストゲームコンソールのネットワークアドレスNADDRを含む。応答メッセージは、起動側のノンスNi、応答側のノンスNr、およびゲーム固有のデータを含むことができる。オペレーション522では、ホストコンソールは、タイトル同報通信暗号鍵412を使用して、以下のように応答を暗号化する。
【0044】
REPLYE=EKE[要求メッセージ,NKID,NKEY,NADDR]
オペレーション524では、ホストコンソールが、タイトル同報通信シグニチャ鍵414(KSと示す)を使用して、以下のように応答に署名する。
【0045】
REPLYES=SKS[REPLYE]
オペレーション526では、ホストコンソールが、ローカルエリアネットワーク302を介して要求側クライアントコンソール100−2を含む他のコンソールに応答を同報通信する。オペレーション528では、クライアントコンソールが、応答を認証および解読する。あらゆるホストコンソールは、ネットワークアドレス、ならびにゲームセッションに固有の暗号鍵および識別子を含むそれ自体の暗号同報通信応答で応答する。ネットワーク上で利用可能な1つまたは複数のホストを発見すると、クライアントはホストのセッション鍵対を使用して所望のホストと通信する。他の潜在的なホストによって返された他のどのセッション鍵対も廃棄される。
【0046】
段階III:鍵交換
図6に、クライアントとホストがセキュア鍵交換を実行して進行中の通信に関するセキュアポイントツーポイントリンクを確立する、セキュア通信プロトコルの第3段階600を示す。ゲームセッションディスカバリの後、クライアントコンソールとホストコンソールは、タイトル同報通信暗号鍵412、タイトル同報通信シグニチャ鍵414、ならびに特定のゲームセッションに対するセッション鍵対NKID/NKEYを共用する。次に、クライアントコンソールとホストコンソールは、1つまたは複数の鍵を導出するのに使用するデータを交換する。この1つまたは複数の鍵は、このセキュアポイントツーポイント通信に使用される。記載された実装では、コンソールは、Diffie-Hellman指数演算を使用して、2つのコンソール間で共用される新しい秘密を、LANを介して伝送することなく導出する。鍵交換はセッション鍵を使用して保護される。
【0047】
この解説では、クライアントコンソールが鍵交換の起動側であり、ホストが応答側であると仮定する。クライアントが第1パケットを送信するとき、クライアントは、ゲームクライアントとゲームホストとの間に確立されたセキュリティ関連がないことを通知する。パケットはパケットキュー上に配置され、鍵交換プロセスがスタートする。
【0048】
オペレーション602では、クライアントが初期鍵交換パケットKeyExInitを生成する。このパケットは、対称鍵を導出するのに使用する秘密を含む。この対称鍵は、ポイントツーポイント通信リンクでのセキュア通信で使用される。ある例示的実装では、鍵交換パケットは以下のデータを含むペイロードを有するUDPパケットである。
【0049】
【表1】

【0050】
オペレーション604では、クライアントコンソールがセッション鍵NKEYおよびハッシング関数Hを使用してメッセージ全体のハッシュダイジェストを次のように計算する。
HashInit=HNKEY[NonceInit,gx,NKID,NADDR,Time]
したがって、初期鍵交換パケットKeyExInitの作成は、ランダムノンス「NonceInit」の生成、Diffie-Hellman値の計算値「gX」の埋込み、NKIDおよびNADDRフィールドの埋込み、および「Time」フィールドの増分および設定を含む。他のすべてのフィールドは0にする。すべての先行するフィールドのハッシュダイジェスト(「HashInit」)は、パケットを受信側コンソール(例えばホストコンソール)で認証することができるように鍵交換パケットの「Hash」フィールド内に配置される。得られるパケットは以下のようになる。
【0051】
KeyExInit:[NonceInit,gX,NKID,NADDR,Time,HashInit]
オペレーション606では、クライアントコンソールが初期鍵交換パケットKeyExInitをホストコンソールに送信する。このメッセージを受信したとき、ホストコンソールは、NKIDフィールド内の鍵識別子を使用して、特定のゲームセッションの鍵NKEYを識別する。次いでセッション鍵を使用して、クライアントコンソールから発信されたものとしてメッセージを認証する(オペレーション608)。より具体的には、ホストはセッション鍵NKEYを使用してコンテントのハッシュダイジェストを計算し、そのダイジェストを、初期鍵交換パケットで受信した添付の「HashInit」値と比較する。
【0052】
オペレーション610では、ホストコンソールが応答鍵交換パケット(「KeyExResp」と示す)を作成する。続く例では、ホストコンソールがランダムノンス「NonceResp」を生成し、Diffie-Hellman関数gYから計算した値を埋め込み、NKIDおよびNADDRフィールドを埋め込み、「Time」フィールドを増分および設定する。「NonceInit」フィールドは、初期メッセージからコピーされる。
【0053】
オペレーション612では、ホストコンソールがセッション鍵NKEYを使用して応答パケットを以下のようにハッシュする。
HashResp=HNKEY[NonceInit,NonceResp,gY,NKID,NADDR,Time]
ハッシュダイジェストは鍵交換パケットの「Hash」フィールド内に配置される。次に、応答パケットは以下の内容を有する。
【0054】
KeyExResp: [NonceInit,NonceResp,gY,NKID,NADDR,Time,HashResp]
オペレーション614では、ホストコンソールがクライアントコンソールに応答鍵交換パケットKeyExRespを送信する。受信時に、クライアントコンソールは、NKIDフィールド内の鍵識別子を使用してセッション鍵NKEYを識別する。次いでセッション鍵NKEYを使用して、ホストコンソールから発信されたものとしてメッセージを認証する(オペレーション616)。すなわち、クライアントはセッション鍵NKEYを使用して応答パケットのハッシュダイジェストを計算し、そのダイジェストを、応答パケットで受信した添付の「HashResp」値と比較する。
【0055】
この時点で、ホストとクライアントはどちらも、セキュリティ関連鍵を計算するための十分なデータを有している(オペレーション618)。セキュリティ関連鍵は、2つのコンソール間のポイントツーポイント通信を保護するのに使用する。この例では、各コンソールは2つのDiffie-Hellman指数を使用して関数gXYを計算する。次いで各コンソールは、NonceInit、NonceResp、およびgXYを入力として使用し、かつセッション鍵NKEYを使用して4つの異なるダイジェストを計算することができる。これらのダイジェストは、セキュリティ関連鍵を形成するのに使用する。
【0056】
クライアントがセキュリティ関連鍵を有すると、鍵交換のために待機していた任意のパケットを自由に送信して完了することができる。しかし、ホストコンソールは、その応答メッセージKeyExRespが失われていなかったことが確かではないので、同じ鍵の組を有していても自由にそのようにすることができない。ホストは、KeyExAckメッセージを受信するか、または計算したセキュリティ関連鍵で認証されたパケットを受信するまで待機する(オペレーション620)。
【0057】
一般的なケースでは、クライアントコンソールはパケットをホストに送信し、したがって鍵交換プロセスは、2つのメッセージ、KeyExInitおよびKeyExRespだけからなる。クライアントが送信するパケットを有さない場合、クライアントは、擬似肯定応答メッセージ(「KeyExAck」と示す)を送信することになる。このメッセージは、セッション鍵NKEYの代わりに計算したセキュリティ関連鍵を使用してメッセージがハッシュされる点で、2つの他の鍵交換メッセージとは異なる。
【0058】
以後は、2つのコンソールがセキュリティ関連鍵を使用して、通信をセキュアにする。他のコンソールに送信する必要のあるすべてのネットワークパケットは、任意選択で暗号化した後に、認証データを検証する受信側コンソールでパケットコンテントを解読する前に認証される。ゲームセッションが終了した後、コンソールは、このセッション鍵対NKID/NKEYを使用する任意のコンソールからの鍵交換要求の受諾を停止することができる。セッション鍵の期間は、数分から数時間までと予想される。
【0059】
結論
本発明を構造的特徴および/または操作に特有の言い回しで説明したが、特許請求の範囲で定義される本発明は、説明した特定の特徴または操作に必ずしも限定されないことを理解されたい。むしろ、この特定の機能および操作は、特許請求の範囲の発明を実施する例示的形態として開示されている。
【0060】
以上説明したように本発明によれば、複数のゲームコンソールが、ローカルエリアネットワークを介してセキュア通信を確立することが可能になる。
【図面の簡単な説明】
【0061】
【図1】ゲームコンソールおよび1つまたは複数のコントローラを備えるゲーミングシステムを示す図である。
【図2】ゲーミングシステムのブロック図である。
【図3】図1のゲーミングシステムがローカルエリアネットワークを介して他のゲーミングシステムに接続されるネットワークゲーミングシステムを示す図である。
【図4】オーセンティックなゲームタイトルを実行するゲームコンソールが共用秘密鍵を生成する、セキュア通信プロセスの第1段階を示す図である。
【図5】クライアントゲームコンソールがローカルエリアネットワーク上のホストゲームコンソールを発見する、セキュア通信プロセスの第2段階を示す図である。
【図6】クライアントゲームコンソールとホストゲームコンソールがポイントツーポイント通信リンクを確立する、セキュア通信プロセスの第3段階を示す図である。
【符号の説明】
【0062】
100−1〜100−g ゲーミングシステム
102 ゲームコンソール
104−1〜104−4 コントローラ
106 ポータブルメディアドライブ
108−1〜108−g 光記憶ディスク
110a〜110d スロット
112 電源ボタン
114 イジェクトボタン
120 A/Vインタフェースケーブル
122 電源ケーブル
124 ケーブルまたはモデムコネクタ
130 シリアルケーブル
132−1、132−2a、132−2b サムスティック
134 Dパッド
136 ボタン
138 トリガ
140−1〜140−8 メモリユニット
200 CPU
202 メモリコントローラ
204 フラッシュROM
206 RAM
208 ハードディスクドライブ
210 レベル1キャッシュ
212 レベル2キャッシュ
214 共通モジュール
216 ATAバス
220 3Dグラフィックスプロセッサ
222 ビデオエンコーダ
224 オーディオプロセッサ
226 オーディオコーデック
228 A/Vポート
230 USBホストコントローラ
232 ネットワークインタフェース
240−1、240−2 デュアルコントローラポートサブアセンブリ
242 フロントパネルI/Oサブアセンブリ
244 ケーブルアセンブリ
250 システム電源モジュール
252 ファン
302 ローカルエリアネットワーク
400 セキュア通信プロトコルの第1段階
402 秘密鍵
404 タイトル鍵
406 LAN鍵ジェネレータ
408 LAN鍵
410 同報通信鍵ジェネレータ
412 タイトル同報通信暗号鍵
414 タイトル同報通信シグニチャ鍵
500 セキュア通信プロトコルの第2段階
600 セキュア通信プロトコルの第3段階

【特許請求の範囲】
【請求項1】
特定のゲームタイトルを実行するゲームコンソールに固有の秘密を導出するステップと、
前記秘密を使用して、ローカルエリアネットワークを介して複数のゲームコンソール間のセキュア通信リンクを確立するステップと
を備えたことを特徴とする方法。
【請求項2】
オーセンティックなゲームタイトルを実行するオーセンティックなゲーミングシステムにとって秘密である少なくとも1つの鍵を生成するステップと、
共通ローカルエリアネットワーク上の他のゲーミングシステムが前記ゲームタイトルをホスティングしているかどうかを発見するステップと、
前記ローカルエリアネットワークを介する前記ゲームタイトルのマルチシステムプレイを容易にするために、複数のゲーミングシステム間のセキュア通信リンクを確立するステップと
を備えたことを特徴とする方法。
【請求項3】
複数のゲームコンソールがローカルエリアネットワークを介して接続されているネットワークゲーミング環境における方法であって、
ホストゲームコンソールによってホスティングされているネットワークゲーミングセッションでのゲームタイトルのプレイに加わる要求を、クライアントゲームコンソールからローカルエリアネットワークを介して同報通信するステップであって、前記要求は、前記ゲームタイトルを実行する前記クライアントゲームコンソールに固有の秘密を含むステップと、
前記要求に対する応答を、ローカルエリアネットワークを介してホストゲームコンソールから同報通信するステップであって、前記応答は、セキュア通信リンクを確立するのに使用することができる情報を含むステップと
を備えたことを特徴とする方法。
【請求項4】
ゲームコンソール上に格納されたコンソールベースの鍵を取り出すステップと、
前記ゲームコンソール上で動作するゲームタイトルに関連するタイトルベースの鍵を取り出すステップと、
前記コンソールベースの鍵および前記タイトルベースの鍵から1つまたは複数の鍵を導出するステップと
を備えたことを特徴とする方法。
【請求項5】
実行時に請求項4に記載の方法を実行するコンピュータ実行可能命令を備えたことを特徴とする1つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項6】
複数のゲームコンソールがローカルエリアネットワークを介して接続されているネットワークゲーミング環境における方法であって、
前記ローカルエリアネットワーク上のホストゲームコンソールによってホスティングされているゲームタイトルのプレイに加わる要求を生成するステップと、
前記ローカルエリアネットワークを介して前記要求を同報通信するステップと、
前記ホストゲームコンソールから応答を受信するステップであって、前記応答は、1つまたは複数のセッション鍵を含むステップと、
前記ホストゲームコンソールとの将来のセキュア通信を容易にするために、前記応答からの前記セッション鍵を使用するステップと
を備えたことを特徴とする方法。
【請求項7】
実行時に請求項6に記載の方法を実行するコンピュータ実行可能命令を備えたことを特徴とする1つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項8】
複数のゲームコンソールがローカルエリアネットワークを介して接続’されており、少なくとも2つのゲームコンソールが同じゲームタイトルをプレイしているネットワークゲーミング環境における方法であって、
暗号鍵を導出するのに使用する第1のデータを含む初期パケットを形成するステップと、
前記初期パケットの第1のハッシュダイジェストを計算するステップと、
同じゲームタイトルをプレイしている前記ローカルエリアネットワーク上の他のゲームコンソールに、前記初期パケットおよび前記第1のハッシュダイジェストを送信するステップと、
前記他のゲームコンソールから、第2のハッシュダイジェストおよび第2のデータを含む応答パケットを受信するステップと、
前記第2のハッシュダイジェストを使用して前記応答パケットを認証するステップと、
前記第1のデータおよび第2のデータから1つまたは複数のセキュリティ関連鍵を導出するステップであって、前記セキュリティ関連鍵は、前記複数のコンソール間でセキュア通信するのに使用されるステップと
を備えたことを特徴とする方法。
【請求項9】
実行時に請求項8に記載の方法を実行するコンピュータ実行可能命令を備えたことを特徴とする1つまたは複数のコンピュータ読み取り可能な記録媒体。
【請求項10】
コンピュータ実行可能命令を備えたゲームコンソール用のコンピュータ読み取り可能な記録媒体であって、前記コンピュータ実行可能命令は、実行時に、
前記ゲームコンソールのメモリ内に格納された第1の鍵と、前記ゲームコンソール上で動作するゲームタイトルに関連する第2の鍵とを得るステップと、
前記第1の鍵および第2の鍵から1つまたは複数の鍵を導出するステップと
を前記ゲームコンソールに指令することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項11】
コンピュータ実行可能命令を備えたゲームコンソール用のコンピュータ読み取り可能な記録媒体であって、前記コンピュータ実行可能命令は、実行時に、
ローカルエリアネットワーク上のリモートホストゲームコンソールによってホスティングされているゲームタイトルのプレイに加わる要求を暗号化するステップと、
前記要求にデジタル署名するステップと、
前記ローカルエリアネットワークを介して前記要求を同報通信するステップと、
前記ホストゲームコンソールから少なくとも1つの同報通信の応答を聴取するステップと、
ホストゲームコンソールとの将来の通信を容易にするのに使用するため、前記応答の受信時に前記応答から少なくとも1つのセッションを抽出するステップと、
暗号鍵を導出するのに使用する第1のデータを含む初期パケットを形成するステップと、
前記セッション鍵を使用して、前記初期パケットの第1のハッシュダイジェストを計算するステップと、
前記初期パケットおよび前記第1のハッシュダイジェストを前記ホストゲームコンソールに送信するステップと、
前記ホストゲームコンソールから、第2のハッシュダイジェストおよび第2のデータを含む応答パケットを聴取するステップと、
前記セッション鍵および前記第2のハッシュダイジェストを使用して前記応答パケットを認証するステップと、
前記第1のデータおよび第2のデータから、前記ホストゲームコンソールとセキュア通信するのに使用する少なくとも1つのセキュリティ関連鍵を導出するステップと
を前記ゲームコンソールに指令することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項12】
コンピュータ実行可能命令を備えたゲームコンソール用のコンピュータ読み取り可能な記録媒体であって、前記コンピュータ実行可能命令は、実行時に、
ローカルエリアネットワーク上のリモートゲームコンソールから、ゲームタイトルのネットワークプレイを求める要求を受信するステップと、
前記ゲームタイトルのオーセンティックなバージョンを実行するオーセンティックなゲームコンソールによって生成されているものとして前記要求を認証するステップと、
前記要求を復号化するステップと、
前記リモートゲームコンソールがプレイすることが可能であるかどうかを判定するステップと、
前記リモートゲームコンソールがプレイ可能である場合、少なくとも1つのセッション鍵を含む応答を生成するステップと、
前記応答を暗号化しデジタル署名するステップと、
前記応答を前記リモートゲームコンソールに送信するステップと、
前記リモートゲームコンソールから、暗号鍵を導出するのに使用する第1のデータを含む初期パケットを受信するステップと、
前記セッション鍵を使用して前記初期パケットを認証するステップと、
暗号鍵を導出するのに使用する第2のデータを保持する応答パケットを形成するステップと、
前記応答パケットを前記リモートゲームコンソールに送信するステップと、
前記第1のデータおよび第2のデータから、前記リモートゲームコンソールとセキュア通信するのに使用する少なくとも1つのセキュリティ関連鍵を導出するステップと
を前記ゲームコンソールに指令することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項13】
第1の鍵を格納するためのメモリと、
ゲームコンソール上で実行するように構成されたゲームタイトルであって、関連する第2の鍵を有するゲームタイトルと、
前記メモリに結合されたプロセッサであって、前記第1の鍵および第2の鍵から少なくとも1つの暗号化鍵を導出するように構成されたプロセッサと
を備えたことを特徴とするゲームコンソール。
【請求項14】
メモリと、
前記メモリと結合され、オーセンティックなゲームタイトルを実行するときにゲームコンソールにとって秘密である少なくとも1つの鍵を生成するように構成されたプロセッサであって、前記ゲームタイトルをホスティングしている共通ローカルエリアネットワーク上のホストゲームコンソールを前記鍵を使用して発見し、前記ローカルエリアネットワークを介して前記ホストゲームコンソールとセキュア通信リンクを確立するようにさらに構成されているプロセッサと
を備えたことを特徴とするゲームコンソール。
【請求項15】
第1ゲームコンソールおよび第2ゲームコンソールを備えたシステムであって、
前記第1のゲームコンソールおよび第2のゲームコンソールは、ローカルエリアネットワークヘの接続を容易にするためのネットワーク接続を有し、同じゲームタイトルを実行し、前記同じゲームタイトルを実行することによって同一の鍵を生成するように構成されており、
前記第1ゲームコンソールは、前記ローカルエリアネットワークを介してメッセージを同報通信することによって前記第2のゲームコンソールを発見するように構成されており前記メッセージは前記鍵によって保護される
ことを特徴とするシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2007−190403(P2007−190403A)
【公開日】平成19年8月2日(2007.8.2)
【国際特許分類】
【出願番号】特願2007−64573(P2007−64573)
【出願日】平成19年3月14日(2007.3.14)
【分割の表示】特願2002−329923(P2002−329923)の分割
【原出願日】平成14年11月13日(2002.11.13)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】