JP2008521091A - 分離コンピューティング環境をプログラムするためのシステムおよび方法 - Google Patents
分離コンピューティング環境をプログラムするためのシステムおよび方法 Download PDFInfo
- Publication number
- JP2008521091A JP2008521091A JP2007541355A JP2007541355A JP2008521091A JP 2008521091 A JP2008521091 A JP 2008521091A JP 2007541355 A JP2007541355 A JP 2007541355A JP 2007541355 A JP2007541355 A JP 2007541355A JP 2008521091 A JP2008521091 A JP 2008521091A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- computing environment
- function
- isolated
- isolated computing
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
コンピュータが、分離コンピューティング環境と共に提供される(502)。この分離コンピューティング環境は、製造、配送、および販売において使用するための初期プログラミングを可能にするように適合されている。この分離コンピューティング環境はさらに、認証されたソースまたは認証されたコードが、エンドユーザの環境において使用するためのコードおよび構成データを用いて分離コンピューティング環境を更新できるようにする(504)。最終的な更新を促すために、承認されたコードがインストールされて(510)機能できるようになるまで、コンピュータを限定機能モード(506)に置くことができる。分離コンピューティング環境の拘束および安全な更新のための方法および装置が開示される。
Description
本発明は、分離コンピューティング環境をプログラムするためのシステムおよび方法に関する。
本出願は、2004年12月22日に出願された米国特許出願第11/022493号の一部継続出願であり、米国特許出願第11/022493号は、2004年12月8日に出願された米国特許出願第11/006837号の一部継続出願であり、米国特許出願第11/006837号は、2004年11月15日に出願された米国特許出願第10/989122号の一部継続出願である。
上述の出願において論じられているように、信頼できるコンピューティングベース(trusted computing base)と呼ばれる場合もある分離コンピューティング環境(isolated computing environment)を使用することは、コンピュータ、特に、使用するたびに支払うタイプの(pay−per−use)、すなわちその都度支払うタイプの(pay−as−you−go)ビジネスモデルにおいて使用されるコンピュータのオペレーションを管理することに関して多大な機能をもたらす。このようなコンピュータがエンドユーザの管理下にある場合には、分離コンピューティング環境は、目の前にいないサービスプロバイダその他の関係者の利害を表すことができる。分離コンピューティング環境は、目の前にいない関係者のために機能するため、製造および配送プロセスを通じてその目の前にいない関係者の利害を表すためにインテグリティを保持しなければならない。
分離コンピューティング環境を製造中にプログラムすると、分離コンピューティング環境の有用性が、特定のビジネスロジック/ポリシー、アプリケーション、プロセッサのベンダ、あるいはオペレーティングシステムのバージョンなどの特定のオペレーティング環境に不必要に限定されるおそれがある。逆に、分離コンピューティング環境をエンドユーザへの配送後にプログラムすると、エンドユーザが、サービスプロバイダの不利になるように分離コンピューティング環境のプログラミングに介入できるようになるおそれがある。
本開示の一態様によれば、分離コンピューティング環境の構成およびプログラミングのための方法および装置は、認証のために暗号化の方法を使用する。一実施形態においては、分離コンピューティング環境は、販売および配送に先立って安全な製造環境においてプログラムすることができる。別の実施形態においては、分離コンピューティング環境は、一般的なシステム環境および標準キーを用いて最初にプログラムされる。そして分離コンピューティング環境は、その一般的なシステム環境および標準キーを使用して、その後の中間のまたは最終のプログラミングおよびキーを認証することができる。このレベルのプログラミングは、安全な製造環境の中や外で行うことができる。さらに別の実施形態においては、分離コンピューティング環境のプログラミングは、安全な製造環境の域外に遅らせることができる。この実施形態においては、オペレーティングシステムは、プログラミングをマスストレージデバイスから定期的にダウンロードすることを担当することができる。そして分離コンピューティング環境は、ダウンロードされたデータの認証および承認を担当することができる。
製造の後半のステージにおいて又はエンドユーザなどの現場への配送後に認証および承認を行うために、分離コンピューティング環境は、セットアップキーまたは移送キーと初期プログラムとを用いて、特定の機能を提供するようにプログラムすることができる。そして分離コンピューティング環境は、後ほど配送サイクルにおいて、信頼できるソースによって、または認証されたデータを用いて更新することができる。最終的なプログラミングを遅らせることによって、分離コンピューティング環境の有用性および柔軟性を大幅に拡張することができる。最終的なプログラミングを強制する目的から、承認されたバージョンのコードが分離コンピューティング環境内にインストールされるまで、またはダウンロードの試みが認証に失敗した場合に、コンピュータの有用性を制限するためにコンピュータに拘束(sanction)を課すことができる。
コンピュータと分離コンピューティング環境とが、様々なオペレーティング環境およびインストール環境にわたり対話できるようにするアプリケーションプログラムインターフェースによって、分離コンピューティング環境の柔軟性をさらに高めることができる。
以降の文章は、多くの異なる実施形態の詳細な説明を記載しているが、この説明の法的範囲は、本開示に添付されている特許請求の範囲の文言によって規定されるという点を理解されたい。この詳細な説明は、例示的なものにすぎないと解釈されるべきであり、可能な実施形態をすべて説明しているわけではない。というのも、可能な実施形態をすべて説明することは、不可能ではないにしても、非現実的であるためである。現在の技術または本願の出願日以降に開発される技術を使用して、多くの代替実施形態を実施することができ、それらも請求項の範囲に属するだろう。
また用語については、「本明細書で使用する際、「 」という用語は、...を意味するものと定義する。」という文や類似の文を使用して本願内で明確に定義されていない限り、その用語の意味を、明示的にも暗示的にもその率直な意味すなわち通常の意味を越えて限定する意図はまったくなく、またそのような用語は、本願のいずれかのセクションにおいて行われているいずれかの記述(特許請求の範囲の言葉は除く。)に基づく範囲に限定されるものと解釈すべきではないという点を理解されたい。本願に添付されている特許請求の範囲に記載されているいずれかの用語が、ある単一の意味と一致した方法で本願内で言及されている限りにおいては、それは、もっぱら読者を混乱させないように明確にする目的で行われているものであり、そのような特許請求の範囲の用語を、暗示などによって、その単一の意味に限定することを意図するものではない。最後に、特許請求の範囲の発明特定事項が、いかなる構造についても記載せずに「手段(means)」という言葉と機能とを記載することによって定義されているのでない限り、いかなる発明特定事項の範囲も、35U.S.C.セクション112第6パラグラフの適用に基づいて解釈されることを意図するものではない。
本発明の機能の多く、および本発明の原理の多くは、ソフトウェアプログラムやソフトウェア命令、および特定用途向けICなどのICを用いて或いはそれらの中に実装するのが最も好ましい。当業者なら、例えば利用可能な時間、現在の技術、および経済面での考慮事項によって動機付けられる可能性のある多大な労力および多くの設計上の選択肢にもかかわらず、本明細書で開示されるコンセプトおよび原理によって導かれれば、そのようなソフトウェア命令およびソフトウェアプログラムならびにICを最小限の実験で容易に作製できるであろうと予想される。したがって、簡潔にするために、また本発明による原理およびコンセプトを分かりにくくするあらゆる危険性を最小限に抑えるために、そのようなソフトウェアおよびICについてさらに論じる場合には、好ましい実施形態の原理およびコンセプトに関する本質的な要素に限定することとする。
分離コンピューティング環境を使用すると、インターネットサービスプロバイダ、リース業者(leasing agency)、銀行等のサービスプロバイダは、コンピュータが自分の物理的なコントロールの範囲外にある場合でさえ、そのコンピュータに特定のポリシーを強制することができる。効果的であるためには、分離コンピューティング環境は、その分離コンピューティング環境が、信頼できる環境においてプログラムされていること、あるいは安全な環境へとつながる信頼の連鎖を維持していることを意味する一定レベルの信頼を必要とすることができる。
前述したことだが、早い段階でプログラムを行うと、必要とされるセキュリティー環境をより容易に確立して維持することができるが、分離コンピューティング環境が限られた一式のコンピューティングプラットフォームオプションに限定されるおそれがある。早い段階でのセットアップと遅い段階でのプログラミングや構成とを組み合わせることは、分離コンピューティング環境の柔軟性を助長する一方で、そのセキュリティを確かなものにする上で役に立つ。
図1は、コンピュータ110という形態のコンピューティングデバイスを示している。コンピュータ110のコンポーネントは、処理装置120と、システムメモリ130と、システムメモリを含む様々なシステムコンポーネントを処理装置120に結合するシステムバス121とを備えることができるが、これらには限定されない。システムバス121は、メモリバスまたはメモリコントローラと、ペリフェラルバスと、様々なバスアーキテクチャのいずれかを使用するローカルバスとを含む複数のタイプのバス構造のいずれにすることもできる。例えばこのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびメザニンバスとしても知られているPCI(Peripheral Component Interconnect)バスを含むが、これらには限定されない。
コンピュータ110は通常、様々なコンピュータ可読メディア(computer readable media)を備える。コンピュータ可読メディアは、コンピュータ110によってアクセスできる利用可能な任意のメディアとすることができ、揮発性メディアおよび不揮発性メディア、ならびにリムーバブルメディアおよびノンリムーバブルメディアの双方を含む。例えばコンピュータ可読メディアは、コンピュータストレージメディアおよび通信メディアを含むことができるが、これらには限定されない。コンピュータストレージメディアは、コンピュータ可読命令、データ構造、プログラムモジュールその他のデータなどの情報を記憶するための任意の方法または技術により実装されている揮発性メディアおよび不揮発性メディア、ならびにリムーバブルメディアおよびノンリムーバブルメディアを含む。コンピュータストレージメディアは、RAM、ROM、EEPROM、フラッシュメモリ、またはその他のメモリ技術、CD−ROM、DVD(digital versatile disk)、またはその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、またはその他の磁気ストレージデバイス、あるいは所望の情報を保存するために使用可能でコンピュータ110によってアクセス可能なその他の任意のメディアを含むが、これらには限定されない。通信メディアは通常、搬送波やその他の伝送メカニズムなどの変調されたデータ信号内に、コンピュータ可読命令、データ構造、プログラムモジュール、あるいはその他のデータを具体化し、任意の情報伝達メディアを含む。「変調されたデータ信号」という用語は、情報をその信号内にコード化するような方法で、その特性のうちの1つまたは複数が設定または変更されている信号を意味する。例えば通信メディアは、有線ネットワークや直接有線接続などの有線メディアと、音波メディア、無線周波数メディア、赤外線メディア、その他の無線メディアなどの無線メディアとを含むが、これらには限定されない。また上記のいずれの組合せも、コンピュータ可読メディアの範囲内に含まれるものである。
システムメモリ130は、コンピュータストレージメディアを、ROM(read only memory)131およびRAM(random access memory)132などの揮発性メモリおよび/または不揮発性メモリの形態で備える。BIOS(basic input/output system)133は、起動中等にコンピュータ110内の要素同士の間における情報伝達を補助する基本ルーチンを含み、通常はROM131内に格納されている。RAM132は通常、処理装置120がすぐにアクセスできるか、および/または処理装置120によってその時点で操作されているデータモジュールおよび/またはプログラムモジュールを含む。図1は、例としてオペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示しているが、これらには限定されない。
またコンピュータ110は、その他のリムーバブル/ノンリムーバブル、揮発性/不揮発性コンピュータストレージメディアを備えることもできる。図1は、例示のみを目的として、ノンリムーバブルな不揮発性の磁気メディアとの間で読み取りや書き込みを行うハードディスクドライブ141と、リムーバブルな不揮発性の磁気ディスク152との間で読み取りや書き込みを行う磁気ディスクドライブ151と、CD−ROMやその他の光メディアなどのリムーバブルな不揮発性の光ディスク156との間で読み取りや書き込みを行う光ディスクドライブ155とを示している。例示的な動作環境において使用できるその他のリムーバブル/ノンリムーバブル、揮発性/不揮発性コンピュータストレージメディアとしては、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがあるが、これらには限定されない。ハードディスクドライブ141は通常、インターフェース140などのノンリムーバブルなメモリインターフェースを介してシステムバス121に接続されており、磁気ディスクドライブ151および光ディスクドライブ155は通常、インターフェース150などのリムーバブルなメモリインターフェースによってシステムバス121に接続されている。
図1に示されている上述のドライブおよびそれらに関連するコンピュータストレージメディアは、コンピュータ110用のコンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの記憶を提供する。例えば図1において、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137と同一とするか、または異なっていてもよいという点に留意されたい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、およびプログラムデータ147が最低限異なるコピーであることを示すために、異なる番号を割り当てている。ユーザは、キーボード162や、通常はマウス、トラックボール、あるいはタッチパッドと呼ばれるポインティングデバイス161などの入力デバイスを介してコンピュータ20にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)としては、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信用アンテナ、スキャナなどを含むことができる。これらおよびその他の入力デバイスは、システムバスに結合されているユーザ入力インターフェース160を介して処理装置120に接続される場合が多いが、パラレルポート、ゲームポート、USB(universal serial bus)などのその他のインターフェース構造およびバス構造によって接続することもできる。またモニタ191やその他のタイプのディスプレイデバイスも、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、スピーカ197やプリンタ196などのその他の周辺出力デバイスを含むこともでき、これらは、周辺出力インターフェース195を介して接続することができる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境内で機能することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、あるいはその他の一般的なネットワークノードとすることができ、図1にはメモリストレージデバイス181しか示されていないが、通常はコンピュータ110に関連する上述の要素の多くまたはすべてを備える。図1に示されている論理接続は、LAN(local area network)171およびWAN(wide area network)173を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいてよく見受けられる。
LANネットワーキング環境において使用する場合には、コンピュータ110は、ネットワークインターフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境において使用する場合には、コンピュータ110は通常、モデム172や、インターネットなどのWAN173上で通信を確立するためのその他の手段を備える。モデム172は、内蔵型または外付け型とすることができ、ユーザ入力インターフェース160やその他の適切なメカニズムを介してシステムバス121に接続することができる。ネットワーク化された環境においては、コンピュータ110に関連して示されているプログラムモジュール、またはその一部をリモートメモリストレージデバイス内に格納することができる。図1は、例としてリモートアプリケーションプログラム185をメモリデバイス181上に常駐するものとして示しているが、この形態には限定されない。
通信接続170、172によって、このデバイスは他のデバイスと通信することができる。通信接続170、172は、通信メディアの一例である。通信メディアは通常、搬送波やその他の伝送メカニズムなどの変調されたデータ信号内にコンピュータ可読命令、データ構造、プログラムモジュール、あるいはその他のデータを具体化し、任意の情報伝達メディアを含む。「変調されたデータ信号」とは、情報をその信号内にコード化するような方法で、その特性のうちの1つまたは複数を設定または変更した信号とすることができる。例えば通信メディアは、有線ネットワークや直接有線接続などの有線メディアと、音波メディア、RFメディア、赤外線メディア、その他の無線メディアなどの無線メディアとを含むが、これらには限定されない。コンピュータ可読メディアは、ストレージメディアおよび通信メディアの双方を含む。
分離コンピューティング環境125(図2に関連してさらに詳しく論じる。)は、プログラムおよびデータを保存し、実行させることができる。分離コンピューティング環境125は、コンピュータ110のユーザと、コンピュータ110に利害を有するサービスプロバイダとの間における合意の条件を実行するように展開および構成することができる。
分離コンピューティング環境125は、複数の方法でインスタンス化することができる。1つまたは複数の別個のコンポーネントによって実装される場合には、分離コンピューティング環境125は、コンピュータのマザーボード(図示せず)上に配置することができる。マザーボードは、所与のアプリケーションに適した、回路を相互接続してコンポーネントを取り付ける基盤となる任意の技術(any circuit interconnect and component mounting base technology suitable for a given application)とすることができ、グラスファイバ素材から、成形エポキシ樹脂、マイラー、セラミックなどまで、多岐にわたることができる。分離コンピューティング環境125は、マザーボード上またはマザーボード内に配置される際には、エポキシでコーティングするか、あるいは相互接続層または相互接続コンポーネントの下に埋め込むことができる。分離コンピューティング環境125をコーティングすることや埋め込むことは、分離コンピューティング環境125そのもの、分離コンピューティング環境125に関連付けられている電力接続およびアース接続、あるいは分離コンピューティング環境125へのデータ接続およびアドレス接続を取り外すことや改ざんすることをより困難にする役割を果たすことができる。分離コンピューティング環境125を取り外すと、あるいはその蓋を外すと、マザーボードおよび/または周辺のコンポーネントに永久的な損傷が生じて、コンピュータ110が機能できなくなるようにすることが理想的である。
分離コンピューティング環境125の別のインスタンス化(instantiation)は、図1に示されているようなものとすることができ、ここでは、分離コンピューティング環境125は、処理装置120内に組み込まれている。処理装置内にそのように配置されていることは、処理装置のレジスタによりよくアクセスできること、およびデータシーケンスをモニタできること、ならびに物理的な攻撃に対する抵抗力が高まることという利点を提供することができる。
図2を参照して、簡略化された典型的な分離コンピューティング環境について論じ、説明する。この分離コンピューティング環境は、上で紹介した分離コンピューティング環境125とすることもでき、あるいはその分離コンピューティング環境125に類似したものとすることもできる。分離コンピューティング環境125は、メモリ202、論理回路204、およびクロックまたはタイマ206を備えることができ、例えばタイマ206は、実際の時間の間隔をカウントすることによってクロックを実装するために使用することができる。メモリ202は、揮発性メモリおよび不揮発性メモリの双方を含むことができる。
分離コンピューティング環境125は、電子署名確認回路(digital signature verification circuit)208をさらに備えることができる。外部のエンティティの一方向の確認、例えばサーバ(図示せず)の確認が必要とされる場合には、乱数発生器210を電子署名確認回路208の一部とすることができる。電子署名技術は、よく知られており、ハッシュ法、署名の確認、対称暗号化アルゴリズムおよび非対称暗号化アルゴリズム、ならびにそれらのそれぞれのキーについては、本明細書では詳細に論じない。
分離コンピューティング環境125のブロック同士は、バス212によって結合することができる。バス212は、外部のアクセスのために使用されるシステム/処理装置バス214とは別個のものとすることができる。別個のバスは、バス212によって渡されるデータへのアクセスを制限することによって、セキュリティを高めることができる。バス212は、メモリ202内に保存されている暗号化キー216へのパワー面での攻撃(power attack)をより困難にするために、バランスのとれたデータライン(balanced data line)など、セキュリティ上の予防措置を組み込むことができる。
メモリ202は、不揮発性メモリを含むことができ、この不揮発性メモリは、暗号化キー216を保存することに加えて、少なくとも1つの確認プログラム(verification program)218および少なくとも1つの強制プログラム(enforcement program)220を保存することができる。これらのプログラムについて、以降でさらに詳しく論じる。例えばハッシュコード(hash code)、および/または既知のBIOSコードに関連付けられているその他の電子署名情報、あるいはアプリケーションプログラムなど、その他のデータ222をメモリ202内に保存することができる。メモリ202内に保存することができるデータ222のその他の例は、コンピュータ110の現在の状態に関する準拠データ(compliance data)や、確認プログラム218または強制プログラム220に対するダウンロードされた更新の確認のための証明書情報とすることができる。メモリ202内の不揮発性メモリはまた、オペレーティングシステム144から分離した、信頼できる、安全なブートプロセスを可能にすることもできる。
確認プログラム218および強制プログラム220は、分離コンピューティング環境125内に格納されるものとして図示されているが、分離コンピューティング環境125内に格納されたプログラムの電子署名またはハッシュと共に外部に、例えばメモリ202のデータセクション216内に格納することもできる。あるいは、分離コンピューティング環境125の外部に電子署名を保存し、場合によってはメタデータとしてこれらのプログラムに添付することができる。アプリケーションプログラムをモニタまたは評価する場合、分離コンピューティング環境125は、アプリケーションプログラムの実行前または実行中にそのプログラムのハッシュまたは電子署名を確認することができる。メモリ202内に格納されているプログラム218、220およびデータは、その都度支払うタイプの、使用するたびに支払うタイプのビジネスモデルの成功に関連するセキュリティの一部であるため、それらのデータを不正なアクセスおよび改ざんから保護することが重要かもしれない。メモリ202への不正なアクセスは、論理回路204、または電子署名確認回路208、あるいはその両者の組合せを使用して制限することができる。メモリへのアクセスは、知られているプログラムコード、すなわち分離コンピューティング環境125によって信頼されているプログラムコードを実行するプロセスに限定することができる。このプログラムコードは、確認プログラム218または強制プログラム220とすることができる。しかし、その他のプログラムにメモリ202へのアクセスを認めることもできる。例えば、利用に関するクレジットや残高の管理をサポートするアプリケーションは、分離コンピューティング環境125のメモリを使用することができる。修理やメンテナンスが必要とされる場合には、修理を行うために正当な証明書を有するネットワーク接続されたデバイス上でサポートされるサービスプロセスにメモリ202へのアクセスを認めることができる。
分離コンピューティング環境125は、複数の機能を有することができる。分離コンピューティング環境125の機能の1つは、それ自身を不正な更新および改ざんから保護することである。分離コンピューティング環境125内に格納されるプログラムおよびデータは、製造時に注入(inject)することができ、あるいは分離コンピューティング環境125自身によって認証された署名で正しくサインされている場合にはダウンロードすることもできる。別の機能としては、コンピュータ110の状態をモニタおよび/または評価して、コンピュータ110の状態に不正侵入やその他の不正な変更が進行中かどうか、または発生したかどうかを判断することができる。モニタリングおよび評価の別の態様は、リソースを提供すること、およびイベントディスパッチャー(event dispatcher)やバランスマネージャー(balance manager)などの安全な機能をホストすることに関連した機能に関するコンピュータ110の状態の正当な変更をサポートすることとすることができる。第3の機能は、現在のBIOSコードを有効にすること、ならびにBIOSコードに対する更新および拡張を有効にすることとすることができる。分離コンピューティング環境125の別の機能としては、信頼できるクロックまたはタイマを、双方ともプログラムおよび有効期限を測定するための時間の源として提供することができる。このクロックまたはタイマは、分離コンピューティング環境125が、コンピュータ110へのアクセスを定期的に認められ、CPUサイクルやバスサイクルに対して「飢えた」状態にならないようにすることもできる。別の機能としては、準拠していない状態がコンピュータ110内で判定された場合に拘束を実行することができる。
分離コンピューティング環境125のさらに別の機能は、コンピュータの使用を監視し、プロバイダまたは法定所有権者によって出されたビジネスの条件およびポリシーに準拠しているかを確かめる独立したスーパーバイザの役割を果たすことである。その都度支払うタイプのコンピュータおよびサブスクリプションコンピュータ(subscription computer)が、そのような技術の例である。
不正な更新および改ざんから守るために、メモリ202を保護することができる。これを実現するために、例えばコンピュータ110の安全なオペレーティングモードのコントロール下において電子署名によって認証された更新ルーチンなど、特定のプログラムだけがメモリ202にアクセスできるようにすることができる。オペレーティングシステムやカーネルなどの別の実行環境によって実行されるいかなるプログラムもメモリ202にアクセスできないようにすることができる。カーネルは通常、コンピュータ110がブートしているときに作動する。例えばIntel(商標)のx86プロセッサは、いくつかのモード、または実行のリング(rings of execution)で機能することができる。リング0〜2は、カーネルによって占められ、リング3は、「ユーザモード」プロセスによって占められる。第3のモードであるSMM(system management mode)は、BIOSによって占められる。安全なメモリ202へアクセスできるプログラムは、カーネルの影響が及ぶ範囲外であるが、BIOSを保護する必要があるため、SMMで実行することができる。あるいは、分離コンピューティング環境125は、専用のデバイスを使用してCPUから独立して実装することもできる。
分離コンピューティング環境125のセキュリティのために、分離コンピューティング環境125以外のデバイスは、単に、分離コンピューティング環境のメモリ202の専用の物理メモリにアドレスできないようにすることができる。これは、プログラム218、220、キー216、および状態/オペレーショナルデータ(state/operational data)222を含む分離コンピューティング環境のメモリ202のオペレーションに関連するデータのいずれに対しても、分離コンピューティング環境しかアクセスおよび変更を行えないようにするための1つの方法にすぎない。外部から生じる、すなわちオペレーティングシステム144を通じて生じるメモリ202への要求されたすべての変更を確認するために、電子署名確認回路208を使用することができる。内部に保存されているキーを使用して電子署名を確認することによって、信頼できないソース、すなわちオペレーティングシステム144によって受信されたデータに対して信頼を確立することができる。
図3は、分離コンピューティング環境125の論理図(logical view)を示している。暗号化サービス302は、内部の層やサービスを改ざんや不正なアクセスから保護するように機能する。暗号化キー304は、図2のメモリ202などの安全なメモリ内に保存することができる。構成テーブル306およびコアサービス308は、分離コンピューティング環境125の特徴および機能をプログラムするために使用することができる。API(application program interface)310は、分離コンピューティング環境125との双方向のデータ転送をサポートするために使用することができる。アプリケーションプログラムインターフェース310を使用することによって、有効な通信のコマンドセットを、特定のフォーマット、スキーマ、および/またはセキュリティーポリシーに限定することができる。このようにして、所定の一式の特徴に適合しないデータ伝送は、さらなる処理を行わずに拒否することができる。例えば、ICEのいくつかの側面を更新するペイロードを伴うメッセージは、信頼できる当局によって電子署名されることを必要とする。
更新サービス312は、受信されたメッセージの認証に応答して、キー304、構成テーブル306、およびコアサービス308を変更するために使用することができる。拘束サービス314は、図2の強制プログラム220と同じものか又は類似したものであり、最初の製造後に移送されている間に、または適合しない状況が通常のオペレーション中に識別された後に、コンピュータ110の機能を制限するためにトリガー(trigger)することができる。拘束サービスは、コンピュータの機能を妨げるために起動メカニズムを使用することができる。起動メカニズムは、バスドライバやクロック回路内に組み込むことができ、あるいはマイクロコードなど、マイクロプロセッサ(図示せず)のシリコンのコンポーネントとすることもできる。あるいは、起動メカニズムはコンピュータの定期的なリセットとすることができる。一実施形態において、リセットから次のリセットまでの間隔は、ランダムに変わるが、一般には、診断機能およびメンテナンス機能を実行できるだけの十分な長さとすることができる。起動メカニズムを無効にすることが拘束を無効にするために利用される可能性があるため、起動メカニズムおよびその物理的な体裁は、改ざんできないような作りにすることができる。
ホストされているアプリケーション316やその他の機能プログラムを分離コンピューティング環境125に関連付けることができる。ホストされているアプリケーション316は、分離コンピューティング環境125内に最初からインストールすることもでき、あるいは後で、例えば製造の後半に小売センターで、または顧客への配送後に、インスタンス化することもできる。ホストされているアプリケーション316は、使用するたびに支払うタイプのコンピュータを測定することに関連付けることもでき、評価される機能の監視役として機能することもでき、あるいはセキュリティの評価が望ましい任意のアプリケーション、機能、またはリソースとすることもできる。複数のホストされているアプリケーション316が、単一の分離コンピューティング環境125によってサポートされることができる(分離コンピューティング環境125をICEと呼ぶ場合には、ホストされているアプリケーションをアイシクル(icicle)と呼ぶことができる。)。
コアサービス308とホストされているアプリケーション316との間における関係は、アプリケーションに応じて、また時と共に変化することができる。例えば一実施形態において、コアサービス308が、分離コンピューティング環境125の更新をコントロールすることができる、すなわち、更新の管理者としての役割を果たすことができる、といった具合である。別の実施形態においては、ホストされているアプリケーション316が、管理者としての役割を果たすことができる。さらに別の実施形態においては、コアサービス308は、トークンを提示されると、ホストされているアプリケーション316に管理者としての役割を委譲または委任することができる。複雑ではあるが別の実施形態では、コアサービス308とホストされているアプリケーション316との間で、管理者としての役割を共有することができる。
更新サービス312は、アプリケーションプログラムインターフェース310を介して受信された確認されたメッセージに応答して、コアサービス308、構成テーブル306、キー304、および/またはホストされているアプリケーション316を更新するか、または完全に再プログラムするために使用することができる。コアサービス308を更新する場合には、1つまたは複数のオペレーティングルーチンを更新することができる。これらのオペレーティングルーチンは、コンピュータ110に対して下される評価、およびエンドユーザのオペレーション中に課される拘束に影響を与えることができる。構成テーブル306に対する更新は、支払いスケジュール、評価基準、デフォルトの設定などを含むことができる。キーに対して行われる更新は、その後のメッセージの確認を可能にするために古いキーを取り替えることや、新たなキーをインストールすることとすることができる。したがって、有効にされたメッセージ内で受信されたデータは、コアサービス308、構成テーブル306の設定、ホストされているアプリケーション316、あるいはキー304によって使用されるルーチンのいずれかまたはすべてを含むことができる。以前のバージョンの更新、特に障害が起きた可能性のある更新を再びロードすることを防止するために、有効にされたメッセージの一部としてシーケンス番号やタイムスタンプを使用することができる。
図4は、コンピュータ110などのコンピュータにおける代表的なライフサイクルステージを示している。分離コンピューティング環境125など、コンピュータの安全なエリアを保護する際に使用することができる代表的な中間暗号化キー(interim cryptographic key)も示されている。チップ検査の段階のように製造プロセスの初期に、初期キー402をコンピュータ125またはそのコンポーネント内に注入することができる。注入は通常、メモリ回路202に直接書き込むことによって行われ、これは、そのような直接の書き込みプロセスからメモリ202を保護するために十分な保護回路および物理的な硬化材によってメモリ回路202が覆われる前に行われる場合が多い。
製造404の後、初期キー402は、セットアップキー406によって置き換えることができる。セットアップキー406は、製造業者やそのサブプロセスとプログラミング段階408との間で共有することができる。プログラミング中に、オペレーティングシステムおよびアプリケーションをインストールすることができる。コンピュータ110の最終目的地が分かっている場合には、ローカライゼーションを行うことができる。いくつかの信頼できる環境においては、分離コンピューティング環境125を製造中に開いたままにすることができ、これによって、より標準的な分離コンピューティング環境をインストールすることができる。暗号化のロックによって課される制約を受けることなく、特定のオペレーティングシステムおよび機能環境に拘束されるのを遅らせることができる。一実施形態において、オペレーティングシステムのインストールおよびセットアップは、分離コンピューティング環境125のセットアップおよびプログラミングに結び付けることができる。別の実施形態においては、すべての分離コンピューティング環境に標準キーすなわちグループキーを与えることができ、これによって、そのグループ内のすべてのマシンを単一のキーでプログラムすることができる。分離コンピューティング環境125内にプログラムされた一意の識別子を使用して、それぞれの別個の分離コンピューティング環境125ごとに暗号化のキーおよび環境を区別し、独自のものにすることができる。プログラミング408の最中には、中間暗号化キー410をインストールすることもできる。中間キー410は、プログラミングオペレーションとセットアップ/構成オペレーション412との間で共有することができる。セットアップ/構成412は、小売配送センター(retail delivery center)とすることもでき、あるいはサービスプロバイダ中継エリア(service provider staging area)とすることもできる。セットアップおよび構成の最中には、個々のユーザアカウントをプログラムし、Eメールサービスを確立し、インターネット接続をプログラムすることができ、使用するたびに支払うタイプのコンピュータの場合には、利用プランおよび初期オペレーティングクレジット(operating credit)をインストールすることができる。
セットアップ/構成プロセスの最中には、オペレーションキー414、および場合によってはメンテナンスキー418をインストールすることができる。1つまたは複数のオペレーションキー414をエンドユーザと共有することはできないが、(1つまたは複数の)オペレーションキーは、コンピュータ110内に存在することができ、より具体的には、分離コンピューティング環境125内に格納することができる。いくつかのセットの対称キーを対称キー暗号化環境においてインストールすることができ、あるいは非対称暗号化が使用される場合には、ルート証明書および公開キーをインストールすることもできる。コンピュータは、この時点で、エンドユーザによる有益なオペレーション416に対する準備を整えることができる。オペレーション416の過程で、メンテナンスが必要となる可能性もある。特別なアクセスが必要とされる場合には、オペレーションキー414を迂回することができ、メンテナンスキー418を使用して、コンピュータ110を特別なメンテナンスモード420に置くことができる。メンテナンスプロセス420が完了すると、コンピュータ110をオペレーションモード416に戻すことができる。
オペレーションキー414は、例えばその都度支払うタイプのアカウントに値を追加するために、通常のオペレーションにおいて使用することができる。その他の特別な目的のキーを、任意の時点で補足的な使用のためにインストールすることができ、それらの補足的な使用としては、電子署名された更新が含まれるが、それには限定されない。製造および配送プロセスのそれぞれのステージでは、そのステージにおいて実行されたオペレーションを反映するために、あるいは次のステージのためにスケジュールされたアクティビティーを可能にするために、コアサービス308、構成テーブル306、およびキー304内のコードを更新することができる。このような順次処理において使用されるキー管理プロセスは、当業界において既知である。
コンピュータ110や、分離コンピューティング環境125などのコンピューティング環境のライフサイクル内のそれぞれのステップにおいては、インストールされたキー、および認証のために提示されたトークンを使用することによって、信頼を確立することができる。電子署名された更新など、許容可能なトークンを提示することによって、送信側当事者との信頼が確立される。製造プロセスの初期にのみ、コンピュータ110や分離コンピューティング環境125は、初期キー402の注入などの信頼できるアクションについて、サポートしている環境に依存しなければならない。その最初の信頼できる環境を過ぎると、コンピュータ110や分離コンピューティング環境125は、提示されるいかなるデータも推測的に信頼することを期待されないであろう。さらに、分離コンピューティング環境は、要求を認証し、その承認を有効にすることができる。例えば、様々な分離コンピューティング環境のコンポーネントの更新およびインストールに、様々なポリシーを適用することができる。例えばコアサービスおよび構成サービスの更新は、非常に厳格にコントロールされているグループに対して認めることができるが、その一方で、ホストされているアプリケーションの更新は、その作成者に認められる。
分離コンピューティング環境125の初期プログラミングおよび初期キー402の注入の後の任意の時点で、例えば製造404のステップにおいて、分離コンピューティング環境125は、コンピュータ110に拘束を課すことができる。この拘束は、コンピュータ110のプログラミングおよびセットアップにおける後半のステップを完了するのに適した最小限の一式の有用なルーチンやサービスに機能を限定することができ、この最小限の一式の有用なルーチンやサービスは、エンドユーザによる有益な使用を妨げるのに十分なものである。拘束は、持続的にリセットを行うこと、命令セットを減らすこと、オペレーションを遅くすること、スクリーンのエリアや色を最小限に抑えることなどを含むことができ、配送のステージの最中に変更することができる。これらの初期の拘束は、分離コンピューティング環境125が、エンドユーザのオペレーションに適したコアサービス308、構成テーブル306の設定、およびキー304を用いて更新されたときに解除することができる。コンピュータ110、より具体的には、分離コンピューティング環境125の構成を確認する一環として、コアサービス308の特徴を電子的に確認することができる。例えばこの確認には、電子的な署名やハッシュと、ルート証明書や既知のハッシュなど、以前に確立された信頼トークン(trust token)とを使用することができる。
インスタンス化、プログラミング、およびセットアップが、例えば適切なソフトウェアモジュールの連続したインストールによって一連のステップとして発生する場合には、「最後の」モジュールのインストールによって拘束を解除することができる。すなわち最後のモジュールは、基礎をなすモジュールが無事にインストールされたことを判断することができ、そして拘束を解除することができる。
あるいは、製造プロセスや顧客満足プロセスの後半まで拘束を課さないでおくこともできる。一実施形態においては、拘束サービス314は、複数回のリセット、カレンダー上の日付、あるいは構築後の経過日数など、トリガーとなるイベントをモニタし、分離コンピューティング環境125が更新されていない場合に拘束を発動する。
コンピュータの分離コンピューティング環境におけるプログラミングを遅らせる方法を示すフローチャートである図5について論じ、説明する。コンピュータ110などのコンピュータが、502において提供される。このコンピュータは、物理的に分離されたコンピューティング環境を備えることもでき、あるいは、分離コンピューティング環境をオペレーティングシステムによって実装することもできる。一般には、ハードウェアの分離コンピューティング環境の方が、改ざんおよび攻撃に対してより安全かもしれない。
エンドユーザへ配送する前に、好ましくは製造プロセスの初期に、504において分離コンピューティング環境を移送機能(transport functionality)と共にプログラムすることができる。移送機能は、顧客への配送に向けた現在のステップおよび/または次のステップを可能にする機能に限定することができ、その一方で、最終的なエンドユーザ向けの機能は含まないようにすることができる。移送機能のプログラミングは、キー406や410などの移送暗号化キー(transport cryptographic key)と、コアサービス308内の少なくともダウンロード機能とのプログラミングを含むことができる。このダウンロード機能によって、中間機能やエンドユーザ向けの機能を後でダウンロードすることができる。
製造および配送サイクルを完了させる上で役立つように、コンピュータのオペレーションを506において制限するか、あるいは減らすことができる。上述の内容および参照される優先権書類において論じられているように、コンピュータのオペレーションを制限するための多くのオプションが利用可能であり、それらのオプションには、処理装置120の機能を減らすことや、コンピュータ110を定期的にリセットすることを含むことができる。
着信するメッセージを508において受信し、認証することができる。これらのデータは、キー304、コアサービス308、あるいは構成テーブル306を更新するための構成データなど、更新された機能やその他のデータ設定に相当することができる。510において、認証されたデータを用いて分離コンピューティング環境を再プログラムすることができる。これらのデータは、電子署名など、自前のセキュリティートークン(security token)を含むこともでき、あるいは分離コンピューティング環境が、移送キーを使用して、データの信頼性を確認するホストとの間で、認証されたセッションを確立することもできる。オペレーションレベルのコードがインストールされ、確認されると、コンピュータ110の移送時の構成に関連付けられた拘束を512において解除することができ、ユーザによる有益な使用が可能になる。
上述のようなプロセスを経ることによって、分離コンピューティング環境125やその他の安全な環境を製造プロセスの初期に保護することができ、分離コンピューティング環境を改ざんする機会は、少なく抑えられる。それぞれのステップが適切なキーを提示することによって変更を行う権利を証明できる範囲で更新および変更を行うために、その他の中間の製造オペレーションおよび配送オペレーションを承認することができる。構成テーブル306およびコアサービス308に対する最終的な更新によって、より広い範囲のコンピュータ構成、オペレーティングシステム、およびローカライゼーションにわたって分離コンピューティング環境を使用できるようになる。また同時に、分離コンピューティング環境は、製造および配送をサポートするための十分な機能を保持し、その一方で、中間暗号化キーの使用を通じてそのインテグリティー/信頼性を維持する。
上述の文章は、本発明の多くの異なる実施形態の詳細な説明を記載しているが、本発明の範囲は、本願に添付されている特許請求の範囲の文言によって定義されるという点を理解されたい。この詳細な説明は、例示的なものにすぎないと解釈されるべきであり、本発明の可能な実施形態をすべて説明しているわけではない。というのも、可能な実施形態をすべて説明することは、不可能ではないにしても、非現実的と思われるためである。本発明を定義する特許請求の範囲内に収まるであろう現在の技術または本願の出願日以降に開発される技術を使用して、多くの代替実施形態を実施することができる。
したがって、本発明の趣旨および範囲から逸脱することなく、本明細書で説明および例示されている技術および構造において、多くの修正形態および変形形態が可能である。したがって、本明細書に記載されている方法および装置は、例示的なものにすぎず、本発明の範囲を限定するものではないという点を理解されたい。
Claims (20)
- コンピュータ内で使用するための分離コンピューティング環境であって、
コアサービスと、
メッセージを受信するためのインターフェースであって、前記メッセージは、更新コードおよび構成情報のうちの少なくとも1つを含むインターフェースと、
第1のキーにアクセスし、前記第1のキーを使用して前記メッセージの電子署名を確認するための暗号化サービスと、
前記第1のキーを使用した前記メッセージの確認後に、前記メッセージに応答して前記コアサービスを更新する更新サービスと
を含むコンピュータ実行可能命令を実行することを特徴とする分離コンピューティング環境。 - 構成テーブルをさらに含み、前記更新サービスは、前記構成情報を含む前記メッセージに応答して前記構成テーブルを更新することを特徴とする請求項1に記載の分離コンピューティング環境。
- 前記コンピュータの機能を制限するための拘束サービスをさらに含むことを特徴とする請求項1に記載の分離コンピューティング環境。
- 前記拘束サービスは、前記第1のキーによって確認された前記メッセージに応答した前記コアサービスの前記更新に先立って、前記コンピュータの前記機能を制限することを特徴とする請求項3に記載の分離コンピューティング環境。
- ホストされているアプリケーションをさらに含み、前記メッセージは、コアサービスの更新データおよびホストされているアプリケーションの更新データのうちの少なくとも1つを含むことを特徴とする請求項1に記載の分離コンピューティング環境。
- 前記コアサービスの特徴は電子的に確認されることを特徴とする請求項1に記載の分離コンピューティング環境。
- アプリケーションプログラムインターフェースをさらに含み、前記アプリケーションプログラムインターフェースは、前記コンピュータと前記分離コンピューティング環境との間の標準的なインターフェースを提供し、前記分離コンピューティング環境上でホストされているアプリケーションをインスタンス化すること、前記分離コンピューティング環境上でホストされているアプリケーションを設定すること、および前記分離コンピューティング環境を更新することのうちの1つを容易にすることを特徴とする請求項1に記載の分離コンピューティング環境。
- 分離コンピューティング環境を使用して機能するように適合されているコンピュータであって、
プロセッサと、
プロセッサ実行可能命令を保存するために前記プロセッサに結合されているメモリと、
アプリケーションプログラムインターフェースを介して送信された信号に応答する分離コンピューティング環境であって、
暗号化回路と、
処理回路と、
アプリケーションプログラムインターフェース、第1の実行コード、および第1の構成を保存するための安全なメモリと、
前記コンピュータの機能を妨げるための拘束回路であって、少なくとも、前記アプリケーションプログラムインターフェースを使用して前記第1の実行コードおよび前記第1の構成のうちの1つが置き換えられるまで前記コンピュータの機能を妨げる拘束回路とを含む分離コンピューティング環境と
を含むことを特徴とするコンピュータ。 - 双方向のデータ転送のためのポートをさらに含み、前記ポートを介して受信されるデータは、第2の実行コードおよび第2の構成のうちの少なくとも1つを含むことを特徴とする請求項8に記載のコンピュータ。
- 前記アプリケーションプログラムインターフェースは、前記第1の実行コードおよび前記第1の構成のうちの1つを更新するための第1のルーチンを含むことを特徴とする請求項8に記載のコンピュータ。
- 前記アプリケーションプログラムインターフェースは、前記分離コンピューティング環境への安全なデータ転送接続のためのサポートを含むことを特徴とする請求項8に記載のコンピュータ。
- 前記コンピュータと前記拘束回路との間に結合されているトリガー装置をさらに含み、それによって、前記拘束回路がトリガーされたときに前記コンピュータの前記機能が妨げられることを特徴とする請求項8に記載のコンピュータ。
- 前記トリガー装置は、改ざんできないようになっていることを特徴とする請求項12に記載のコンピュータ。
- コンピュータの前記機能を妨げることは、継続的にリセットを行うこと、および前記プロセッサの機能を減らすことのうちの1つを含むことを特徴とする請求項8に記載のコンピュータ。
- コンピュータ内の分離コンピューティング環境をプログラムする方法において、前記コンピュータはオペレーティングシステムを有する方法であって、
分離コンピューティング環境を含む前記コンピュータを提供するステップと、
一時的な機能を前記分離コンピューティング環境内にプログラムするステップと、
オペレーティングシステムから実行可能命令を受信するステップと、
前記実行可能命令を認証するステップと、
更新された機能を用いて、前記一時的な機能の上から前記分離コンピューティング環境を再プログラムするステップと
を含むことを特徴とする方法。 - 前記実行可能命令を認証する前記ステップが失敗した場合に前記コンピュータの機能を制限するステップをさらに含むことを特徴とする請求項15に記載の方法。
- 前記一時的な機能を前記分離コンピューティング環境内にプログラムするステップは、中間暗号化キーと、少なくともダウンロード機能とをプログラムするステップを含むことを特徴とする請求項15に記載の方法。
- 更新された機能を用いて前記分離コンピューティング環境を再プログラムするステップは、前記中間暗号化キーを使用して前記更新された機能を認証するステップを含むことを特徴とする請求項17に記載の方法。
- 更新された機能を用いて前記分離コンピューティング環境を再プログラムするステップは、前記中間暗号化キーを使用して前記更新された機能のソースを認証するステップを含むことを特徴とする請求項17に記載の方法。
- 前記コンピュータのオペレーションを制限するステップであって、プロセッサの機能を減らすこと、および前記コンピュータをリセットすることのうちの少なくとも1つを含むステップをさらに含むことを特徴とする請求項15に記載の方法。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/989,122 US7610631B2 (en) | 2004-11-15 | 2004-11-15 | Method and apparatus for provisioning software |
| US11/006,837 US20060165005A1 (en) | 2004-11-15 | 2004-12-08 | Business method for pay-as-you-go computer and dynamic differential pricing |
| US11/022,493 US8464348B2 (en) | 2004-11-15 | 2004-12-22 | Isolated computing environment anchored into CPU and motherboard |
| US11/109,438 US7562220B2 (en) | 2004-11-15 | 2005-04-19 | System and method for programming an isolated computing environment |
| PCT/US2005/040949 WO2006055424A2 (en) | 2004-11-15 | 2005-11-12 | System and method for programming an isolated computing environment |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008521091A true JP2008521091A (ja) | 2008-06-19 |
Family
ID=36407650
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007541355A Pending JP2008521091A (ja) | 2004-11-15 | 2005-11-12 | 分離コンピューティング環境をプログラムするためのシステムおよび方法 |
Country Status (8)
| Country | Link |
|---|---|
| US (1) | US7562220B2 (ja) |
| EP (1) | EP1815327A4 (ja) |
| JP (1) | JP2008521091A (ja) |
| KR (1) | KR20070084259A (ja) |
| BR (1) | BRPI0515720A (ja) |
| MX (1) | MX2007005659A (ja) |
| TW (1) | TW200630885A (ja) |
| WO (1) | WO2006055424A2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015508535A (ja) * | 2011-12-29 | 2015-03-19 | インテル・コーポレーション | 仮想販売時点管理 |
Families Citing this family (37)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7370212B2 (en) | 2003-02-25 | 2008-05-06 | Microsoft Corporation | Issuing a publisher use license off-line in a digital rights management (DRM) system |
| DE10318031A1 (de) * | 2003-04-19 | 2004-11-04 | Daimlerchrysler Ag | Verfahren zur Sicherstellung der Integrität und Authentizität von Flashware für Steuergeräte |
| US20060242406A1 (en) | 2005-04-22 | 2006-10-26 | Microsoft Corporation | Protected computing environment |
| US8347078B2 (en) | 2004-10-18 | 2013-01-01 | Microsoft Corporation | Device certificate individualization |
| US8464348B2 (en) | 2004-11-15 | 2013-06-11 | Microsoft Corporation | Isolated computing environment anchored into CPU and motherboard |
| US8336085B2 (en) | 2004-11-15 | 2012-12-18 | Microsoft Corporation | Tuning product policy using observed evidence of customer behavior |
| US8176564B2 (en) | 2004-11-15 | 2012-05-08 | Microsoft Corporation | Special PC mode entered upon detection of undesired state |
| US8438645B2 (en) | 2005-04-27 | 2013-05-07 | Microsoft Corporation | Secure clock with grace periods |
| US8725646B2 (en) | 2005-04-15 | 2014-05-13 | Microsoft Corporation | Output protection levels |
| US9436804B2 (en) * | 2005-04-22 | 2016-09-06 | Microsoft Technology Licensing, Llc | Establishing a unique session key using a hardware functionality scan |
| US9363481B2 (en) | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
| US20060265758A1 (en) | 2005-05-20 | 2006-11-23 | Microsoft Corporation | Extensible media rights |
| US8353046B2 (en) | 2005-06-08 | 2013-01-08 | Microsoft Corporation | System and method for delivery of a modular operating system |
| US7913295B2 (en) * | 2007-04-04 | 2011-03-22 | Microsoft Corporation | Method and apparatus to enable a securely provisioned computing environment |
| US9053323B2 (en) * | 2007-04-13 | 2015-06-09 | Hewlett-Packard Development Company, L.P. | Trusted component update system and method |
| US8762984B2 (en) * | 2007-05-31 | 2014-06-24 | Microsoft Corporation | Content distribution infrastructure |
| US8391913B2 (en) * | 2007-07-18 | 2013-03-05 | Intel Corporation | Software-defined radio support in sequestered partitions |
| US8464256B1 (en) | 2009-04-10 | 2013-06-11 | Open Invention Network, Llc | System and method for hierarchical interception with isolated environments |
| US8539488B1 (en) | 2009-04-10 | 2013-09-17 | Open Invention Network, Llc | System and method for application isolation with live migration |
| US11538078B1 (en) * | 2009-04-10 | 2022-12-27 | International Business Machines Corporation | System and method for usage billing of hosted applications |
| US8401941B1 (en) * | 2009-04-10 | 2013-03-19 | Open Invention Network Llc | System and method for usage billing of hosted applications |
| US10419504B1 (en) | 2009-04-10 | 2019-09-17 | Open Invention Network Llc | System and method for streaming application isolation |
| US9577893B1 (en) | 2009-04-10 | 2017-02-21 | Open Invention Network Llc | System and method for cached streaming application isolation |
| US8401940B1 (en) * | 2009-04-10 | 2013-03-19 | Open Invention Network Llc | System and method for usage billing of hosted applications |
| US9058599B1 (en) * | 2009-04-10 | 2015-06-16 | Open Invention Network, Llc | System and method for usage billing of hosted applications |
| US8555360B1 (en) | 2009-04-10 | 2013-10-08 | Open Invention Network Llc | System and method for on-line and off-line streaming application isolation |
| US8418236B1 (en) * | 2009-04-10 | 2013-04-09 | Open Invention Network Llc | System and method for streaming application isolation |
| US8627451B2 (en) * | 2009-08-21 | 2014-01-07 | Red Hat, Inc. | Systems and methods for providing an isolated execution environment for accessing untrusted content |
| US9684785B2 (en) * | 2009-12-17 | 2017-06-20 | Red Hat, Inc. | Providing multiple isolated execution environments for securely accessing untrusted content |
| US9027151B2 (en) | 2011-02-17 | 2015-05-05 | Red Hat, Inc. | Inhibiting denial-of-service attacks using group controls |
| US8948740B2 (en) * | 2012-06-08 | 2015-02-03 | Futurewei Technologies, Inc. | Mobile terminal for small cell configuration and maintenance |
| US10223294B2 (en) * | 2015-09-01 | 2019-03-05 | Nxp Usa, Inc. | Fast secure boot from embedded flash memory |
| US10079845B2 (en) * | 2016-03-31 | 2018-09-18 | Mcafee, Llc | IoT and PoS anti-malware strategy |
| US11165565B2 (en) | 2016-12-09 | 2021-11-02 | Microsoft Technology Licensing, Llc | Secure distribution private keys for use by untrusted code |
| JP6918576B2 (ja) * | 2017-05-24 | 2021-08-11 | キヤノン株式会社 | システム、情報処理装置、方法及びプログラム |
| US11797326B2 (en) * | 2018-01-22 | 2023-10-24 | Vmware, Inc. | External communication with packaged virtual machine applications without networking |
| CN114859691B (zh) * | 2022-03-25 | 2023-12-12 | 北京轩宇信息技术有限公司 | 一种安全隔离的无线单向授时系统及方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003510713A (ja) * | 1999-09-25 | 2003-03-18 | ヒューレット・パッカード・カンパニー | データの使用を制限するトラステッドコンピューティングプラットフォーム |
| JP2003140761A (ja) * | 2001-10-31 | 2003-05-16 | Nec Infrontia Corp | 情報端末及び決済端末 |
| JP2004164491A (ja) * | 2002-11-15 | 2004-06-10 | Matsushita Electric Ind Co Ltd | プログラム更新方法およびサーバ |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5768382A (en) * | 1995-11-22 | 1998-06-16 | Walker Asset Management Limited Partnership | Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols |
| US6073172A (en) * | 1997-07-14 | 2000-06-06 | Freegate Corporation | Initializing and reconfiguring a secure network interface |
| US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
| US6463534B1 (en) * | 1999-03-26 | 2002-10-08 | Motorola, Inc. | Secure wireless electronic-commerce system with wireless network domain |
| US6816900B1 (en) * | 2000-01-04 | 2004-11-09 | Microsoft Corporation | Updating trusted root certificates on a client computer |
| US7237121B2 (en) * | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
| US7484105B2 (en) * | 2001-08-16 | 2009-01-27 | Lenovo (Singapore) Ptd. Ltd. | Flash update using a trusted platform module |
| US6782349B2 (en) * | 2002-05-03 | 2004-08-24 | International Business Machines Corporation | Method and system for updating a root of trust measurement function in a personal computer |
-
2005
- 2005-04-19 US US11/109,438 patent/US7562220B2/en not_active Expired - Fee Related
- 2005-11-12 BR BRPI0515720-0A patent/BRPI0515720A/pt not_active IP Right Cessation
- 2005-11-12 MX MX2007005659A patent/MX2007005659A/es active IP Right Grant
- 2005-11-12 JP JP2007541355A patent/JP2008521091A/ja active Pending
- 2005-11-12 KR KR1020077011075A patent/KR20070084259A/ko not_active Ceased
- 2005-11-12 EP EP05820177A patent/EP1815327A4/en not_active Withdrawn
- 2005-11-12 WO PCT/US2005/040949 patent/WO2006055424A2/en not_active Ceased
- 2005-11-15 TW TW094140175A patent/TW200630885A/zh unknown
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003510713A (ja) * | 1999-09-25 | 2003-03-18 | ヒューレット・パッカード・カンパニー | データの使用を制限するトラステッドコンピューティングプラットフォーム |
| JP2003140761A (ja) * | 2001-10-31 | 2003-05-16 | Nec Infrontia Corp | 情報端末及び決済端末 |
| JP2004164491A (ja) * | 2002-11-15 | 2004-06-10 | Matsushita Electric Ind Co Ltd | プログラム更新方法およびサーバ |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015508535A (ja) * | 2011-12-29 | 2015-03-19 | インテル・コーポレーション | 仮想販売時点管理 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2006055424A2 (en) | 2006-05-26 |
| EP1815327A4 (en) | 2011-01-05 |
| WO2006055424A3 (en) | 2006-12-07 |
| BRPI0515720A (pt) | 2008-08-05 |
| EP1815327A2 (en) | 2007-08-08 |
| TW200630885A (en) | 2006-09-01 |
| KR20070084259A (ko) | 2007-08-24 |
| MX2007005659A (es) | 2007-07-25 |
| US7562220B2 (en) | 2009-07-14 |
| US20060112384A1 (en) | 2006-05-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2008521091A (ja) | 分離コンピューティング環境をプログラムするためのシステムおよび方法 | |
| CN100470467C (zh) | 对隔离计算环境编程的系统和方法 | |
| US9189605B2 (en) | Protected computing environment | |
| KR101979586B1 (ko) | 블록 체인 기반으로 관리되는 사물 인터넷 디바이스 및 그 시스템 및 방법 | |
| US8074287B2 (en) | Renewable and individualizable elements of a protected environment | |
| US8533811B2 (en) | Developer phone registration | |
| KR100851631B1 (ko) | 보안 모드 제어 메모리 | |
| CN100363855C (zh) | 密钥存储管理方法、装置及其系统 | |
| CN101501642B (zh) | 使用虚拟机启动的便携式大容量存储装置的方法 | |
| US20110061047A1 (en) | Licensing Software and Licensing Propagation Mechanism for Embedded Systems in Chassis and Stacked Environments | |
| JP4981051B2 (ja) | ライセンスに従う製品の挙動変更 | |
| JP2008521092A (ja) | Cpuおよびマザーボード内に固定された分離コンピューティング環境 | |
| CN101512536A (zh) | 认证游戏装置的系统和方法 | |
| JP2008005156A (ja) | 情報処理端末および状態通知方法 | |
| GB2403562A (en) | Secure processing environment in which executable code for services is only received by a secure loading process through the service request interface | |
| US8656190B2 (en) | One time settable tamper resistant software repository | |
| JP3863401B2 (ja) | ソフトウェア処理装置 | |
| KR101504647B1 (ko) | 가상 머신 활성화를 갖는 휴대용 대량 저장장치 | |
| Ruan | Boot with integrity, or don’t boot | |
| CN110247877B (zh) | 一种离线管理指令的管理方法和终端 | |
| WO2006115533A2 (en) | Protected computing environment | |
| US20080184026A1 (en) | Metered Personal Computer Lifecycle | |
| CN101189615B (zh) | 建立并维护受保护计算环境的方法 | |
| KR20120129871A (ko) | 첫번째 액세스에서 콘텐트 바인딩 | |
| KR102208141B1 (ko) | 디바이스 인증서 발급과 관리 방법 및 디바이스 인증서를 포함하는 디바이스 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081106 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110722 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111216 |