説明

改竄防止ハードウェアを使用してコピー保護およびオンラインセキュリティを提供するための方法ならびにシステム

【課題】ネットワーク対応ゲームシステムについても、不正使用を防ぐ。
【解決手段】システム(100)は、システムと関連付けられ、暗号ユニット(122)と1つ以上の鍵とを備えた改竄防止回路(120)を備える。暗号ユニットと改竄防止回路に含まれる鍵のうちの1つとは、コードの一部分の署名ファイルを復号化するために使用される。復号化された署名ファイルを用いてコード部分が正規のものであるかどうかが判定される。通信プロトコルなど、システムが受け取ったコードの一部分が、システムがコードを受け取る前に暗号化されている場合は、システムは、安全な通信チャネルを介してリモートサーバ(134)から鍵を取得して、この鍵と、改竄防止回路に含まれる暗号ユニットとを使用して通信プロトコルを復号化する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に、ソフトウェアのコピー保護および通信プロトコルをセキュリティで保護するための方式に関し、より詳細には、改竄防止ハードウェア暗号回路を使用して、コピー保護が完全になされることを保証し、オンラインゲームなどのオンライン通信において使用される通信プロトコルのメッセージおよび構造をセキュリティで保護することに関する。
【背景技術】
【0002】
ソニー(Sony)PlayStation(登録商標)およびPlayStation(登録商標)2などのコンピュータエンターテイメントゲームシステムは、近年登場した家庭用電化製品のなかで最も成功した製品の1つとなっている。しかし、この成功に伴って、ゲームシステムや関連のソフトウェアを不当に改造しようとする人々によって不正使用される可能性も生じている。このような不正使用は、ある種のゲームを特定の方法によって改造して、通常ではありえない結果または異常な結果を達成するか、あるいは、改造したソフトウェアの販売や配布で不当に利益を得るという歪んだ欲求が動機となっている。ゲーム制作会社にとって大きな懸念事項の1つとなっているのがソフトウェアの著作権侵害であることは明らかであり、この理由は、このような改造によって、ソフトウェアの一貫性のないバージョンが出回って混乱が生じる可能性があり、これがひいてはゲーム制作会社の評判と信用を傷つきかねないからである。
【発明の開示】
【発明が解決しようとする課題】
【0003】
オンラインゲームシステムすなわちネットワーク対応ゲームシステムについても、不正使用の可能性がある。例えば、悪ふざけをたくらむハッカーが、いわゆる「仲介者(man in the middle)」攻撃を仕掛ける可能性がある。「仲介者」攻撃とは、ネットワーク(例えばインターネット)を介して2つのゲームシステム間でやり取りされているメッセージを傍受しようとすることである。ハッカーの動機は、詐欺を働くか、あるいは2人の正当なユーザがプレイしているゲームを妨害しようとすることにある。この場合も、このような不正使用によって不利な混乱を招き、罪のないユーザを大混乱に陥れ、これがひいてはこのシステムやゲーム自体に対して根拠のない不信感を大衆に抱かせる可能性がある。
【課題を解決するための手段】
【0004】
本発明は、上記の事情ならびに他の事情を鑑みてなされたものである。
【0005】
本発明は、システムを動作させる方法を提供することによって、上記のニーズならびに他のニーズに有利に応える。この方法は、前記システムに入力される前に第1の鍵によって予めデジタル署名されているソフトウェアコードの一部分を前記システムの記憶装置から読み出すステップと、前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記ソフトウェアコードの前記部分を送るステップと、前記ソフトウェアコードの前記部分に対応する署名ファイルを、前記改竄防止回路に記憶されている第2の鍵を使用して前記暗号ユニットにより復号化して、復号化された署名ファイルを生成するステップと、前記復号化された署名ファイルを使用して前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するステップと、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するステップと、を有する。
【0006】
本発明は、別の実施形態においては、記憶装置、改竄防止回路、前記改竄防止回路に含まれる暗号ユニット、および処理回路を備えたプロセッサベースのシステムを特徴とする。前記処理回路は、前記システムに入力される前に第1の鍵によって予めデジタル署名されているソフトウェアコードの一部分を記憶装置から読み出し、前記暗号ユニットに前記ソフトウェアコードの前記部分を送るように構成されている。前記暗号ユニットは、前記ソフトウェアコードの前記部分に対応する署名ファイルを前記改竄防止回路に記憶されている第2の鍵を使用して復号化して、前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するように構成されている。前記処理回路は、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するようにさらに構成されている。
【0007】
別の実施形態においては、システムを動作させる方法は、ネットワークを介してサーバから第1の鍵を前記システムに受信するステップと、暗号化されているコードの一部分を前記システムの記憶装置から読み出すステップと、前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記暗号化されているコードの前記部分を送るステップと、前記暗号化されているコードの前記部分を前記第1の鍵を使用して前記暗号ユニットにより復号化して、復号化されたコードを生成するステップと、前記復号化されたコードを使用してネットワークを介して通信を行うステップと、を有する。
【0008】
別の実施形態においては、プロセッサベースのシステムは、記憶装置、改竄防止回路、前記改竄防止回路に含まれる暗号ユニット、および処理回路を備える。前記処理回路は、ネットワークを介してサーバから第1の鍵を受信し、暗号化されているコードの一部分を前記記憶装置から読み出し、前記暗号化されているコードの前記部分を前記暗号ユニットに送るように構成されている。前記暗号ユニットは、前記暗号化されているコードの前記部分を前記第1の鍵を使用して復号化して、復号化されたコードを生成するように構成されており、前記処理回路は、前記復号化されたコードを使用して前記ネットワークを介した通信を行うようにさらに構成されている。
なお、他の形態として、システムを動作させる方法であって、 前記システムに入力される前に第1の鍵によって予めデジタル署名されているソフトウェアコードの一部分を前記システムの記憶装置から読み出すステップと、前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記ソフトウェアコードの前記部分を送るステップと、前記ソフトウェアコードの前記部分に対応する署名ファイルを、前記改竄防止回路に記憶されている第2の鍵を使用して前記暗号ユニットにより復号化して、復号化された署名ファイルを生成するステップと、前記復号化された署名ファイルを使用して前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定する前記ステップと、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するステップと、を有する方法も提供される。
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を提供することもできる。前記改竄防止回路は外付けの改竄防止回路を有する方法を提供することもできる。前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する方法を提供することもできる。前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定する前記ステップは、前記ソフトウェアコードの前記部分からハッシュによって第1のメッセージダイジェストを生成するステップと、前記復号化された署名ファイルにより第2のメッセージダイジェストを生成するステップと、前記第1のメッセージダイジェストと前記第2のメッセージダイジェストとを比較するステップと、前記第1のメッセージダイジェストと前記第2のメッセージダイジェストとが一致しない場合、前記ソフトウェアコードの前記部分が正規のものではないことを示すステップと、を有する方法を提供することもできる。
前記記憶装置は、前記ソフトウェアコードが記憶されている取り外し可能な計算機可読媒体を有する方法を提供することもできる。前記記憶装置は、前記ソフトウェアコードが記憶されているハードディスクドライブを有する方法を提供することもできる。前記ソフトウェアコードが前記システムによって受け取られる前に前記ソフトウェアコードの少なくとも前記一部を前記第1の鍵によってデジタル署名するステップをさらに有する方法を提供することもできる。前記システムに入力される前に前記第1の鍵によって予め各々デジタル署名されている1つ以上の追加のソフトウェアコード部分を前記記憶装置から読み出すステップと、前記1つ以上の追加のソフトウェアコード部分に対応する署名ファイルを前記第2の鍵を使用して前記暗号ユニットにより復号化するステップと、前記1つ以上の追加のソフトウェアコード部分が正規のものでない場合、前記システムの動作を阻止するステップと、をさらに有する方法を提供することもできる。ネットワークを介してリモートサーバから第3の鍵を受信するステップと、暗号化されているコードの一部分を前記記憶装置から読み出すステップと、前記暗号化されているコードの前記部分を前記暗号ユニットに送るステップと、前記暗号化されているコードの前記部分を、前記第3の鍵を使用して前記暗号ユニットにより復号化するステップと、をさらに有する方法を提供することもできる。前記暗号化されているコードの前記部分は、前記ネットワークを介して通信を行うために構成された通信プロトコルを含む方法を提供することもできる。前記通信プロトコルを使用して前記ネットワークを介した通信を行うステップをさらに有する方法を提供することもできる。前記第3の鍵を受信する前記ステップの前に、前記ネットワークを介して前記リモートサーバと安全な通信チャネルを確立するステップと、前記安全な通信チャネルを介して前記リモートサーバから前記第3の鍵を受信するステップと、をさらに有する方法を提供することもできる。
なお、プロセッサベースのシステムであって、記憶装置と、改竄防止回路と、前記改竄防止回路に含まれる暗号ユニットと、前記システムに入力される前に第1の鍵によって予めデジタル署名されているソフトウェアコードの一部分を記憶装置から読み出し、前記暗号ユニットに前記ソフトウェアコードの前記部分を送るように構成された処理回路と、を備え、前記暗号ユニットは、前記ソフトウェアコードの前記部分に対応する署名ファイルを前記改竄防止回路に記憶されている第2の鍵を使用して復号化して、前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するように構成されており、前記処理回路は、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するようにさらに構成されているプロセッサベースのシステムを提供することもできる。
【0009】
本発明の特徴および利点は、下記の本発明の詳細な説明および添付の図面を参照すればより明確となる。本発明の詳細な説明および添付の図面には、本発明の原理を使用した例示のための実施形態を記載する。
【発明を実施するための最良の形態】
【0010】
本発明の上記の態様、機能および利点や、他の態様、機能および利点は、添付の図面を参照しつつ、下記に記載する本発明のより具体的な説明を読めばより明確となる。
【0011】
各図面において、同一の参照符号は対応する要素を参照している。
【0012】
図1に、本発明の一実施形態に係るシステム100を示す。システム100は、ゲームシステムまたはゲームコンソールを備え得、これには、広く普及しているソニーPlayStation(登録商標)の過去のモデルや現在のモデル、将来登場するモデルのほか、本明細書に記載する機能の1つ以上を備える任意のコンピュータシステム、処理システム、ゲームシステムなどがある。システム100は現在利用可能な市販の暗号アルゴリズムを使用することができ、著作権侵害およびリバースエンジニアリングの脅威を低減させる。デジタル署名を使用することにより、ソフトウェアが改竄されていないことを検証するように最新のコピー保護技術が使用される。
【0013】
システム100は、典型的には記憶装置102と処理回路104とを備え、両者はメインシステムバス106によって相互接続されている。記憶装置102は、取り外し可能な計算機可読媒体108を有する任意の種類の記憶装置を有し得、デジタル多用途ディスク(DVD)ドライブや、コンパクトディスク(CD)ドライブ、その他の任意の種類の光学ドライブ、アイオメガ・コーポレーション(Iomega Corporation)が販売しているZip(登録商標)ドライブなどの任意の種類の大容量ディスクドライブなどである。あるいは、記憶装置102は、ソニーのMagicGate(商標)またはMemoryStick(登録商標)のメディアスロットを有していてもよく、この場合、取り外し可能な計算機可読媒体108は、MagicGate(商標)媒体またはMemoryStick(登録商標)媒体を有する。あるいは、後述するように、記憶装置102はハードディスクドライブを有していてもよい。処理回路104は、中央演算処理装置(CPU)110とランダムアクセスメモリ(RAM)112とを備え得る。
【0014】
本発明によれば、システム100は改竄防止回路120をも備える。改竄防止回路は、その回路を変更または改竄しようとすると破壊されるというタイプの回路である。改竄防止回路120は、通常はシステムバス106に結合されており、デジタルキャッシュトランザクション用のスマートカード技術に用いられている現在利用可能な改竄防止回路など、任意の種類の改竄防止回路を有し得る。システム100のこの実施形態では、改竄防止回路120は、システム100のコンソールに固定配線された内蔵の改竄防止回路を有する。あるいは、後述するように、改竄防止回路120は、メモリカードまたはPCMCIAカードなどの、外付けすなわち「アドオン」の部品として実装されていてもよく、さらには付加的な機能を備えていてもよい。
【0015】
改竄防止回路120は、好ましくは暗号ユニット122を備える。暗号ユニット(または「クリプトユニット」)122は、暗号化および復号化専用のプロセッサまたはその他の回路を備え得る。暗号ユニット122を改竄防止ケース120に収容すれば、実際に復号化を行うアルゴリズムをかなり安全に保護することができる。
【0016】
システム100は、改竄防止回路120内の暗号ユニット122を用いて、公開鍵/秘密鍵暗号化技術を用いたデジタル署名によって、コピー保護が完全になされ、システムソフトウェアのマシンコードが改竄されていないことを保証する。公開鍵/秘密鍵暗号化技術は、公知の非対称暗号化方式であり、一対の鍵(数字列)を暗号化に使用する。つまり、公開鍵によってデータを暗号化し、これと対応する秘密鍵(または「シークレットキー」)によってデータを復号化する。デジタル署名では、この処理が逆転する。つまり、送信者が秘密鍵を使用して一意的な電子数字を作成すると、対応する公開鍵を所有している人はこの電子数字を読むことができ、これにより、メッセージが本当にその送信者から送られたことが検証される。このように、あるユーザが公開鍵を公開すると、この公開鍵を使用して、そのユーザに暗号化したメッセージを送ったり、そのユーザのデジタル署名を復号化することができる。ユーザは、秘密鍵を秘密にしておき、秘密鍵を使用して、デジタル署名を暗号化したり、受信したメッセージを復号化する。デジタル署名は、好ましくは本発明のこの第1態様において用いられる技術である。
【0017】
このため、本発明の一実施形態によれば、改竄防止回路120には、公開鍵PUBLIC KEYと、公開鍵/秘密鍵の対PUBLIC KEY/PRIVATE KEYも格納または記憶される。鍵PUBLIC KEYは、任意の製造業者が販売し、鍵PRIVATE KEYを使用してマスタリングした媒体(これについては後述する)を使用する予定のある全てのシステムユニットについて同じ鍵である必要がある。鍵の対PUBLIC KEY/PRIVATE KEYは、好ましくはシステム毎に一意的な鍵の対であるが、これは必須ではない。これらの鍵は、改竄防止ケース120内に隔離されて収容されるため、誰もこれらの鍵にアクセスすることはできず、ユーザやゲーム開発者も例外ではない。このため、ゲーム開発会社の社内の人間がこれらの鍵をほかの関係者に公開してしまう可能性が低くなる。さらに、改竄防止回路120は、鍵のうちの1つのセキュリティが破られた場合に備えて、追加の鍵または鍵の対を備えていてもよい。
【0018】
図2Aは、本発明の一実施形態によるシステム100を動作させるための方法200を示す。方法200は、システム100で使用するソフトウェアのコピー保護の検証に有効である。システム100に媒体(例えばディスク)108が挿入される前に、PRIVATE KEY(図1)などの鍵を使用してゲームのソフトウェアコードの少なくとも一部分がデジタル署名される。例えば、製造業者がゲームをマスタリングする場合、この製造業者のみが知っている鍵PRIVATE KEYを使用して、ソフトウェアコードの重要な部分をデジタル署名し得る。署名され得るコードの例として、ディスクのテーブルオブコンテンツ(Table of Contents)、アプリケーション本体、実行可能ファイル、ブートBIOSのほか、第三者によって変更されてはならない機密性の高いその他のデータがある。
【0019】
一意的な鍵を使用してディスク108の内容を暗号化することも可能であるが、アプリケーションを署名することの威力は、署名されたデータが改竄されていないことを検証することにある。ディスク108の内容自体がハッカーによって変更されたとしても、変更したコードの有効な署名を正しく生成するには製造業者の秘密鍵が必要となるため、ハッカーは変更したコードの署名を正しく生成することができない。
【0020】
ステップ202において、システム100では、コードの一部分がデジタル署名されているソフトウェアコードを受ける。例えば、ユーザがディスク108を記憶装置102に挿入するか、またはネットワークからコードをダウンロードして記憶装置にこのコードを保存する(これについては後述する)ことによって、ソフトウェアコードがシステム100に受け入れられ得る。コードがシステム100によって受け入れられると、制御はステップ204に進み、処理回路104が記憶装置102からソフトウェアコードの一部分を読み出す。ソフトウェアコードのこのように読み出された箇所は、好ましくは、システム100にコードが入力される前にPRIVATE KEYによって予めデジタル署名されていたコード部分のうちの1つの部分である。ステップ206において、処理回路104は、ソフトウェアコードの当該部分を改竄防止回路120に含まれる暗号ユニット122に送る。例えば、ソフトウェアコードの当該部分がテーブルオブコンテンツである場合、システム100はディスク108からテーブルオブコンテンツを読み込んで、暗号ユニット122に送る。
【0021】
ステップ208において、暗号ユニット122は、改竄防止回路120に記憶されている鍵PUBLIC KEYを使用してソフトウェアコードの上記部分に対応する署名ファイルを復号化する。鍵PUBLIC KEYは、通常は製造業者の公開鍵であり、前述のように、相当数のシステムユニットについて同じ鍵であり得る。ステップ210において、暗号ユニット122は、復号化した署名ファイルを使用して、ソフトウェアコードの当該部分が正規のものであるかどうかを判定する。ステップ212に示すようにソフトウェアコードの当該部分が正規のものである場合、ステップ214に示すように、システム100は通常の動作を続行する。これに対して、ソフトウェアコードの当該部分が正規のものでない場合、ステップ216に示すようにシステム100の動作が阻止される。例えば、システム100のブート処理を停止することによってシステム100の動作が阻止され得る。このため、コードが正規のものでない場合、システム100のコンソールは、改造されたディスク108をロードしようとして、署名が無効であることを検知し、ディスク108をブートしない。このように、ディスク108のソフトウェアを変更しても、そのソフトウェアがシステム100で実行されることはなくなる。
【0022】
図2Bは、本発明の一実施形態による、ステップ210(図2A)、すなわちソフトウェアコードの一部分が正規のものであるかどうかを判定するステップを実行するための例示的な方法を示す。具体的に説明すると、ステップ220において、暗号ユニット122は、ソフトウェアコードの一部分から、ハッシュによって第1のメッセージダイジェストを生成する。すなわち、ソフトウェアコードの上記部分がテーブルオブコンテンツを含む場合、暗号ユニット122はテーブルオブコンテンツから、ハッシュによって第1のメッセージダイジェストを生成する。ステップ222において、暗号ユニット122は、ソフトウェアコードの上記部分から復号化した署名ファイルを使用して第2のメッセージダイジェストを生成する。ステップ224において、暗号ユニット122は、第1のメッセージダイジェストと第2のメッセージダイジェストとを比較する。ステップ226に示すように第1のメッセージダイジェストと第2のメッセージダイジェストとが一致する場合、ステップ228において、暗号ユニット122はコードの上記部分が正規のものであることを示す。これに対し、2つのダイジェストが一致しない場合、ステップ230において、暗号ユニット122はコードの上記部分が正規のものではないことを示す。換言すれば、2つのダイジェストが一致する場合には、テーブルオブコンテンツなどのコードの上記部分は、製造業者によってデジタル署名されてから変更されていないことが検証でき、ブート処理の続行が許可される。
【0023】
ソフトウェアコードの部分の1つ以上について上記の処理が繰り返され得る。すなわち、記憶装置102に入力される前に鍵PRIVATE KEYによって予めデジタル署名されている1つ以上の追加のソフトウェアコード部分を、記憶装置102から読み出す。1つ以上の追加のソフトウェアコード部分に対応する署名ファイルを、鍵PUBLIC KEYを使用して暗号ユニット122により復号化する。1つ以上の追加のソフトウェアコード部分のいずれかが正規のものでない場合、システム100の動作が阻止される。
【0024】
例えば、ディスク108から実行可能ファイルをロードする度に、処理回路104のローダーが実行可能ファイルを暗号ユニット122に送り、暗号ユニット122は、ファイルが正規のものであるかを検証する。暗号ユニット122は、実行可能ファイルからハッシュによってメッセージダイジェストを生成すると共に、PUBLIC KEYなどの製造業者の公開鍵を使用して、対応する署名ファイルを復号化する。暗号ユニット122は、作成したメッセージダイジェストと復号化したダイジェストとを比較する。2つのダイジェストが一致する場合、実行可能ファイルが製造業者によって署名されてから変更されていないことが検証でき、ブート処理の続行が許可される。ダイジェストが一致しない場合、実行可能ファイルは製造業者によって署名されてから変更されており、ブート処理の続行を阻止するなどによって、システム100の動作が阻止される。コードの実行可能な部分をロードする度に署名ファイルと比較することにより、「スワップトリック」型のコピー保護の無効化手法から保護できる。これは、デジタル署名されている実行可能コードの全ビットについて、正規のものであることを検査する必要があるからである。
【0025】
このように、上記の処理は、従来のソフトウェアベースの暗号システムと比べて大きな利点を有する。つまり、暗号化したデータの復号化に用いる鍵をディスクに記憶しておくと、この鍵が発見されて、ディスクにあるソースコードが逆アセンブルされる可能性がある。しかし、改竄防止ハードウェア120内に鍵を安全に格納しておけば、鍵が盗み出される危険性が大きく減少する。
【0026】
図1に戻ると、記憶装置102が別法としてハードディスクドライブを備えてもよいことは前述した。この場合、ゲームやその他のアプリケーション用のソフトウェアコードが、インターネットまたはアメリカンオンライン(America Online)(登録商標)ネットワークなどのネットワーク130から、システム100にダウンロードされ得る。ダウンロードされたソフトウェアは、ハードディスクドライブ102に記憶され得る。ダウンロードは、システムバス106に結合されたモデム132をシステム100に内蔵させることにより可能となる。モデム132と、モデムによって確立されるネットワーク130への接続とは、本発明のこの実施形態では任意選択の機能であるため、図中で破線で示されている。
【0027】
ソフトウェアをシステム100にダウンロードする場合は、鍵PRIVATE KEYによって予めデジタル署名されているソフトウェアコードの1つ以上の部分がリモートサーバ134にロードされ得る。あるいは、リモートサーバ134が、実際にコードをデジタル署名する処理を実行してもよい。ソフトウェアは、ディスク108について前述した方法と同じ方法でデジタル署名され得る。ソフトウェアは、その後、ネットワーク130を介してリモートサーバ134からモデム132によってシステム100に転送され、ハードディスクドライブ102に記憶される。必要に応じて、ソフトウェアのダウンロードを行う前に、システム100とリモートサーバ134との間で安全な(セキュアな)通信チャネルを確立してもよい。安全な通信チャネルは、従来技術において公知のように、システム100のPUBLIC KEYと、リモートサーバ134のPUBLIC KEYとを交換することにより確立され得る。さらに、デジタル証明書を使用することによってこの種の安全な通信チャネルのセキュリティをさらに強化することができる。このデジタル証明書は、インターネットからダウンロードしたソフトウェアが、信頼できる供給源からのものであることを保証するものである。デジタル証明書は、ソフトウェアの作成者の身元、ソフトウェアが認証機関(CA)によって登録された日付など、ソフトウェアに関する情報を提供するほか、改竄防止機能も提供する。しかし、デジタル証明書の使用は必須ではない。
【0028】
図3に、本発明の別の実施形態に係るシステム100の動作を示す。システム100は、モデム132、および記憶装置102のハードディスクを用いてブロードバンド接続を持続することができ、インターネット接続が可能となり、これによりシステム100が、電子商取引アプリケーションおよびネットワークゲーム機能のためのネットワークプラットホームとして機能できるようになる。これにより、システム100のユーザは、例えばクライアントシステム140,142,144などの他のクライアントシステムのユーザと、ネットワーク130を介してゲームをプレイできるようになる。
【0029】
しかし、前述のように、オンラインゲームシステムすなわちネットワーク対応ゲームシステムでは、いわゆる「仲介者」攻撃などの不正使用が行われる可能性がある。例えば、オンラインゲームに使用される通信プロトコルのフォーマットがゲームディスク108に格納されている場合には、ハッカーが、マシンコードからこのフォーマットをリバースエンジニアリングできてしまう。ハッカーは、通信プロトコルを入手すると、ゲームをプレイ中の2台のシステム間のメッセージを傍受して、これにより詐欺を働いたり、ゲームを妨害する可能性がある。
【0030】
本発明の図3に示す実施形態はリモートサーバ134を利用する。つまり、複数のクライアント間で行われるネットワークゲームを調整するために、リモートサーバ134などのサーバを使用して、通常はクライアントのログイン/調停を処理する。本発明によれば、ゲームソフトウェアのうち、通信プロトコルを規定しているマシンコードなどの機密性の高い部分が暗号化される。リモートサーバ134との接続時に、好ましくは暗号化されたチャンネルを介して、リモートサーバ134からシステム100に鍵が送信される。次に、システム100はこの鍵を使用して使用されて、通信プロトコルフォーマットを復号化する。このため、通信プロトコルが暗号化されていない形式でエンドユーザに提示されることはなく、このためハッカーが通信プロトコルを入手できなくなる。このように、この実施形態は、暗号化を用いることによって、システム100が、クライアント/サーバ型のオンラインゲームにおいて使用される通信プロトコルのメッセージおよび構造など、機密性の高いコード部分をセキュリティで保護できるようにする。
【0031】
図4Aは、図3に示す本発明の一実施形態による、システム100を動作させる方法400を示す。システム100に媒体(例えばディスク)108が挿入される前に、ディスク108に保存されるコードの少なくとも一部が暗号化される。暗号化されるコード部分は、好ましくは、オンラインゲーム中に行われる通信に使用される通信プロトコルを含む。使用する暗号化の種類は、例えば、公開鍵/秘密鍵暗号化技術などの非対称暗号化方式や、対称暗号化方など、どのようなものであってもよい。
【0032】
ステップ402において、システム100は、暗号化された部分を含むコードを受ける。このコードは、記憶装置にディスク108を受け入れるか、あるいはモデム132を介してコードを受信してこのコードをハードディスクに記憶することによって受け入れられ得る。ステップ404において、システム100はネットワーク130を介してリモートサーバ134との通信を確立する。リモートサーバ134は、通常は、ネットワークゲームのためにクライアントのログイン/調停を処理するサーバを備える。ステップ406において、システム100は、ネットワーク130を介してリモートサーバ134から鍵(例えばKEY)を受信する。図3に、この鍵の受信を矢印136によって示す。鍵KEYは、どのような種類の鍵を有していてもよい。例えば、通信プロトコルの暗号化に非対称暗号化方式を使用する場合、KEYは公開鍵を有し得、あるいは通信プロトコルの暗号化に対称暗号化方式を使用する場合、KEYは単純な対称鍵を有し得る。
【0033】
ステップ408において、処理回路104は暗号化されているコードの一部分を記憶装置102から読み出し、ステップ410において、処理回路104は、暗号化されているコードの上記部分を、改竄防止回路120に含まれる暗号ユニット122に送る。ステップ412において、暗号ユニット122は、リモートサーバ134から受信した鍵(本例ではKEY)を使用して、暗号化されているコードの上記部分を復号化する。復号化された通信プロトコルメッセージフォーマットは、RAM 112などのメモリに記憶される。最後に、ステップ414において、システム100は、復号化した通信プロトコルを使用して安全な通信を開始する。つまり、図3に矢印138に示すように、システム100は、復号化した通信プロトコルを使用して、システム140などの他のシステムとネットワーク130を介して通信を行い、ゲームをプレイする。
【0034】
図4Bは、本発明の一実施形態による、ステップ404、すなわちリモートサーバ134との通信を確立するステップを実行するための例示的な方法を示す。この方法では、システム100の改竄防止回路120に記憶されている公開鍵/秘密鍵の対PUBLIC KEY/PRIVATE KEYと、リモートサーバ134に記憶されている公開鍵/秘密鍵の対PUBLIC KEY/PRIVATE KEYとを使用して、システム100とリモートサーバ134の間に安全な通信チャネルを確立する。具体的に説明すると、ステップ420において、システム100はリモートサーバ134に自身のPUBLIC KEYを送信し、ステップ422において、システム100はリモートサーバ134からPUBLIC KEYを受信する。システム100およびサーバ134と、従来技術において公知のように、これらの鍵を使用して安全なチャンネルをネゴシエートする。ステップ424において、システム100およびリモートサーバ134は安全な通信を行い、ステップ406について前述したように、システム100は、この安全な通信チャネルを介してリモートサーバ134から鍵KEYを受信する。
【0035】
本発明の任意選択の機能として、リモートサーバ134またはその他サーバが、認証機関(CA)として機能してもよい。認証機関は、システム100,140,142,144など、製造業者が過去に製造した全システムのシリアル番号の一覧を有し得る。また、認証機関は、全てのシステムの一意的な公開鍵を記憶し得る。システムのうちの1台が認証機関に接続すると、認証機関はこのシステムのシリアル番号を要求し得、そのシリアル番号によってシステムの識別を行い、このシステムが正規のシステムであることを検証する。
【0036】
認証機関は、システムが正規のシステムであると識別すると、適宜このシステムに正しい公開鍵を送信し得る。システムは、この公開鍵を受信すると、他のシステムとオンラインゲームをプレイできるようになる。つまり、2台のシステムは、オンラインゲームをプレイする前に、互いの公開鍵を交換することを要求され得る。このタイプのハードウェア識別(「ハードウェアID」)は任意選択であり、これによりハッカーは、オンラインゲームなどのオンライン通信に一層干渉できないようになる。
【0037】
このように、方法400(図4A)を使用することによって、通信プロトコルのメッセージフォーマットなどの機密性の高いコード部分が、暗号化されていない形式でエンドユーザに提示されることがなくなる。換言すれば、ハッカーが2台のシステム間でやり取りされているメッセージを傍受しても、このメッセージを復号化して、このメッセージを別のメッセージと置き換えることができない。理論上は、ハッカーが上記のデジタル署名を正しく偽造できるか、あるいは実行中のシステム100のRAM 112に直接アクセスできる手段を有していれば、RAM 112から鍵KEYを取得することが可能である。しかし、これは、パーソナルコンピュータ上で読み取り可能なディスクからソースコードを逆アセンブルするよりもかなり困難である。
【0038】
改竄防止回路120が、別法として、メモリカードまたはPCMCIAカードなどの外付け、すなわち「アドオン」の部品として実装されてもよいことは前述した。図5Aに、本発明の別の実施形態によるシステム100の例を示す。この実施形態では、改竄防止回路120を、PCカードまたはPCMCIAカードなどの取り外し可能なカード型のデバイスとして実装している。この実施形態においては、改竄防止回路120は、システム100のインタフェーススロット160から容易に脱着することができる。インタフェーススロット160は、通常はシステムバス106に結合されている。
【0039】
図5Bに、本発明の別の実施形態によるシステム100の例を示す。この実施形態では、改竄防止回路120が外付け部品として実装されている。改竄防止回路120は、ケーブル164およびインタフェース166によってシステム100に結合されている。インタフェース166はシステムバス106に結合されており、インタフェース166は、ユニバーサルシリアルバス(Universal Serial Bus:USB)やi.LINK(登録商標)(IEEE 1394)などの、各種のインタフェースを有し得る。
【0040】
図5Cに、本発明の別の実施形態によるシステム100の例を示す。この実施形態では、改竄防止回路120が、ソニーのMagicGate(商標)MemoryStick(登録商標)技術を利用するものなど、小型のカード型の媒体に実装されている。
【0041】
MagicGate(商標)MemoryStick(登録商標)媒体は、革新的な音楽著作権保護技術であるMagicGate(商標)技術を採用している。MagicGate(商標)MemoryStick(登録商標)媒体は、オンボードのフラッシュメモリ170と、暗号化回路174を備えたMagicGate(商標)回路172とを備える。MagicGate(商標)MemoryStick(登録商標)媒体は、通常はシステムバス106に結合されているメディアスロット176によって、システム100とインタフェースする。また、システム100は、任意選択の機能としてMagicGate(商標)回路178を内蔵していてもよく、この場合、システム100は、MagicGate(商標)技術に従うMG機器として機能し得る。
【0042】
本発明の一実施形態によれば、MagicGate(商標)MemoryStick(登録商標)媒体にある暗号化回路174は、前述した暗号ユニット122の機能を提供してもよい。さらに、MagicGate(商標)MemoryStick(登録商標)媒体のオンボードのフラッシュメモリ170は、前述の鍵(すなわち、PUBLIC KEY、PUBLIC KEY/PRIVATE KEY)を記憶するために使用されてもよい。このように、MagicGate(商標)MemoryStick(登録商標)媒体は、前述の改竄防止回路120と実質的に同じ機能を提供することができる。
【0043】
MagicGate(商標)MemoryStick(登録商標)媒体は、ある程度のレベルの改竄防止保護を備えていると考えられており、必要に応じてこの改竄防止保護のレベルを上げて、保護を強化してもよい。さらに、システム100にMagicGate(商標)回路178が内蔵されている場合、MagicGate(商標)回路178は、MagicGate(商標)技術に従って、正規のMagicGate(商標)MemoryStick(登録商標)媒体がメディアスロット176に挿入されていることを認証してもよい。このように、媒体が改竄された場合には、MagicGate(商標)回路178によって検出されて、システム100がその媒体によって動作することが阻止され得る。
【0044】
MagicGate(商標)MemoryStick(登録商標)媒体は、本明細書に記載した改竄防止回路120を実装可能な外付けの取り外し可能なカード型のデバイスの一例に過ぎないことが理解されるべきである。別例として、改竄防止回路120が、ソニーPlayStation(登録商標)2用のメモリカードに実装されてもよい。
【0045】
図6に、本発明の一実施形態によるマスタリング処理600を示す。このマスタリング処理600は、DVDまたはCDなどの上記の方法を利用した計算機可読媒体の作成に使用することができる。具体的に説明すると、ステップ602において、ゲーム開発会社は、署名をしていないコードを生成して、このコードをDVDまたはCDなどのディスクに記録する。ステップ604において、このディスクが製造業者に送られる。ステップ606において、製造業者は、通信プロトコルなどの機密性の高いコード部分を暗号化する。この機密性の高いコード部分は、ゲーム開発会社が指定してもよい。ステップ608において、製造業者は、秘密鍵を使用して、コードの特定の部分に対するデジタル署名を生成する。デジタル署名され得るコード部分には、テーブルオブコンテンツ、1つ以上の実行可能ファイルなどがある。最後に、ステップ610において、製造業者は変更したデータを含む新しいマスタディスクを作成する。
【0046】
前述したように、システム100は、システム100と関連付けられ、暗号ユニットと1つ以上の鍵とを有する改竄防止回路を使用することによって、著作権侵害およびリバースエンジニアリングの脅威を低減させることができる。改竄防止回路に含まれる暗号ユニットと鍵のうちの1つとを使用して、受け取ったソフトウェアコードの一部分の署名ファイルが復号化され、コードが不当に変更されたか改造されている場合、システム100の動作が阻止される。改竄防止回路により、ハッカーが、実際の復号化に用いる鍵またはアルゴリズムを入手できる可能性が極めて低くなる。
【0047】
さらに、改竄防止回路によって、オンラインゲームなどのオンライン通信にハッカーが干渉できないようにすることができる。すなわち、システム100にコードが受け入れられる前に、通信プロトコルなど、システム100が受け取るコードの一部分の1つ以上が暗号化され得る。システム100は、オンラインゲームの調整に使用されるリモートサーバに接続して、鍵を取得し、改竄防止回路に含まれる暗号ユニットがこの鍵を使用して、通信プロトコルを復号化し得る。次に、システムは、この通信プロトコルを使用して、ネットワークを介してオンラインゲームをプレイするなど、他のクライアントと通信を行う。ハッカーは暗号化されていない通信プロトコルにアクセスできないため、ハッカーがオンラインゲームに干渉できる可能性が極めて低くなる。
【0048】
本明細書において、本発明を特定の実施形態およびその用途によって記載したが、当業者は、特許請求の範囲に記載されている本発明の範囲から逸脱することなく、本発明をさまざまな変更および変形することができる。
【図面の簡単な説明】
【0049】
【図1】本発明の一実施形態に係るシステムのブロック図である。
【図2A】本発明の一実施形態による、図1のシステムを動作させるために使用できる例示的な方法を示すフローチャートである。
【図2B】本発明の一実施形態による、図1のシステムを動作させるために使用できる例示的な方法を示すフローチャートである。
【図3】本発明の別の実施形態に係るシステムのブロック図である。
【図4A】本発明の一実施形態による、図3のシステムを動作させるために使用できる例示的な方法を示すフローチャートである。
【図4B】本発明の一実施形態による、図3のシステムを動作させるために使用できる例示的な方法を示すフローチャートである。
【図5A】図1,3のシステムの別法による構成を示すブロック図である。
【図5B】図1,3のシステムの別法による構成を示すブロック図である。
【図5C】図1,3のシステムの別法による構成を示すブロック図である。
【図6】本発明の一実施形態によるマスタリング処理を示すフローチャートである。
【符号の説明】
【0050】
100 システム
102 記憶装置
104 処理回路
106 システムバス
108 ディスク
120 改竄防止回路
122 暗号ユニット
130 ネットワーク
132 モデム
134 リモートサーバ
140 システム
160 インタフェーススロット
164 ケーブル
166 インタフェース
174 暗号化回路
176 メディアスロット

