JP2004164640A - クライアントとサーバコンピューティング装置間のチャレンジと応答のやりとり - Google Patents
クライアントとサーバコンピューティング装置間のチャレンジと応答のやりとり Download PDFInfo
- Publication number
- JP2004164640A JP2004164640A JP2003378854A JP2003378854A JP2004164640A JP 2004164640 A JP2004164640 A JP 2004164640A JP 2003378854 A JP2003378854 A JP 2003378854A JP 2003378854 A JP2003378854 A JP 2003378854A JP 2004164640 A JP2004164640 A JP 2004164640A
- Authority
- JP
- Japan
- Prior art keywords
- computing device
- client computing
- response
- server
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Pinball Game Machines (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 オンラインゲームにおける場合のように、ネットワーク上でサーバによって提供されるサービスに対して、クライアントが改変された基本入出力システム、改変されたソフトウェア、または海賊版のソフトウェアを使用して不正を働く場合がある。このように変更されたクライアントの状態をサーバが検出できて、適切な行動を取れるようにする。
【解決手段】 サーバと通信しているクライアントの状態を、クライアントにチャレンジを発行し、クライアントに状態を示す応答を生じさせることによって判定する。サーバは、この応答を期待される応答と比較し、その状態が期待通りであるかを判定し、もし異なれば、このクライアントとの通信を終了するような、適切な行動を取る。このチャレンジは、クライアントにコードセグメントを実行させることによって応答を生じさせるコードセグメントとパラメータを含むことが好ましい。
【選択図】 図5
【解決手段】 サーバと通信しているクライアントの状態を、クライアントにチャレンジを発行し、クライアントに状態を示す応答を生じさせることによって判定する。サーバは、この応答を期待される応答と比較し、その状態が期待通りであるかを判定し、もし異なれば、このクライアントとの通信を終了するような、適切な行動を取る。このチャレンジは、クライアントにコードセグメントを実行させることによって応答を生じさせるコードセグメントとパラメータを含むことが好ましい。
【選択図】 図5
Description
本発明は、一般にサーバコンピューティング装置がクライアントコンピューティング装置上に存在する状態を検証することに関し、より詳細には、サーバコンピューティング装置がクライアントコンピューティング装置にチャレンジを発行し、そのクライアントコンピューティング装置から受信した応答を期待される応答と比較することに関する。
複数のプレーヤーでインターネット上の電子ゲームに興じることは、ますます人気のある娯楽になった。マイクロソフトコーポレーションのXBOX(登録商標)ゲームシステムのような、パーソナルコンピュータ(PC)や専用の電子ゲームシステムで実行するように作られたゲームは、複数のプレーヤーがその場所でのゲームセッションに興じることができるように設計されているけれども、インターネット上で興じられるゲームは、遥かに幅広いプレーヤーと技を競い合い、そしていつでも遊べる機会を使用者に提供する。ネットワーク上での複数プレーヤーのゲームは、通常、複数のクライアントコンピューティング装置の各々がネットワーク上でサーバコンピューティング装置に接続できるようにすることによって実現され、このサーバコンピューティング装置は、複数のいろいろなゲームのプレーヤー間でゲームの交流を促進する。以下の議論を簡単にするために、「クライアント」という用語は、クライアントコンピューティング装置の代わりに使われ、「サーバ」という用語は、サーバコンピューティング装置の代わりに使われることになるであろうが、しかしこれらの実体には、より広義の概念を適用することになる。
理想的には、オンラインゲームに参加しているプレーヤーの技能のみによって、誰がゲームに勝つかが決まるべきである。しかしながら、オンラインゲームは、オンラインゲームの遊戯中に不正行為を行うために独創的な方法を開発することで悪評が高く、ゲームをするにあたってのプレーヤーの技能は、必ずしも誰がゲームに勝つかの決定因子とはならない。例えば、ゲームソフトウェアを改変して(例えば、ゲームシャークプログラムを用いて)、プレーヤーにより多くの生命、より大きなエネルギー、より高い保護、そしてその他の属性を与えることができ、それゆえこのプレーヤーは、ゲームプログラムの改変されていないバージョンを実行しているプレーヤーに対して実質的な優位性を有する。このような方法で不正行為をしている他の誰かと遊ぶことは、ゲームがもはや技能のあるプレーヤーによって勝利されず、その代わり、改変されたゲームプログラムを使うことで不正行為をしているプレーヤーによって勝利されることに多々なるので、非常にストレスがたまることになり、楽しめないであろう。従って、プレーヤーが改変されたゲームプログラムを使用しているかどうかをゲーム遊びサイトのサーバが検知できることが望ましく、それでサーバが適切な行動を取って、サーバに接続されたプレーヤーがこの種の改変されたプログラムをオンラインのゲーム遊びに使用することを防止できるようにする。
専用の電子ゲーム遊戯システムもまた、プレーヤーがオンラインゲームをしている時に不正行為ができるように改変することができる。例えば、プレーヤーは改変されたBIOSの入っている差し替えメモリモジュールをゲームコンソールに接続し、本来の基本入力出力システム(BIOS)を置き換えることが可能であり、そしてこのように、本来のBIOSでシステムを稼動している間は許可されないであろう機能やシステムへの変更を可能にする。この改変されたBIOSにより、非認可または海賊版のゲームのコピーが遊びに使われうるようになり、ゲームコンソールで遊ぶことのできるゲームに関するゾーンの規制を使用者が回避できるようになる。さらに重要なこととして、ゲームコンソールの中で改変されたチップを使用することにより、ゲームをしている期間に他の種別の不正行為を許すことがある。このように、複数プレーヤーによるゲームをするために電子ゲームシステムがゲームサイト上にログオンしている時、そして/またはこの種のゲームをしている間、ゲームシステムに為された変更を検知し、そのサイトのサーバが適切な行動を取ることができるようにすることもまた望まれるであろう。
より一般的な意味においては、クライアント装置の使用者がサーバ上で提供されているサービスにログオンまたはサインインしようと試みている時に、サーバがクライアント上の任意の所望の状態に関してクライアント装置にチャレンジを課すことができて、クライアントの何らかの特性または状態が期待されるものと異なるかどうかをサーバが判断できるようすることがさらに望ましいであろう。この手順は、サーバによって提供されるゲーム遊びの機能に限定されず、またゲーム遊びのクライアントに限定されないことは明らかであろう。クライアントから返された応答が期待通りでなければ、サーバは自動的に適切な行動を取ることができるはずであろう。例えば、サーバは単純にこのクライアントとの現在のセッションを終了することができるであろうし、データベースにクライアントの識別情報を記録し、たとえこのクライアントからサーバに返された応答が将来のセッションで期待通りであるとしても、このクライアントがサーバ上で提供されているサービスを二度と使えないようにすることもできるであろう。
本発明の主要な態様は、クライアントの使用者が欲するサービスを提供しているサーバにこの使用者が接続したいと望むということである。本発明の初期の用途において、サーバは、ゲーミングサイトにおいて採用され、プレーヤーがインターネット上で複数プレーヤーのゲーム遊びに参加することができるようにするサービスを提供するが、本発明はこの用途に限定されないということが理解されるべきである。クライアントを使って、使用者はこのサーバ上で提供されるサービスにログオンすることを試みる。本発明の方法に従って、ログオン処理の期間中、および/またはその後のゲーム遊びの期間中、サーバは1つまたは複数のパラメータを含む1つまたは複数のコードセグメントの形態でクライアントに「チャレンジ(challenge)」を送る。このチャレンジはまた、クライアント上の状態を示す応答を判定するために、特定の手順にクライアントを従わせる機械語命令も含むのが通常であろう。例えば、本発明のゲーミング用途では、クライアントが改変されたBIOSを実行しているか、あるいは改変されたソフトウェア、またはゲームの海賊版のコピーを使用しているかどうかをサーバが判定することもできる。クライアントによって決定される応答は、このように、クライアント上で検知されることになる状態に関連している。この応答は、その後、サーバに送り返され、期待される応答と比較される。
この応答が期待される応答に適合するならば、サーバにより所望のサービスがクライアントに提供される。しかしながら、この応答が期待された応答に適合しないか、あるいは応答がまったく返ってこなければ、サーバにより適切な所定の行動が自動的に履行されうる。例えば、サーバは、将来の参照のために単純にこの応答を記録することもできるし、あるいは現在のセッションを終了することもできるし、そして/または、このクライアントまたは使用者がこのサーバで提供されるサービスに二度と参加することが、例えば、サーバで提供されるゲーミングサービスを用いたオンラインゲームに興じることが、永久にできないようにすることもできる。
応答を決定するためにクライアントによって実装される機械語命令により、BIOSと共に取り込まれたメモリの一部、またはゲームのようなアプリケーションのコードを格納しているメモリの一部のように、クライアント上のメモリの指定部分に一方向のハッシングアルゴリズムをクライアントに適用させるようにすることができる。あるいは、機械語命令により、クライアントにクライアントがアクセス可能な不揮発性メモリの一部に一方向のハッシングアルゴリズムを適用させることができる。ゲームプログラムの海賊版のコピーは、通常、そのプログラムが保存されていた元々の不揮発性媒体の一部のみを有するのが通常であろうから、ゲームソフトウェアの認可されたコピーがクライアントによってアクセスされているかどうかを判定するために、機械語命令がクライアントに(ゲームプログラムではなく)ランダムなデータが格納された不揮発性媒体の部分に一方向のハッシュを適用させることができる。
クライアントが後に再びサーバにログオンを試みる時、このメモリの(または不揮発性媒体の)指定部分を変えることができる。応答および/またはメモリの(または不揮発性媒体の)指定部分を判定するにあたって使われるパラメータ、そして/あるいは応答をもたらすために使われる一方向ハッシングアルゴリズムの細部のどちらかを変えることによって、クライアントの使用者にとって、期待される応答に適合する偽りの応答を用意することが非常に困難になるであろう。
ゲームが配布される不揮発性メモリ媒体のビット単位の海賊版のコピーを検知するために、クライアントに与えられる機械語命令は、クライアントにすべての認可されたコピー上で読み出し不可に為された不揮発性メモリ媒体の一部を読み出すように試みさせることが可能である。その部分を読み出す試みが不成功であったことをこの応答が示していなければ、この応答は、期待される応答に適合しないことになり、このクライアントがゲームソフトウェアの海賊版のコピーにアクセスしていることが明らかとなるであろう。
本発明のその他の態様は、ネットワーク上でサーバに接続した複数のクライアントにサービスを提供するために用いられたサーバまたはサーバ群がクライアントの状態を検知することができるようにすることを対象とする。このサーバには、複数の機械語命令が格納されているメモリと、複数のクライアントを連結するためのネットワークインターフェイスと、このメモリとこのネットワークインターフェイスに連結された、プロセッサが含まれる。このプロセッサは、機械語命令を実行し、上述された方法のステップに概ね一致する複数の機能を履行する。本発明のもうひとつの態様は、サーバによって行われるステップを履行するために機械語命令が格納されているメモリ媒体を対象とする。
本明細書および添付の特許請求の範囲の全体に渡って使われているように「サーバ」という用語は、単一のサーバコンピューティング装置または複数のコンピューティング装置を指すことを目的としている。このように、「サーバ」という用語は、クライアントが欲するサービスを提供するために提携して機能している一群のコンピューティング装置にも当てはまることが理解されよう。チャレンジを送り、クライアントから受け取った応答を評価している特定のサーバコンピューティング装置が、サービスを実際に提供しているコンピューティング装置と必ずしも同一ではないかもしれない。しかしながら、チャレンジ応答プロセスをパスできなかったことにより、(チャレンジを送り、そして/または応答を評価しているサーバだけでなく)一群のサーバコンピューティング装置のどれに対してもこのクライアントのさらなるアクセスが拒絶されるようにさせることができる。さらに、本明細書で使われているように、「サーバ」という用語は、さらに一般に、ルータや交換機のようにネットワークコンピューティング装置に対しても当てはめることができるということが理解されるであろう。ルータまたは交換機が、チャレンジを発行し、正しい(即ち、期待される)応答がクライアントによって返された場合のみ、このルータ/交換機の背後にあるその他のサーバに対してそのクライアントからのパケットを転送することになろう。
本発明の好ましい実施例を、クライアントによるサーバへのアクセスの制御に関して、以下に説明する。上で述べたように、クライアントは、例えば、概ね従来型のパーソナルコンピュータ(PC)、携帯電話、PDA(Personal Digital Assistant)またはサーバに有線または無線ネットワーク上で接続することのできるほとんどあらゆるその他の形態のコンピューティング装置でありうる。このように、クライアントという用語には、ネットワーク上でサーバに接続するために用いられる既存のコンピューティング装置もしくはシステム、またはネットワーク接続を経由してサーバにアクセスするために将来開発される可能性のあるコンピューティング装置を包含することが理解されるであろう。
本発明の初期の好ましい形態において、クライアントはゲームコンソールであり、インターネット上で複数プレーヤーのゲーム遊びを容易にするオンラインゲームシステムにサーバが用いられている。しかしながら、当業者は、クライアントがサーバにアクセスすることを試みるその他の多くの状況においても本発明を実施できることを認めるであろう。クライアントおよびサーバは、インターネット経由で、あるいはローカルエリアネットワーク(LAN)や、イントラネット、ワイドエリアネットワーク(WAN)のような、別の種類のネットワーク上で接続することができる。
サーバは、現在では、サーバ機能の実行に専用の1つまたは複数のコンピューティング装置を備えていると理解されている。しかし、「サーバ」という用語は、サーバ機能を実行するために将来開発される可能性のあるコンピューティング装置を含め、サーバの機能を実行するほとんどいかなるコンピューティング装置またはシステムを包含することが意図されている。この「サーバ」は、ピアツーピアのセッションで接続するための別のクライアントから受信したリクエストを処理しているひとつのクライアントであることさえありえる。チャレンジを送る方のクライアントは、それ自身で他方のクライアントに送ったコードセグメントを生成することができるだろうし、別のサーバから適切なチャレンジと期待される応答を与えられるかもしれないし、またはサーバ役を務めるピアツーピアクライアントがそれ自身でチャレンジを実行して、他方のクライアントからの期待される応答を決定することもできる。
(例示としてのコンピューティング装置)
図1および後続の議論は、本発明の方法を実施しているソフトウェアを実現しうる適切なコンピューティング環境についての簡潔で一般的な説明を提供するものである。本発明は、単一のサーバ上で実施することもできるが、サーバとして機能する複数のコンピューティング装置上でも実施することができる。クライアントおよびサーバの両方それぞれが、図1に示された機能構成要素を含んでもよい。本発明は明らかに汎用PCからなるクライアント上で実現することができる一方で、本発明の初期の用途においては、クライアントは、下述のように、ゲーミングコンソールを包含している。それでもなお、サーバまたはクライアントの一方にPCを使用することに関して、汎用PCについての後続の議論を提示する。
図1および後続の議論は、本発明の方法を実施しているソフトウェアを実現しうる適切なコンピューティング環境についての簡潔で一般的な説明を提供するものである。本発明は、単一のサーバ上で実施することもできるが、サーバとして機能する複数のコンピューティング装置上でも実施することができる。クライアントおよびサーバの両方それぞれが、図1に示された機能構成要素を含んでもよい。本発明は明らかに汎用PCからなるクライアント上で実現することができる一方で、本発明の初期の用途においては、クライアントは、下述のように、ゲーミングコンソールを包含している。それでもなお、サーバまたはクライアントの一方にPCを使用することに関して、汎用PCについての後続の議論を提示する。
必須ではないが、本発明は、PCおよび/またはゲーミングコンソールによって実行されるプログラムモジュールのような、コンピュータ実行可能命令との一般的な関連で説明されるであろう。一般に、プログラムモジュールには、特定のタスクを行ったり、特定の抽象データタイプを具現したりする、データ構造、関数、コンポーネント、オブジェクト、ルーチン、コンピュータシミュレーションのようなアプリケーションプログラムなどが含まれる。さらに、当業者は、本発明がその他のコンピュータシステムの構成で、特に、通信ネットワークを通してリンクされたリモート処理装置によってタスクが実行される分散型コンピューティング環境において、実施しうることを認めるであろう。分散型コンピューティング環境においては、プログラムモジュールはローカルおよびリモートの両方あるいは一方のメモリ記憶装置に設置することができる。
図1を参照すると、サーバコンピュータに使用するためのシステム例は、従来型のPC20の形態での汎用コンピューティング装置を含んでいる。PC20は、処理ユニット21、システムメモリ22、およびシステムバス23を備えている。システムバスは、システムメモリを含む様々なシステム構成要素を処理ユニット21に連結し、メモリバスまたはメモリコントローラ、周辺バス、そして種々のバスアーキテクチャのいずれかを用いたローカルバスを含む何種類かのバス構造のいずれかであってよい。システムメモリには、読み出し専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25が含まれる。起動期間中のように、PC20内で要素間の情報転送を助ける基本ルーチンが入っている基本入出力システム26(BIOS)は、ROM24に格納されている。PC20はさらに、ハードディスク(図示せず)から読み出したり、書き込んだりするためのハードディスクドライブ27を含み、取り外し可能な磁気ディスク29から読み出したり、書き込んだりするための磁気ディスクドライブ28、およびCD−ROMまたはその他の光媒体のような、取り外し可能な光ディスク31から読み出したり、書き込んだりするための光ディスクドライブ30を含んでいてもよい。ハードディスクドライブ27、磁気ディスクドライブ28、そして光ディスクドライブ30は、それぞれハードディスクドライブインターフェイス32、磁気ディスクドライブインターフェイス33、そして光ディスクドライブインターフェイス34によってシステムバス23に接続されている。これらのドライブおよびそれらの関連するコンピュータ可読媒体は、コンピュータで読み取り可能な機械語命令、データ構造、プログラムモジュール、およびPC20のその他のデータについての不揮発性の記憶を提供している。ここに説明された環境例には、ハードディスク、取り外し可能な磁気ディスク29、および取り外し可能な光ディスク31が含まれるが、当業者には、コンピュータによってアクセス可能なデータを格納できる磁気カセット、フラッシュメモリカード、デジタル多用途ディスク(DVD)、ベルヌーイ(Berunoulli)カートリッジ、RAM、ROM、などのようなその他の種別のコンピュータ可読媒体をこの動作環境例においても使用できることが認識されるであろう。
多数のプログラムモジュールが、ハードディスク、磁気ディスク29、光ディスク31、ROM24またはRAM25に格納することができ、これらには、オペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、その他のプログラムモジュール37、およびプログラムデータ38が含まれる。使用者は、キーボード40やポインティング装置42のような入力装置を通してPC20にコマンドや情報を入力しうる。ポインティング装置42には、マウス、スタイラスペン、無線リモートコントロール、またはその他のポインタが含まれてもよい。その他の入力装置(図示せず)には、ジョイスティック、ゲームパッド、ハンドル、ペダル、マイクロフォン、衛星アンテナ、スキャナ、デジタルカメラ、デジタルビデオレコーダ、またはその種の他のものが含まれうる。これらおよびその他の入力/出力(入出力)装置は、システムバス23に連結されている入出力インターフェイス46を通して処理ユニット21に接続されることが多い。入出力インターフェイスという用語は、シリアルポート、パラレルポート、ゲームポート、キーボードポート、および/またはユニバーサルシリアルバス(USB)のために特別に使用される各インターフェイスを包含することが意図されている。モニター47やその他の種別の表示装置もまた、ビデオアダプタ48のような、適切なインターフェイス経由でシステムバス23に接続され、アプリケーションプログラム、ウェブ機能付ポケットベル、模擬環境、および/またはその他の情報を表示するために使うことができる。モニターに加えて、PCは、スピーカー(サウンドカードまたはその他のオーディオインターフェイス(図示せず))やプリンタのような、その他の周辺出力装置(図示せず)に連結されることが多い。
前述のとおり、本発明はネットワーク化された環境において実現され、そこではPC20がリモートコンピュータ49のような、1つまたは複数のクライアントに論理的に接続されている。リモートコンピュータ49は、別のPC、ルータ、ネットワークPC、ピア装置、衛星、またはクライアントを構成するその他の共通ネットワークノードであってよい。リモートコンピュータ49は、以下でさらに詳しく説明されることになるように、本発明のひとつの好ましい用途においては、ゲームコンソールである。リモートコンピュータ49は、PC20に関連して上述された要素の多くまたはすべてを含むこともあるし、ゲーミングコンソールに関連して下述される要素を含むこともあるし、あるいはクライアントとして機能することのできるその他の電子装置の典型的な要素を含むこともある。不必要に図1を複雑にしないために、リモートコンピュータ49はただひとつの外付けメモリ記憶装置50と共に図示されている。図1に示された論理接続には、ローカルエリアネットワーク(LAN)51およびワイドエリアネットワーク(WAN)52が含まれ、これらはインターネットを包含することもある。この種ネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットにおいて、そしてインターネットに連結されたコンピューティング装置に関して一般的である。
LANネットワーキング環境で使用されるとき、PC20はネットワークインターフェイスまたはアダプタ53を通してLAN51に接続される。WANネットワーキング環境で使用されるとき、WAN52上で通信を確立する目的で、PC20は、通常、モデム54、またはその他の手段、例えば、ケーブルモデム、デジタル加入者線(DSL)インターフェイスまたは統合サービスデジタルネットワーク(ISDN)インターフェイス、を含む。リモートコンピューティング装置間の通信に共通して使われているWANのひとつの種別は、インターネットである。モデム54は、内蔵でも外付けでもよく、システムバス23に接続されるか、あるいは入出力装置インターフェイス46経由で、即ちシリアルポートを通して、このシステムバスに連結される。ネットワーク化された環境において、PC20に関連して示されたプログラムモジュール、またはその一部は、リモートメモリ記憶装置に格納されることがある。図示されたネットワーク接続は例示であり、無線通信および広帯域ネットワークリンクのように、コンピュータ間の通信リンクを確立するためのその他の手段を使用することができるということが認識されるであろう。
(最低限必要なネットワーク化された環境)
上で述べたように、本発明の主要な態様は、クライアントの使用者が、インターネットのようなネットワーク上で、その使用者が欲するサービスまたはデータを提供するサーバに接続したいと望むということである。このように、本発明を実現するためには、クライアントとサーバを含むネットワーク環境が必須である。図2Aは、サーバ282aと、複数のクライアント284a、...284hを含む、基本ネットワーク280を概略的に図示している。ネットワーク環境は、サーバと単一のクライアントの間に存在することもできるが、ほとんどのネットワーク環境では、複数のクライアントが含まれ、そして同様に複数のサーバが含まれることも多い。ネットワーク280は、多種多様のデータ通信ネットワークのいずれかを代表することができ、公共の部分(例、インターネット)だけでなく私的な部分(例、私有のLANおよび/またはWAN)も含まれうることが理解されるべきである。また、ネットワーク280は、有線および無線種別の両方を含む、任意の1つまたは複数の多種多様の従来型の通信構成を用いて実現されうることも理解されるべきである。多種多様の通信プロトコルのいずれかが、ネットワーク280経由でデータ通信するために使うことができ、これらには公開および独自のプロトコルの両方が含まれる。この種のプロトコルの例には、TCP/IP、IPX/SPX、NetBEUIなどが含まれる。
上で述べたように、本発明の主要な態様は、クライアントの使用者が、インターネットのようなネットワーク上で、その使用者が欲するサービスまたはデータを提供するサーバに接続したいと望むということである。このように、本発明を実現するためには、クライアントとサーバを含むネットワーク環境が必須である。図2Aは、サーバ282aと、複数のクライアント284a、...284hを含む、基本ネットワーク280を概略的に図示している。ネットワーク環境は、サーバと単一のクライアントの間に存在することもできるが、ほとんどのネットワーク環境では、複数のクライアントが含まれ、そして同様に複数のサーバが含まれることも多い。ネットワーク280は、多種多様のデータ通信ネットワークのいずれかを代表することができ、公共の部分(例、インターネット)だけでなく私的な部分(例、私有のLANおよび/またはWAN)も含まれうることが理解されるべきである。また、ネットワーク280は、有線および無線種別の両方を含む、任意の1つまたは複数の多種多様の従来型の通信構成を用いて実現されうることも理解されるべきである。多種多様の通信プロトコルのいずれかが、ネットワーク280経由でデータ通信するために使うことができ、これらには公開および独自のプロトコルの両方が含まれる。この種のプロトコルの例には、TCP/IP、IPX/SPX、NetBEUIなどが含まれる。
図2Bは、例示のサーバ282bを概略的に図示している。上で述べたように、サーバは、PC20の多くの構成要素を概ね備えており、それについては上で詳述した。本発明に合致して用いられるサーバは、サーバコンピューティングシステム282cとして実現することができ、このサーバコンピューティングシステムには、接続されたクライアントにサービスを提供する作業を分担する複数の個別のサーバが含まれることが理解されるべきである。当業者であれば認めるように、サーバコンピューティングシステムの個別のサーバは、(負荷分散されたシステムの場合のように)作業を均等に分担することもあるし、あるいはサーバコンピューティングシステムは、特定の作業を特定のサーバに割り当てることもある。
本発明の好ましい実施例は、ネットワークに接続されたゲームコンソールであるクライアントとオンラインゲームサーバであるサーバと共に利用されているが、本発明は同様にその他の種別のクライアントと共に有益に用いることができるということを重ねて強調する。図2Cは、サーバにアクセスするために使用することのできる複数の種々のクライアントを概略的に図示しており、これらには、限定なしに、ラップトップコンピュータ284i、ワークステーション284j、PC284k、PDA284l、ゲームコンソール284m、ウェブ利用可能な無線電話284n、そしてウェブ利用可能なポケットベル284oが含まれる。図2Cはまた、サーバ282bまたはサーバコンピューティングシステム282cがクライアントであるとみなすことができるということを示しており、これはこのサーバを異なるサーバによって提供されているサービスにアクセスしたいと望んでいる使用者が用いている場合である。
本発明は、多数の異なる種別のクライアントからのサーバへのアクセスを制御するように実現しうるということが明確に理解されるべきであるが、本発明の好ましい実施例は、ゲーム遊びを円滑にするサーバへのネットワーク接続されたゲームコンソールのアクセス制御において実現されている。しかし、本発明は、ゲームコンソールであるクライアント、およびゲーム遊びを円滑にするサーバに限られない。その他の種別のクライアント、および異なる機能を行うサーバが、本発明に包含される。
(例示としてのクライアント)
図3は、例示としての電子ゲーミングシステム100が示され、ゲームコンソール102と、コントローラ104aおよび104bのような最大4つの使用者入力装置のサポートを含んでいる。当然ながら、単に1つの使用者入力装置をサポートするゲームコンソールでも、あるいは追加の使用者入力装置をサポートするゲームコンソールでも、採用することができる。ゲームコンソール102は、内蔵のハードディスクドライブ(本図に図示せず)を装備し、光記憶ディスク108で代表されるように、いろいろな形態の持ち運び可能な光メモリ媒体をサポートする持ち運び可能な媒体ドライブ106を含んでいる。適当な持ち運び可能な媒体の例には、DVDディスクおよびコンパクトディスク読み出し専用メモリ(CD−ROM)ディスクが含まれる。このゲーミングシステムでは、ゲームコンソールでの使用のためにDVDディスクでゲームプログラムが配布されることが好ましいが、代わりに他のメモリ媒体が、本発明に関連して、このクライアントまたはその他の種別のクライアント上で使われうるということも考えられる。
図3は、例示としての電子ゲーミングシステム100が示され、ゲームコンソール102と、コントローラ104aおよび104bのような最大4つの使用者入力装置のサポートを含んでいる。当然ながら、単に1つの使用者入力装置をサポートするゲームコンソールでも、あるいは追加の使用者入力装置をサポートするゲームコンソールでも、採用することができる。ゲームコンソール102は、内蔵のハードディスクドライブ(本図に図示せず)を装備し、光記憶ディスク108で代表されるように、いろいろな形態の持ち運び可能な光メモリ媒体をサポートする持ち運び可能な媒体ドライブ106を含んでいる。適当な持ち運び可能な媒体の例には、DVDディスクおよびコンパクトディスク読み出し専用メモリ(CD−ROM)ディスクが含まれる。このゲーミングシステムでは、ゲームコンソールでの使用のためにDVDディスクでゲームプログラムが配布されることが好ましいが、代わりに他のメモリ媒体が、本発明に関連して、このクライアントまたはその他の種別のクライアント上で使われうるということも考えられる。
ゲームコンソール102の前面には、その数と配置は変更されるかもしれないが、サポートされたコントローラへの接続のために4つのポート110がある。電源ボタン112、および取り出しボタン114も、ゲームコンソール102の前面に配置されている。電源ボタン112は、ゲームコンソールに対する電力の印加を制御し、取り出しボタン114は、持ち運び可能な媒体ドライブ106のトレイ(図示せず)を交互に開けたり、閉めたりして、ディスク上のデジタルデータがゲームコンソールによる使用のために読み出せるように、記憶ディスク108の差し込みと取り出しを可能にする。
ゲームコンソール102は、オーディオ/ビジュアル(A/V)インターフェイスケーブル120経由でテレビもしくはその他の表示モニターまたはスクリーン(図示せず)に接続する。電源ケーブルプラグ122は、通常の交流電流源(図示せず)に接続されると、ゲームコンソールに電力を伝搬する。ゲームコンソール102は、イーサネット(登録商標)データコネクタ124を含み、ネットワーク上で(例、別のゲームコンソールへのピアツーピアリンクを通して、あるいはハブまたは交換機(図示せず)への接続を通して)、あるいはインターネット上で、例えば、xDSLインターフェイス、ケーブルモデム、またはその他のブロードバンドインターフェイス(図示せず)への接続を通して、データを転送したり、受信したりする。その他の種別のゲームコンソールでは、従来の電話モデムを用いた通信で連結させることもある。
各コントローラ104aおよび104bは、リード線経由で(あるいは、無線インターフェイスを通して)ゲームコンソール102に連結される。図示された実装においては、これらのコントローラはユニバーサルシリアルポート(USB)と互換性があり、USBケーブル130経由でゲームコンソール102に接続されている。ゲームコンソール102は、ゲームソフトウェアとやりとりしたり、制御したりするために多種多様な使用者装置のいずれかを装備することがある。図2に示されたように、各コントローラ104aおよび104bは、2つの親指スティック132aおよび132b、Dパッド134、ボタン136、そして2つのトリガ138を装備している。これらのコントローラは、単に代表的なものであるにすぎず、その他のゲーミング入力および制御装置が、ゲームコンソール102との使用のために、図3に示されたこれらのものの代用となるか、またはこれらに追加されてもよい。
取り外し可能な機能ユニット140は、任意選択的にコントローラ104の中に差し込むことができ、付加的な特徴と機能を提供する。例えば、持ち運び可能なメモリユニット(MU)により、使用者はゲームのパラメータを格納でき、他のゲームコンソール上で遊ぶ目的でそれらを移植することができるようになる。これは、この持ち運び可能なMUを他のゲームコンソールに接続されたコントローラの中に差し込むことによって行われる。別の取り外し可能な機能ユニットは、音声通信ユニットを備え、使用者がその場所でそして/またはネットワークを通じて他の使用者と言葉で通信できるようにする。この音声通信ユニットには、ブームマイク144を含むヘッドセット142が接続されている。各コントローラは、2つより多いか、または少ない取り外し可能な機能ユニットまたはモジュールが採用されてもよいが、この説明された実装においては、2つの取り外し可能な機能ユニットまたはモジュールを収容するように構成されている。
ゲーミングシステム100は、例えば、ゲームや、音楽や、ビデオを再生することができる。ハードディスクドライブ上に保存されたり、ドライブ106にある光記憶ディスク108から読み出されたりするデジタルデータを用いて、あるいはオンラインソースや、またはMUから入手されるデジタルデータを用いて、その他の機能を実現できるということが考えられる。例えば、ゲーミングシステム100は、次の再生を行うことができる。
・CDおよびDVDディスク、ハードディスクドライブ上に保存されるか、あるいはオンラインソースからダウンロードされたゲームタイトル
・持ち運び可能な媒体ドライブ106にあるCD、ハードディスクドライブ上のファイル(例、WINDOWS MEDIA AUDIO(登録商標)(WMA)形式)に保存されるか、あるいはインターネットまたはその他のネットワーク上のオンラインストリーミングソースに由来するデジタル音楽
・持ち運び可能な媒体ドライブ106にあるDVDディスク、またはハードディスクドライブ上のファイル(例、アクティブストリーミング形式で)に保存されているか、あるいはインターネットまたはその他のネットワーク上のオンラインストリーミングソースからの映画のようなデジタルAVデータ
・CDおよびDVDディスク、ハードディスクドライブ上に保存されるか、あるいはオンラインソースからダウンロードされたゲームタイトル
・持ち運び可能な媒体ドライブ106にあるCD、ハードディスクドライブ上のファイル(例、WINDOWS MEDIA AUDIO(登録商標)(WMA)形式)に保存されるか、あるいはインターネットまたはその他のネットワーク上のオンラインストリーミングソースに由来するデジタル音楽
・持ち運び可能な媒体ドライブ106にあるDVDディスク、またはハードディスクドライブ上のファイル(例、アクティブストリーミング形式で)に保存されているか、あるいはインターネットまたはその他のネットワーク上のオンラインストリーミングソースからの映画のようなデジタルAVデータ
図4は、ゲーミングシステム100の機能構成要素をさらに詳細に示す。ゲームコンソール102は、中央処理ユニット(CPU)200と、メモリコントローラ202を含み、このメモリコントローラは、読み出し専用メモリ(ROM)204、ランダムアクセスメモリ(RAM)206、ハードディスクドライブ208、および持ち運び可能な媒体ドライブ106へのプロセッサのアクセスを円滑にしている。CPU200は、一時的にデータを格納するための1次キャッシュ210と2次キャッシュ212を装備し、要求されるメモリアクセスの回数を低減し、それによって処理スピードとスループットを改善している。CPU200、メモリコントローラ202、そして各種の記憶装置が1つまたは複数のバスを経由して相互接続されおり、これらには、シリアルおよびパラレルバス、メモリバス、周辺バス、そして各種のバスアーキテクチャのいずれかを用いたプロセッサまたはローカルバスが含まれる。例示の目的で、この種のアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、拡張ISA(EISA)バス、VESA(Video Electronics Standards Association)ローカルバス、そしてPCI(Peripheral Component Interconnect)バスが含まれうる。
ゲームコンソールのひとつの適した実装の一例として、CPU200、メモリコントローラ202、ROM204、およびRAM206は、共通のモジュール214に集積されている。この実装においては、ROM204は、フラッシュROMで構成され、PCIバスおよびROMバス(どちらも図示せず)経由でメモリコントローラ202に接続されている。RAM206は、複数のダブルデータレートのシンクロナスダイナミックRAM(DDR SDRAM)で構成され、別個のバス(図示せず)を経由してメモリコントローラ202により独立して制御されている。ハードディスクドライブ208と持ち運び可能な媒体ドライブ106は、PCIバスおよびATA(Advanced Technology Attachment)バス216を経由してメモリコントローラに接続されている。
3次元(3D)グラフィック処理ユニット(GPU)220とビデオエンコーダ222は、高速および高解像度のグラフィック処理のためのビデオ処理パイプラインを形成する。データは、グラフィック処理ユニット220からデジタルビデオバス(図示せず)を経由してビデオエンコーダ222に搬送される。オーディオ処理ユニット224とオーディオエンコーダ/デコーダ(CODEC)226は、ハイファイおよびステレオのオーディオデータ処理のためのオーディオ処理パイプラインを形成する。オーディオデータは、通信リンク(図示せず)を経由してオーディオ処理ユニット224とオーディオCODEC226の間で搬送される。これらビデオおよびオーディオ処理パイプラインは、テレビやその他の表示モニターへの伝送のためにA/Vポート228にデータを出力する。図示された実装においては、ビデオおよびオーディオ処理の構成要素220〜228は、モジュール214上に搭載されている。
また、USBホストコントローラ230とネットワークインターフェイス232もモジュール214によって実装されている。USBホストコントローラ230は、バス(例、PCIバス)を経由してCPU200とメモリコントローラ202に連結され、周辺コントローラ104a〜104dに対してホストとしての機能を果たしている。ネットワークインターフェイス232は、ネットワーク(例、インターネット、ホームネットワークなど)へのアクセスを提供し、イーサネット(登録商標)カード、電話モデムインターフェイス、ブルートゥースモジュール、ケーブルモデムインターフェイス、xDSLインターフェイス、およびその他同種類のものを含む、多種多様な各種の有線または無線インターフェイス構成要素のいずれかでありうる。
ゲームコンソール102は、2つのデュアルコントローラサポートの部分組立部240aおよび240bを有し、各部分組立部が2つのゲームコントローラ104a〜104dをサポートしている。フロントパネルの入出力部分組立部242は、電源ボタン112と取り出しボタン114の機能だけでなく、任意の発光ダイオード(LED)またはゲームコンソールの外面に露出したその他の指示器もサポートしている。部分組立部240a、240b、および242は、1つまたは複数のケーブル組立部244を経由してモジュール214に連結されている。
8つの機能ユニット140a〜140hは、4つのコントローラ104a〜104dに接続可能であるように図示されている。即ち、各コントローラについて2つの機能ユニットということである。各機能ユニット140は、ゲームや、ゲームのパラメータ、そしてその他のデータを格納することのできる付加的な記憶または機能を提供する。MUがコントローラに差し込まれると、このMUは、メモリコントローラ202によってアクセスできる。システム電源モジュール250は、ゲーミングシステム100の構成要素に電力を供給する。ファン252は、ゲームコンソール102内の構成要素および回路を冷却する。
本発明の好ましい実施例を実現するために、DVDまたはその他のメモリ媒体に格納された(あるいはネットワークを通じてダウンロードされた)機械語命令からなるゲームソフトウェアアプリケーション260が、CPU200による実行のためにRAM206および/またはキャッシュ210、212にロードされる。ソフトウェアアプリケーション260の一部が、必要なときのみ、RAMにロードされることもあるし、あるいはソフトウェアアプリケーションのすべて(そのサイズに依る)がRAM206にロードされることもある。ソフトウェアアプリケーション260を以下でさらに詳しく説明する。
ゲーミングシステム100は、単純にシステムをテレビまたはその他の表示モニターに接続することによって、独立したシステムとして操作してもよい。この独立型のモードにおいて、ゲーミングシステム100により、一人以上の使用者がゲームをしたり、映画を観たり、音楽を聴いたりすることが可能になる。しかしながら、ネットワークインターフェイス232を通して利用可能なるインターネットまたはその他のネットワークへの接続で、ゲーミングシステム100をさらに別のゲーミングシステムと連結したり、あるいはより大きなネットワークゲーミング社会の構成要素として操作したりすることができ、その他のゲーミングシステムを使用しているプレーヤーと一緒にインターネットまたはその他のネットワーク上で興じられるゲームにおいてオンラインの複数プレーヤーとのやりとりを可能にする。
使用者がネットワーク化されたゲーム遊びを体験するためにサーバに接続したいと望む場合、これはますます人気が高まっている活動であるが、ゲーミングシステム100は、上述されたネットワーク接続を通してサーバ(本図では図示せず)にアクセスを試みる。以下にさらに詳しく説明されるように、サーバは、サーバにアクセスを試みる各ゲームシステムにチャレンジを課す。サーバによって受信したクライアントのゲームシステムからのそのチャレンジに対する応答に基づいて、サーバは予め決められた適切な行動を決定する。
(例示としてのゲーミングネットワークシステム)
本発明の好ましい実施例は、マイクロソフトコーポレーションのXBOX LIVE(登録商標)オンラインゲーミングネットワークと共に実現されるであろう。図5は、一例としてのゲーミングネットワーク300を示しており、これは複数のゲーミングシステム100a、...100sを含み、その各々がオンラインゲームサービス302に基づくサーバ、以降では単にゲームサーバ302と呼ばれる、に論理的に接続されている。各ゲーミングシステムがクライアントを表すことが理解されるべきである。図2Bに関連して上述されたとおり、ゲームサーバ302は、単一サーバであることもできるし、あるいはむしろサーバコンピューティングシステムにグループ化された複数のサーバを備えることになるであろう。ネットワーク300は、ネットワーク280と類似し、有線および無線種別の双方を含む多種多様な従来の通信構成のいずれか1つまたは複数を用いて実現することができる。公開および独自のプロトコルの両方を含む多種多様な通信プロトコルのいずれかが、ネットワーク300経由でデータを通信するために使用することができる。この種のプロトコルの例には、TCP/IP、IPX/SPX、NetBEUIなどが含まれる。
本発明の好ましい実施例は、マイクロソフトコーポレーションのXBOX LIVE(登録商標)オンラインゲーミングネットワークと共に実現されるであろう。図5は、一例としてのゲーミングネットワーク300を示しており、これは複数のゲーミングシステム100a、...100sを含み、その各々がオンラインゲームサービス302に基づくサーバ、以降では単にゲームサーバ302と呼ばれる、に論理的に接続されている。各ゲーミングシステムがクライアントを表すことが理解されるべきである。図2Bに関連して上述されたとおり、ゲームサーバ302は、単一サーバであることもできるし、あるいはむしろサーバコンピューティングシステムにグループ化された複数のサーバを備えることになるであろう。ネットワーク300は、ネットワーク280と類似し、有線および無線種別の双方を含む多種多様な従来の通信構成のいずれか1つまたは複数を用いて実現することができる。公開および独自のプロトコルの両方を含む多種多様な通信プロトコルのいずれかが、ネットワーク300経由でデータを通信するために使用することができる。この種のプロトコルの例には、TCP/IP、IPX/SPX、NetBEUIなどが含まれる。
一般に、ゲームサーバ302は、プレーヤー間のゲーム遊びを円滑にするために通信にあたってクライアントを連結させたり、オンラインゲームをサービスおよび/またはホストしたり、ダウンロード可能なゲーム関連のファイルをサービスしたり、ゲーミング競技会をホストしたり、ストリーミングゲーム関連のA/Vファイルをサービスしたり、ゲーム遊びの期間中に参加者間のテキストベースまたは音声のメッセージ交換を可能にしたり、そしてその他同種類のもののように、ゲーミング関連サービスに接続されたクライアントに(即ち、各ゲームシステム100の使用者に)そのサービスを提供する。しかしながら、本発明は、多くのその他の種別のサービスがこのサーバによって提供されうるので、単にこれらまたはその他のゲーム関連のサーバ機能のみを持つ用途に限定されないということが強調されるべきである。
ネットワーク300は、ゲームサーバ302にまだ接続されていないゲームシステム100tを含むことに留意されたい。本発明の好ましい実施例を説明するにあたって、ゲームシステム100tとゲームサーバ302間のネットワーク接続の確立を以下にさらに詳しく説明することになるであろう。図5は、また、ゲームシステム100u上に重ね合わされた「禁止」のための広く一般に了解されたシンボルを示し、破線がゲームシステム100uとゲームサーバ302の間に伸びて、ゲームシステム100uとゲームサーバ302の間のネットワーク接続が終了されたことを示している。以下にさらに詳しく説明されるように、特に本発明がゲームネットワークの環境において実施される場合、クライアントがチャレンジに失敗するときのサーバによる予め決められたひとつの行動は、クライアントとサーバ間の現在のネットワーク接続を直ちに終了すること、および/またはサーバとのネットワーク接続を確立するためのその特定のクライアントによるその後のいかなる試みをもそれ以降拒絶することの両方である。このように、図5の例では、ゲームシステム100uは、ゲームサーバ302によって発行されたチャレンジに対して適切に応答することに失敗し、ゲームシステム100uとゲームサーバ302間の論理ネットワーク接続がゲームサーバ302によって終了されている。さらに、この例では、ゲームサーバ302は、ゲームシステム100uについての識別印(例、シリアル番号)を記録し、ゲームシステム100uが次にゲームサーバ302に接続することを再び試みるとき、その識別印を検出することによって、将来の時点でゲームサーバ302への論理ネットワーク接続を確立するためのゲームシステム100uによるいかなる将来の試みも拒絶することになろう。
(論理プロセスの概観)
図6において、フローチャート320は、本発明で用いられた論理ステップを図示しており、クライアントがサーバにアクセスできるようになる前にクライアントにチャレンジを課している。ブロック322において、クライアントがサーバにリクエストを送る。本発明により、サーバによって提供されるサービスまたはデータにクライアントがアクセスできるようにする前に、サーバがクライアントに関する状態を評価できるようにする。従来のネットワークにおいては、サーバは使用者名とパスワードの入力を要求することがあるが、しかし、サーバによって提供されるサービスにクライアントのアクセスを許可する前に、クライアントに関する状態を判定しようとは試みないであろう。しかしながら、本発明により、サーバはクライアントについてのハードウェアおよび/またはソフトウェアの構成に関連した状態を先ず判定することを可能にする。従って、本発明は、クライアントの使用者がサーバによって提供されるサービスまたは情報を欲し、サーバと共にまたはサーバを通して論理接続を確立しようと試みるこれら状況においてのみ有用である。この使用者がこのサーバによって提供されるサービスを望まず、サーバに接続しようと全く試みない場合には、このサーバはクライアントに関する状態を評価するための機会を有しないであろう。
図6において、フローチャート320は、本発明で用いられた論理ステップを図示しており、クライアントがサーバにアクセスできるようになる前にクライアントにチャレンジを課している。ブロック322において、クライアントがサーバにリクエストを送る。本発明により、サーバによって提供されるサービスまたはデータにクライアントがアクセスできるようにする前に、サーバがクライアントに関する状態を評価できるようにする。従来のネットワークにおいては、サーバは使用者名とパスワードの入力を要求することがあるが、しかし、サーバによって提供されるサービスにクライアントのアクセスを許可する前に、クライアントに関する状態を判定しようとは試みないであろう。しかしながら、本発明により、サーバはクライアントについてのハードウェアおよび/またはソフトウェアの構成に関連した状態を先ず判定することを可能にする。従って、本発明は、クライアントの使用者がサーバによって提供されるサービスまたは情報を欲し、サーバと共にまたはサーバを通して論理接続を確立しようと試みるこれら状況においてのみ有用である。この使用者がこのサーバによって提供されるサービスを望まず、サーバに接続しようと全く試みない場合には、このサーバはクライアントに関する状態を評価するための機会を有しないであろう。
ほとんどの場合にブロック322は、サーバにログオンするためのクライアントの試みを表すであろうということが考えられる。しかしながら、ブロック322は、サーバによって制御されるサービスまたは情報にアクセスするため、またはアクセスし続けるためのクライアントによる(ログオン成功後の)それ以降の任意のリクエストをも表すことができるということが理解されるべきである。クライアントとサーバ間の論理ネットワーク接続を伴ういずれの単一セッションにおいても、ブロック322はこの種の論理接続の確立後直ちに、またはこの種の論理接続の確立に引き続くいかなる時点でも実施することができるということが理解されるべきである。いくつかの状況においては、以下に付加的な詳細を説明するように、最初のログオンの試みの時点と、そしてまたクライアントとサーバ間の通信セッション期間中の1つまたは複数の時点の両方でクライアントにチャレンジを課すことが有益である場合がある。
ブロック324において、サーバはクライアントにチャレンジを送る。サーバによってクライアントへ送ることのできる好ましい形態のチャレンジの詳細は、さらに詳しく以下で議論されるが、このチャレンジは、システムにアクセスすることができるように、単にサーバがクライアントにパスワードやその他いくつかの資格認証の情報を提供するようにリクエストすることではないということが理解されるべきである。このチャレンジは、クライアントの状態がサーバの期待通りであるか否かを判断するためにクライアントの特性または状態を判定することを対象としている。複数の異なるチャレンジが予め生成され、サーバにとって利用可能になり、各兆戦が対応し期待される応答に関連付けられているということが考えられる。いろいろなチャレンジがそのクライアント上の同一の状態について検査できる。サーバは、その後、予め生成された複数のチャレンジのひとつを選択し、クライアントに送ることができる。各々のこの種の予め生成されたチャレンジについて、サーバはクライアント上にあると期待される状態の既知の特性に基づいて、期待される応答を算出することになろう。この種のチャレンジによって評価される可能性のある状態には、例えば、クライアントによって利用されるBIOS、クライアントのハードウェア構成、そしてクライアントによって利用されているソフトウェアが含まれる。
ブロック326において、クライアントはサーバから受け取ったチャレンジを処理する。上で述べたように、このチャレンジは、入力されるべきパスワードまたはその他の何らかの資格認証の情報に対するリクエストではなく、クライアントの使用者によるいかなる行動も要求しない。好ましくは、このチャレンジは、サーバからクライアントに送られる実行可能なコードセグメントの形態である。このクライアントは、サーバから受け取ったコードセグメントを実行し、その後コードを実行することによって生成された応答を評価のためにサーバに送り返す。少なくともひとつの好ましい実施例において、このチャレンジは、クライアント上の指定部分のメモリまたはクライアントによってアクセス可能なDVDやその他の不揮発性記憶の指定部分について、SHA−1またはMD5のような、一方向のハッシングアルゴリズムを実施するためのコードを含む。このチャレンジはまた、期待される結果に影響を及ぼす1つまたは複数のパラメータを含むことが好ましいであろう。
ブロック328において、クライアントによって算出される応答は、サーバに送られる。ブロック330において、サーバはクライアントによって算出された応答を評価する。この時点で、クライアントから受け取った応答に基づいて、ブロック331に示された通り、サーバはいくつかの所定の行動のひとつを、クライアントから受け取った応答に基づいて、実行することができる。クライアントがチャレンジに対する期待される応答をサーバに送ることに失敗した場合、あるいはそのクライアントから何の応答も受け取らなかった場合、サーバは様々の異なる方法で応じることができる。例えば、サーバは追跡の目的で単にこの出来事のログを取ることができる。その他の状況下では、サーバは、クライアントからのリクエストを拒否し、このクライアントとサーバ間の論理ネットワーク接続を終了することができる。別の選択肢は、サーバがこのクライアントとの論理接続を終了することであろう。さらに、サーバは、クライアント装置あるいは使用者によるサーバとの論理ネットワーク接続を確立するためのいかなる将来の試みをも「拒否」することができる。
このクライアントまたは使用者との将来のサーバ接続を拒否する目的でクライアントまたは使用者の身元を正確に判定するために、認証プロセス(パスワードやスマートカードなどのような、資格認証)を使って、このクライアント装置および/または使用者を同定した後で、ここに説明されたチャレンジと応答のプロセスを履行することができる。この認証プロセスの後にチャレンジ応答プロセスを行うことによって、クライアント装置および/または使用者の身元を正確に判定することができ、サーバからクライアントの身元(それがクライアント装置であれ、使用者であれ)を永久に遮断することを認証された身元に絞って正確に行うことができる。
図7は、図6のステップの変更形態を示しており、フローチャート320aにおいてステップ330と331が省略されているが、ステップ332、334、336、および338を追加している。クライアントがサーバにリクエストを送り、サーバがクライアントにチャレンジを送り、クライアントがチャレンジを処理し、そしてクライアントが算出した応答をサーバに送る。フローチャート320aにおいて、クライアントからの応答は、判定ブロック332で分析され、サーバがこの応答を受け入れるであろうかどうかを判断する。判定ブロック332において、クライアントが(期待される応答に適合しない)正しくない応答を返したとサーバが判断する場合、サーバはブロック336においてクライアントからのリクエストを否認する。本実施例においては、この時点でクライアントとサーバ間の論理ネットワーク接続を終了することにするのが好ましい。クライアント上に存在する状態を変更(例、修正)し、サーバからの後続のチャレンジをクライアントが処理できるようにすることが可能であり、そのためその後このクライアントは期待される応答に適合する応答を提供するであろう。あるいは、一回の事例でもクライアントの応答が期待された応答に適合しなければ、今後のいかなるサーバとの接続からもクライアントを差し止めることが好ましいかもしれない。このように、任意選択のブロック338に示されたように、サーバがブロック336においてクライアントからのリクエストを否認した場合、このクライアント装置または使用者の身元からの今後のすべてのリクエストがブロック338で無視される。
判定ブロック332を再度参照して、クライアントからの応答がサーバによって受け入れられた場合、次にクライアントからのリクエストはブロック334で処理される。さらなる代案として、クライアントがリクエストをサーバに送る現行のセッション期間中のその後の時点でこのチャレンジプロセスを繰り返すことができる。クライアントからサーバへのあらゆるリクエストに応じてチャレンジを送ることは、実際的ではなさそうであろうが、ブロック334と322をつなぐ点線によって示されているように、引き続きのリクエストをするクライアントに再びチャレンジを送ることは可能である。
また、クライアントが最初のチャレンジをパスした後にいくつかの状態を変更したかどうかを判断するために、任意の時間にサーバがクライアントにチャレンジを引き続いて発行することができる。例えば、チェックされている状態が、クライアントが改変されたソフトウェアを使っているかどうかについての判定である場合、クライアントが最初のチャレンジをパスし、しかしその後に改変されたソフトウェアを使い始めることが可能かもしれない。セッション期間中に1つまたは複数の後続のチャレンジを発行することによって、使われているソフトウェアのこの種の変更を検知することができる。フローチャート320aは、このように、ブロック334と324をつなぐ点線で、この任意選択による後続のチャレンジを図示している。
(ゲーミングネットワークにおいてチャレンジを実施するための好ましいプロセス)
図8は、フローチャート340を示し、これは、図5のゲーミングネットワークにおけるクライアントとサーバの双方によって実行されるステップの論理シーケンスを示す。以下の議論において、ゲームシステム100tがゲームサーバ302(両方とも図5に図示)にアクセスしようと試みていることが想定されている。しかしながら、下述された論理プロセスもまた、他のネットワークで利用可能なゲーミングシステムと共に用いることができ、そして本発明は用途についてゲームシステム100のみに限定されないということが理解されるべきである。
図8は、フローチャート340を示し、これは、図5のゲーミングネットワークにおけるクライアントとサーバの双方によって実行されるステップの論理シーケンスを示す。以下の議論において、ゲームシステム100tがゲームサーバ302(両方とも図5に図示)にアクセスしようと試みていることが想定されている。しかしながら、下述された論理プロセスもまた、他のネットワークで利用可能なゲーミングシステムと共に用いることができ、そして本発明は用途についてゲームシステム100のみに限定されないということが理解されるべきである。
図8に関しては、ゲームコンソールによって実行される論理ステップが、点線のボックス342でグループ化されており、他方でゲームサーバによって実行される論理ステップは、点線のボックス344で共にグループ化されている。ゲームコンソールがゲームサーバにログオンしようと試みる前に、いくつかのステップを履行しなければならない。ボックス342を参照すると、ブロック352に示されたように、ゲームコンソールの使用者は、互換性のあるゲームを入手しなければならない。このゲームは、ネットワークでの遊びをサポートするものでなければならない。また、ゲームコンソールがゲームサーバから受け取ったチャレンジを信頼されるソースに由来するものとして認証することができるようにする使用目的のために、ゲームコンソールまたはゲームのどちらかが公開鍵を有するであろう。すべてのXBOX(登録商標)ゲームコンソールは、ゲームコンソールに送られたチャレンジをデジタル署名するためにXBOX LIVE(登録商標)ゲームサーバによって使用されている秘密鍵に対応する公開鍵を有している。ブロック354において、使用者はネットワークで利用可能なゲームを選択し、ゲームディスク(ネットワーク利用可能なXBOX(登録商標)ゲーム用の片面、二層のDVDディスク)をゲームコンソールに差し込む。ゲームのスタートメニューから、使用者はブロック356においてネットワーク遊びのオプションを選択すると、それによってゲームコンソールは、ブロック358に示されたように、ゲームサーバにログオンすることを試みるようになる。
サーバによって実行される論理ステップをここで参照すると、点線のボックス344で示されたように、ゲームコンソールからのログオンのリクエストに対してチャレンジを発行する前に、本発明においてはいくつかの論理プロセスがここでもまた実行されることが好ましい。ブロック346において、少なくとも1つのチャレンジが、期待されるコンソールの特性に基づいて、著作されることが好ましい。チャレンジを進行中に著作することもできるが、そうすることは、ゲームサーバのリアルタイム性能を低下することになる可能性が高く望ましくないということに留意されたい。好ましくは、複数のチャレンジを事前に著作するようにし、ゲームサーバが異なる時間に異なるチャレンジを選択し、発行できるようにする。
いくつかの異なる種別のチャレンジがこの好ましい実施例において実装される。最初の種別のチャレンジは、コードのチャレンジと呼ばれる。コードのチャレンジは、実行可能なコードセグメントであり、ゲームサーバからゲームコンソールへ送られる。ゲームコンソールは、複数の機械語命令からなるこのコードセグメントを実行すると、それによりゲームコンソールに応答を算出させ、その応答は期待される応答との比較のためにゲームサーバに返されることになる。チャレンジは、ゲームサーバが正しいまたは期待される応答が何であるべきかを決定するように著作される。上述のゲームシステム100に関して、この種のゲームシステムの特性は、非常に明確に規定されている。本来のBIOSに変更を加えるために使われる改変されたチップ(即ち、「改変チップ」)の追加のような、ゲームシステム100の構成に対するいかなる変更も適切なチャレンジで直ちに検知されうる。
ゲームコンソールに関して特に、チャレンジはゲームコンソールのROM/カーネルイメージが変更されたかどうかを検知することができる。この種の改変は、クライアントのコード変更を可能にするために行われ、そしてまた、使用者が改変したゲームソフトウェアを用いて、ゲーム遊びの期間中に不正行為をすることを可能にすることもできる。十分な時間と資源があると仮定すると、いつも何の変更もなく使われるならば、ほとんどどのようなチャレンジも破られる可能性がある。しかしながら、チャレンジと共に送られるパラメータや、そして/またはコードセグメントの内容や、そして/またはコードセグメントによってチェックされるメモリの一部のいずれかが変更されている複数の異なるチャレンジを利用することによって、検知されることのない改変されたゲームコンソールを用いることが極めて困難になるであろう。たとえスイッチを使って本来のBIOSチップをゲームコンソール回路の中に復元することができるにしても、本来のチップを復元し忘れるという一回の事例によって、そのゲームコンソールはそれ以降オンライン遊びのゲームサーバに接続することから永遠に追放される結果になる。複数の異なるチャレンジを用いることと、かつてのチャレンジを破るために出回っている対処法に応じて新たなチャレンジを著作することによって、ゲームサーバは、事実上、ゲームコンソールを変更して不正行為をしたいと思っているゲームコンソールの使用者の一歩先を行くことができる。
多くの異なるコードのチャレンジを事前に著作することができ、そしてゲームサーバの管理者は、これらのチャレンジに対処しようとするいかなる組織立った試みをも無効にする見込みのあるような方法で、これらの事前に著作されたコードのチャレンジの漸次的なリリースを制御することができる。好ましくは、その時々で使われる特定のチャレンジは、利用可能なチャレンジの溜め(pool)から無作為に選択されることになる。このように、以前使われたチャレンジは、無作為に再利用され、ゲームサーバに送らなければならない期待される応答を予期することが極めて困難になる。例えば、新たなチャレンジを、その年の各日にリリースすることができる。新たなチャレンジが最初に使われたその日において、ゲームサーバにアクセスしようと試みているゲームコンソールは、この新たなチャレンジに遭遇する可能性が高いが、しかし低い頻度ではあるが、以前発行されたチャレンジがその日にゲームサーバによって発行される可能性もある。この種の時限であるが、無作為の新旧のチャレンジのリリースにより、以前遭遇したことのないチャレンジまたはゲームサーバによって発行された認識されていないチャレンジを回避することが極めて困難になるような頻度で予測不可能な新たなチャレンジに遭遇させられる結果になる。
複数の異なるコードのチャレンジを著作することに加えて、各コードのチャレンジを、ゲームコンソールが応答をどのように算出するかを変える複数の異なるパラメータと共に発行することができる。例えば、好ましいコードのチャレンジは、ゲームコンソールのBIOSが入っているメモリの内容の一方向ハッシュを行うことであろう。上で述べたように、SHA−1ハッシングアルゴリズムまたはMD5ハッシングアルゴリズムは、有益に採用することのできる一方向ハッシングアルゴリズムの例である。ゲームコンソールのBIOSは既知であり、そして各ゲームのゲームコードも既知であるので、ゲームコンソールがゲームサーバにログオンしようと試みている時に、ゲームサーバは、ゲームコンソール上のメモリの指定部分またはメモリのデータセクションの指定部分またはDVDの指定部分について一方向のハッシングアルゴリズムを適用することによっていかなる結果になるかについて必要となる情報を有している。これが今までにゲームサーバによって発行されたコードのチャレンジの唯一の形態であったならば、決意のある使用者は、この用いられた一方向ハッシュアルゴリズムをうまく判定し、そして改変されていないゲームコンソール上でどのような期待される応答がもたらされるであろうかを割り出す可能性があるであろう。このコードのチャレンジを破るために、改変されたゲームコンソールは、予め決められた応答で各兆戦に応じるように指示されるであろう。
しかしながら、そのコードのチャレンジと共にその時々に送られるパラメータを変更することによって、ゲームサーバは、期待される応答がどうであるべきかを判定するにあたっての難易度を著しく増すことができる。例えば、ゲームコンソールがメモリの異なる部分についてハッシングアルゴリズムを行うように指示される場合、期待される応答は変わることになる。ゲームサーバによって発行されたチャレンジにおいて示されるように、ハッシュされることになるゲームコンソールのメモリの開始と終了の範囲を単純に変えることで、期待される応答は、劇的に変化する。ハッシュされるゲームコンソールのメモリの部分において単一のビットを変えるだけでも、一方向のハッシングアルゴリズムの結果においては実質的な変化の原因となるであろう。
ゲームコンソールのメモリの一方向ハッシュに基づいたコードのチャレンジを克服する難易度を増すために使うことができるもうひとつのパラメータは、一方向ハッシュを初めに動かすための異なるシード/初期化ベクタを含めることである。このように、期待される応答を変えるために、異なるチャレンジには、ハッシュされるメモリの一部と共に含まれる異なる初期化ベクタを含めることができる。また、ハッシングコードを、異なるチャレンジにおいて変更することができる。例えば、コードは、ハッシュされる前にメモリの一部に関してXOR演算を行うことを要求してもよい。
メモリ範囲のパラメータ、シード/初期化パラメータ、そして実装されるコードに対する変更は、先の検討のように、ゲームサーバによって送られるチャレンジにおいて採用することができる様々なパラメータの単なる例であり、本発明に関して限定となるように意図されたものではないということに留意されたい。明らかに、パラメータをコードのチャレンジに含めることで、ゲームサーバは、ゲームコンソールに送られる異なるコードのチャレンジの数を増やすという目標を達成することができる。
ゲームコンソールのメモリのその他の部分もまた、ゲームコンソールに一方向ハッシュの算出を要求するコードのチャレンジの中で使うことができる。このハッシュは、ゲームコンソールのRAMメモリ、ROMメモリ、ハードドライブ、もしくはDVDディスクメモリ、またはこの種の各メモリの選ばれた部分、あるいはすべての組み合わせに基づくことができる。メモリ中に変更されていない内容が入っているゲームコンソールは、ゲームサーバによって期待される応答に適合する算出された応答を返すであろう。なぜなら、ゲームサーバは、ゲームコンソールのRAMメモリ、ROMメモリ、ハードドライブ、またはDVDディスクメモリに何があるべきかを知っているからである。ゲームコンソール、そしてゲームソフトウェアの関連において、この種の知識は容易に確定できる。ゲームコンソールからの正しくない応答は、ゲームコンソールのRAMメモリ、ROMメモリ、ハードドライブ、またはDVDディスクメモリの1つまたは複数に(チャレンジに従ってどのメモリがハッシュされたかに依存して)変更が為されたことを明らかにする。一方向のハッシュを採用することにより、検知されることなく期待される内容のどの単一のビットをも変更することが不可能になる。
この種のコードのチャレンジによって検証することができるゲームコンソールの部分は、事実上、無制限である。好ましくは、変更される可能性のあるゲームのコードセグメントを特にチェックするようにコードのチャレンジを著作することになろう。ゲームコードのセグメントをチェックして、ゲームシャーク型の装置が「残された生命の数」または「エネルギーバーの有効サイズ」のような値を変更するために使われていないことを確かめることもできる。ゲームコンソールのハードドライブをチェックして、ゲームコンソールのプレーヤーが壁を透視できるようにするビデオドライバの変更のように、選択されたファイルに変更が為されていないかどうかを検知することもできる。ゲームコンソールのハードウェアを対象としたコードのチャレンジにより、追加の、またはより大容量のハードドライブを付け加えることのように、ゲームコンソールのハードウェアを改変したかどうかを判定することができる。
チャレンジのもうひとつの形態は、DVDのチャレンジと呼ばれる。DVDのチャレンジは、ゲームが配布されたソフトウェア媒体の本来の認可されたコピーのランダム領域があって、ゲームサーバが期待するものと異ならないことを検証する。このチャレンジの目標は、不正をするためにゲームコンソールを改変したゲームコンソールの使用者を検知するためではあまりなく、むしろ海賊版のソフトウェアの存在を検知するためである。海賊版のソフトウェアは、認可されたDVDからコンパクトディスク上にコピーされ、それらは本来の認可されたDVD上にあったゲームプログラムの本質的な部分のみを格納している。DVDのデータをCD−ROMにコピーすることは大変安上がりであり、データをCD−ROMの上にコピーするための設備は、さらにいろいろな所で利用できる。二層のDVDはCDと比べて著しく大量のデータ(約700メガバイトに対して9ギガバイト)を保持するが、多くのゲームはDVDを完全に一杯にするほど十分に大きくない。この種のDVDの残りはランダムなバイトで満たされている。CD−ROM上に作成されたゲームDVDの海賊版コピーには、これら余分なランダムバイトは含まれていない。
DVDのチャレンジは、DVD上のセグメント(このセグメントにはDVD上に含まれるランダムバイトの少なくとも一部分を含む)の一方向ハッシュを算出することをゲームコンソールに要求する。ゲームコンソールが本来のDVDではなく、CD−ROM上に作成された非認可のコピーを使用している場合、ゲームコンソールによって算出される応答は正しくなく、このチャレンジにより、DVD上のゲームの本来の認可されたコピーではなく、海賊版のコピーの存在が検知されるであろう。
このチャレンジに対するひとつの可能な対処法は、ゲームコンソールのハードディスク上にDVDの正確なコピーを格納することであろう。しかしながら、適切なコードのチャレンジを使って、オンラインゲームをオンラインでプレイできるようにするであろう大容量ハードディスクおよび改変されたBIOSの追加のような、ハードウェアの改変を検知することができる。従って、海賊版のソフトウェアを検知するためのDVDのチャレンジと改変されたゲームコンソールを検知するためのコードのチャレンジを組み合わせることが好ましい。
このメカニズムは、本来のDVDイメージ全体をビット単位でコピーする海賊版のDVDディスクを検知するためには有用ではないということに留意されたい。しかしながら、二層の片面9ギガバイトのDVDを作り出すために現時点で要求される製造設備は、ほとんどの個人がこの種のコピーを作成することを不可能にするほど高価である。この種の設備のコストがDVDの複製が簡単に達成される点まで下がるとすると、もうひとつの可能なDVDのチャレンジは、認可されたゲームディスクの製造の期間中にゲームDVDに故意に欠陥を含めることに基づくことができるであろう。この種の原物のディスクは、ディスクのある特定の重要でない領域中に故意の欠陥と共に製造することができるであろう。これらの欠陥は、ディスクのその部分を読み出すための試みが為された時にメモリの読み込みエラーを返すことになる。本来の認可された媒体を読み出している時に期待されるであろう読み出しエラーの存在について、チャレンジが故意にチェックすることができるであろうし、そしてもし欠陥が含まれていることが知られている領域で読み出しエラーが起きなければ、この期待された結果が得られず、ゲームサーバは適切な行動をとることになるであろう。
チャレンジが行われているとき、一方向のハッシュを行うために使われることになる特定のバイト領域は、そのチャレンジの中のゲームサーバから受け取ったパラメータの一部であるべきである。応答を実際に算出するためのこのコード(即ち、一方向ハッシングアルゴリズム)は、ゲームサーバから送られるチャレンジの中に含めるのに代えて、ゲームコンソールのROMの中に格納させることができる(あるいは、ゲーム媒体に、即ち、ゲームDVD上に、格納させることができるであろう)。このアプローチにより、ゲームサーバによって発行される各兆戦のサイズが減る一方で、ある問題を提示する。それは一方向ハッシュアルゴリズムを実装するためのコードが今やハッカーに比較的容易に発見されうるからである。それでもなお、チャレンジの中で送られるその他のパラメータを変更することによって、ゲームコンソールが期待される結果に適合しない実際に算出された結果の代わりに偽りの期待される結果を送り返すことは依然として困難であろう。
DVDのチャレンジは、同一のチャレンジ応答シーケンス内でコードのチャレンジと併せて使用可能であり、単一のチャレンジと応答のシーケンスにおいてゲームコンソールに対する変更と海賊版作成の両方を検知することができる。DVDのチャレンジとコードのチャレンジを一緒に使って、ハードドライブに格納されたゲームプログラムの各ビット単位のコピーのように、DVD以外の別の媒体からのデータをハッシングすることによってDVDのチャレンジを回避する可能性があるゲームコンソールを制御しているコードに対して何らかの変更が為されたどうかを検知することができる。DVDのチャレンジをうまく破るためにハードドライブからのデータを使うことができる一方で、コードのチャレンジにより、DVDの代わりにハードドライブに格納されたソフトウェアからゲームをプレイできるようにするBIOSに対する変更を検知し、それによって、この改変されたゲームコンソールがこの組み合わされたチャレンジにパスすること防止している。
上述のDVDのチャレンジは、ソフトウェアの非認可のコピーを検知するために特に設計されており、ソフトウェアの海賊行為の検知が望まれる非ゲーミング環境に対しても明らかに適用可能である。しかしながら、このような非認可のソフトウェアの検知は、ソフトウェアの使用者が本発明を実装するサーバにアクセスを望むまでは、起こらないであろう。上述のコードのチャレンジおよびDVDのチャレンジは、一方向のハッシングアルゴリズムを採用しているけれども、チャレンジは、サーバからクライアントに送られるコードを実行することによって行われるその他の手順に基づくこともでき、ハッシュアルゴリズムに限定されない。一方向ハッシュアルゴリズムの使用は、単に例示にすぎず、本発明について限定していない。
フローチャート340を再度参照すると、ブロック348において事前に著作された各チャレンジが、秘密鍵で署名されている。この秘密鍵の使用は、必須ではないが、好ましい。本発明において、コードセグメントはサーバからクライアントに送られる。一般に、どのようなコンピューティング装置でも外部のソースから実行可能なコードを受け取るとき、そのコンピューティング装置の使用者は、この外部のソースを信頼できるという確信を得たいであろう。各チャレンジは、ゲームサーバだけに特別に利用可能な秘密鍵で署名されており、そしてゲームサーバ(またはゲームコンソール)と共に使用する目的でリリースされた各ゲームには、対応する公開鍵が含まれているので、ゲームコンソールの使用者は、ゲームサーバから受け取った実行可能なコードが信頼されたソースから来ていることを確信できる。ブロック350において、追加のチャレンジを生成するために、各兆戦に対するパラメータを割り当てることができ、そして各兆戦の答え、およびこの種のパラメータによって変更された各チャレンジが明確にされる。
ブロック358を再度参照すると、ゲームコンソールはゲームサーバにログオンすることを試みている。応答にあたって、ゲームサーバは事前に著作したチャレンジのひとつと、そしてパラメータ一式をブロック360で選択する。ブロック362では、ゲームサーバは署名したチャレンジをゲームコンソールに送る。ブロック364では、ゲームコンソールは、ゲームコンソール上のメモリに含まれる公開鍵を使い、ゲームサーバからゲームコンソールに送られたチャレンジを実行する前に、ゲームサーバからの署名が認証されることを検証する。この署名がこの公開鍵で認証されなければ、このチャレンジのコードは実行されないことが好ましい。しかしながら、この署名のチェックが失敗したという事実は、応答の一部として密かにサーバに送り返される。これを行う理由は、チャレンジのコード上の署名を適切に認証できなかったことが、普通、改変されたBIOSの存在(即ち、公開鍵が変更されたということ)を意味し、ちょうど期待される応答に適合しない他の任意の応答と同様に、この結果は正しくない応答と考えられるべきであるからである。ブロック366において、ゲームコンソールは、チャレンジに含まれたパラメータでコードを実行し、応答を算出する。ブロック368では、ゲームコンソールはゲームサーバに算出された応答を送る。
判定ブロック370において、ゲームサーバはゲームコンソールからの応答を評価し、この応答が期待される応答に適合するかどうかを判定する。この期待される応答は、ブロック360において選択された特定のチャレンジによって特定される。このように、サーバは、ブロック360とブロック370間で選択された特定のチャレンジの経過を把握しておく必要がある。このクライアントから何の応答も受け取らなければ、サーバは応答の欠如をクライアントから正しくない応答を受け取ったかのように取り扱うことになる。しかしながら、そのクライアントがまさにその瞬間においてサーバから不本意ながら接続を絶たれていたという可能性のために、何回かの応答なしの事例に遭遇するまでは疑わしきは罰せずの恩恵をクライアントに与えることが好ましい。このフローチャートでは示されていないが、サーバは、特定のクライアントにつきチャレンジに対する応答の失敗に関するすべての連続した事例を列挙することができ、そのクライアントが所定の回数応答に失敗したら、サーバは、所定の行動を取ることになる。ブロック374において、ゲームコンソールが期待される応答を提供したことをゲームサーバが判定し終わり、そしてゲームコンソールがゲームサーバにログオンし、ゲームコンソールの使用者がネットワークゲーム遊びの特典を受けることができるようになる。
任意選択の論理ステップが判定ブロック376によって示されており、そこでゲームサーバはゲーム遊びの期間中のある時点で新たなチャレンジをゲームコンソールに発行すべきかどうかを決める。新たなチャレンジを発行することにしないのであれば、論理プロセスは終わる。新たなチャレンジを発行すべきであると決定するならば、この論理はブロック360にループバックし、新たなチャレンジがゲームサーバからゲームコンソールに送られる。この時点で、使用者は、ゲーム遊びの期間中にシステムの再起動なしにひとつの設定から代替の設定に切り替えることができるとは思われない。しかしながら、ゲーム遊びの期間、設定を起動したまま切り替えられるようにするための対処法が開発されるならば、この種の対処法は、ゲーム遊びのセッション期間中にチャレンジを無作為的に送ることで打破されることになり、ゲームまたはゲームコンソールの設定に対するいかなる変更をも検知することができるであろう。判定ブロック370を再度参照して、ゲームコンソールが間違った応答を返したとゲームサーバが判断する場合、次にゲームサーバはブロック372において所定の行動を実行する。この所定の行動が実行され次第、この論理プロセスはおしまいになる。
好ましい実施例において、この所定の行動は、ゲームコンソールとゲームサーバ間の論理接続を直ちに無効にすることである。さらに、ゲームサーバは、アクセスを拒否されたゲームコンソールの識別情報を記録し、この特定のゲームコンソールからの今後のいかなるログオンの試みの受け入れを拒絶する。このアプローチには、使用者に彼らのコンソールを変更することを思いとどまらせる特段の効果のあることが期待され、それは使用者がチャレンジをパスするであろう本来の設定か、または変更された代替の設定のどちらか一方に、ゲームコンソールを選択的に設定することを可能にするスイッチが、この変更に含まれるとしてもである。頻繁なゲームサーバの使用者は、ある時点でこの種のスイッチを本来の設定位置に適切に配置することを忘れるであろうことが予想される。この種のいかなる間違いもそのゲームコンソールをゲームサーバにアクセスすることから永久に追放するという結果を招くことになるであろう。しかしながら、その他の所定の行動を実行することができることも理解されるべきである。例えば、ゲームサーバは、ネットワーク上で使われている改変されたコンソールの程度を判定するために、ある一定期間にゲームサーバにアクセスしようと試みている改変されたゲームコンソールの事例を単に記録してもよい。ゲームサーバは、このゲームコンソールをゲームサーバから永久に追放する前に、改変されたコンソールによるアクセスが許されていないことをゲームコンソールの使用者に一回以上の警告を発することができるであろう。この種の警告を受け取った後、このゲームコンソールの使用者は、ゲームコンソールをその本来の設定に永久に戻し、それ以降、ゲームサーバにアクセスすることができるであろう。
本発明は、本発明を実施する好ましい形態と本発明に対する変更とに関連して説明されたが、通常の当業者であれば、その他の多くの変更が、添付の特許請求の範囲の適用範囲内で本発明に対して為されるうることを理解するであろう。従って、本発明の適用範囲は、上述の説明によって何ら限定されるものではなく、代わりに添付の特許請求の範囲を参照して専ら判断されるものである。
20 PC
21 処理ユニット
22 システムメモリ
23 システムバス
24 ROM
25 RAM
26 基本入出力システム(BIOS)
27 ハードディスクドライブ
28 磁気ディスクドライブ
29 取り外し可能な磁気ディスク
30 光ディスクドライブ
31 取り外し可能な光ディスク
32 ハードディスクドライブインターフェイス
33 磁気ディスクドライブインターフェイス
34 光ディスクドライブインターフェイス
35 オペレーティングシステム
36 アプリケーションプログラム
37 その他のプログラムモジュール
38 プログラムデータ
40 キーボード
42 ポインティング装置
46 入出力装置インターフェイス(例、シリアル)
47 モニター
48 ビデオアダプタ
49 リモートコンピュータ
50 外付けメモリ記憶装置
51 ローカルエリアネットワーク(LAN)
52 ワイドエリアネットワーク(WAN)
53 ネットワークインターフェイス
54 モデム
100 電子ゲーミングシステム
102 ゲームコンソール
104a、104b コントローラ
106 持ち運び可能な媒体ドライブ
108 光記憶ディスク
110 4つのポート
112 電源ボタン
114 取り出しボタン
120 A/Vインターフェイスケーブル
122 電源ケーブルプラグ
124 イーサネット(登録商標)データコネクタ
130 USBケーブル
132a、132b 親指スティック
134 Dパッド
136 ボタン
138 トリガ
140 取り外し可能な機能ユニット
142 ヘッドセット
144 ブームマイク
100a、100s ゲーミングシステム
100t ゲームシステム(サーバにまだ接続されていない)
100u ゲームシステム(「禁止」されている)
280 基本ネットワーク
300 ネットワーク
302 オンラインゲームサービスに基づくサーバ
21 処理ユニット
22 システムメモリ
23 システムバス
24 ROM
25 RAM
26 基本入出力システム(BIOS)
27 ハードディスクドライブ
28 磁気ディスクドライブ
29 取り外し可能な磁気ディスク
30 光ディスクドライブ
31 取り外し可能な光ディスク
32 ハードディスクドライブインターフェイス
33 磁気ディスクドライブインターフェイス
34 光ディスクドライブインターフェイス
35 オペレーティングシステム
36 アプリケーションプログラム
37 その他のプログラムモジュール
38 プログラムデータ
40 キーボード
42 ポインティング装置
46 入出力装置インターフェイス(例、シリアル)
47 モニター
48 ビデオアダプタ
49 リモートコンピュータ
50 外付けメモリ記憶装置
51 ローカルエリアネットワーク(LAN)
52 ワイドエリアネットワーク(WAN)
53 ネットワークインターフェイス
54 モデム
100 電子ゲーミングシステム
102 ゲームコンソール
104a、104b コントローラ
106 持ち運び可能な媒体ドライブ
108 光記憶ディスク
110 4つのポート
112 電源ボタン
114 取り出しボタン
120 A/Vインターフェイスケーブル
122 電源ケーブルプラグ
124 イーサネット(登録商標)データコネクタ
130 USBケーブル
132a、132b 親指スティック
134 Dパッド
136 ボタン
138 トリガ
140 取り外し可能な機能ユニット
142 ヘッドセット
144 ブームマイク
100a、100s ゲーミングシステム
100t ゲームシステム(サーバにまだ接続されていない)
100u ゲームシステム(「禁止」されている)
280 基本ネットワーク
300 ネットワーク
302 オンラインゲームサービスに基づくサーバ
Claims (37)
- サーバコンピューティング装置にクライアントコンピューティング装置上の状態を検知できるようにするための方法であって、
(a)前記サーバコンピューティング装置から前記クライアントコンピューティング装置へ、機械語命令を備えた前記コードセグメントを送るステップと、
(b)前記クライアントコンピューティング装置上で前記コードセグメントを実行するステップであって、前記機械語命令は、クライアントコンピューティング装置上で自動的にアクセスされる状態に基づいて、応答を決定するために前記クライアントコンピューティング装置により使われる前記コードセグメントを備えたステップと、
(c)前記応答をクライアントコンピューティング装置からサーバコンピューティング装置へ送るステップと、
(d)サーバコンピューティング装置上において、クライアントコンピューティング装置から受け取った前記応答を期待される応答と比較するステップと、
(e)前記サーバコンピューティング装置上において所定の行動を起すステップであって、前記クライアントコンピューティング装置から受け取った前記応答が期待される応答に適合しない場合、あるいは何らの応答も受け取られない場合、期待される状態はクライアントコンピューティング装置上に存在しないことを示すステップと、
(f)前記クライアントコンピューティング装置とのさらなるやりとりを許可するステップであって、前記クライアントコンピューティング装置から受け取った前記応答が期待される応答に適合する場合、期待される状態はクライアントコンピューティング装置上に存在することを示すステップと
を備えたことを特徴とする方法。 - 前記クライアントコンピューティング装置によって前記サーバコンピューティング装置から受け取られた前記機械語命令は、前記クライアントコンピューティング装置によってアクセス可能なメモリの指定部分について一方向ハッシングアルゴリズムを実施することを特徴とする請求項1に記載の方法。
- 前記コードセグメントは、前記一方向ハッシングアルゴリズムの実施にあたって使われる少なくとも1つのパラメータを備えることを特徴する請求項2に記載の方法。
- 前記一方向のハッシングアルゴリズムを履行する機械語命令は、前記コードセグメントに含まれた前記少なくとも1つのパラメータを用いて、前記クライアントコンピューティング装置によってアクセスされる不揮発性メモリ媒体上に含まれていることを特徴とする請求項3に記載の方法。
- 前記機械語命令は、前記一方向ハッシングアルゴリズムを実施するために前記クライアントコンピューティング装置によって実行され、前記機械語命令は、前記アルゴリズムにおいて使われるステップを規定することを特徴とする請求項2の方法。
- 前記クライアントコンピューティング装置が後に再び前記サーバコンピューティング装置に接続しているとき、前記サーバコンピューティング装置によって前記クライアントコンピューティング装置へ送られた前記機械語命令を変更するステップをさらに備えることを特徴とする請求項2に記載の方法。
- 前記機械語命令は、前記メモリの異なる指定部分を指示することによって変わることを特徴とする請求項6に記載の方法。
- 前記メモリの前記指定部分は、前記クライアントコンピューティング装置の基本入力出力システムの少なくとも一部を格納し、改変された基本入力出力システムが前記クライアントコンピューティング装置で用いられた場合、前記期待される状態は満たされないことを特徴とする請求項7に記載の方法。
- 前記メモリの前記指定部分は、前記クライアントコンピューティング装置によってアクセス可能な不揮発性メモリ媒体の一部を含み、前記不揮発性メモリ媒体の一部は前記クライアントコンピューティング装置によって読み出し不可能でない限り、前記期待される状態は満たされないことを特徴とする請求項2に記載の方法。
- 前記クライアントコンピューティング装置は、前記クライアントコンピューティング装置上の前記状態についての第1の応答を決定した後、前記クライアントコンピューティング装置によってアクセス可能な不揮発性メモリ媒体の状態に関連して第2の応答を決定するステップをさらに備え、前記サーバコンピューティング装置へ送られる前記応答は、前記第1の応答と前記第2の応答を備えていることを特徴とする請求項1に記載の方法。
- 前記サーバコンピューティング装置と前記クライアントコンピューティング装置間の前記さらなるやりとりは、前記クライアントコンピューティング装置の使用者に少なくとも一人以上の別のクライアントコンピューティング装置の他の使用者とオンラインで電子ゲームを行うことに参加できるようにするステップを備えることを特徴とする請求項1に記載の方法。
- 請求項1に記載のステップを前記電子ゲームの遊戯期間中に履行することを特徴とする請求項11に記載の方法。
- 請求項1に記載のステップ(a)、(d)、および(e)を実施するための機械語命令を有することを特徴とする記憶媒体。
- 請求項1に記載のステップ(b)および(c)を実施するための機械語命令を有することを特徴とする記憶媒体。
- ネットワークのゲーム遊戯サービスを通してネットワーク上で電子ゲームの遊びに参加するにあたって使用するためのクライアントコンピューティング装置の状態を決定するための方法であって、
(a)前記ネットワークのゲーム遊戯サービスを提供しているサーバコンピューティング装置から前記クライアントコンピューティング装置へチャレンジを伝送するステップであって、前記チャレンジは、前記クライアントコンピューティング装置上で応答を算出するにあたって使用するための少なくとも1つのパラメータを備えたステップと、
(b)前記チャレンジに含まれた前記パラメータを用い、前記クライアントコンピュータ装置上で応答を算出するステップであって、前記応答が前記クライアントコンピューティング装置上の前記状態に関連しているステップと、
(c)前記応答を前記クライアントコンピューティング装置から前記サーバコンピューティング装置へ送るステップと、
(d)前記サーバコンピューティング装置上において、前記応答を期待される応答と比較するステップと、
(e)前記クライアントコンピューティング装置から受け取った前記応答が、前記チャレンジに対する前記期待される応答に適合しない場合、あるいは何らの応答も受け取られない場合、前記サーバコンピューティング装置に対する前記クライアントコンピューティング装置の接続を終了するステップであって、前期クライアントコンピューティング装置上の期待される状態は満たされていないことを示すステップと
を備えていることを特徴とする方法。 - 前記チャレンジは、前記クライアントコンピューティング装置上で前記応答を算出するための符号化された機械語命令を含むことを特徴とする請求項15に記載の方法。
- 前記ネットワーク上で前記電子ゲームの遊びに参加するにあたって使用する前記クライアントコンピューティング装置によってアクセスされる前記電子ゲームのソフトウェアの中に、前記応答を算出する機械語命令が含まれることを特徴とする請求項15に記載の方法。
- 前記チャレンジにより、前記クライアントコンピューティング装置によってアクセスされるメモリの指定部分に一方向のハッシングアルゴリズムを前記クライアントコンピューティング装置に適用させ、前記応答を生じさせることを特徴とする請求項15に記載の方法。
- 前記メモリの前記指定部分は、前記クライアントコンピューティング装置の基本入力出力システムを格納していることを特徴とする請求項16に記載の方法。
- 前記クライアントコンピューティング装置による改変された基本入力出力システムの使用により、前記応答は前記期待される応答と異なるようになることを特徴とする請求項19に記載の方法。
- 前記メモリの前記指定部分は前記電子ゲームを行うめの機械語命令を格納するために使われ、前記ゲームを行うための前記機械語命令は、前記電子ゲームをしている時に前記クライアントコンピューティング装置の使用者に優位性を与えるように改変されていないことを前記状態が示していることを特徴とする請求項18に記載の方法。
- 前記クライアントコンピューティング装置で前記電子ゲームを行うための機械語命令は、不揮発性メモリ媒体の一部に格納され、前記メモリの前記指定部分は、前記不揮発性メモリ媒体において前記電子ゲームを行うための機械語命令を格納していない異なる部分になっていることを特徴とする請求項18に記載の方法。
- 前記不揮発性メモリは前記電子ゲームを行うための前記機械語命令の認可されたコピーを含んでいることを確認するために、前記不揮発性記憶の前記異なる部分は、前記クライアントコンピューティング装置によって読み出し不可能であることが予期されていることを特徴とする請求項22に記載の方法。
- 前記チャレンジに含まれ、前記応答を生じるにあたって前記クライアントコンピューティング装置によって使用される前記少なくとも1つのパラメータを変更するステップをさらに備え、前記クライアントコンピューティング装置が後に再び前記ネットワーク上の電子ゲームの遊びに参加しようと試みるときに、前記少なくとも1つのパラメータは前記メモリの前記指定部分を一方向ハッシングするにあたって前記クライアントコンピューティング装置による使用のための初期化コードを含んでいることを特徴とする請求項18に記載の方法。
- 前記クライアントコンピューティング装置が後に再び前記ネットワーク上の電子ゲームの遊びに参加しようと試みるときに、前記応答を生じるにあたって前記クライアントコンピューティング装置による実行のために前記チャレンジに含まれる機械語命令を変更するステップをさらに備えることを特徴とする請求項15に記載の方法。
- 前記クライアントコンピューティング装置が後に再び前記ネットワーク上の電子ゲームの遊びに参加しようと試みるときに、前記メモリの異なる指定部分を前記クライアントコンピューティング装置にハッシュさせるように前記チャレンジを変更するステップをさらに備えることを特徴とする請求項18に記載の方法。
- 前記応答が前記期待される応答に適合しない場合、前記サーバコンピューティング装置に、前記クライアントコンピューティング装置と前記クライアントコンピューティング装置の使用者の少なくとも一方を、それ以降、前記サーバコンピューティング装置を用いた前記ネットワーク上のいかなる電子ゲームの遊びに参加することから除外させるステップをさらに備えることを特徴とする請求項15に記載の方法。
- 請求項15に記載のステップ(a)、(d)、および(e)を履行するための機械語命令が格納された記憶媒体。
- 請求項15に記載のステップ(b)および(c)を履行するための機械語命令が格納された記憶媒体。
- ネットワーク上でサーバコンピューティング装置に接続された複数のクライアントコンピューティング装置にサービスを提供するために採用された該サーバコンピューティング装置であって、前記サーバコンピューティング装置はクライアントコンピューティング装置上の状態を検出し、
(a)複数の機械語命令を格納するメモリと、
(b)前記複数のクライアントコンピューティング装置を連結するためのネットワークインターフェイスと、
(c)前記メモリと前記ネットワークに連結されたプロセッサであって、
(i)クライアントコンピューティング装置にコードセグメントを送る機能であって、前記コードセグメントは前記クライアントコンピューティング装置上の状態を前記クライアントコンピューティング装置に決定させる機能と、
(ii)前記クライアントコンピューティング装置上の前記状態を示す前記クライアントコンピューティング装置からの応答を受け取る機能と、
(iii)前記応答を前記クライアントコンピューティング装置の期待される応答と比較する機能と、
(iv)前記応答が前記期待される応答に適合しない場合、あるいは前記応答が受け取られない場合、所定の行動を履行し、その他の場合には、前記ネットワーク上で前記クライアントコンピューティング装置に前記サービスを提供する機能と
を含む複数の機能を履行するための前記機械語命令を実行する前記プロセッサと
を備えることを特徴とするサーバコンピューティング装置。 - 前記コードセグメントは、前記応答を決定するにあたって前記クライアントコンピューティング装置によって使用される少なくとも1つのパラメータを含むことを特徴とする請求項30に記載のシステム。
- 前記コードセグメントは、前記クライアントコンピューティング装置に前記少なくとも1つのパラメータを用いて前記応答を決定させるための機械語命令を含むことを特徴とする請求項31に記載のシステム。
- 前記コードセグメントに含まれる前記機械語命令は、前記期待される応答が変化するように経時変化することを特徴とする請求項32に記載のシステム。
- 前記コードセグメントに含まれる前記少なくとも1つのパラメータは、前記期待される応答が変化するように経時変化することを特徴とする請求項31に記載のシステム。
- 前記クライアントコンピューティング装置によって決定される前記応答は、前記クライアントコンピューティング装置上に用いられた基本入力出力システムが期待される状態から変更されたかどうかを示すことを特徴とする請求項30のシステム。
- 前記クライアントコンピューティング装置によって決定される前記応答は、前記クライアントコンピューティング装置によってアクセス可能な不揮発性メモリに格納された実行可能コードが変更されて期待される状態から異なるかどうかを示すことを特徴とする請求項30に記載のシステム。
- 前記応答を決定するために前記クライアントコンピューティング装置に前記クライアントコンピューティング装置によってアクセス可能なメモリの指定部分についての一方向ハッシュを実現させる前記コードセグメントの中に、前記機械語命令によって、プロセッサにパラメータを含めさせることを特徴とする請求項30に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/293,228 US7287052B2 (en) | 2002-11-09 | 2002-11-09 | Challenge and response interaction between client and server computing devices |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004164640A true JP2004164640A (ja) | 2004-06-10 |
Family
ID=32107671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003378854A Pending JP2004164640A (ja) | 2002-11-09 | 2003-11-07 | クライアントとサーバコンピューティング装置間のチャレンジと応答のやりとり |
Country Status (5)
Country | Link |
---|---|
US (2) | US7287052B2 (ja) |
EP (1) | EP1418725B1 (ja) |
JP (1) | JP2004164640A (ja) |
AT (1) | ATE353516T1 (ja) |
DE (1) | DE60311625T2 (ja) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008524911A (ja) * | 2004-12-17 | 2008-07-10 | エヌエイチエヌ コーポレーション | バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法 |
JP2009501470A (ja) * | 2005-07-14 | 2009-01-15 | セクストリーム テクノロジーズ エーエス | マルチメディア・データの保護 |
JP2009530979A (ja) * | 2006-03-20 | 2009-08-27 | ソニー・コンピュータ・エンタテインメント・アメリカ・インク | ネットワーク装置の評価および誠実性の保全 |
JP2010509999A (ja) * | 2006-11-15 | 2010-04-02 | オルデルッチ ディーン | ゲームサーバと通信しているゲーム機を決定する装置および方法 |
JP2011502307A (ja) * | 2007-10-26 | 2011-01-20 | ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | オンラインリソースモニタリング |
US8032502B2 (en) | 2006-03-20 | 2011-10-04 | Sony Computer Entertainment America Llc | Validation of network devices |
US8771061B2 (en) | 2006-03-20 | 2014-07-08 | Sony Computer Entertainment America Llc | Invalidating network devices with illicit peripherals |
US9064373B2 (en) | 2006-11-15 | 2015-06-23 | Cfph, Llc | Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server |
US9111411B2 (en) | 2006-11-15 | 2015-08-18 | Cfph, Llc | Verifying a first device is in communications with a server by strong a value from the first device and accessing the value from a second device |
JP2015154818A (ja) * | 2014-02-20 | 2015-08-27 | 任天堂株式会社 | 据置型のゲーム装置、ゲーム装置、ゲームシステム、コンピュータプログラム及び速度制御方法 |
JP5838248B1 (ja) * | 2014-09-24 | 2016-01-06 | 株式会社 ディー・エヌ・エー | ユーザに所定のサービスを提供するシステム及び方法 |
US9590965B2 (en) | 2006-11-15 | 2017-03-07 | Cfph, Llc | Determining that a gaming device is communicating with a gaming server |
US9636589B2 (en) | 2010-11-02 | 2017-05-02 | Sony Interactive Entertainment America Llc | Detecting lag switch cheating in game |
US9685036B2 (en) | 2006-11-15 | 2017-06-20 | Cfph, Llc | Verifying a gaming device is in communications with a gaming server by passing an indicator between the gaming device and a verification device |
US9875341B2 (en) | 2006-11-15 | 2018-01-23 | Cfph, Llc | Accessing information associated with a mobile gaming device to verify the mobile gaming device is in communications with an intended server |
US10068421B2 (en) | 2006-11-16 | 2018-09-04 | Cfph, Llc | Using a first device to verify whether a second device is communicating with a server |
WO2019059148A1 (ja) * | 2017-09-20 | 2019-03-28 | Necプラットフォームズ株式会社 | Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラムが格納された記録媒体 |
US10810823B2 (en) | 2006-11-15 | 2020-10-20 | Cfph, Llc | Accessing known information via a devicve to determine if the device is communicating with a server |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10204229B4 (de) * | 2002-01-31 | 2006-11-09 | J. S. Staedtler Gmbh & Co. Kg | Drucker oder sonstiges automatisches Drucksystem mit zusätzlichem Steuergerät und Steuergerät hierfür |
US7386878B2 (en) * | 2002-08-14 | 2008-06-10 | Microsoft Corporation | Authenticating peer-to-peer connections |
US9061207B2 (en) | 2002-12-10 | 2015-06-23 | Sony Computer Entertainment America Llc | Temporary decoder apparatus and method |
US8964830B2 (en) | 2002-12-10 | 2015-02-24 | Ol2, Inc. | System and method for multi-stream video compression using multiple encoding formats |
US8549574B2 (en) | 2002-12-10 | 2013-10-01 | Ol2, Inc. | Method of combining linear content and interactive content compressed together as streaming interactive video |
US9108107B2 (en) | 2002-12-10 | 2015-08-18 | Sony Computer Entertainment America Llc | Hosting and broadcasting virtual events using streaming interactive video |
US9446305B2 (en) | 2002-12-10 | 2016-09-20 | Sony Interactive Entertainment America Llc | System and method for improving the graphics performance of hosted applications |
US8366552B2 (en) | 2002-12-10 | 2013-02-05 | Ol2, Inc. | System and method for multi-stream video compression |
US20090118019A1 (en) * | 2002-12-10 | 2009-05-07 | Onlive, Inc. | System for streaming databases serving real-time applications used through streaming interactive video |
US9192859B2 (en) | 2002-12-10 | 2015-11-24 | Sony Computer Entertainment America Llc | System and method for compressing video based on latency measurements and other feedback |
US9138644B2 (en) * | 2002-12-10 | 2015-09-22 | Sony Computer Entertainment America Llc | System and method for accelerated machine switching |
US10201760B2 (en) | 2002-12-10 | 2019-02-12 | Sony Interactive Entertainment America Llc | System and method for compressing video based on detected intraframe motion |
US9314691B2 (en) | 2002-12-10 | 2016-04-19 | Sony Computer Entertainment America Llc | System and method for compressing video frames or portions thereof based on feedback information from a client device |
US8711923B2 (en) | 2002-12-10 | 2014-04-29 | Ol2, Inc. | System and method for selecting a video encoding format based on feedback data |
US8526490B2 (en) | 2002-12-10 | 2013-09-03 | Ol2, Inc. | System and method for video compression using feedback including data related to the successful receipt of video content |
US9077991B2 (en) | 2002-12-10 | 2015-07-07 | Sony Computer Entertainment America Llc | System and method for utilizing forward error correction with video compression |
US20040117440A1 (en) | 2002-12-17 | 2004-06-17 | Singer Mitch Fredrick | Media network environment |
US7203965B2 (en) * | 2002-12-17 | 2007-04-10 | Sony Corporation | System and method for home network content protection and copy management |
EP1441275A1 (en) * | 2003-01-21 | 2004-07-28 | Hewlett-Packard Company | Component for a computer |
US20050108333A1 (en) * | 2003-10-31 | 2005-05-19 | Martin Scholz | Blocking input with delayed message |
US9281945B2 (en) * | 2003-12-30 | 2016-03-08 | Entrust, Inc. | Offline methods for authentication in a client/server authentication system |
US8612757B2 (en) * | 2003-12-30 | 2013-12-17 | Entrust, Inc. | Method and apparatus for securely providing identification information using translucent identification member |
US9191215B2 (en) | 2003-12-30 | 2015-11-17 | Entrust, Inc. | Method and apparatus for providing authentication using policy-controlled authentication articles and techniques |
US8230486B2 (en) * | 2003-12-30 | 2012-07-24 | Entrust, Inc. | Method and apparatus for providing mutual authentication between a sending unit and a recipient |
US8060915B2 (en) * | 2003-12-30 | 2011-11-15 | Entrust, Inc. | Method and apparatus for providing electronic message authentication |
US8966579B2 (en) * | 2003-12-30 | 2015-02-24 | Entrust, Inc. | Method and apparatus for providing authentication between a sending unit and a recipient based on challenge usage data |
US20050149740A1 (en) * | 2003-12-31 | 2005-07-07 | Kotzin Michael D. | Method and apparatus for device authentication |
US7493371B1 (en) * | 2004-03-31 | 2009-02-17 | Network Appliance, Inc. | Using a client-server connection protocol to establish a peer-to-peer connection |
US20050286535A1 (en) * | 2004-06-29 | 2005-12-29 | Shrum Edgar V Jr | Verification of consumer equipment connected to packet networks based on hashing values |
US20060135259A1 (en) * | 2004-12-17 | 2006-06-22 | Nokia Corporation | System, game server, terminal, and method for game event notification in a multiplayer game |
US7637806B2 (en) * | 2004-12-20 | 2009-12-29 | Rampart Studios, Llc | Method for dynamic content generation in a role-playing game |
US8302199B2 (en) * | 2005-04-06 | 2012-10-30 | Valve Corporation | Anti-cheat facility for use in a networked game environment |
US7949873B2 (en) * | 2005-06-30 | 2011-05-24 | Microsoft Corporation | Secure instant messaging |
US7949138B2 (en) * | 2005-06-30 | 2011-05-24 | Microsoft Corporation | Secure instant messaging |
US20070055740A1 (en) * | 2005-08-23 | 2007-03-08 | Luciani Luis E | System and method for interacting with a remote computer |
US7747683B2 (en) * | 2005-12-29 | 2010-06-29 | Pike Ltd. | Method and system for operating applications for remote terminal devices |
US20070219654A1 (en) * | 2006-03-14 | 2007-09-20 | Viditotus Llc | Internet-based advertising via web camera search contests |
US7753795B2 (en) * | 2006-03-20 | 2010-07-13 | Sony Computer Entertainment America Llc | Maintaining community integrity |
US8392594B2 (en) * | 2007-01-30 | 2013-03-05 | Sony Corporation | System and method for effectively providing content to client devices in an electronic network |
US8676882B2 (en) * | 2007-02-27 | 2014-03-18 | Sony Corporation | System and method for preloading content segments to client devices in an electronic network |
US20080305869A1 (en) * | 2006-09-05 | 2008-12-11 | Cognisafe Ltd. | Prevention of cheating in on-line interaction |
US20080182659A1 (en) * | 2007-01-30 | 2008-07-31 | Microsoft Corporation | In-play detection of altered game data |
US20100029370A1 (en) * | 2007-02-15 | 2010-02-04 | Orbis Technology Limited | Response time derivation and game |
US8856782B2 (en) | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
US8121942B2 (en) | 2007-06-25 | 2012-02-21 | Visa U.S.A. Inc. | Systems and methods for secure and transparent cardless transactions |
US7938727B1 (en) * | 2007-07-19 | 2011-05-10 | Tim Konkle | System and method for providing interactive content for multiple networked users in a shared venue |
US8262472B2 (en) | 2007-09-21 | 2012-09-11 | Microsoft Corporation | Comprehensive single page view of user's gaming achievements |
US8979647B2 (en) * | 2007-10-26 | 2015-03-17 | Microsoft Technology Licensing, Llc | Method of providing player status and ability to join games |
US8197313B2 (en) * | 2007-10-29 | 2012-06-12 | Microsoft Corporation | User to user game referrals |
US7792960B2 (en) * | 2007-11-30 | 2010-09-07 | Intel Corporation | Detecting automation cheating in online applications |
US8561178B2 (en) * | 2007-11-30 | 2013-10-15 | Intel Corporation | Chipset based cheat detection platform for online applications |
US8307439B2 (en) * | 2007-11-30 | 2012-11-06 | Intel Corporation | Add-in card based cheat detection platform for online applications |
US9168457B2 (en) | 2010-09-14 | 2015-10-27 | Sony Computer Entertainment America Llc | System and method for retaining system state |
US9067150B2 (en) * | 2008-01-19 | 2015-06-30 | Lamplight Games | System and method for providing interactive content for multiple networked users in a shared venue using short messaging service communication |
US8137199B2 (en) * | 2008-02-11 | 2012-03-20 | Microsoft Corporation | Partitioned artificial intelligence for networked games |
US8245315B2 (en) * | 2008-09-10 | 2012-08-14 | Qualcomm Incorporated | Remote diagnosis of unauthorized hardware change |
US9098698B2 (en) * | 2008-09-12 | 2015-08-04 | George Mason Research Foundation, Inc. | Methods and apparatus for application isolation |
AU2009311303B2 (en) * | 2008-11-06 | 2015-09-10 | Visa International Service Association | Online challenge-response |
WO2010107149A1 (en) * | 2009-03-19 | 2010-09-23 | Ahnlab., Inc. | Method and apparatus for detecting automatic input event generated by hardware device |
US8935773B2 (en) | 2009-04-09 | 2015-01-13 | George Mason Research Foundation, Inc. | Malware detector |
TW201039170A (en) * | 2009-04-28 | 2010-11-01 | Thomson Licensing | System and method for detecting genuine copies of pre-recorded digital media |
US8839422B2 (en) | 2009-06-30 | 2014-09-16 | George Mason Research Foundation, Inc. | Virtual browsing environment |
US20120297457A1 (en) * | 2010-11-15 | 2012-11-22 | Brian Schulte | Interactive Malware Detector |
US20120324557A1 (en) * | 2011-06-17 | 2012-12-20 | Raytheon Bbn Technologies Corp | System and method for remote integrity verification |
US8529343B2 (en) * | 2011-07-27 | 2013-09-10 | Cyber Holdings, Inc. | Method for monitoring computer programs |
US9081959B2 (en) | 2011-12-02 | 2015-07-14 | Invincea, Inc. | Methods and apparatus for control and detection of malicious content using a sandbox environment |
US8851987B2 (en) * | 2011-12-12 | 2014-10-07 | Steelseries Aps | Method and apparatus for adapting to gaming venue states |
WO2013105404A1 (ja) * | 2012-01-12 | 2013-07-18 | 日本電気株式会社 | 信頼度計算装置、信頼度計算方法、及びコンピュータ読み取り可能な記録媒体 |
WO2013137901A1 (en) * | 2012-03-16 | 2013-09-19 | Empire Technology Development Llc | Random data generation |
US9817951B2 (en) * | 2012-04-06 | 2017-11-14 | Comcast Cable Communications, Llc | System and method for analyzing a device |
US9887983B2 (en) | 2013-10-29 | 2018-02-06 | Nok Nok Labs, Inc. | Apparatus and method for implementing composite authenticators |
US9396320B2 (en) | 2013-03-22 | 2016-07-19 | Nok Nok Labs, Inc. | System and method for non-intrusive, privacy-preserving authentication |
US10270748B2 (en) | 2013-03-22 | 2019-04-23 | Nok Nok Labs, Inc. | Advanced authentication techniques and applications |
US9565022B1 (en) | 2013-07-02 | 2017-02-07 | Impinj, Inc. | RFID tags with dynamic key replacement |
TWI602076B (zh) * | 2016-05-13 | 2017-10-11 | 矽統科技股份有限公司 | 音訊處理編碼鎖定方法與收音裝置 |
US10769635B2 (en) | 2016-08-05 | 2020-09-08 | Nok Nok Labs, Inc. | Authentication techniques including speech and/or lip movement analysis |
US11868995B2 (en) | 2017-11-27 | 2024-01-09 | Nok Nok Labs, Inc. | Extending a secure key storage for transaction confirmation and cryptocurrency |
US11831409B2 (en) | 2018-01-12 | 2023-11-28 | Nok Nok Labs, Inc. | System and method for binding verifiable claims |
US11044200B1 (en) | 2018-07-06 | 2021-06-22 | F5 Networks, Inc. | Methods for service stitching using a packet header and devices thereof |
US10715471B2 (en) * | 2018-08-22 | 2020-07-14 | Synchronoss Technologies, Inc. | System and method for proof-of-work based on hash mining for reducing spam attacks |
US12041039B2 (en) | 2019-02-28 | 2024-07-16 | Nok Nok Labs, Inc. | System and method for endorsing a new authenticator |
US11792024B2 (en) | 2019-03-29 | 2023-10-17 | Nok Nok Labs, Inc. | System and method for efficient challenge-response authentication |
US11240270B1 (en) * | 2019-08-13 | 2022-02-01 | Wells Fargo Bank, N.A. | Secure electronic transactions using transport layer security (SETUTLS) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11276704A (ja) * | 1998-02-02 | 1999-10-12 | Shinko Electric Co Ltd | 遊戯装置の記憶装置、遊技装置の記憶装置の書込装置及び遊技装置の記憶装置の書込方法並びに遊戯装置の制御装置及びその制御方法 |
WO2001093586A2 (en) * | 2000-05-26 | 2001-12-06 | General Instrument Corporation | Access control processor |
JP2002503365A (ja) * | 1997-04-10 | 2002-01-29 | ネットアクティブ・アイエヌシー. | 一意的にカスタマイズされ、認証かつ追跡可能なソフトウェア・アプリケーションのネットワーク化インストール方法およびシステム |
US20020144131A1 (en) * | 2001-04-02 | 2002-10-03 | Spacey Simon Alan | Method for the secure distribution of electronic media |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970143A (en) * | 1995-11-22 | 1999-10-19 | Walker Asset Management Lp | Remote-auditing of computer generated outcomes, authenticated billing and access control, and software metering system using cryptographic and other protocols |
US6330588B1 (en) * | 1998-12-21 | 2001-12-11 | Philips Electronics North America Corporation | Verification of software agents and agent activities |
US8347086B2 (en) | 2000-12-18 | 2013-01-01 | Citibank, N.A. | System and method for automatically detecting and then self-repairing corrupt, modified of non-existent files via a communication medium |
US7072942B1 (en) * | 2000-02-04 | 2006-07-04 | Microsoft Corporation | Email filtering methods and systems |
AU2001237019A1 (en) | 2001-02-13 | 2002-08-28 | Qualcomm Incorporated | Method and apparatus for authenticating embedded software in a remote unit over a communications channel |
US20020133575A1 (en) * | 2001-02-22 | 2002-09-19 | Viola Networks Ltd. | Troubleshooting remote internet users |
AU2002341754A1 (en) * | 2002-07-05 | 2004-01-23 | Cyberscan Technology, Inc. | Secure game download |
-
2002
- 2002-11-09 US US10/293,228 patent/US7287052B2/en not_active Expired - Fee Related
-
2003
- 2003-09-19 EP EP03021321A patent/EP1418725B1/en not_active Expired - Lifetime
- 2003-09-19 DE DE60311625T patent/DE60311625T2/de not_active Expired - Lifetime
- 2003-09-19 AT AT03021321T patent/ATE353516T1/de not_active IP Right Cessation
- 2003-11-07 JP JP2003378854A patent/JP2004164640A/ja active Pending
-
2007
- 2007-10-22 US US11/876,488 patent/US7801952B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002503365A (ja) * | 1997-04-10 | 2002-01-29 | ネットアクティブ・アイエヌシー. | 一意的にカスタマイズされ、認証かつ追跡可能なソフトウェア・アプリケーションのネットワーク化インストール方法およびシステム |
JPH11276704A (ja) * | 1998-02-02 | 1999-10-12 | Shinko Electric Co Ltd | 遊戯装置の記憶装置、遊技装置の記憶装置の書込装置及び遊技装置の記憶装置の書込方法並びに遊戯装置の制御装置及びその制御方法 |
WO2001093586A2 (en) * | 2000-05-26 | 2001-12-06 | General Instrument Corporation | Access control processor |
US20020144131A1 (en) * | 2001-04-02 | 2002-10-03 | Spacey Simon Alan | Method for the secure distribution of electronic media |
Cited By (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008524911A (ja) * | 2004-12-17 | 2008-07-10 | エヌエイチエヌ コーポレーション | バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法 |
JP4808731B2 (ja) * | 2004-12-17 | 2011-11-02 | エヌエイチエヌ コーポレーション | 通信ネットワークシステムにおけるサブシステム間のロードを調節する方法 |
JP2013059078A (ja) * | 2005-07-14 | 2013-03-28 | Conax As | マルチメディア・データの保護 |
JP2009501470A (ja) * | 2005-07-14 | 2009-01-15 | セクストリーム テクノロジーズ エーエス | マルチメディア・データの保護 |
US8627081B2 (en) | 2005-07-14 | 2014-01-07 | Conax As | Multimedia data protection |
US8626710B2 (en) | 2006-03-20 | 2014-01-07 | Sony Computer Entertainment America Llc | Defining new rules for validation of network devices |
US8032502B2 (en) | 2006-03-20 | 2011-10-04 | Sony Computer Entertainment America Llc | Validation of network devices |
JP4672797B2 (ja) * | 2006-03-20 | 2011-04-20 | ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | ネットワーク装置の評価および誠実性の保全 |
US10293262B2 (en) | 2006-03-20 | 2019-05-21 | Sony Interactive Entertainment America Llc | Managing game metrics and authorizations |
US10124260B2 (en) | 2006-03-20 | 2018-11-13 | Sony Interactive Entertainment America Llc | Invalidating network devices with illicit peripherals |
JP2009530979A (ja) * | 2006-03-20 | 2009-08-27 | ソニー・コンピュータ・エンタテインメント・アメリカ・インク | ネットワーク装置の評価および誠実性の保全 |
US8622837B2 (en) | 2006-03-20 | 2014-01-07 | Sony Computer Entertainment America Llc | Managing game metrics and authorizations |
US8715072B2 (en) | 2006-03-20 | 2014-05-06 | Sony Computer Entertainment America Llc | Generating rules for maintaining community integrity |
US8771061B2 (en) | 2006-03-20 | 2014-07-08 | Sony Computer Entertainment America Llc | Invalidating network devices with illicit peripherals |
US9717992B2 (en) | 2006-03-20 | 2017-08-01 | Sony Interactive Entertainment America Llc | Invalidating network devices with illicit peripherals |
US8972364B2 (en) | 2006-03-20 | 2015-03-03 | Sony Computer Entertainment America Llc | Defining new rules for validation of network devices |
US9526990B2 (en) | 2006-03-20 | 2016-12-27 | Sony Interactive Entertainment America Llc | Managing game metrics and authorizations |
US11077376B2 (en) | 2006-03-20 | 2021-08-03 | Sony Interactive Entertainment LLC | Managing game metrics and authorizations |
US11710365B2 (en) | 2006-11-15 | 2023-07-25 | Cfph, Llc | Verifying whether a device is communicating with a server |
US9875341B2 (en) | 2006-11-15 | 2018-01-23 | Cfph, Llc | Accessing information associated with a mobile gaming device to verify the mobile gaming device is in communications with an intended server |
US9111411B2 (en) | 2006-11-15 | 2015-08-18 | Cfph, Llc | Verifying a first device is in communications with a server by strong a value from the first device and accessing the value from a second device |
US9064373B2 (en) | 2006-11-15 | 2015-06-23 | Cfph, Llc | Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server |
US9590965B2 (en) | 2006-11-15 | 2017-03-07 | Cfph, Llc | Determining that a gaming device is communicating with a gaming server |
US10991196B2 (en) | 2006-11-15 | 2021-04-27 | Cfph, Llc | Verifying a first device is in communications with a server by storing a value from the first device and accessing the value from a second device |
US9685036B2 (en) | 2006-11-15 | 2017-06-20 | Cfph, Llc | Verifying a gaming device is in communications with a gaming server by passing an indicator between the gaming device and a verification device |
JP2014239917A (ja) * | 2006-11-15 | 2014-12-25 | シーエフピーエイチ, エル.エル.シー. | ゲームサーバと通信しているゲーム機を決定する装置および方法 |
US9767640B2 (en) | 2006-11-15 | 2017-09-19 | Cfph, Llc | Verifying a first device is in communications with a server by storing a value from the first device and accessing the value from a second device |
US11083970B2 (en) | 2006-11-15 | 2021-08-10 | Cfph, Llc | Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server |
JP2018038828A (ja) * | 2006-11-15 | 2018-03-15 | シーエフピーエイチ, エル.エル.シー. | ゲームサーバと通信しているゲーム機を決定する装置および方法 |
US10525357B2 (en) | 2006-11-15 | 2020-01-07 | Cfph, Llc | Storing information from a verification device and accessing the information from a gaming device to verify that the gaming device is communicating with a server |
US10810823B2 (en) | 2006-11-15 | 2020-10-20 | Cfph, Llc | Accessing known information via a devicve to determine if the device is communicating with a server |
JP2010509999A (ja) * | 2006-11-15 | 2010-04-02 | オルデルッチ ディーン | ゲームサーバと通信しているゲーム機を決定する装置および方法 |
US10181237B2 (en) | 2006-11-15 | 2019-01-15 | Cfph, Llc | Verifying a gaming device is in communications with a gaming server by passing an indicator between the gaming device and a verification device |
US10212146B2 (en) | 2006-11-15 | 2019-02-19 | Cfph, Llc | Determining that a gaming device is communicating with a gaming server |
US10068421B2 (en) | 2006-11-16 | 2018-09-04 | Cfph, Llc | Using a first device to verify whether a second device is communicating with a server |
JP2011502307A (ja) * | 2007-10-26 | 2011-01-20 | ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー | オンラインリソースモニタリング |
US10092845B2 (en) | 2010-11-02 | 2018-10-09 | Sony Interactive Entertainment America Llc | Detecting lag switch cheating in game |
US9636589B2 (en) | 2010-11-02 | 2017-05-02 | Sony Interactive Entertainment America Llc | Detecting lag switch cheating in game |
JP2015154818A (ja) * | 2014-02-20 | 2015-08-27 | 任天堂株式会社 | 据置型のゲーム装置、ゲーム装置、ゲームシステム、コンピュータプログラム及び速度制御方法 |
JP2016066845A (ja) * | 2014-09-24 | 2016-04-28 | 株式会社 ディー・エヌ・エー | ユーザに所定のサービスを提供するシステム及び方法 |
JP5838248B1 (ja) * | 2014-09-24 | 2016-01-06 | 株式会社 ディー・エヌ・エー | ユーザに所定のサービスを提供するシステム及び方法 |
JP2019057044A (ja) * | 2017-09-20 | 2019-04-11 | Necプラットフォームズ株式会社 | Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム |
WO2019059148A1 (ja) * | 2017-09-20 | 2019-03-28 | Necプラットフォームズ株式会社 | Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラムが格納された記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
EP1418725A3 (en) | 2004-12-08 |
US7287052B2 (en) | 2007-10-23 |
EP1418725A2 (en) | 2004-05-12 |
EP1418725B1 (en) | 2007-02-07 |
DE60311625T2 (de) | 2007-11-22 |
ATE353516T1 (de) | 2007-02-15 |
DE60311625D1 (de) | 2007-03-22 |
US7801952B2 (en) | 2010-09-21 |
US20080039209A1 (en) | 2008-02-14 |
US20040093372A1 (en) | 2004-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7287052B2 (en) | Challenge and response interaction between client and server computing devices | |
JP5129940B2 (ja) | ロールプレイシステム | |
US7512235B2 (en) | Multiple user authentication for online console-based gaming | |
AU2004201602B2 (en) | Method and apparatus for associating game data | |
US7627753B2 (en) | Secure digital data format and code enforced policy | |
US7441151B2 (en) | Method and apparatus for restoring a device to a default state | |
KR101130495B1 (ko) | 네트워크 세션의 가입자들 간의 상호 작용 제한 | |
US7288027B2 (en) | Cheater detection in a multi-player gaming environment | |
US20090111586A1 (en) | Media Data Protection | |
EP1369152A2 (en) | DVD-Enabling code server and loader for a console-based gaming system | |
TW200937926A (en) | Controlling interaction between protected media | |
US20050130745A1 (en) | DVD-enabling dongle for a console-based gaming system | |
US7428638B1 (en) | Architecture for manufacturing authenticatable gaming systems | |
US7451490B2 (en) | Media data protection with secure installer | |
US7681246B1 (en) | System and method for server side data signing | |
EP2115609B1 (en) | Transfer of content to closed systems | |
US20090109817A1 (en) | Media disc reliability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091218 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100525 |