JP2008542857A - コンピュータ・システム上のコンポーネントの動作を制御するシステムおよび方法 - Google Patents

コンピュータ・システム上のコンポーネントの動作を制御するシステムおよび方法 Download PDF

Info

Publication number
JP2008542857A
JP2008542857A JP2008510055A JP2008510055A JP2008542857A JP 2008542857 A JP2008542857 A JP 2008542857A JP 2008510055 A JP2008510055 A JP 2008510055A JP 2008510055 A JP2008510055 A JP 2008510055A JP 2008542857 A JP2008542857 A JP 2008542857A
Authority
JP
Japan
Prior art keywords
feature information
component
control feature
elements
computer system
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
Application number
JP2008510055A
Other languages
English (en)
Inventor
ウワイス,モハメド,シャミル
Original Assignee
マクロビジョン・コーポレーション
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 マクロビジョン・コーポレーション filed Critical マクロビジョン・コーポレーション
Publication of JP2008542857A publication Critical patent/JP2008542857A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/6272Protecting 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 by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1011Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices
    • 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/2101Auditing as a secondary aspect
    • 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/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本発明は、コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのシステムおよび方法を提供する。該バインドするシステムは:プロセッサと、前記制御素性情報を生成するよう前記プロセッサを制御する有効化モジュールと、前記制御素性情報を記憶する記憶とを有する。前記有効化モジュールは、前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義するよう構成されており、要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するよう前記プロセッサを促すよう構成されている。前記有効化モジュールは、存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当て、前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義する。前記有効化モジュールが前記制御素性情報を前記記憶に転送させる。

Description

本発明は、コンピュータ・システム上のコンポーネントの動作を制御するシステムおよび方法に関する。特に、本発明は、変化を許容するコンピュータ・システムにおいてコンポーネントが動作する許可を制御するシステムおよび方法に関する。コンポーネントはソフトウェア・コンポーネントでもハードウェア・コンポーネントでもよい。
コンピュータ・システムにおける所与のソフトウェア・アプリケーションまたはコンピュータ・プログラムの使用は一般にライセンスのもとに管理され、ライセンスが個別的なコンピュータ・システムに対して特定の使用権を割り当てる。しかしながら、ソフトウェア・アプリケーションおよびコンピュータ・プログラムの不正使用の機会は一般的であり、コンピュータ・システムにおいて、特にソフトウェア・アプリケーションおよび/またはハードウェア・デバイスが時間的な変化を受けるコンピュータ・システムにおいて、ソフトウェア・アプリケーションまたはコンピュータ・プログラムの許可された使用を監視することについては著しい問題が存在する。
EP-1469369は、所与のコンピュータ・システムのためのハードウェア識別情報を生成するシステムを開示しているが、該識別情報は、コンピュータ・システムのハードウェアで生じる変化のレベルに依存してコンピュータ・システム上のソフトウェア・アプリケーションの動作を制御することにおいて使用するためのものである。新しいソフトウェア・プロダクトが最初にシステムにロードされるとき、コンピュータ・システムのハードウェア構成が識別され、ハードウェア識別情報が生成され、将来の使用のために保存される。このハードウェア識別情報は、コンピュータ・システム内のハードウェア・デバイスの各クラスのあらゆるハードウェア・デバイスを考慮し、その時点のコンピュータ・ハードウェア構成を表す対応するハードウェア識別情報を生成する。ソフトウェア・プロダクトのその後の再ロードに際しては、いかなる理由であれ、同じ仕方で新しいハードウェア識別情報が生成され、このソフトウェア・プログラムのさらなる使用が許可されるべきか防止されるべきかを判定するために、その新しいハードウェア識別情報が最初のハードウェア識別情報と比較される。
そのような既知のシステムは、特に複雑さと融通性の欠如を含め、いくつかの欠点がある。たとえば、ハードウェア識別情報を確立するためのコンピュータ・システム内のハードウェア・デバイスの各クラスのあらゆるハードウェア・デバイスを検査および識別する必要のため、ハードウェア識別情報を生成するプロセスは労が多く、時間がかかるものとなる。さらに、既知のシステムは、コンピュータ・システム内のハードウェアしか監視せず、ソフトウェアは全く考慮しない。これは本来的な限界である。
よって、コンピュータ・システム内のソフトウェアおよびハードウェアのコンポーネントの両方の使用を制御するためのより融通の利くシステムが必要とされている。
本発明は、従来技術の問題点を克服し、コンピュータ・システムにおけるコンポーネントの動作を制御するための、融通がきき、使用が簡単なシステムおよび方法を提供することを目的とする。
さらに、本発明は、コンピュータ・システムにおけるコンポーネントの動作を制御するシステムおよび方法であって、それにより、所与のコンポーネントが特定のコンピュータ・システムにおいて動作されてよいかどうかを確立するための制御素性情報(control identity)が迅速に計算できるものを提供することを目的とする。
さらに、本発明は、コンピュータ・システム内のコンポーネント実行の有望さを判定するために、コンピュータ・システム内のハードウェア・デバイスの変化とソフトウェア・アプリケーションの変化の両方を考慮する機能を有するような柔軟なシステムを提供することを目的とする。
本発明は、ソフトウェアまたはハードウェア・コンポーネントを、好ましくは所与のプラットフォーム上の、特定のコンピュータ・システムにバインドするためのシステムおよび方法に関する。
バインドは、所与のコンポーネントが、権利が承認されたコンピュータ・システム内でのみ動作できることを保証する概念である。よって、コンピュータ・システム内に新しいコンポーネントがインストールされ、ライセンス権がアクティブ化されるとき、そのコンポーネントは、それがインストールされるコンピュータ・システムにバインドされる。コンポーネントはハードウェア・デバイスでもソフトウェア・アプリケーションでもよく、コンピュータ・システムはたとえばデスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバー・コンピュータ、携帯電話または携帯情報端末(PDA)を含んでもよい。
本発明のある側面によれば、コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのシステムが提供され、該バインドするシステムは:
プロセッサと;
前記制御素性情報を生成するよう前記プロセッサを制御する有効化モジュール(validator module)と;
前記制御素性情報を記憶する記憶とを有しており;
前記有効化モジュールは、前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定(bind configuration)を定義するよう構成されており、要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するよう前記プロセッサを促すよう構成されており;
前記有効化モジュールは、存在していることが確認された要素の各カテゴリーに対して素性情報値(identity value)を割り当て、前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義し;
前記有効化モジュールが前記制御素性情報を前記記憶に転送させる。
本発明のもう一つの側面によれば、コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのプログラムを担持するコンピュータ可読媒体が提供され、該プログラムは:
前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義するコードと;
要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するコードと;
存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てるコードと;
各素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義するコードと;
前記制御素性情報を前記記憶に転送させるコードとを有する。
本発明のさらなる側面によれば、コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するための方法が提供され、該方法は:
前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義する段階と;
要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認する段階と;
存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てる段階と;
各素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義する段階と;
前記制御素性情報を記憶する段階とを有する。
本発明について、例として、好ましい実施形態を示す付属の図面を参照しつつさらに述べる。
本発明について、これから図面に示される実施形態を参照しつつ記述する。記述される実施形態は単に例示的であること、さまざまな修正が可能であり以下の記述で言及されるのはそのいくつかであることは理解されるものとする。
まず図1を参照すると、本発明を具現するコンピュータ・システムはコンピュータ10を有しており、コンピュータ10は典型的には中央処理装置(CPU)12と、システム・メモリ14と、システム・メモリ14を含めコンピュータ10のさまざまなデバイスをCPU12に結合するためのシステム・バス16とを含む。システム・メモリは、コンピュータ10内の要素間で情報を転送するための基本入出力システム(BIOS)18およびランダム・アクセス・メモリ(RAM)20を含んでいてもよい。
さらに、図1のコンピュータ・システムはディスプレイ・アダプタ24によってシステム・バス16に接続されたディスプレイ22を含む。本記述においては、コンピュータ・システムはパーソナル・デスクトップ・コンピュータの形であるとし、よってディスプレイ22はコンピュータ10とは別個の項目として示されている。だが、コンピュータ・システムがラップトップ・コンピュータ、携帯電話または携帯情報端末(PDA)の形であり、ディスプレイ22がコンピュータ10内に統合して含められていることも等しく可能である。代替的に、コンピュータ・システムがサーバー・コンピュータを含むこともでき、ディスプレイ22が省略されてもよい。
コンピュータ・システムはまた、典型的には、ハード・ディスク・ドライブ・インターフェース28によってシステム・バス16に接続されたハード・ディスク・ドライブ26および光ディスク・ドライブ・インターフェース32によってシステム・バスに接続されたCD-ROMドライブのような光ディスク・ドライブ30を含んでいる。フロッピー(登録商標)・ディスク・ドライブのような他の形のコンピュータ可読媒体装置もコンピュータ10に含められることができることは理解されるであろう。
コンピュータ10はさらに、システム・バス16を構内ネットワーク(LAN)または広域ネットワーク(WAN)のような外部ネットワーク35に結合するためのネットワーク・インターフェース・カード(NIC)34を含んでいる。さらに、コンピュータ10は、さまざまな他の周辺入力および出力装置をコンピュータ・システムのシステム・バス16に接続するためのシリアル・ポート・インターフェース36およびユニバーサル・シリアル・バス(USB)ポート・インターフェース38のようなさまざまな他のインターフェースを含む。図1では、そのようなハードウェア・デバイスの二つの具体的な例が、シリアル・ポート・インターフェース36に接続されたドングル40およびUSBポート・インターフェース38に接続されたドングル42として示されている。
ハード・ディスク・ドライブ26はさまざまなコンピュータ・アプリケーション・ファイル44を含む。たとえば、ファイル44はオペレーティング・システム46、いくつかのアプリケーション48およびライブラリ50を含んでいてもよい。ライブラリ50は、なかでもコンピュータ・オペレーティング・システムの新たなアプリケーションにインストールの際に組み込むためのルーチンを含んでいる。
本発明によれば、コンピュータ・システムはさらに、ある特定のコンポーネントまたはアプリケーション52がコンピュータ・システムにロードされる機会ごとに一意的な制御素性情報(以下の記述では機械素性情報(MID: machine identity)と称する)を生成する有効化機構(validator arrangement)を含む。コンポーネントまたはアプリケーションがコンピュータ・システムにロードされると、システムは、システムのRAM20内のメモリのある部分54を、そのコンポーネントによって使用されるべく割り当てる。より具体的には、コンポーネント52は有効化モジュール56を含み、有効化モジュール56は、コンポーネント52がロードされるとCPU12を促して、その個別のコンポーネントを特定のコンピュータ・システムに一意的にバインドまたはリンクする有効化プロセス(validation process)を開始させる。バインドはその後、ある許容範囲内ではコンピュータ・システムのソフトウェアおよびハードウェア構成の変化に関わらず維持される。有効化モジュール56は、コンポーネント52から導出される情報をコンピュータ・システムの現在の構成に基づく情報と組み合わせる一意的なMIDを生成することによって、このことを達成する。いかなる理由であれコンポーネント52がその後再ロードされるとき、有効化モジュール56はシステムの構成が所与の許容範囲内で同じままであるかどうか、よってMIDが同じままであるかどうかを検査し、それによりコンポーネント52が実行を許されてもよいかどうかを決定する。
本実施形態では、有効化モジュール56は、コンポーネント52内に設けられており、ハード・ディスク・ドライブ26によってアクセス可能な有効化プログラム(validator program)である。図示したように、有効化モジュール56は、MIDを生成するために暗号化されたファイル64内に含まれている、コンポーネント52のためのバインド構成設定データ62にアクセスする。もちろん、有効化プログラム56は、コンピュータ・オペレーティング・システムのインストールに際して、またはその後にハード・ディスク・ドライブ26に組み込まれることも可能である。有効化モジュール56がソフトウェア・プログラムでなくハードウェア・プロダクトとして提供されることも可能であり、この例では、構成設定データ62はコンポーネント中に埋め込まれることができることが可能である。しかしながら、以下の記述では、ソフトウェア・アルゴリズムの形の有効化手段を記述する。
のちに述べるように、コンピュータ・システム上の異なるプラットフォームについては異なるMIDが生成されうることも理解されるであろう。しかしながら、いかなる所与のコンポーネントについても、所与のプラットフォームについてはコンピュータ・システムを識別するための一意的なMIDがある。
この一意的なMIDは、異なるプラットフォームのために生成された他のMIDとともに、コンポーネント52が再ロードされる将来の機会に際して、コンポーネント52の実行を許可するかどうかを有効化プログラム56によって決定するために参照するために、安全な(secure)記憶設備58内に記憶される。図1に示されるように、安全な記憶設備58は、暗号化されたファイル60内に含まれること、および/またはドングル40、42のうちの一つに記憶されることもできる別個のユニットである。MIDを記憶するためにそのような安全な記憶設備58を用いることの利点は、これが関連するデータを保護し、削除を防止するか、あるいは少なくとも可能性としての削除が検出されることを保証するということである。
図1は、コンピュータ10がハードウェア・カード66を含んでいるとしても示している。ハードウェア・カード66は、コンポーネント52と一緒に使うためにコンポーネント52の製造業者が任意的に供給することがある。いくつかの状況では、コンポーネント52内の有効化プログラム56が動作できるためにハードウェア・カード66が必要とされることがある。さらに、図1は、コンピュータ10が、コンポーネントの製造業者が提供するサーバー70に、ネットワーク35によってアクセスしうることを示している。
ここで図2に目を向けると、特定のコンポーネント52およびコンピュータ・システムの所与のプラットフォームについての一意的なMIDの内容について述べる。関係する具体的なプラットフォームに従い、コンピュータ・システムのある種のハードウェア・デバイスまたはソフトウェア・アプリケーションがコンポーネント52の動作に必須になったり;コンピュータ・システムのある種のデバイスまたはアプリケーションが他よりも重要性または意義が大きかったり;コンピュータ・システムのある種のデバイスまたはアプリケーションが実行中に変化を受けることがあるが他は一定のままであったりする。
したがって、有効化プログラム56は、コンポーネント52と所与のプラットフォーム上でのそのコンピュータ・システムの瞬時構成との組み合わせについてのMID100を生成するよう構成される。生成は、コンポーネント52によって要求され、コンピュータ・システム内に見出されるハードウェア・デバイスおよびソフトウェア・アプリケーションのさまざまなカテゴリーに要素素性情報102の組を割り当てることによる。これらの要素素性情報102は以下の記述では機械部分素性情報(machine part identity)(MPID1、MPID2など)と記される。有効化プログラム56はまた、MPID102の組に許容差値104を割り当てもする。
MPID102の組は事実上、コンポーネント製造業者からの機械部分のリストをなす。いくつかのプラットフォーム上ではリストは比較的長く、他のプラットフォーム上ではリストは比較的短い。三つの異なるプラットフォームについての例を下に挙げる:

ウィンドウズ(登録商標)
MPID_SYSTEM
MPID_HARDISK
MPED_NETWORK
MPID_INTERNET
MPID_BIOS
MPID_MEMORY
MPID_CPU
MPID_DONGLE
MPID_PUBLISHER

マッキントッシュ(登録商標)
MPID_SYSTEM
MPID_HARDISK
MPID_NETWORK
MPID_INTERNET
MPID_MEMORY
MPID_CPU
MPID_DONGLE
MPID_PUBLISHER

リナックス
MPID_SYSTEM
MPID_NETWORK
MPID_DONGLE
MPID_PUBLISHER
有効化プログラム56が各MPID102を決定するのは、CPU12にまず、コンピュータ10にロードされた新たなコンポーネント52に問い合わせをさせて、コンポーネント52が動作するためにシステムのどの構成が要求されているかを確立させる。これがバインド構成設定である。より具体的には、CPU12は必要とされるデバイスおよびアプリケーションの型、その重要性、実行中に変化しうるかどうかおよび必須であるかどうかを確立する。有効化プログラム56は次いで有効化識別子(validation identifier)106の組を、要求されるデバイスまたはアプリケーションの各型に割り当てる。そのような識別子はコンポーネントによって直接供給されてもよいし、有効化プログラム56内に含まれるデフォルト値であってもよい。次に、有効化プログラム56の制御下で、CPUはコンピュータ・システムにも問い合わせして、デバイスまたはアプリケーションの関連する型が存在しているかどうかを確立し、存在していたら、デバイスまたはアプリケーションのそのカテゴリーに単数または複数の具体的な識別情報値(identification value)を割り当て、その識別情報値108を識別子106の組に含める。
より具体的には、有効化識別子106の組は、デバイスまたはアプリケーションのカテゴリーを示す型値110;カテゴリーのコンポーネント52にとっての重要性を示す重み値112;デバイスまたはアプリケーションが実行中に変化しうるかどうかを示す変動性識別子114;およびデバイスまたはアプリケーションのカテゴリーが、コンポーネント52がコンピュータ・システム上で走れるために必須か任意的かを示す必須性識別子116を含む。
さらに、コンピュータ・システムから得られた特定の識別情報値108は、デバイスまたはアプリケーションのその個別的なカテゴリーのための部分またはシリアル番号のような素性情報値(identity value)120を含む。その特定のコンポーネント52によってファジー比較が許容可能であると示される場合、関係する要素の群についてはマスク値122が含められる。たとえば、インターネット・アドレス(IPアドレス)の場合、198.168.0.*のマスク値は、198.168.0.0から198.168.0.255までの範囲内の任意のIPアドレスを包含することになる。
このようにして、コンポーネント52によって要求され、コンピュータ・システム内に存在しているデバイスまたはアプリケーションの各カテゴリーがMPID102を割り当てられ、許容差値104と合わせたMPID102のリストは、合わさって、特定のプラットフォーム上でのコンピュータ・システムの瞬時構成設定にコンポーネント52をバインドするために一意的なMID100を提供する。
前述のように、コンポーネント52を所与のコンピュータ・システムにバインドするためのMID100は、プラットフォームが異なれば異なりうる。たとえば、下記の表1は、MPID_SYSTEMおよびMPID_HARDDISKがウィンドウズ(登録商標)、マッキントッシュおよびリナックスの三つのプラットフォームで異なりうる様子を示している。示されるように、MPID_SYSTEMはマッキントッシュ上で最大の重みをもつ。それは、システムと機械が統合的に関連し合っていてコンピュータ・シリアル番号が世界的に一意的であってユーザーが修正するのが困難であるのに対し、ウィンドウズ(登録商標)およびリナックスでは修正は容易に可能であるからである。同容に、MPID_HARDDISKについては、ウィンドウズ(登録商標)は最大の重み値が割り当てられている。それは、ディスク・シリアル番号が世界的に一意的であり、修正するのが非常に困難だからである。対照的に、マッキントッシュについては、重み値は4でしかない。これは、ボリューム・シリアル番号は容易に変更でき、ディスク・サイズは一意的でないからである。リナックスについてはMPID_HARDDISKについては素性情報値が入手可能でないので、ハード・ディスクはMPIDの組には含められない。
Figure 2008542857
コンポーネント52がロードされる機会ごとに、有効化プログラム56は、MPID102の新たな組およびMID100を確立するために同じ検査を行う。さらに、そのコンポーネントの構成が途中で更新されていたら、有効化プログラム56は、そのコンポーネントから関連するMPID102を決定するための有効化識別子106の異なる組を受け取ることができ、よって、コンピュータ・システムの構成が変わっていてもいなくても、新たなMID100を確立しうる。
バインド構成設定を確立し、MID100を決定するための有効化プログラム56の初期の諸ステップについてこれからまず図3を、次に図4を参照しつつ述べる。
図3を参照すると、CD-ROMドライブ30に挿入されたCD-ROMによる、ネットワーク・インターフェース・カード34を介してネットワークによる、あるいはコンピュータ・アプリケーション・ライブラリの一つによる新たなコンポーネント52のコンピュータ・システムへのロードを受けて、CPU12は有効化アルゴリズムを開始する。これはステップ200で示されているが、ここで、アルゴリズムはCPU12に、新たにロードされたコンポーネント52から関連するバインド構成設定を取得するプロセスを開始するよう命令する。ステップ202では、CPU12は、コンポーネント52およびコンピュータ・システムの関連するプラットフォームに適切な構成設定データを取得するよう、つまり、要求されるコンピュータ・ハードウェア・デバイスまたはソフトウェア・アプリケーションのそれぞれについての有効化識別子106を取得するよう命令される。コンポーネント52は、ステップ204で、暗号化されたファイル64から構成設定データ62を供給することによって応答する。
例を挙げると、最終的に素性情報MPID1を与える型値1のハードウェア・デバイスまたはソフトウェア・アプリケーションが少なくとも一つ要求され;最終的に素性情報MPID2を与える型値2のデバイスまたはアプリケーションは一つも要求されず;最終的に素性情報MPID3を与える型値3のデバイスまたはアプリケーションは少なくとも一つ要求される。コンポーネント52はさらにデータを供給するが、そのデータが指示するところでは、MPID1についての変動性識別子114は、デバイスまたはアプリケーションのこのカテゴリーが変動性でありうることを意味する「yes」を示しており;必須性識別子116はそのカテゴリーが必須ではないことを意味する「no」であり;そのカテゴリーの重み値は5である。同様に、MPID3についての諸有効化識別子106は、デバイスまたはアプリケーションのこのカテゴリーが変動性ではないが、必須であり、重み10を有していることを示している。さらに、MPID3を与えるカテゴリーはファジー比較またはパターン・マッチングを認める。
有効化アルゴリズムはさらに、ステップ204で、コンポーネント52に問い合わせることによって、30という許容差値104がMID100のために確立されるべきであることを確立する。
そのような構成設定データがステップ202で読み込まれると、有効化アルゴリズムはステップ206に進み、その特定のコンポーネント52についての有効化のためにコンピュータ・システム内に見出されることが要求されるデバイスまたはアプリケーションのカテゴリーのリストを集成し、そのような各デバイスにステップ202で読み込まれた構成設定セッティングを割り当てる。
ステップ206において集成された有効化リスト(validation list)は、ステップ208でメモリ54内に入れられ、これをもって有効化プロセスの初期段階が完了し、特定のコンポーネント52についてのバインド構成設定が確立される。
有効化プログラム56は次に、図4に示されるプロセスによってそのプラットフォームのためのMID100を確立するのに進む。
ステップ300では、CPU12は、メモリ54内に記憶されている有効化リストを取得し、ステップ302では、CPU12は、コンピュータ・デバイスまたはアプリケーションのどのカテゴリーがこのバインド構成設定のために要求されるかを検査する。どのカテゴリーが必要とされるかを確立したところで、有効化プロセスはステップ304でコンピュータ・システムを検査して、コンピュータ・システム内の要求されるコンピュータ・デバイスまたはアプリケーションのそれぞれについて諸素性情報(identities)を確立する。たとえば、コンピュータ・システムは、バインド構成設定はハード・ディスク・ドライブ322またはハード・ディスク・ドライブ322上のソフトウェア・アプリケーションを要求していることを確立し、このデバイスまたはアプリケーションのための素性情報を取得するようシステムに問い合わせる。素性情報値はシリアル番号であってもよい。同様に、例として、有効化プロセスはステップ302から、コンポーネント52がディスプレイ330ならびにCD-ROMドライブ30またはCD-ROMドライブ326内のディスク上のソフトウェア・アプリケーションおよびそれぞれ図4で参照符号350および352で表される拡張スロットまたは拡張カードを要求することを確かめていたこともありうる。それぞれの場合において、CPU12は、ステップ304において、関連するデバイスまたはアプリケーションについてシリアル番号のような素性情報値120を取得する。
有効化プロセスは次いでステップ306に進み、ステップ304で、必須のコンピュータ・デバイスまたはアプリケーションのすべてがコンピュータ・システム内で利用可能であると確立されたかどうかを調べる。答えが「no」であれば、有効化プロセスはステップ308に進んで、要求されるデバイスまたはアプリケーションが利用可能でないので、有効化が無効であると宣言する。この事例では、有効化プロセスはCPU12に、コンポーネント52が動作するのを防止するよう命令する。他方、ステップ306が、必須のコンピュータ・デバイスまたはアプリケーションがすべて利用可能であると確立した場合、プロセスはステップ310に進んで、ステップ304で取得された素性情報値120を、メモリ54内でMPID102についてすでに記憶されている構成設定セッティングに割り当てる。MPID102および許容差値104の完全な組が今や利用可能であり、これが関連するコンポーネント52のためのMID100をなす。そのようなMID100はステップ312で記憶設備58に記憶され、これが有効化プロセスの第二段階を完了する。これでコンポーネント52はコンピュータ・システム上で実行されることができる。
その後、コンポーネント52がコンピュータ・システム上で実行されるたびに、コンポーネント52がいまだ有効にコンピュータ・システムに一致するかどうか、そしてその逆を確認するためにバインド有効化検査(binding validation check)が実行される。このプロセスは図5に示されている。
有効化検査は、コンポーネント52がコンピュータ・システムに再ロードまたはインストールされるときに開始される。その時点で、有効化プログラム56はCPU12に命令して、有効化検査を誘起させる。これはステップ400として示されている。
ステップ402では、有効化プログラムはCPU12を促して、図3を参照して述べたように、コンポーネント52に問い合わせをして、新たなバインド構成設定を取得させる。有効化プロセスは次いでステップ404に進み、そこでCPU12は、図4を参照して述べたように、コンピュータ・システム内の利用可能なコンピュータ・デバイスまたはアプリケーションのすべてについて素性情報値を確立し、これらをMPIDに割り当てる。これで新たな現在MID100が確立された。有効化検査プロセスは今やステップ406に進み、そこでCPU12は記憶設備58に問い合わせをして、図3および図4を参照して述べた有効化プロセス・ステップの以前の実施の結果として以前のMID100が記憶に含まれているかどうかを尋ねる。ステップ408では、CPU12は以前のMID100が入手可能であるかどうかを尋ね、答えが「no」であれば、CPU120はステップ410で現在のMID100を記憶設備58に書き込む。他方、ステップ408の問い合わせへの答えが「yes」であれば、有効化検査プロセスはステップ412に進み、図6を参照して述べられるサブルーチンにおいて、以前のMID100を現在のMID100と比較する。
ステップ414では、有効化検査プロセスは、以前のMID100と現在のMID100との間に、バインド構成設定において指定されている許容差値の範囲内で一致があるかどうかを問い合わせる。答えが「yes」であれば、有効化検査はステップ416に示されるように有効と想定され、CPU12はコンポーネント52が動作することを許容するよう命令される。他方、ステップ414の結果が「no」であれば、有効化検査は無効であると推認され、CPU12はコンポーネント52が動作することを防止するよう命令される。
ここで図6に目を転じ、図5のステップ412との関連で触れた、現在のMID100を以前のMID100と比較するためのサブルーチンについて述べる。サブルーチンはステップ500で始まり、CPU12は二つのMID100を比較するよう命令される。ステップ502では、CPU12は以前のMID100についてのスコアを確立する。それはたとえば、記憶装置から以前に計算されたスコアを取得することによるか、あるいは以前のMID100について新たにスコアを計算することによってである。スコアが確立される最初の機会には、MID100は、コンポーネント52が最初にコンピュータ・システムにロードされたときに得られる初期MID100であり、スコアは初期MID100のMPID102のそれぞれに割り当てられた重みを合計することによって計算されうる。
初期MID100についてのスコアの確立は下記の表2に示される。
Figure 2008542857
有効化検査プロセスは今やステップ504に進み、スコアが現在のMID100に割り当てられる。それはたとえば、さまざまな規則のもとで、指定されたコンピュータ・デバイスまたはアプリケーションのそれぞれについての重み値112を合計することによる。前記規則のもとで、CPU12はまず、指定されたコンピュータ・デバイスまたはアプリケーションが、以前のMID100について指定されたデバイスまたはアプリケーションと同じであるかどうかを検査する。これはたとえば、デバイスまたはアプリケーションのカテゴリーのそれぞれに割り当てられた型値を比較することによる。新たに利用可能になったコンピュータ・デバイスまたはアプリケーションについての重み値112と、以前のMID100における対応する素性情報値120に一致する素性情報値120をもつ指定されたコンピュータ・デバイスまたはアプリケーションについての重み値112とが合計される。MPID102についての素性情報値120が以前のMID100からの対応する値に一致しない場合、重み値は現在MID100についてのスコアに加えられず;MPID102が入手可能でない場合、やはり重み値はスコアに加えられない。
このことは下記の表3に示される。
Figure 2008542857
ステップ502で以前のMID100についてのスコアを、ステップ504で現在のMID100についてのスコアを確立したところで、有効化検査プロセスはその二つのスコアをステップ506で比較する。ステップ508では、CPU12は二つのスコアの間に一致があるかどうかを尋ねる。一致とは、スコアが等しいか、あるいは二つのスコアの差が設定された許容差レベル以内であり、高々コンピュータ・システムにおける通常の変化しか起こっていないと思われるかのいずれかを意味する。答えが「no」であれば、有効化検査プロセスは、以前のMID100は異なる機械で計算されたと想定し、ステップ510で有効化検査は無効であると示し、コンポーネント52はCPU12によって動作することが防止される。他方、ステップ508でなされた問い合わせへの答えが「yes」の場合、有効化検査プロセスは検査が有効であると示し、ステップ512でCPU12はコンポーネント52が動作することを許可するよう命令される。同時に、記憶設備58に記憶された以前のMID100は新しいMID100に更新される。
記憶設備58に記憶されているMID100を再設定することが必要または望ましい場合がありうる。有効化検査プロセスが有効化検査が無効であると示した場合であっても、それでも状況によってはコンポーネント52の実行を許可する決定がされることもありうる。たとえば、ソフトウェア製造業者は、アクティブ化後の指定された期間内に(たとえばアクティブ化6か月以内に)要求がされれば修復を許容してもよい。もう一つの可能性は、ソフトウェア製造業者がソフトウェアのバインドの一部としてドングルを使用しており、ソフトウェアが更新されるときにドングルが変わる場合である。ドングルは通常バインドのために必須なので、これは、更新の使用がユーザーのライセンス期間内であっても、有効化検査が無効という結果を示す結果につながる。さらなる例は、ユーザーのハード・ディスクがクラッシュし、発行者がユーザーが真正の顧客であると確認できる(可能性としては購入証明を通じて)場合である。これらの事例すべてにおいて、MID100の再設定が許可されうる。再設定設備が設けられる場合、有効化モジュール56は、図7および図8に示されるプロセス・ステップを実装するソフトウェアを含む。これらの処理ステップについてこれから述べる。
第一に、再設定設備が設けられる場合、図4に示されるステップ312は、MID100が生成される最初の機会にかつ該最初の機会にのみ修正される。この事例では、元のMID100が記憶設備58内に記憶されるのみならず、CPU12によってMID100のハッシュも生成され、NIC34によってサーバー70に送られる。ハッシュを用いるのは、秘匿性のため、個々のMPIDおよび元のバインド構成設定がサーバー70に送信されないことを保証し、コンピュータ・システムのための一定長の識別子がサーバー70に利用可能となることを保証するためである。その際、再設定が必要となるかもしれない場合の将来の復元のために、元のMID100は記憶設備58に記憶されて残り、ハッシュMIDはサーバー70に記憶されて残る。
第二に、再設定設備が設けられる場合、図6に示されるステップ504は、図7に示されるサブルーチンを含むよう修正される。この修正は、修復の判断がなされた場合に修復が必要となりうる位置を指示するための、現在のMID100に関連付けられた修復フラグの組を確立するためのものである。図7のサブルーチンについてこれから述べる。
現在のMID100のスコアがステップ504で計算される間、有効化プロセスはステップ600において修復フラグの組を初期化するよう命令を発する。この組はNビット数602であり、ここで各ビットは選択されたMPID102を表し、各ビットは初期には「1」に設定される。「1」は動作(operational)MPID102を表す。今の事例では、修復フラグの組は16ビット数であり、MID内の16個のMPIDの可能性をカバーする。しかしながら、長さは必要に応じて変えられることができる。ステップ600で発された命令に応じて、有効化プロセスはステップ604に進み、前記Nビット数の各ビットを「1」に設定することによって修復フラグの組を初期化する。
次に、有効化プロセスはステップ606に進み、現在のMID100内の各MPIDの素性情報値120が、以前のMPID100内の対応するMPIDの素性情報値120と比較される。そのような各MPID102について、ステップ608で、二つの素性情報値が一致するかどうかについての問い合わせがなされる。答えが「yes」であれば、ステップ610において、それぞれのMPID102の重み値112が現在のMID100についてのスコアに加えられる。他方、答えが「no」であれば、ステップ612で、関連するMPID102を表す修復フラグ602の組のビット値が値「0」に設定される。これは、関連MPID102内に欠陥があることを意味する。ステップ610または612に続いて、有効化プロセスはステップ614に進み、現在のMID100に、以前のMID100における対応部分と比較されるべきさらなるMPID102があるかどうかを調べる。答えが「yes」であれば、プロセスは再びステップ606に戻る。しかしながら、答えが「no」であれば、サブルーチンは、現在のMID100についてスコアを修復フラグ602の組とともに発することによってステップ616で終了する。
その後、再設定のためのソフトウェア・プロセスは図8に示される諸ステップをたどる。コンポーネント52がコンピュータ・システムに再ロードされ、有効化モジュール56が図5を参照してすでに述べ、図8でステップ700によって表される有効化検査を完了したのち、有効化モジュール56は、CPU12によって、ステップ702で、有効化検査の結果が有効だったか無効だったかを調べる。答えが「no」であれば、プロセスはステップ704で始まるコンポーネント内のサブルーチンに進む。ここでCPU12は、検査が無効な結果を生じたことをユーザーに知らせ、修復要求がなされるべきかどうかをユーザーに尋ねるよう命令される。CPU12はこれを、たとえば、ディスプレイ22上のポップアップメッセージによってユーザーと直接相談することを通じて検証してもよい。答えが「yes」であれば、修復要求がステップ706で生成される。修復要求は、記憶設備58から取得された元のMID100のハッシュ、現在のMID100のハッシュおよび図7のプロセスの結果として生成された修復フラグ602を含むことになる。次いで修復要求は、ステップ708および710において、暗号化され、サーバー70に送られる。
サーバー70はステップ712において修復要求を受け取り、復号し、ステップ714においてコンポーネント52が最初に使われたとき以来サーバー70に記憶されていたハッシュされた元のMID100を取得する。次いで、コンピュータ10からの元のMID100のハッシュとサーバー70からのハッシュされた元のMID100とがステップ716で比較され、サーバー70はステップ718で両者が一致するかどうかを調べる。答えが「yes」であれば、サーバーはステップ720に進み、どこで修復が必要とされているかおよび修復が許可されるべきかどうかを検討するために、サーバー70によって受信された修復フラグ602を処理する。次いでサーバーはステップ722に進み、修復を許可するかどうかについて、ステップ720の結果およびコンポーネント52についての内部的に記憶されている規則に基づいて判断をする。答えが「yes」であれば、サーバー720はステップ724で、サーバー70に記憶されているハッシュされた元のMID100を、ハッシュされた現在のMID100に再設定する。サーバー70は今度はステップ726に進む。ステップ718またはステップ722のいずれかの結果が「no」であれば、サーバー70は、それぞれステップ720〜724またはステップ724の処理を行うことなく、まっすぐステップ726に進む。ステップ726では、サーバー70はコンピュータ10からの修復要求に対する応答を暗号化し、それに署名し、ステップ728でサーバー70はその応答をNICカード34によってコンピュータ・システムに送信する。応答は、修復が許可されるかどうかについての決定を含むことになる。
ステップ728で送信された決定に応じて、コンピュータ・システム内のCPU12はステップ730において、サーバー70を認証し、応答を復号する。サーバーが認証されたとして、CPU12はステップ732に進み、修復がなされるべきかどうかを問い合わせる。答えが「yes」であれば、有効化プロセスは記憶設備58内に記憶されている以前のMID100をステップ734で現在のMID100に再設定し、コンポーネント52が再ロードされて実行されることを許可する。最後に、CPU12はステップ736に進んで、記憶設備58内の元のMID100を現在のMID100で置き換えもする。
ステップ728で送信された応答に含まれる決定が「no」であるか、ステップ730でサーバーが認証されなかったか、通信障害かの理由により前記の答えが「no」であれば、プロセスはステップ738で、そのコンポーネントが動作するのを防止する「無効」指示とともに、終了する。
本発明を具現するコンピュータ・システムのブロック図である。 有効化手段によって本発明に基づいて生成される、図1のコンピュータ・システムのための制御素性情報を表す図的な図である。 コンピュータ・システム内に最初に新たなコンポーネントをインストールする際にバインド構成設定を確立するための有効化手段のプロセスを表すフローチャートである。 図3の有効化プロセスによって得られるバインド構成設定に基づいて制御素性情報を生成するための有効化手段のプロセスを表すフローチャートである。 所与のコンポーネントがコンピュータ・システム内で動作することが許されるかどうかを検証するための有効化手段のプロセスを表すフローチャートである。 図5に示したプロセスにおける、現在の制御素性情報と以前の制御素性情報との比較がされるサブルーチンを表すフローチャートである。 バインド構成設定の確立に失敗したある種の状況において修復指示を生成するための有効化手段のプロセスを表すフローチャートである。 修復指示に反応してバインド構成設定を再設定するための有効化手段のプロセスを表すフローチャートである。

Claims (24)

  1. コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのシステムであって、該バインドするシステムが:
    プロセッサと;
    前記制御素性情報を生成するよう前記プロセッサを制御する有効化モジュールと;
    前記制御素性情報を記憶する記憶とを有しており;
    前記有効化モジュールは、前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義するよう構成されており、要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するよう前記プロセッサを促すよう構成されており;
    前記有効化モジュールは、存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当て、前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義し;
    前記有効化モジュールが前記制御素性情報を前記記憶に転送させる、
    システム。
  2. 前記バインド構成設定がある選択されたプラットフォームに応じて決定される、請求項1記載のシステム。
  3. 前記バインド構成設定が、要素の前記各カテゴリーについて識別子のリストを含む、請求項1記載のシステム。
  4. 識別子の前記リストが:要素の前記カテゴリーを表す型番号、要素の前記カテゴリーの、前記コンポーネントの動作にとっての重要性を表す重み値、前記カテゴリー中の要素が変化しうるかどうかに関する指示を表す変動性指標、前記コンポーネントの動作にとって前記カテゴリー中の要素が必須であるかどうかについての指示を表す必須性指標および前記カテゴリー中の複数の要素のそれぞれのための一般的指標を表すマスキング値、を含む群より選択される、請求項3記載のシステム。
  5. 前記バインド構成設定と要素の前記各カテゴリーについての前記素性情報値との前記した組み合わせがカテゴリー素性情報を含み、前記制御素性情報が前記カテゴリー素性情報のリストを含む、請求項1記載のシステム。
  6. 前記コンポーネントの存在を前記プロセッサに通信し、前記コンポーネントが前記コンピュータ・システムにロードされたときに制御素性情報の生成を開始するための信号伝達手段をさらに有する、請求項1記載のシステム。
  7. 前記有効化モジュールが、前記プロセッサに、前記コンポーネントが前記コンピュータ・システムにロードされる機会ごとに新たな制御素性情報を生成させるよう構成されている、請求項6記載のシステム。
  8. 前記有効化モジュールが、前記コンポーネントが前記コンピュータ・システムにおいて動作することが許されてよいかどうかを確立するために、前記プロセッサに、前記新たな制御素性情報を以前の前記制御素性情報と比較させるよう構成されている、請求項7記載のシステム。
  9. 前記有効化モジュールが前記制御素性情報のそれぞれを比較のためにスコア値に変換する、請求項8記載のシステム。
  10. 前記有効化モジュールがソフトウェア・アルゴリズムを含む、請求項1記載のシステム。
  11. 前記記憶が安全な記憶である、請求項1記載のシステム。
  12. 修復要求を発する手段と、該修復要求に応答して前記制御素性情報を再設定するための手段とをさらに有する、請求項1記載のシステム。
  13. コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのシステムであって、該バインドするシステムが:
    プロセッサと;
    前記制御素性情報を生成するよう前記プロセッサを制御する有効化モジュールと;
    前記制御素性情報を記憶する記憶とを有しており;
    前記有効化モジュールは、
    前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義する手段と;
    要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認する手段と;
    存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てる手段と;
    前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義する手段と;
    前記制御素性情報を前記記憶に転送させる手段、
    とを有する、システム。
  14. コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するためのプログラムを担持するコンピュータ可読媒体であって、該プログラムは:
    前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義するコードと;
    要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認するコードと;
    存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てるコードと;
    各素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義するコードと;
    前記制御素性情報を前記記憶に転送させるコード
    とを有する、コンピュータ可読媒体。
  15. コンポーネントとハードウェア・デバイスおよびソフトウェア・アプリケーションを含むコンピュータ・システムとを一緒にバインドするための制御素性情報を生成するための方法であって:
    前記コンポーネントの動作のために前記コンピュータ・システム内で必要とされるハードウェア要素の組およびソフトウェア要素の組のうち少なくとも一つの重み付けした組み合わせを表す、前記コンポーネントのためのバインド構成設定を定義する段階と;
    要素の前記した少なくとも一つの組の中の要素のインスタンスが前記コンピュータ・システム内に存在しているかどうかを確認する段階と;
    存在していることが確認された要素の各カテゴリーに対して素性情報値を割り当てる段階と;
    前記素性情報値を前記バインド構成設定を表すデータに加えて前記制御素性情報を定義する段階と;
    前記制御素性情報を記憶する段階とを有する、
    方法。
  16. 前記バインド構成設定をある選択されたプラットフォームに応じて決定することを含む、請求項15記載の方法。
  17. 前記バインド構成設定が、要素の前記各カテゴリーについて識別子のリストを含む、請求項15記載の方法。
  18. 識別子の前記リストを:要素の前記カテゴリーを表す型番号、要素の前記カテゴリーの、前記コンポーネントの動作にとっての重要性を表す重み値、前記カテゴリー中の要素が変化しうるかどうかに関する指示を表す変動性指標、前記コンポーネントの動作にとって前記カテゴリー中の要素が必須であるかどうかについての指示を表す必須性指標および前記カテゴリー中の複数の要素のそれぞれのための一般的指標を表すマスキング値、を含む群より選択することを含む、請求項17記載の方法。
  19. 前記バインド構成設定と要素の前記各カテゴリーについての前記素性情報値との前記した組み合わせがカテゴリー素性情報を含み、前記制御素性情報が前記カテゴリー素性情報のリストを含む、請求項15記載の方法。
  20. 前記コンポーネントの存在を通信し、前記コンポーネントが前記コンピュータ・システムにロードされたときに前記制御素性情報の生成を開始することをさらに含む、請求項15記載の方法。
  21. 前記コンポーネントが前記コンピュータ・システムにロードされる機会ごとに新たな制御素性情報を生成することをさらに含む、請求項20記載の方法。
  22. 前記コンポーネントが前記コンピュータ・システムにおいて動作することが許されてよいかどうかを確立するために、前記新たな制御素性情報を以前の前記制御素性情報と比較することをさらに含む、請求項21記載の方法。
  23. 前記制御素性情報のそれぞれを比較のためにスコア値に変換することを含む、請求項22記載の方法。
  24. 修復要求に応答して前記制御素性情報を再設定することをさらに含む、請求項15記載の方法。
JP2008510055A 2005-05-03 2006-04-26 コンピュータ・システム上のコンポーネントの動作を制御するシステムおよび方法 Pending JP2008542857A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/121,506 US8738822B2 (en) 2005-05-03 2005-05-03 System and method for controlling operation of a component on a computer system
PCT/US2006/015832 WO2006118907A2 (en) 2005-05-03 2006-04-26 System and method for controlling operation of a component on a computer system

Publications (1)

Publication Number Publication Date
JP2008542857A true JP2008542857A (ja) 2008-11-27

Family

ID=37308483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008510055A Pending JP2008542857A (ja) 2005-05-03 2006-04-26 コンピュータ・システム上のコンポーネントの動作を制御するシステムおよび方法

Country Status (8)

Country Link
US (1) US8738822B2 (ja)
EP (1) EP1877892A2 (ja)
JP (1) JP2008542857A (ja)
KR (1) KR20080015829A (ja)
CN (1) CN101189566A (ja)
AU (1) AU2006242577A1 (ja)
CA (1) CA2607492A1 (ja)
WO (1) WO2006118907A2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061813A1 (en) * 2005-08-30 2007-03-15 Mcdata Corporation Distributed embedded software for a switch
US8712973B2 (en) * 2006-04-11 2014-04-29 International Business Machines Corporation Weighted determination in configuration management systems
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US20080183690A1 (en) 2007-01-26 2008-07-31 Ramachandran Puthukode G Method for providing assistance in making change decisions in a configurable managed environment
US20090259855A1 (en) * 2008-04-15 2009-10-15 Apple Inc. Code Image Personalization For A Computing Device
US8229575B2 (en) 2008-09-19 2012-07-24 Rockwell Automation Technologies, Inc. Automatically adjustable industrial control configuration
EP2686806B1 (en) 2011-03-15 2019-09-11 Irdeto B.V. Change-tolerant method of generating an identifier for a collection of assets in a computing environment using a secret sharing scheme
US8924737B2 (en) * 2011-08-25 2014-12-30 Microsoft Corporation Digital signing authority dependent platform secret
US8725645B1 (en) 2013-01-04 2014-05-13 Cetrus LLC Non-invasive metering system for software licenses
US8997176B1 (en) * 2014-06-12 2015-03-31 Flexera Software Llc Device identification based on event logs
US9589155B2 (en) * 2014-09-23 2017-03-07 Intel Corporation Technologies for verifying components
FR3048528B1 (fr) * 2016-03-07 2018-09-21 Idemia France Procede de verification de l'integrite d'un dispositif electronique, et dispositif electronique correspondant
CA3138528A1 (en) * 2019-05-08 2020-11-12 Icu Medical, Inc. Threshold signature based medical device management
US11960623B2 (en) * 2020-03-27 2024-04-16 EMC IP Holding Company LLC Intelligent and reversible data masking of computing environment information shared with external systems

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4263649A (en) 1979-01-05 1981-04-21 Mohawk Data Sciences Corp. Computer system with two busses
JPS57137957A (en) 1981-02-20 1982-08-25 Hitachi Ltd Terminal connection system
US4471163A (en) 1981-10-05 1984-09-11 Donald Thomas C Software protection system
SE454921B (sv) 1986-10-03 1988-06-06 Ellemtel Utvecklings Ab Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instuktionssekvenser
US6891810B2 (en) * 2001-01-19 2005-05-10 Raze Technologies, Inc. Wireless access system and associated method using multiple modulation formats in TDD frames according to subscriber service type
US7778866B2 (en) * 2002-04-08 2010-08-17 Topcoder, Inc. Systems and methods for software development
US7290149B2 (en) * 2003-03-03 2007-10-30 Microsoft Corporation Verbose hardware identification for binding a software package to a computer system having tolerance for hardware changes
US7379918B2 (en) * 2004-07-30 2008-05-27 Microsoft Corporation Method and system for single reactivation of software product licenses

Also Published As

Publication number Publication date
KR20080015829A (ko) 2008-02-20
US20060253554A1 (en) 2006-11-09
WO2006118907A2 (en) 2006-11-09
AU2006242577A1 (en) 2006-11-09
CN101189566A (zh) 2008-05-28
CA2607492A1 (en) 2006-11-09
WO2006118907A3 (en) 2007-09-27
EP1877892A2 (en) 2008-01-16
US8738822B2 (en) 2014-05-27

Similar Documents

Publication Publication Date Title
JP2008542857A (ja) コンピュータ・システム上のコンポーネントの動作を制御するシステムおよび方法
KR100991061B1 (ko) 컴팩트 하드웨어 id 생성 방법, 소프트웨어 제품의 사용가능성 결정 방법, 및 그를 위한 컴퓨팅 시스템 및 컴퓨터 판독 가능 기록 매체
JP4652702B2 (ja) ハードウェア変更の許容度を有するコンピュータシステムにソフトウェアパッケージを結び付けるための詳細ハードウェア識別
JP4647300B2 (ja) 特定の装置または装置のクラスにおいてのみソフトウェアの更新のインストールまたは稼動を確実に行えるようにする方法及びシステム
JP4651947B2 (ja) 時間および重みに基づく柔軟で耐性のあるハードウエアidを提供するシステムおよび方法
US7921059B2 (en) Licensing upsell
JP5745061B2 (ja) 起動プロセスの際の対話型コンポーネントの使用の認証
JP6469028B2 (ja) オペレーティング・システム・リソースに対する機械語のネイティブイメージのアクセス制御のシステム及び方法
JP7021239B2 (ja) 初期オペレーティングシステム・セットアップ・オプションのリモート管理
US7873960B2 (en) Generic packaging tool for packaging application and component therefor to be installed on computing device
US8984296B1 (en) Device driver self authentication method and system
JP2007265404A (ja) ソフトウェア・アプリケーション配布のための範囲を制限された許可
CA2951914C (en) Restricted code signing
JP5326557B2 (ja) 資源配付システム
WO2016062146A1 (zh) 序列号信息的更新方法、装置及终端
CN107078997B (zh) 管理用于需要用户批准设备管理操作的细粒度策略的方法和系统
JP2019003275A (ja) 確認システム、制御装置及び確認方法
US20050131835A1 (en) System for pre-trusting of applications for firewall implementations
JP7084160B2 (ja) 起動制御装置、起動制御システム、起動制御方法、及び、起動制御プログラム
JP7050503B2 (ja) 完全性検証装置、完全性検証システム、完全性検証方法、及び、完全性検証プログラム
KR102369874B1 (ko) 무결성 검증 대상 디바이스에 대한 os 및 무결성 정보의 통합 업데이트 방법 및 원격 검증 시스템, os 배포 서버 및 무결성 검증 대상 디바이스
JP2023009403A (ja) コンピュータシステム及びプログラム。
WO2020027159A1 (ja) 情報処理装置、検証方法および検証プログラム
JP2020201716A (ja) 認証システム及び認証方法
EP3143749A1 (en) Restricted code signing