説明

認証可能なゲームシステムを製造するためのアーキテクチャ

【課題】 コンソールベースのゲームシステムをオンライン参加のために遠隔の
エンティティに対して認証できるようにする仕方でコンソールベースのゲームシ
ステムを製造するためのアーキテクチャを提供すること。
【解決手段】 このアーキテクチャは、登録時中にゲームコンソールの真正性を
保証するのに後に使用することができる既成の秘密をコンソール製造中にそのゲ
ームコンソール上に配置することに関わる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンソールベースのゲームシステムに関し、より詳細には、オンラインゲームなどのオンラインサービスへの参加のために認証することができるゲームコンソールを製造するためのシステムおよび方法に関する。
【0002】
従来、専用コンソールを備えたゲームシステムは、限られた数のプレーヤ(例えば、4人)を受け容れる独立型マシンであった。ネットワーク(例えば、インターネット)を介して多数の遠隔のプレーヤとオンラインでゲームをすることができることにある程度、起因して、PCベースのゲームが普及した。したがって、専用ゲームシステムの1つの動向は、オンラインゲームを円滑にするブロードバンド機能を提供することである。
【0003】
専用コンソールのためにオンラインゲームアーキテクチャを作成することには、いくつかの固有の難しい問題がある。1つの問題は、様々なゲーム上の利点を得るため、オンラインゲーム中に不正行為を行おうと常に試みる何人かのハッカーが存在することである。この不正行為を阻止するため、ネットワークを介して伝送中のデータをハッカーによる観察および/または変更から保護するため、様々なセキュリティスキームが配備されている。しかし、そのようなスキームでは、遠隔のエンティティ(例えば、オンラインゲームサーバ、登録サーバ、その他のプレーヤシステム等)に対してゲームコンソールが自らを認証することが必要とされる。ゲーム中のネットワークトラフィックの真正性を保証するため、認証中、有効な証明が使用される。登録中に、これらの証明を容易に獲得することが可能である場合、ハッカーは、その証明を容易に操作し、別のコンピュータを使用してビデオゲームコンソールからのすべてのネットワークパケットを偽造することができる。ゲームサーバの観点からは、そのゲームパケットは、必要とされる証明を提供することができたネットワークソースから来ているため、真性のものであるように見える。
【発明の概要】
【発明が解決しようとする課題】
【0004】
したがって、オンラインゲームおよびその他のサービスを安全確実(secure)にするため、ハッカーが、不正行為を行う目的で、またはその他の不適切な使用の目的で有効な証明を容易に獲得するのを防止する必要が存在する。
【課題を解決するための手段】
【0005】
コンソールベースのゲームシステムを製造するためのアーキテクチャは、製造中、既成の秘密をゲームコンソール上に配置し、後にその秘密を使用して、登録時中にそのゲームコンソールの真正性を保証することに関わる。
【0006】
以下の2つの代表的な実施形態を説明する。対称鍵アーキテクチャ、および公開鍵アーキテクチャ。対称鍵アーキテクチャは、製造中、ランダムに生成された対称鍵をコンソールIDとともに、ゲームコンソールのプログラム式にアクセス可能な不揮発性メモリの中に書き込むことに関わる。対称鍵は、トランスポート中に公開鍵を使用して暗号化される。対応する秘密鍵、および暗号化された対称鍵は、認証エンティティにおいて安全確実に維持される。
【0007】
登録中に、ゲームコンソールは、この鍵(または鍵の知識の証拠)とコンソールIDのペアを認証エンティティに発行(submit)する。このペアは、認証エンティティにおいて維持される対応する対称鍵を探し出すパスワード/名前ペアとして機能する。次に、秘密鍵を使用して対称鍵が暗号化解除(decrypt)される。ゲームコンソールによって発行された鍵は、そのコンソールが真性のものであるかどうかを判定する方策として、回復された対称鍵に照らして鑑定される。
【0008】
公開鍵アーキテクチャは、製造中、各ゲームコンソールの中に秘密鍵およびデジタル証明書を書き込むことに関わる。この証明書は、秘密鍵に対応する公開鍵を含む。この証明書は、各製造現場における証明機関に関連する証明機関証明書、およびその証明機関証明書の導出元であるルート証明書を含む証明書連鎖の一部である。ゲームコンソールが登録のためにオンライン状態になるときはいつでも、そのコンソールが真性のものとして認証するのに、証明書連鎖検証プロセスが、そのゲームコンソール上に記憶された秘密鍵の知識(knowledge)の証拠とともに使用される。
【図面の簡単な説明】
【0009】
【図1】ゲームコンソールおよび1つ以上のコントローラを有するゲームシステムを示す図である。
【図2】ゲームシステムを示すブロック図である。
【図3】図1のゲームシステムが、ネットワークを介して他のコンソール、サービス、およびチケット発行エンティティに接続されているネットワークゲームシステムを示す図である。
【図4】製造中に、対称鍵およびコンソールIDがゲームコンソール上に配置される製造プロセスを示す図である。
【図5】認証サーバが、対称鍵およびコンソールIDを使用してゲームコンソールを認証する登録プロセスを示す図である。
【図6】公開鍵ペアおよび連鎖証明書が最初に生成される製造前プロセスを示す図である。
【図7】製造中に、秘密鍵および1つ以上の証明書がゲームコンソール上に配置される製造プロセスを示す図である。
【図8】認証サーバが、秘密鍵および証明書検証プロセスを使用してゲームコンソールを認証する登録プロセスを示す図である。
【発明を実施するための形態】
【0010】
以下の説明は、オンライン接続性を有するコンソールベースのゲームシステム、およびインターネットなどのオープンなネットワークを介して遠隔の認証エンティティによってそのようなゲームシステムを認証できるような仕方で、そのようなゲームシステムを製造するための技法を対象とする。この技法は、ネットワークの反対側のエンティティが許可されたゲームシステムであることの保証をどのように認証エンティティが得ることができるかという問題に対処する。
【0011】
この説明は、読者が、暗号化、暗号化解除(decryption)、認証、ハッシュ、デジタル署名、およびデジタル証明書などの基本的な暗号法の原理に精通していることを想定している。暗号法の基本的な概要に関しては、読者は、テキストを参照されたい(例えば、Bruce Schneierによる“Applied Cryptography: Protocols, Algorithms, and Source Code in C” (published by John Wiley & Sons, copyright 1994 (second edition 1996))という名称のテキスト参照)。このテキストは、参照により、本明細書に組み込まれる。
【0012】
ゲームシステム
図1は、例としてのゲームシステム100を示している。このゲームシステムは、ゲームコンソール102、およびコントローラ104(1)および104(2)で示した最高で4つのコントローラを含む。ゲームコンソール102は、内部ハードディスクドライブ、および光記憶ディスク108で示した様々な形態のポータブル記憶媒体をサポートするポータブルメディアドライブ106を備えている。適切なポータブル記憶媒体の例には、DVD、CD−ROM、ゲームディスク、ゲームカートリッジ、その他が含まれる。
【0013】
ゲームコンソール102は、最高で4つのコントローラをサポートする4つのスロット110をその前面上に有するが、スロットの数および構成は、変更することができる。また、電源ボタン112およびイジェクトボタン114もゲームコンソール102の前面上に配置されている。電源ボタン112は、ゲームコンソールの電源の切り替えを行い、イジェクトボタン114は、ポータブルメディアドライブ106のトレイの開閉を交互に行って記憶ディスク108の挿入および引抜きを可能にする。
【0014】
ゲームコンソール102は、A/Vインターフェースケーブル120を介してテレビジョンまたはその他のディスプレイ(図示せず)に接続する。電源ケーブル122が、ゲームコンソールに給電を行う。ゲームコンソール102は、インターネットなどのネットワークに対するアクセスを円滑にするケーブルまたはモデムコネクタ124で示されるブロードバンド機能を備えるようにさらに構成することも可能である。
【0015】
各コントローラ104は、有線インターフェースまたは無線インターフェースを介してゲームコンソール102に結合される。図示した実施形態では、コントローラは、USB(Universal Serial Bus)対応であり、シリアルケーブル130を介してコンソール102に接続される。コンソール102は、多種多様なユーザ対話機構を備えていることが可能である。図1に示す通り、各コントローラ104は、2つのサムスティック132(1)および132(2),Dパッド134、ボタン136、および2つのトリガ138を備えている。以上の機構は、単に代表的なものであり、図1に示したものに、その他の周知のゲーム機構を代用すること、または追加することが可能である。
【0016】
メモリユニット(MU)140をコントローラ104に挿入して追加のポータブルストレージを提供することができる。ポータブルメモリユニットにより、ユーザは、他のコンソール上でゲームをするためにゲームパラメータを記憶して持ち運ぶことができるようになる。説明する実施形態では、各コントローラは、2つのメモリユニット140を収容するように構成されるが、他の実施形態では、2つより多い、または2つより少ないユニットを使用することができる。
【0017】
ゲームシステム100は、例えば、ゲーム、音楽、およびビデオを再生することができる。様々なストレージが提供されて、タイトルをハードディスクドライブ、またはドライブ106の中のポータブルメディア108から、またはオンラインソースから、またはメモリユニット140から再生することが可能である。ゲームシステム100が再生することができるもののサンプルとして以下が含まれる。
【0018】
1.CDディスクおよびDVDディスクから、ハードディスクドライブから、またはオンラインソースから再生されるゲームタイトル。
2.ポータブルメディアドライブ106の中のCDから、ハードディスクドライブ上のファイル(例えば、Windows(登録商標)Media Audio(WMA)形式)から、またはオンラインストリームソースから再生されるデジタル音楽。
3.ポータブルメディアドライブ106の中のDVDディスクから、ハードディスクドライブ上のファイル(例えば、Active Streaming形式)から、またはオンラインストリームソースから再生されるデジタルオーディオ/ビデオ。
【0019】
図2は、ゲームシステム100の機能上の構成要素をより詳細に示している。ゲームコンソール102は、中央処理装置(CPU)200と、フラッシュROM(読取り専用メモリ)204、RAM(ランダムアクセスメモリ)206、ハードディスクドライブ208、およびポータブルメディアドライブ106を含む様々なタイプのメモリに対するプロセッサアクセスを円滑にするメモリコントローラ202とを有する。CPU200は、一時的にデータを記憶し、したがって、メモリアクセスサイクルの回数を減少させ、これにより処理速度およびスループットを向上させるレベル1キャッシュ210およびレベル2キャッシュ212を備えている。
【0020】
CPU200、メモリコントローラ202、および様々なメモリデバイスは、様々なバスアーキテクチャの任意のものを使用するシリアルバス、パラレルバス、メモリバス、周辺バス、およびプロセッサバスまたはローカルバスを含む1つ以上のバスを介して相互接続されている。例として、そのようなアーキテクチャには、インダストリスタンダードアーキテクチャ(Industry Standard Architecture)(ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture)(MCA)バス、エンハンストISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(Video Electronics Standards Association)(VESA)ローカルバス、およびペリフェラルコンポーネントインターコネクツ(Peripheral Component Interconnects)(PCI)バスが含まれることが可能である。
【0021】
1つの適切な実施形態として、CPU20、メモリコントローラ202、ROM204、およびRAM206を共通モジュール214上に組み込むことができる。この実施形態では、ROM204は、PCI(ペリフェラルコンポーネントインターコネクツ)バスおよびROMバス(どちらも図示せず)を介してメモリコントローラ202に接続されるフラッシュROMとして構成される。RAM206は、別個のバス(図示せず)を介してメモリコントローラ202によって独立に制御される複数のDDR SDRAM(Double Data Rate Synchronous Dynamic RAM)として構成される。ハードディスクドライブ208およびポータブルメディアドライブ106が、PCIバスおよびATA(AT Attachment)バス216を介してメモリコントローラに接続される。
【0022】
3Dグラフィックス処理装置220およびビデオエンコーダ222が、高速かつ高解像度のグラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理装置220からビデオエンコーダ222にデジタルビデオバス(図示せず)を介して搬送される。オーディオ処理装置224およびオーディオCODEC(エンコーダ/デコーダ)226が、高忠実度のステレオ処理を備えた対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンク(図示せず)を介してオーディオ処理装置224とオーディオCODEC226の間で搬送される。ビデオ処理パイプラインおよびオーディオ処理パイプラインは、テレビジョンまたはその他のディスプレイに伝送するためにデータをA/V(オーディオ/ビデオ)ポート228に出力する。図示する実施形態では、ビデオ処理構成要素およびオーディオ処理構成要素220−228が、モジュール214上に実装される。
【0023】
また、モジュール214上には、USBホストコントローラ230およびネットワークインターフェース232も実装される。USBホストコントローラ230は、バス(例えば、PCIバス)を介してCPU200およびメモリコントローラ202に結合され、周辺コントローラ104(1)−104(4)のためのホストの役割をする。ネットワークインターフェース232は、ネットワーク(例えば、インターネット、ホームネットワーク等)に対するアクセスを提供し、イーサネット(登録商標)カード、モデム、Bluetoothモジュール、ケーブルモデム等を含む多種多様な様々な有線または無線のインターフェース構成要素であることが可能である。
【0024】
ゲームコンソール102は、2つのゲームコントローラ104(1)−104(4)をそれぞれがサポートする2つのデュアルコントローラサポートサブアセンブリ204(1)および204(2)を有する。フロントパネルI/Oサブアセンブリ242は、電源ボタン112およびイジェクトボタン114の機能性をサポートし、またゲームコンソールの外面上に表出したあらゆるLED(発光ダイオード)またはその他のインディケータをサポートする。サブアセンブリ240(1),240(2),および242は、1つ以上のケーブルアセンブリ244を介してモジュール214に結合される。
【0025】
図では、8つのメモリユニット140(1)−140(8)が、4つのコントローラ104(1)−104(4)に、すなわち、各コントローラごとに2つのメモリユニットに接続可能である。各メモリユニット140は、ゲーム、ゲームパラメータ、およびその他のデータを記憶することができる追加のストレージを提供する。コントローラに挿入されたとき、メモリユニット140は、メモリコントローラ202によってアクセスされることが可能である。
【0026】
システムパワーサプライモジュール250により、ゲームシステム100の構成要素に給電が行われる。ファン252が、ゲームコンソール102内部の回路を冷却する。
【0027】
コンソールユーザインターフェース(UI)アプリケーション260が、ハードディスクドライブ208上に記憶される。ゲームコンソールに電源が投入されたとき、コンソールアプリケーション260の様々な部分が、RAM206および/またはキャッシュ210、212にロードされ、CPU200上で実行される。コンソールアプリケーション260は、ゲームコンソール上で利用可能な異なる媒体タイプにナビゲートする際、整合性のあるユーザ体験を提供するグラフィカルユーザインターフェースを提供する。
【0028】
ゲームコンソール102は、暗号化、暗号化解除、認証、デジタル署名、ハッシュなどの一般的な暗号化機能を行う暗号化エンジンを実装する。暗号化エンジンは、CPU200の一部として実装し、またはCPU上で実行されるハードディスクドライブ208上に記憶されたソフトウェアとして実装して、暗号化機能をCPUが実行するように構成することが可能である。
【0029】
ゲームシステム100は、システムを単にテレビジョンまたはその他のディスプレイに接続することによって独立型システムとして動作させることが可能である。この独立型モードでは、ゲームシステム100により、1人以上のプレーヤが、ゲームを行うこと、映画を観ること、または音楽を聴くことができる。しかし、ネットワークインターフェース232を介して利用可能になるブロードバンド接続性が組み込まれると、ゲームシステム100は、より広いネットワークゲームコミュニティの参加者としてさらに動作されることが可能である。次に、このネットワークゲーム環境を説明する。
【0030】
ネットワークゲーム
図3は、ネットワーク302を介して複数のゲームシステム100(1),...100(g)を相互接続する例としてのネットワークゲーム環境300を示している。ネットワーク302は、多種多様なデータ通信網の任意のものを表す。ネットワーク302は、公共部分(例えば、インターネット)およびプライベート部分(例えば、住宅のローカルエリアネットワーク(LAN))、並びに公共部分とプライベート部分の組み合わせを含むことが可能である。ネットワーク302は、有線媒体と無線媒体の両方を含む多種多様な従来の通信媒体の任意の1つ以上を使用して実装することが可能である。公用のプロトコルと独自のプロトコルの両方を含め、多種多様な通信プロトコルの任意のものを使用して、ネットワーク302を介してデータを通信することができる。そのようなプロトコルの例には、TCP/IP、IPX/SPX、NetBEUI等が含まれる。
【0031】
ゲームシステム100に加えて、1つ以上のデータセンタが、ネットワーク302を介してアクセス可能であり、参加者に対する様々なサービスを提供することが可能である。例としてのデータセンタ304が、個々のゲームシステム100を登録する認証サーバ306と、オンラインゲームをホストすること、ダウンロード可能な音楽ファイルまたはビデオファイルを提供すること、ストリーミングオーディオ/ビデオファイルを提供することなどの様々なサービスを提供する1つ以上のオンラインサーバ308(1),...308(s)を含むものとして図示されている。認証サーバ306は、製造中、個々のゲームシステム上に配置される製造秘密を記憶するデータベース310に対するアクセスを有する。これらの秘密は、ゲームシステムがオンラインゲームまたはその他のサービスに参加できるようにするのに先立ってゲームシステムを登録または認証するために使用される。
【0032】
認証サーバ306、オンラインサーバ308、およびデータベース310が、データセンタ304を形成するように論理式にグループ化されるが、様々なコンピュータシステムが物理的に一緒に配置されるように、または同様の設備の一環であるようにしても、しなくてもよいことに留意されたい。さらに、図では、認証サーバ306は、オンラインサーバ308と別個であるが、認証機能性をサービスの一環として含めることも可能である。
【0033】
ネットワークゲーム環境300には、個々のプレーヤおよび/またはゲームシステム100を互いに、またオンラインサービス304に対して認証する際にある役割をする鍵配信センタ312がさらに関与することが可能である。配信センタ312は、有効な参加者に鍵およびサービスチケットを配信し、次に、参加者が、その鍵およびチケットを使用して複数のプレーヤ間でゲームを構成すること、またはオンラインサービス308からサービスを購入することが可能である。配信センタ312は、データセンタ304に組み込むこと、または図示する通り、独立に存在することが可能である。
【0034】
オンラインゲーム(またはその他のネットワークサービス)に参加するため、ゲームシステム100は、まず、認証サーバ306によって認証されることを求める。オンラインサービスに参加する許可を与えるのに、認証サーバ306は、各ゲームシステムが真性であり、不適切なコンピュータ装置でないことを信頼する必要がある。真性のゲームシステム100は、秘密がデータベース310の中に記憶されて製造されている。認証サーバ306は、これらの秘密を使用して、ゲームシステム100が真性であるかどうかを識別する。次節で、インターネットなどのオープンネットワークを介してオンラインゲームのために認証されることが可能なゲームシステムを製造するための技法を説明する。
【0035】
認証されると、ゲームシステムは、オンラインゲームまたはその他のサービスに参加すること、または鍵配信センタを使用して個々のユーザの認証に取りかかることができる。マルチユーザ認証アーキテクチャが、より詳細に説明されている(例えば、2001年3月9日出願の「Multiple User Authentication for Online Console-Based Gaming」という名称の米国特許出願、シリアル番号09/802795参照)。この出願は、Microsoft(登録商標) Corporationに譲渡され、参照により、本明細書に組み込まれる。
【0036】
認証可能なゲームシステムを製造すること
コンソール認証問題に対処するゲームシステムを製造するためのアーキテクチャを提供する。簡単に述べると、問題は、どのように認証エンティティが、ネットワークの反対側のエンティティが真性のゲームコンソールであるという確証を得ることができるかということである。本アーキテクチャは、一般に、製造中にゲームコンソール上に認証可能なデータである秘密を記憶し、対応する検証データを認証エンティティにおいて維持することに関わる。登録中に、認証エンティティは、その検証データを使用して、ゲームコンソールによって発行された認証可能なデータを検証してゲームコンソールの真正性を判定する。以下の2つの代表的なアーキテクチャを説明する。(1)対称鍵アーキテクチャ、および(2)公開鍵アーキテクチャ。
【0037】
対称鍵アーキテクチャ
対称キーアーキテクチャは、製造中、ランダムに生成された対称鍵をコンソールIDとともにゲームコンソール上に書き込むことに関わる。後に、この鍵/IDペアは、登録中に、ゲームコンソールが真性であることを認証サーバに証明するパスワード/名前ペアとして機能する。製造プロセスを示す図4、および登録プロセスを示す図5を参照して本アーキテクチャを説明する。
【0038】
図4は、製造中、対称鍵およびコンソールIDがゲームコンソール上に配置されるれ例としての製造プロセス400を示している。説明のため、製造業者は、1つ以上の製造コンピュータシステム450および製造データベース452をそれぞれが含む1つ以上の製造設備を運用するものとする。製造データベースは、ときとして、「系統データベース」と呼ばれる。製造コンピュータシステム450は、ゲームコンソールに配置されるソフトウェア/ファームウェアをプログラミングする、構成する、または別の仕方でイネーブル状態にするのに使用される。
【0039】
工程402において、固有識別子Niが、それぞれの製造されたコンソール102(i)に割り当てられる。コンソールIDは、例えば、製造されたコンソールの連番または通し番号であることが可能である。工程404において、対称鍵Kiが、コンソール102(i)のためにランダムに生成される。工程406において、対称鍵Kiおよびコンソール識別子Niが、コンソール102(i)のプログラム式にアクセス可能な不揮発性メモリの中に記憶される。記憶の場所は、好ましくは、ゲームコンソール所有者によるアクセスから安全(secure)であり、かつ/または秘密であるが、それ以外では、許可されたゲームコンソールによってプログラム式にアクセス可能である。可能な場所には、EEPROM、ハードドライブ、またはフラッシュROMが含まれるが、以上には限定されない。また、Ki/Niペアを暗号式に保護して、ゲームコンソール所有者によるアクセスをさらに防止することができる。
【0040】
Ki/Niペアは、登録プロセス中に使用されてゲームコンソールの真正性を証明する。したがって、Ki/Niペアは、ゲームコンソールを登録することを担うデータセンタ304への転送のため、製造中に収集される。ただし、鍵/IDペアの転送および記憶は、発見される可能性のリスクを導入する。記憶および転送に関して対称鍵のセキュリティを確保するため、対称鍵は、対称鍵Kiが生成された直後に転送公開鍵Kt_pubを使用して暗号化され、ゲームコンソールの中に記憶される(工程408)。暗号化解除を行って対称鍵Kiにアクセスするのに使用される対応する転送秘密鍵Kt_prvは、データセンタ304において安全確実に維持され、ゲームコンソールの登録中に使用されるときだけにアクセスされる。
【0041】
工程404−408の1つ以上が、製造コンピュータシステム450によって行われる、あるいは、ゲームコンソール自体によって行われるのが可能であることに留意されたい。鍵Kiがどこで生成され、暗号化されるかに関わらず、目標は、この鍵が生の状態で存在する時間を可能な限り短くすることである。この時間を最小限に抑えることにより、セキュリティがさらに高まる。
【0042】
対称鍵Kiは、公開鍵暗号以外の暗号法上の暗号を使用して暗号化できることにさらに留意されたい。例えば、対称鍵暗号を使用して、製造業者およびデータセンタにおいて安全確実に維持される対称鍵Kiを暗号化することができる。
【0043】
工程410において、暗号化された対称鍵(E(Kt_pub,Ki)で示す)が、コンソール識別子Niとともに製造業者データベース452の中に記憶される。工程412において、すべての製造されたコンソールに関するコンソール識別子Niおよび暗号化された対称鍵(E(Kt_pub,Ki)が、製造業者データベース452からデータセンタ304に個々に、または一括で転送される。この情報は、ネットワークを介する電子式伝送、ポータブル記憶媒体上の安全確実な輸送、またはその他の手段による任意のいくつかの異なる技法に従って転送することができる。
【0044】
この時点で、ゲームコンソールは、製造が終了し、流通および販売のために梱包される。ゲームコンソールが購入された後、所有者が、ゲームをすること、またはオーディオ/ビデオファイルをダウンロードすることなどのオンラインサービスに参加するのを望むことが可能である。ゲームコンソールは、オンラインサービスに最初に遭遇したとき、登録プロセスを行って自らの真正性をそのオンラインサービスに対して証明する。説明のため、ゲームコンソールが、データセンタ304の認証サーバ306に登録して、1つ以上のオンラインサーバ308によってホストされているオンラインゲームイベントに参加できるようになるものと想定する。
【0045】
図5は、データセンタ304における認証サーバ306がゲームコンソール102(i)を認証する例としての登録プロセス500を示している。工程502において、コンソール102(i)が、認証プロトコルの一環として、対称鍵(または鍵の知識の証拠)とコンソールIDのペア(例えば、Ki,Ni)をデータセンタ304における認証サーバ306に発行する。対称鍵Kiは、通常、認証プロトコル中に何らかの形で保護され、一方、コンソール識別子Niは、保護される必要がない。この工程中、Kerberos、Digest、およびHTTP Basicを含む多くの異なる認証プロトコルを使用することができる。ネットワークを介する通信はすべて、オプションとして、安全なチャネル(例えば、SSLチャネル)内でセキュリティ確保することができる。
【0046】
工程504において、認証サーバ306が、コンソール識別子Niを使用して製造業者の秘密データベース310の中で関連する対称鍵をルックアップする。このルックアップの結果、コンソール102(i)に関するデータレコード520がもたらされる。データレコード520は、図4の製造プロセス400において製造業者によって元々、作成され、そこから転送された暗号化された対称鍵(E(Kt_pub,Ki)を含む。工程506において、認証サーバ306が、認証サーバ306において記憶されている転送秘密鍵Kt_prvを使用してその対称鍵を暗号化解除して、対称鍵Kiを回復する。
【0047】
工程508において、認証サーバ306が、一つには、発行された鍵Ki(または鍵の知識(knowledge)の証拠)を製造業者の秘密データベース310の中のレコード520から回復された製造業者によって割り当てられた対称鍵Kiと比較することにより、ゲームコンソール102(i)によって発行された証明を検証する。認証サーバは、認証が成功したか、または失敗したかに基づいてゲームコンソールの受入れ、または拒否を行い、この成功、または失敗は、少なくとも部分的には2つの鍵がマッチしたかどうかに基づく。
【0048】
この時点で、認証の結果を使用してオンラインサービスへの参加を直接に許可/拒否することが可能である。このケースでは、ゲームコンソールがオンラインサービスに参加する目的で認証を要求するたびに毎回、対称鍵が使用される。あるいは、認証の結果を使用して、新しい一組の証明が生成され、オンラインサービス認証中に後の使用のためにゲームコンソールに転送される新規証明プロセスのブートストラップを行うことが可能である。この第2のケースでは、Ki/Niペアは、ゲームコンソールの登録中に、認証のために一回だけ使用されて、登録プロセスは、それ以降、使用することができる新しい一組の証明をコンソールに戻す。
【0049】
対称鍵アーキテクチャの利点は、製造業者において秘密が全く維持されないことである。秘密の転送秘密鍵は、データセンタにおいて保持される。したがって、不正を行う人が秘密を盗む機会が大幅に減少する。
【0050】
公開鍵アーキテクチャ
公開鍵アーキテクチャは、製造中、各ゲームコンソールに秘密鍵およびデジタル証明書を書き込むことに関わる。証明書は、秘密鍵にマッチする公開鍵を含む。各製造現場に配置された証明機関によってその証明書に署名が行われる。証明書連鎖を辿って最終的にはルート証明書にまで至る別の証明書によって各証明機関証明書にさらに署名が行われる。ゲームコンソールがオンライン状態になって自らを登録するときにはいつでも、そのコンソールを真性のものとして認証するのに、証明書連鎖検証プロセス、並びに秘密鍵の知識(knowledge)の証拠が使用される。製造前プロセスを示す図6、および製造プロセスを示す図7、および登録プロセスを示す図8を参照して公開鍵アーキテクチャを説明する。
【0051】
図6は、公開鍵ペアおよび連鎖の証明書が生成される例としての製造前プロセス600を示している。プロセス600は、ゲームコンソール102の製造前の任意の時点で行われることが可能である。このプロセスは、製造設備において、または別の場所で行われることが可能である。工程602において、ルート公開鍵Kroot_pubおよびルート秘密鍵Kroot_prvから成るルート公開鍵ペアが生成される。このルート鍵ペアは、信頼され、安全確実(secure)に記憶される。
【0052】
工程604において、ルート鍵ペアを使用してルート証明書CERT(Kroot_prv,Kroot_pub)を生成する。「CERT(Kroot_prv,Kroot_pub)」という表記は、ルート公開鍵の真正性を、対応するルート秘密鍵を知るいずれの者に対しても保証するルート公開鍵Kroot_pubと目的ステートメントの合成にデジタル署名を行うのに使用されるルート秘密鍵Kroot_prvを意味する。したがって、ルート公開鍵Kroot_pubにアクセスを有するいずれの者も、証明書の真正性を検証できるはずである。一例のタイプの証明書が、X.509形式の証明書である。ただし、別の秘密鍵で署名された公開鍵を担うその他のタイプのデータ構造も、証明書とみなすことができる。
【0053】
工程606において、第2の公開鍵ペアが、製造現場における証明機関(CA)による使用のために生成される。この第2の鍵ペアは、証明機関鍵ペア(またはCA鍵ペア)と呼ばれ、CA公開鍵Kca_pubとCA秘密鍵Kca_prvから成る。各製造現場において複数の証明機関が存在する場合、各証明機関ごとに異なるCA鍵ペアが生成される。したがって、各製造現場が1つ以上のCA鍵ペアに関連付けられる。
【0054】
工程608において、証明機関に関するCA証明書が生成され、ルート秘密鍵Kroot_prvで署名が行われる。CA証明書は、CERT(Kroot_prv,Kca_pub)として示され、これは、CA秘密鍵を知る任意のエンティティに対してCA公開鍵の真正性を保証するCA公開鍵Kca_pubと目的ステートメントの合成にデジタル署名を行うのに、ルート秘密鍵Kroot_prvが使用されることを意味する。
【0055】
工程610において、CA証明書CERT(Kroot_prv,Kca_pub)およびCA秘密鍵が、製造現場における証明機関650において記憶される。CA証明書およびCA秘密鍵Kca_prvは、漏洩を防止するように安全確実(secure)な仕方で維持される。工程612において、ルート公開鍵Kroot_pubおよび/またはルート証明書CERT(Kroot_prv,Kroot_pub)が、データセンタ304に転送され(遠隔で生成される場合)、安全確実な仕方で記憶される。
【0056】
図7は、製造中、秘密鍵および1つ以上の証明書がゲームコンソール上に配置される例としての製造プロセス700を示している。製造のため、製造業者は、CA公開鍵ペア(Kca_pub,Kca_prv)およびCA証明書CERT(Kroot_prv,Kca_pub)を維持する。
【0057】
工程702において、それぞれの製造されたコンソール102(i)に関するゲームコンソール公開鍵ペアが生成される。コンソール公開鍵ペアは、コンソール公開鍵Ki_pubとコンソール秘密鍵Ki_prvから成る。工程704において、コンソール証明書CERT(Kca_prv,Ki_pub)が生成され、工場における証明機関のCA秘密鍵Kca_prvで署名が行われる。このコンソール証明書は、公開鍵Ki_pubを含み、コンソール秘密鍵Ki_prvを知るどのエンティティに対してもそのコンソールの真正性を保証する。
【0058】
工程706において、製造業者が、コンソール秘密鍵Ki_prv、コンソール証明書CERT(Kca_prv,Ki_pub),およびCA証明書CERT(Kroot_prv,Kca_pub)をゲームコンソールの中に記録する。記憶の場所は、鍵および証明書が、許可されたゲームコンソールによってプログラム式にアクセス可能であるが、ゲームコンソール所有者によるアクセスからは安全であるようにする。可能な場所には、EEPROM、ハードドライブ、またはフラッシュ可能なROMが含まれるが、それらには限定されない。CA秘密鍵Kca_prvは、製造現場においてセキュリティ確保されるが、公開鍵および証明書を含むその他すべての情報は、セキュリティ対策なしに自由に配布することができる。
【0059】
図8は、ゲームコンソールが、データセンタ304における認証サーバ306によって認証される例としての登録プロセス800を示している。多数の異なる公開鍵認証プロトコルを使用して登録プロセスを実施することができる。登録時に、認証サーバ306が、ルート証明書に(また、したがって、ルート公開鍵に)アクセスする。
【0060】
工程802において、適切なプロトコルの一環として、コンソール102(i)が、データセンタ304における認証サーバ306にコンソール証明書CERT(Kca_prv,Ki_pub)を送信する。コンソールは、オプションとして、認証サーバがCA証明書CERT(Kroot_prv,Kca_pub)を既に所有しているのではない場合、CA証明書CERT(Kroot_prv,Kca_pub)を送信することができる。また、コンソールは、自らがコンソール秘密鍵Ki_prvを知っているという何らかの証拠を発行する。この証拠は、多くの仕方で獲得することができる。そのような証拠を提供するための1つの手法は、コンソール秘密鍵Ki_prvを使用して何らかのデータを暗号化することである。このデータは、例えば、現在時刻、乱数、メッセージ等であることが可能である。以下の説明では、コンソールは、現在時刻をコンソール秘密鍵を使用して暗号化する、つまりE(Ki_prv,CurrentTime)であると想定する。現在時刻を使用することは、リプレイ攻撃を阻むのに役立つ可能性がある。
【0061】
次に、認証サーバ306が、証明書連鎖認証プロセスを行ってコンソール証明書まで証明書連鎖をトラバース(traverse)する。より具体的には、工程804で、認証サーバ306が、公開鍵Kroot_pubを使用してCA証明書の署名を検証することによってCA証明書CERT(Kroot_prv,Kca_pub)を認証する。ルート公開鍵は、認証サーバにおいて記憶する、またはルート証明書CERT(Kroot_prv,Kroot_pub)から抽出することが可能である。工程806において、認証サーバ306が、CA証明書からCA公開鍵Kca_pubを獲得し、それを使用してコンソール証明書CERT(Kca_prv,Ki_pub)の署名を検証して、これにより、そのコンソール証明書を認証する。
【0062】
工程808において、認証サーバ306は、コンソール証明書から取り出したコンソール公開鍵Ki_pubを使用してコンソール秘密鍵Ki_prvの知識の証拠を評価する。認証サーバ306が、コンソールが正しいコンソール秘密鍵の知識を有することを発行された証拠を介して検証できる場合、そのゲームコンソール102(i)は、真性のものとして信頼される。現在時刻を使用する本例では、認証サーバは、コンソール公開鍵を使用して、コンソールによって発行された暗号化された現在時刻を暗号化解除する。回復された現在時刻は、許容可能な時間スキューの範囲内にあると検証される。ゲームサーバは、認証が成功したか、または失敗したかに基づいてゲームコンソールの受入れ、または拒否を行い、この成功または失敗は、回復された時間が時間スキューの範囲内にあるかどうかに少なくとも部分的に基づく。
【0063】
この時点で、認証の結果を使用して、オンラインサービスへの参加を直接に許可/拒否することが可能である。このケースでは、ゲームコンソールが、オンラインサービスに参加する目的で認証を要求するたびに毎回、同じ登録プロセスが使用される。あるいは、認証の結果を使用して、新しい一組の証明が生成され、オンラインサービス認証中に後の使用のためにゲームコンソールに転送される新規証明プロセスのブートストラップを行うことが可能である。この第2のケースでは、コンソール秘密鍵Ki_prv、コンソール証明書CERT(Kca_prv,Ki_pub),およびCA証明書CERT(Kroot_prv,Kca_pub)の証明が、登録中に、認証のために一回だけ使用され、登録プロセスは、それ以降、使用することができる新しい一組の証明をコンソールに戻す。
【0064】
本明細書で説明する公開鍵アーキテクチャは、ルート証明書からコンソール証明書に至る2つのレベルの証明書連鎖を使用していることに留意されたい。より多い、またはより少ないレベルの証明書連鎖を使用して本アーキテクチャを実施することも可能である。
【0065】
公開鍵アーキテクチャの利点は、コンソール製造現場とデータセンタにおける認証サーバの間で鍵の転送が全く行われないことである。ただし、公開鍵アーキテクチャでは、製造業者において秘密が維持される。
【0066】
結論
本発明は、構造上の特徴および/または方法上の処置に固有の言い回しで説明してきたが、頭記の特許請求の範囲で定義する本発明は、必ずしも説明した特定の特徴および特定の処置に限定されないことを理解されたい。むしろ、特定の特徴および特定の処置は、請求する本発明を実施する例としての形態として開示している。
【符号の説明】
【0067】
100(1),100(g) ゲームシステム
102 ゲームコンソール
104(1),104(2),104(3),104(4) コントローラ
106 ポータブルメディアドライブ
108 ポータブル記憶媒体
110 スロット
112 電源ボタン
114 イジェクトボタン
120 A/Vインターフェースケーブル
122 電源ケーブル
124 モデムコネクタ
130 シリアルケーブル
132(1),132(2) サムスティック
134 Dパッド
136 ボタン
138 トリガ
140(1),140(2),140(3),140(4),140(5),140(6),140(7),140(8) メモリユニット
200 中央処理装置
202 メモリコントローラ
204 フラッシュROM
206 RAM
208 ハードディスクドライブ
210,212 キャッシュ
216 ATAケーブル
220 3Dグラフィックス処理ユニット
222 ビデオエンコーダ
224 オーディオ処理ユニット
226 オーディオCODEC
228 A/Vポート
230 USBホストコントローラ
240(1),240(2),242 サブアセンブリ
250 システムパワーサプライモジュール
252 ファン
300 ネットワーク環境
302 ネットワーク
304 データセンタ
306 認証サーバ
308(1),308(s) オンラインサーバ
310 データベース
312 鍵配信センタ

【特許請求の範囲】
【請求項1】
オンラインサービスに参加する許可を与えるために、データセンタの認証サーバにおいて、ゲームコンソールを認証する方法であって、
登録に先立ち、
ルート公開鍵および対応するルート秘密鍵を有するルート公開鍵ペアを生成すること、
前記ルート公開鍵を含み、前記ルート秘密鍵で署名されたルート証明書を生成すること、
CA公開鍵および対応するCA秘密鍵を有する証明機関(CA)公開鍵ペアを生成すること、
前記CA公開鍵を含み、前記ルート秘密鍵で署名されたCA証明書を生成すること、
コンソール公開鍵および対応するコンソール秘密鍵を有するコンソール公開鍵ペアを生成すること、
前記コンソール公開鍵を含み、前記CA秘密鍵で署名されたコンソール証明書を生成すること、および、
前記コンソール証明書および前記コンソール秘密鍵をゲームコンソールのメモリの中に記憶することを含み、
登録中に、
前記ゲームコンソールから前記コンソール証明書および前記コンソール秘密鍵の知識の証拠を受け取ること、
前記ルート公開鍵を使用して前記CA証明書を検証して前記CA公開鍵を回復すること、
前記CA公開鍵を使用して前記コンソール証明書を検証して前記コンソール公開鍵を回復すること、および、
前記コンソール公開鍵を使用して、前記ゲームコンソールから受け取られた前記コンソール秘密鍵の知識の前記証拠を評価すること
を含むことを特徴とする方法。
【請求項2】
ルート秘密鍵で署名されたルート証明書から開始してコンソール秘密鍵に関連するコンソール公開鍵を含むコンソール証明書に至る証明書連鎖の一環である前記コンソール証明書および前記コンソール秘密鍵をゲームコンソールのメモリの中に書き込むように構成された製造ベースのコンピュータシステムと、
前記ゲームコンソールによって発行(submit)された提供されたコンソール証明書を前記証明書連鎖を使用して検証することによって前記ゲームコンソールを認証するように構成され、前記コンソール証明書からの前記コンソール公開鍵を使用して前記ゲームコンソールによって発行された前記コンソール秘密鍵の知識の証拠を評価する認証コンピュータシステムと
を含むことを特徴とするシステム。
【請求項3】
ルート秘密鍵で署名されたルート証明書からゲームコンソールに関連するコンソール公開鍵ペアからのコンソール公開鍵を含むコンソール証明書までの証明書連鎖を生成するための証明書生成手段と、
前記ゲームコンソールのメモリの中に前記コンソール証明書および前記コンソール公開鍵ペアからのコンソール秘密鍵を書き込むための書込み手段と、
前記ゲームコンソールによって発行された提供されたコンソール証明書を前記証明書連鎖を使用して検証し、有効である場合、前記コンソール証明書から前記コンソール公開鍵を抽出して、前記ゲームコンソールによって発行された前記コンソール秘密鍵の知識の証拠を評価することによって前記ゲームコンソールを認証するための認証手段と
を含むことを特徴とするシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−163756(P2009−163756A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2009−48590(P2009−48590)
【出願日】平成21年3月2日(2009.3.2)
【分割の表示】特願2002−320424(P2002−320424)の分割
【原出願日】平成14年11月1日(2002.11.1)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
2.EEPROM
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】