【特許請求の範囲】
【請求項1】
システムを動作させる方法であって、
ネットワークを介してサーバから第1の鍵を前記システムに受信するステップと、
暗号化されているコードの一部分を前記システムの記憶装置から読み出すステップと、
前記システムに関連付けられている改竄防止回路に含まれる暗号ユニットに前記暗号化されているコードの前記部分を送るステップと、
前記暗号化されているコードの前記部分を前記第1の鍵を使用して前記暗号ユニットにより復号化して、復号化されたコードを生成するステップと、
前記復号化されたコードを使用してネットワークを介して通信を行うステップと、を有する方法。
【請求項2】
前記復号化されたコードは前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項1に記載の方法。
【請求項3】
前記第1の鍵を受信する前記ステップの前に、前記ネットワークを介して前記サーバと安全な通信チャネルを確立するステップと、
前記安全な通信チャネルを介して前記サーバから前記第1の鍵を受信するステップと、
をさらに有する請求項1に記載の方法。
【請求項4】
前記ネットワークを介して前記サーバと安全な通信チャネルを確立する前記ステップは、
前記改竄防止回路に記憶されている秘密鍵/公開鍵の対を使用して前記安全な通信チャネルを確立するステップを有する請求項3に記載の方法。
【請求項5】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項1に記載の方法。
【請求項6】
前記改竄防止回路は外付けの改竄防止回路を有する請求項1に記載の方法。
【請求項7】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項1に記載の方法。
【請求項8】
前記システムに入力される前に第2の鍵によって予めデジタル署名されているソフトウェアコードの一部分を前記記憶装置から読み出すステップと、
前記ソフトウェアコードの前記部分に対応する署名ファイルを、前記改竄防止回路に記憶されている第3の鍵を使用して前記暗号ユニットにより復号化するステップと、
をさらに有する請求項1に記載の方法。
【請求項9】
前記復号化された署名ファイルを使用して前記ソフトウェアコードの前記部分が正規のものであるかどうかを判定するステップと、
前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するステップと、
をさらに有する請求項8に記載の方法。
【請求項10】
プロセッサベースのシステムであって、
記憶装置と、
改竄防止回路と、
前記改竄防止回路に含まれる暗号ユニットと、
ネットワークを介してサーバから第1の鍵を受信し、暗号化されているコードの一部分を前記記憶装置から読み出し、前記暗号化されているコードの前記部分を前記暗号ユニットに送るように構成された処理回路と、を備え、
前記暗号ユニットは、前記暗号化されているコードの前記部分を前記第1の鍵を使用して復号化して、復号化されたコードを生成するように構成されており、
前記処理回路は、前記復号化されたコードを使用して前記ネットワークを介した通信を行うようにさらに構成されているプロセッサベースのシステム。
【請求項11】
前記改竄防止回路は前記システムに固定配線された内蔵の改竄防止回路を有する請求項10に記載のプロセッサベースのシステム。
【請求項12】
前記改竄防止回路は外付けの改竄防止回路を有する請求項10に記載のプロセッサベースのシステム。
【請求項13】
前記改竄防止回路はカード型の取り外し可能な改竄防止回路を有する請求項10に記載のプロセッサベースのシステム。
【請求項14】
前記復号化されたコードは前記ネットワークを介して通信を行うために構成された通信プロトコルを含む請求項10に記載のプロセッサベースのシステム。
【請求項15】
前記処理回路は、前記ネットワークを介して前記サーバと安全な通信チャネルを確立し、前記安全な通信チャネルを介して前記サーバから第1の鍵を受信するようにさらに構成されている請求項10に記載のプロセッサベースのシステム。
【請求項16】
前記処理回路は、前記改竄防止回路に記憶されている秘密鍵/公開鍵の対を使用して前記安全な通信チャネルを確立するようにさらに構成されている請求項15に記載のプロセッサベースのシステム。
【請求項17】
前記処理回路は、前記システムに入力される前に予め第2の鍵によってデジタル署名されたソフトウェアコードの一部分を前記記憶装置から読み込んで、前記暗号ユニットに前記ソフトウェアコードの前記部分を送るようにさらに構成されており、前記暗号ユニットは、前記ソフトウェアコードの前記部分に対応する署名ファイルを前記改竄防止回路に記憶されている第3の鍵を使用して復号化して、前記ソフトウェアコードの前記部分が正規のものであることを判定するようにさらに構成されている請求項10に記載のプロセッサベースのシステム。
【請求項18】
前記処理回路は、前記ソフトウェアコードの前記部分が正規のものでない場合、前記システムの動作を阻止するようにさらに構成されている請求項17に記載のプロセッサベースのシステム。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図6】
image rotate


【公開番号】特開2009−70397(P2009−70397A)
【公開日】平成21年4月2日(2009.4.2)
【国際特許分類】
【出願番号】特願2008−287637(P2008−287637)
【出願日】平成20年11月10日(2008.11.10)
【分割の表示】特願2003−587054(P2003−587054)の分割
【原出願日】平成15年3月31日(2003.3.31)
【出願人】(500551079)ソニー・コンピュータ・エンタテインメント・アメリカ・インク (95)
【Fターム(参考)】