説明

ゲームコンソールの製造方法およびその識別の評価方法

【課題】コンソール型のマルチユーザ識別プロセスにより、ゲームコンソールの複数のユーザは、識別エンティティとの単一の応答/要求の交換において相互に識別される。
【解決手段】結果として、1または複数のオンラインサービスに対して複数の本人識別の真正を証明することができる単一のチケットを入手する。また、アカウント生成サーバが、真のゲームコンソールが要求を作成することを確信することができる場合に、各ゲームコンソールに対する識別アカウントを最初に確立するために使用することができるハンドシェークプロセスが開示されている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンソール型ゲームシステムに関し、より詳細には、ゲームコンソールと識別エンティティとの間の、単一の応答/要求の交換において複数の識別情報を識別する方法に関する。
【背景技術】
【0002】
伝統的に、専用コンソールのゲームシステムは、限られた数(例えば4人)のプレイヤーに適合したスタンドアロン機であった。PC型のゲームは、ネットワーク(例えば、インターネット)を介して多くの遠隔プレイヤーとオンラインでゲームを行うことができるためにある程度人気がでてきた。従って、専用ゲームシステムの1つの傾向は、広帯域な性能を提供しオンラインゲームを容易にすることである。Microsoft Corporationは、最近、同社のXbox(登録商標)ビデオゲームシステムを発表し、これはゲーム機能を強化するためのハードディスクドライブ、及びオンラインゲームを容易にするための広帯域の接続性を装備している。
【0003】
専用コンソールのオンラインゲームシステムを制作することは、多くの独特の難しい問題を引き起こす。1つの問題は、参加者の識別に関する。オンラインゲームイベントを確立するために、あるゲームコンソールでプレイされているローカルゲームが、オンラインになり、他のゲームコンソール、プレイヤー、及び/またはオンラインサービスと通信を行う。このことは、参加者にある程度の信用を必要とする。ゲームは、ゲーム自身、ゲームコンソール、1または複数の現在マシン上にいるプレイヤーを識別することによって、安全な方法でネットワーク上の参加者に対して確立を試みる。加えて、ゲームコンソールは、ネットワークを介して通信する信用されたサービスを見つけることを望むこともある。
【0004】
PC型のゲームは、このような問題を経験することはない。例えば、PC型のゲームは、典型的には、同時に複数のユーザが体験することはなく、むしろたった1人のユーザがオンラインゲームに参加する。PC上では、ユーザは、キーボードを介して簡単にデータを入力することができ、信用されたサービスを構成しやすい。PCゲームが開始のために余分に5秒もあれば、PCゲームは識別サーバと複数のラウンドトリップを設けるので、不満を言う者はいない。このことは、ゲームの世界のことではない。
【0005】
【非特許文献1】Bruce Schneier、「Applied Cryptography: Protocols, Algorithms, and Source Code in C」John Wiley & Sons発行、1994(第2版 1996)
【発明の開示】
【発明が解決しようとする課題】
【0006】
従って、専用コンソールでの制限は、以下のような理由で、識別に困難な問題を有する。
・コンソールはキーボードを有していない。ゲームコントローラは、機器へのデータ入力には充分でなく、ユーザが入力するデータは最小限でなければならない。
・ゲームシステムは、プラグアンドゴー(plug-and-go)である。壁にプラグを差し込めばプレイできる。ゲームコンソールコミュニティにおいて、構成は予期されておらず、許容されていない。
・コンソールゲームは、できるだけ短いスタートアップ時間でプレイできなければならない。プレイヤーは、コンソールにゲームディスクを挿入し、スタートさせて、数秒後にゲームをプレイできると考えている。
・コンソールは、高い製品品質を保証するために閉じた開発環境にある。従って、コンソールは、信用されており品質が制御されたサービスとコンソールが通信していることを認識する必要がある。信用された通信の必要性は、外部のソースによりハードディスクドライブのデータになされた故意の損害が、再フォーマットせずに修復することを困難にまたは不可能にする点において、コンソールにハードディスクを付加することからさらに余儀なくされる。
【0007】
不正行為は、オンラインコンソール型のゲームコミュニティにおいて大きな問題にはなっていない。前もって問題が提起されているならば、不正行為に的を絞った解決の必要性がある。解決法の一部は、コンソールを可能な限り安全にし、中身をいじられないようにして、ユーザによるあらゆる干渉を発見し、またはコンソールで実行不可能にする。その上、セキュリティと反抗者に圧力を加える解決法は、詐欺を行うプレイヤーがPCソフトウェアを書いて、ネットワーク上のコンソール機をエミュレートする場合には防ぐことができず、ゲームコンソールなしに不正行為を行うことを助ける。
【0008】
このような詐称者の不正行為を防ぐには、コンソール機に要求したプレイヤーが真にそのプレイヤーか否かを確かめる識別手順の必要性がある。同様に、ゲームコンソールが本当に信用されたゲームコンソールであること、詐称者または妥協されたものでないことを保証する識別手順の必要性がある。
【課題を解決するための手段】
【0009】
コンソール型のマルチユーザ識別プロセスにより、ゲームコンソールの複数のユーザは、識別エンティティとの単一の応答/要求の交換において相互に識別される。
【0010】
記載された実施態様では、ゲームコンソールは、ハードディスクドライブ、ポータブルメディアドライブ、及びチケット発行エンティティと1または複数のオンラインサービスにネットワークアクセスするためのブロードバンド接続性を装備する。ゲームコンソールがオンラインサービスの使用を要求するとき、チケット発行エンティティからそのサービスのチケットを最初に入手する。ゲームコンソールは、ゲームコンソールの識別情報、複数ユーザの識別情報及び要求されたサービスの識別情報を含むチケット発行エンティティに要求を出す。
【0011】
これに応答して、チケット発行エンティティは、互いにオンラインサービス鍵で暗号化されたゲームコンソール識別情報と複数ユーザの識別情報とを含むチケットを生成する。チケット発行エンティティは、オンラインサービスを渡しているゲームコンソールにチケットを返送する。オンラインサービスは、チケットを使用して、ゲームコンソールと複数のユーザの真正を確かめる。このようにして、チケット発行エンティティから獲得された1つのチケットは、ゲームコンソールでプレイする複数のユーザと同様に、特定のゲームコンソールを判定する。
【0012】
ゲームコンソール識別情報は、ゲームコンソールが最初にオンラインゲームのゲームアカウントを確立した時に生成される。ゲームコンソールは、製造過程において、プログラム的に作成することができる情報の要素(例えば、ハードディスクID、CPU ID、シリアル番号、ランダム番号、ID叉はシリアル番号の関数で与えられる値、ハードドライブに書き込まれた数またはマーク等)で構成される。この情報は、データベースに記録され、後に識別サーバで利用可能になる。ゲームコンソールがゲームアカウントを要求する時、ゲームコンソールは、情報の要素を識別サーバに送る。データベースを使用して、サーバは、要素が正当か否かを見極め、まだアカウントを確立していないゲームコンソールに対応する。評価が正しければ、そのゲームコンソールのゲームアカウントが生成され、ゲームコンソール識別情報がゲームコンソールに割り当てられる。
【発明を実施するための最良の形態】
【0013】
以下の考察は、コンソール型オンラインゲームと1つの識別ラウンドトリップで、ゲームコンソール、ゲームタイトル、複数ユーザの複数の識別情報を識別する技術を示している。本論は、暗号化、復号化、識別、ハッシング及びデジタル署名などの基本的な暗号技術に精通しているものとする。暗号技術の導入は、例えば非特許文献1に示されている。
【0014】
(ゲームシステム)
図1は、例示的ゲームシステム100を示す。ゲームシステムは、ゲームコンソール102及び最多で4つのコントローラを含み、コントローラ104(1)と104(2)によって表わす。ゲームコンソール102は、内部ハードディスクドライブとポータブルメディアドライブ106とを装備し、これは、光学記憶ディスク108によって表わされるような様々な形式のポータブル記憶メディアをサポートする。適切なポータブル記憶メディアの例は、DVD、CD−ROM、ゲームディスク、ゲームカートリッジなどが含まれる。
【0015】
ゲームコンソール102は、4つのスロット110をその前面に有し、最多で4つのコントローラをサポートするが、スロットの数及び配列を修正することができる。パワーボタン112とイジェクトボタン114もゲームコンソール102の前面に配置される。パワーボタン112は、ゲームコンソールへの電力を切り替え、イジェクトボタン114は、ポータブルメディアドライブ106のトレイを交互に開閉して、記憶ディスク108の挿入及び抜出しを可能にする。
【0016】
ゲームコンソール102は、テレビまたは他のディスプレイ(図示せず)へ、A/Vインタフェースケーブル120を介して接続する。パワーケーブル122は、ゲームコンソールに電力を提供する。ゲームコンソール102は、さらにブロードバンド機能を付けて構成することができ、インターネットなどのネットワークへのアクセスを容易にするためのケーブルまたはモデムコネクタ124によって表わされる。
【0017】
各コントローラ104は、ゲームコンソール102へ、ワイヤまたはワイヤレスインタフェースを介して結合される。例示した実施態様では、コントローラは、USB(Universal Serial Bus)互換であり、コンソール102へシリアルケーブル130を介して接続される。コントローラ102は、ユーザとやりとりする様々な機構のいずれをも装備することができる。図1に例示したように、各コントローラ104は、2つのサムスティック132(1)及び132(2)、Dパッド134、ボタン136及び2つのトリガ138を装備する。これら機構は、単に典型的なものであり、他の既知のゲーム機構を、図1に示したものの代りに使用しまたは追加することができる。
【0018】
メモリユニット(MU)140をコントローラ104に挿入して、追加及びポータブルの記憶装置を設けることができる。ポータブルメモリユニットにより、ユーザがゲームパラメータを格納し、これらを他のコンソール上でプレイするために移すことができる。記載した実施態様では、各コントローラが2つのメモリユニット140を収容するように構成されるが、他の実施態様では2つより多いかあるいは少ないユニットを使用することができる。
【0019】
ゲームシステム100は、例えば、ゲーム、音楽及びビデオを再生することができる。異なる記憶の提供物により、タイトルをハードディスクドライブまたはドライブ106内のポータブルメディア108から、オンラインソースから、またはメモリユニット140から再生することができる。ゲームシステム100がプレイバックすることができるもの例は、以下のものを含む。
1.CD及びDVDディスクから、ハードディスクドライブから、またはオンラインソースから再生されるゲームタイトル。
2.ポータブルメディアドライブ106内のCDから、ハードディスクドライブ上のファイル(例えば、Windows(登録商標) Media Audio(WMA)フォーマット)から、またはオンラインストリーミングソースから再生されるデジタル音楽。
3.ポータブルメディアドライブ106内のDVDディスクから、ハードディスクドライブ上のファイル(例えば、Active Streaming Format)から、またはオンラインストリーミングソースから再生されるデジタルオーディオ/ビデオ。
【0020】
図2は、ゲームシステム100の機能要素をより詳細に示す。ゲームコンソール102は、中央処理装置(CPU)200とメモリコントローラ202とを有し、フラッシュROM(Read Only Memory)204、RAM(Random Access Memory)206、ハードディスクドライブ208及びポータブルメディアドライブ106を含む様々なタイプのメモリへのプロセッサアクセスを容易にする。CPU200は、レベル1キャッシュ210及びレベル2キャッシュ212を装備して一時的にデータを格納し、メモリアクセスサイクルの数を減らし、それにより処理速度及びスループットを向上させる。
【0021】
CPU200、メモリコントローラ202及び様々なメモリデバイスが1つまたは複数のバスを介して相互接続され、これらにはシリアルバス及びパラレルバス、メモリバス、周辺バス、及び様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスが含まれる。例として、このようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、拡張ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカルバス、及びMezzanineバスとしても知られるPeripheral Component Interconnects(PCI)バスを含むことができる。
【0022】
1つの適切な実施態様として、CPU200、メモリコントローラ202、ROM204及びRAM206は、共通モジュール214に統合される。この実施態様では、ROM204は、フラッシュROMとして構成され、これはメモリコントローラ202へ、PCI(Peripheral Component Interconnect)バス及びROMバス(いずれも図示せず)を介して接続される。RAM206は、多数のDDRSDRAM(Double Data Rate Synchronous Dynamic RAM)として構成され、これらは分離したバス(図示せず)を介して、メモリコントローラ202により独立して制御される。ハードディスクドライブ208とポータブルメディアドライブ106とは、メモリコントローラへ、PCIバス及びATA(AT Attachment)バス216を介して接続される。
【0023】
3Dグラフィックス処理装置220とビデオ符号器222とは、高速及び高解像度のグラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理装置220からビデオ符号器222へ、デジタルビデオバス(図示せず)を介して搬送される。オーディオ処理装置224とオーディオCODEC(符号器/復号器)226とは、高い忠実性及びステレオ処理を有する、対応するオーディオ処理パイプラインを形成する。オーディオデータは、オーディオ処理装置224とオーディオCODEC226との間で、通信リンク(図示せず)を介して搬送される。ビデオ及びオーディオ処理パイプラインは、テレビまたは他のディスプレイに伝送するためのA/V(オーディオ/ビデオ)ポート228にデータを出力する。例示した実施態様では、ビデオ及びオーディオ処理コンポーネント220〜228は、モジュール214上に取り付けられる。
【0024】
また、モジュール214に実装されるものには、USBホストコントローラ230とネットワークインタフェース232とがある。USBホストコントローラ230は、CPU200とメモリコントローラ202とへ、バス(例えば、PCIバス)を介して結合され、周辺コントローラ104(1)〜104(4)のためのホストとしての機能を果たす。ネットワークインタフェース232は、ネットワーク(例えば、インターネット、ホームネットワーク等)へのアクセスを提供し、イーサネット(登録商標)カード、モデム、Bluetoothモジュール、ケーブルモデムなどを含む、あらゆる様々なワイヤまたはワイヤレスインタフェース要素とすることもできる。
【0025】
ゲームコンソール102は、2つのデュアルコントローラサポートサブアセンブリ240(1)と240(2)とを有し、各サブアセンブリは、2つのゲームコントローラ104(1)〜104(4)をサポートする。フロントパネルI/Oサブアセンブリ242は、パワーボタン112とイジェクトボタン114の機能をサポートし、ならびにゲームコンソールの外面に露出されたあらゆるLED(発光ダイオード)または他のインジケータもサポートする。サブアセンブリ240(1)、240(2)及び242は、モジュール214へ、1または複数のケーブルアセンブリ244を介して結合される。
【0026】
8つのメモリユニット140(1)〜140(8)は、4つのコントローラ104(1)〜104(4)に、すなわち各コントローラについて2つのメモリユニットが接続可能であるように示されている。各メモリユニット140は、追加の記憶装置を提供し、ゲーム、ゲームパラメータ及び他のデータを格納することができる。コントローラに挿入されたとき、メモリユニット140は、メモリコントローラ202によってアクセスされる。
【0027】
システム電源モジュール250は、ゲームシステム100のコンポーネントに電力を供給する。ファン252は、ゲームコンソール102内の回路を冷却する。
【0028】
コンソールユーザインタフェース(UI)アプリケーション260は、ハードディスクドライブ208上に格納される。ゲームコンソールの電源が入れられたとき、コンソールアプリケーション260の様々な部分がRAM206及び/またはキャッシュ210、212にロードされ、CPU200で実行される。コンソールアプリケーション260は、グラフィカルユーザインタフェースを提示し、ゲームコンソール上で使用可能な異なるメディアタイプへナビゲートするときに一貫したユーザ体験を提供する。
【0029】
ゲームコンソール102は、暗号化、復号化、識別、デジタル署名、ハッシングなどの共通の暗号処理機能を達成する暗号処理エンジン実装する。暗号処理エンジンは、CPU200の一部に実装され、またはハードディスクドライブ208に格納されたソフトウェアでCPUにより実行され、CPUは、暗号処理機能を達成する。
【0030】
ゲームシステム100は、スタンドアロンシステムとして動作することができ、単にシステムをテレビまたは他のディスプレイに接続することによって行う。このスタンドアロンモードでは、ゲームシステム100により、1または複数のプレイヤーがゲームをプレイし、映画を見るか、または音楽を聴くことができる。しかし、ネットワークインタフェース232を介して使用可能にされたブロードバンド接続の統合により、ゲームシステム100をさらに、より大規模なネットワークゲームコミュニティ内の参加者として動作させることができる。このネットワークゲーム環境を次に記載する。
【0031】
(ネットワークゲーム)
図3は、例示的ネットワークゲーム環境300を示し、これは多数のゲームシステム100(1)、...、100(g)を、ネットワーク302を介して相互接続する。ネットワーク302は、幅広い種類のあらゆるデータ通信ネットワークを表す。これは、公開部分(例えば、インターネット)と専用部分(例えば、住宅向けのローカルエリアネットワーク(LAN))、ならびに公開及び専用部分の組み合わせを含むことができる。ネットワーク302は、ワイヤード及びワイヤレスメディアを含む、幅広い種類の従来の通信メディアのいずれか1または複数を使用して実施することができる。公開された及びメーカ独自のプロトコルを含む、幅広い種類の通信プロトコルを使用して、ネットワーク302を介してデータを通信することができる。このようなプロトコルの例には、TCP/IP、IPX/SPX、NetBEUIなどが含まれる。
【0032】
ゲームシステム100に加えて、1または複数のオンラインサービス304(1)、...、304(s)が、ネットワーク302を介してアクセス可能であり、オンラインゲームのホスト、ダウンロード可能な音楽またはビデオファイルの提供、ゲーム大会のホスト、ストリーミングオーディオ/ビデオファイルの提供など、参加者向けの様々なサービスを提供することができる。ネットワークゲーム環境300は、オンラインサービス304と同様に、個々のプレイヤー及び/またはゲームシステム100を認識して役割を果たす鍵配送センタ306を含むことができる。配布センタ306は、鍵及びサービスチケットを有効な参加者に配布し、これらを使用して多数のプレイヤー間でゲームを形成するか、またはオンラインサービス304からサービスを購入することができる。
【0033】
ネットワークゲーム環境300は、個々のゲームシステム100で使用可能な別のメモリソースであるオンラインストレージを導入する。ポータブル記憶メディア108、ハードディスクドライブ208及びメモリユニット140に加えて、ゲームシステム100(1)は、オンラインサービス304(s)のリモート記憶装置308によって例示されたように、リモートストレージで使用可能なデータファイルに、ネットワーク302を介してアクセスすることもできる。
【0034】
(複数ユーザの識別)
オンラインゲーム状態で参加するために、参加者ごとにそれ自身と他との識別を要求する。理想的に、識別されるべきエンティティは、ユーザ、ゲームタイトル及び権限を含むあらゆるオンラインサービスを含む。各エンティティを識別する一手法は、上述したSchneier本に開示された既知のKerberos識別プロトコルを利用することである。Kerberos識別プロトコルにより、各ユーザは、鍵配布センタで個々の識別サイクルを実行する。何故ならKerberosは、一度に1つのユーザ識別情報を識別するために使用するだけだから。あいにくこの結果、ゲーム内容について望まないあらゆるユーザの複数の識別サイクルを要する。
【0035】
複数ユーザの識別のために、ゲームシステムは、鍵配送センタとの1回の要求/応答の交換で、ゲームコンソール及び複数ユーザのすべてのエンティティを同時に識別することを許容する識別プロセスを実行する。さらに、単一のチケットを使用して、特定のゲームコンソールとゲームコンソールでプレイする複数ユーザの識別情報を証明する。このことは、ゲーム内容に充分であり、高い価値がある。例示した実施態様では、プロセスは、Kerberos型の識別プロトコルである。
【0036】
図4は、ユーザ識別プロセスにおいて最初の3人の参加者、ゲームシステム100(1)、オンラインサービス304、及び鍵配送センタ306を示す。参加者は、ネットワーク302(図4に図示せず)を介して互いにネットワーク接続され、暗号化、復号化、一方向ハッシュ、乱数発生、デジタル署名などの1または複数の暗号処理機能を実行することを可能にする。さらに、参加者は、オンラインゲームイベントに参加することができ、図示の参加者は、マルチユーザ識別プロセスに参加する参加者の例示的なセットを表す。
【0037】
本論の目的に対して、ゲームシステム100(1)の4人のユーザは、4つのコントローラ104(1)〜104(4)として表される。各ユーザは、識別情報U、U、U及びUが与えられ、ユーザ鍵K、K、K及びKが割り当てられる。ゲームコンソール102は、自身の識別情報Xとゲームコンソール鍵Kとが割り当てられる。(ゲームコンソール識別情報と鍵を割り当てる1例は、図6を参照して以下に説明する。)加えて、ゲームタイトルは、ここではゲームディスク108として示すが、分離した識別情報Gが割り当てられる。このような方法で、オンラインサービス304は、その識別情報Aと鍵Kとが割り当てられる。
【0038】
複数ユーザ識別プロセスは、2つのラウンドトリップ通信サイクルで導かれる4ステップのプロセスとして理解できる。最初の2つのステップは、ゲームシステム100(1)と鍵配送センタ306との間の、単一ラウンドトリップの要求/応答の交換で行い、図のパス402と404として示す。後の2つのステップは、ゲームシステム100(1)とオンラインサービス304との間の、単一ラウンドトリップの要求/応答の交換で行い、図のパス406と408として示す。406要求と408応答は、通常オンラインサービス要求に付加され、余分のラウンドトリップを受けることはない。従って、全ての識別プロセスは、参加者の間で最小限のやりとりによりすばやく搬送される。
【0039】
最初の要求/応答の交換の間、ゲームトステム100(1)は、鍵搬送センタ306に問い合わせる要求を送り、オンラインサービス304に参加する目的で(例えば、図4のパス402)、すべての識別情報、ゲームコンソールX、ゲームタイトルG、4人のユーザU、U、U及びUの代りに1つのチケットで発行する。鍵配送センタ306は、要求されたオンラインサービス(例えば、図4のパス404)に使用するチケットを生成し、返送する。このようにして、鍵配送センタ306は、サービスのチケットを発行するチケット発行エンティティとして機能する。
【0040】
2番目の要求/応答の交換の間、ゲームトステム100(1)は、識別のためにオンラインサービス304へチケットを送る(例えば、図4のパス406)。チケットは、オンラインサービスの第1の要求をといっしょの付加的な情報であり、分離された要求でまたはサービスが必要とされるまで送る必要はない。適していれば、オンラインサービス304は、ゲームシステム100(1)がオンラインサービス304の識別に使用することのできる応答(例えば、図4のパス408)を送り返す。すべてのエンティティが識別されたら、ゲームシステム100(1)は、オンラインサービスから返送された結果を信用し、オンラインサービス304と対話を続けることができる。
【0041】
図4に示したプロセスは、鍵配送センタ306から獲得した単一のチケットを使用して、ゲームコンソールと、ゲームコンソールでプレイする複数ユーザの識別情報を証明することができる点で有利である。このことは、各々の識別された本人に、複数のチケットを必要とする従来の方法より十分な効果がある。
【0042】
図5は、図4の3人の参加者により実行される複数ユーザ識別プロセス500を示す。プロセスは、参加者の様々な記憶メディアに格納されたコンピュータ実行可能な命令としてソフトウェアで実行される。実行されると、命令は、様々な参加者に向けられ、図5のブロックに示す動作を達成する。タスクは、ヘディングの下に、「鍵配送センタ」、「ゲームコンソール」及び「オンラインサービス」が示され、例示された位置に伝えられて、エンティティは、タスクを達成する。複数ユーザ識別プロセス500は、図4,5の双方を参照して示される。
【0043】
図5のブロック502において、ゲームコンソール102は、ユーザ識別情報U、U、U及びUと、ユーザ鍵K、K、K及びKとに基づいて、承認されたユーザ識別情報を生成する。さらに詳細には、承認されたユーザ識別情報は、ユーザ識別情報とユーザ鍵から導かれた値とを含む。承認されたユーザ識別情報は、要求とともに送られ、ゲームシステムがユーザ鍵の情報を有する鍵配送センタ306で証明に使用され、暗示的にユーザ識別する。
【0044】
鍵から派生した値を生成する1つの方法は、ゲームコンソールの鍵を使用して、ユーザ鍵の暗号ハッシュを計算することである。鍵KとユーザUについて、ハッシュHは以下のように計算される。
=HMACKX(K
ハッシュHは、鍵から派生した値を形成する。他の方法は、以下のようにユーザ鍵Kを使用して現在時刻を暗号化することである。
=EK1(T)
結果のハッシュHは、鍵から派生した値を形成する。承認されたユーザ識別情報は、ユーザ識別情報Uと一致する鍵から派生した値Hとの組み合わせである。
承認されたユーザ識別情報=(U, H
図5のブロック504において、ゲームコンソール102は、ゲームコンソール識別情報Xと、ゲームタイトル識別情報Gと、要求されたサービスのオンラインサービス識別情報Aと、複数の承認されたユーザ識別情報(U,H)、(U,H)、(U,H)及び(U,H)とを含む要求を構成する。要求は以下の文字列を有する。
要求=[X,G,A,(U,H),(U,H),(U,H),(U,H)]
【0045】
ゲームシステムがさらにオンラインサービスの識別を要求する場合には、他のサービスB,C,等の識別情報が要求に加えられる。さらに、要求は、識別プロトコルと、ゲームコンソールによって生成されたランダムノンス(random nonce)とを含み、応答の攻撃を阻止する。要求は、チェックサム値を含み、全体の識別情報の文字列の受信を確認する。ゲームコンソール102は、ネットワーク302を介して、鍵配送センタ306に要求を送る(例えば、パス402)。
【0046】
図5のブロック506において、鍵配送センタ306は、要求に含まれる識別情報と同様に、要求を評価する。鍵配送センタ306は、ゲームシステム100(1)により要求された各サービスで使用するランダムセッション鍵を生成する。本例においては、センタ306は、ゲームコンソール102とオンラインサービス304とが関わる第2の通信サイクルの間使用するランダムセッション鍵KXAを生成する。他のサービスが要求されれば、さらにランダムセッション鍵KXB,KXC,...が生成される。
【0047】
図5のブロック508において、鍵配送センタ306は、後に要求されたオンラインサービスに提示されるチケットを生成する。各要求されたサービスに1つのチケットが発行されるが、各チケットは、複数のユーザに有効である。チケットは、要求で提出された識別情報の文字列が含まれる。またチケットは、チケットが生成された時刻T、チケットの満了までの時間を確認する時間T及び要求されたサービスに対するランダムに生成されたセッション鍵KXAを含む。チケットの内容は、下記のように、オンラインサービス鍵Kを利用する対称鍵暗号(例えば、DES)により暗号化される。
TicketA=EKA[T,T,KXA,X,G,A,U,U,U,U
【0048】
鍵から派生した値Hと一致するチケットが導き出されるわけではないことに注意されたい。識別サーバが鍵から派生した値を読み、ゲームコンソールがユーザ鍵を知っていると信ずれば、識別サーバは、発行されたチケットの中のユーザの識別情報をおく。個々のオンラインサービスは、その後、チケットの言うところを信用するので、鍵から派生した値Hを見る必要がない。
【0049】
ゲームシステムが1より多いサービスのチケットを要求する場合には、鍵配送センタ306は、複数のチケットを発行し、各チケットは、以下のように要求されたオンラインサービスの公開鍵で暗号化される。
TicketB=EKB[T,T,KXB,X,G,B,U,U,U,U
TicketC=EKC[T,T,KXC,X,G,C,U,U,U,U

TicketN=EKN[T,T,KXN,X,G,N,U,U,U,U
【0050】
図5のブロック510において、鍵配送センタ306は、各チケットをネットワーク302を介してゲームシステム100(1)に返送する(例えば、パス404)。ゲームコンソール102は、オンラインサービス鍵Kを知らないので、ゲームコンソール102は、チケットと開くことができず、その内容を変えることができない。鍵配送センタは、添付された暗号化されたメッセージにおけるセッション鍵を返送する。セッション鍵のメッセージは、チケットが生成された時刻T、チケットの満了までの時間T及び1または複数のセッション鍵KXA,KXB,KXCなどを含む。全ての内容は、下記のように、ゲームコンソール鍵Kを使用して暗号化される。
SessionKeyMessage=EKX[T,T,KXA,KXB,KXC,...]
【0051】
セッション鍵のメッセージは、ゲームコンソール鍵Kで暗号化されるので、ゲームコンソール102は、セッション鍵のメッセージを開くことができ、セッションタイムパラメータとセッション鍵とを復元することができる。
【0052】
図5のブロック512において、ゲームコンソール102は、オンラインサービス304にチケットを渡す(例えば、パス406)。ゲームコンソール102は、以下のように、ランダムセッション鍵KXAで暗号化された現在時刻T(自身のIDに代えて)を生成し、送信する。
TimeMessage=EKXA[T]
図5のブロック514において、オンラインサービス304は、チケットの真正を評価する。オンラインサービス304は、以下のように、鍵Kを用いて復号化し、内容を復元する。
KA[TicketA]=T,T,KXA,X,G,A,U,U,U,U
【0053】
復号化された内容には、セッション鍵KXAを含む。オンラインサービスは、セッション鍵KXAを使用して、以下のように、時刻メッセージを復号化し、時刻Tを復元する。
KXA[TimeMessage]=T
【0054】
オンラインサービス304は、ゲームコンソールから送られ復元された時刻と現在時刻とを比較する。復元された時刻が、現在時刻から許容される制限時間内にない場合には、オンラインサービスは、ゲームコンソール102を真正とは認めず、チケットは偽物と認める。この場合には(ブロック516からNoに分岐)、オンラインサービスは、ゲームコンソールにサービスを提供しない。
【0055】
他方、復元された時刻が、現在時刻から許容される時間範囲内にある場合には、オンラインサービスは、ゲームコンソール102を真正と確信する。この場合には(ブロック516からYesに分岐)、オンラインサービスは、要求の時刻メッセージの時刻Tを含む応答を生成し、以下のように、セッション鍵KXAで暗号化する。
Reply=EKXA[T]
ブロック518において、オンラインサービス304は、ネットワーク302を介してゲームシステム100(1)に応答を返送する(例えば、パス408)。再び、応答は、通常オンラインサービス応答に付加され、余分の通信トリップを受けることはない。
【0056】
図5のブロック520において、ゲームコンソール102は、応答の真正を評価する。ゲームコンソール102は、過去に鍵配送センタ306からセッション鍵メッセージとして受信したセッション鍵KXAを用いて応答を復号化する。ゲームコンソール102が応答の復号化に成功し、Tの値が、時刻メッセージとして元々送ったTの値と同じならば、ゲームコンソールは、オンラインサービスはランダムセッション鍵KXAを知ることができないので、オンラインサービスを真正であると確信する。この場合には(ブロック522からYesに分岐)、ゲームコンソールは、オンラインサービスから提供されたサービスとの対話が自由になる(ブロック524)。他方、応答の復号化に成功しなければ(ブロック522からNoに分岐)、ゲームコンソールは、オンラインサービスを真正とは認めず、そのサービスをやめる。
【0057】
複数ユーザ識別プロセスは、Kerberos識別プロセスの3参加者モデルの上に構築される。Kerberosとの違いは、鍵配送センタとの1回のトリップと全てのユーザに対して1つのチケットで、複数ユーザを同時に識別できる点にある。拡張は、ある程度、新しいメッセージ文字列を定義して、参加者に渡すことを要する。
【0058】
代替の実施例は、従来のKerberosプロトコルで使用するすでに定義され存在するデータパケットによる手段である。Kerberosは、予め識別されたデータについて"Pre-Auth"として知られたデータフィールドを含むデータパケットを定義する。代替の実施例において、複数の承認されたユーザの識別情報(U,H)、(U,H)、(U,H)及び(U,H)は、"Pre-Auth"データフィールドに挿入され、全てのユーザは、同じ要求により識別される。また、発行されたKerberosチケットは、識別された(U,U,U,U)であるユーザ識別情報を含む余分の"Authorization Data"を含むように変更される。
【0059】
(ゲームコンソールの識別情報と鍵の証明)
上述した複数ユーザ識別プロトコルは、ある程度、ゲームコンソール識別情報Xと識別されたゲームコンソール鍵Kとを証明する能力次第である。この章では、どのようにしてこれらパラメータを最初に生成するかを説明する。
【0060】
一般に、ゲームコンソール102は、推測することが非常に難しく、アクセスすることが非常に難しい秘密情報とともに製造される。中身をいじられない設計法が、ハードウェアへの攻撃からゲームコンソール上の秘密情報を物理的に守るために用いられる。秘密情報は、バックエンドサーバに格納され、後でアカウントを生成するときに使用され、ゲームコンソールが真正か否かを確かめる。秘密情報は、コンソールの全てまたは一群で同一か、各コンソールごとに一意である。好ましくは、秘密情報は一意であり、情報が解決されても、1つの模造されたアカウントが生成されるだけである。
【0061】
安全なゲームコンソールの識別情報の証明は、コンソールの製造は規制された工程であること、全てのコンソールは製造された日付と関係なしに首尾一貫した特徴を有することに依存する。また、製造は、1または限定された数のエンティティにより制御されるので、各マシンに一意な秘密情報の強固で安全なデータベースは、バックエンドで生成され、使用されて、特定のゲームコンソールが実際にゲームコンソールアカウントが生成されたときに本当のコンソールであるかを確かめる。
【0062】
図6は、ゲームコンソール識別情報Xと識別されたゲームコンソール鍵Kとの証明に使用する秘密情報によりゲームコンソールを構成するプロセス600を示す。プロセス600は、製造過程とアカウント生成過程とで実行され、ゲームコンソールのオンラインゲームアカウントが生成される。2つの過程は、図6において、水平に引かれた破線で区別される。タスクは、ヘディングの下に、「製造」、「識別サーバ」及び「ゲームコンソール」が示され、例示された位置に伝えられて、タスクが達成される。
【0063】
ブロック602において、製造者は、製造時に1または複数の情報の断片を組み入れてゲームコンソールを組み立てる。情報は、好ましくはプログラム的に作ることができるタイプである。一実施例では、ゲームコンソールは、少なくとも2つの情報の断片を含み構築され、1つ目は、個々の機器ごとに一意であり、2つ目は推測し、アクセスすることが困難である。情報の第1の断片は、名称空間(name space)の中に平等に配される必要はなく、秘密または読むことが困難な必要はない。しかし、名称空間の中で一意であり、プログラム的にアクセスできることが必要である。例えば、情報の第1の断片は、製造者によって指定されたコンソールシリアル番号、ハードディスクドライブに印刷されたハードディスクID、またはあらゆるチップ、ROM、ファームウェアなどのシリアル番号かもしれない。情報の第1の断片は、ゲームコンソールの"name"として、特定のゲームコンソールと一致する表650の行を調べるのに用いられる。
【0064】
情報の第2の断片は、機器ごとに一意である必要はないが、名称空間に平等に配される。コードサイン法(code-signing techniques)などの安全な方法で、プログラム的にアクセスが許されるが、物理的なアクセスは、中身をいじられないようにしたり、物理的な攻撃とリバースエンジニアリングを困難にするハードウェア的な解決法により制御される。情報の第2の断片の例は、CPU IDの一方向ハッシュなど、CPU IDまたはCPU IDから導かれた値を含む。他の例は、製造時にディスク書き込まれたランダム鍵であり、ディスクドライブは、他の手段からの認められていない読み出し(CPU IDを使用するなど)から守られている必要がある。情報の第2の断片は、ゲームコンソールの"key"として、ゲームコンソールが本物であり、他のコンピュータ装置がゲームコンソールのふりをしているものでないことを立証する。
【0065】
ブロック604において、情報は、データベースレコードのセット650として製造者のデータベースに記録される。各レコードは、例えば、コンソールの識別情報、ハードディスクID(HDID)及びCPU IDを含む。ブロック606において、データベースレコード650は、鍵配送センタ306によりホストされ、またはされないかもしれない識別サーバで安全に利用できるようにする。一実施例では、安全なデータベース複製手続きを用いて、コンソールの情報データベースから識別サーバに安全に転送する。同じエンティティが、製造と識別サーバとを制御することもでき、またはできないことを注意されたい。
【0066】
この点について、2つの情報の断片は、ゲームコンソールの確認と、ゲームコンソール識別情報Xと鍵Kの生成に使用することができる。このような情報は、例えば、ゲームコンソールが有効で、偽装した汎用コンピュータでないことを証明する。
【0067】
プロセス600の製造を終える。ゲームコンソールは、製造過程から離れ、消費者に売られる。ユーザが最初にオンラインゲームをプレイするか、オンラインサービスにアクセスを決めたとき、ゲームコンソールは、最初にアカウントを獲得する。図6のアカウント生成過程が始まる。
【0068】
ブロック610において、ゲームコンソールは、情報または情報から導かれたデータを識別サーバに提供する。情報は、ゲームコンソールと識別サーバとの間に確立された安全なリンク(例えば、SSL)を介して送られる。一実施例では、ゲームコンソールは、メッセージの内容を守るSSLを使用するなど安全な接続が確立されたと仮定して、ハードディスクIDまたはCPU IDを提供する。CPU IDの暴露を防ぐために、他の実施例は、CPU IDの変わりに、結果の値からCPU IDを推測することが非常に困難な方法で、CPU IDの一方向ハッシュダイジェストを提供する。CPU IDの中身を証明し、攻撃の応酬から守るための別の方法は、現在時刻がCPU IDとともに暗号化されたECPUID(T)を鍵として送付することである。
【0069】
ブロック612において、識別サーバは、ゲームコンソールからの情報を評価する。一実施例では、識別サーバは、情報をコンソールデータベースレコード650のインデックスとして使用し、情報が断片の正しい組み合わせであることを確認する。例えば、識別サーバは、ゲームコンソールから渡されたハードディスクIDとCPU IDが、同じゲームコンソールに属するデータベースに記録された正しいペアをなしているか否かを判定する。もし正しければ、識別サーバは、クライアントが正しいゲームコンソールであると確信する。詐称者が情報の断片とその関係を、マニュアルでまたはプログラム的に推測することは非常に難しいからである。
【0070】
ブロック614において、識別サーバは、コンソールデータベースレコードを調べて、アカウントがすでにこの情報によって評価された否かを判定する。アカウントが存在しなければ(ブロック614からNoに分岐)、識別サーバは、アカウントを生成して、一意のゲームコンソール識別情報Xとランダムに生成された鍵Kとをそのアカウントに指定する(ブロック616)。アカウントが存在すれば(ブロック614からYesに分岐)、識別サーバは、存在するアカウント情報を抽出する(ブロック618)。ゲームコンソール識別情報Xと鍵Kとは、ゲームコンソールに返送される(ブロック620)。
【0071】
ブロック622において、ゲームコンソールは、ゲームコンソール識別情報Xと鍵Kとを、ハードウェアへの攻撃を防ぐ安全方法で格納する。また、識別情報Xと鍵KまたはEKX(X)で暗号化された識別情報とを含むメッセージを返送する。ゲームコンソールがメッセージを返送することにより、識別サーバは、ゲームコンソールが正しくアカウントデータを受信したか否か確かめることができる。復号化された識別情報が暗号化していない識別情報と等しければ、ゲームコンソールは、アカウントデータを正しく受信した。2つが等しくなければ、ゲームコンソールは、正しくないデータを受信したので、識別サーバは、アカウントを削除してブロック610からやり直す。ゲームコンソールから何も応答がなければ、識別サーバは、アカウントデータがゲームコンソールで応答を作成したか否か確かめることができない。この場合には、識別サーバは、アカウントに印を付けて、このゲームコンソールに対して正しい他の新しいアカウントを待つか(ゲームコンソールがアカウントデータを受信していないことを示す)、または正しいログオンを待つ(ゲームコンソールがアカウントデータを受信したことを示す)。
【0072】
ゲームのときに、コンソール機の実際の安全は、上述した複数ユーザ識別プロセスのように、識別情報Xと鍵Kとを介して達成される。
【0073】
(結論)
上述したプロセスは、多くの理由で有益である。第1に、複数のユーザ、ゲームタイトル、機器を含むゲームシステムに対して、鍵配送センタとの1回のラウンドトリップ通信で全ての識別を成し遂げるので、複数ユーザ識別プロセスは速い。この最初のラウンドトリップで、ゲームコンソールは、鍵配送センタとの再度の通信を行うことなしに、あらゆる信用されたサービスと通信することができる。プロセス全体が、ゲームが始まる前に、ユーザの最小限の入力と、最小限の遅延で達成される。識別サーバから獲得した1つのチケットは、特定のゲームコンソールだけでなく、ゲームコンソールでプレイする複数ユーザの識別情報を証明する点で一意である。このことは、複数のチケットの使用を必要とする(各識別された本人に対して1つの)従来の方法と対照的である。
【0074】
本発明を、構造的な特徴及び/または方法的な活動に特定した言葉で述べたが、添付の特許請求の範囲内に定義された本発明は、必ずしも記載された特定の特徴または活動に限定されないことを理解されたい。むしろ、特定の特徴及び活動は、特許請求の範囲に記載された発明を実施する例示的形態として開示される。
【図面の簡単な説明】
【0075】
【図1】ゲームコンソールと1または複数のコントローラのゲームシステムを示す図である。
【図2】ゲームシステムのブロック図である。
【図3】図1のゲームシステムがネットワークを介して他のコンソール、サービス及びチケット発行エンティティに接続されるネットワークゲームシステムを示す図である。
【図4】3人の参加者を含む複数ユーザ識別プロセスと、ゲームコンソール、チケット発行エンティティ及びオンラインサービスとを示す図である。
【図5】複数の識別情報、ゲームコンソール、ゲームタイトル、複数ユーザの識別を容易にする複数ユーザ識別プロセスの流れ図である。
【図6】複数ユーザ識別プロセスに使用されるゲームコンソール識別情報を確立するプロセスの流れ図である。
【符号の説明】
【0076】
100 ゲームシステム
102 ゲームコンソール
104(1)〜104(4) コントローラ
106 ポータブルメディアドライブ
108 ポータブルメディア
140(1)〜140(8) メモリユニット
200 中央処理装置
202 メモリコントローラ
204 フラッシュROMメモリ
206 RAMメモリ
208 ハードディスクドライブ
210 レベル1キャッシュ
212 レベル2キャッシュ
216 ATAケーブル
220 3Dグラフィックス処理装置
222 ビデオ符号器
224 オーディオ処理装置
226 オーディオコーデック
228 A/Vポート
230 USBホストコントローラ
232 NW I/F
240(1),240(2) デュアルコントローラポートサブアセンブリ
242 フロントパネルI/Oサブアセンブリ
250 システム電源供給モジュール
252 ファン
260 UIアプリケーション
300 ネットワークゲーム環境
302 ネットワーク
304(1)〜304(s) オンラインサービス
306 鍵配送センタ
308 リモートストレージ

【特許請求の範囲】
【請求項1】
識別情報に関係するゲームコンソールを構成することであって、前記識別情報は、ハードディスクドライブID、CPU ID、前記ハードディスクIDから導かれた第1の値、前記CPU IDから導かれた第2の値、前記ハードディスクドライブIDと前記CPU IDとの組み合わせから導かれた第3の値の少なくとも1つを含むことと、
前記ゲームコンソールが製造から離れた後に前記ゲームコンソールを識別するために使用するデータベースに前記識別情報を格納することと
を備えたことを特徴とするゲームコンソール製造方法。
【請求項2】
前記識別情報は、前記ゲームコンソールのハードウェア構成要素の1または複数のシリアル番号を備えたことを特徴とする請求項1に記載の方法。
【請求項3】
前記識別情報は、製造時に生成されたランダム鍵を備えたことを特徴とする請求項1に記載の方法。
【請求項4】
識別サーバによりアクセスするために前記データベースを識別サイトに安全に転送することをさらに備えたことを特徴とする請求項1に記載の方法。
【請求項5】
前記識別サーバにおいて、前記データベースで識別された前記ゲームコンソールに対するアカウント名称/パスワードを生成することをさらに備えたことを特徴とする請求項1に記載の方法。
【請求項6】
実行されると請求項1に記載の方法を達成するコンピュータ実行可能な命令を備えた1または複数のコンピュータ読み取り可能な媒体。
【請求項7】
製造時にゲームコンソールに関係する識別情報を、前記ゲームコンソールから受信することであって、前記識別情報は、ハードディスクドライブID、CPU ID、前記ハードディスクIDから導かれた第1の値、前記CPU IDから導かれた第2の値、前記ハードディスクドライブIDと前記CPU IDとの組み合わせから導かれた第3の値の少なくとも1つを含むことと、
前記ゲームコンソールが正当か否かを判定するために前記識別情報を評価することと
を備えたことを特徴とするゲームコンソールの識別の評価方法。
【請求項8】
前記評価することは、前記識別が正しいか否か判定するためにゲームコンソールの識別情報のデータベースを使用することを備えたことを特徴とする請求項7に記載の方法。
【請求項9】
前記評価することは、すでに確立された前記識別情報に関係する前記ゲームコンソールのアカウントか否かを確かめることを備えたことを特徴とする請求項7に記載の方法。
【請求項10】
前記ゲームコンソールが正当であるイベントにおいて、前記ゲームコンソールの識別情報と暗号鍵とを生成することをさらに備えたことを特徴とする請求項7に記載の方法。
【請求項11】
前記ゲームコンソールが正当であるイベントにおいて、前記ゲームコンソールのアカウントを生成することをさらに備えたことを特徴とする請求項7に記載の方法。
【請求項12】
実行されると請求項7に記載の方法を達成するコンピュータ実行可能な命令を備えた1または複数のコンピュータ読み取り可能な媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−323860(P2006−323860A)
【公開日】平成18年11月30日(2006.11.30)
【国際特許分類】
【出願番号】特願2006−172872(P2006−172872)
【出願日】平成18年6月22日(2006.6.22)
【分割の表示】特願2002−59394(P2002−59394)の分割
【原出願日】平成14年3月5日(2002.3.5)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】