JP5111516B2 - クローズドシステムにおける無署名コンテンツの実行とアクセスのセキュアリング - Google Patents

クローズドシステムにおける無署名コンテンツの実行とアクセスのセキュアリング Download PDF

Info

Publication number
JP5111516B2
JP5111516B2 JP2009540373A JP2009540373A JP5111516B2 JP 5111516 B2 JP5111516 B2 JP 5111516B2 JP 2009540373 A JP2009540373 A JP 2009540373A JP 2009540373 A JP2009540373 A JP 2009540373A JP 5111516 B2 JP5111516 B2 JP 5111516B2
Authority
JP
Japan
Prior art keywords
computing device
closed
layer
software content
unsigned
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.)
Expired - Fee Related
Application number
JP2009540373A
Other languages
English (en)
Other versions
JP2010528343A (ja
Inventor
ドネル イエーツ ジュニア ルーニー
シング ホー アルバート
ウェイン ミラー トーマス
エル.ブレイッシュ ポール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010528343A publication Critical patent/JP2010528343A/ja
Application granted granted Critical
Publication of JP5111516B2 publication Critical patent/JP5111516B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2109Game systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Description

本テクノロジはコンピューティングの分野に関し、さらに具体的にはゲーミング環境に関する。
ゲーミングシステムは今日のコンピューティング環境において広く行き渡っている。ゲームコンソール(game console)は、ハードウェアベンダによって制御される署名付きゲーム(signed game)だけがそのコンソール上で実行されるのを可能にするクローズドシステム(closed system)であるのが一般的である。この制限が行なわれる理由は、緊密制御環境において知的財産の不正行為が最低限に保たれているビジネスモデルをパブリッシャのために残しておくか、あるいはゲーミングマシン上でプレイ可能なタイプのゲームを制御して、例えば、コンテンツをプレイする子供に対する両親の期待に応えるコンテンツを許可するかどうかに関係なく、さまざまである。さらに、署名付きコードが実行されるのを可能にすると、コミュニティスコア(community score)やデジタル通貨(digital currency)などの、ある種の想定が正確であることが不可欠であるオンラインコミュニティにおいてゲームで不正を行なう可能性を制御し、軽減するのに役立つことになる。
しかし、ゲームコンソールに存在するこれらの緊密な制限は、より大きな創造的コミュニティ全体が、クローズドゲームコンソール上でゲームまたはゲームに似たアプリケーションを開発するのを妨げている。従って、重要なことは、中でも、開発者、ゲーム愛好者(gamer)、一般的ゲーム熱中者(hobbyist)、および学生ゲーム開発者が従来のクローズドシステム用にゲームを書くことを可能にする必要性に対処することである。さらに、重要なことは、ゲームコンソールにハッキングして、そのコンソール上の無署名コード(unsigned code)の実行を可能にするために時間と努力を費やしている(さもなければ、下述する本明細書に開示の主題に従えば、このような時間と労力を費やさないで済むようなときに)という問題に対処することである。
クローズドシステムにおいて無署名コンテンツ(unsigned content)の実行を可能にし、そのような無署名コンテンツがそのシステム上で実行されるときリソースをセキュアにすることを可能にするメカニズムが提供されている。本明細書に開示の主題の一側面では、クローズドシステムのオペレーティングシステムレイヤと実際の無署名コンテンツとの間にアクセスレイヤが使用されている。さらに、このアクセスレイヤは、グラフィックスレイヤ、オーディオレイヤ、入力レイヤ、およびストレージレイヤなどの、種々のサブレイヤから構成可能になっている。これらのレイヤは、無署名コンテンツがネイティブオペレーティングシステムレイヤおよびその関連リソースに行なうことのできるアクセスのタイプと量を制御することができる。
例示に限定されない一側面では、上記に挙げたサブレイヤのいずれも、クローズドシステムがユーザモードにあるときの入力バッファ、およびクローズドシステムがスーパバイザモードにあるときの対応する有効性検査(validation)バッファなどの、種々のバッファで構成することができ、そこでは、情報(コードおよび/データ)が入力バッファから有効性検査バッファにコピーされるようになっている(有効性検査バッファで有効性検査されるために)。さらに、上記の有効性検査バッファで有効性検査されたコマンドをストアしておくことができるリングバッファ(ring buffer)のような、他の種々のコンポーネントを使用することもできる。
以上から理解されるように、この概要説明は、詳細な説明の個所で以下に詳しく説明されている概念のいくつかを選んで簡単に紹介したものである。この概要は、請求項に記載の主題のキーとなる特徴または基本的特徴を特定するものではなく、請求項に記載の主題の範囲を判断する際の一助となるものでもない。
上述した概要説明は下述する詳細な説明と共に、その理解を容易にするために添付図面を参照して記述されている。本発明の開示事項を例示するために、開示事項の種々の側面が示されている。しかし、開示事項は論述している具体的側面に限定されるものではない。図面において、
署名付きソフトウェアコンポーネント、すなわち、署名付きゲームだけが代表的なクローズドシステム上で実行可能である従来システムを示す図である。 署名付きゲームと無署名ゲームが共にクローズドシステム上で実行可能であるシステムを示す図である。 署名付きゲームが認証され、無署名ゲームが認証されていないことを示す図である。 ゲーミングオペレーティングシステムと無署名コンテンツの間にゲームアクセスレイヤが存在し、そこではこの介在レイヤが無署名コンテンツによるアクセスを制御することを示す図である。 図4に抽象化して示したアクセスレイヤが、グラフィックスレイヤ、オーディオレイヤ、入力レイヤ、およびストレージレイヤなどの、種々のサブレイヤからなることを示す詳細図である。 図5を参照して論述している側面、すなわち、サブレイヤによって使用される種々のバッファに焦点を当てて論述している側面を示す詳細図である。 クローズドシステムが行なっていることが、無署名コードが実行されるようにハードウェアを仮想化することであることを示す図である。 無署名コンテンツをあるコンピューティングソースからクローズドシステムに提供することを可能にする方法が無数に存在することを示す図である。 本明細書に開示した主題に従って無署名コンテンツを実行させることができる例示のシステム環境(これに限定されない)を示すブロック図である。 本明細書に開示の主題の別の側面に従って前記無署名コンテンツを実行させることができる例示のマルチメディアコンソールデバイス(これに限定されない)を示すブロック図である。 クローズドシステムにおける無署名コンテンツの実行とアクセスのセキュアをブロック図形式で示す図である。
概要
一般的に、ゲームコンソールは署名付きゲームだけが実行されるのを可能にしている。署名付きゲームが弱点を突くような(exploitive)方法でクローズドコンソールを公開しないようにするために、ゲームは認証(certification)と呼ばれるプロセスに通すことが強行されている。この認証は、ゲームに署名することを可能にする前に、ゲームが厳格なルールセットに従うことを要求している。これらの厳格なルールは、メーカにだけでなく、コンテンツパブリッシャにも支障となる方法でクローズドコンソールがハッキングされるのを許す可能性のあるエクスプロイト(exploit)をタイトルが、知らないうちに作成するのを防止するようになっている。具体的には、クローズドコンソール上のコンテンツの不正行為(piracy)を防止することが重要になっている。
クローズドコンソール上で実行されるゲームは、いずれも、メモリ、CPUアクセス、GPU、光ディスクドライブ、入力デバイス、および持続性ストレージ(ハードディスクドライブなど)などの、リソースへのアクセスを必要としている。無署名ゲームは、署名付きゲームに要求される代表的な認証プロセスに通されないので、本明細書には、無署名ゲームから保護されたリソースに流れるデータが有効であることを確かめる方法を示すためのシステム、方法、およびコンピュータ可読媒体が開示されている。
本明細書の開示事項の例示に限定されない側面では、すべてのデータは、クローズドゲーミングコンソールにおいて無署名ゲームと保護リソースから前後に流れるデータの有効性検査を取り扱うリソース管理レイヤに通される。このレイヤは、すべての保護リソースが無署名ゲームによって直接にアクセスできないことを保証すると共に、保護リソースに入るすべてのエントリポイントがよく知られていることを保証する。ある無署名ゲームが保護リソースに不正にアクセスしようとするか、あるいは全体がアクセス禁止(off limits)されているリソースにアクセスしようとすると、このレイヤはすべての実行を即時に中止することができる。さらに、リソース管理レイヤから利用できるエントリポイントは、コンソールメーカによって固定し、事前に決定することができる。このようにすると、無署名コードが恣意的に新しいエントリポイントを作成するのを防止するのに役立つことかできる。
より危険である一部の保護リソースは、別の抽象化レベルを用意することができる。ハイレベルバッファを専用プロトコル(specialized protocol)と併用すると、基礎となるリソースへの大部分のコールを抽象化することができる。キーポイントにおけるハイレベルバッファ内のコールは、リソース管理レイヤにフラッシュ(flush)したあと、有効性検査してから保護リソースに送ることができる。
最後に、リソース管理システムはセキュリティ違反のような、期待外のアクティビティを検出すると、そのアクティビティを中央ロケーションのログに記録することができる。このメカニズムをユニークなユーザIDシステムと併用すると、コンソールメーカは、ユーザ別にグループ化されたセキュリティ違反の数をトラッキングすることができる。このシステムによって提示されたデータを使用すると、コンソールメーカはセキュリティエクスプロイト(security exploit)の発生源をトラッキングし、汚れのないユーザ(inviolate user)を適切に取り扱うことができる。
クローズドシステムにおける無署名コンテンツの側面
本明細書に開示した主題のこのセクションでは、その実行がセキュアになるような形で(すなわち、クローズドシステムにおけるリソースが保護されるような形で)クローズドシステムにおいて無署名コンテンツが実行されることを中心に説明している。これらの側面の理解を容易にするためには、これらの側面を従来技術と比較すると役に立つ。
そこで、図1は、署名付きソフトウェアコンポーネント、すなわち、署名付きゲームだけが代表的なクローズドシステム上で実行できるような従来システムを示す図である。具体的には、クローズドシステム180が示され、そこではゲームA185とゲームB190のような、種々の署名付きゲームがクローズドシステム180に対して実行195可能になっている。これらのゲーム185、190は、クローズドシステム180のメーカによって許可されているのが一般であるが、ある側面では、ゲーム開発者または他の一部のサードパーティによって許可されることもある。いずれの場合も、システム180が「クローズド」とみなされているのは、汎用パーソナルコンピュータ(PC)の場合と同じように、すべてのソフトウェアアプリケーションがそこで実行できるとは限らないという意味においてである。
代表的な署名プロセスはこの分野では周知であり、上記で言及したように、知的財産の侵害行為を制限し、誰が該当コンテンツへのアクセス権があるかを制御する、といった種々の目的に役立っている。しかし、この種のクローズドシステム180には多数の利点があるにもかかわらず、その他の「無署名(unsigned)」ゲーム(署名当局によって公的に許可されていないゲーム)の開発を必ずしも制限しているとは限らない。このような無署名ゲームは、既存のゲームの上に構築されるゲームであることも(「署名付き」ゲームのパブリッシャから許可が得られている場合は、そのような署名付きゲームであることさえある)、あるいはさもなければ、クローズドシステム上で実行不可能である新開発のゲームであることもある。
そこで、図1とは対照的に、図2は署名付きゲームと無署名ゲームの両方をクローズドシステム上で実行させることができるシステムを示している。図1のクローズドシステム、すなわち、クローズドシステム180とは対照的に、この異なるクローズドシステム200は、署名付きゲームA205およびB210だけでなく、無署名ゲームC215とD220も実行させることができる。なお、当然に理解されるように、図示のクローズドシステム180と200は単に例示したものであり、コンピューティングデバイスのどのような特定メーカまたは世代にも限定されない(この種のシステムは、図1と図2の具体図ではなく、抽象ボックスで示されている)。
上記で言及したように、無署名コンテンツを実行させることができないのが一般的であるシステム200上で無署名ゲーミングコンテンツC215とD220を実行させるようにすると、このようなシステム200のゲーミング能力が拡張されることになる。しかし、無署名ゲーミングコンテンツを実行させるようにすると、セキュリティ上の問題が発生することにもなる。ゲームC215とD220は無署名であるので、つまり、これらのゲームがなにを目的としているのかが検証されていないので、最終的には、不正または望ましくないコードおよびデータがゲーミングシステム220上で実行される可能性がある。以下に図4を参照して簡単に説明するように、セキュリティレイヤの存在が必要になる。また、このセキュリティレイヤは、第一に、無署名ゲームの実行を可能にするだけでなく、望ましくないコードおよびデータがゲーミングシステム200のリソースとやりとりするのを防止するという利点もある。
次に、図3は、署名付きゲームが認証されていること、および無署名ゲームが認証されていないことを示している。具体的には、ゲームA305とB310はなんらかの認証または有効性検査当局によって署名され、これらのゲームがその当局によって指名された特定のクローズドシステム上で実行335できるようにされている。このような署名付きゲームA305とb310は認証325されていると言われる。これとは対照的に、未認証ゲーム330は、このなんらかの当局によって署名されていないゲーム、すなわち、ゲームA 315およびB320であるので、クローズドシステム300上で実行できないのが一般的である。本明細書の開示事項の上記側面および下記側面によれば、このようなゲーム315、320はクローズドシステム300上で実行させることができる(元々署名付きゲームA305およびB310に加えて)
次に、図4を参照して説明すると、図4は、ゲーミングオペレーティングシステムと無署名コンテンツの間にアクセスレイヤが存在し、そこではこの介在レイヤが無署名コンテンツによるアクセスを制御していることを示している。ゲームアクセスレイヤ405は抽象化されている(これについては、図5と図6を参照して以下に詳しく説明されている)。簡単に説明すると、これは、広い意味において無署名コンテンツ410がやりとりする一種のインタフェースと解することができる。実際には、これは無署名コンテンツ410のための仮想化ハードウェアを表し、無署名コンテンツ410がオペレーティングシステムレイヤ400との厳格な互換性をもたないで済むようにしている(これは、署名付きゲーミングコンテンツ、例えば、図3に示すゲームA305およびB310の場合と同様である)。
具体的には、図4に抽象化したものとして示しているアクセスレイヤ405は、図5を参照して詳しく説明されている。アクセスレイヤ405は、少なくとも6つのレイヤ、すなわち、グラフィックスレイヤ510、オーディオレイヤ515、入力レイヤ520、ストレージレイヤ525、ネットワークレイヤ527、および数値計算(math)レイヤ528で構成することができる。これらのレイヤの各々は、異なるタスクを受け持っている。例えば、グラフィックスレイヤ510は、グラフィックス(フラットシェーディング、正規マッピング、テクスチャマッピングなどを含むが、これらに限定されない)をレンダリングすることを担当することができる。オーディオレイヤ515は、そのタイトルが示すように、クローズドシステム上のオーディオを担当することができる(当然に理解されるように、このオーディオは無署名コンテンツと関連付けられていることもあれば、関連付けられていないこともある。これは、CD、DVD、またはある種のコンピュータデバイスファイルから得た独立のオーディオであることもあり得る)。入力レイヤ520は、コントローラボタンの選択、入力デバイスを使用したクリッキングなどのように、ユーザからの入力を取り扱うことを担当することができる。ストレージレイヤ525は、ある種のゲーミングコンテンツをストアし、またはある種のゲーミングコンテンツを再コールすることを担当することができる(さらに、これは、ゲーミングコンテンツを新しいコンソールハードウェアと同水準にするコードおよび/またはデータをストアすることによって、レガシーソフトウェア(legacy software)の実行を可能にするために使用することができる)。ネットワークレイヤ527は、マルチプレイヤゲーミングを可能にし、そこではコンソール側といずれかの関連サーバ側の両方のネットワーキングスタックがオンラインマルチプレイヤ体験を可能にするように使用可能になっている。最後に、数値計算レイヤ528は、ある種の数値計算関数の実行を可能にし、例えば、マップレンダリングを効率化することができる(グラフィックスが関係する場合)。いずれの場合も、これらのレイヤ510、515、520、525、527、528の各々は、セキュアなコンピューティングを保証するために管理対象コード(managed code)530などの無署名コードが通り抜ける必要のあるセキュアなゲートを、ユーザモード500とスーパバイザ(例えば、カーネル)モード505の間に得るのに役立っている(すなわち、コンソールメーカまたは他の関係パーティが意図していない目的のために、無署名コードが基礎となるネイティブOSレイヤ540およびいずれかの関連コンソールソースを引き継がないようにしている)。
そこで、図5に示すように、前記の無署名コードに関連する一部の管理対象コード530は、上述したように種々のサブレイヤ510、515、520、525、527、528で構成可能であるアクセスレイヤ405に提供される。管理対象コード530はユーザモード500側から提供され、これらのサブレイヤを通してフィルタリングされてスーパバイザモード505側に渡される。これらの6レイヤ510、515、520、525、527、528は、(1)適切なインタフェースが管理対象コード530に公開されること、および(2)ネイティブOSレイヤ540内にあって、管理対象コード530がアクセスすると想定されているリソースに管理対象コード530だけがアクセスすることを保証している。従って、全体的に、アクセスレイヤ405は、第1の場合に有用な役割を、第2の場合に防衛的な役割を果たし、それぞれが無署名コンテンツの実行を可能に、正しくない無署名コンテンツがある種のリソースにアクセスするのを防止する。他の場合は、管理対象コード530がスーパバイザモード505でネイティブOSレイヤ540に直接にアクセス可能である場合は、そのコード530はゲーミングコンソールにネイティブであるリソースに対して完全な制御権を持つことになる。しかし、このことは、メーカが意図しない目的のためにコンソールが使用されるといったように、上述した理由で望ましくないことがある。
図6は、図5を参照して上述した側面を示す詳細図である。例えば、ある人が、グラフィックスレイヤ510のような、上述したサブレイヤの1つを受け取り、そのサブコンポーネントに目を向けたとすると、これらのコンポーネントは図6の右側に示すコンポーネントのように見えることになる。第一に、グラフィックスレイヤ510は図6の左側に示されており、これはなんらかの入力600を受け取ることになる(出力を提供することもあるが、この側面は、ここでは入力提示目的に限定されている)。
従って、グラフィックスレイヤ510は、上記入力600を受け入れる入力バッファ605を備えることができる。この分野の精通者ならば容易に理解されるように、ここでは、バーテックス(vertex)バッファ、インデックスバッファ、バーテックスおよびピクセルシェーダ(shader)などのように、異なるタイプのバッファを使用することが可能である。コードおよび/またはデータが入力されたあと、これはユーザモード500側からスーパバイザモード505側にコピーすることができる。従って、これは入力バッファ605から有効性検査バッファ610にコピーされる。この有効性検査バッファ610において、情報(コード、データ、その他の同等物)が有効性検査され、それがスーパバイザモード505にアクセスすることが許されていると想定されたタイプの情報であることが確かめられる。
なにがスーパバイザモード505でアクセスすることが許されると想定される基準は、コンソールメーカまたはその他のサードパーティによって定義することが可能であり、これは、そのようなパーティによって継続的に更新し、モニタすることができる。従って、有効性検査バッファ610にストアされた情報に関してチェックが行なわれる。例えば、有効性検査バッファ610においてハンドルを有効性検査することができる。ここで、「ハンドル」とは、プログラムが上述したように、ライブラリ関数やなんらかのハードウェアリソースなどのリソースにアクセスするのを可能にするトークン(token)、代表例として、ポインタであると解される。この情報が有効であれば、リングバッファ615に渡して、ネイティブコンソールリソースに対して実行させることができる。
当然に理解されるように、入力600される情報のタイプが分かっていれば、その他のバッファアーキテクチャを使用することが可能である。コマンドが有効性検査バッファ610にストアされているときは、リングバッファ615の側面を使用されることがある。他方、コマンドに対するパラメータがある場合は、リングバッファ615は必要でないことがある。
本明細書に開示の主題の別の側面において、図7は、クローズドシステムが行なうことが、無署名コードが実行される対象となるハードウェアを仮想化することであることを示している。従って、基本的に、仮想マシンの形体をした仮想環境708が構築され、そこでは無署名コードが実行可能になっている。このような無署名コードはユーザモードで実行できるので、スーパバイザモード505にあるときは、さもなければ、無署名コードが有するはずのシステム706のリソースに対する制御が制限されている。ネイティブOSレイヤ704は、無署名コードに見合ったソフトウェアとハードウェアを仮想化し、ネイティブOSレイヤ704がアクセスおよび/または制御できる望みのセットのリソースだけを無署名コードに与えることができる。
この分野の精通者ならば理解されるように、各々がそれぞれの無署名ゲームごとに異なる仮想環境をもつ種々の仮想マシンを使用することが可能である。別の方法として、無署名ゲームの重要なサブセットの全部または一部をそこで実行するためにある種の汎用仮想マシン標準(universal virtual machine standard)を使用することも可能である。この場合、これらは、未署名ゲームがそこで実行されるための仮想マシン環境を提供するクローズドシステム706の重要な開示事項によって意図されている実装上の単なる明細にすぎない。
最後に、無署名コンテンツが図8に示すように、あるコンピューティングソースからクローズドシステムに提供されるときの方法は多数存在する。この側面の意図は、図4に言及され、図5と図6を参照して詳しく説明したアクセスレイヤ504が種々タイプの無署名コンテンツを取り扱うことができることを示すことである。この側面で意図しているコンテンツのタイプとしては、クローズドコンピューティングシステム808のアクセスレイヤに一度だけ提供802されるコンテンツ、システム806にストリーム化804されるコンテンツ、または定期的および動的にシステム808に提供されるコンテンツがある。
本明細書では、種々タイプのコンテンツを提供するアーキテクチャが本明細書において意図されている。あるタイプでは、コンピューティングソース802、804、806とクローズドシステム808の間に介在サーバ810が存在していることがあるのに対し、他のタイプでは、コンピューティングソースとクローズドシステム808間が直結されていることがある。この分野の精通者ならば容易に理解されるように、コンテンツがクローズドシステムに配信されるときの方法はさまざまである。コンテンツがクローズドシステム808に与えられると、システム808はこのコンテンツを受け取り、図4に示すアクセスレイヤ405、図5に示すグラフィックスレイヤ510、オーディオレイヤ515、入力レイヤ520およびストレージレイヤ525、および図6に示す種々のバッファ605、610および615を通して、そのコンテンツを実行させることができる。情報がどのように受信され、ストアされ、システム808のソースに渡されるかは、システム808のメーカがアクセスレイヤに課している制約によって決まり、従って無署名コンテンツの内容によって決まる。
例示のコンピューティングデバイス
上述したように、本明細書に開示の主題はどのようなデバイスにも適用され、そこでは、無署名コンテンツが、さもなければクローズドシステム上で実行されることが望ましいとされている。なお、上述したように当然に理解されるように、無署名コンテンツのそれに同等の他のコンテンツも、本明細書に開示のすべての種類のコンピューティングオブジェクトと共に働くことができる。従って、図9を参照して下述する以下の汎用リモートコンピュータは単なる一例であり、本明細書に開示の主題は、スタンドアロンデバイスであるか、ネットワーク/バスの相互操作性と相互作用性を備えたデバイスであるかに関係なく、どのようなクライアントデバイスまたはポータブルデバイスと共に実現することが可能である。従って、本明細書に開示の主題は、非常に少ない、または最小限のリソースが関係しているようなネットワーク化ホスティングサービス(networked hosted service)の環境、例えば、クライアントデバイスがアプライアンスに置かれたオブジェクトのように、ネットワーク/バスとのインタフェースとなっているだけのネットワーク化環境において実現することができる。
必ずしも必要でないが、本明細書に開示の主題は、その一部を、デバイスまたはオブジェクト用のサービスの開発者による使用のためにオペレーティングシステムを介して実現することも、および/または本明細書に開示の主題に関連して動作するアプリケーションソフトウェア内に組み込んでおくこともできる。ソフトウェアは、プログラムモジュールのように、クライアントワークステーション、サーバまたはその他のデバイスのような、1または2以上のコンピュータによって実行されるコンピュータ実行可能命令の一般的コンテキストの中で説明することができる。この分野の精通者ならば理解されるように、本明細書に開示の主題は、その他のコンピュータシステム構成およびプロトコルと共に実施することが可能である。
そこで、図9は、図2乃至図8を参照して説明した種々の側面が実現可能である、適当なコンピューティングシステム環境100aの例を示す図であり、上記から明らかであるように、このコンピューティングシステム環境100aは実行デバイス用の適当なコンピューティング環境の単なる一例であり、これらの側面の使用または機能性の範囲に関してなんらの制限があることを示唆するものではない。また、このコンピューティング環境100aは、例示の動作環境100aに図示のコンポーネントのいずれか、またはその組み合わせに関してなんらの依存関係または要求条件があると解されるものでもない。
図9を参照して説明すると、前記側面を実現するための例示のリモートデバイスは、コンピュータ110aの形体をした汎用コンピューティングデバイスを含んでいる。コンピュータ110aのコンポーネントには、処理ユニット120a、システムメモリ130a、およびシステムメモリを含む種々のシステムコンポーネントを処理ユニット120aに結合するシステムバス121aが含まれているが、これらに限定されない。システムバス121aは、いくつかのタイプのバス構造のいずれにすることも可能であり、その中には、バスアーキテクチャのいずれかを使用したメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれている。
コンピュータ110aは、種々のコンピュータ可読媒体を装備しているのが一般的である。コンピュータ可読媒体は、利用可能であれば、コンピュータ110aによってアクセス可能であるどのような媒体にすることができる。例を挙げると、コンピュータ可読媒体には、コンピュータ記憶媒体と通信媒体が含まれているが、これらに限定されない。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報をストアしておくためのなんらかの方法またはテクノロジで実現された揮発性および不揮発性で、取り外し可能および取り外し不能の両方の媒体が含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリテクノロジ、CDROM、DVD(digital versatile disk)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、または望みの情報をストアするために使用可能で、コンピュータ110aによってアクセス可能であるその他の媒体が含まれるが、これらに限定されない。通信媒体は、搬送波などの変調データ信号またはその他のトランスポートメカニズムでコンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを具現化し、その中には、なんらかの情報配信媒体が含まれているのが一般的である。
システムメモリ130aには、ROM(read only memory)および/またはRAM(random access memory)などの、揮発性および/または不揮発性メモリの形体をしたコンピュータ記憶媒体が含まれている。スタートアップ時のように、コンピュータ110a内のエレメント間で情報を転送するのを支援する基本ルーチンで構成された基本入出力システム(basic input/output system)はメモリ130aにストアしておくことができる。メモリ130aは、処理ユニット120aに即時にアクセス可能で、および/または現在処理ユニット120aの操作の対象となっているデータおよび/またはプログラムモジュールも収容いているのが一般的である。例を挙げると、メモリ130aは、オペレーティングシステム、アプリケーションプログラム、その他のプログラムモジュール、およびプログラムデータも収めておくことができるが、これらに限定されない。
コンピュータ110aは、その他の取り外し可能/取り外し不能の揮発性/不揮発性コンピュータ記憶媒体を備えていることもある。例えば、コンピュータ110aは、取り外し不能の不揮発性磁気媒体との間で読み書きを行なうハードディスクドライブ、取り外し可能の不揮発性磁気ディスクとの間で読み書きを行なう磁気ディスクドライブ、および/またはCD−ROMまたはその他の光媒体などの、取り外し可能の不揮発性光ディスクとの間で読み書きを行なう光ディスクドライブを備えることも可能である。例示の動作環境において使用できる、その他の取り外し可能/取り外し不能の揮発性/不揮発性コンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、DVD(digital versatile disk)、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがあるが、これらに限定されない。ハードディスクドライブは、インタフェースなどの取り外し不能メモリインタフェースを通してシステムバス121aに接続されているのが一般的であり、磁気ディスクドライブまたは光ディスクドライブは、インタフェースなどの取り外し可能メモリインタフェースによってシステムバス121aに接続されているのが一般的である。
ユーザがコントローラを介して入力をクローズドコンピューティングデバイスに与えることができるほかに、ユーザは、キーボードおよびマウス、トラックボールまたはタッチパッドと普通に呼ばれているポインティングデバイスなどの、入力デバイスを通してコマンドおよび情報をコンピュータ110aに入力することができる。このような周辺デバイスのほかに、その他の入力デバイスとしては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどがある。これらおよびその他の入力デバイスは、多くの場合、ユーザ入力140aおよびシステムバス121aに結合された関連インタフェースを通して処理ユニット120aに接続されているが、パラレルポート、ゲームポートまたはUSB(universal serial bus)などの、他のインタフェースおよびバス構造によって接続されていることもある。グラフィックスサブシステムがシステムバス121aに接続されていることもある。モニタまたはその他のタイプのディスプレイデバイスも、出力インタフェース150aのような、インタフェースを介してシステムバス121aに接続されており、インタフェースの方はビデオメモリに連絡していることがある。モニタのほかに、コンピュータは、スピーカおよびプリンタなどの他の周辺出力デバイスを装備していることもあり、これらのデバイスは出力インタフェースを通して接続されていることがある。
コンピュータ110aは、リモートコンピュータ170aのような、1または2以上の他のリモートコンピュータとの論理コネクションを使用してネットワーク化環境または分散環境で動作することが可能であり、リモートコンピュータの方は、デバイス110aとは異なるメディア能力を備えていることがある。リモートコンピュータ170aは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたはその他の共通ネットワークノード、またはその他の任意のリモートメディア消費または送信デバイスであることがあり、コンピュータ110aに関連して上述したエレメントのいずれか、またはすべてを備えていることがある。図9に図示の論理コネクションは、LAN(local area network)またはWAN(wide area network)などのネットワーク171aを含んでいるが、その他のネットワーク/バスを含んでいることもある。このようなネットワーキング環境は、ホーム、オフィス、企業内コンピュータネットワーク、イントラネットおよびインターネットにおいて普及している。
LANネットワーキング環境で使用されるときは、コンピュータ110aはネットワークインタフェースまたはアダプタを通してLAN171aに接続されている。WANネットワーキング環境で使用されるときは、コンピュータ110aは、インターネットなどのWAN上でコミュニケーションを確立するためのモデムまたはその他の手段を装備しているのが一般的である。モデムは内蔵型または外付け型があり、どちらも入力140aのユーザ入力インタフェースまたはその他の適当なメカニズムを介してシステムバス121aに接続可能になっている。ネットワーク化環境では、コンピュータ110aに関連して図示したプログラムモジュールまたはその一部は、リモートメモリストレージデバイスにストアしておくことが可能である。以上から理解されるように、図示し、説明したネットワークコネクションは例示であり、コンピュータ間に通信リンクを確立するための他の手段を使用することも可能である。
例示のマルチメディア(クローズド)コンソール環境
次に図10を参照して説明すると、図10は、ある署名当局(クローズドデバイスのメーカであるか、あるゲーミングパブリッシャであるかに関係なく)によって署名される限定量のソフトウェアコンポーネントに対してクローズされていることがある、例示の別のコンピューティングデバイス(この例に限定されない)、すなわち、例示のマルチメディアコンソールを示すブロック図である。図10は、本明細書に開示の主題の側面を実現することができるマルチメディアコンソール100の機能コンポーネントを示している。このマルチメディアコンソール100は、レベル1(L1)キャッシュ102、レベル2(L2)キャッシュ104、およびフラッシュROM(Read-only Memory)106を備えた中央処置ユニット(CPU)101を搭載している。レベル1キャッシュ102とレベル2キャッシュ104は、データを一時的にストアしておき、メモリアクセスサイクルの回数を減らすことにより、処理速度とスループットを向上している。フラッシュROM106は、マルチメディアコンソール100に電源が投入されたときブートプロセスの初期フェーズ期間にロードされる実行可能コードをストアしておくことができる。別の方法として、初期ブートフェーズ期間にロードされる実行可能コードは、FLASHメモリデバイス(図示せず)にストアされていることもある。さらに、ROM106は、CPU101とは別のロケーションに置かれていることもある。
このコンソールは、グラフィックス処理ユニット(graphics processing unit: GPU)108およびビデオエンコーダ/ビデオコーデック(コーダ/デコーダ)114のような種々のリソースを装備し、高速および高解像度グラフィックス処理のためのビデオ処理パイプラインからコンソールに利用可能になっている。このセットアップでは、データは、バスを経由してグラフィックス処理ユニット108からビデオエンコーダ/ビデオデコーダに送られる。ビデオ処理パイプラインは、データをA/V(オーディオ/ビデオ)ポート140に出力し、そこからテレビジョンまたは他のディスプレイにデータに送られる。メモリコントローラ110がGPU108およびCPU101に接続されて、RAM(Random Access Memory)などの、種々タイプのメモリ112にプロセッサがアクセスするのを容易にしている。なお、種々タイプのメモリはRAMに限定されない。
マルチメディアコンソール100は、I/Oコントローラ120、システム管理コントローラ122、オーディオ処理ユニット123、ネットワークインタフェースコントローラ124、第1のUSBホストコントローラ126、第2のUSBコントローラおよびフロントパネルI/Oサブアセンブリ130を装備し、これらは好ましくはモジュール118上に実装されている。USBコントローラ126と128は、周辺コントローラ142(1)−142(2)、ワイヤレスアダプタ148、および外部メモリユニット146(例えば、フラッシュメモリ、外部CD/DVD ROMドライブ、取り外し可能メディアなど)に対するホストの働きをする。ネットワークインタフェース124および/またはワイヤレスアダプタ148は、ネットワーク(例えば、インターネット、ホームネットワークなど)にアクセスすることを可能にし、イーサネット(登録商標)(Ethernet(登録商標))カード、モデム、ブルートゥース(Bluetooth)モジュール、ケーブルモデムなどを含む、広範囲にわたる種々のワイヤードまたはワイヤレスインターネットコンポーネントのいずれにすることも可能である。
システムメモリ143は、ブートプロセス期間にロードされるアプリケーションデータをストアしておくためのものである。メディアドライブ144が用意されているが、これは、DVD/CDドライブ、ハードディスク、またはその他の取り外し可能メディアドライブなどで構成可能になっている。メディアドライブ144はマルチメディアコンソール100に内蔵されている場合と、外付けになっている場合とがある。アプリケーションデータは、メディアドライブ144を通してアクセスして、マルチメディアコンソール100による実行、プレイバックなどを可能にしている。メディアドライブ144は、シリアルATAバスまたはその他の高速コネクション(例:IEEE1394)などのバスを介してI/Oコントローラ120に接続されている。
システム管理コントローラ122は、マルチメディアコンソール100の可用性を保証することに関係する種々のサービス機能を提供している。オーディオ処理ユニット123とオーディオコーデック133は、ハイファイ(high fidelity)およびステレオ処理と共に対応するオーディオ処理パイプレインを形成している。オーディオデータは、オーディオ処理ユニット123とオーディオコーデック126の間を通信リンク経由で搬送される。オーディオ処理パイプラインはデータをA/Vポートに出力し、オーディオ機能を備えた外部オーディオプレイヤまたはデバイスによって再現される。
フロントパネルI/Oサブアセンブリ130は、電源ボタン150とイジェクトボタン152だけでなく、マルチメディアコンソール100の外面に露出されたLED(発光ダイオードまたはその他のインジケータの機能もサポートしている。システム電源供給モジュール136は、マルチメディアコンソール100のコンポーネントに電力を供給する。ファン138は、マルチメディアコンソール100内部の回路を冷却する。
マルチメディアコンソール100内部のCPU101、GPU108、メモリコントローラ110、およびその他の種々コンポーネントは1または2以上のバスを介して相互に接続されており、その中には、種々のバスアーキテクチャのいずれかを使用したシリアルバスとパラレルバス、メモリバス、周辺バス、およびプロセッサバスまたはローカルバスが含まれている。
マルチメディアコンソール100がパワーオンまたはリブートされるとき、アプリケーションデータは、システムメモリ143からメモリ112および/またはキャッシュ102、104にロードされ、CPU101上で実行されることが可能になっている。アプリケーションは、マルチメディアコンソール100で利用できる種々のメディアタイプにナビゲートするとき、一貫したユーザ体験が得られるようにするグラフィカルユーザインタフェースを提示することができる。動作時には、メディアドライブ144内に収められたアプリケーションおよび/またはその他のメディアがメディアドライブ144から起動(launch)またはプレイされて、マルチメディアコンソール100に追加機能を提供することができる。
マルチメディアコンソール100は、システムをテレビジョンや他のディスプレイに接続するだけでスタンドアロンシステムとして動作させることができる。このスタンドアロンモードにあるときは、マルチメディアコンソール100は、1または2以上のユーザがシステムとやりとりしたり、ムービを見たり、ミュージックを聴いたり、などをすることを可能にする。しかし、ネットワークインタフェース124またはワイヤレスアダプタ148を通して利用可能にされるブロードバンド接続性が組み込まれていると、マルチメディアコンソール100は、さらに、より大きなネットワークコミュニティにおける参加者として動作させることができる。
図10に図示のマルチメディアコンソールは、例えば、ゲームなどのマルチメディアアプリケーションを実行するために使用可能である代表的なマルチメディアコンソールである。マルチメディアアプリケーションは、例えば、システムセッティング、ボイスチャット(voice chat)、ネットワーク化ゲーミング、ネットワーク上で他のユーザとやりとりする機能、eメール、ブラウザアプリケーションなどを含むシステム機能(system feature)で強化することができる。このようなシステム機能を使用すると、異なるロケーションにいるプレイヤがインターネットを介して共通ゲームをプレイできるといったように、マルチメディアコンソールの機能を向上することができる。
また、時間と共に、システム機能は更新されることもあれば、マルチメディアアプリケーションに追加されることもある。マルチメディア開発者は、これらのシステム機能を得るためにマルチメディアアプリケーションに重要な変更を行なわなくても、本明細書に記載したシステムおよび方法によれば、マルチメディア開発者は、マルチメディアアプリケーションと関連して稼動する別のシステムアプリケーションを通してこれらのシステム機能を得ることができる。例えば、ネットワーク化機能に関連する機能をシステムアプリケーションに取り入れておくと、マルチメディア(例えば、ゲーム)開発者は、少ない作業量でネットワーク化機能が得られるようにマルチメディアアプリケーションを容易に適応させることが可能になる。このような機能の1つとして、マルチユーザおよびネットワーク化ユーザのためのシステムレベル通知機能がある。システム上で稼動するゲームのように、個々のマルチメディアアプリケーションによって取り扱うのではなく、システムレベル通知をシステムアプリケーションの一部にしておくと、ゲーム招待などの通知表示を取り扱うことがマルチメディアアプリケーション開発者の開発プロセスから除かれるので、開発者はマルチメディアアプリケーション自体に集中することができる。
上述したように、本発明の例示実施形態を種々のコンピューティングデバイスおよびネットワークアーキテクチャと関連付けて説明してきたが、その基礎となる概念は、デバイスまたはシステムを制御するために入力デバイスが利用されることのある、どのようなコンピューティングデバイスまたはシステムにも適用することができる。例えば、ここで説明している側面をアルゴリズムおよびハードウェアで実現したものは、デバイス上の独立オブジェクトとしても、別のオブジェクトの一部としても、再使用可能なコントロールとしても、サーバからのダウンロード可能なオブジェクトとしても、デバイスまたはオブジェクトとネットワーク間の「仲介者(middle man)」としても、分散オブジェクトとしても、ハードウェアとしても、メモリ内においても、上記に挙げたもののいずれかの組み合わせとしても提供されるコンピューティングデバイスのオペレーティングシステムに適用することができる。例示のプログラミング言語、名前および例は、本明細書では、種々の選択項目を表すものとして選択されているが、これの言語、名前および例は限定的なものではない。図11は、無署名コードがクローズドシステム上で実行されるのを可能にするアルゴリズムの流れを実現する1つの方法を示しているが、この分野の通常の知識を有するものならば理解されるように、本主題の種々の実施形態によって達成される同一、類似または等価機能を達成するオブジェクトコードと名称(nomenclature)を準備する方法は多数存在している。
上述したように、本明細書に説明されている種々の手法は、ハードウェアまたはソフトウェアと関連付けて、該当する場合には、ハードウェアとソフトウェアの組み合わせと関連付けて実現することが可能である。従って、本明細書に開示の主題の方法および装置、またはある種の側面またはその一部は、フロッピディスケット、CD−ROM、ハードドライブ、またはその他のいずれかのマシン可読記憶媒体などの、有形的媒体で具現化されたプログラムコード(つまり、命令)の形体にすることができ、そこでは、プログラムコードがコンピュータなどのマシンにロードされ、マシンによって実行されるとき、そのマシンは本明細書に開示の側面を実施するための装置になる。プログラマブルコンピュータ上でプログラムコードが実行される場合には、コンピューティングデバイスは、プロセッサ、プロセッサによって読み取り可能である記憶媒体(揮発性および不揮発性メモリおよび/または記憶エレメントを含む)、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスを搭載しているのが一般的である。これらの側面に従って提供されるソフトウェアを実現し、または利用することができる1または2以上のプログラムは、好ましくは、コンピュータと通信するように高水準手続き型またはオブジェクト指向プログラミング言語で書かれている。しかし、これらのプログラムは、それが望ましければ、アセンブリ言語またはマシン言語で書くこともできる。いずれの場合も、言語はコンパイル型または解釈型言語にすることが可能で、ハードウェアで実現したものと組み合わせることができる。
本明細書に開示の側面の方法および装置は、電気的配線またはケーブリング、光ファイバ、またはその他のいずれかの伝送形態などの、なんらかの伝送媒体上を送信されるプログラムコードの形で具現化されたコミュニケーションを通して実施することも可能であり、そこでは、プログラムコードが受信され、EPROM、ゲートアレイ、プログラマブルロジックデバイス(programmable logic device: PLD)、クライアントマシンなどの、マシンにロードされ、マシンによって実行されるとき、そのマシンは本明細書に開示の主題を実施するための装置になる。汎用プロセッサ上に実装されているときは、プログラムコードはプロセッサと組み合わさって、本明細書に開示の主題の機能を起動するように動作するユニークな装置を提供する。さらに、本側面と関連して使用される記憶手法は、常にハードウェアとソフトウェアを組みあせたものにすることができる。
上述した側面は、種々の図面の好適実施形態と関連付けて説明してきたが、当然に理解されるように、他の類似実施形態を使用することも、上述した実施形態に変更または追加を行なって、その範囲から逸脱することなく同一機能を実行することも可能である。例えば、この分野の精通者ならば認識されるように、本明細書に記載されている方法は、ゲーミングコンソール、ハンドヘルドコンピュータ、ポータブルコンピュータなどのように、ワイヤードであるか、ワイヤレスであるかに関係なく、どのようなコンピューティングデバイスまたは環境にも適用することができ、さらに、通信ネットワークを介して接続され、ネットワークを通してやりとりする、かかるコンピューティングデバイスの数に関係なく適用することが可能である。
さらに、当然に理解されるように、特に、ネットワーク化されたワイヤレスデバイスの数の増加に伴って、ハンドヘルドデバイスのオペレーティングシステムおよびその他のアプリケーション固有のオペレーティングシステムを含む、さまざまなコンピュータプラットフォームが意図されている。さらに、本明細書に開示の主題の機能は、複数の処理チップまたはデバイス内に、またはこれらにまたがって実装させることが可能であり、ストレージも同様に複数のデバイスにまたがって行なうことが可能である。従って、本明細書に説明した側面は、どのような単一実施形態にも限定されるものではなく、その領域または範囲は請求項の記載に従って解釈されるものである。
要約
以上を要約すると、種々の方法、システム、およびコンピュータ可読媒体は、上述した側面を具現化することができる。例えば、図11においては、クローズドシステムにおいて無署名コンテンツを実行し、アクセスをセキュアにするための次のような側面が意図されている。図11のブロック1100において、このような実行とセキュアにすることは、ゲーミングコンソールなどのクローズドコンピューティングデバイスを使用して行なうことができ、そこではクローズドコンピューティングデバイスは、署名当局によって許可されたソフトウェアコンテンツコンポーネント、すなわち、例えば、署名付きソフトウェアを実行するように構成されている。さらに、無署名ソフトウェアコンテンツコンポーネントはそのようなクローズドコンピューティングデバイス上で実行させることができ、そこでは無署名ソフトウェアコンテンツコンポーネンツは、クローズドコンピューティングデバイスにインタフェースを仮想化させることによって、つまり、無署名ソフトウェアがブロック1105に示すように、クローズドシステムに対して実行できるように入力を提供させることによって、クローズドコンピューティングデバイス上で実行されている。従って、本明細書において「インタフェース」という用語は、ソフトウェアによって一般に使用されるような入力と出力を広義に解することを意図している。このような仮想化インタフェースは、前記署名当局によって許可された署名付きソフトウェアコンテンツコンポーネント用の代表的なインタフェースの提供に上乗せする形で提供されている。従って、ブロック1100において、署名付きコンテンツがブロック1115において実行されているのか、無署名コンテンツがブロック1120において実行されているのかの判断が行なわれる。前者のケースは図1を参照して説明した従来のケースである。本明細書に図2乃至図8を参照して詳しく説明している後者のケースは、クローズドゲーミングシステムの拡張した使い方を提供している。
従って、すでに上述したように、および図11のブロック1125に示すように、前記のインタフェースは、グラフィックレイヤ、オーディオレイヤ、入力レイヤ、およびストレージレイヤ(図5に最初に示されている)のうちの少なくとも1つに対応付けることができる。さらに、グラフィックスレイヤ、オーディオレイヤ、入力レイヤ、およびストレージレイヤのうちの少なくとも1つは、ブロック1130に示すように、無署名ソフトウェアコンテンツコンポーネントがストアされる第1のバッファ、およびデータが第1のバッファからコピーされる第2のバッファなどの、種々のバッファで構成することができる(そこでは、データは前記第2のバッファにおいて有効性検査される)。これらの側面は図6に分かりやすく示されている。従って、データは、前記有効性検査が行なわれたあと、クローズドコンピューティングデバイスに関連するリソース(メモリ、CPUアクセス、光ディスクドライブ、入力デバイス、ハードディスクドライブなど)に与えることができる。別の方法として、データは、この有効性検査が行なわれたあと、クローズドコンピューティングデバイスに関連する前記リソースに与えられる前に、リングバッファに与えることもできる。なお、この分野の精通者ならば理解されるように、これは本明細書に開示の主題の単なる一例の側面であり、この側面に限定されるものではない。
図8のような、他の図面に関連して上述したように、無署名ソフトウェアコンテンツコンポーネント(例えば、ユーザまたは開発者作成のゲーム)は、コンピューティングデバイスからのコネクションを通して(または別の方法では、通常のケースにおいて、DVDまたは他のなんらかの光デバイス、磁気デバイスまたは同等デバイスなどを通して)クローズドコンピューティングデバイスに提供することができる。さらに、このような提供は、コンピューティングデバイス(PC、サーバ、またはその他のゲーミングコンソールであるかに関係ない)からのコミュニケーションを通してダイナミックに行なうことも、別の方法として、このようなコンピューティングデバイスからの無署名コンテンツをストリーミングすることによって行なうこともできる。当然のことであるが、この要約は限定的ではなく、単なる例示である。また、明らかであるように、ユニークなユーザIDをクローズドコンピューティングデバイスに割り当てて、クローズドコンピューティングデバイスの違反有無をそのユニークなユーザIDを通してトラッキングするといったような、ここでは説明していないが、上述したその他の側面も、この要約に明示的に言及されていなくても、本明細書において意図されている。

Claims (20)

  1. クローズドシステムにおいて無署名ソフトウェアコンテンツコンポーネントを実行し、アクセスをセキュアにするためのシステムにおいて、
    クローズドコンピューティングデバイスであって、前記クローズドコンピューティングデバイスは、複数のクローズドコンピューティングデバイスのいずれかにおいて動作するために署名当局によって許可されたソフトウェアコンテンツコンポーネントを実行するように構成されているものと、
    少なくとも1つの無署名ソフトウェアコンテンツコンポーネントであって、前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントは、前記署名当局によって許可された前記ソフトウェアコンテンツコンポーネント用のインタフェースを提供することに加えて、前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネント用のインタフェースを前記クローズドコンピューティングデバイスに仮想化させることによって、前記クローズドコンピューティングデバイスのリソースへのアクセスを可能にし、前記クローズドコンピューティングデバイス上で実行されるものと、
    を備えたことを特徴とするシステム。
  2. 前記インタフェースは、グラフィックスレイヤ、オーディオレイヤ、入力レイヤ、およびストレージレイヤのうちの少なくとも1つに対応していることを特徴とする請求項1に記載のシステム。
  3. 前記グラフィックスレイヤ、前記オーディオレイヤ、前記入力レイヤ、および前記ストレージレイヤのうちの少なくとも1つは、前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントに関連するデータがストアされる第1のバッファ、および前記データが前記第1のバッファからコピーされる第2のバッファで構成されると共に、前記データは前記第2のバッファにおいて有効性検査されることを特徴とする請求項2に記載のシステム。
  4. 前記データは、前記有効性検査のあと、前記クローズドコンピューティングデバイスに関連するリソースに提供されることを特徴とする請求項3に記載のシステム。
  5. 前記データは、前記有効性検査のあと、前記クローズドコンピューティングデバイスに関連するリソースに提供される前にリングバッファに提供されることを特徴とする請求項3に記載のシステム。
  6. 前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントは、コンピューティングデバイスからのコネクションを通して前記クローズドコンピューティングデバイスに提供されることを特徴とする請求項1に記載のシステム。
  7. 前記少なくとも1つの無署名ソフトウェアコンポーネントは、(a)コンピューティングデバイスからのダイナミックコミュニケーションおよび(b)前記コンピューティングデバイスからのストリーミングのうちの一方を使用して前記クローズドコンピューティングデバイスに提供されることを特徴とする請求項1に記載のシステム。
  8. クローズドシステムにおいて無署名ソフトウェアコンテンツコンポーネントを実行し、アクセスをセキュアにするための方法であって、該方法は、前記クローズドシステムに記憶されたコンピュータプログラムを前記クローズドシステムが実行することによって実行され、
    クローズドコンピューティングデバイスを、複数のクローズドコンピューティングデバイスのいずれかにおいて動作するために署名当局によって許可されたソフトウェアコンテンツコンポーネントを実行するように構成するステップと、
    前記クローズドコンピューティングデバイスを、前記クローズドコンピューティングデバイス上で少なくとも1つの無署名ソフトウェアコンテンツコンポーネントを実行するように構成するステップと、
    を含み、
    前記少なくとも1つの無署名ソフトウェアコンポーネントは、前記署名当局によって許可された前記ソフトウェアコンテンツコンポーネント用のインタフェースを提供することに加えて、前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネント用のインタフェースを前記クローズドコンピューティングデバイスに仮想化させることによって、前記クローズドコンピューティングデバイスのリソースへのアクセスを可能にし、前記クローズドコンピューティングデバイス上で実行されることを特徴とする方法。
  9. 前記クローズドコンピューティングデバイスにユニークなユーザIDを割り当てて、前記クローズドコンピューティングデバイスの違反有無を前記ユニークなユーザIDを通してトラッキングするステップを、さらに含むことを特徴とする請求項8に記載の方法。
  10. 前記インタフェースを使用するステップをさらに含み、前記インタフェースはグラフィックスレイヤ、オーディオレイヤ、入力レイヤ、およびストレージレイヤのうちの少なくとも1つに対応していることを特徴とする請求項8に記載の方法。
  11. 前記グラフィックスレイヤ、前記オーディオレイヤ、前記入力レイヤ、および前記ストレージレイヤのうちの少なくとも1つを、前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントに関連するデータがストアされる第1のバッファ、および前記データが前記第1のバッファからコピーされる第2のバッファでなるように構成するステップをさらに含み、前記データは前記第2のバッファにおいて有効性検査されることを特徴とする請求項10に記載の方法。
  12. 前記有効性検査のあと、前記データを前記クローズドコンピューティングデバイスに関連するリソースに提供するステップをさらに含むことを特徴とする請求項11に記載の方法。
  13. 前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントを、コンピューティングデバイスからのコネクションを通して前記クローズドコンピューティングデバイスに提供するステップをさらに含むことを特徴とする請求項8に記載の方法。
  14. 前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントを、(a)コンピューティングデバイスからのダイナミックコネクションおよび(b)前記コンピューティングデバイスからのストリーミングのうちの一方を使用して前記クローズドコンピューティングデバイスに提供するステップをさらに含むことを特徴とする請求項8に記載の方法。
  15. クローズドシステムにおいて無署名ソフトウェアコンテンツコンポーネントを実行し、アクセスをセキュアにするためのコンピュータ実行可能命令を収めているコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令は、
    クローズドコンピューティングデバイスを、複数のクローズドコンピューティングデバイスのいずれかにおいて動作するために署名当局によって許可されたソフトウェアコンテンツコンポーネントを実行するように構成することと
    少なくとも1つの無署名ソフトウェアコンテンツコンポーネントを前記クローズドコンピューティングデバイス上で実行するように構成することと、
    を含み、
    前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントは、前記署名当局によって許可された前記ソフトウェアコンテンツコンポーネント用のインタフェースを提供することに加えて、前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネント用のインタフェースを前記クローズドコンピューティングデバイスに仮想化させることによって、前記クローズドコンピューティングデバイスのリソースへのアクセスを可能にし、前記クローズドコンピューティングデバイス上で実行されることを特徴とするコンピュータ可読記憶媒体。
  16. 前記クローズドコンピューティングデバイスにユニークなユーザIDを割り当てて、前記コンピューティングデバイスの違反有無を前記ユニークなユーザIDを通してトラッキングすること、をさらに含むことを特徴とする請求項15に記載のコンピュータ可読記憶媒体。
  17. 前記インタフェースを使用することをさらに含み、前記インタフェースはグラフィックスレイヤ、オーディオレイヤ、入力レイヤ、およびストレージレイヤのうちの少なくとも1つに対応していることを特徴とする請求項15に記載のコンピュータ可読媒体。
  18. 前記グラフィックスレイヤ、前記オーディオレイヤ、前記入力レイヤ、および前記ストレージレイヤのうちの少なくとも1つを、前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントに関連するデータがストアされる第1のバッファ、および前記データが前記第1のバッファからコピーされる第2のバッファからなるように構成することをさらに含み、前記データは前記第2のバッファにおいて有効性検査されることを特徴とする請求項17に記載のコンピュータ可読記憶媒体。
  19. 前記有効性検査のあと、前記データを前記クローズドコンピューティングデバイスに関連するリソースに提供することをさらに含むことを特徴とする請求項18に記載のコンピュータ可読記憶媒体。
  20. 前記少なくとも1つの無署名ソフトウェアコンテンツコンポーネントを、(a)コンピューティングデバイスからのダイナミックコネクションおよび(b)前記コンピューティングデバイスからのストリーミングのうちの一方を使用して前記クローズドコンピューティングデバイスに提供することをさらに含むことを特徴とする請求項15に記載のコンピュータ可読記憶媒体。
JP2009540373A 2006-12-07 2007-11-19 クローズドシステムにおける無署名コンテンツの実行とアクセスのセキュアリング Expired - Fee Related JP5111516B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/636,199 2006-12-07
US11/636,199 US8875271B2 (en) 2006-12-08 2006-12-08 Executing unsigned content and securing access in a closed system
PCT/US2007/085062 WO2008073676A1 (en) 2006-12-07 2007-11-19 Executing unsigned content and securing access in a closed system

Publications (2)

Publication Number Publication Date
JP2010528343A JP2010528343A (ja) 2010-08-19
JP5111516B2 true JP5111516B2 (ja) 2013-01-09

Family

ID=39499683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009540373A Expired - Fee Related JP5111516B2 (ja) 2006-12-07 2007-11-19 クローズドシステムにおける無署名コンテンツの実行とアクセスのセキュアリング

Country Status (6)

Country Link
US (1) US8875271B2 (ja)
EP (1) EP2126831A4 (ja)
JP (1) JP5111516B2 (ja)
CN (1) CN101553840B (ja)
CA (1) CA2669011C (ja)
WO (1) WO2008073676A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263679A1 (en) * 2007-04-23 2008-10-23 Microsoft Corporation Storing information in closed computing devices
US8523666B2 (en) * 2007-05-25 2013-09-03 Microsoft Corporation Programming framework for closed systems
US20090227375A1 (en) * 2008-03-04 2009-09-10 Weisman Jordan K Method and apparatus for employing cell phones as video game controllers
US8892789B2 (en) * 2008-12-19 2014-11-18 Netapp, Inc. Accelerating internet small computer system interface (iSCSI) proxy input/output (I/O)
US8646050B2 (en) * 2011-01-18 2014-02-04 Apple Inc. System and method for supporting JIT in a secure system with randomly allocated memory ranges
US12026244B2 (en) * 2019-10-03 2024-07-02 Microsoft Technology Licensing, Llc Registration of dynamically created packaged applications

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151618A (en) * 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
JPH11112494A (ja) 1997-10-03 1999-04-23 Mitsubishi Electric Corp クライアント・サーバシステム
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6321334B1 (en) * 1998-07-15 2001-11-20 Microsoft Corporation Administering permissions associated with a security zone in a computer system security model
US7017188B1 (en) * 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US7613930B2 (en) 2001-01-19 2009-11-03 Trustware International Limited Method for protecting computer programs and data from hostile code
US7028305B2 (en) 2001-05-16 2006-04-11 Softricity, Inc. Operating system abstraction and protection layer
US20020188649A1 (en) * 2001-06-12 2002-12-12 Ron Karim Mechanism for safely executing an untrusted program
CN1591405A (zh) * 2001-11-09 2005-03-09 无锡永中科技有限公司 版本兼容的数据处理系统
US7031473B2 (en) * 2001-11-13 2006-04-18 Microsoft Corporation Network architecture for secure communications between two console-based gaming systems
US7392376B2 (en) * 2002-12-30 2008-06-24 International Business Machines Corporation Security module
US7512977B2 (en) 2003-06-11 2009-03-31 Symantec Corporation Intrustion protection system utilizing layers
US7594111B2 (en) * 2002-12-19 2009-09-22 Massachusetts Institute Of Technology Secure execution of a computer program
US7603704B2 (en) * 2002-12-19 2009-10-13 Massachusetts Institute Of Technology Secure execution of a computer program using a code cache
US7266688B2 (en) * 2003-01-14 2007-09-04 Sun Microsystems, Inc. Methods for improved security of software applications
US7337330B2 (en) * 2003-03-10 2008-02-26 Cyberview Technology, Inc. Universal game download system for legacy gaming machines
CA2464514A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Secured networks in a gaming system environment
JP2004328359A (ja) 2003-04-24 2004-11-18 Matsushita Electric Ind Co Ltd パケット処理装置
JP2004348397A (ja) 2003-05-22 2004-12-09 Ricoh Co Ltd アプリケーションソフトウェアとサービス部とのインターフェース方法
WO2005043360A1 (en) * 2003-10-21 2005-05-12 Green Border Technologies Systems and methods for secure client applications
US20050111819A1 (en) * 2003-11-26 2005-05-26 Cormack Christopher J. System and method for allowing time-shifted access to multiple programs at the same time
US20060064759A1 (en) * 2004-09-22 2006-03-23 Wildlife Acoustics, Inc. Method and apparatus for controlling access to downloadable content
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
KR20060081337A (ko) * 2005-01-07 2006-07-12 엘지전자 주식회사 비밀키를 이용한 암호화 및 복호화 방법
US7647589B1 (en) * 2005-02-07 2010-01-12 Parallels Software International, Inc. Methods and systems for safe execution of guest code in virtual machine context
US7591014B2 (en) 2005-03-04 2009-09-15 Microsoft Corporation Program authentication on environment
JP4647392B2 (ja) 2005-05-23 2011-03-09 京セラ株式会社 デバイス制御装置、デバイス制御方法およびプログラム
US7587724B2 (en) * 2005-07-13 2009-09-08 Symantec Corporation Kernel validation layer
US20070113291A1 (en) * 2005-11-17 2007-05-17 Juin-Jia Dai Method for administrating the function access
US7441113B2 (en) * 2006-07-10 2008-10-21 Devicevm, Inc. Method and apparatus for virtualization of appliances
US8006282B2 (en) * 2006-08-29 2011-08-23 Cisco Technology, Inc. Method and system for tracking a user in a network

Also Published As

Publication number Publication date
CN101553840A (zh) 2009-10-07
US8875271B2 (en) 2014-10-28
CA2669011A1 (en) 2008-06-19
EP2126831A1 (en) 2009-12-02
US20080140958A1 (en) 2008-06-12
WO2008073676A1 (en) 2008-06-19
CN101553840B (zh) 2016-07-27
CA2669011C (en) 2015-10-06
EP2126831A4 (en) 2011-11-16
JP2010528343A (ja) 2010-08-19

Similar Documents

Publication Publication Date Title
US7949998B2 (en) Programming framework for closed systems
JP5111516B2 (ja) クローズドシステムにおける無署名コンテンツの実行とアクセスのセキュアリング
US20080028400A1 (en) Virtualization comprising integration of host and guest user interfaces
EP2115609B1 (en) Transfer of content to closed systems
JP5047305B2 (ja) 閉鎖型コンピューティングシステムのサブスクリプションベースのサービス
EP2150904B1 (en) Programming framework for closed systems
US8330764B2 (en) Programming framework for closed systems
US8181039B2 (en) Disc drive counterfeiting countermeasure
US20080263679A1 (en) Storing information in closed computing devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120427

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120509

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120530

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120606

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120703

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120907

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121009

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees