JP2003500722A - 情報保護方法および装置 - Google Patents

情報保護方法および装置

Info

Publication number
JP2003500722A
JP2003500722A JP2000620446A JP2000620446A JP2003500722A JP 2003500722 A JP2003500722 A JP 2003500722A JP 2000620446 A JP2000620446 A JP 2000620446A JP 2000620446 A JP2000620446 A JP 2000620446A JP 2003500722 A JP2003500722 A JP 2003500722A
Authority
JP
Japan
Prior art keywords
software
tag
instance
user device
fingerprint
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
JP2000620446A
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 JP2003500722A publication Critical patent/JP2003500722A/ja
Pending legal-status Critical Current

Links

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1064Restricting content processing at operating system level
    • 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/107License processing; Key processing
    • G06F21/1077Recurrent authorisation
    • 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/107License processing; Key processing
    • G06F21/1078Logging; Metering
    • 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/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • G06F2211/008Public Key, Asymmetric Key, Asymmetric Encryption
    • 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/2103Challenge-response
    • 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/2135Metering
    • 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/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

(57)【要約】 ソフトウエアのオーナーおよびベンダーが知的所有権を保護し、使用料を請求できるための方法と装置。このシステムはソフトウエアのすべてのインスタンス(事例)ごとに特有のタグを作成する。各ユーザ装置は管理プログラムを実行し、タグを使用して、ソフトウエアオーナーの権利を侵害するソフトウエアのインスタンスが使用されないことを保証する。ソフトウエアのインスタンスをインストールまたは使用するとき、管理プログラムは関連タグを確認し、そのタグを格納する。タグ付けされていないソフトウエアをインストールまたは使用すると、管理プログラムはソフトウエアの選択された部分の指紋付けし、その指紋を格納する。ユーザ装置の管理プログラムは定期的に呼び出しするか、または保護センターにより呼び出しされる。保護センターは、現在の呼び出しデータと過去の呼び出し記録とを比較してソフトウエアの無許可使用を検出する。保護センターは管理したソフトウエアのインスタンスの継続使用を有効または無効にして、その呼び出しを完了する。

Description

【発明の詳細な説明】
【0001】
【発明の背景】
ソフトウエアもしくは情報の著作権侵害は、当該ソフトウエアもしくは情報の
作成者または正当な所有者の許可を得ることなく、ソフトウエアもしくは情報を
使用し、またはコピーする行為である。著作権侵害は、コンピュータソフトウエ
ア産業分野において最も横行し、この分野ではソフトウエアアプリケーションの
不正コピーが頻繁に行われている。アプリケーションは、私的な使用や、再生産
、販売用にコピーされる。他のタイプの著作権侵害行為は、音楽の録音、ドキュ
メントの読み出し可能なバージョン、または電子ブックのような情報をコピーす
る行為を含む。著作権の侵害によるビジネスの逸失利益額は、年間に何十億ドル
に達すると考えられる。
【0002】 ソフトウエアおよび情報技術産業は、著作権侵害の脅威に対してロック方式の
使用により対応してきた。ロック方式は、ソフトウエアロック機構、ライセンス
、および特殊なハードウエア装置を有し、これがソフトウエア、情報、またはエ
レクトロニクス装置全体の不正使用を防止する。これらの方式は、不正使用者が
ソフトウエアを自由にコピーすることを阻止する。
【0003】 ソフトウエアロック機構には多くのタイプがある。例えばメーカは、ソフトウ
エアプログラムの部分を鍵(キー)を用いて暗号化する。ソフトウエアを購入す
るユーザーには、ソフトウエアを解読し実行する鍵が与えられる。このようなソ
フトウエア保護機構の例は、マイクロソフト ウィンドウズ(登録商標)98の
ようなソフトウエアの購入時に供給される“真正証明”であり、マイクロソフト
コーポレーション(レドモンド,ワシントン州)により製作されている。マイ
クロソフトおよびウィンドウズ98は、マイクロソフト コーポレーションの商
標である。真正証明は、個他の製品番号を示す。ソフトウエアのインストール中
、製品番号はソフトウエアアプリケーションにより要求され、ユーザーにより正
しく入力される必要がある。入力された製品番号は、ソフトウエアアプリケーシ
ョンにより期待された番号に一致する時にアプリケーションのコピーは正当とさ
れ、インストールされ、実行される。入力された番号が正しくなければソフトウ
エアは正しくインストールされないことになる。
【0004】 ハードウエア著作権保護方式は、あるハードウエア装置をプロセッサに通信ポ
ートを介して取り付ける。これらのタイプのハードウエア装置は、“ドングル”
と呼ばれる。ハードウエア保護方式の例は、米国特許No.3,996,449
に記載され、この特許ではコンピュータの作動中にプログラムまたはプログラム
の一部が有効であるか否かを判断するための方法が開示されている。このシステ
ムでは、ハッシュ関数が不正防止ハードウエアチェック装置のプログラムテキス
トと共にユーザー識別コードまたは鍵に用いられる。チェック装置は、プログラ
ムテキストが正しいか否かを知るためにハッシュ関数から得られた値を確認値と
比較する。テキストが正しければプログラムは装置で実行される。
【0005】 他のハードウエア関連の方法は、プログラムを実行する各プロセッサに個々の
識別子を割り当てる。これによりソフトウエアプログラムは、そのプログラムが
割り当てられ、または実行が許可される指定プロセッサ識別子照合を用いて暗号
化される。他のプロセッサの識別子は、ソフトウエアに存在せず、従ってソフト
ウエアは他のプロセッサで作動することはない。当然このようなシステムは、そ
のシステムが関連付けられていないプロセッサでソフトウエアを実行しようとす
る時に使用制限できる。番号割り当て機構は、特定のプロセッサ識別番号を持つ
1つのソフトウエアに関連付けられた認可ネットワークの使用を通じて管理され
る。
【0006】 上記の電子ハードウエア、コンピュータソフトウエアアプリケーションおよび
データ保護機構とは別に、音楽録音装置のようなエレクトロニクス装置によりア
クセスされる他のタイプの暗号化情報の著作権侵害を防止するために行われてい
るものは余り知られていない。
【0007】
【発明の概要】
従来技術の特性 ソフトウエアおよび情報の不正使用を防止するための公知技術は、各種の問題
を持っている。真正証明または鍵を用いるシステムは、1つの鍵でプログラムの
無制限の使用が可能で、鍵のコピーを防止できない点が問題である。従って、ソ
フトウエアのコピーの所有者は、彼の鍵または真正証明を他者に渡すことが可能
であり、この他者は真正証明または鍵を使用することにより、ソフトウエアをイ
ンストールし、作動し、または情報にアクセスすることができる。1つの鍵で1
つの使用、または1回の実行のみ行う時には、コピーの問題は解決するが、この
時には各使用ごとに他の鍵が必要となる。商業的には、ほとんどのプログラムは
多数回の使用を必要とする。
【0008】 ソフトウエアロックは、パーソナルコンピュータで解除することが容易である
。パーソナルコンピュータの所有者はロックの解除を試みるのに、無制限の特権
と時間を持つからである。ハードウエア保護方式は、ハードウエアデザイナがハ
ードウエア装置の製作の前に保護すべきソフトウエアの性質を知ることを要求さ
れるから、フレキシビリティを欠く。更に異なったハードウエア保護機構を用い
る各種のソフトウエアが作動される時には、別個のハードウエア装置を設ける必
要がある。カスタムハードウエア製作にかかるコストおよび消費者がハードウエ
ア保護方式を使用困難と考える事実は、ハードウエア保護機構の広汎な展開を妨
げる。
【0009】 ハードウエア保護方式は、ソフトウエアを装置から装置へ移すためのフレキシ
ビリティを制限する。ユーザーは、コンピュータ装置を買う前にソフトウエアを
買うことができない。ユーザーは購入の時点で装置の識別子が何であるかを知ら
ないからである。ハードウエアメーカーは、多くの装置に同じ装置識別子を与え
ることによりユーザーをごまかすことができる。最後に熟練したハッカーは、リ
バースエンジニアリング技法でハードウエア装置の識別子を偽造し、または装置
が識別子をチェックしないように、ソフトウエアを変更する。
【0010】 本発明の実施形態の特性 本発明は、上記の問題または他の問題を解決する。本発明は、ソフトウエアの
所有者、ベンダーまたはディストリビュータ(以下、ベンダーと呼ぶ)がその知
的所有権、またはそのソフトウエアにおける他の権利を保護することを可能にす
る方法と装置を提供する。ソフトウエアは、コンピュータプログラム、テキスト
、データ、データベース、オーディオ、ビデオ、イメージ、その他デジタル的に
または信号として表される情報のようなものを含む広い意味で定義され、上記ソ
フトウエアは、コンピュータまたは特殊目的の装置上でユーザーによりアクセス
され、または使用される(以下、この装置をユーザー装置と呼ぶ)。本発明は、
ソフトウエアのベンダーに対してソフトウエアの使用ごとに支払う方式にするこ
とも可能にする。
【0011】 特に、本発明は、ユーザー装置上のソフトウエアの使用を管理し、また装置が
、ソフトウエアに対する権利の正当なベンダーまたは所有者により許可されない
方法で、ソフトウエアのインスタンス、つまりユーザーが使用する個々のソフト
ウエア、を用いることを防止する管理体制のためのシステム方法または装置を提
供する。
【0012】 特定のソフトウエアにおけるベンダーの権利は、下記に限定されない、多数の
方法で侵害される。ユーザーは、購入したベンダーのソフトウエアをコピーし、
これらを他者に与えることが可能であり、当該他者はソフトウエアの最初のユー
ザーの購入条件に基づいて許されない時にそのソフトウエアを当該他者の装置に
インストールする。ある組織は、ベンダーのソフトウエアを購入し、または賃借
する。そして、ソフトウエアの特定数のコピーを行い、使用することが許される
場合、その特定数を上回るコピーを行う。著作権侵害ベンダーは、正当なベンダ
ーのソフトウエアの不正コピーをつくり、販売する。著作権侵害ベンダーは、正
当なベンダーのソフトウエアを改変し、例えばアプリケーションプログラムを再
編集し、または歌の名前を変えるかその他の変更を行い、侵害ソフトウエアのコ
ピーを頒布し販売する。
【0013】 本発明は、ソフトウエアにおける正当なベンダーの権利の保護を達成し、これ
らの権利侵害をソフトウエアのインスタンス、またはインスタンスの一部を暗号
化し、ユーザーにアクセス前に解読することを要求することなく、特殊なハード
ウエア装置、保護装置(ドングル)、もしくは特殊なプロセッサを要求すること
なく、またはメーカにID番号をハードウエアに設けることをメーカに要求する
ことなく防止する。従って、これらの方式にかかる短所および弱点は、本発明に
より回避される。更に本発明の方法と装置は、正当なユーザーが正当なベンダー
の特定の体制に基づいて用いるソフトウエアをアクセスすることを妨げるため、
非良心的な不正使用者が保護機構の利用を試みる時にも、この試みを阻止する。
【0014】 本発明を用いることによりソフトウエアベンダーは、ユーザーに管理された方
法で販売し、リースし、または頒布することを望む特定のアプリケーションプロ
グラム、特定のブック、または歌のような特定のソフトウエアを持つ。ユーザー
の装置にインストールし、またはその装置で使用することが試みられるソフトウ
エアの特定のコピーを、以下、ソフトウエアのインスタンスまたはソフトウエア
インスタンスと呼ぶ。一般に、ソフトウエアは、以下、使用またはソフトウエア
の使用と呼ぶアクセスモードの各々と共にユーザー装置にインストールされ、ア
クセスされ、または使用される。このようにアプリケーションプログラムである
、例えばソフトウエアのインスタンスの使用は、下記に限定されることはないが
、このインスタンスをインストールし、読み、コピーし、または実行することを
含む。また、テキストの使用は、下記に限定されることはないが、装置上にテキ
ストをインストールし、またテキストを装置の使用により読み、装置上でまたは
装置を用いることによりこのテキストの部分をコピーすることを含む。
【0015】 本発明の具体的な実施形態の要素およびステップ 特に、本発明は、ソフトウエアの使用を管理するためのシステムを提供する。
上記のシステムは、ソフトウエアのインスタンスを作るベンダーおよびソフトウ
エアのインスタンスを受け入れるタグサーバーを有する。タグサーバーは、ソフ
トウエアのインスタンス当り1つのタグで複数のタグを作り、またタグはそれが
関連付けられたソフトウエアのインスタンスを個々に特定する。ユーザー装置は
、ソフトウエアのインスタンスを受け取り、インストールし、そして、ソフトウ
エアのインスタンスに個々に関連付けられたタグを受け取る。ユーザー装置は、
管理プログラムを含み、これがソフトウエアのインスタンスの使用の試みを検出
し、ソフトウエアのインスタンスの使用を許可する前に、ソフトウエアのインス
タンスに関連付けられたタグの真正を確認する。ユーザー装置の管理プログラム
は、タグの真正を確認し、タグをタグテーブルに保持または格納し、またタグが
真正である時には、好ましくは格納装置にソフトウエアのインスタンスを保持し
、または格納する。管理プログラムは、ソフトウエアに関連付けられたタグが真
正でない時にはソフトウエアのインスタンスを拒絶する。
【0016】 タグは、ソフトウエアのインスタンスにとって固有であることが望ましい。真
正証明サーバーにより作られるタグは、ソフトウエアのインスタンスの名称、ソ
フトウエアのインスタンスの個々の番号および/またはソフトウエアのインスタ
ンスの部分におけるハッシュ関数値の少なくとも1つを有する。好ましくは、ソ
フトウエアのインスタンスの個々の番号は、番号が疎なセットから選ばれる。他
の実施形態においては、各タグは更に管理プログラムの個々の識別子を含む。更
に他の実施形態においては、各タグはタグに関連付けられたソフトウエアのイン
スタンスの部分上で作られた少なくとも1つの指紋(電子透かし)を有する。
【0017】 タグが真正であることを確認し決定するために、管理プログラムはタグにおけ
るハッシュ関数値を確認し、またはタグのデジタル署名を確認することができる
。他の実施形態においては、管理プログラムは、タグにおける管理プログラムの
個々の識別子がユーザー装置の管理プログラムの識別子と同じであることを確認
する。指紋を用いる実施形態においては、管理プログラムはタグに関連付けられ
たソフトウエアインスタンスがソフトウエアのインスタンスに関連付けられたタ
グに含まれる少なくとも1つの指紋に対する同じ位置の指紋チェックを満足する
ことを確認する。同じ位置の指紋チェックは、ソフトウエアのインスタンス前、
中および後の少なくとも1回において管理プログラムにより行う。
【0018】 指紋を使用する実施形態において、各タグは、少なくとも1つの指紋が作られ
て、管理プログラムは,各タグに関連付けられたソフトウエアインスタンスの少
なくとも位置の少なくとも1つのリストに定められた位置におけるソフトウエア
に関連付けられた少なくとも1つの指紋に対して、同じ位置の指紋チェックを満
足することを確認する。または上記に代わり一般位置指紋チェックを用いること
ができる(同じ位置の指紋において、位置の共通シーケンス上の2シーケンスの
指紋は、第1シーケンスから第1指紋が第2シーケンスからの第1指紋に一致し
、第1シーケンスからの第2指紋が第2シーケンスからの第2指紋に一致し、以
下同様であれば一致する。一般位置指紋方式において、指紋の2シーケンスは、
第1シーケンスにおける各指紋が第2シーケンスにおける各指紋に一致し、第2
シーケンスにおける各指紋が第1シーケンスにおける各指紋に一致する時に一致
する。)。タグは、ソフトウエアのインスタンスから分離しているから、本発明
は、ソフトウエアを修正することを必要とせずに、ソフトウエアの保護を提供す
る。
【0019】 発明の他の構成によれば、いずれかのデータファイルがソフトウエアのインス
タンスによりアクセスされる時には、必ずアクセスを実施するソフトウエアのイ
ンスタンスに関連付けられた情報がデータファイルに関連付けられた位置に格納
されている。ソフトウエアのインスタンスに関連付けられた情報は、ソフトウエ
アのインスタンスにより実行される改変の時点で、ソフトウエアのインスタンス
に関連付けられたタグである。好ましくは、アクセスを実行するソフトウエアの
インスタンスに関連付けられた情報は、管理プログラムのみがアクセスできる安
全な位置に書き込まれる。本発明のこの構成は、共有されるソフトウエアデータ
を用いるソフトウエアの著作権侵害を追跡するために用いられる。
【0020】 この場合において、ソフトウエアのインスタンスがデータファイルに関連付け
られた位置で格納される関連付けられた情報を持つデータファイル(即ち、共有
されるソフトウエアデータ)をアクセスすることを試みる時には、管理プログラ
ムは格納された関連付けられた情報が現在アクセスを試みるソフトウエアのイン
スタンスに関連付けられた情報であるか否かをテストする。もしこのような情報
である場合には、管理プログラムはこのインスタンスが著作権侵害のコピーであ
ると判断する。これを行うには、管理プログラムはアクセスが現在試みられるデ
ータファイルに関連付けられた位置に格納される関連付けの情報を確認するため
に偽造不能なハッシュ関数を使用することができる。さらに管理プログラムは、
最後の改変の時間を使用できる。本発明は、このデータファイルがこの装置にお
けるソフトウエアインスタンスのタグを持つソフトウエアインスタンスにより書
き込まれたかを監視するものであり、その通りであれば、この装置のソフトウエ
アインスタンスが事実このデータを最後の改変の時点で書いたか否かを監視する
。その通りでなければ、同じタグを持つ少なくとも2つのソフトウエアインスタ
ンスが流通し、著作権の侵害が起きたのである。
【0021】 本発明の他の実施形態は、タグの付いたソフトウエアデータベースおよび確認
プログラムを持つ保護センターを有する。保護センターは、定期的にユーザー装
置と呼び出し手順により通信することにより、ユーザー装置からタグを受け取る
。タグは、ユーザー装置に用いられるタグ付きのソフトウエアのインスタンスに
関連付けられる。確認プログラムは、タグが少なくとも1つの使用管理ポリシー
が遵守されていることを確かめるためにタグ付きのソフトウエアデータベースに
対してユーザー装置から受け取られた各タグを検査する。好ましくは、使用管理
ポリシーは、少なくとも1つのタグが関連付けられた少なくとも1つの個別のソ
フトウエアのインスタンスに関連付けられる。確認プログラムは、継続メッセー
ジをユーザー装置に戻す。継続メッセージは、ユーザー装置における各タグに関
連付けられたソフトウエアのインスタンスに対して実行すべき動作(措置)を示
す。ユーザー装置における管理プログラムは、真正に対する継続メッセージを確
認し、真正であれば継続メッセージに示された続行すべき動作を実行する。この
方法で保護センターは、タグ使用状況を管理することにより、ユーザー装置のソ
フトウエアに対するアクセスを決定することができる。
【0022】 好ましくは、保護センターとユーザー装置との間のすべてのメッセージは安全
な方法で送られ、この安全な方法は公開鍵暗号方式を含む。
【0023】 本発明の他の構成によれば、ソフトウエアベンダー、タグサーバーおよび保護
センターの少なくとも1つは、ソフトウエアベンダー、タグサーバーおよび保護
センターの少なくとも他の1つと組み合わされる。
【0024】 本発明の他の構成において、ユーザー装置の管理プログラムが保護センターと
通信する時、この処理を呼び出しと呼ぶ。好ましくは、呼び出し手順の間の最大
許容時間間隔は、ユーザー装置において経過する時間、ソフトウエアのインスタ
ンスの使用の数と時間、ユーザー装置が電源オンされる度数およびユーザー装置
の使用の測定の組み合わせの少なくとも1つによって決定される。ユーザー装置
が最後の呼び出し手順からの最大許容時間間隔の終わりの前に保護センターを用
いた呼び出し手順を行うことを怠った時には、ユーザー装置は特定時間にわたり
機能を停止され、またはソフトウエアのインスタンスの使用は特定時間帯にわた
り否定される。好ましくは、ソフトウエアのインスタンスがユーザー装置におい
て初めて用いられる(即ち、アクセス、インストール、またはその他の形で検出
される)時には、呼び出しが行われる。または、呼び出しは保護センターからの
リクエストにより生じる。
【0025】 本発明の1つの構成によれば、呼び出し中、管理プログラムは、継続メッセー
ジ中のタグテーブルのハッシュ関数値がユーザー装置からの呼び出しメッセージ
で送られるタグテーブルのハッシュ関数値に等しいことを確認することにより継
続メッセージの真正をテストする。継続メッセージ中のデジタル署名を確認する
ことにも用いられる。
【0026】 呼び出しメッセージに続いて、保護センターへの継続メッセージをユーザー装
置が受け取らない時には、ユーザー装置は前の呼び出しメッセージに対するキャ
ンセル指令を用いた呼び出しメッセージを再度送ることができる。この構成によ
りユーザー装置は、呼び出しを再び試みることができる。
【0027】 保護センターにおいて、使用管理ポリシーが呼び出し手順中に保護センターと
通信する全ユーザー装置に関連付けられるか、使用管理ポリシーが呼び出し手順
中に保護センターと通信するユーザー装置の個々のユーザーに関連付けられるか
、または使用管理ポリシーが呼び出し手順中に保護センターと通信するユーザー
装置の使用管理履歴に関連付けられる。
【0028】 本発明の他の構成によれば、保護センターは各ユーザー装置上のソフトウエア
の各インスタンスに関連付けられた各タグに対するタグ付きのソフトウエアデー
タベースのタグデータ構造体を保持する。各タグデータ構造体は、ソフトウエア
のインスタンスタグ、ソフトウエアのインスタンスに関連付けられた使用管理ポ
リシーおよび呼び出し記録についての参照の収集物(集合体)を有する。呼び出
し記録の収集物中の各呼び出し記録は、1つの呼び出し手順に関する情報を表わ
す。呼び出し手順に関連付けられた継続メッセージは、少なくとも1つの呼び出
し時間、呼び出し手順中の保護センターに移行するタグテーブルのヘッダ、前の
呼び出し手順のタイムスタンプを示す最後の呼び出し時間、呼び出し手順中の保
護センターに移されるタグテーブルのハッシュ関数値およびユーザー装置が続行
する動作を有する。前の呼び出し記録を保存する理由は、1つの装置のみがタグ
テーブルの特定のヘッダを持つことを保護センターが確認できるようにすること
にある。これが行われなければ、各種の物理的装置が使用管理ポリシーに違反し
て同じソフトウエアインスタンスを共有することが可能となる。
【0029】 保護センターまたはこれと組み合わされた装置においては、保護センターは確
認プログラムを有する。この構成によれば、保護センターはユーザー装置からユ
ーザー装置の管理プログラムのための個々の識別子を受け取るための呼び出し手
順を介してユーザー装置と定期的に通信する。確認プログラムは、その識別子を
持つのは多くても1つの管理プログラムであることを確かめるために個々の識別
子を調べる。そして、確認プログラムは継続メッセージをユーザー装置に戻す。
継続メッセージは、ユーザー装置上の各タグに関連付けられたソフトウエアのイ
ンスタンスの使用の試みを続行するための動作を示す。ユーザー装置の管理プロ
グラムは、真正に対する継続メッセージを確認し、真正であれば継続メッセージ
における動作を実行する。
【0030】 保護センターのこの実施形態によれば、管理プログラムの識別子は、管理プロ
グラムが最初に作動される時に、ほとんど重複しない番号に基づいて作られる。
好ましくは、上記番号は、管理プログラムが装置上で最初に作動される時に生じ
る極めて正確なクロック値である。上記に代えて、上記番号は保護センターによ
り与えられてもよい。上記一方または組み合わせにより、メモリ位置の値によっ
て与えられてもよい。
【0031】 本発明の他のシステムによれば、このシステムは、ユーザー装置に用いられる
ソフトウエアのタグのないインスタンスをも含む。このシステムにおいて管理プ
ログラムは、タグのないソフトウエアのインスタンスの使用を検出し、タグのな
いソフトウエアのインスタンスにおいて指紋処理を行い、ユーザー装置の指紋処
理からの指紋を格納する。ユーザー装置の管理プログラムは、更に装置に用いら
れるソフトウエアのタグ付きインスタンスにおいて指紋処理を行い、ユーザー装
置の指紋テーブルの指紋処理から生じる指紋を格納する。管理プログラムは、指
紋が作られる位置を格納する。指紋は、ソフトウエアのインスタンスの内容に基
づいてもよい。また、上記に代えて、指紋はソフトウエアのインスタンスの挙動
のシーケンスに基づいてもよい。
【0032】 このシステムにおける保護センターの実施形態によれば、保護センターは、指
紋データ構造体および確認プログラムを有する。保護センターは、ユーザー装置
で用いられるソフトウエアのインスタンスに対してユーザー装置からすべての指
紋を受け取るように、呼び出し手順を介してユーザー装置と定期的に通信する。
確認プログラムは、ユーザー装置から受け取ったすべての指紋を指紋データ構造
体と比較することにより、ユーザー装置に用いられるソフトウエアのインスタン
スがソフトウエアの侵害インスタンスであるか否かを判断する。確認プログラム
が保護センターの指紋データ構造体とユーザー装置から受け取られた指紋との間
で指定数以上の一致を検出した時には、確認プログラムは実行すべき報復措置を
特定し、確認プログラムは継続メッセージをユーザー装置に戻す。継続メッセー
ジは、ユーザー装置で実行される報復措置を示す。
【0033】 ソフトウエアベンダーは、ソフトウエアの侵害インスタンスのコピーを保護セ
ンターに送り、保護センターは、ソフトウエアの侵害インスタンスのコピー上の
指紋を算定し、保護センターの指紋データ構造体の中に指紋を格納する。
【0034】 このシステムの1つの構成によれば、指紋一致処理は、一般的な位置指紋チェ
ックである。処理を速めるために指紋一致は、反転保護センター指紋テーブルを
使用する。
【0035】 報復措置は、ユーザー装置が指定時間にわたり機能を停止されるか、または保
護センターの指紋データ構造体の指紋に一致した指紋に関連付けられたソフトウ
エアのインスタンスが指定時間にわたり機能停止されるかを指定できる。報復措
置は、ユーザー装置の挙動履歴の組み合わせ、ユーザー装置における特定ユーザ
ーの挙動履歴およびユーザー装置におけるソフトウエア供給の集合の少なくとも
1つによって特定される。
【0036】 本発明の他の実施形態は、ユーザー装置の読み取り可能媒体、例えば装置読み
取り可能媒体で符号化されたタグデーブルデータ構造体を提供する。タグテーブ
ルデータ構造体は、ソフトウエアの1つのインスタンスに個々に関連付けられた
少なくとも1つのタグを有し、タグテーブルのタグに関連付けられた少なくとも
1つの領域およびソフトウエアのインスタンスに関連付けられたタグに関連付け
られた使用状況を示す少なくとも1つの領域を有する。少なくとも1つの領域は
、タグに関連付けられたソフトウエアの1つのインスタンスに対する使用統計を
示す。タグテーブルは、タグテーブルを個々に識別するタグテーブルヘッダを有
する。タグテーブルヘッダは、ユーザー装置の使用統計に関する情報を有し、同
様に継続メッセージをも有することができる。タグテーブルは、ユーザー装置で
用いられるべきソフトウエアのインスタンスの能力に関する情報を格納するため
に用いられる。
【0037】 本発明の装置と方法は、それぞれ少なくとも1つの名称とソフトウエアの内容
を持つソフトウエアのインスタンスを形成するソフトウエア形成機構からなるソ
フトウエアベンダーを有する。ソフトウエアの各インスタンスは、ソフトウエア
のインスタンスごとのタグに関連してのみ使用できる。好ましくは、タグはタグ
が関連付けられたソフトウエアのインスタンスに関する個々に偽造不能な情報の
収集物であり、ソフトウエアの1つの名称、ソフトウエアのインスタンスの番号
、ソフトウエアの内容の一部におけるハッシュ関数値、ソフトウエアのインスタ
ンスが使用されるべきユーザー装置に関連付けられた管理プログラムの識別子、
またはタグが関連付けられたソフトウエアのインスタンスの部分の指紋リストの
少なくとも1つを有する。
【0038】 本発明の他の実施形態によれば、ソフトウエアベンダーは、ベンダーの権利を
侵害するソフトウエアを検出し、侵害ソフトウエアのコピーを保護センターに送
ることにより、ユーザー装置で侵害ソフトウエアのインスタンスの試みられた使
用を検出するように使用管理を実施できる侵害ソフトウエア検出機構を有する。
【0039】 この実施形態の他の構成によれば保護センターは、侵害ソフトウエアのインス
タンスに関連付けられたタグを無効化し、保護センターにより侵害ソフトウエア
のインスタンスを使用したことを検出されたユーザー装置に報復措置を送ること
ができる。
【0040】 本発明の他の実施形態は、ソフトウエアのインスタンスを受け入れ、ソフトウ
エアインスタンスに個々に関連付けられたタグを受け入れ、そしてソフトウエア
のインスタンスを使用することのリクエストを受ける入力ボードを含むユーザー
装置である。ユーザー装置に含まれるプロセッサは、管理プログラムを実行する
。管理プログラムは、ソフトウエアのインスタンスを使用するためのリクエスト
を検出し、ユーザー装置によるソフトウエアのインスタンスの使用許可の前に、
ソフトウエアのインスタンスに関連付けられたタグが真正であることを確認する
。管理プログラムは、タグが真正であることを確認し、タグテーブルにおけるタ
グを格納し、タグが真正であればソフトウエアのインスタンスを保持し、ソフト
ウエアに関連付けられたタグが真正でなければソフトウエアのインスタンスを拒
絶する。
【0041】 ユーザー装置の1つの構成によれば、管理プログラムは、ソフトウエアのイン
スタンスにおけるハッシュ関数値を算定し、算定値をタグのハッシュ関数値と比
較することによりタグが真正であるか否か、またソフトウエアのインスタンスに
正しく関連付けられているか否かを判断する。好ましくは、タグはデジタル的に
サインされ、管理プログラムはタグのデジタル署名を確認することによりタグが
真正であることを確認する。
【0042】 ユーザー装置の中で、タグテーブルはユーザー装置に格納されるデータ構造体
であり、ソフトウエアのインスタンスに個々に関連付けられた少なくとも1つの
タグを有し、タグテーブルの中のタグに関連付けられた少なくとも1つの領域を
有し、この少なくとも1つの領域はタグに関連付けられたソフトウエアのインス
タンスに対する使用状況を示す。管理プログラムは、呼び出し手順が呼び出し方
式により定められたようにリクエストされることを定期的に決定し、そしてタグ
テーブルに格納されているタグの使用状況を更改するための呼び出し手順を実行
する。
【0043】 管理プログラムは、ダグ付きのソフトウエアにより用いられる各データファイ
ルが正当なソウトウエアのインスタンスにより形成されていることを確認する。
【0044】 呼び出し手順の実行中、管理プログラムは、ユーザー装置に結合された相互接
続機構を介してユーザー装置からのタグテーブルを安全に送り、ユーザー装置に
戻される継続メッセージの受け入れを待つ。上記継続メッセージはタグテーブル
の各タグに対して実行すべき動作を示す。また、呼び出し手順の実行中にも、管
理プログラムは、ユーザー装置に結合された相互接続機構を介してユーザー装置
からのタグテーブルヘッダを安全に送り、タグテーブルの各タグに対して実行さ
れるべき動作を示すユーザー装置に戻される継続メッセージの受け入れを待つ。
【0045】 本発明の他の実施形態は、タグなしのソフトウエアの使用を管理することを可
能にする。この実施形態によるユーザー装置は、ユーザー装置に用いられるタグ
のないソフトウエアのインスタンスを有する。管理プログラムは、ソフトウエア
のタグなしのインスタンスを検出し、指紋処理を実施し、ユーザー装置の指紋テ
ーブルにおける指紋処理から得られた指紋を格納する。管理プログラムは、呼び
出し手順が呼び出し方式によって定められるようにリクエストされることを決定
し、管理プログラムは呼び出し手順を実行することによりユーザー装置に格納さ
れるタグのないソフトウエアのインスタンスの使用状況を更新する。このように
タグのないソフトウエアの管理は、タグ付きのソフトウエアの存在、または管理
とは無関係に行うことができる。
【0046】 呼び出し手順を行う時に、管理プログラムは、ユーザー装置に結合された相互
接続機構を介してユーザー装置から指紋テーブルの部分を送り、ユーザー装置に
格納された各タグのないソフトウエアのインスタンスに対して実行すべき動作を
示すユーザー装置に戻された継続メッセージの受け取りを待つ。
【0047】 本発明の他の実施形態によれば、保護センターは、タグ付きのソフトウエアデ
ータベースおよび保護センターのプロセッサで実行する確認プログラムを含むも
のが設けられている。保護センターは、相互接続機構を介してソフトウエアのイ
ンスタンスに対するタグを受け取るための呼び出し手順を定期的に実行する。確
認プログラムは、タグが少なくとも1つの使用管理ポリシーに従うものであるこ
とを確かめるために保護センターに保持されるタグ付きソフトウエアデータベー
スを用いて受け取られた各タグを検査する。確認プログラムは、相互接続機構を
介して呼び出し手順中に保護センターにより受け入れられる各タグに関連付けら
れたソフトウエアのインスタンスの試みられた使用を続行するように動作を示す
継続メッセージを送る。
【0048】 この実施形態のある構成によれば、使用管理ポリシーは、少なくとも1つのタ
グが関連付けられたソフトウエアの各インスタンスに関連付けられる。また、使
用管理ポリシーは、保護センターがタグを受け取るために通信するユーザー装置
に関連付けられる。使用管理ポリシーは、保護センターがタグを受け取るために
通信するユーザー装置の個々のユーザーに関連付けられる。
【0049】 保護センターは、各ユーザー装置のソフトウエアのインスタンスに関連付けら
れた各タグに対するタグ付きソフトウエアデータベースのタグデータ構造体を保
持し、タグサーバーからソフトウエアのインスタンスに関連付けられた新たに作
られたタグを受け取り、更にユーザー装置から送られたタグテーブルのユーザー
装置で用いられるソフトウエアのインスタンスに関連付けられたタグを受け取る
。各タグデータ構造体は、ソフトウエアのインスタンスのタグ、ソフトウエアの
インスタンスの名称、ソフトウエアのインスタンスの番号、ソフトウエアのイン
スタンスのハッシュ関数値、ソフトウエアのインスタンスに関連付けられた使用
管理ポリシーおよび上記ソフトウエアのインスタンスに関連付けられたタグに関
連付けられた呼び出し記録についての参照の収集物の少なくとも1つを有する。
【0050】 呼び出し記録の収集物における各呼び出し記録は、1つの呼び出し手順に関す
る情報を表し、呼び出し時間、呼び出し手順中に保護センターに送られたタグテ
ーブルのヘッダ、前の呼び出し手順のタイムスタンプを示す最後の呼び出し時間
、呼び出し手順中の保護センターに送られたタグテーブルのハッシュ関数値およ
び呼び出し手順に関連付けられた継続メッセージに含まれるユーザー装置を続行
するための動作の少なくとも1つを有する。
【0051】 この発明による保護センターの他のタイプは、指紋データ構造体および確認プ
ログラムを実行するプロセッサを有する。確認プログラムは、ユーザー装置で用
いられるソフトウエアのインスタンスに対する指紋を相互接続機構を介して受け
取るようにユーザー装置に対して呼び出し手順を定期的に実行する。確認プログ
ラムは、指紋データ構造体に対して受け取られた各指紋を検査することにより、
ユーザー装置に用いられたタグのないソフトウエアのインスタンスがソフトウエ
アの侵害インスタンスであるか否かを調べ、侵害インスタンスであれば、確認プ
ログラムはユーザー装置に対して実行されるべき報復措置を生成する。
【0052】 ある実施形態においては、すべてのベンダーソフトウエアは指紋が作られ、1
つのベンダーソフトウエアによる他のベンダーソフトウエアに対する侵害が一般
位置指紋チェックに基づいて検出される。確認プログラムが指紋データ構造体と
受け取った指紋の中における指紋との間で充分な数の一致を検出する時には、確
認プログラムは実行されるべき報復措置を特定し、確認プログラムは継続メッセ
ージを送る。上記継続メッセージは継続メッセージの受信機に対して実行される
報復措置を示す。充分な数の一致は1つ以上であるか、または各一致の重みが一
致する指紋によって変化する時には、一致の加重合計値として算定される。
【0053】 この実施形態の他の構成によれば、報復措置は受信機の機能停止、または指紋
データ構造体の中の指紋に一致した指紋に関連付けられたソフトウエアのインス
タンスが機能停止されるべきことが特定される。
【0054】 他の方法では、保護センターで確認プログラムが相互接続機構を介してソフト
ウエアの侵害インスタンスのコピーを受け取り、タグのないソフトウエアインス
タンスのコピーを受け取り、タグのない侵害ソフトウエアインスタンスのコピー
上の指紋を算定し、指紋を指紋データ構造体に入れて格納する。
【0055】 本発明の実施形態は、特定のベンダーソフトウエアのコピーを受け入れ、複数
のタグをソフトウエアインスタンス当り1つの割合で作り、上記各タグが関連付
けられたソフトウエアのインスタンスを個々に識別するものであるタグサーバー
を有する。好ましくは、各タグは、タグに関連付けられたソフトウエアの名称、
タグに関連付けられたソフトウエアのインスタンスの番号、およびタグに関連付
けられたソフトウエアのインスタンスの部分において算定されたハッシュ関数値
の少なくとも1つを有する。タグをデジタル的にサインし、タグを例えばユーザ
ー装置、保護センター、またはソフトウエアベンダーのような受信機に安全に送
るためにデジタル署名機構を用いることができる。
【0056】 本発明にかかる方法は、ソフトウエアの使用を管理するための方法を有する。
この方法は、ソフトウエアのインスタンスを作り、ソフトウエアのインスタンス
に個々に関連付けられるタグを作るステップを有する。次にソフトウエアのイン
スタンスを配布し、タグをユーザー装置に安全に配布し、そして、ユーザー装置
のタグおよび関連付けられたタグを受け取る。次にユーザー装置のソフトウエア
のインスタンスを使用するための試みを検出し、そのソフトウエアのインスタン
スを使用するための試みが、使用されるべきソフトウエアのインスタンスに関連
付けられたタグのステータスを判断することによって許容されるか否かを判断す
る。
【0057】 上記の方法において,タグ製作は、ソフトウエアのインスタンスに対する番号
を割り当て、ソフトウエアのインスタンスの内容の部分での第1ハッシュ関数値
を算定するステップを有する。次に、ソフトウエアのインスタンスに対する第2
ハッシュ関数値を算定することを有し、上記第2ハッシュ関数値はソフトウエア
の名称、ソフトウエアのインスタンスの番号および第1ハッシュ関数値を組み合
わせる。次に、ソフトウエアのインスタンスに個々に関連付けられたタグを算定
するステップを有し、上記タグはソフトウエアの名称、ソフトウエアのインスタ
ンスの番号および第2ハッシュ関数値を有する。
【0058】 タグを作るステップは、署名を作るための第2のハッシュ関数値にデジタル署
名機能を適用し、署名をタグに含めることによりデジタル的にサインされたタグ
を作る。
【0059】 タグをユーザー装置に配布するステップは、公開鍵暗号技術を用いてソフトウ
エアベンダーおよびユーザー装置に安全にタグを配布するステップを有する。
【0060】 ソフトウエアのインスタンスを受け取るステップは、ユーザー装置においてソ
フトウエアのインスタンスを入手するステップを有する。ユーザー装置のタグを
受け取るステップは、ユーザー装置におけるソフトウエアのインスタンスに関連
付けられたタグを安全に受け取り、ソフトウエアのインスタンスに関連付けられ
たタグがサインされたか否かを判断し、サインされている時には、タグのハッシ
ュ関数値の署名を確認し、ハッシュ関数値上の署名が確認されるとユーザー装置
上にソフトウエアをインストールし、ソフトウエアインスタンスに関連付けられ
たタグがサインされていない時には、ユーザー装置上にソフトウエアのインスタ
ンスをインストールするステップを有する。ユーザー装置でソフトウエアインス
タンスを使用する試みを検出するステップは、ソフトウエアのインスタンスの使
用に対するユーザーのリクエストを阻止するためにユーザー装置に管理プログラ
ムを作動させるステップを有する。ソフトウエアインスタンスを用いる試みが許
されるか否かを判断するステップは、呼び出し手順が呼び出し方式に基づいて必
要とされるか否かが判断され、必要とされる場合には、呼び出し手順を行うこと
により真正であることを確認し、ソフトウエアインスタンスに関連付けられたタ
グの使用管理ポリシーを決定するステップを有する。また、呼び出し手順の結果
に基づいてユーザー装置におけるタグ情報を更新するステップを有し、タグに関
連付けられたソフトウエアのインスタンスの使用が許されるか否かを判断するた
めにタグに関連付けられたステータス情報を検査するステップを有する。
【0061】 呼び出し手順を実行するステップは、ユーザー装置からのソフトウエアのイン
スタンスに関連付けられたタグを格納するタグテーブルを送るステップと、タグ
テーブルにおける各タグに対して実行されるべき動作を示すユーザー装置に戻さ
れる継続メッセージの受け取りを待つステップとを有する。ユーザー装置は、継
続メッセージを待つ間、実行のための端末リクエストの処理を継続する。
【0062】 方法の実施形態は、継続メッセージが特定の装置に向かって送られるステップ
、およびイベント履歴がこの装置のイベント履歴に対応することを確認するステ
ップを有する。
【0063】 方法の実施形態において、呼び出し手順を実行するステップは、ソフトウエア
のインスタンスに関連付けられたタグを含むタグテーブルを受け取るステップと
、タグテーブルのタグが少なくとも1つの使用管理ポリシーに従っていることを
確かめるためのタグ付きのソフトウエアデータベースに対してタグテーブルに受
け取られた各タグを検査するステップを有する。また、各タグに関連付けられた
ソフトウエアのインスタンスの使用の試みを検出した時にユーザー装置で続行す
るための動作を示す継続メッセージを送るステップも含まれる。
【0064】 方法の実施形態において、継続メッセージには、継続メッセージが送られる相
手の管理プログラムの管理プログラム識別子、継続メッセージが準備された時点
および装置からの呼び出しに伴うタグテーブルヘッダの暗号化を含むことができ
る。
【0065】 ソフトウエアの使用を管理するための方法は、本発明の一部として提供され、
ユーザー装置上のタグのないソフトウエアのインスタンスの使用を検出し、ユー
ザー装置上のタグなしのソフトウエアインスタンスに関連付けられた指紋を作り
、格納するステップを有する。続いて、ユーザー装置におけるタグのないソフト
ウエアのインスタンスを使用することの試みを検出し、ソフトウエアのインスタ
ンスを使用することの試みがタグのないソフトウエアのインスタンスに関連付け
られた指紋を侵害指紋の指紋データ構造体と比較することにより有効であるか否
かを判断し、指紋が一致する時には、タグのないソフトウエアのインスタンスの
使用を機能停止する。
【0066】 上記の方法は、ユーザー装置上のタグ付きのソフトウエアのインスタンスの使
用を検出するステップ、およびユーザー装置のタグ付きのソフトウエアのインス
タンスに関連付けられた指紋を作り、格納するステップを有する。ユーザー装置
のタグ付きのソフトウエアのインスタンスを使用する試みを検出するステップは
、ソフトウエアのインスタンスを使用することの試みが、タグ付きのソフトウエ
アのインスタンスに関連付けられた指紋を侵害指紋の指紋データ構造体と比較す
ることにより有効であるか否かを判断し、指紋が一致する時には、タグ付きのソ
フトウエアのインスタンスの使用の機能を停止するステップである。
【0067】 上記の方法は、ソフトウエアベンダーにより侵害ソフトウエアのインスタンス
を検出し、侵害ソフトウエアのインスタンスのコピーを保護センターに提出する
ステップにより補足される。保護センターでソフトウエアの侵害インスタンス上
の指紋を作り、指紋を指紋データ構造体に格納するステップも含まれる。この補
足的な方法は、タグ付きのソフトウエアの存在に関係がなく、他の実施形態でも
あり得る。
【0068】 本発明の他の実施形態は、ソフトウエアのインスタンスを入手し、ソフトウエ
アのインスタンスに名称を割り当て、そしてソフトウエアのインスタンスに番号
を割り当てるステップを持つソフトウエアのインスタンスを個々に識別するため
の方法を有する。上記番号は、同じソフトウエアの他のインスタンスに割り当て
られた番号とは異なることがある。この方法は、ソフトウエアのインスタンスの
部分におけるハッシュ関数値を算定し、インスタンスソフトウエアの名称のシー
ケンスにおける第2ハッシュ関数値、インスタンスソフトウエアの番号、および
ソフトウエアインスタンスごとの署名のないハッシュ関数値を作るための第1ハ
ッシュ関数値を算定するステップをも有する。続いて、ソフトウエアのインスタ
ンスに対する署名されたハッシュ関数値を作るための鍵を用いて署名されないハ
ッシュ関数値を署名し、ソフトウエアのインスタンスを個々に識別するソフトウ
エアのインスタンスに関連付けられたタグを作る。上記タグはソフトウエアのイ
ンスタンスの署名されたハッシュ関数値、ソフトウエアのインスタンスの名称、
ソフトウエアのインスタンスの番号およびインスタンスソフトウエアの署名をさ
れないハッシュ関数値を有する。
【0069】 この実施形態によれば、ソフトウエアのインスタンスを入手し、ソフトウエア
ベンダーにより実行されるソフトウエアに名称を割り当て、ソフトウエアのイン
スタンスに番号を割り当て、第1および第2ハッシュ関数値を算定し、第2ハッ
シュ関数値に署名し、そしてタグサーバーによって実行されるタグを作るステッ
プがある。
【0070】 本発明は、プロセッサにおいて読み取られ実行される時にソフトウエアのイン
スタンスを使用するためのリクエストを検出し、ソフトウエアのインスタンスに
対応するタグがソフトウエアのインスタンスが使用されることが許容される関連
付けられたステータスを持つか否か判断し、タグの真正であることを確認し、タ
グに対応するソフトウエアのインスタンスが使用管理方式に従って用いられるこ
とを確実にするために呼び出し手順を定期的に実行する指示により、符号化され
たコンピュータで読み取り可能媒体に関する実施形態を有する。
【0071】 本発明は、通信媒体を通じ搬送波を介して伝送される伝播信号についての実施
形態も有する。このような信号は、ソフトウエアのインスタンスに個々に関連付
けられた少なくとも1つのタグ、タグテーブルのタグに関連付けられた少なくと
も1つの領域、およびタグに関連付けられたソフトウエアの1つのインスタンス
に対する使用管理ステータスを示す少なくとも1つの領域を有する符号化された
タグテーブルデータ構造体を搬送する。
【0072】 また、このような信号は符号化された継続メッセージを搬送する。上記継続メ
ッセージは動作に関連付けられたソフトウエアのインスタンスを使用する試みが
受信機により検出される時に伝播信号の受信機において実行されるべき動作の指
示を有する。
【0073】 他の方法は、ソフトウエアプログラムが改変されていないことを確かめるため
のものである。この方法の実施形態は、ソフトウエアプログラムの内容に関する
偽造不能なハッシュ関数値を算定し、偽造不能なハッシュ関数値の結果を前回保
持されたハッシュ関数値の結果と比較することにより、結果が同じであるか否か
判断し、ソフトウエアプログラムが改変されていれば指示するステップを有する
。この方法の1つのバージョンにおいて、オペレーティングシステムが偽造不能
なハッシュ関数値を算定し、ソフトウエアプログラムは管理プログラムである。
【0074】 また、本発明によって、データの内容に関して偽造不能なハッシュ関数値を算
定し、この値を前に算定されたハッシュ関数値と比較することにより、当該デー
タが改変されていないことを確かめる方法が提供される。好ましくは、管理プロ
グラムは、偽造不能なハッシュ関数値およびこの方法で管理プログラムにより用
いられたデータを算定する。
【0075】 上記の実施形態について詳細な記述を行う前に、一般的な高レベルの作用につ
いての要旨を以下に記載して、発明の実施形態の複雑な部分についての理解の助
けとする。
【0076】 上記の実施形態に記載されているように、ベンダーの特定のソフトウエアの各
インスタンスには、個々の偽造不能なタグが添付される。しかし、同じ特定のソ
フトウエアのすべてのソフトウエアインスタンスは同一で、暗号化されておらず
、それぞれ特定のソフトウエアのコピーからなり、大抵ソフトウエアの名称を有
する。例えば、特定のアプリケーションプログラムソフトウエアのインスタンス
“スプレッド(展開)”は、スプレッドシートアプリケーションのためのプログ
ラムコードおよび名称スプレッドを有する。本発明では、特他のハードウエア装
置が必要でないから、任意の種類のソフトウエアのインスタンスが共通の装置ま
たは異なった装置に使用できる。
【0077】 ソフトウエアベンダーは、特定のソフトウエアのインスタンス(コピー)を作
り、このソフトウエアの1つのインスタンスを、このソフトウエアのインスタン
スについてのタグ番号に対するリクエストと共に、タグサーバーに送る。タグサ
ーバーは、異なったタグのリクエスト番号を作る。各タグは、ベンダーによって
ソフトウエアの1つのインスタンスで関連付けられ、それが関連付けられたソフ
トウエアのインスタンスを個々に識別するのに役立つ。ユーザー装置は、ベンダ
ーのソフトウエアのインスタンスを受け取り、使用することを試み、ソフトウエ
アのインスタンスに個々に関連付けられたタグを確実に受け取る。
【0078】 ユーザー装置は、装置上で作動する管理プログラムを包含し、このプログラム
は関連付けられたタグが真正であることを確認し、タグテーブルにタグを格納し
、格納装置にソフトウエアのインスタンスを格納し、タグが真正である時にのみ
ソフトウエアインスタンスの使用を許可する。管理プログラムは、インスタンス
に関連付けられたタグが真正でない時にのみソフトウエアインスタンスを拒絶す
る。タグテーブルにおけるすべてのタグは、管理プログラムによりそれに関連付
けする“ユーザブル(使用可能)”、“リムーブド(除去された)”または“ペ
イパーユーズ(使用ごとの支払)”のようなステータスを持つ。管理プログラム
は、ソフトウエアのインスタンスを使用するための装置へのコマンドを検出し、
ソフトウエアのインスタンスに関連付けられたタグに関連付けられたステータス
を確認し、そのインスタンスの使用を許可する。
【0079】 データまたはデータを有するオブジェクトを安全に送りまたは受け取ることは
、データまたはオブジェクトに含まれるデータが、承認された送信者または受信
者以外の何者かにより改変されまたは開示されることを許さない方法で、送信さ
れまたは受信されていることを意味する。例えば、タグは、ベンダーからユーザ
ー装置へTETS ISPEC、ネットスケープ SSL、または通信を確保す
る他のプロトコルの使用によるネットワークによって安全に送られる。また、タ
グはタンパー(いたずら)防止シールされた封印に入れられたディスケットを用
いてベンダーからユーザーに渡される。安全な通信は、盗用者による情報の漏洩
を防止するために用いられるもので、本発明の保護機構の一部ではない。当事者
間の安全な通信のための標準プロトコルがこの目的に用いられる。
【0080】 上記の実施形態に記載されたように、ベンダーソフトウエアのインスタンスに
対するタグサーバーにより作られるタグは、そのソフトウエアの名称、ソフトウ
エアのインスタンスに対する個々の識別番号(以下、インスタンス番号と呼ぶ)
、ソフトウエアのインスタンス部分のハッシュ関数値およびすべての前のデータ
を組み合わせるハッシュ関数値を有する。本発明に用いられているインスタンス
番号は、整数または任意のシンボルの連続であることが可能であり、上記の連続
は個々の識別子としての役割を果す。また、タグサーバーは、最後に述べたハッ
シュ関数値をデジタル的に署名し、タグの中で署名してもよい。
【0081】 以下、署名を有するタグを署名されたタグと呼び、署名を含まないタグを署名
されないタグと呼ぶ。ソフトウエアSWのインスタンスINST SWに対する
署名されないタグを作る時には、タグサーバーはソフトウエアSWに関連付けら
れた、疎で秘密の番号セット(以下、疎セットと呼ぶ)からインスタンスの識別
番号を選択する。秘密スパースセットの番号は、例えば物理的処理により生成で
きる。
【0082】 ソフトウエアのインスタンスINSTに関連付けられたタグが真正であるか否
かを判断するために、INSTが設置されまたは使用される装置の管理プログラ
ムは、インスタンス番号INSTのNUM_INSTおよび名称SWのNAME
_SWをタグから抽出する。管理プログラムは、ソフトウエアINSTの内容の
特定部分に関するハッシュ関数値を算定する。管理プログラムは、次にインスタ
ンス番号NUM_INST、名称NAME_SWおよび前に算定されたハッシュ
関数値を組み合わせるハッシュ関数値を算定する。管理プログラムは、算定され
たハッシュ関数番号をタグの中で発見されたハッシュ関数値と比較する。管理プ
ログラムは、署名されたタグを構成するデジタル署名を確認する必要がある。署
名のないタグが真正であることは、タグをタグサーバーまたはタグの真正を証明
する次述の保護センターに安全に送ることによって、ソフトウエアの関連付けら
れたインスタンスの最初またはその後の使用を許可する前に管理プログラムによ
りチェックされる。
【0083】 上述のように上記システムは、タグ付鍵のソフトウエアデータベースおよび確
認プログラムを有する保護センターを有する。保護センターは、ユーザー装置に
インストールされた各ソフトウエアのインスタンスに対しユーザー装置からすべ
てのタグを受け取るために、呼び出し手順を介してユーザー装置と定期的に通信
する。確認プログラムは、タグが少なくとも1つの使用管理ポリシーに従うこと
を確保するために、タグ付きのソフトウエアデータベースを用いてユーザー装置
から受け取った各タグを検査する。確認プログラムは、ユーザー装置上の各タグ
に関連付けられたソフトウエアのインスタンスへ試みられたアクセスを続行する
ための動作を示すユーザー装置へ継続メッセージを戻す。
【0084】 使用管理ポリシーは、少なくとも1つのタグが関連付けられているソフトウエ
アの個別のインスタンスに関連付けられるか、保護センターが通信する相手の全
ユーザー装置に関連付けられるか、または保護センターが通信する相手のユーザ
ー装置の個別のユーザーに関連付けられる。
【0085】 保護センターは、各ユーザー装置の各ソフトウエアのインスタンスに対し各タ
グに対するタグ付きのソフトウエアデータベースにおけるタグデータ構造体を保
持する。各タグデータ構造体は、ソフトウエアのインスタンスのタグ、ソフトウ
エアのインスタンスの名称、ソフトウエアのインスタンスの固有の番号、ソフト
ウエアのインスタンスのハッシュ関数値、ソフトウエアのインスタンスに関連付
けられたポリシーおよびソフトウエアのインスタンスに関連付けられた一連の呼
び出し記録を有する。一連の呼び出し記録の中の各呼び出し記録は、1つの呼び
出し手順に関する情報を表し、呼び出し時間、呼び出し手順中に保護センターに
搬送されたタグテーブルのヘッダ、前の呼び出し手順のタイムスタンプを示す最
後の呼び出し時間、呼び出し手順中の保護センターに搬送されたタグテーブルの
ハッシュ関数値および呼び出し手順に関連付けられた継続メッセージに含まれる
ユーザー装置が続行するための動作を有する。これらの機構を用いることにより
保護センターは、インスタンスの使用ごとに支払うような動作に対しソフトウエ
アのインスタンスの使用統計を追跡できる。
【0086】 本発明の他の構成によれば、タグのないソフトウエアのインスタンスは、ユー
ザー装置にインストールすることができる。保護プログラムは、タグのないソフ
トウエアのインスタンスを検出し、タグのないソフトウエアのインスタンスに指
紋処理を実行し、ユーザー装置の指紋テーブルにおける指紋処理から得られた指
紋を格納する。保護センターは、この構成によれば指紋データベースを有する。
保護センターは、ユーザー装置にインストールされたタグのないソフトウエアの
インスタンスに対するユーザー装置からのすべての指紋を受け取るために呼び出
し手順を介してユーザー装置と定期的に通信を行う。確認プログラムは、指紋デ
ータベースによりユーザー装置から受け取った各指紋を検査することにより、タ
グのないソフトウエアのインスタンスがソフトウエアの侵害インスタンスではな
いかを判断する。この方法で本発明は、不正コピーである改変されたソフトウエ
アの使用を検出できる。
【0087】 確認プログラムがユーザー装置から受け取ったすべての指紋中の1つの指紋と
指紋データベース中の指紋との一致を検出した時に、確認プログラムは、報復措
置の実行を特定し、確認プログラムは継続メッセージをユーザー装置に戻す。こ
の場合、継続メッセージはユーザー装置に実行されるべき報復措置を示す。従っ
て、ユーザー装置は、例えばタグのない侵害ソフトウエアの使用が見つけられた
時には機能停止される。
【0088】 また、報復措置は、指紋データベース中の1つの指紋に一致した指紋に関連付
けられたタグのないソフトウエアのインスタンスが機能停止されるようにしても
よい。
【0089】 指紋を保護センターで入手するために、ソフトウエアベンダーは、タグのない
ソフトウエアの侵害インスタンスのコピーを保護センターに送り、保護センター
はタグのないソフトウエアの侵害インスタンスのコピーで指紋を算定し、上記指
紋を指紋データベースに格納する。
【0090】 本発明の他の実施形態は、装置読み取り可能媒体上で符号化されたタグテーブ
ルデータ構造体を提供する。タグテーブルデータ構造体は、ソフトウエアの1つ
のインスタンスで固有に識別される少なくとも1つのタグと、タグテーブル中の
タグに関連付けられた少なくとも1つの領域を有する。上記の領域は、タグで識
別されたソフトウエアの1つのインスタンスに対する使用管理ステータスを示し
、タグで識別されたソフトウエアの1つのインスタンスに対する使用統計も示す
。タグテーブルデータ構造体は、タグテーブルを固有に識別し、タグテーブルを
固有に1つのユーザー装置に関連付けられたタグテーブルヘッダをも有する。タ
グテーブルヘッダは、ユーザー装置の使用統計に関する情報と、継続メッセージ
とを有する。継続メッセージは、タグに関連付けられたソフトウエアのインスタ
ンスに対する報復措置および使用管理ステータスを示す。
【0091】 ソフトウエアベンダーは、本発明の1つの構成として、名称とソフトウエアの
内容を持つソフトウエアのインスタンスを作るソフトウエア開発機構を有する。
各ソフトウエアのインスタンスは、ソフトウエアのインスタンスに固有なタグと
結合してのみ実行可能となる。上記のタグは、それが関連付けられ、ソフトウエ
アの名称、ソフトウエアのインスタンスの固有の番号およびソフトウエアの内容
のハッシュ関数値を有するソフトウエアのインスタンスに関する情報の偽造不能
な固有な収集物である。ソフトウエアベンダーは、知的所有権を侵害するソフト
ウエアの侵害インスタンスを検出する侵害ソフトウエア検出機構を有する。ソフ
トウエアベンダーは、ソフトウエアの侵害インスタンスを保護センターに送るこ
とにより、使用管理はソフトウエアの侵害インスタンスの使用の試みを検出する
【0092】 本発明の他の実施形態として、テスト中で装置の識別子と一体となったソフト
ウエアの少なくとも1つのインスタンスを作るソフトウエアベンダーが提供され
る。上記のテストは、代表的なプログラミング言語の中の“IF文”である。上
記テストは、一体となった識別子とソフトウエアインスタンスが使用される装置
の識別子とを比較する。一体化した識別子が装置の識別子と等しい時に、ソフト
ウエアインスタンスは正常に使用できる。等しくなければ装置上の管理プログラ
ムにより報復措置が実行される。さらに、保護手段を追加する為にソフトウエア
インスタンスのハッシュ関数値のデジタル署名(一体化した識別子を有する)が
送られ、第2テストはデジタル署名が真正であるか否かを判断し、第3テストは
署名された値がソフトウエアインスタンスのハッシュ関数値と同じであるか否か
を判断する。同じでない時、装置内の管理プログラムにより報復措置が実行され
る。
【0093】 上記において述べたように、ユーザー装置は、ソフトウエアのインスタンスを
受け取り、ソフトウエアのインスタンスに固有に関連付けられたタグを安全に受
け取り、そしてソフトウエアのインスタンスにアクセスするようにユーザー装置
のユーザーからの試みを受け取る入力部を有する。ユーザー装置のプロセッサは
、保護プログラムを実行する。保護プログラムは、ソフトウエアのインスタンス
のアクセスの試みを検出し、ユーザー装置のユーザーによるソフトウエアのイン
スタンスへのアクセスを許可する前にソフトウエアのインスタンスに関連付けら
れたタグが真正であるかを判断する。保護プログラムは、呼び出し手順が呼び出
しポリシーに従っているようにリクエストされているかを判断し、タグテーブル
に格納されたタグのステータスを更新するように、呼び出し手順を実行する。呼
び出し手順中に、保護プログラムは、タグテーブルをユーザー装置からユーザー
装置に結合された相互接続機構を介して送り、タグテーブルの各タグに対して実
行される動作を示すユーザー装置へ戻る継続メッセージの受け取りを待つ。この
方法で、ユーザー装置は、使用管理ポリシーのセッティングに関係する必要がな
く、単にすべての装置に対して中央集中的なポリシーを保持するだけでよい。
【0094】 ユーザー装置にインストールされたタグのないソフトウエアのインスタンスに
対し、保護プログラムはタグのないソフトウエアのインスタンスを検出し、タグ
のないソフトウエアのインスタンスに指紋処理を実行し、ユーザー装置の指紋テ
ーブルにおける指紋処理から得られた指紋を格納する。タグのないソフトウエア
に対しては、呼び出し手順中に保護プログラムは、ユーザー装置からの指紋テー
ブルをユーザー装置に結合された相互接続機構を介して送信し、ユーザー装置に
格納されたタグのないソフトウエアのインスタンスに対して実行される動作を示
すユーザー装置に戻される継続メッセージの受け取りを待つ。
【0095】 タグのないソフトウエアに対しては、保護センターにおける確認プログラムは
タグのないソフトウエアのインスタンスの指紋を受け取るために呼び出し手順を
相互接続機構を介して定期的に実行する。確認プログラムは、受け取った各指紋
を指紋データベースを用いて検査することにより、タグのないソフトウエアのイ
ンスタンスがソフトウエアの侵害インスタンスであるか否かを判断し、侵害イン
スタンスである場合には、確認プログラムはユーザー装置に対して報復措置を生
成する。確認プログラムが指紋データベースと受け取った指紋中の1つとの一致
を検出した場合には、確認プログラムは実行される報復措置を特定し、確認プロ
グラムは継続メッセージをユーザー装置に送る。継続メッセージは、それを受け
取るユーザー装置に行う報復措置を示す。
【0096】 本発明の他の実施形態は、ソフトウエアのインスタンスを受け入れ、ソフトウ
エアのインスタンスに付き1つのタグの割合で複数のタグを作る真正証明サーバ
ーを提供する。各タグは、関連付けられたソフトウエアのインスタンスを固有に
識別し、各タグはタグに関連付けられたソフトウエアのインスタンスの名称に関
する符号化された情報、タグに関連付けられたソフトウエアのインスタンスの固
有の番号およびタグに関連付けられたソフトウエアのインスタンスで算定された
ハッシュ関数値を有する。
【0097】 ソフトウエアへのアクセスを管理する方法において、ソフトウエアのインスタ
ンスを作るステップが実行される。次にソフトウエアのインスタンスに固有に関
連付けられたタグが作られる。ソフトウエアのインスタンスおよびタグが次にユ
ーザー装置に配布される、上記の方法は、次にユーザー装置においてソフトウエ
アのインスタンスへのアクセスの試みを検出し、ソフトウエアのインスタンスへ
のアクセスの試みが、アクセスされるソフトウエアのインスタンスに関連付けら
れたタグのステータスを判断することによって有効であるか否かを判断する。
【0098】 タグを作るには、上記の方法は固有の番号をソフトウエアのインスタンスに割
り当て、ソフトウエアのインスタンスの内容に関する第1ハッシュ関数値を算定
する。第2ハッシュ関数値は、ソフトウエアのインスタンスに対して算定される
。第2ハッシュ関数値は、ソフトウエアの名称、ソフトウエアのインスタンスの
固有の番号、ソフトウエアのインスタンスの内容および第1ハッシュ関数値を有
する。最後に、上記の方法は、ソフトウエアのインスタンスに固有に関連付けら
れるタグを算定する。タグは、ソフトウエアの名称、ソフトウエアのインスタン
スの固有の番号および第2ハッシュ関数値を有する。
【0099】 タグを算定するステップは、署名ハッシュ関数値を作る第2ハッシュ関数値の
デジタル鍵署名関数を適用し、タグに署名ハッシュ関数値を有することにより、
デジタル的に署名されたタグを作る。これにより、タグの配布を安全にする。公
開鍵暗号化技法は、タグをソフトウエアベンダーおよびユーザー装置に安全に配
布するのに使用できる。
【0100】 ソフトウエアはユーザー装置のソフトウエアインスタンスを入手し、ユーザー
装置におけるソフトウエアインスタンスに関連付けられたタグを安全に入手する
ことによって配布できる。ユーザー装置は、ソフトウエアのインスタンスに関連
付けられたタグが署名されているか否かを判断し、署名されている場合にはタグ
の署名ハッシュ関数値を確認でき、署名ハッシュ関数値が確認されると、ユーザ
ー装置はソフトウエアをインストールすることができる。
【0101】 ユーザー装置におけるソフトウエアのインスタンスへのアクセスの試みを検出
するために、本発明の方法は、ソフトウエアのインスタンスへのアクセスに対す
るユーザーのリクエストを阻止するように、ユーザー装置に保護プログラムを作
動させるステップを有する。ソフトウエアのインスタンスへのアクセスへの試み
が有効か否かを判断するために、上記の方法は、呼び出しポリシーに基づいて呼
び出し手順が必要であるか否かを判断する。上記の方法は、真正であることを確
認し、ソフトウエアのインスタンスに関連付けられたタグの使用ポリシーを判断
するために、呼び出し手順を実行し、呼び出し手順の結果に基づいてユーザー装
置におけるタグ情報を更新する。タグに関連付けられたステータス情報がユーザ
ー装置で検査されることにより、タグに関連付けられたソフトウエアのインスタ
ンスへのアクセスが有効であるか否かを判断する。この方法で、ソフトウエアの
保護が行われる。
【0102】 呼び出し手順中に、ソフトウエアのインスタンスに関連付けられたタグを格納
するタグテーブルは、ユーザー装置から送られる。上記ユーザー装置はタグテー
ブルにおける各タグに対して実行される動作を示すユーザー装置に戻される継続
メッセージの受け取りを待つ。
【0103】 保護センターは、ソフトウエアのインスタンスに関連付けられたタグを有する
タグテーブルを受け取り、タグテーブルに受け取られた各タグをタグ付きのソフ
トウエアデータベースを用いて検査することにより、タグテーブルの中のタグが
少なくとも一つの使用管理ポリシーに一致することを確かめる。保護センターは
、各タグに関連付けられたソフトウエアのインスタンスへのアクセスの試みを検
出した後にユーザー装置が続行する動作を示す継続メッセージを送る。
【0104】 本発明の他の実施形態は、上記の処理に対して指示で符号化された装置読み取
り可能媒体を有し、伝播信号は上記の符号化されたタグテーブルデータ構造体を
搬送する媒体を通じて搬送波を介して送られる。
【0105】 これらの機構を用いることにより、本発明のシステムは、ソフトウエアのイン
スタンスにおける正当な権利を有するベンダー/オーナーの権利を保護取り締ま
る。ベンダーのソフトウエアと実質的に同じであるソフトウエアのインスタンス
が密造され、盗まれ、リバースエンジニアリングされ、改変され、または解体さ
れたことを発見することによって、ベンダーに対する権利侵害をベンダーが発見
する場合には、システムはソフトウエアの不正コピーの使用を取り締まる。
【0106】 本発明のシステムは、同時にソフトウエアの正当な権利を有するユーザー/オ
ーナーによるソフトウエアについて不正使用の偽りの印象を作り出そうと試みる
不正なグループによるサービスの拒絶から、ソフトウエアの正当な権利を有する
ユーザーを保護する。
【0107】 本発明は、また使用ごとに支払われるソフトウエアに対する各ユーザー装置に
おいて、使用ごとの支払い統計値が追跡される。呼び出し手順中、保護センター
は、ソフトウエアの使用ごとの支払いインスタンスに対する使用統計値を判断し
、費用請求のためにソフトウエアベンダーに使用情報を送る。
【0108】 上述したように、上記システムは、タグ付きソフトウエアデータベースおよび
確認プログラムを持つ保護センターを有する。各ユーザー装置は、呼び出し手順
を介して保護センターと定期的に通信し、ユーザー装置にインストールされ、ま
たは前の呼び出し手順から装置に用いられているベンダーソフトウエアの各イン
スタンスに対して、そのインスタンスに関連付けられたタグを安全に送る。タグ
テーブルからの追加データは、完全なタグテーブルを有するまで、呼び出し手順
中に保護センターに管理プログラムによって安全に送られる。呼び出し手順は、
保護センターまたはユーザー装置により初期化される。保護センターの確認プロ
グラムは、ユーザー装置から受け取る各タグの真正を証明する。
【0109】 本来、確認プログラムは、タグ付鍵のソフトウエアデータベースを用いてユー
ザー装置から受け取った各タグおよび関連付けられたデータを検査することによ
り各タグの真正を証明し、タグが関連付けられたソフトウエアインスタンスに適
用される少なくとも1つの使用管理ポリシーに適合することを確認する。例えば
、確認プログラムは、呼び出し中に受け取ったタグが同じ管理プログラムから前
の呼び出し時に、コール装置のタグテーブルにおける使用可能な状態、そして同
時にその他の装置のタグテーブル使用可能な状態で、使用確認ポリシーの違反の
出現があったか否かをチェックする。確認プログラムは、継続メッセージをユー
ザー装置に安全に戻し、呼び出し手順中に受け取られたタグおよび関連付けられ
た情報を用いてタグ付きソフトウエアデータベースを更新する。
【0110】 ソフトウエアのインスタンスに対して署名されないタグを作る時、タグサーバ
ーはタグを保護センターに安全に送り、保護センターの確認プログラムは受け取
ったタグをタグ付きソフトウエアデータベースに格納する。
【0111】 他の実施においては、タグサーバーはすべての新しく作られたタグを保護セン
ターに送り、保護センターの確認プログラムは受け取った各タグをタグ付きソフ
トウエアデータベースに格納する。保護センターが呼び出し手順中にユーザー装
置からタグを受け取る時に、保護センターの確認プログラムは、タグを保護セン
ターのタグ付きソフトウエアデータベースの中で検索することによって、タグの
真正を証明し、発見できない場合には、そのタグが署名されていないタグであっ
て真正でないことを表す。上記のタグが署名されたタグであれば、確認プログラ
ムは、タグをタグ付きのソフトウエアベース中に発見するか、または上記のタグ
が正しい形状を持ち、タグの中にデジタル署名を有することを確認するかによっ
て、タグの真正を証明する。
【0112】 ユーザー装置への保護センターの継続メッセージは、保護センターにより署名
され、タイムスタンプ、タグテーブルのハッシュ関数値、または呼び出し中にユ
ーザー装置の管理プログラムから受け取った他のデータのハッシュ関数値のよう
な識別データを有する。更に継続メッセージは、ユーザー装置の管理プログラム
に対するコマンド(以下、コール動作と呼ぶ)を有する。
【0113】 本発明により用いられる措置例は、以下の事項を含むが、これらに限定される
ものではない。 管理プログラムが、(1)特定のソフトウエアインスタンスの継続使用を可能
にすること、(2)指定された時間内、ソフトウエアインスタンスの使用を拒絶
すること、(3)指定された時間内、所定の名称または所定の指紋リストを有す
るソフトウエアのインストールまたは使用許可を拒絶すること、または(4)指
定された時間内、ユーザー装置の機能を停止することを、指示する。
【0114】 呼び出し手順中に保護センターから継続メッセージを受け取ると、ユーザー装
置の管理プログラムが保護センターのデジタル署名をチェックする。管理プログ
ラムは、さらに、継続メッセージが本装置の現呼び出しのためのものであるかを
、継続メッセージ中に存在するハッシュ関数値または他のデータと、本装置にお
けるタグテーブルの一部のハッシュ関数値もしくはタグテーブルのハッシュ関数
値またはタグテーブル中に存在する他のデータと比較することによってチェック
する。
【0115】 前記署名は認証されたものであることが確認され、前記比較の結果が一致して
いると認められると、管理プログラムは現呼び出し手順中に、保護センターの回
答として継続メッセージを受け入れる。この場合、管理プログラムは、継続メッ
セージをタグテーブルに格納し、タグの状況を更新し、前記措置に従ったメッセ
ージ中の措置および前記継続報復措置を実行する。
【0116】 使用管理ポリシーは、ソフトウエアインスタンスの個別のタグ、特定のソフト
ウエアもしくはソフトウエアタイプ、保護センターが通信する全てのユーザー装
置、または保護センターが通信するユーザー装置の個別のユーザーに関連付けら
れることができる。
【0117】 ソフトウエアインスタンスのベンダーによって決められる使用管理ポリシーの
例は、以下に示すとおりであるが、これらまたはこれらの組み合わせに限定され
るものではない。あるユーザー装置で一旦用いられたソフトウエアインスタンス
は、別のユーザー装置では使用されない。あるソフトウエアインスタンスは、同
時に2つのユーザー装置で使用されることがないか、または使用可能な状況では
ない。あるソフトウエアインスタンスは、特定の装置セットのユーザー装置のみ
において同時に使用され、または使用可能な状況である。あるソフトウエアイン
スタンスは、特定回数よりも多く使用されないものとする。あるソフトウエアイ
ンスタンスは、特定日付の後には使用されない。あるソフトウエアインスタンス
の使用は、そのインスタンスに対するペイパーユーズ(使用ごとに支払う)料金
が特定口座に振り込まれた時にのみ、許される。
【0118】 本発明にかかる方法および装置は、ソフトウエアインスタンス、またはソフト
ウエアインスタンスのクラスの使用に関して、ベンダーまたはベンダー協会によ
って決められた使用管理ポリシーの遵守を可能にする。
【0119】 保護センターは、ユーザー装置におけるソフトウエアインスタンスに関連した
個別のタグに対するタグ付きソフトウエアデータベース中に、タグデータ構造体
を保持する。タグに対するタグデータ構造体は、タグ自体に関連付けられ、呼び
出し手順中に保護センターにそのタグを転送したユーザー装置に関連付けられる
わけではない。各タグデータ構造体は、ソフトウエアインスタンスのタグ、イン
スタンスがそのコピーであるソフトウエアの名称、ソフトウエアインスタンスの
インスタンス番号、ソフトウエアインスタンスもしくはその一部のハッシュ関数
値、ソフトウエアインスタンスに関連した使用管理ポリシー、および呼び出し記
録の参照の収集物、またはソフトウエアインスタンスに関連した呼び出し記録収
集物を備える。前記呼び出し記録収集物の各呼び出し記録は、ある呼び出し手順
に関する情報を示す。この呼び出し記録は、また、呼び出し時刻、呼び出し手順
中に保護センターに転送されるタグテーブルヘッダのような識別情報、先行の呼
び出し手順のタイムスタンプが示す前回呼び出し時刻、呼び出し手順中に保護セ
ンターに伝送されるタグテーブルのハッシュ関数値、および呼び出し手順中にユ
ーザー装置の管理プログラムに送信される継続メッセージを有してもよい。
【0120】 呼び出し手順中に収集されて格納されたデータを用いて、保護センターは、ソ
フトウエアインスタンスのペイパーユーズに対する請求書を作るために、各ソフ
トウエアインスタンスの使用統計を編集することができる。
【0121】 タグのないソフトウエアインスタンスが、ユーザー装置でインストールまたは
使用されてもよい。管理プログラムは、インスタンスにタグがないことを検出し
、タグのないソフトウエアインスタンスの選ばれた部分の指紋を算定し、ユーザ
ー装置の指紋テーブルにこれらの指紋を格納する。この構成にかかる保護センタ
ーは、指紋データ構造体を有する。ユーザー装置による上述の呼び出し手順中に
、保護センターは、ユーザー装置にインストールされたタグのないソフトウエア
インスタンスごとに、ユーザー装置から全ての指紋を受け取る。確認プログラム
は、ユーザー装置から受け取った各指紋を指紋データ構造体における指紋と対比
することによって、ユーザー装置で用いられているタグのないソフトウエアイン
スタンスが権利侵害のソフトウエアインスタンスであるかを判定する。この方法
によって、本発明は、タグが除去されたベンダーソフトウエアの権利侵害の複製
であるソフトウエアインスタンス、またはベンダーソフトウエアの権利侵害から
派生した派生物であるソフトウエアインスタンスの使用を検出することができる
【0122】 保護センターの指紋データ構造体の特定数よりも多い指紋とユーザー装置から
受け取った指紋とが一致していることを確認プログラムが検出すると、確認プロ
グラムは、ユーザー装置に戻す継続メッセージに報復措置を記すことができる。
このような報復措置の一つによれば、保護センターによってタグのない権利侵害
のソフトウエアを用いていることを検出されると、このユーザー装置は指定期間
、機能を停止させられる。
【0123】 別の例では、保護センターの指紋データ構造体の指紋に一致した指紋に関連し
たタグのないソフトウエアインスタンスの機能は停止される、と報復措置が記し
てもよい。
【0124】 権利侵害ソフトウエアがタグのないソフトウエアとして配布され、または使用
されていることを、ソフトウエアベンダーが検知して、このようなタグのないの
権利侵害ソフトウエアの複製を保護センターに送ることによって、保護センター
の指紋データ構造体は構築される。保護センターは、この権利侵害ソフトウエア
の複製の一部についての指紋を算定し、これらの指紋を指紋データ構造体に格納
する。
【0125】 ベンダーのソフトウエア権利侵害の防止は、また、タグの有無にかかわらず、
ユーザー装置で用いられたソフトウエアインスタンスの選ばれた部分の指紋を作
り、これらの指紋をこの装置の指紋テーブルに格納することによっても可能であ
る。上述のように、指紋テーブルの指紋は、呼び出し手順の実行中にユーザー装
置の管理プログラムによって保護センターに送られ、保護センターの確認プログ
ラムは、受け取った指紋と保護センターの指紋データ構造体の指紋との間の一致
を調べる。本発明のこの構成は、正当なベンダーのソフトウエアの権利侵害バー
ジョンを作ってこの権利侵害ソフトウエアのタグ付きインスタンスを配布する権
利侵害ベンダーによって、正当なベンダーの権利が侵害されるのを防止する。
【0126】 装置読み取り可能媒体上の符号化されたタグテーブルデータ構造体を、ユーザ
ー装置はアクセスできる。タグ付きソフトウエアがこの装置にインストールされ
、またはこの装置によって使用されると、タグテーブルデータ構造体は、一つの
ソフトウエアインスタンスに固有に関連した少なくとも一つのタグを有し、タグ
テーブルのタグに関連した少なくとも一つの領域を有する。この領域は、タグに
関連した一つのソフトウエアインスタンスの使用管理状況を示し、タグに関連し
た一つのソフトウエアインスタンスの使用統計をも示す。タグテーブルデータ構
造体は、また、タグテーブルを一意に識別し、このタグテーブルを一つのユーザ
ー装置または一つのユーザー装置の管理プログラムに一意に関連付けるタグテー
ブルヘッダを有してもよい。タグテーブルヘッダは、ユーザー装置の使用統計に
関する情報および継続メッセージを有する。継続メッセージは、タグに関連した
ソフトウエアインスタンスに対する可能な措置および使用管理状況を示す。
【0127】 ソフトウエアベンダーは、名称およびソフトウエアの内容を有するソフトウエ
アインスタンスを作り出すソフトウエア開発工程を提供する。ベンダーの各ソフ
トウエアインスタンスは、このソフトウエアインスタンスに関連した固有のタグ
と共でなければアクセスまたは使用が可能とならない。タグは、関連するソフト
ウエアインスタンスに関する、偽造が不可能な固有の情報収集物であり、ソフト
ウエアの名称、ソフトウエアインスタンスの固有の識別番号およびソフトウエア
の内容の一部のハッシュ関数値を有する。ソフトウエアベンダーは、また、ベン
ダーの知的所有権などを侵害するソフトウエアインスタンスを検出する侵害ソフ
トウエア検出機構を備える。ソフトウエアベンダーが権利侵害のソフトウエアイ
ンスタンスの複製を保護センターに送ることによって、権利侵害のソフトウエア
インスタンスの使用およびアクセスの企てを検出し、検出すると、このソフトウ
エアインスタンスを有するユーザー装置に報復措置を課すように、本発明の方法
は保護センターによって用いられる。
【0128】 ユーザー装置は、ソフトウエアインスタンスを受け取り、ソフトウエアインス
タンスに一意に関連したタグを安全に受け取る入力ポートを有する。ユーザー装
置は、また、このソフトウエアインスタンスのインストールまたは使用の要求を
受ける。ユーザー装置のプロセッサが管理プログラムを実行する。管理プログラ
ムがソフトウエアインスタンスのインストールまたは使用の試みを検出し、この
ソフトウエアインスタンスのインストールまたは使用を許可する前に、このソフ
トウエアインスタンスに関連したタグが認証されたものであること、またはタグ
に関連した状況を確認する。管理プログラムは、呼び出しポリシーによって決め
られているように、時々、呼び出し手順が必要であることを決定し、タグテーブ
ルに格納されているタグの状況を更新するために、管理プログラムが呼び出し手
順を実行する。
【0129】 呼び出し手順中、管理プログラムはユーザー装置に結合された相互接続機構を
介してユーザー装置からのタグテーブルを安全に送り、ユーザー装置に戻されて
くる、タグテーブルのタグごとに実行されるべき措置を示す継続メッセージの受
け取りを待つ。この方法により、ユーザー装置は使用管理ポリシーの設定に関し
て配慮する必要がなく、全ての装置に共通な使用管理ポリシー、またはベンダー
によって配布されるソフトウエアインスタンスに関連したベンダーの使用管理ポ
リシーを遵守するだけでよい。
【0130】 ユーザー装置の管理プログラムによって実施される呼び出しポリシーは、この
装置、この装置で用いられる特定のソフトウエアインスタンス、またはこの装置
の特定のユーザに関連付けられてもよい。呼び出しポリシーの例は、以下のもの
を含むが、これらに限定されるわけではない。ユーザー装置の次の呼び出し時刻
は、前回の呼び出しからの経過時間、前回の呼び出し以降の装置起動回数および
前回の呼び出し以降に装置が使用された全時間の組み合わせによって求められて
もよい。同様に、タグ、またはこのタグに関連したソフトウエアインスタンスに
関連した呼び出しポリシーが、前回の呼び出しからの経過時間、ソフトウエアイ
ンスタンスが使用された回数およびソフトウエアインスタンスがこの装置で用い
られた全時間の関数として、次の呼び出し時刻を求めてもよい。ソフトウエアイ
ンスタンスに関連した別の呼び出しポリシーは、ユーザー装置においてソフトウ
エアインスタンスの使用が試みられる度に、呼び出しを実行することを記しても
よい。
【0131】 本発明は、呼び出しポリシーによって指定された次の呼び出し時刻以前に、保
護センターを呼び出して継続メッセージを保護センターから受け取るのを怠った
場合に特定の報復措置を管理プログラムに実行させることによって、前記ユーザ
ー装置または前記ユーザー装置のタグテーブルのタグに適用される呼び出しに適
合するように、ユーザー装置およびその管理プログラムを動作させる。前記メッ
セージが実際に前記呼び出し用の継続メッセージとして保護センターによって送
られる場合に限り、ユーザー装置の管理プログラムがこの呼び出しに対する保護
センターの継続メッセージとして、呼び出し手順の実行中に、受け取ったメッセ
ージを受け入れることを本発明は保証する。これは、上述のように、保護センタ
ーがこの継続メッセージに署名し、ユーザー装置の管理プログラムによる現呼び
出しに一意にリンクした識別データをこのメッセージに含めること、および保護
センターが前記署名および前記識別データを確認することによって達成される。
呼び出しポリシーに従った保護センターの呼び出しを行わないことや、不正な継
続メッセージを作成もしくは使用する企てによって、ユーザーまたはユーザー装
置が本発明の保護の対象から外れてしまうのを、本発明のこの構成要素が防止す
る。
【0132】 呼び出しポリシーを適合するのに怠った際に前記装置の管理プログラムによっ
て実行されるユーザー装置の前記報復措置の例は、以下の事項を含むが、これら
に限定されるわけではない。管理プログラムは、呼び出し手順の実行を除いて、
指定期間装置を機能停止させてもよい。ソフトウエアインスタンスに関連した呼
び出しポリシーが違反されると、装置がこのソフトウエアインスタンスの使用を
指定期間停止してもよい。
【0133】 ユーザー装置でインストールまたは使用される、タグのないソフトウエアイン
スタンスに対して、管理プログラムは、タグのないソフトウエアインスタンスを
検出し、タグのないソフトウエアインスタンスに指紋処理を実行し、この指紋処
理から得られた指紋をユーザー装置の指紋テーブルに格納する。タグのないソフ
トウエアに対して、呼び出し手順中、管理プログラムは、相互接続機構を介して
ユーザー装置からの指紋テーブルを保護センターに送り、保護センターからユー
ザー装置への継続メッセージの受け取りを待つ。このメッセージは、ユーザー装
置に格納された、タグのないソフトウエアインスタンスごとに、実行されるべき
措置を示す。
【0134】 タグのないソフトウエアに対して、ユーザー装置の管理プログラムは、タグの
ないソフトウエアインスタンスの指紋を相互機構を介して送るために、呼び出し
手順を定期的に実行する。この呼び出し手順は、ユーザー装置の管理プログラム
または保護センターによって初期化されてもよい。保護センターの確認プログラ
ムは、受け取った各指紋を保護センターの指紋データ構造体と対比して調べるこ
とにより、このタグのないソフトウエアインスタンスが権利侵害のソフトウエア
インスタンスではあるかを判定する。権利侵害のソフトウエアインスタンスであ
れば、確認プログラムは、ユーザー装置に対する報復措置を準備する。例えば、
確認プログラムが、指紋データ構造体における特定ソフトウエアに関連した指紋
と、ユーザー装置のタグのないソフトウエアに関連した指紋との間に、十分な数
の一致を検出すると、確認プログラムは実行されるべき報復措置を記して継続メ
ッセージをユーザー装置に送信する。継続メッセージを受け取るユーザー装置に
おいて実行されるべき報復措置を、継続メッセージは示す。
【0135】 前記タグサーバーは、一般に、特定ソフトウエアのコピーを受け入れ、前記ソ
フトウエアインスタンスごとに固有のタグを複数生成する。各タグは、関連した
ソフトウエアインスタンスを一意に識別する。各タグは、また、タグに関連した
ソフトウエアインスタンスの名称と、タグに関連したソフトウエアインスタンス
の固有番号と、ソフトウエアの前記名称、ソフトウエアインスタンスの前記固有
番号、およびタグに関連したソフトウエアの内容を算定したハッシュ関数値を組
み合わせたハッシュ関数値とに関する情報を備える。
【0136】 ソフトウエア使用の管理方法において、ソフトウエアインスタンスを作るステ
ップは、上述のように実行される。次に、ソフトウエアインスタンスに一意に関
連したタグが作成される。ソフトウエアインスタンスおよびタグが、次に、ユー
ザー装置に配布される。次に、ソフトウエアインスタンスのユーザー装置におけ
る使用の試みが検出され、使用されるべきソフトウエアインスタンスに関連した
タグの状況を判定されることで、ソフトウエアインスタンスのこの使用の試みが
、許可されるものであるかが判定される。
【0137】 タグを作るために、本方法は、ソフトウエアインスタンスに固有番号を割り当
て、ソフトウエアインスタンスの内容の第1ハッシュ関数値を算定する。次に、
本方法は、ソフトウエアの名称、ソフトウエアインスタンスの固有番号、および
第1ハッシュ関数値を組み合わせた第2ハッシュ関数値を算定する。最後に、本
方法は、ソフトウエアインスタンスに一意に関連したタグを形成する。このタグ
は、ソフトウエアの名称、ソフトウエアインスタンスの固有番号および前記第2
ハッシュ関数値を含む。
【0138】 タグを作るステップは、さらに、タグに含まれる前記第2ハッシュ関数値にデ
ジタル署名関数を適用し、署名されたハッシュ関数値をタグに含めることによっ
て、デジタル的に署名されたタグを生成することができる。
【0139】 ソフトウエアインスタンスおよびソフトウエアインスタンスに関連したタグを
ユーザー装置に取得させることによって、ソフトウエアが配布されてもよい。ユ
ーザー装置は、ソフトウエアインスタンスに関連したタグに署名されていること
を判定し、署名されていれば、タグのハッシュ関数値およびタグにされた署名確
認する。この確認が成功すれば、ユーザー装置はソフトウエアインスタンスをイ
ンストールまたは使用することができる。
【0140】 ユーザー装置のソフトウエアインスタンスへのアクセスの試みを検出するため
に、本発明のこの方法は、ソフトウエアインスタンスの使用のユーザー要求を遮
るように、ユーザー装置の管理プログラムに訴えるステップを有する。ソフトウ
エアインスタンスの使用の試みが有効であると判定するために、本方法は、呼び
出し手順が呼び出しポリシーに基づいて必要とされているかを判定する。本方法
は、呼び出し手順を実行して、認証されたものであることを確かめ、ソフトウエ
アインスタンスに関連したタグの使用管理ポリシーを決定する。本方法は、また
、この呼び出し手順の結果に基づいて、ユーザー装置におけるタグ情報を更新す
る。タグに関連した状況情報はユーザー装置で調べられて、タグに関連したソフ
トウエアインスタンスの使用が許容されるものであるかが判定される。この方法
において、ソフトウエアの使用管理が可能となる。
【0141】 呼び出し手順中、ソフトウエアインスタンスに関連したタグを格納するタグテ
ーブルは、ユーザー装置から保護センターに安全に送られ、ユーザー装置は、タ
グテーブルの各タグに対して実行されるべき措置を示す、ユーザー装置に戻され
る継続メッセージの受け取りを待つ。
【0142】 保護センターは、ソフトウエアインスタンスに関連したタグを含むタグテーブ
ルを受け取り、タグテーブルの受け取られた各タグをタグ付きのソフトウエアデ
ータベースに対比して調べ、タグテーブルのタグが少なくとも一つの使用管理ポ
リシーに従っていることを保証する。保護センターは、各タグに関連したソフト
ウエアインスタンスの使用の試みを検出すると、ユーザー装置が従うべき措置を
示す継続メッセージを送信する。
【0143】 本発明の別の実施形態は、前記処理の指示で符号化されたコンピュータ読み取
り可能媒体と、上述のようにタグテーブルデータ構造体を安全に搬送する媒体上
を搬送波によって送られる伝搬信号とを有する。
【0144】 これらの機構を用いて、本発明のシステムは、ソフトウエアインスタンスにお
ける権利の正当なベンダー/オーナーがこれらの権利を警備することを可能にす
る。ベンダーによって製造されたソフトウエアと基本的に同一動作を行う、密造
され、盗まれ、逆行分析され(プログラムを解析され)、または改変されたイン
スタンスを発見するなどして、ベンダーの権利が侵害されていることをベンダー
が発見すると、このシステムは、ソフトウエアのこれら違法コピーの使用を取り
締まることができる。
【0145】 本発明のシステムは、同時に、正当なユーザーによるソフトウエアの使用が違
法であるという誤った印象を作り出そうとする不正者によって、サービスが拒絶
されてしまうことがないように、ソフトウエアの正当なユーザーを保護する。
【0146】 本発明は、また、使用ごとを基礎として購入されたソフトウエアインスタンス
に対する各ユーザー装置におけるペイパーユーズ統計の追跡を可能にする。呼び
出し手順中、保護センターは、ソフトウエアインスタンスのペイパーユーズ用の
使用統計を求めることができ、料金請求のために使用情報をソフトウエアベンダ
ーに送り返すことができる。
【0147】
【発明の実施の形態】
本発明の前記および他の目的、特徴および利点は、図面に示すように、本発明
の好ましい実施形態の説明から明らかであり、前記図面はその全体を通じて同一
部品には同一符号が用いられている。図面における寸法は正確ではなく、本発明
の原理を示すのに重点が置かれている。
【0148】 図1は、本発明に従って構成された情報システム109の一例を示す。図1に
は、本発明の主要な構成要素が記載され、本発明に動作上の関係を有するものも
記載されている。情報システム109は、複数のユーザー装置104〜107と
、一つ以上のソフトウエアベンダー101、一つ以上のタグサーバー102およ
び一つ以上の保護センター103とを相互通信する通信ネットワーク100を有
する。なお、本実施形態では、ソフトウエアベンダー101、タグサーバー10
2および保護センター103は、それぞれ、一つだけ示されている。本発明は、
ユーザー装置が、ある情報のオーナー、配布者またはベンダーの知的所有権また
は他の権利を侵害して、その情報をインストールまたは使用するのを防止するよ
うに、ユーザー装置104〜107の一つによって用いられる情報の使用を管理
するもの(図示せず)である。
【0149】 知的所有権または他の権利を保護するために、本発明によって使用が管理され
る情報は、電子的、磁気的、光学的などで表現された、いかなるタイプのもので
あってもよい。情報の例として、コンピュータソフトウエアアプリケーションす
なわちプログラム、データ、ウエブページもしくはウエブサイト、例えばJav
a(登録商標)アプレットのようなダウンロード可能なアプリケーションプログ
ラム、コンパクトディスク、磁気ディスク、テープ等に記録された電子ブック、
画像、ビデオ、音楽などの情報がある。一般に、例えばユーザー装置104〜1
07のようなコンピュータまたは他の装置によって用いられる、あらゆるタイプ
の情報の使用が管理され、この情報が何であるか、またはこの情報が格納または
伝送される実際の物理媒体が何であるかには関係なく、この情報に関する権利は
本発明によって保護される。
【0150】 このような情報、および本発明による保護が可能な当業者によって認識されて
いる情報を、以下ではソフトウエアと称する。例えば特定のアプリケーションプ
ログラム、または特定のブックもしくはビデオのコピーのような特定のソフトウ
エアの個別のコピーを、以下ではソフトウエアのインスタンス、またはソフトウ
エアインスタンスと称する。ソフトウエアのオーナー、ベンダーまたは配布者を
、以下ではベンダーまたはソフトウエアベンダーと称する。装置を使用して、ま
たは装置上で、ソフトウエアインスタンスをインストール、使用、実行、読み取
り、表示、演奏、鑑賞、印刷、複製、伝送またはアクセスすることを、以下では
そのソフトウエアインスタンスの使用と称する。
【0151】 ユーザー装置104〜107は、ソフトウエアの使用に用いられ、これらに限
定されるものではないが、コンピュータシステム、ブックリーダ、例えばテープ
プレーヤ、コンパクトディスクプレーヤ、ミニディスクプレーヤのようなミュー
ジックプレーヤ、ビデオカセットレコーダ、デジタルビデオディスク(DVD)
プレーヤ、専用装置などを含むあらゆるタイプの装置である。これらの装置を、
以下ではユーザー装置または単に装置と称する。
【0152】 本発明の好ましい実施形態では、ユーザー装置(すなわち104〜107のい
ずれか)はコンピュータシステムであり、前記情報はコンピュータアプリケーシ
ョンプログラムもしくはデータである。本発明は、このソフトウエアに関するベ
ンダーの権利を保護するように、コンピュータシステムのユーザーによるソフト
ウエアもしくはデータの使用を管理する機構を提供する。
【0153】 通信ネットワーク100は、本発明の構成要素(101〜107)がメッセー
ジまたは信号のような情報を交換するのを可能にする、あらゆるタイプの接続機
構である。通信ネットワーク100の例として、インターネット、公衆交換電話
網(PSTN)、無線ネットワーク(すなわちセルラーネットワーク)、または
他のタイプのコンピュータもしくは情報ネットワークのようなコンピュータネッ
トワークがある。
【0154】 本発明の一般的な運用によれば、一つ以上のソフトウエアベンダーのうちのソ
フトウエアベンダー100が、ソフトウエアインスタンス(図1には示さず)を
作成し、配布する。ソフトウエアインスタンスは、各ユーザー装置104〜10
7で使用されるために、装置104〜107でインストールまたは使用される。
例えば、ソフトウエアがテープの音楽であれば、テープは図1でテーププレーヤ
として図示されているユーザー装置105にインストールされる。ソフトウエア
は、ソフトウエアベンダー101から物理的または手動的に搬送され、ユーザー
装置104〜107に物理的なテープの場合のようにインストールされるか、ま
たは公知のデータ伝送機構、すなわちソフトウエアベンダー101からユーザー
装置107にソフトウエアのインスタンスをダウンロードする場合のような機構
を用いて、ソフトウエアは通信ネットワーク100を介して電子的に伝播されて
インストールされる。
【0155】 通信ネットワーク100に結合されたコンピュータシステムであるタグサーバ
ー102は、各ソフトウエアインスタンスに対してタグ(図1には示さず)を作
成すなわち生成する。通常、特定のソフトウエアの全てのインスタンスは同一で
ある。好ましくは、一つのタグは、ソフトウエアベンダー101によって作成さ
れた一つのソフトウエアインスタンスに一意にに関連している。タグサーバー1
02は、ソフトウエアベンダー101によって作成されたソフトウエアに、好ま
しくは独自の通信経路108を介してアクセスする。タグは、好ましくはソフト
ウエアの内容、ソフトウエアの名称、および例えばインスタンス番号のようなタ
グサーバーによって生成された情報やベンターによって提供された情報などの他
の情報に基づいて生成される。タグサーバー102は、また、通信ネットワーク
100を用いて、タグを付すためにソフトウエアを取得することもできる。
【0156】 代わりに、各種ソフトウエアの多様なインスタンスを販売する一つのソフトウ
エアベンダー101が存在してもよい。このソフトウエアベンダー101に対し
て、一つのタグサーバー102および一つの保護センター103が存在してもよ
い。タグサーバー102および保護センター103は、ソフトウエアベンダー1
01の一部であってもよく、すなわち同一コンピュータシステム内に含まれても
よい。代わりに、一つ以上の共有タグサーバー102および共有保護センター1
03に依存してサービスを受けるソフトウエアベンダー101の協会が存在して
もよい。
【0157】 タグがソフトウエアインスタンスに対して作成されると、このタグに対応する
ソフトウエアインスタンスがインストールされているユーザー装置104〜10
7の一つに、このタグは安全に伝播される。安全なタグの伝播は、好ましくは、
例えば安全な通信のためのTETS IPSECやNETSCAPE SSLプ
ロトコルの使用によって、通信ネットワーク100を介して電子的に行われる。
手動による安全なタグの伝播も、本発明のシステムによって用いられる。手動に
よる安全なタグ伝播の一例として、タグおよび可能ならば関連したソフトウエア
インスタンスを含む、改変されないパッケージ内でタグを配布する。
【0158】 ソフトウエアのインスタンスおよびソフトウエアインスタンスに関連したタグ
がユーザー装置104〜107に一旦インストールされると、この装置のユーザ
ー(図示せず)またはこの装置自体は、このソフトウエアの使用を試みることが
できる。しかし、ソフトウエアインスタンスの使用が許可される前に、ユーザー
またはソフトウエアを有するユーザー装置104〜107によって要求されたソ
フトウエアインスタンスに対する有効なタグがこの装置内に存在することを、こ
のユーザー装置の管理プログラム(図示せず)が確認する。定期的に、各ユーザ
ー装置が保護センター103と通信ネットワーク100を介して通信する。これ
により、ユーザー装置上のソフトウエアインスタンスに関連した全てのタグが、
有効であることおよび使用管理ポリシーに従って用いられていることが保証され
る。
【0159】 すなわち、本発明は、ソフトウエアインスタンスの装置による使用が、有効な
関連タグの存在にリンクされていることを保証する。タグは、ユーザー装置を保
護センターに通信させることによって、使用特性が定期的に確認およびをチェッ
クされる。遵守される使用管理ポリシーの例では、タグは一つの装置にのみ存在
する。ユーザー装置104〜107がソフトウエアインスタンスを使用すること
ができるか否かの判定は、ユーザー装置と保護センター103との間で実行され
る後述の呼び出しと呼ばれるタグ処理手順に基づく。
【0160】 本発明にかかる実施形態のさらに詳細な説明を行う前に、以下の表1(表1A
〜表1Cから構成される)に、本発明に関連する各種の要素の理解を助けるため
の用語集を示す。
【0161】
【表1A】
【0162】
【表1B】
【0163】
【表1C】
【0164】 技術用語の詳細な定義: 本発明の一定の実施形態は、本質的に複雑である。したがって、本発明の一定
の実施形態によって用いられる技術用語に対する、他の補助的な定義を以下に示
す。 1.指紋関数またはハッシュ関数F:XとYが等しくなければ、F(X)とF
(Y)が等しくない可能性が高くなるように、データXを、より小さいデータF
(X)に対応づけるで数学的関数。ハッシュ関数の例として、Xはバイト列であ
る。さらに、好ましくは、数値pはランダムに選ばれるが、以後は固定された6
4ビットの素数である。バイト列Xは、ある数値(256ベースで書かれ、バイ
トはその数値の数字である)およびF(X)=X mod p(Xをpで割った余
り)と見なされる。これにより、F(X)の値は、Xがいかに大きくても64ビ
ットストリングである。 2.偽造できないハッシュ関数H:所定のXに、H(X)を算定するのは容易
であるが、H(X)=H(X')かつXとX'は異なるような、X'を生成するの
が困難な性質を有する指紋関数。用語「困難」は、現在の技術水準によればXの
サイズでは必要な演算時間が一般に指数関数的であるか、または事実上実現不能
であると一般に理解されることを意味する。偽造できないハッシュ関数の例とし
て、MD5がある。
【0165】 3.ソフトウエアインスタンスの使用:装置の使用によって、または装置にお
いて、ソフトウエアインスタンスの、インストール、使用、実行、ラン、接続、
読み取り、記憶媒体の検索、または記憶媒体の内容変更、表示、演奏、鑑賞、印
刷、複製、伝送またはアクセス。 4.ソフトウエアインスタンス部分は、ソフトウエアインスタンスのテキスト
もしくはデータの全て、またはテキストもしくはデータの一部のシーケンスを含
む。 5.指紋処理:データアレーの位置シーケンスが与えられた際における、これ
らの位置の値に対する関数値の算定。例えば、位置16,32および64が、そ
れぞれ、値3,4および17を持つ場合、指紋処理は、3,4および17の関数
値を算定する。この関数は、単にこれらの値のリスト(この例では3つの数値)
、またはこれらの値のリストのハッシュ関数である。別の例では、位置は、i_
1〜j_1,i_2〜j_2,…i_k〜j_kであってもよい。指紋処理は、
アレーのこれらkシーケンスごとにハッシュ関数値を算定し、k個の算定値をリ
ストに挙げる。
【0166】 6.指紋検査:2つの指紋シーケンスを比較する方法。本発明は、2種類の指
紋検査を用いる。2種類の検査は、同一位置指紋検査と一般位置指紋検査である
。両方の指紋検査において、指紋リストは、位置リストの一つのリストにおける
値に基づいて算定される。例えば、リストに3つの指紋f1、f2およびf3が
あり、f1は位置10、20、30および40の値から算定され、f2は位置3
0および60の値から算定され、f3は位置100および200の値から算定さ
れるとする。このリストを送信リスト(Send List)と称することとす
る。両方の指紋検査において送信リストの受信者は、送信者と同一の指紋リスト
位置における値に基づいて指紋リストを算定する。この指紋リストは、受信リス
ト(Receive List)と呼ばれる。 同一位置指紋検査では、送信リストの各要素が受信リストの該当する要素に等
しい場合に、一致したと宣言される。具体的には、送信リストの第1要素が受信
リストの第1要素に等しく、送信リストの第2要素が、受信リストの第2要素に
等しく、他の要素についても同様となる。 一般位置指紋検査では、位置に関係無く、送信リストおよび受信リストに多数
の共通要素がある場合に、一致したと宣言される。この多数は、ポリシーおよび
指紋が作られるデータテキストの長さに依存する。この長さはパラメータkと定
義される。kが例えば50バイトであれば、保護センターの指紋データ構造体(
図9の符号137)のリストと同一のソフトウエアを装置リスト(Device
List)があらわすためには、一つまたは少数の一致で十分である。さらに
、一定の一致には他の一致よりも重点が置かれ、重点が置かれていれば少ない一
致でも十分である。 指紋の送信リストを送るのに加えて、送信者は、送信リストを生成した値を有
する位置リストのリストを送ってもよい。これにより、指紋の計算は、予測し得
ないランダム処理に依存する。
【0167】 7.偽造不可能:ベンダーの要求に基づいてタグを生成するタグサーバー10
2(図1)によって用いられる秘密情報を知ることなしに、有効なタグを生成す
るのは、敵対者にとって計算上不可能な場合、タグは偽造不能である。本発明で
は、デジタル署名(図3A)および疎セット(図3Bおよび3C)を、タグの偽
造不可能を達成する2つの好ましい方法として用いる。 8.安全な伝送:Xが転送されるネットワークプロトコルを観察すること、ま
たはXを転送するパッケージを見ることを他者もできるが、意図された受取人の
みがXを見ることができるような値Xを送る方法。信頼できる宅配業者によって
配達される封印された包みは、包みの中身を安全に送る一方法である。安全な通
信のためのTETS IPSECやNETSCAPE SSLプロトコルの使用
によってメッセージを送ることは、通信ネットワーク100(図1)上の安全な
伝送を保証する別の方法である。 9.事象履歴:全ての使用の試み、成功した使用、使用期間、および/または
タグテーブルに関連した起動のようなその他の事象の経時的な記録である。2つ
の装置が、たとえ同一のソフトウエアインスタンスおよび同一の識別子を有して
いても、同一事象履歴を有することはありそうもない。事象履歴は、一人以上の
ユーザーよる特定の装置の使用の経時的な記録に基づいてもよい。
【0168】 図を用いた説明に戻る。図2には、本発明に従って構成されたシステム109
のアーキテクチャーの詳細を示す。図2を、本発明の全動作の総合的な記載の概
説に用いる。この説明全体を通して、本発明の各構成のより詳細な部分の記載に
は、他の図が参照される。
【0169】 システム109の動作において、ソフトウエア(SW1、SW2、SW3、S
W4とされている)のインスタンス(INST_SW)111〜114は、ソフ
トウエアベンダー101によって作成され、ベンダーストレージ110(記憶装
置)に格納される。一つ以上のソフトウエアベンダー110が存在してもよい。
ソフトウエアベンダー101の例としては、出版社(複製可能なパフォーマンス
の記録、または電子的に読み取り可能な本を作成)、コンピュータソフトウエア
開発者(コンピュータソフトウエアアプリケーションプログラムを作成)、デー
タ収集会社(情報データベースを作成)、個人プログラマ等がある。ソフトウエ
アベンダー101によって生成されるソフトウエア(SW)は、情報、データま
たはコードを含む実際のソフトウエアの内容(SW)を意味する。ソフトウエア
(SW)は、関連した名称(NAME_SW)を有してもよく、この名称は通常
ソフトウエアベンダー101によって割り当てられる。ソフトウエアの各インス
タンス(INST_SW)111〜114は、名称を持つソフトウエア(SW)
の別個の物理的な複製(コピー)として考えられる。すなわち、特定のソフトウ
エア(SW)に対する各ソフトウエアインスタンス(INST_SW)は、同一
の名称(NAME_SW)および同一のコード、データまたは他の情報内容を持
つソフトウエア(SW)のコピーに過ぎない。
【0170】 例えば、文書作成アプリケーションプログラムがソフトウエアベンダー101
によって作成され、名称(NAME_SW)に「ライト(Write)」が与え
られるならば、ライトプログラムを備えたバイナリまたは実行可能なコード、デ
ータまたは他の情報が、ソフトウエア(SW)と呼ばれる。ライトソフトウエア
(SW)の個別のコピー(例えば、プログラムのコピーを含む各ディスク)はこ
のソフトウエアの別個のインスタンス(INST_SW)であるが、同一のソフ
トウエア内容(SW)を持つ。したがって、図2において、各インスタンス11
1〜114は同一のソフトウエア内容(SW)を含んで各インスタンス111〜
114は同一の名称(NAME_SW)を持つか、または各インスタンス111
〜114は異なったソフトウエア(SW)(すなわち異なったデータ、コードま
たは他の情報)のコピーを示し、異なったソフトウエア内容(SW)を持つ各イ
ンスタンスの名称(NAME_SW)111〜114は通常異なる。
【0171】 タグサーバー(TS)102は、ベンダー101の要求に応じて、各ソフトウ
エアのインスタンス111〜114用の偽造が不可能な固有のタグ(TAG_I
NST_SW)120を作成する。本発明の好ましい実施形態では、一つの固有
のタグは、一つのソフトウエアインスタンスに対して準備され、このインスタン
スに関連付けられる。別の実施形態では、複数の固有のタグが一つのソフトウエ
アインスタンスに関連付けられることはあるが、好ましくは、2つの異なるソフ
トウエアインスタンスが共通の関連タグを共有することはない。
【0172】 要求されたタグを作成するために、TS102(図1)は、作成しようとする
タグのインスタンスに対する各特定ソフトウエアのコピーを取得する(図3A、
3Bおよび3Cのステップ150)。例えば、TSは、「ライト7.2」の一つ
のコピーを有してもよい。ここで、「ライト7.2」は、プログラムファミリー
ライトのリリースすなわちバージョンである。一般に、タグ102は、特定のソ
フトウエアインスタンス(INST_SW)(すなわち111〜114の一つ)
に関連した、偽造が不可能で固有のデータビットシーケンスである。後述するよ
うに、本発明の実施形態によれば、ユーザー装置104は、ソフトウエアインス
タンス111〜114に関連した有効なタグ120を最初に調べることなしに、
ソフトウエアインスタンス111〜114を使用することはできない。
【0173】 ソフトウエアインスタンス111〜114用のタグ120は、好ましくは、ス
トレージ装置200のタグテーブル210に格納される。ストレージ装置200
は、ユーザー装置104に結合されているか、またはユーザー装置104と一体
となっている。ソフトウエアインスタンス111〜114は、タグテーブル21
0に格納されているソフトウエアインスタンス(111〜114の一つ)に関連
したタグ120を引用し、このタグ120が使用状況を持つ場合にのみ、ユーザ
ー装置104で用いられることができる。タグの状況としては、例えば図6のタ
グテーブルの第2列に、「使用状況」が示されている。すなわち、一定のソフト
ウエアは、このソフトウエアのインスタンスにタグが存在する時にのみ、ランで
きる、という表示を有する。(侵害者は、この表示を除去するかもしれないが、
この場合、後述するタグのないソフトウエアに対する保護機構が適用される。)
このようにして、本発明の構成は、ユーザー装置104に存在するソフトウエア
インスタンスに特に関連した有効なタグを要求することによって、一定の実施形
態におけるソフトウエアの使用の権限を許可して与える。
【0174】 さらに後述するように、タグの作成、タグの確認およびタグの実施を追跡およ
び管理するために、本発明に従って構成されたシステムの構成部分の能力は、ソ
フトウエア使用権限に対して、従来のシステムよりも固有の利点を提供する。図
2のシステム109のまだ説明をしていない構成部分について説明する前に、タ
グ作成について詳述する。
【0175】 図3A、3Bおよび3Cは、本発明に従って構成されたタグサーバー102に
おけるタグ作成処理中に行われる処理ステップの好ましい実施形態を示すフロー
チャートである。これらの図は、互いに似ているので、ステップ番号の多くは同
一であり、以下これらの図について同時に説明する。
【0176】 ステップ150において、タグサーバー102は、ローカルストレージから名
称を持つソフトウエア(NAME_SW、SW)のコピー111〜114を取得
する。このソフトウエアは、タグが付されるものである。さらに、タグサーバー
102は、ベンダー101からタグ要求(図2)を取得する。ステップ151A
(図3A),151B(図3B)および151C(図3C)において、タグサー
バー102は、固有番号(NUM_INST_SW)を生成する。図3Aのステ
ップ151Aでは、番号は単に固有である。しかし、図3Bのステップ151B
および図3Cの151Cでは、固有番号(NUM_INST_SW)は疎セット
118(図2)から選ばれる。
【0177】 疎セット118(図2)は秘密番号のセットであって、この秘密番号のセット
から名称を持つソフトウエア(NAME_SW、SW)のインスタンスそれぞれ
に対してインスタンス番号(NUM_INST_SW)が選ばれる。好ましくは
、利用可能な番号の範囲(例えば、特定のソフトウエアに1億のインスタンスが
存在し、64ビットにより定められる範囲においては100億以上の可能な番号
が存在する場合)に比較して、前記番号の数は比較的少ない。したがって、セッ
ト118は、疎(sparse:散在する、まばらな)と称される。
【0178】 疎であることより、敵対者または侵害者にとって、有効なインスタンス番号を
生成するのは困難である。全てのソフトウエアに対して一つの疎セットが存在し
てもよい。または、関連したインスタンスのセットにより決められた各特定のソ
フトウエアに対して、それぞれ異なる疎セットが存在してもよい。好ましい実施
形態では、一つの疎セット118が、全てのソフトウエアに対するインスタンス
番号の源として用いられる。しかし、各特定のソフトウエアに対して別の疎セッ
ト118を持つことによって、より単純なインスタンス番号生成の配布管理を可
能にしてもよい。
【0179】 例えば、上述の「ライト」アプリケーションソフトウエアに関連した疎セット
番号118(SPARSE_SET_SW)が存在してもよい。この疎セット番
号118から、ライトソフトウエアの各インスタンス(INST_SW)に対し
てインスタンス番号(NUM_INST_SW)が選ばれる。安全上の理由から
、疎セットの新しい番号は、要求があり次第、例えば光電計数装置(本発明では
図示せず)のような物理的処理へのアクセスによって、実現または生成されても
よい。
【0180】 ステップ152(図3Aおよび3B)において、タグサーバー102は、ソフ
トウエア(SW)の内容またはその内容の一部についてハッシュ関数値を算定す
る。好ましい実施形態において、同一ソフトウエア内容SWを有する2つ以上の
ソフトウエアインスタンス(INST_SW)111〜114にタグが付されて
いる場合、ハッシュ関数値HASH_SWがソフトウエア(SW)に対して1回
だけ算定される。これは、各インスタンス111〜114が同一のコード、情報
および/またはデータを含む、すなわち同一のSW内容を持つからである。さら
に、値HASH_SWは、全てのソフトウエアのコピーごとに検索または生成さ
れるよりも、タグサーバー102によって1回検索または生成されるだけを必要
とする。本発明のこの構成は、同一ソフトウエア(SW)の多くのインスタンス
にタグを付す際には、タグ作成時間を節約する。このような場合、ハッシュ関数
値HASH_SWの算定の必要性は1回限りである。別の実施形態では、ソフト
ウエア内容の一部のみについてのハッシュ関数値の算定によって、さらに最適化
される。これは、タグサーバー102とユーザー装置104〜107の両者にお
けるハッシュ関数値の確立に必要な時間が、さらに減少するからである。
【0181】 ステップ153(図3A、3Bおよび3C)においてソフトウエアインスタン
ス(INST_SW)に関連したタグに組み込まれる第2ハッシュ関数値HAS
H_INST_SWが算定される。ステップ153は、ステップ152とは異な
る。ステップ152において算定されたハッシュ関数値HASH_SWは同一ソ
フトウエアSWのすべてのインスタンスINST_SWに対して同一であるのに
対し、ステップ153においてはハッシュ関数値HASH_INST_SWが同
一ソフトウエアSWの各NUM_INST_SWに対して固有である。一実施形
態では、第2ハッシュ関数値HASH_INST_SWは、ソフトウエアの名称
(NAME_SW)、ソフトウエアインスタンスの固有番号(NUM_INST
_SW)およびステップ152で既に算定されたハッシュ関数値HASH_SW
を共に組み合わせる。名称およびソフトウエアのみ、またはソフトウエアおよび
番号のみ、などのような他の組み合わせは、当業者には理解される同様の機能を
提供するものとして認識される。このようなハッシュ関数を介してエンコードさ
れたデータの組み合わせは、本発明の範囲内に含まれる。
【0182】 ハッシュ値HASH_INST_SWがソフトウエア111〜114の各イン
スタンスに対して算定された後に、署名されたタグ(図3A)または署名されて
いないタグ(図3Bおよび3C)が、ステップ154Aおよび154Bによって
、これらのインスタンス111〜114に対して作成される。図3Aのステップ
154Aにおいて署名されたタグがソフトウエアインスタンス111〜114に
対して作成されるのに対し、図3Bおよび3Cのステップ154Bにおいては、
署名されていないタグがソフトウエアインスタンス111〜114に対して作成
される。準備されたタグのデジタル署名のある部分によって、たとえインスタン
ス番号が、例えば続き番号であるために予測できる場合であっても、偽造不可能
であることを、署名されたタグが保証する。署名されていないタグは、この保証
機能を提供することはできないが、ステップ154Bにおいて生成された署名さ
れていないタグは、好ましくは疎セット151Bから選ばれたインスタンス番号
NUM_INST_SWを含むので、この代わりの方法によって、タグの偽造不
可能が保証される。署名されたタグTAG_INST_SWは、ステップ154
Aにおいて、以下のように算定される。 TAG_INST_SW=(NAME_SW,NUM_INST_SW,HASH_INST_SW, SIGN_TS(HASH_INST_SW)) ここで、SIGN_TSは、HASH_INST_SWハッシュ関数値におい
て実行されるデジタル署名関数である。デジタル署名SIGN_TSは、全ての
考えられる敵対者および図2のタグサーバー102自体を除いたあらゆる団体(
ユーザー装置、ベンダー等)から秘密に保たれているデジタル的な鍵(キー)で
ある秘密鍵(プライベイトキー)PRIVATE_KEY_TS117を用いて
、タグサーバー102によって生成される。
【0183】 署名されていないタグTAG_INST_SWは、ステップ154B(図3B
)において以下のように算定される。 TAG_INST_SW=(NAME_SW,NUM_INST_SW,HASH_INST_SW)
【0184】 タグサーバー102によってタグTAG_INST_SWが生成された後、タ
グは、好ましくは、図2のタグ120によって示され、図3Aおよび3Bのステ
ップ156に関して後述するように、タグを要求するソフトウエアベンダー10
1および保護センター103に安全に送られる。保護センター103では、図9
の符号129,138に関して後述するように、タグ120は各種のタグデータ
ベースに格納される。
【0185】 ソフトウエアインスタンス(例えば111)に関連したタグ120、およびタ
グ120がタグサーバー102によって準備される方法は、本発明の多数の重要
な目的に合致する。 (1)関連した有効タグ120、好ましくは装置(例えば104)のタグテー
ブル210(図6に詳細に示されている)に保持されているタグ120を装置1
04が格納またはアクセスしない限り、かつ、このタグ120が、関連インスタ
ンス111の適切な使用を許可または指示するタグテーブル210に使用状況(
図6の第2列)を持たない限り、装置104はベンダー101のソフトウエアイ
ンスタンス111を使用することはできない。 (2)装置(例えば104)と保護センター103の間の後述する命令された
呼び出し手順(図12、13Aおよび13B)によって、保護センター103は
、タグ属性を管理、認証、追跡、確認および一般的に監督し、タグ120に関連
したソフトウエアインスタンス111が、ソフトウエアインスタンス111に対
するベンダー101の使用管理ポリシーに従って用いられていることを保証する
。この使用管理ポリシーは、好ましくは保護センター103によって保持されて
いる。 (3)タグ120の偽造が不可能で、タグ120が好ましくは安全な方法で送
られることより、ベンダー101(またはタグサーバー102)からタグ120
を合法的に取得し、このソフトウエアインスタンス111に対するベンダー10
1の規定された使用管理ポリシー(この図には示さず)に従って関連したソフト
ウエアインスタンス111〜114を使用するユーザーまたはユーザー装置10
4のみが、このタグ120を持つことについて保証される。本発明のこの構成は
、敵対者または侵害者が有効なタグ120のコピーの生成および/または使用を
試みるのを防止する。これにより、本発明の機構によって、コピーする敵対者/
侵害者にも、ソフトウエアインスタンス111および関連したタグ120を用い
る合法的なユーザーまたはユーザー装置に対するのと同様に、報復措置を作り出
す。
【0186】 タグ120には、いくつかの別の構成が考えられる。別の構成の一つでは、以
下に示すように、フィールドのサブセットを持つ。特に、ハッシュ値HASH_
INST_SWはタグ120に含めず、NAME_SWおよびNUM_INST
_SWをタグ120に残す。このような実施形態の利点は、システム構成要素(
例えば101、102、103、104)の間で送られ、各タグ120について
算定されるデータが少ないことである。不利な点は、タグ120のオーナーが、
異なる特定のソフトウエアインスタンス111にタグ120を関連させることを
試みるかも知れないことである。これは、値HASH_INST_SWがHAS
H_SWに依存し、インスタンス111内のソフトウエアSWが正しいか、また
は変更されていないかを確認するために、HASH_SWが用いられるので、H
ASH_INST_SWがタグ120で利用される際に防止される。
【0187】 第2の別のタグ構成は、NAME_SW、NUM_INST_SW、HASH
_SWである。この構成を用いることにより、全てのタグ120は、その内容(
すなわちSW)がHASH_SWに対するハッシュ関数に一致するソフトウエア
に関連される。この方法の不利な点は、正しく見える違法タグ120を、侵害者
が生成できる可能性があることである。ソフトウエアの使用を保護するために選
ばれる本発明の実施形態の複雑性に応じて、本明細書に記載のシステムは、各種
の記載した問題を解消するように構成されている。
【0188】 別の例として、タグ120の第3の別の構成は、NAME_SW、NUM_I
NST_SW、HASH_SW、SIGN_TS(NAME_SW、NUM_I
NST_SW、HASH_SW)である。このタイプのタグ120では、デジタ
ル署名がタグの偽造を防止する。これは、好ましくはタグサーバー102のみが
署名関数SIGN_TSの演算に必要な秘密鍵SECRET_KEY_TSを持
つからである。
【0189】 取り除かれてもよい別のタグ領域は、領域NAME_SWである。この実施形
態の利点は、システム構成要素間で送られるデータの量を減らすことである。タ
グがINST_SWをランまたは使用するのに存在しなければならない名称以外
の手段によって、ソフトウエアインスタンスINST_SWを示すのであれば、
名称は不必要となる。名称のないタグは、例えば所定のソフトウエアベンダー1
01から配布されるソフトウエアが1種類しか存在しない場合、ソフトウエアベ
ンダー101の識別子は、このベンダーによって生成されたソフトウエアに対す
る名称として用いられることができる。代わりに、NUM_INST_SWが、
全ての種類のソフトウエアを通して固有である場合、NAME_SWは不要であ
る。
【0190】 タグ120から取り除かれてもよい別の領域は、NUM_INST_SWであ
る。このタグ構成の利点は、ネットワーク100上を送られるデータの量が減少
し、固有の番号選択処理(例えば図3A、3Bおよび3Cに説明されているステ
ップ151)を必要とすることなく、より簡単なタグ作成方法を用いることがで
きることにある。不利な点は、同一のNAME_SW(この領域が保持されてい
るならば)を持つ、異なるタグの識別ができなくなって、二重のインスタンス1
11〜114が許容されてしまうことである。
【0191】 タグの別構成の他の実施形態は、任意の領域Aを含む。ID(SP)(図4の
209−A)と表されたユーザー装置(例えば104)の管理プログラム(後述
する図4の符号209)の固有識別子が、例えばハードウエア特定装置、可能な
らば装置104の管理プログラム209が初めて起動された時点、および可能な
らば保護センター103から装置の管理プログラム209によって安全に取得さ
れた固有番号と、装置内の少なくとも一つのメモリ位置の値との組み合わせから
算定される。これは後に詳述するが、ここでは各種のタグ作成処理の理解のため
に記述する。ユーザー装置104〜107で用いられるソフトウエアインスタン
ス111に関連したタグ120にユーザー装置104〜107の管理プログラム
209の識別子ID(SP)209−Aを含めることで、以下に詳述するように
、割安な保護センター103呼び出しをサポートすることができる。
【0192】 本発明の別のタグおよびタグ作成の実施形態に含まれる任意の領域は、ソフト
ウエアインスタンスINST_SW内データの特定の位置における指紋リストで
ある。指紋について後述するが、その名称が示唆するように、指紋はソフトウエ
アインスタンスから選ばれる一部分もしくは複数部分またはデータ領域の固有の
エンコードされたものである。指紋の使用方法は、図3Cのステップ151Dお
よび151Eに示されている。ここで、位置が選ばれ、次にこれらの位置におけ
る指紋が算定され、その結果に関してハッシュが算定される。インスタンスに関
連したタグ120内に、ソフトウエアインスタンス111の指紋を含めることに
よって、ユーザー装置104〜107における管理プログラム(ソフトウエアの
アクセスに用いられる、図4の符号209)が、INST_SWとタグの関連付
けが正しいことを確認することができる。この関連付けが正しいかは、INST
_SWにおいて同一位置指紋検査(詳細な定義は図6による)を行って、関連し
たタグの指紋リストと比較することによって確認する。指紋の使用がHASH_
SWの関数とオーバーラップしてもよく、これによりタグとソフトウエアインス
タンスの関連付けが正しいことの確認には、大きな効果が生じる。
【0193】 例えば、百科事典またはビデオのような大きなソフトウエアインスタンスIN
ST_SWに対して、管理プログラムによるINST_SWの全ての走査を必要
とするHASH_SWの算定には、相当の時間を要する。INST_SWに関連
したタグがタグサーバーにより算定される前記固定位置の指紋値を含むと、管理
プログラム(図4の符号209)はINST_SWのこれらの位置にのみアクセ
スして、該当の指紋値を算定するだけでよい。前記の指紋を用いることによって
、追加的な保護上の利点が生じる。これは、タグサーバーによって指紋が算定さ
れる位置が、侵害者の権利侵害に応じて、経時点に変化できるからである。
【0194】 ソフトウエアSW全体ではなく、SWの特定の部分のみについてタグサーバー
102によってハッシュ関数値HASH_SWが算定される(図3AおよびBの
ステップ152)ならば、同様の効率および安全性が得られる。タグサーバー1
02によって指紋が算定されたソフトウエアインスタンスINST_SW111
〜114における特定の位置は、タグ120内に指紋を明示的に伴うか、または
インスタンスINST_SWもしくは装置104〜107の管理プログラム(図
4の符号209)に含めてもよい。タグ120にこれら指紋位置を用いることの
利点は、送られるインスタンスINST_SWごとに、指紋が変化でき、指紋は
固有のNUM_INST_SWの一種として用いられ、ソフトウエアコードが変
更していることのランダムチェックを可能にすることである。
【0195】 したがって、以下の領域組み合わせからなるタグ120は、全て本発明の範囲
内に含まれる。;図3A、3Bおよび3Cの処理結果として生成されるタグ。;
前記の組み合わせのいずれかに、ID(SP)のようなユーザー装置(例えば1
04)に対する管理プログラム識別子209−A(図4)を加えたもの。ただし
、ID(SP)の値は、ハッシュ関数値HASH_INST_SWの算定に組み
合わされる。;前記の組み合わせのいずれかに、ソフトウエアSWの内容に関連
した指紋リストを加えたもの。ただし、これらの指紋の値は、ハッシュ関数値H
ASH_INST_SWの算定に組み合わされる。;前記の領域の組み合わせの
いずれかの上位セット。前記のタグおよび処理の記述は、本発明の実施形態の特
定の例について記載しているが、当業者には、複数の特定のソフトウエアインス
タンスの一つの使用を一意に識別および監督するために、本発明によって提供さ
れていると理解される。
【0196】 タグ120がソフトウエアインスタンス111〜114に対して作成されると
、タグ120は、ステップ156において、タグサーバー102によって保護セ
ンターのデータベース(図9の符号129,138に関して後述される)、ユー
ザー装置104、ソフトウエアベンダー、またはこれら団体の組み合わせに対し
て安全に送られる。
【0197】 図2に戻って、タグ120は、タグサーバー102によって、一つ以上のソフ
トウエアベンダー101、保護センター103およびユーザー装置104に安全
に配布される。タグ120が、タグサーバー102によってソフトウエアベンダ
ー101には安全に送られるが、ユーザー装置104〜107には送られない場
合、ソフトウエアベンダー101によってソフトウエアインスタンス111〜1
14と共に、タグ120はユーザー装置104〜107に送られる。別の実施形
態では、ソフトウエアインスタンス111〜114は、タグ120とは別個にユ
ーザー装置104〜107によって取得される。タグ120は、タグサーバー1
02からユーザー装置104〜107によって直接取得される。代わりに、タグ
120は、一つ以上の保護センターセンタ103から取得することができる。
【0198】 ソフトウエアのインスタンス111〜114は、安全に配布されることを要求
されないが、それらは本発明のシステム109の代案実施形態には要求されるこ
とがある。ソフトウエアのインスタンス111〜114の配布は、いくつかの方
法で行うことができる。インスタンス111〜114は、コミュニケーションネ
ットワーク100を通じサポートされるダウンローディング機構を介してソフト
ウエアベンダーからダウンロードすることができる(図1)。ダウンローディン
グ機構の例は、File Transfer Protocol(FTP)、情
報を受領者に送るPUSHプロトコル、TCP/IPおよびWorld Wid
e Web関連のプロトコル、ならびにコンピュータープロセッサの間のバスを
介してデータを送るために用いられる他のプロトコル、または例えばインターネ
ットを代表とするコミュニケーションネットワーク100のような他のタイプの
コンピューターネットワークである。
【0199】 あるいは、ユーザー装置104は、ソフトウエアベンダー104と同じ固体で
あることもないこともあり得るユーザー装置メーカー(図示されず)によりあら
かじめインストールされるソフトウエアのインスタンス111〜114をあらか
じめ備えることができる。例は、ユーザー装置104の中のファームウエアに組
み込まれたソフトウエアのインスタンス111〜114である。他の代案として
、ユーザー装置104のユーザー(この図には示されていない)は、ソフトウエ
アのインスタンス111〜114をユーザー装置により読み取り可能な媒体、例
えば磁気的に符号化されたハードディスク、またはフロッピー(登録商標)ディ
スク、または光学媒体、例えばCD−ROM、DVDディスク、ビデオ、または
オーディオテープ、ホログラフィック格納装置、または情報媒体としての別の媒
体を通じて購入することができる。ソフトウエアのインスタンス111〜114
を入手するためのユーザー装置104〜107に対する前記の代案のそれぞれに
おいて、本発明によれば、ソフトウエアのそのインスタンスを用いるために必要
とされる付随タグ120がソフトウエアのインスタンスに直接付随するか、また
は別個に好ましくは安全に前記装置に伝送されることができる。
【0200】 図2に示されたユーザー装置104は、ユーザー装置結合機構200への結合
を含む。ユーザー装置ストレージ200は、ソフトウエアの各インスタンス11
1〜114、タグテーブル210および指紋テーブル126を維持することがで
きる。指紋およびタグテーブル126,210の目的および詳細は、後述される
【0201】 図4は、本発明により構成されたユーザー装置104の好ましい構成を図示す
る。ユーザー装置104は、ユーザー装置ストレージ200、プロセッサ201
、メモリ202、相互接続機構203、入/出力機構204を結合するインター
ナルバス206を含む。ユーザー213は、ユーザー装置104と相互に作用し
合う。ユーザー213は、好ましくは人間であるが、本発明は、この中に説明さ
れている使用管理が、大きな、人間以外の相互作用環境内の電子要素において実
行されるシステムに適用することができる。この図において、ユーザー213は
、本発明の目的を明確に示すためにソフトウエアのインスタンス111〜114
と直接に相互作用していることを示されている。実際には、ユーザー213は、
プロセッサ201のコントロールの下でソフトウエアのインスタンス111〜1
14との間で直接入出力を行うユーザー入/出力機構204と、実際にインター
フェースすることができる。
【0202】 ユーザー入/出力機構204は、キーボード、マウス、マイクロフォン、スピ
ーカ、モニタ、ヘッドアップ、またはバーチャルリアリティーディスプレイ、ま
たはユーザー装置104と相互作用するユーザー213、または他の機構(すな
わち人間ではない)との間に情報を交信するために用いられる他の入/出力装置
の1つ以上であることが考えられる。入/出力機構204は、またユーザー装置
104がそれによりソフトウエアのインスタンス111〜114を備える手段と
して使用されることができる。この場合、入/出力機構204は、CD−ROM
、またはDVDドライブ、スキャナ、フロッピーディスク、またはユーザースト
レージ装置200、またはメモリ202、またはユーザー装置(例えば、104
)に含まれ、または付随することのできるバッファ(図4には示されていない)
に情報をロードするのに用いることのできる他の機構を含むことができる。
【0203】 相互接続機構203は、コミュニケーションネットワーク100にインターフ
ェースするために用いられ、モデム、ネットワークインターフェースカード、ワ
イヤレスレシーバ、またはコミュニケーションに用いられる装置であることが考
えられる。
【0204】 ハード、フロッピー、または光学ディスクドライブ、RAIDアレー、ファイ
ルサーバー、または他の読み/書き格納機構であることの考えられるユーザース
トレージ装置200は、本発明により用いられる各種の要素およびデータを保持
するのに用いられる。特にこの実施形態に図示されたように、ユーザーストレー
ジ装置200は、ソフトウエアのインスタンス111〜114、タグテーブル2
10、指紋テーブル126、管理プログラム209(図4)およびカーネル20
8を含むオペレーティングシステム207を保持する。この分野で理解されてい
るようなオペレーティングシステム207は、ユーザー装置104のスタートア
ップ後に通常メモリ202にロードされ、ユーザー装置104の各種の要素の総
合的動作をコントロールするためにプロセッサ201と関連して実行する。ある
いは、本発明のオペレーティングシステムおよび要素プロセッサは、本発明を具
現化するシステムの構成に組み込むことができる。
【0205】 ユーザー装置104の例は、パーソナルコンピューター、またはワークステー
ションである。プロセッサ201の例は、Intelベースのプロセッサであり
、例えばCeleron、Pentium(登録商標)、PentiumII、P
entiumIII 、または80X86ファミリ、またはSPARCベースのRI
SCテクノロジを用いるプロセッサ、またはMIPSプロセッサである。これら
のプロセッサの名称は、代表的なマイクロプロセッサメーカーの商標である場合
がある。オペレーティングシステム207の例は、Windows(登録商標)
をベースとするあらゆるオペレーティングシステムで、例えばWindowsN
T、Windows98、Windows95、WindowsCE、またはW
indows3.1で、すべてMicrosoft Corporation
of Redmond,Washington製であり、またオペレーティング
システム207は、例えば(登録商標)ベースのシステムで、例えばSun M
icrosystems Inc.of Mountain View,Cal
iforniaからのSolarisである。ユーザー装置104の他の実施形
態は、カスタム、または組み込まれたオペレーティングシステム207をもつ特
殊プロセッサ201を用いる専用機であることが可能である。この分野の熟練者
は、前述のユーザー装置104がマイクロプロセッサにより制御されるあらゆる
タイプの装置であり得ることを理解すべきである。本発明は、図4に示されたユ
ーザー装置104の構成により限定されない。むしろユーザーに対してソフトウ
エアにアクセスすることのできるあらゆる装置は、本発明の範囲に含まれること
を意味している。
【0206】 本発明のシステムの使用管理の構成を提供するために管理プログラム(SP)
209が設けられ、オペレーティングシステム207、タグテーブル210、ソ
フトウエアのインスタンス111〜114および選択的に指紋テーブル126(
図4)に関連して実行する。管理プログラム(SP)209は、好ましくはオペ
レーティングシステム207とは別個のものであるが、その延長部分であること
が可能である。管理プログラム(SP)209は、また好ましくはいずれかのプ
ログラミング言語(例えば、C、C++、Java、Assembler、また
は他の言語)で記載され、好ましくはオペレーティングシステム207のある機
能にインターフェースし、制御するためにオペレーティングシステム207によ
り設けられるアプリケーションプログラミングインターフェース(API)を使
用する。あるいは、組み込まれたシステムでは、ユーザー装置104の中でユー
ザー装置104、オペレーティングシステム207、管理プログラム(SP)2
09および他のデータおよび/または要素が電子回路を介して組み込まれ、完全
に代行され、またはメモリに格納されることができる。
【0207】 本発明の好ましい実施形態においてユーザー装置104のスタートアップ(す
なわちパワーアップ)するごとにオペレーティングシステム207、管理プログ
ラム(SP)209およびタグテーブル210は、ユーザーストレージ装置20
0からメモリ202に読み込まれる。ユーザー装置104の最初のスタートアッ
プ時に、好ましくは装置の管理プログラム209(図4)に対する識別番号ID
(SP)209−Aは算定され、安全な位置に格納される。前記の用語集におい
て考察されているこの識別番号209−A(テーブル1、ID(SP))は、下
記のある組み合わせにより算定される:利用可能な場合のハードウエア識別番号
;利用可能な場合の保護センター103(図2)により提供される番号;および
装置104の中の高精度タイマー(例えばマイクロセカンド)。本発明のシステ
ムにおいて管理プログラム(SP)209は、ソフトウエアのインスタンス11
1〜114とオペレーティングシステム207との間の使用管理インターフェー
スとして用いられる。管理プログラム(SP)209により提供される使用管理
の動作構成が詳細に説明される前に、ソフトウエアのインスタンス111〜11
4および付随のタグ120のユーザー装置104へのインストールが考察される
【0208】 図5は、本発明の好ましい実施形態によるユーザー装置104に対するソフト
ウエアインスタンスINST_SWおよび付随のタグTAG_INST_SWを
インストールするステップを図示する。タグ120およびソフトウエアのインス
タンス111〜114の両者は、ユーザー入/出力機構204によりユーザー装
置104にロードされることによりインストールされることが可能であり、ある
いは相互接続機構203によりコミュニケーションネットワーク100からの受
け取りを介して電子的にインストールされることができる。図5におけるステッ
プは、好ましくは本発明の一部として提供される管理プログラム(SP)209
コードを実行するプロセッサ201により行われる。管理プログラム209は、
例えばカーネル208への延長としてオペレーションシステム207に存在する
ことができるか、またはカーネル208およびオペレーティングシステム207
の上の別個の処理として存在し、実行することができる。
【0209】 いずれの場合にもユーザー装置104(この例においてはパーソナルコンピュ
ーターであるが、本発明の手段は、発明の主旨に基づくあらゆる他の装置である
ことができる)は、図5のステップ250における特定の名称をもつソフトウエ
ア(NAME_SW,SW)のインスタンスINST_SWを入手する。ステッ
プ251においては、ユーザー装置104はステップ250において入手される
名称のソフトウエアに付随するTAG_INST_SWを安全に入手する。ステ
ップ252においては、本発明のシステムがタグTAG_INST_SWが署名
された、または署名されていないタグであるかを確かめる。ステップ252は、
SIGN_TS関数値がタグTAG_INST_SWの中にあるかないかを確か
めるために受け取ったタグ情報を調べることにより行うことができる。次に管理
プログラムは、下記のようにタグおよびソフトウエアのインスタンスへのそれの
正しい付随を確かめることを行う。
【0210】 本発明の好ましい実施形態においては、図3A、3B、または3Cのステップ
によりタグサーバー102により作り出され、署名されていないタグに対してス
テップ154A(図3A)により、また署名されていないタグに対して154B
(図3および3C)により作り出された内容をもつ。タグTAG_INST_S
Wが署名されたタグであればステップ(図5の253)は、管理プログラム(S
P)209の一部を行うことにより、ハッシュ関数値V=HASH(INST_
SW)およびハッシュ関数値V=HASH(NAME_SW、NUM_INST
_SW、V)を算定する。管理プログラム209は、次に値UをタグTAG_I
NST_SWに見られる値HASH_INST_SWと比較する。2つの比較さ
れた値が合致しない時にはタグは無効である。値UおよびVが合致すると管理プ
ログラム209は、タグサーバー102の公開鍵PUBLIC_KEY_TS(
図2の116)の使用により、タグTAG_INST_SWの中にあるSIGN
_TS(HASH_INST_SW)のデジタル署名を確認する。SIGN_T
S(HASH_INST_SW)におけるタグサーバーの署名が確認されない時
には、タグTAG_INST_SWは有効ではない。ステップ250において得
られた名称のあるソフトウエア(NAME_SW、SW)のインスタンスがステ
ップ253の中でステップ251において得られた無効タグTAG_INST_
SWに付随していることがわかれば、ソフトウエアのインスタンスはステップ2
54において拒絶される。
【0211】 タグTAG_INST_SWが署名のないタグであれば、ステップ257は、
署名されたタグの場合に対し前記において用いられた同じステップにより、タグ
TAG_INST_SWの中にあるハッシュ関数値HASH_INST_SWに
対するハッシュ値を確認するために、管理プログラム(SP)209の一部を実
行する。HASH_INST_SW値が正しく判定されない時には、タグTAG
_INST_SWにエラーがあり、無効タグTAG_INST_SWに付随する
ステップ250において得られる名称のあるソフトウエア(NAME_SW、S
W)のインスタンスは、ステップ254において拒絶される。
【0212】 ステップ254における拒絶は、ユーザー装置104がステップ250および
251において得られたソフトウエアINST_SWのインスタンスおよびその
付随のタグTAG_INST_SWの廃棄、または除去、または使用を許さない
ことを、単に意味することができる。ステップ256もまた実行されることによ
り、ユーザー装置(例えば104)に報復措置を働かせる。ユーザー装置104
に対する報復措置は、装置をその後停止し、または機能停止することを含むこと
ができる。報復措置は、この発明の使用管理機能に関してさらに詳しく考察され
る。
【0213】 ハッシュ関数値および署名SIGN_TS(HASH_INST_SW)は、
署名されたタグに対してステップ253において確認される時、または署名され
ていないタグに対してハッシュ関数値HASH_INST_SWがステップ25
7において確認される時には、タグに付随するソフトウエアのインスタンスIN
ST_SW(図2の111〜114)をユーザーストレージ装置200に格納し
、またタグにステータス“INSTALLED”を取り付けられたタグテーブル
210にソフトウエアのインスタンス(例えば111)に対する付随のタグTA
G_INST_SWを格納する(後に詳述されるように、図6に詳細に示された
テーブル210の第1欄に)。
【0214】 タグがその中で管理プログラム識別番号ID(SP)209−Aを含む代案実
施形態において、管理プログラム209は、タグ120の中の管理プログラム識
別番号209−Aがユーザー装置104に格納された管理プログラム識別番号2
09−Aと同じであることを確かめる。タグ120がその中でソフトウエア内容
SWの特定の位置に基づく指紋リストを含む代案実施形態において、管理プログ
ラム290は、指紋がソフトウエアSWにおける同じ特定の位置において計算さ
れた指紋と合致することを確かめ、前記の合致は前記の規定に記載され、この中
で詳しく説明されているように同じ位置の指紋に基づいている。
【0215】 図6は、凡例としてのタグテーブル210の内容を図示している。一般にタグ
テーブル210は、ユーザー装置104のユーザー213、または装置104自
体がソフトウエアのインスタンス111〜114の使用を許されているかの決定
を行うために管理プログラム(SP)209により要求される情報を含む。後述
する処理により管理プログラム209は、ソフトウエアのインスタンス111〜
114の使用の試みを検出することが可能であり、要求されるインスタンス11
1〜114に付随するタグTAG_INST_SWに対する使用管理特性を求め
るためにタグテーブル210に保持される情報をチェックすることができる。
【0216】 定期的に管理プログラム(SP)209は、ユーザー装置104を保護センタ
ー103(図2)とインターフェースさせる呼び出し手順を実行する。呼び出し
手順中、呼び出しを行っているユーザー装置104にインストールされたソフト
ウエアの各インスタンス111〜114に対するタグテーブル210のタグ情報
は、保護センター103(図2)の確認プログラム(図9の315)により確認
されることにより、ユーザー装置104の管理プログラム209に、ユーザー2
13が使用を要求しているソフトウエアのインスタンス111に関して使用管理
判定を行うことが指示される。
【0217】 図6は、本発明の好ましい実施形態における装置(すなわち104)のタグテ
ーブル210を示す。インストールされた各ソフトウエアのインスタンス111
〜114に対して、図5のステップ251を介して得られた各有効なタグTAG
_INST_SW120は、タグテーブル210の“TAGS”のラベルをもつ
第1欄に格納されている。タグテーブル210のTAGS欄の中のタグは、TA
G_INST_SW1、TAG_INST_SW2、TAG_INST_SW3
、TAG_INST_SW4およびUNTAGGED_SWのラベルをもつ。詳
述されるタグテーブル210の中の他の情報は、各タグに対してUSAGE S
TATUSリスト(第2欄)、ACTION TIME(第3欄)、RUN C
OUNT(第4欄)およびUSE TIME(第5欄)を含む。管理プログラム
(SP)209は、各タグエントリー(すなわち各タグテーブル列)に対するタ
グテーブル情報を使用することにより、該当タグTAG_INST_SWに付随
するソフトウエアの各インスタンス111〜114の使用の要求をどう処理する
かを決める。
【0218】 簡単に説明すれば、タグテーブル210のUSAGE_STATUS欄は、一
般に管理プログラム209に対し、ソフトウエアのインスタンス111〜114
が、ユーザー213、または装置104〜107に対して使用可能か否かを表示
する。ソフトウエアの使用が許される時には、ステータス欄は“CONTINU
ED”、または“INSTALLED”を示すのに対し、使用が否認される時に
は、この状態は“GC_DISABLED”の語により示される。“REMOV
ED”ステータス語が次に続く“INSTALLED”は、ソフトウエアのイン
スタンス111〜114に対するタグTAG_INST_SWnが、以前にはユ
ーザー装置104にインストールされていたがもはやインストールされておらず
、したがって使用可能ではないことを示す。ACTION TIME欄は、管理
プログラム(SP)209(図2)により行われた最後のステータス判断(例え
ば、説明されるべき、最後の呼び出しおよびタグ確認手順)のタイムスタンプ(
例えば日時)を示す。タグテーブル210のRUN COUNT欄は、タグTA
G_INST_SWn(ただし、nはこの例では1から4の数字である)に付随
するソフトウエアのインスタンス111〜114がユーザー装置104〜107
に用いられた関数を示す。最後に、タグテーブル210におけるUSE TIM
E欄は、TAG_INST_SWnに付随するソフトウエアのインスタンス11
1〜114が装置と保護センターとの間の最後の呼び出し手順以来、または他の
実施形態ではインストールされて以来経過した使用全時間を示す。
【0219】 各タグ(第1欄)に付随する各種の領域(すなわち列)は、この中で説明され
た各種の目的のために、この発明のシステムにより用いられる。タグは、付随の
列の内容に基づいて特定のソフトウエアインスタンス111〜114が適性に、
または有効に使用されることができることを確かめるために調べなければならな
いタグテーブル210の列を特定するのに用いられる。選ばれた列の現在のUS
AGE_STATUS領域は、ソフトウエアインスタンス(すなわちこの列の1
11〜114の1つ)の使用が許されるか否かを判定する。
【0220】 使用が許される時に説明されるように管理プログラム(SP)209は、使用
されているインスタンス111〜114に対する使用時間およびランカウントを
追跡することができる。この情報は、ユーザー装置104〜107の事象履歴を
構成するために使用することが可能であり、ソフトウエアのインスタンス111
〜114のpay−per−use、またはpay−per−viewでの使用
の追跡のような他の目的にも用いることができる。事象履歴は、すべての試みら
れた使用、完了した使用、使用時間および装置でのパワーアップのような他の事
象のすべての時間的記録である。2つの装置により、それらがたとえ同じソフト
ウエアインスタンスおよび同じ識別子をもっていても同じ事象履歴をもつことは
考えられない。
【0221】 ある実施形態において2つの装置は、同じソフトウエアインスタンスおよび同
じタグ、または管理プログラム、または装置識別番号をもつことはない。しかし
、ソフトウエアに対する狡猾な権利侵害者は、1つの装置のディスクイメージを
別のものに正確にコピーすることを試みることができ、この場合にはタグ、装置
および管理プログラム識別子は、正確に複製されることがあり得る。本発明は、
ある実施形態においてその識別子(例えばタグ120(図6の第1欄)、装置間
のSP ID209−A)に特定のプロセッサ、またはハードウエアシャーシを
付随させる情報、例えばハードウエアプロセッサ識別番号(すなわち、例えばプ
ロセッサの通し番号)を含めることを固有の識別子の少なくとも1つ(すなわち
ソフトウエアタグ120、または管理プログラム識別番号209−Aの1つ)に
とって可能にすることにより、このような侵害行為の回避を意図する。すなわち
、侵害者が全ディスク情報を複製し、複製されたディスクを別の装置に移すこと
により、本発明の使用管理保護をくぐり抜けることを試みる時、本発明はハード
ウエア装置識別機構を情報の中に組み入れ、タグの確認中(すなわち、説明され
るべき呼び出し処理中)ハードウエア識別情報がそれにしたがってチェックされ
ることができる。
【0222】 この実施形態は、同じタグ情報を用いることに努める2つの装置を追跡するた
めに、保護センター103(図2)において保持される装置の使用統計値を用い
る発明機構を補填すると理解されるべきである。すなわち、侵害者が合法的な装
置104からのディスクを他の装置(すなわち107)にコピーする時には、こ
の発明の構成によれば、装置の海賊版107の違法なユーザーにとって、この装
置107を、合法的な装置104の使用を正確に複製する方法で使用することは
ほとんど不可能である。したがって、各装置104,107がタグの確認を行う
ために保護センター103(図2)に対して呼び出しを行う時に、保護センター
103(図2)は、装置104,107の1つを、他の装置(すなわち104,
107の他のもの)に関して不整合の使用または呼び出し統計値をもつとして検
出する。したがって、各装置104,107が呼び出しを行った場合、装置10
4,107の1つは、不正のソフトウエアの使用を試みるように見える。この点
で本発明のシステムは、継続メッセージ(後述される)に含まれる報復措置を実
行することにより、一方または両方の装置、装置のソフトウエア、装置の使用、
またはそれらの組み合わせの機能を停止することができる。違法または不法な使
用の正しい機関(例えば法務機関、ソフトウエアベンダー)への報告もまた本発
明により行うことができる。
【0223】 pay−per−use、またはpay−per−viewの例としてpay
−per−useソフトウエアのインスタンス111〜114が用いられるたび
に管理プログラム(SP)209は、そのインスタンス111〜114に付随す
るタグTAG_INST_SWに対し、タグテーブル210におけるRUN_C
OUNT領域(第4欄)にこれを記録することができる。RUN COUNT情
報は、後に請求の目的に用いることができる。
【0224】 またタグテーブル210に含まれているのは、この特定のユーザー装置104
に対する特定のタグテーブル210を一意に識別するヘッダ領域HEADER_
TAG_TABLEである。ヘッダHEADER_TAG_TABLEは、pe
r user213、またはper user device104ベースにお
いて固有であることが可能である。タグテーブル210がper user21
3ベースで固有である時には、ユーザー装置104での各ユーザーアカウント(
すなわちloginアカウント)は、そのユーザー213に対して独自のタグテ
ーブル210をもつことができる。per userタグテーブル210は、そ
のユーザー213のみにより購入されているはずのソフトウエアのインスタンス
111〜114に対して、タグTAG_INST_SWを使用されるために保持
することができる。言い換えれば、唯1つのタグテーブル210が図示されてい
るが、本発明はタグ使用および使用管理を多くのユーザー213において追跡す
ることが可能であり、また各ユーザーは別個のタグテーブル210をもつことが
できる。
【0225】 HEADER_TAG_TABLEは、好ましくはこのタグテーブル210に
対し固有の識別を示すID_TAG_TABLE領域を含む。ID_TAG_T
ABLE領域は、好ましくは管理プログラムの209ID(SP)209−Aの
識別を含む。さらにそれは、このタグテーブル210が付随するユーザー213
ID(USER)の識別ならびにユーザー装置104ID(DEVICE)(例
えば前述のように続き番号、またはhost−id)の識別およびオペレーティ
ングシステム207ID(OS)の識別を含むことができる。
【0226】 ユーザー識別ID(USER)の例は、ユーザーネームおよび/またはパスワ
ードの組み合わせであることができる。ユーザー装置ID(DEVICE)の識
別の例は、ホストネーム、host id、IPアドレス、続き番号、またはこ
のユーザー装置を、他のユーザー装置(例えば図1の104〜107)と一意に
識別することのできる他のハードウエアまたは装置についての特定の情報を含む
ことができる。
【0227】 ID(SP)209−Aは、例えば装置104〜107が高精度クロック(図
4の205)に基づいて最初に通電される時点に関する情報からなることができ
る。異なった装置(すなわち104,105)からの2つのID(SP)'s2
09−Aは、高精度クロック205がマイクロセカンドの精度である時には等し
くなるのはまれである。ID(SP)'sが等しくなることのリスクを低下させ
るには、ID(SP)209−Aが、利用可能ならばハードウエア続き番号およ
び利用可能ならば保護センター103(図2)からの番号を含むことも可能であ
る。侵害者予備軍にとってディスクイメージをコピーすることは可能であるが、
この場合には、2つの装置は同じID(SP)をもつかもしれない。上に簡単に
触れたように、またさらに考察されるように、これは、呼び出し中保護センター
103(図2)により捕捉されることができる。オペレーティングシステム20
7は、ID_TAG_TABLEに領域での識別に用いることができる続き番号
、または同等の固有の識別情報をもつこともできる。
【0228】 ヘッダ領域HEADER_TAG_TABLE(図6のタグテーブル210の
上列)は、また“最後の保護センター継続メッセージ”領域LAST_GC_C
M、“最後の呼び出し時刻”領域LAST_CALLUP_TIMEおよび“装
置パワーアップの回数”領域NUMBER_DEVICE_POWERUPSを
含む。さらにヘッダは、事象履歴を扱う二つの領域を含む:現在の事象履歴:H
ASH(EVENT_HISTORY)および前回の呼び出し時点の事象履歴の
ハッシュ HASH(EVENT_HISTORY_AS_OF_MOST_RECEN
T_CALLUP)。
【0229】 ヘッダのLAST_GC_CM領域(テーブル210の第1列)は、タグテー
ブル210更新情報の符号化を含む保護センター(GC)103(図2)からの
偽造不能のメッセージである継続メッセージ値およびユーザー装置の管理プログ
ラムSPに対するGC103(図2)により定められた措置および報復措置を含
む。タグテーブル210ヘッダにおけるLAST_CALLUP_TIMEは、
CALL_UP_POLICYにしたがっていつ次のGC103(図2)への呼
び出しが要求されるかを求めるために、管理プログラム209により、他のタグ
テーブルデータと組み合わせて使用される。NUM_DEVICE_POWER
UPSは、いつ呼び出しが必要であるかを定めるための方法の一部として使用さ
れる。
【0230】 事象履歴は、装置104〜107の各ソフトウエアインスタンス111〜11
4が実行される時、また場合によってはユーザー装置104〜107に対する外
部入力(すなわちユーザー装置213相互作用)が起きる時のような情報を含む
ことができる。事象履歴の目的は、その過去の挙動、または装置の使用に基づき
装置104〜107を識別することにある。これは、有用であると考えられる。
なぜならば、管理プログラム識別番号209−Aおよびタグ120のような静的
情報は、1つの装置104〜107から他の装置にコピーできるが、事象履歴に
具現化された動的情報は、同じ静的情報をもつ装置104〜107に対しても発
散することが考えられるからである。事象履歴は大きいことがあるから、事象履
歴のハッシュ関数値が、事象履歴自体に代わって保持される。好ましくは、2つ
の事象履歴ハッシュ関数値は、呼び出し手順中に処理を続けさせるために保有さ
れる。
【0231】 次に説明されるように好ましくは継続メッセージCM(図2の212:図13
Bの423)は、タグテーブルヘッダのLAST_GC_CM領域にも格納され
る(図6のテーブル210の上列)。CM212は、ユーザー装置104による
呼び出し手順中保護センター103(図2)により作られるメッセージであり、
好ましくは、保護センター103(図2)により呼び出しを実行する装置104
〜107に安全に伝送される。継続メッセージCM212は、ユーザー装置10
4に関する管理プログラム(SP)209がソフトウエアのいずれのインスタン
ス111〜114が引き続き使用することを許されるか、または不正使用のため
に機能停止されるべきかを決めることが可能な情報を含み、また装置の管理プロ
グラム209により実行すべき他の措置または報復措置を決定することもできる
【0232】 LAST_CALLUP_TIME領域は、発生した最後の呼び出し処理(説
明あり)のタイムスタンプを含み、NUM_DEVICE_POWERUPS領
域は、ユーザー装置104がパワーアップされた時点の数を含む。次に説明され
るように、各ユーザー装置104における管理プログラム(SP)209は、N
UM_DEVICE_POWERUPS、LAST_CALLUP_TIMEお
よびLAST_GC_CM継続メッセージのようなヘッダ情報を含むタグテーブ
ル210の正確な情報を維持する(必ずしも作り出すことはない)ことに対して
責任を負う。すなわち、継続メッセージ(CM)212(図2)は、保護センタ
ー103(図2)により作り出され、ユーザー装置104への管理プログラム(
SP)209に安全に渡される。これを受け取ると管理プログラム(SP)20
9は、好ましくは継続メッセージ(CM)212(図2)をパースし、タグテー
ブル210を最新の使用管理情報により更新する(すなわちタグテーブル領域を
更新)ことに責任を負う。
【0233】 ヘッダ領域HEADER_TAG_TABLEの中の情報は、一意的にタグテ
ーブル210を識別することが可能であり、ユーザー装置104にインストール
されたソフトウエアの各インスタンス111〜114に対する使用管理情報を更
新するために使用することができる。この考え方では、各ユーザーまたは各ユー
ザーおよび/またはユーザー装置104の組み合わせに対するタグテーブル21
0は、他のユーザー213、または他のユーザー装置104、またはユーザー/
ユーザー装置の組み合わせに対する他のタグテーブル210から、HEADER
_TAG_TABLEを介して一意的に識別されることができる。
【0234】 ソフトウエアの新しいインスタンス111〜114およびその付随のタグ12
0が図5のステップを介して入手され、インストールされ、使用される時に、そ
のタグTAG_INST_SWに対するタグテーブル210エントリー(すなわ
ちタグテーブル210の列)は、そのタグに付随するソフトウエアのインスタン
ス111〜114がそのユーザー装置104に新たに追加され、またはインスト
ールされることを示すためのACTIONコラム値を、INSTALLEDにセ
ットされている。ACTION TIME値は空白にされるか、またはインスト
ール時点を示す。RUN COUNTおよびUSE TIMEコラム値はゼロ、
または“0”にセットされ、または空白にされる。
【0235】 本発明の別の構成によれば、タグテーブル210に挿入するために作り出され
たタグTAG_INST_SW(Columm1)を付随させていないソフトウ
エアインスタンス111〜114に対して、使用管理を施すことができる。この
ようなインスタンス111〜114は、ソフトウエアのタグをもたないインスタ
ンス、またはタグなしのソフトウエアとも呼ばれる。タグなしのソフトウエアの
例は、ユーザー213により作られたソフトウエアである。ユーザーにより作ら
れたソフトウエアは、ソフトウエアプログラムもしくは歌を書きまたは創出する
ユーザー213の場合のように、合法的に作り出されることができる。ユーザー
により創出されるソフトウエアは、非合法的に作り出されることもあり、この場
合には侵害ソフトウエアINF_SWと呼ばれる。ユーザー装置104〜107
が合法的なタグなしのソフトウエアを使用することは望ましいことであり、本発
明の使用管理はこのような使用を可能にする。しかし、同時に本発明の機構によ
れば本発明は、ユーザー装置104〜107がタグありまたはタグなしの侵害ソ
フトウエアの使用を試みる時には、使用を検出し、阻止し、また必要ならばその
装置に対して報復措置を定めることができる。
【0236】 侵害ソフトウエアINF_SWは、例えば次のように作り出されることができ
るであろう。侵害者ベンダーは、本またはCD−ROMのアプリケーションプロ
グラムのような合法的特定のソフトウエアインスタンス111〜114を用い、
必要とされるタグ120の関連事項のすべてを、そのソフトウエアに対して含め
られたインストールプログラムから除去することにより、ソフトウエアインスタ
ンスの海賊版を作り出すことができる。侵害者ベンダーは、次に変更されたソフ
トウエアのコピー(すなわち付随タグの引用をもはや必要としない)を別の名で
タグなしのソフトウエアとして販売するのであろう。タグなしのソフトウエアの
別の例は、ベンダーの本の別の言語への無許可の翻訳、またはアプリケーション
プログラムの再コンパイルされたバージョンのような合法的なベンダーのソフト
ウエアSWの変造、または派生したバージョンとして侵害により作られた侵害ソ
フトウエアである。本発明のシステムは、ユーザー装置104〜107における
このような不許可のソフトウエアに対し、使用を防止し、追跡し、防護する。
【0237】 前記を行うために本発明は、指紋と呼ばれるコンセプトを導入する。本質的に
指紋は、そのインスタンスに対するソフトウエア(SW)の内容に対して固有の
、ソフトウエアのインスタンスに付随する値を作り出す。ソフトウエアのインス
タンスの違法に作り出されたコピーの指紋を入手することができる時には、本発
明は同様に違法に作られたコピーを使用することの他のユーザー装置104〜1
07による別の試みを検出するための方法を提供する。本発明によればソフトウ
エアの特定のピースに付随する指紋は、好ましくはユーザー213がユーザー装
置104にタグなしのソフトウエアをインストールし、または使用することを試
みる時である。
【0238】 図7は、ユーザー装置のタグなしのソフトウエアをインストールする処理を図
示する(この例ではユーザー装置104は考察の中で用いられる)。ステップ3
30においてユーザー装置213は、タグなしのソフトウエアのインスタンス(
すなわち111〜114のタグなしインスタンス)をユーザー装置104にイン
ストールする(または作り出す)。タグなしのソフトウエアUNTAGGED_
SWは、例えば単にバイナリーデータのストリングのように見え(STRING
〔0・・・N〕)、最初は付随のタグをもたない。ステップ331のタグなしの
インスタンス111〜114の使用が試みられると管理プログラム(SP)20
9は、このソフトウエアのインスタンスに対してタグテーブル210にはタグT
AG_INST_SWが存在しないことを検出し、したがって管理プログラム(
SP)209は、指紋関数FPを用いてタグなしのソフトウエアインスタンス1
11〜114を指紋付けする。指紋関数は、例えばハッシュ関数であることが考
えられる。
【0239】 ステップ331において各指紋Xiは、好ましくはタグなしのソフトウエアの
部分STRING〔i、i+k−1〕において動作する指紋関数FPにより作り
出される値に等しい、ただし0<=i<=m−K+1(定数Kに対して)。m個
のインデックスを選ぶことが可能である。言い換えれば指紋関数FPは、タグな
しのソフトウエアデータSTRING〔0・・・N〕の選ばれたセグメント上で
行われる、ただしNはビット単位のタグなしのソフトウエアの全長である。好ま
しくは指紋関数FPは、複数個の指紋(m)を作り、そのそれぞれは他との間に
オフセットを示す。ステップ332において管理プログラム(SP)209は、
ユーザー装置104の指紋テーブル210が指紋Xi1からXimを格納する。
【0240】 前記に代わる実施形態においては指紋は、タグなしのソフトウエアの非連続部
分に基づいて作られる。
【0241】 別の代わりの実施形態においては指紋は、ソフトウエアが用いられる時にソフ
トウエアの挙動に基づいて算定される。挙動の例は、ソフトウエアが行うシステ
ムコールのシーケンスであることが可能である。例えば、ゲームソフトは、スク
リーンへの書き込みに特別のパターンをもつことができる。これらのパターンは
、ソフトウエアのインスタンスの指紋に使用される。
【0242】 最後にステップ327において管理プログラム(SP)209は、ユーザー装
置上のタグなしのソフトウエアのインスタンス111〜114の存在を示すため
のタグテーブル210のタグなしのタグエントリーUNTAGGED_SWを作
り出す。タグテーブル210におけるUNTAGGED_SWタグは、指紋付け
が行われたソフトウエアのタグなしのインスタンスにタグUNTAGGED_S
Wを一意的に付随させるために、ハッシュ関数または他の手段を用いることがで
きる。前記の処理を用いることによりユーザー装置104にソフトウエアのタグ
なしのインスタンス111〜114を使用し、またはインストールする試みは、
そのタグなしのインスタンスが指紋付けされ、またUNTAGGED_SWタグ
がタグテーブル210の中に作り出される結果をもたらす。
【0243】 下記に説明されるように指紋テーブル126は、保護センター103(図2)
が認めた侵害ソフトウエアINF_SWの使用を検出するために保護センター1
03(図2)により使用される。この発明の指紋構成の使用の詳細は後述される
【0244】 図8は、ユーザー213がソフトウエアのインスタンス(INST_SW)1
11〜114をユーザー装置104において使用することを試みる時にこの発明
のシステム109により行われるハイレベルステップを示す。ステップ270に
おいてはユーザー213は、ソフトウエアのインスタンス111〜114を使用
するためにユーザー装置104のユーザー入/出力機構204にインターフェー
スする。ステップ271においては管理プログラム(SP)209は、ソフトウ
エアのインスタンス111〜114を使用させるためのコールを阻止する。この
点で管理プログラム(SP)209は、要求されたタグテーブル210における
“CONTINUED”ステータスを示すタグTAG_INST_SWをもつこ
とを確かめる。しかし、好ましい実施形態において個別のタグTAG_INST
_SWnをチェックする前に管理プログラムは、タグテーブル210自身が有効
な、または更新された状態にあることを確かめる。有効な状態により意味される
ことは、タグテーブル210は、期限切れになっておらず、その内容を更新する
ために呼び出し手順を必要としていることである。したがってステップ272に
おいては管理プログラム(SP)209は、保護センター103(図2)への呼
び出しが現時点で必要であるか否かを確かめるために、タグテーブル210をア
クセスする。
【0245】 前記に代わる実施形態において指紋がタグにおいて含められている時には、管
理プログラムSP209は、使用されているソフトウエアが同じ位置の指紋を用
いることにより、このタグに正しく付随していることをチェックすることができ
る。
【0246】 呼び出し手順は、有効性を効果的に再確認し、タグテーブル210内での各タ
グTAG_INST_SWnの使用管理方針を実行するために、本発明のシステ
ムにより定期的に行われる。呼び出し処理は、保護センター103(図2)とユ
ーザー装置104との間で行われる。保護センター103(図2)に対して行わ
れるべき呼び出しを行わせる引き金となる多くの事象の存在が考えられる。
【0247】 例えば、管理プログラム(SP)209によりステップ272において行われ
る呼び出しの決定は、タグテーブルヘッダHEADER_TAG_TABLEの
LAST_CALL_UP_TIME領域を調べることにより行うことができる
。LAST_CALL_UP_TIMEにおけるタイムスタンプがある経過時間
を越えている時には、保護センター103(図2)に対する呼び出しが必要であ
り、呼び出しの処理が行われるステップ273に移行することにより行われる。
前記の代わりに要求される呼び出しのために満足されねばならない1群の原則、
または条件を限定するタグテーブル210自身に対して呼び出し方針(CALL
_UP_POLICY)が考えられる。
【0248】 他の実施形態においては、ソフトウエアの個々のインスタンス111〜114
に付随する呼び出し方針(CALL_UP_POLICY_SW)の存在が考え
られる。この場合にステップ272は、ソフトウエアコンテントSW、またはス
テップ270におけるユーザー213により要求されたアクセスであったソフト
ウエアのインスタンス(INST_SW)111〜114に付随する呼び出し方
針(CALL_UP_POLICY_SW)のルール、またはテストを調べるこ
とができる。別の実施形態においてはユーザー装置104のユーザー213がソ
フトウエアのタグなしのインスタンスを使用することを試みる時には、ステップ
272は呼び出しを必須条件とすることができる。別の実施形態においてはユー
ザー装置104のユーザー213が、初めはタグ付きソフトウエアを使用し、次
にステップ272は、呼び出しを必須条件とすることができる。別の実施形態に
おいて継続的な呼び出し手順の間に許される最大間隔は、好ましくはユーザー装
置104における経過時間、ソフトウエアのインスタンス111〜114の使用
の回数と使用時間、装置104のパワーアップの回数および/または装置104
の時間または使用に関する他の手段の組み合わせにより決まる。
【0249】 呼び出しの処理は後に詳細に考察される。しかし、本質的に呼び出しの処理中
は、ユーザー装置104の中の管理プログラム(SP)209が、タグテーブル
210および指紋テーブル126のコピーを保護センター103(図2)に安全
に引き渡す。確認後保護センター103(図2)は、タグテーブル210の各タ
グTAG_INST_SWnを損なわれたタグのリストと比較する。保護センタ
ー103(図2)は、ある方法で無効、または損なわれたタグを検出することが
できる。
【0250】 各タグに付随する使用管理方針POLICY(TAG_INST_SW)は、
タグ120(およびしたがってタグに付随するソフトウエアのインスタンス)が
使用管理方針POLICY(TAG_INST_SW)に基づいて使用されてい
ることを確かめるために保護センター103(図2)においてチェックすること
もできる。方針は、全ユーザー装置104〜107、またはper user2
13、またはper tag120ベースであることができる。またタグなしの
ソフトウエアに対しては、指紋テーブル126は侵害ソフトウエアINF_SW
の使用を検出するために保護センター103(図2)の指紋データ構造体(後に
説明あり)に対して比較することができる。タグテーブル210および指紋テー
ブル126の分析が完了した後、保護センター103(図2)は、継続メッセー
ジ(SM)212(図2)を作りユーザー装置104に送り返す。
【0251】 前記に代わる実施形態においてタグ付きのソフトウエアは、また指紋によって
チェックすることができる。この実施形態は、侵害者ベンダーが、知的所有物ま
たは合法的なベンダー(すなわち101)の他の権利を侵害する特定のソフトウ
エアのインスタンスを、タグ付きすなわちタグサーバー102から入手した合法
的なタグを添えられたソフトウエアとして配布することを防止する。この実施形
態においてはユーザー装置104〜107の管理プログラム209は、タグ付き
のソフトウエアインスタンス111〜114においても指紋処理を実行し、算定
された指紋をその指紋テーブル126に格納する。呼び出し手順中にユーザー装
置104〜107に用いられるタグ付きのソフトウエアインスタンス111〜1
14から得られる指紋もまた侵害ソフトウエアの使用を検出するために保護セン
ター103(図2)に送られる。
【0252】 継続メッセージ(CM)212(図2)は、ユーザー装置(例えば104)の
ソフトウエアのインスタンス111〜114の動作、または装置104自身の動
作に影響を及ぼすことのある各種の情報を含む。例えば、保護センター103(
図2)がユーザー装置104に対しタグテーブル210における無効のタグTA
G_INST_SWnを検出すると、そのユーザー装置1104に戻された継続
メッセージ(CM)212は、ユーザー装置104に対し特定の時間にわたり、
または無制限に機能を停止させることができる。あるいは前記に代わり継続メッ
セージ(CM)212は、ユーザー装置104が無効タグ120に付随するソフ
トウエアの特定のインスタンス(INST_SW)を使用するのを無効にするこ
とができる。
【0253】 ユーザー装置104において実行される措置は、継続メッセージ(CM)21
2のACTIONS部分において限定され、後に詳述される。継続メッセージ2
12は、またタグテーブル210における情報を更新するためにユーザー装置1
04における管理プログラム(SP)209によって使用される。例えば、その
タグテーブル210のACTION TIMEコラムは、最新の継続メッセージ
(CM)212のタイムスタンプにより更新されることができるので、各タグT
AG_INST_SWnが保護センター103(図2)により最近チェックされ
た時点を示すことができる。
【0254】 図8の処理の記述を続ける際にステップ273における呼び出し処理が完了し
た後タグテーブル210は、ステップ277におけるユーザー装置104におい
て更新され(すなわち継続メッセージ212を介して)、処理はステップ272
に戻る。ユーザー装置がこの時点で保護センター103(図2)への呼び出しが
不必要と認めた時には、処理はステップ274に進み、ステップ273において
ユーザー213により使用が要求されたソフトウエアの特定のインスタンス11
1〜114の使用状況が求められる。
【0255】 ステップ274においてユーザー装置104の管理プログラム(SP)209
は、要求されたソフトウエアのインスタンス111〜114が付随するタグTA
G_INST_SWnに対するタグテーブル210におけるUSAGE STA
TUSコラムを重点的に調べる。USAQE STATUSコラムが“CONT
INUED”を示す時には、管理プログラム(SP)209は、オペレーティン
グシステム207のカーネル208に信号を送ることにより、ステップ275の
要求されたソフトウエアのインスタンス111〜114の使用を許す。要求され
たソフトウエアのインスタンス111〜114に付随するタグ(TAB_INS
T_SWn)に対するタグテーブル210におけるUSAGE STATUSコ
ラムが“GC_DISABLED”、または“REMOVED”を示す時には管
理プログラム209は、ステップ276でのソフトウエアのインスタンス111
〜114の使用を否認する。
【0256】 要求されたソフトウエアのインスタンス111〜114に使用が許されると管
理プログラム(SP)209は、要求されたソフトウエアのインスタンス111
〜114が付随するタグTAG_INST_SWnに対するRUN COUNT
コラムにおける値を1つだけ増やす。管理プログラム(SP)209は、要求さ
れたソフトウエアのインスタンス111〜114が使用されている時間を追跡し
、これに基づいてタグに対してUSE TIMEコラムを更新する。
【0257】 図9は、保護センター103(図2)の構造の好ましい実施形態を図示する。
保護センター103(図2)は、プロセッサ301、メモリー302、相互接続
機構303、クロック304および保護センター承認データベース300を結合
するバスを含む。保護センター103(図2)は、好ましくは1回に複数の処理
のための多くの操作を行うことのできるマルチプロセッササーバーのようなハイ
パワードコンピューターシステムである。相互接続機構303は、例えば保護セ
ンター103(図2)がコミュニケーションネットワーク100を介して同時に
多くのユーザー装置104と通信することを可能にするモデムバンク、または1
つ以上の高帯域幅ネットワーク接続である。
【0258】 保護センター103(図2)の承認データベース(GCDB)300は、好ま
しくは広汎な量の情報を格納する能力もつ大きいデータベースサブシステム、ま
たはディスク、またはRAIDアレーである。この実施形態においてGCDBは
、タグ付きのソフトウエアのインスタンスに対するデータおよび指紋データ構造
体137に対するデータを保持するタグ付きのソフトウエアデータベース138
(図9)を含む。タグ付きのソフトウエアデータベース(図9)は、各ユーザー
装置104のソフトウエアの各タグ付きインスタンスに対する呼び出し記録(図
10の320,321)を含む。これらのデータベース137および138(図
9)のそれぞれの内容と使用は詳述される。
【0259】 保護センター103(図2)の動作中メモリ302は、プロセッサー301と
関連してこの中に記された保護センター機能を実行する確認プログラム(VRP
)315を格納するのに用いられる。メモリ302は、またはタグの確認および
上に簡単に説明された呼び出し手順中のタグ確認および使用管理決定のために、
保護センター103(図2)に移されるユーザー装置タグテーブル210および
指紋126に格納する。
【0260】 図10は、タグ付きのソフトウエア(例えば111〜114)各インスタンス
に対し保護センター103(図2)でタグ付きのソフトウエアデータベース13
8(図9)に維持されるデータ構造体320,321を示す。タグデータ構造体
320は、ソフトウエアの各インスタンス111〜114に対するタグ120が
作られた時に、タグサーバー102から保護センター103(図2)に最初に送
られる。好ましくはタグサーバー102から保護センター103(図2)にタグ
120が与えられる方法は、コミュニケーションネットワーク100を通じ電子
的で安全な配布によるものである。前記に代わり、ソフトウエアベンダー101
は、ユーザー装置104〜107に配布されるソフトウエアの各インスタンス1
11〜114に対するタグ情報を常に知られていることを保障することの責任を
負うことができる。
【0261】 タグデータ構造体320は、ユーザー装置104に用いられるソフトウエアの
各インスタンスに対するタグ付きのソフトウエアデータベース138(図9)に
ある。図示されるように各タグデータ構造体320は、各種の領域を含む。これ
らの領域は、ソフトウエアのそのインスタンスに対するタグTAG_INST_
SW、そのソフトウエアに対する使用管理方針POLICY(TAG_INST
_SW)およびソフトウエアのそのインスタンスに対する1つ以上の呼び出し記
録CALL_UP_RECORDn321に対する関連事項のリストを含む。
【0262】 ソフトウエアのインスタンス111〜114に対するタグTAG_INST_
SWnに付随する方針POLICY(TAG_INST_SW)は、ソフトウエ
アベンダー101、または別の組織により定められ、使用権、またはタグに付随
するソフトウエアのインスタンスに対するpay−per−useアクセス制限
の防護に関する規制と方針を規定する。例えばソフトウエアの特定のインスタン
ス111〜114に付随するタグデータ構造体320に対しては、POLICY
(TAG_INST_SW)データは、ソフトウエアのインスタンスを使用する
ごとにユーザー装置104が定められた料金を支払わねばならないことを内容と
する規制を含むことができる。
【0263】 呼び出し処理(後述される)の間、保護センター103(図2)がユーザー装
置104からタグテーブル210を受け取る時に、そのユーザー装置104によ
りソフトウエアの特定のインスタンス111〜114が使用された回数は、タグ
テーブル210のソフトウエアのそのインスタンスに対するタグTAG_INS
T_SWに付随するタグTAG_INST_SWnのRUN COUNTコラム
から求めることができる。保護センター103(図2)は、次にタグ付きソフト
ウエアデータベース138(図9)のそのタグTAG_ISNT_SWnに付随
するタグデータ構造体320に対する方針POLICY(TAG_INST_S
W)に依存することができる。保護センター103(図2)は、タグテーブル2
10の中のRUN COUNT領域により示されている使用回数が前の呼び出し
処理から得られた前の数よりも多いか否かを調べることをできる。数が多ければ
、保護センター103(図2)は、ユーザー装置104のオーナーまたはユーザ
ー213に送られるべき請求用のこの情報を記録することができる。
【0264】 他の使用管理方針POLICY(TAG_INST_SW)は、保護センター
103(図2)がソフトウエアの特定のインスタンス111〜114に対する特
定の数の使用のみを可能にするように規定されることができる。使用回数を上回
ると保護センター103(図2)は、ソフトウエアの前記のインスタンスにタグ
の付随したユーザー装置のタグテーブル210に付随するUSAGE STAT
US領域を値“GC_DISABLED”に送られることができる。タグテーブ
ル210の分析後、そのユーザー装置104に保護センター103(図2)に送
られる継続メッセージ(CM)212に適切な情報を記載することにより、ユー
ザー装置104において変更を行うことができる。ユーザー装置104が機能を
停止されているタグTAG_INST_SWn(すなわち図6のタグテーブル2
10のTAG_INST_SW3)に付随するソフトウエアのインスタンス11
1〜114を使用することを試みる時には、図7において上に説明されているよ
うに使用は否認される。
【0265】 保護センター103(図2)の中のタグ付きのソフトウエアデータベース1
38(図9)における各タグデータ構造体320は、図10に示された呼び出し
記録CALL_UP_RECORDn321への引用回数を含む。呼び出し記録
CALL_UP_RECORDn321は、呼び出しタイムCALL_UP_T
IME、コールするユーザー装置104のタグテーブル210からのヘッダ領域
HEADER TAG_TABLE、タグテーブル210HASH(TAG_T
ABLE)のハッシュ関数値、およびACTION領域を含む。したがって送ら
れたタグの数に関係なく呼び出しごとに1つのCALL_UP RECORDが
生じる。
【0266】 CALL_UP_TIME領域が現在のCALL_UP_RECORDnに対
する呼び出しのタイムスタンプを示す。HEADER_TAG_TABLEは、
呼び出し手順n中のコールするユーザー装置104から受け取られるこのタグデ
ータ構造体320に対するTAG_INST_SWnを含むタグテーブル210
のタグテーブルヘッダを含む。HASH(TAG_TABLE)領域は、タグテ
ーブル構造体320に付随するタグTAG_INST_SWnを含んでいたタグ
テーブル210の中のデータのすべてについて算定された実現不能なハッシュ関
数値を含む。最顎にACTIONS領域は、タグデータ構造体320に対してタ
グTAG_INST_SWに付随するソフトウエアのインスタンス111〜11
4に対して実行されるべき呼び出し手順n中に保護センターにより定められた措
置をリストする。ソフトウエアの各インスタンス111〜114に対するタグデ
ータ構造体320を用いる時に保護センター103(図2)は、ユーザー装置1
04を介して用いられるソフトウエアのインスタンス111〜114に対する使
用管理機構に関連する詳細な情報を維持することができる。
【0267】 図11は、保護センター103(図2)の中に維持されている指紋データ構造
体137を作る結果となる処理ステップを示す。前記の、図7に関して説明され
たように指紋は、タグなしのソフトウエア、および場合によってタグ付きソフト
ウエアもまた最初にユーザー装置104に用いられる時に、各ユーザー装置10
4の中の指紋テーブル126に格納される。本発明によればソフトウエア構成は
、ベンダーソフトウエアをコピーし、タグの確認を要求するソフトウエアの部分
を取り外し、または合法的なソフトウエアの派生体を作り配布することにより、
合法的なベンダーの権利を侵害することが考えられる。このように作られたソフ
トウエアは、侵害されたソフトウエアINF_SWと称される。保護センター1
03(図2)の中に作り出された指紋データ構造体137は、権利侵害のソフト
ウエアのインスタンスINF_SWについて算定された指紋を含む。
【0268】 ステップ340の図11においてソフトウエアベンダー101は、権利侵害の
ソフトウエアのインスタンスの存在を検出する。ステップ341においてソフト
ウエアベンダー101は、権利侵害のソフトウエアのインスタンスINF_SW
のコピーを保護センター103(図2)に提出する。侵害ソフトウエアは、ST
RING_INF〔0・・・N〕と見えるバイナリ数字(ビット)のストリング
であるに過ぎない。ステップ342においては保護センターは、ユーザー装置1
04のそれぞれについて管理プログラム(SP)209が指紋を算定するために
用いるのと同じ指紋公式FRを用い、権利侵害のソフトウエアのインスタンスに
おける指紋Yiの収集物を算定する。すなわち一連の指紋Yiは、下記のように
計算される。
【0269】 Yi=FR(STRING_INF〔i、i+k−1〕)
【0270】 ただし、0<=i<=n−k+1、n−kは、算定する指紋の数である。次に
ステップ343において保護センター103(図2)は、算定された指紋Y1,.
..Yn−k+1のそれぞれをGCDB300の中の指紋データ構造体137に使
用する。前記に代わる実施形態において指紋は、STRING_INFのノンコ
ンセクティブシーケンスにおいて算定され、このシーケンスはINF_SWに対
して一意的、またはほぼ一意的である。
【0271】 指紋処理は、保護センター103(図2)において完了し、侵害ソフトウエア
INF_SWは破棄されるか、または他のコミュニケーションネットワーク10
0のような他の場所での他の保護センター103において利用することができる
【0272】 この時点でユーザー装置104に関する管理プログラム(SP)209が、タ
グのない(およびおそらく権利侵害する)ソフトウエアのインスタンスを使用す
ることの要求を検出すると、管理プログラム(SP)209は、UNTAGGE
D_SWの指紋を記録する。後にSP209がタグテーブル210および指紋テ
ーブル126を保護センター103(図2)に移すための呼び出し手順を実行す
る時には、記録されたUNTAGGED_SWの指紋が送られる。ある実施形態
においてはタグなしのインスタンスを使用するためのユーザー装置104〜10
7におけるアクセス要求は、呼び出しを発生させることがある。一般位置の指紋
を用いることにより指紋テーブル126の指紋は、保護センター103(図2)
の指紋データ構造体137における指紋と比較することができる。ソフトウエア
インスタンスUNTAGGED_SWが保護センター103(図2)により感知
され、それ自体に指紋付けを行った権利侵害のソフトウエアインスタンスINF
_SWのコピーである時には、このことは検出され、報復措置がユーザー装置1
04において継続メッセージ212の返却により行うことができる。別の実施形
態においてはユーザー装置104のUNTAGGED_SWのシステムコールの
挙動(すなわちシステムコールのシーケンス)は、保護センター103(図2)
のINF_SWについて予測されるシステムコール挙動と比較される。他の実施
形態において最後の2パラグラフに詳述されたステップは、タグ付きのソフトウ
エアの使用に対するユーザー装置に関する要求の場合にも適用される。
【0273】 この発明の指紋構成とは別に、次に説明される呼び出し手順中保護センター1
03(図2)の確認プロズラム315は、タグテーブル210の情報を使用管理
決定を行うためにタグソフトウエアデータベース138(図9)の情報と比較す
る。
【0274】 図12は、本発明の好ましい実施形態での呼び出し手順を実行するためにユー
ザー装置104において実行される管理プログラム(SP)209により行われ
るステップを図示する。図12のステップは、図8のステップ273の中で行わ
れる。
【0275】 図12におけるステップ370において管理プログラム(SP)209は、保
護センター103(図2)を呼び出す。呼び出しとは、ユーザー装置104の管
理プログラム(SP)209が、保護センター103(図2)にコミュニケーシ
ョンネットワーク100を介して接続され、またはメッセージを交換することを
意味する。好ましい実施形態においては管理プログラム(SP)209は、HE
ADER_TAG_TABLEを保護センター103(図2)に送る。保護セン
ター103(図2)は、装置のID_TAG_TABLEからなる前の継続メッ
セージ、最後の呼び出しの時間LAST_CALLUP_TIMEが、この同じ
HEADER_TAG_TABLEをもつ最近のCALL_UP記録のCALL
UP_TIMEに等しくない限り、呼び出しエラーを生じる。この実施形態の利
点は、たとえ数台の装置104〜107が同じID_TAG_TABLE(図6
のタグテーブルの列1)および同じタグ210(普通侵害のために生じる)をも
っていても、これらの同じ装置は同じ継続メッセージを受け取っても下記の理由
で正しく受け入れることはなく、したがって唯1つの装置(すなわち104〜1
07の1つ)が特定のHEADER_TAG_TABLEを送る。
【0276】 ユーザー装置104〜107におけるソフトウエアのインスタンス111〜1
14をユーザーが使用することを試みる場合には、上に説明された通り、CAL
L_UP_POLICY、またはCALL_UP_POLICY(TAG_IN
ST_SW)にしたがって呼び出しが行われる。すなわち、ユーザー装置104
のCALL_UP_POLICYによる次の呼び出しの前に時間が許されるか、
またはそのインスタンスに対するソフトウエア(SW)のCALL_UP_PO
LICY(TAG_INST_SW)が経過したソフトウエアのインスタンス1
11〜114の使用をユーザー213が試みる時には、その装置104〜107
の管理プログラム209がステップ370を開示する。別の実施形態においてS
P209は、ソフトウエアのインスタンス111〜114の使用が要求されてい
るか否かには関係なく、時間の経過する前の選ばれた時点に呼び出し手順を実行
する。CALL_UP_POLICYは、ユーザー装置104の管理プログラム
209の中に保持されることができる。さらに使用の要求とは関係なく実行され
る管理プログラム209の部分が、呼び出しを行う時点であることを求めること
により呼び出しが行われることが可能である。例えばユーザー装置104〜10
7のある回数のBOOTUPS(パワーアップ)が行われた結果、またはタグな
しのソフトウエアの最初の使用の結果起きることが考えられる。
【0277】 ステップ371の保護センター103(図2)に対する呼び出しが失敗すると
、処理は、ユーザー装置104の管理プログラム(SP)により報復措置の行わ
れることのあるステップ376に進む。好ましい実施形態において管理プログラ
ム(SP)209は、新たな呼び出しを行い、報復措置を始める前に数回試みる
。報復措置がステップ376において必要である場合には、報復措置は、単にユ
ーザー213に要求されたソフトウエアのインスタンス111〜114が、通信
のエラーにより一時的にアクセス不能であることを通告するにとどめることが可
能である。
【0278】 呼び出しが成功し保護センター103(図2)にユーザー装置104から接続
が行われると、372において管理プログラム(SP)209は、好ましくはユ
ーザー装置104から保護センター103(図2)にタグテーブル210を安全
に送るか、または送信する。代案の実施形態においては管理プログラム(SP)
209は、指紋テーブル126を保護センター103(図2)にも送る。すなわ
ち、本発明の指紋構成は、ユーザーにより作られ、またはユーザーにより変造さ
れた侵害ソフトウエアを検出するために実施形態に使用され、または使用されな
いことがある。
【0279】 ステップ372が完了した後、管理プログラム(SP)209は、継続メッセ
ージ(CM)212が保護センター103(図2)との間にやりとりの行われる
までは待ちの状態に入る。前記の代わりに管理プログラムSP209は、ステッ
プ372が完了した後にスリープ状態に入り、オペレーティングシステム(OS
)207から中断された後に再び走行する。前記に代わる実施形態において管理
プログラムSPは、ユーザーからの処理要求に続く。保護センター103(図2
)呼び出し処理は、図13Aおよび13Bに関して後述される。保護センター1
03(図2)が呼び出し手段処理を終えると、継続メッセージ(CM)212が
ユーザー装置104に送られる。
【0280】 ステップ373においては、管理プログラム(SP)209は、ユーザー装置
104の呼び出し方針CALL_UP_POLICYに規定される継続メッセー
ジ212の戻りをチェックする。呼び出し方針CALL_UP_POLICYの
中の継続メッセージ(CM)212に対するチェックの例として、ステップ37
3は、継続メッセージ(CM)212を受け取る前にある経過時間を上回ってい
ないことを確かめることができる。継続メッセージ212の受け取り前に著しく
時間が経過している場合には、呼び出し方針は背反されることがある。
【0281】 継続メッセージ212のデジタル署名を確認することのできるような呼び出し
の背反が起きるか否かを調べるために他のファクターを用いることができる。呼
び出し背反を決める別のファクタは、継続メッセージ212のHASH(EVE
NT_HISTORY)領域が最後の呼び出しの時点でユーザー装置104に記
録された事象履歴のハッシュ、HASH(EVENT_HISTORY_AS_
OF_MOST_RECENT_CALLUP)とは同じでないことである。同
じ構成およびID_TAG_TABLEをもつ2つの装置が侵害行為の結果存在
するが、1つのみが呼び出しを行う場合には前記は起こり得る。事象履歴のため
に装置104〜107の1つのみが継続メッセージ212を受け取る。他の装置
は、自己の呼び出しを行うだけであり、このことが呼び出しのエラーを招く。な
ぜならば、HEADER_TAG_TABLE(図6のテーブル210の第1列
)は、ID_TAG_TABLEで合致するか、前記の理由で呼び出し時点で合
致できないからである。
【0282】 CALl_UP_POLICYがステップ373において背反される時には、
処理はステップ376に進み、また報復措置がユーザー装置104において行わ
れることができる。この場合には、報復措置は、呼び出しが進むことができず、
また要求されたソフトウエアのインスタンス111〜114が一時的にアクセス
を否認され、または機能を停止されねばならないことをユーザー213に通告す
ることを含むことができる。前記に代わりユーザー装置104は、ある時間機能
を停止されることができる。
【0283】 ステップ373が継続メッセージ(CM)212が受け取られ、ステップ37
4においてCALL_UP_POLICYに規定された限界内にあるために受け
入れられることを認めると、継続メッセージ(CM)212が管理プログラム(
SP)209に引渡される。次にステップ375において管理プログラム(SP
)209が継続メッセージ212を、デジタル鍵署名技術を介して確認し、ユー
ザー装置104のタグテーブル210における各タグTAG_INST_SWn
に対する継続メッセージ212における各措置を実行する。すなわち、管理プロ
グラム(SP)209は、タグテーブル210の各タグTAG_INST_SW
nに対するUSAGE STATUSおよびACTION TIME欄を更新す
る。この方法で本発明のシステム109は、ユーザー装置104が定期的にタグ
テーブル更新210を保護センター103(図2)から得ることが可能になる。
【0284】 管理プログラム(SP)209がユーザー213とユーザー装置104上のイ
ンストールされたソフトウエアのインスタンス111〜114との間のインター
フェースとして用いられるから、管理プログラム209は、好ましくはユーザー
装置104の中に記載された使用管理機構を実行する。ソフトウエアのインスタ
ンス111〜114に対するタグTAG_INST_SWnが呼び出し処理中に
しか変更できない“CONTINUED”使用ステータス状態であることを要求
することにより、使用管理は究極的に1つ以上の保護センター103(図2)に
より管理される。保護センター103(図2)は、ユーザー装置104に対する
タグテーブル210におけるタグが、タグおよび指紋のために規定された方針通
りに“CONTINUED”または“GC_DISABLED”状態になければ
ならないか否かを決定することの責任を負う。
【0285】 図13Aおよび13Bは、本発明の好ましい実施形態による呼び出し処理中に
保護センター103(図2)の確認プログラム(VRP)315により行われる
ステップを示す、1つの連続フローチャートを示す。保護センター103(図2
)は、ユーザー装置104(すなわち、管理プログラム209)が最初の呼び出
し処理接続、または図12のステップ307の保護センター103(図2)との
接触を行う時には、呼び出し手順を知らされる。これに応じて図13Aのステッ
プ410では、確認保護センター103(図2)がタグテーブル201を受け取
る。保護センター103(図2)は、またインストールされるがタグテーブル2
10の中のタグTAG_INST_SWnにより、タグを施されていないソフト
ウエアがユーザー装置104にある時には、ユーザー装置104から指紋テーブ
ル126を受け取る。この場合にも本発明の指紋構成は選択的であるが、本発明
の好ましい実施形態には設けられている、なぜならば、それらは侵害ソフトウエ
アの検出を可能にするからである。
【0286】 前記に代わる実施形態においては保護センター103(図2)は、タグテーブ
ル210のみの一部、例えばHEADER_TAG_TABLEおよびタグテー
ブル210の中のタグ(コラム1)の一部のみを受け取る。受け取られたタグ1
20は、保護センター103(図2)が要求するか、または無作為に選ばれるか
、またはその時点でのソフトウエアのインスタンスの使用のためにユーザー装置
が必要とする唯1つのタグ120であることが可能である。別の可能性は、タグ
120がpay−per−useであるか、または一定の使用数をもつソフトウ
エアのインスタンスに相当することである。この代案の利点は、それが通信コス
トおよび処理コストをともに引き下げることである。
【0287】 別の代案実施形態においては、保護センター103(図2)がHEADER_
TAG_TABLE(図6のタグテーブル210の上列)のみを受け取る。この
実施形態は、保護センター呼び出しを割安にし、各TAG_INST_SWが後
述のようにID_TAG_TABLE欄を含む時に充分に機能することができる
。次にステップ411の図13Aに関する呼び出し処理の記述に戻る時、保護セ
ンター103(図2)は、ユーザー装置104に付随する呼び出し方針CALL
_UPPOLICYにしたがっていることを確かめるためにチェックする。ユー
ザー装置104〜107に対する呼び出し方針CALL_UP_POLYCY(
S)は、好ましくは保護センター103(図2)において維持され、および/ま
たはソフトウエアベンダー101、またはユーザー装置メーカー(図示されず)
から必要に応じてユーザー装置104がそのタグテーブル210を確認し、更新
しなければならないかを求める方法を、保護センター103(図2)にインスト
ラクトするために提供されることができる。
【0288】 ステップ411は、例えばID_TAG_TABLE領域に含まれるタグテー
ブル210の固有の識別のようなHEADER_TAG_TABLE情報領域を
用いて行うことができる。呼び出しがCALL_UP_POLICYにしたがっ
ていない時には、ステップ416は、継続メッセージ(CM)212が保護セン
ター103(図2)からユーザー装置104に戻される時に管理プログラム(S
P)209により実行されるための特別の報復措置を作る。
【0289】 ステップ416および411の両方からステップ412に処理が進み、この点
で確認プログラム315は、タグテーブル210の署名され、および/または署
名されていないタグTAG_INST_SWnを確認する。ステップ412にお
いて行われる確認は、タグテーブル210の署名されているタグTAG_INS
T_SWに対するデジタル署名確認であることができる。署名されていないタグ
に対してHASH_INST_SW値は、タグTAG_INST_SWの中の秘
密番号NUM_INST_SWがそのタグに対するHASH_INST_SWに
一致することをチェックするために、用いることができる。これは可能である。
なぜならば、HASH_INST_SWは、NUM_INST_SWから部分的
に算定されるハッシュ関数値であるからである。さらにNUM_INST_SW
は、SPARSE_SETに見出されなければならず、またTAG_INST_
SWのNAME_SWに付随しなければならない。
【0290】 ステップ412において検出された、確認されていない各タグTAG_INS
T_SWnに対してステップ417は、確認されないタグTAG_INST_S
Wnに対するソフトウエアのインスタンス111〜114に付随する使用管理方
針POLOCY(TAG_INST_SW)に基づいて特定の報復措置を作る。
この場合の報復措置は、ユーザー装置104の機能を停止するためのインストラ
クションを含むことができる。ステップ417に定められた報復措置は、それが
ユーザー装置104に通信された後に実行されることに留意すべきである。
【0291】 ソフトウエアのインスタンス111〜114に付随する使用管理方針POLI
CY(TAG_INST_SW)は、保護センター103(図2)に保持され、
ソフトウエアベンダー101により作られる各種のソフトウエアのインスタンス
111〜114に対する使用管理の扱い方を保護センター103(図2)にイン
ストラクトするために、必要に応じてソフトウエアベンダー101から提供され
ることができる。すなわち、ソフトウエアベンダー101は、ソフトウエアのイ
ンスタンス111〜114を104〜107(例えば料金として)に提供するこ
とができる。これらのインスタンス111〜114に使用制限を実行するために
ソフトウエアベンダー101は、インスタンス111〜114に対する方針PO
LICY(TAG_INST_SW)を作り出すことができる。呼び出し手順中
保護センターは、方針CALL_POLICY(TAG_INST_SW)を実
行するか、または取り締まる。前記に代わる実施形態としてソフトウエア(すな
わち111)のインスタンスに対する方針は、111および112が同じソフト
ウエア内容をもつと仮定すると、その同じソフトウエアのその別のインスタンス
(すなわち112)とは相違することが考えられる。これにより本発明は、使用
管理を、例えば同じプログラムの2つのユーザーに対して別々に実行することが
可能である、なぜならば各インスタンスは独自の付随タグをもち、呼び出し方針
はインスタンスごと、またはユーザーごとに別々に維持されることができるから
である。
【0292】 いずれの場合にも保護センター103(図2)においてタグテーブル210に
おける各タグTAG_INST_SWが真正であることを確かめられ(ステップ
412)、または報復措置が確認されていない各タグに対して作成され(ステッ
プ417)た後に、処理はステップ413に進み、このステップではタグテーブ
ル210における確認された各タグTAG_INST_SWnが、タグをもつソ
フトウエアデータベース138(図9)に対比してチェックされる。本質的にス
テップ413は、ユーザー装置104に用いられたソフトウエアのインスタンス
111〜114に付随するタグテーブル210における各タグTAG_INST
_SWn(すなわち呼び出し処理を行うユーザー装置)は、ソフトウエアのイン
スタンスの使用管理方針POLICY(TAG_INST_SW)にしたがって
使用されている。各タグがステップ413においてテストされた後、処理はステ
ップ414に進む。
【0293】 ステップ413において実行されるチェック処理は、多様な方法で行うことが
できる。1つの実施形態によればタグ付きのソフトウエアデータベース138(
図9)は、タグTAG_INST_SWnと管理プログラム識別番号(209−
As)との間の結合のリストおよびこれらの結合が発見された時点を含む。この
実施形態において確認プログラム(VRO)315は、タグテーブル210のタ
グと同じタグ120(テーブル210のColumn1)が2つの装置にあるか
否かを確かめるためのTAG_INST_SW_HEADER_TAG_TAB
LE_CALLUP_TIME結合のリストに対して比較することができる。タ
グ120がいくつかのHEADER_TAG_TABLEsに付随することが判
明する時には、報復措置をステップ418において作ることができる。
【0294】 本発明の好ましい実施形態においては、保護センターの確認プログラムVRP
315は、タグ120 TAG_INST_SWと関連したデータ構造体(図1
0の320,321)を採用しており、タグ120と関連したソフトウエアのイ
ンスタンス111〜114が、呼び出し中のユーザーの装置104において、ソ
フトウエアのインスタンス111〜114に対し指定された使用管理ポリシーP
OLICY(TAG_INST_SW)と一致して使用されているかをチェック
する。もし、2つの異なるユーザーの装置(例えば、104と105)にはあり
えない、同一のソフトウエアのインスタンスが、(すなわち同一のタグが)、同
時に使用可能な状況(例えば、USAGE STATUS=CONTINUED
)にあることを、使用管理ポリシーが指定すると、そのタグのための呼び出し記
録321中の詳細なデータが、VRP315によるポリシー違反があったかのチ
ェックを可能にする。
【0295】 タグテーブル210中の各タグ120 TAG_INST_SWが、ステップ
413でチェックされると、タグテーブル210中のタグ120は、それらのタ
グと関連して指定されている報復措置と関係することがある。もし、不正にコピ
ーされたタグ、または、使用管理ポリシーと一致して使われていないタグのため
に、報復措置が指定されると、処理はステップ420に進み、そこで、保護セン
ター103(図2)中の確認プログラムVRP315が、指定された報復措置を
用意し、継続メッセージ(CM)212を介して、ユーザーの装置104に送り
返す。このような継続メッセージ(CM)212は、ユーザーの装置104に報
復措置を課すために用いられ、ポリシーPOLICY(TAG_INST_SW
)違反でのタグテーブル210中のすべてのタグTAG_INST_SWnのU
SAGE STATUS領域のための“GC_DISABLED”措置値を含ん
でいる。
【0296】 タグ付けされたソフトウエアのもう1つの扱いでは、上述のタグ処理は、タグ
テーブルの一部においてのみなされる。例えば、アクセス(すなわち、使われよ
うとしているソフトウエアのインスタンス)を要求しているユーザーの装置10
4〜107(すなわち、ユーザーの装置の管理プログラム209)に対するタグ
についてのみ、処理がなされる。この場合、継続メッセージ212は、保護セン
ター103(図2)で処理されたタグに関連したソフトウエアのインスタンスに
ついてのみ、継続または報復措置を指定する。
【0297】 さらに他の実施形態では、購入されて無制限に使用されるソフトウエアに対し
て、タグ処理は全く必要とされず、これにより、ステップ372(図12)に関
連した措置がなくなる。代わりに、HEADER_TAG_TABLEのみが、
確認される必要がある。この場合、HEADER_TAG_TABLE(図6の
上の列)は、ID_TAG_TABLEおよび事象履歴を含む(図6)。この実
施形態では、各タグ120は、HASH_SW,NAME_SWおよびNUM_
INST_SWに加えて、ID_TAG_TABLEを含んでいる。ID_TA
G_TABLE値は、購入時にタグ120(第1欄)に書き込まれ、図3A,3
Bおよび3C中のステップ153のハッシュ関数における独立変数となり、つま
り、HASH_INST_SWになる。ID_TAG_TABLEはID(SP
)209−Aを含み、ID(SP)209−Aが、装置104が最初に起動され
たときに、例えばミリ秒値の時間を含む複製値に基づくことはごくまれであるの
で、各ID_TAG_TABLE値は、権利侵害のない1つの現実の装置にのみ
生じる。
【0298】 ディスクイメージのコピーという形態で権利侵害が起こると、1つのID_T
AG_TABLE値がいくつかの現実の装置に生じる(「双子」になる)が、装
置104のHEADER_TAG_TABLEのLAST_CALLUP_TI
M領域と、保護センター103(図2)の認証データベース138(図9)のC
ALLUP_RECORDのCALLUP_TIMEとが、呼び出し時に一致せ
ず、HEADER_TAG_TABLEでの確認が失敗する。これにより、保護
センター103は、2つの呼び出しメッセージが2つの別々に構成された装置1
04〜107から送られた場合には、報復措置をとる。
【0299】 さらに、2つの装置104〜107は、同一の呼び出し手順を共有しようとす
ることもできない。なぜなら、それらのHEADER_TAG_TABLEsは
、それらのタグテーブル210それぞれのHASH(EVENT_HISTOR
Y)領域によって異なるからである。そのハッシュ関数値が継続メッセージに送
られるので、装置104から107のうち1つのみが、継続メッセージ212を
適切に処理できる。2つの装置が複製により動作する場合には、管理プログラム
209は、このように複製が企てられたことを認識し、報復措置をとる。したが
って、各ID_TAG_TABLEは、ただ1つの装置104〜107にあり、
または関連し、でなければ、呼び出しは失敗する。タグがID_TAG_TAB
LEを含むとき、装置104〜107の管理プログラム209は、タグ120に
関連したソフトウエアのインスタンス111〜114が、タグ120のID_T
AG_TABLE値が適切な装置のそれと一致する場合にのみ、使用されること
を許容する。結果として、各ソフトウエアのインスタンス104〜107は、た
だ1つの装置104〜107でのみ使用され、その装置は、タグ120のID_
TAG_TABLE値と一致するID_TAG_TABLE値をもつ。
【0300】 ステップ414において、確認プログラム(VRP)315は、タグのないソ
フトウエアのインスタンスに対してタグテーブル210にエントリーがないか、
決定する。ユーザーの装置104〜107にインストールされた、タグのないソ
フトウエアのインスタンスは、特別のタグUNTAGGED_SWで示され、タ
グのないソフトウエアのためのUSAGE STATUS欄は、UNTAGGE
Dにセットされる。このUNTAGGED_SWタグエントリーは、好ましくは
、ソフトウエアを作成したユーザーによるインストールまたは最初の使用の際に
なされ、指紋処理は、好ましくは、図7で説明するように、タグのないソフトウ
エアの最初の検出時に、ユーザーの装置104により実行される。
【0301】 図13Aにおいて、確認プログラム(VRP)315が、ステップ414でタ
グテーブル210にタグのないエントリーを検出すると、ステップ415が実行
される。ステップ415の処理では、ステップ410で保護センター103に転
送された指紋テーブル126から、各指紋リストを得る。指紋テーブル126は
、タグのないソフトウエアのインスタンスそれぞれについての指紋のリストから
なる。確認プログラム(VRP)315は、指紋テーブル126中の各指紋リス
トXi と、指紋データ構造体137中のすべての指紋リストYj とを、GCDB
300において、前述したように、一般ロケーション指紋チェックを用いて、付
き合わせる。指紋リストXi とYj に指定された数よりも多く一致が見つかると
、保護センターは権利侵害のソフトウエアの使用を検出して、処理はステップ4
20に進み、そこで、報復措置が用意され、呼び出しが実行されたユーザーの装
置104に送られる。権利侵害のソフトウエアの権利侵害でないバージョンを作
成したソフトウエアのベンダー101にも、通知される。
【0302】 各指紋リストXi を保護センター中のすべての指紋リストYj と比較するのは
、コンピューターにとって負担が大きく、これは呼び出し中最も負担の大きい処
理なので、ある実施形態では、これをいくぶん異なる方法で行う。この実施形態
では、反転保護指紋テーブルと呼ばれる指紋リストが作成され、すべての権利侵
害のソフトウエアのすべての指紋を含むが、複製された指紋は含まない。この反
転保護指紋テーブルを用いて、保護センター103は、各リストXi を調べ、リ
スト中いくつの指紋が、反転保護指紋テーブル(指紋データ構造体137として
保持されている)中の指紋と一致するかを決定する。指定されたのよりも多くの
一致が見つかると、各Yj に対しXi の詳細なチェックがなされ、指紋数におい
てごく近い一致があったか否かの決定がなされる。ステップ415で一致する指
紋リストが検出されない場合には、ステップ419の処理に進み、前のステップ
411または412で報復措置が規定されていないかを決定する。規定されてい
れば、処理は、前述したように、ステップ420に進む。
【0303】 ステップ419で報復措置が規定されていない場合には、ステップ421に進
む。このステップでは、保護センター103に知らされたすべてのタグTAG_
INST_SWnを、ペイパーユース(使用ごとに支払う)タグとして扱う。す
なわち、保護センター103は、タグ付きのソフトウエアデータベース138(
図9)に、ペイパーユース基準に基づいて課金されるべきソフトウエアのインス
タンス111〜114すべてのリストを保持できる。ステップ421では、その
ようなタグ(第1欄)すべてについて、および1以上のペイパーユースタグの検
出について、タグテーブル210を調べ、ステップ421は、保護センター10
3に、ペイパービューまたはペイパーユース111〜114の使用特性に関して
、会計情報(図示しない)をソフトウエアベンダー101に向けて送らせる。タ
グテーブル210中のタグエントリーのRUN COUNTまたはUSE TI
ME領域は、ペイパーユースの統計の決定に用いることができる。ペイパーユー
スタグが期限切れになると、TAG_INST_SWnのためのUSAGE S
TATUS領域は、“GC_DISABLED”にセットされる。これは、タグ
に対し使用禁止措置DISABLE(TAG_INST_SW)を用意すること
でなされる。使用禁止措置は、後述するように、継続メッセージ212に組み込
まれる。
【0304】 ステップ421のペイパーユース処理が完了すると、ステップ422が、タグ
テーブル210中の完全に確認されて期限切れでないタグすべてに対し、継続措
置CONTINUE(TAG_INST_SW)を生成する。この継続措置は、
継続メッセージ(CM)212に組み込まれる。
【0305】 ステップ423において、確認プログラム315は、継続メッセージ(CM)
212を用意し、ユーザーの装置104に返送する。継続メッセージ(CM)2
12は、いくつかの領域を含んでいる。TIME領域は、クロック304からの
現在時刻を示し、ID_TAG_TABLE領域は、呼び出しHASH(EVE
NT_HISTORY)と同時の事象履歴のエンコードと同様に、もとは呼び出
し処理のステップ410で保護センター103に送られたタグテーブル210の
個別の確認を示す。ACTION領域は、特別のユーザーの装置104の管理プ
ログラム(SP)209に対して利用可能な措置のリストから選択された措置A
CTIONS=(ACTIONS1,ACTIONS2,...ACTIONS
N)のリストを含む。ハッシュ関数値は、措置HASH(ACTIONS)にも
含まれ、計算される。最終的に、継続メッセージ212の完全な内容におけるデ
ジタル的に署名された値は、継続メッセージ212が保護センター103になり
すますサイトやホストにより偽造されないことを確実にするために、含まれる。
好ましくは、署名された値は、次のように表される。
【0306】 SIGN_GC(TIME,ID_TAG_TABLE,HASH(ACTIO
NS),HASH(EVENT_HISTORY))
【0307】 継続メッセージ(CM)212の領域のすべてが完成すると、確認プログラム
315は、継続メッセージ(CM)212を、ステップ410で呼び出しを始め
たユーザーの装置104内の管理プログラム(SP)209に、安全に返送また
は返信する。1つの実施形態では、これには、呼び出し中に装置により与えられ
た公開のキーを使う。侵害者が同じ公開のキーをもつ2つの装置を設定しても、
正しい事象履歴をもつ1つの装置のみが、本発明のこの実施形態にしたがって、
継続メッセージ212を処理できる。
【0308】 最終的に、ステップ425において、保護センター103は、呼び出し処理に
ついての呼び出し記録CALL−UP_RECORDnを作成する。保護センタ
ー103は、このTAG_INST_SWに関連するデータ構造体320(図1
0)に、この呼び出し記録CALL−UP_RECORDnへのレファランスを
付加する。レファランスは、メモリーポインターかCALLUP_RECORD
の個別の識別子のいずれかである。呼び出し記録の内容については、図10を参
照して前述した。
【0309】 本発明のこの構成の有用性の例は、本発明の特徴のいくつかを明確にする。例
えば、ユーザー213がソフトウエアのインスタンス111〜114を使用する
1年のライセンスを購入し、その1年の期限が切れた後、ユーザー213がライ
センスを更新しないとする。ユーザー213が更新しないので、ソフトウエアベ
ンダー101は、ユーザー213がもはやライセンスを保持していないソフトウ
エアのインスタンス111〜114を使用禁止にすることを望む。本発明によれ
ば、ベンダー101は、ソフトウエアのインスタンス111〜114に関連する
保護センター103にポリシーPOICY(TAG_INST_SW)を単に設
定して、インスタンス111〜114が備えられた装置104から保護センター
103への次の呼び出しにおいて、インスタンスを使用禁止にできる。このよう
にして、強力な使用管理が、ユーザー213にソフトウエアのインスタンス11
1〜114の返却を求めることなしに、なされる。ユーザー213が、後でライ
センスの更新を希望するならば、ベンダー101は、ただ保護センター103で
ポリシーPOICY(TAG_INST_SW)を変更すればよく、そうすると
、次の呼び出しが、ユーザーの装置104のタグテーブル210を、インスタン
ス111〜114について“CONTINUED”ステータスタグTAG_IN
ST_SWとして更新する。
【0310】 保護センター103に用意された継続メッセージCM212の種々の要素、お
よび、CM212に組み込まれた前述のデジタル署名は、本発明の実施形態でい
くつかの重要な目的を果たす。継続メッセージ212は、それを受けるユーザー
の装置104の管理プログラム209に、装置のタグテーブル210のUSAG
E STATUS欄をどう更新するか、および、もしあるなら、どの報復措置を
とるか、について指示する。識別ハッシュ関数およびCM212(図13Bの4
23)の他の値は、要求された呼び出し処理を完遂するために、不正なユーザー
213が、ユーザーの装置104(すなわち、104〜107のうちの1つ)か
らの現在の呼び出しに応じて保護センター103により実際に与えられた1つ以
外のあらゆる継続メッセージ212を使用することを、仮想的に不可能にする。
また、敵対者や敵対ホストは、不正CM212を装置104に送ることによって
、ユーザーの装置(すなわち、104)へのサービスを拒否するような損害を与
えることはできない。
【0311】 前記の好ましい実施形態で述べたように、本発明は、ソフトウエアベンダー1
01により作成され、配布された(すなわち、販売された)ソフトウエアのイン
スタンス111〜114、または、ユーザーの装置104によるアクセスで権利
侵害され、不正に配布されたインスタンスの使用を、検出し、制御し、かつ管理
する機構を提供する。各ソフトウエアのインスタンス111〜114を個別に識
別する、偽造できず、認証されたタグTAG_INST_SWを与えることによ
り、使用管理がなされる。好ましい実施形態では、TAG_INST_SWが適
正にソフトウエアのインスタンスINST_SWに関連しているかを確認するの
に、指紋位置の同一性(same location fingerprinting)を用いる。
【0312】 指紋は、やや異なる目的にも同様に用いることができる。そのような1つの目
的は、オペレーティングシステム207のテキストの完全性(textual integrit
y )のチェックである。これは、プログラムの一部に、他の部分または他のプロ
グラムを前記指紋処理でチェックさせることにより、なしえる。これは、例えば
管理プログラム209やオペレーティングシステム207の不法変更を防止する
。他の実施形態では、電子的にプログラム可能なリードオンリーメモリーのよう
な外部ハードウエアが、機器または装置104〜107の電源が入っているとき
に、このチェックを行える。いずれの場合も、チェックプログラムは、前述のよ
うに、オペレーティングシステムプログラム207のいくつかの部分でハッシュ
指紋を計算でき、例えば、指紋の不一致を見つけると、装置の失敗を起こす。ま
た、指紋は、オペレーティングシステム207により管理プログラム209テキ
ストをチェックするのにも、用いることができる。同様に、管理プログラム20
9は、事象履歴のハッシュを確認または認証のチェックに用いることができる。
【0313】 これは、例えば、以下のように動作する。管理プログラム209は、MD5の
ような増大ハッシュ関数法を用いて、タグテーブル210のデータのハッシュを
各更新の後に更新できる。タグテーブル210を新しい事象で更新する前に、定
期的に、管理プログラム209は、保持するハッシュ関数値がタグテーブル21
0のハッシュと等しいことを確認できる。これらのチェックのいずれかでも失敗
すると、管理プログラム209またはオペレーティングシステム207は、報復
措置をとることができる。このように、本発明の構成は、本発明自体として動作
するソフトウエアを不法変更する装置またはソフトウエアを検出するために、用
いることができる。
【0314】 指紋のさらなる用途は、ソフトウエアのインスタンス111〜114のタグ1
20に対する要求に応じてタグサーバー102に出された特定のベンダーソフト
ウエアが、他の適法なベンダーのソフトウエアSWからの不法な複製または派生
物でないことの確認である。そのような行為が可能とすると、侵害者であるベン
ダーが、認証されたタグ120を供給したタグサーバー上の、他の適法なベンダ
ーのソフトウエアSWを配布するのを許すことになる。本発明のこの構成は、あ
らたに生成したソフトウエアを指紋付けし、一般位置指紋(general location f
ingerprinting )を用いて、新たなソフトウエアを既存のソフトウエアと比較し
、新たに出されたベンダーソフトウエアが適法なベンダーソフトウエアSWに酷
似していないかを調べて、このような形態の侵害を防止する。
【0315】 ソフトウエアのインスタンス111〜114は、それがインストールされると
きまたは最初に使用されるときにチェックされたタグをもっている。タグは、ま
た、後にもチェックされる(すなわち、ハッシュ、署名または呼び出し処理を介
して)。ソフトウエアが最初に使用されるまで待つ理由の1つは、ソフトウエア
が大容量の場合、最初にインストールされるときよりも、ソフトウエアの実行中
の方が、チェックの負担が少ないからである。
【0316】 失敗を理由に、装置の状態(ステータス)は、前の状態に再構築される。この
場合、ユーザー213は、古いHEADER_TAG_TABLEを送ってもら
う必要があることを通知するために、保護センター103に連絡しなければなら
ない。この特典を受けるにつき疑わしいユーザーは、保護センター103に容易
に追跡される。
【0317】 図14は、本発明の他の実施形態で用いられるデータ構造体を示し、この実施
形態によれば、保護センター103が共有データファイルを供給するソフトウエ
アを呼び出すことを不要にできる。ワープロのプログラムを例にとる。ワープロ
のファイルと同様に、ワープロのソフトウエアも、知人間でよく交換される。一
般的には、最初のケースは許されるが、2番目のソフトウエアプリケーション交
換のケースは許されない。このような権利侵害を防止するために、本発明の実施
形態は、図14のデータ構造体600に示すように、例えばID_TAG_TA
BLE同様に、プログラムに付随するTAG_INST_SW120を書き込み
、各共有ファイルの不明な位置(invisible location)への最近のアクセス時刻
を書き込んで、ソフトウエアプリケーションプログラムを変更できる。また、同
図に示すように、プログラムは、TAG_INST_SWおよびTAG_TAB
LE601への最近のアクセス時刻を書き込む。
【0318】 共有データファイル(すなわち、例えばドキュメントで、ここではSSDで参
照される)中の不明な位置(すなわち、ユーザーにとって不明な)に蓄積された
データ構造体600は、共有ソフトウエアデータSSDファイルのコメントセク
ションに置かれ、好ましくは3つの独立変数を用いる偽造できないハッシュ関数
に付随できる。
【0319】 図15は、前述のソフトウエア権利侵害保護機構を提供する本発明の実施形態
のステップを示す。図15のステップ700において、ID_TAG_TABL
E Xをもつ第1のユーザーの装置(すなわち、ユーザーの装置104)の管理
プログラムSP 209が、共有ソフトウエアデータSSDへのアクセスを検出
すると、管理プログラム209は、共有ソフトウエアデータSSDと、ある特定
の時刻にTAG_INST_SW Tをもつソフトウエアのインスタンス(すな
わち、111〜114のうちの1つ)によりアクセスされた共有ソフトウエアデ
ータSSD内の所定の位置の記録とを調べる。そして、ステップ701で、ソフ
トウエアのインスタンス(潜在的に他の機械または他のユーザーの装置(例えば
105)にある)が、共有ソフトウエアデータファイルSSDを実行し、アクセ
スしようとすると、ユーザーの装置105の管理プログラム209は、共有ソフ
トウエアデータファイルSSD中にデータ構造体600があることを検出し、S
SDからタグTを得て、ユーザーの装置105(共有ファイルを得ている装置、
ただし、ファイルSSDの装置を作製する必要はない)のタグテーブル210を
チェックし、タグテーブル210にタグTがあるかを調べる。タグTがない場合
は、共有ソフトウエアデータSSDにアクセスするために第2の装置105(共
有データを得ている装置)で使用されたソフトウエアのインスタンスは、複製さ
れたものではなく、アクセスが認められてステップ703の処理に進む。
【0320】 一方、ステップ701で、共有ソフトウエアデータSSD中のデータ構造体6
00にタグTがある場合には、処理はステップ702に進む。ステップ702で
は、第2の装置105の管理プログラム209は、タグTの付いたソフトウエア
のインスタンス(例えば、第2の装置105のインスタンス111〜114のう
ちの1つ)が、SSDに組み込まれたデータ構造体600に示された時刻に共有
データファイルを書き込んだかを調べる。書き込んでいなかった場合には、権利
侵害が起こったのであり、管理プログラム209は、ステップ704で第2のユ
ーザーの装置に対し報復措置を実行する。ステップ702で、第2の装置105
の現在のソフトウエアのインスタンス111〜114が、SSDに組み込まれた
データ構造体600中の情報により示されたように、共有ソフトウエアデータS
SDにアクセスすることが決定されると、処理は703に進み、そこで、共有ソ
フトウエアデータへのアクセスが認められる。
【0321】 本発明の他の実施形態では、同じソフトウエアの異なるソフトウエアのインス
タンスは、装置識別子によって異なる。このような実施形態の利点は、保護セン
ターとの連絡の必要性が低減されることである。不利な点は、各ソフトウエアの
インスタンスは、異なっていなければならず(タグの有無まで対比して)、装置
から装置へ移せないことである。この実施形態では、装置識別子は、利用できる
場合にはプロセッサー識別子から作成されるか(インテル社製のペンティアム(
登録商標)III のようなプロセッサーは、プロセッサー識別子をもっている)、
好ましくは管理プログラム識別子から作成され、前述したようなプロセッサー識
別子を組み込んでいる。各ソフトウエアのインスタンスは、テストでそのソフト
ウエアのインスタンスを使用する装置の識別子を、ソフトウエアのインスタンス
のコードに組み込む。そのようなテストは、C言語で、例えば“if文”として
、表される。テストでは、組み込まれた識別子を装置識別子と比較する。ソフト
ウエアは、実行中、テストを行う。比較が成功(一致)すると、装置はソフトウ
エアのインスタンスを使用する。比較が失敗(不一致)であると、装置はインス
タンスを使用せず、管理プログラムに報復措置をとるよう通知する。侵害未遂は
、装置識別子をチェックしないように、プログラムを変更する。これは、タグ付
きのソフトウエアを、あたかもタグなしで権利侵害であるかのようにするのに似
ている。装置テストが変更され、または除去されたソフトウエアは、図13Aに
詳述し、ステップ414から始まる指紋に基づく機構により検出される。
【0322】 この実施形態の変形では、ベンダーが、装置識別子と、装置識別子を組み込む
ソフトウエアのインスタンスのハッシュのデジタル署名との両方を送る。これは
、次のように計算される。
【0323】 SIGN_VENDOR(HASH_INST_SW) ただし、HASH_INST_SW=HASH(SW,DEVICE_IDEN
TIFIER)
【0324】 ここで、SIGN_VENDORは、ベンダーのデジタル署名であり、HAS
H_INST_SWは、ソフトウエアの内容(すべてのインスタンスに個別であ
る)に組み込まれたDEVICE_IDENTIFIERを加えて計算される。
装置識別子を組み込んだソフトウエアのインスタンスは、好ましくは、その識別
子を、ソフトウエアの内容の最初または最後に配置し、ハッシング処理の負担を
軽減する。第2のテストでは、デジタル署名SIGN_VENDORが確認され
、第3のテストでは、送られたHASH_INST_SWが、ソフトウエアのイ
ンスタンスのハッシングの結果値に等しいかを確認する。これらのテストは、ユ
ーザーの装置の管理プログラムで実行される。デジタル署名が認証されないか、
HASH_INST_SWが、受けたソフトウエアのインスタンスのハッシュと
異なる値をもつと、管理プログラムにより報復措置がとられる。
【0325】 以上においては、タグサーバー102、保護センター103およびベンダー1
01は、分離されたものとして説明した。他の実施形態では、これらの役割をま
とめてもよい。例えば、1つのサイト、ネットワークホストまたはサーバーは、
保護センター103およびタグサーバー102の両方として機能できる。あるい
は、ソフトウエアベンダー101は、3つすべての役割を果たすことができる。
さらにまた、各処理または役割を分離しても、前記実施形態における1つの要素
(すなわち、タグサーバー、保護サーバー、ベンダー)に割り当てたいくつかの
機能は、他の要素により実行できる。例えば、同一位置指紋(same-location fi
ngerprinting)は、タグサーバー102に代わって、ベンダー101で実行でき
る。
【0326】 本発明を好ましい実施形態により図示し、説明してきたが、当業者には、前記
特許請求の範囲で定まる本発明の精神と範囲から逸脱することなく、形状または
細部の各種の変更が実行可能であることは理解されるであろう。
【図面の簡単な説明】
【図1】 本発明の一実施形態かかる情報システムの図である。
【図2】 本発明の一実施形態かかるシステムにおける情報の流れの詳細図である。
【図3A】 本発明の一実施形態に従ってソフトウエアインスタンスに対して署名されたタ
グを作る処理ステップを示すフローチャートである。
【図3B】 本発明の一実施形態に従ってソフトウエアインスタンスに対して署名されてい
ないタグを作る処理ステップを示すフローチャートである。
【図3C】 本発明の一実施形態に従ってソフトウエアインスタンスに対して指紋を持つ署
名されていないタグを作る処理ステップを示すフローチャートである。
【図4】 本発明の一実施形態にかかるユーザー装置のアーキテクチャーを示す図である
【図5】 本発明の一実施形態に従ってユーザー装置にベンダーソフトウエアをインスト
ールする処理ステップを示すフローチャートである。
【図6】 本発明の一実施形態にかかるタグテーブルの内容を示す図である。
【図7】 本発明の一実施形態に従ってユーザー装置にタグのないソフトウエアをインス
トールする処理ステップを示すフローチャートである。
【図8】 本発明の一実施形態に従ってソフトウエアの使用管理を実施する本発明のシス
テムによって実行される高レベル処理ステップを示すフローチャートである。
【図9】 本発明の一実施形態にかかる保護センターのアーキテクチャーを示す図である
【図10】 本発明の一実施形態にかかるソフトウエアインスタンスに対する保護センター
記録の内容を示す図である。
【図11】 図11は、ベンダーのソフトウエアに関するベンダーの権利を侵害するソフト
ウエアをベンダーが検出した際に、本発明の一実施形態にかかる保護センターに
よって実行される処理のフローチャートである。
【図12】 本発明の一実施形態に従って保護センターに対する呼び出し手順を実行する際
に、ユーザー装置の管理プログラムによって実行される処理ステップのフローチ
ャートである。
【図13A】 本発明の一実施形態に従って実行される保護センター呼び出し処理ステップの
フローチャートである。
【図13B】 図13Aの続きのフローチャートである。
【図14】 保護センターの呼び出しなしに、本発明の一実施形態で使用されるデータ構造
体を示す図である。
【図15】 保護センターの呼び出しなしに、本発明の一実施形態におけるユーザー装置の
管理プログラムによって実行される処理ステップのフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AG,AL,AM,AT,AU, AZ,BA,BB,BG,BR,BY,CA,CH,C N,CR,CU,CZ,DE,DK,DM,DZ,EE ,ES,FI,GB,GD,GE,GH,GM,HR, HU,ID,IL,IN,IS,JP,KE,KG,K P,KR,KZ,LC,LK,LR,LS,LT,LU ,LV,MA,MD,MG,MK,MN,MW,MX, NO,NZ,PL,PT,RO,RU,SD,SE,S G,SI,SK,SL,TJ,TM,TR,TT,TZ ,UA,UG,UZ,VN,YU,ZA,ZW (72)発明者 ラビン・マイケル・オー アメリカ合衆国,マサチューセッツ州 02138,ケンブリッジ,コンコード アベ ニュー 243 (72)発明者 シャーシャ・デニス・イー アメリカ合衆国,ニューヨーク州 10012, ニューヨーク,ブリーカー ストリート 100 Fターム(参考) 5B076 FB03 FB05 FB19 FD01 5B085 AE26 BG07

Claims (137)

    【特許請求の範囲】
  1. 【請求項1】 ソフトウエアの使用を管理するためのシステムであって、 ソフトウエアのインスタンスを作成するソフトウエアベンダーと、 複数のタグを作成するタグサーバーであって、そのタグはソフトウエアのイン
    スタンスごとに1つ存在し、各タグは、そのタグが関連しているソフトウエアの
    インスタンスを一意に識別するタグサーバーと、 ソフトウエアのインスタンスを受け取ってインストールし、さらにそのソフト
    ウエアのインスタンスに一意に関連するタグを安全に受け取るユーザー装置であ
    って、ソフトウエアのインスタンスの使用を検出し、ソフトウエアのインスタン
    スに関連するタグの認証を確認した後、そのソフトウエアのインスタンスの使用
    を許可する管理プログラムを含むユーザー装置とを備えているシステム。
  2. 【請求項2】 請求項1において、ユーザー装置上の前記管理プログラムが
    タグの認証を確認し、タグテーブル内にそのタグを維持し、そのタグが認証され
    ている場合は前記ソフトウエアのインスタンスを維持し、ソフトウエアに関連す
    るタグが認証されていない場合はソフトウエアのインスタンスを拒絶するシステ
    ム。
  3. 【請求項3】 請求項2において、前記管理プログラムがタグ内のハッシュ
    関数値を確認して、そのタグが認証されているかどうか、さらに前記ソフトウエ
    アのインスタンスに適正に関連付けされているかどうかを決定するシステム。
  4. 【請求項4】 請求項2において、前記タグがデジタル的に署名され、前記
    管理プログラムがタグのデジタル署名を確認することによりタグの認証を確認す
    るシステム。
  5. 【請求項5】 請求項1において、タグサーバーにより作成された複数のタ
    グのそれぞれが、少なくとも1つのソフトウエア名と、ソフトウエアのインスタ
    ンスの固有の番号と、ソフトウエアのインスタンスの各部分のハッシュ関数値を
    含んでいるシステム。
  6. 【請求項6】 請求項5において、前記ソフトウエアのインスタンスの固有
    の番号が疎セットから選択されているシステム。
  7. 【請求項7】 請求項5において、各タグが前記管理プログラムの固有の識
    別子をさらに含んでいるシステム。
  8. 【請求項8】 請求項7において、前記管理プログラムが、タグ内の管理プ
    ログラムの前記固有の識別子がユーザー装置上の管理プログラムの識別子と同一
    であることを確認するシステム。
  9. 【請求項9】 請求項1において、各タグが、そのタグに関連した前記ソフ
    トウエアのインスタンスの各部分で計算された少なくとも1つの指紋を含んでい
    るシステム。
  10. 【請求項10】 請求項9において、前記管理プログラムにより、タグに関
    連したソフトウエアのインスタンスが、そのソフトウエアのインスタンスに関連
    したタグ内に含まれる少なくとも1つの指紋に対する同一位置指紋検査を満たす
    ことを確認するシステム。
  11. 【請求項11】 請求項10において、前記同一位置指紋検査が、ソフトウ
    エアのインスタンスの使用の前、使用中、および使用後において少なくとも1回
    前記管理プログラムにより実行されるシステム。
  12. 【請求項12】 請求項9において、各タグが、少なくとも1つの指紋を計
    算できる値を含む少なくとも1つの位置のリストをさらに含み、前記管理プログ
    ラムにより、各タグに関連したソフトウエアのインスタンスが、前記少なくとも
    1つの位置のリスト内で指定された位置におけるソフトウエアに関連する少なく
    とも1つの指紋に対する同一位置指紋検査を満たすことを確認するシステム。
  13. 【請求項13】 請求項1において、前記ソフトウエアのインスタンスによ
    りすべてのデータファイルがアクセスされ、そのアクセスを実行するソフトウエ
    アのインスタンスに関連する情報が前記データファイルに関連する位置に格納さ
    れているシステム。
  14. 【請求項14】 請求項13において、ソフトウエアのインスタンスに関連
    する前記情報が、そのソフトウエアのインスタンスに関連するタグであるシステ
    ム。
  15. 【請求項15】 請求項13において、ソフトウエアのインスタンスに関連
    する前記情報が、そのソフトウエアのインスタンスにより実行される変更の時刻
    であるシステム。
  16. 【請求項16】 請求項13において、前記アクセスを実行するソフトウエ
    アのインスタンスに関連する前記情報が、前記管理プログラムだけがアクセス可
    能な安全な位置に書き込まれているシステム。
  17. 【請求項17】 請求項16において、前記管理プログラムが、ソフトウエ
    アのインスタンスが1つのデータファイルに関連した位置に格納された関連情報
    を有するデータファイルにアクセスを試みる時を確認し、さらに前記管理プログ
    ラムが、前記格納された関連情報が現在アクセスを試みるソフトウエアのインス
    タンスに関連する情報であることを確認するシステム。
  18. 【請求項18】 請求項16において、前記管理プログラムが偽造できない
    ハッシュ関数を使用して、現在アクセスを試みているデータファイルに関連する
    位置に格納された関連情報を確認するシステム。
  19. 【請求項19】 請求項1において、保護センターが、タグ付けされたソフ
    トウエアデータベースと、確認プログラムとを含み、 前記保護センターが呼び出し手順によって定期的にユーザー装置と通信してユ
    ーザー装置からタグを受け取り、前記タグはユーザー装置で使用されるタグ付け
    されたソフトウエアのインスタンスに関連付けされ、前記確認プログラムがタグ
    付けされたソフトウエアデータベースと対照してユーザー装置から受け取った各
    タグを検査して、タグが少なくとも1つの使用管理ポリシーに適合していること
    を保証し、さらに前記確認プログラムがユーザー装置に継続メッセージを返し、
    その継続メッセージが、ユーザー装置上の各タグに関連したソフトウエアのイン
    スタンスに対してその後の動作を指示するものであり、 ユーザー装置上の前記管理プログラムが前記継続メッセージの認証を確認し、
    認証した場合は前記継続メッセージ内に指示されたその後の動作を実行するシス
    テム。
  20. 【請求項20】 請求項19において、ソフトウエアベンダー、タグサーバ
    ーおよび保護センターの少なくとも1つが、ソフトウエアベンダー、タグサーバ
    ーおよび保護センターの内の少なくとも1つの他のものと結合されているシステ
    ム。
  21. 【請求項21】 請求項19において、連続した呼び出し手順間の最大許容
    時間間隔が、ユーザー装置内で経過した時間、ユーザー装置が起動された回数、
    およびユーザー装置の使用程度の組合せの少なくとも1つにより決定されている
    システム。
  22. 【請求項22】 請求項21において、最後の呼び出し手順後の前記最大許
    容時間間隔の終了以前に、ユーザー装置が前記保護センターによる呼び出し手順
    の実行に失敗したときは、そのユーザー装置が一定の期間無効にされるシステム
  23. 【請求項23】 請求項21において、最後の呼び出し手順後の前記最大許
    容時間間隔の終了以前に、ユーザー装置が前記保護センターによる呼び出し手順
    の実行に失敗したときは、特定のソフトウエアのインスタンスの使用が一定の期
    間拒絶されるシステム。
  24. 【請求項24】 請求項19において、呼び出しが発生するのが、ソフトウ
    エアのインスタンスがユーザー装置上で最初に使用される時であるシステム。
  25. 【請求項25】 請求項19において、呼び出しが発生するのが、前記保護
    センターからの要求によるものであるシステム。
  26. 【請求項26】 請求項19において、前記継続メッセージ内のタグテーブ
    ルのハッシュ関数値が、ユーザー装置からの呼び出しメッセージ内で送られたタ
    グテーブル内のハッシュ関数値と同一であることを確認することにより、前記管
    理プログラムが継続メッセージの認証をテストするシステム。
  27. 【請求項27】 請求項26において、前記管理プログラムが、継続メッセ
    ージ内のデジタル署名が前記保護センターにより作成されたことを確認すること
    により、前記継続メッセージの認証がテストされるシステム。
  28. 【請求項28】 請求項19において、前記保護センターに対する呼び出し
    メッセージの後に続く継続メッセージを受信しないユーザー装置は、前の呼び出
    しメッセージに対するキャンセルコマンドを用いて呼び出しメッセージを再送信
    するシステム。
  29. 【請求項29】 請求項19において、少なくとも1つの使用管理ポリシー
    が、少なくとも1つのタグに関連付けされた少なくとも1つの個々のソフトウエ
    アのインスタンスに関連付けされているシステム。
  30. 【請求項30】 請求項19において、少なくとも1つの使用管理ポリシー
    が、呼び出し手順中に保護センターが通信する全体のユーザー装置に関連付けさ
    れているシステム。
  31. 【請求項31】 請求項19において、少なくとも1つの使用管理ポリシー
    が、呼び出し手順の間に保護センターが通信するユーザー装置の個々のユーザー
    に関連付けされているシステム。
  32. 【請求項32】 請求項19において、少なくとも1つの使用管理ポリシー
    が、呼び出し手順中に保護センターが通信するユーザー装置の使用履歴に関連付
    けされているシステム。
  33. 【請求項33】 請求項19において、前記保護センターが、各ユーザー装
    置上の各ソフトウエアのインスタンスの関連する各タグに対する、タグ付けされ
    たソフトウエアデータベースのタグデータ構造体を保持するシステム。
  34. 【請求項34】 請求項33において、各タグデータ構造体がソフトウエア
    のインスタンスのタグと、前記ソフトウエアのインスタンスに関連する使用管理
    ポリシーと、呼び出し記録に対する参照の収集物とを含むシステム。
  35. 【請求項35】 請求項34において、呼び出し記録の前記収集物内の各呼
    び出し記録が、1つの呼び出し手順に関する情報を表し、また前記呼び出し手順
    に関連する継続メッセージが、少なくとも1つの呼び出し時刻と、呼び出し手順
    の間に保護センターに転送されるタグテーブルのヘッダーと、前の呼び出し手順
    の時刻表示を示す最後の呼び出し時刻と、呼び出し手順の間に保護センターに転
    送される前記タグテーブルのハッシュ関数値と、ユーザー装置のその後の動作と
    を含むシステム。
  36. 【請求項36】 請求項1において、確認プログラムを含む保護センターを
    さらに備え、 前記保護センターが呼び出し手順によってユーザー装置と定期的に通信して、
    そのユーザー装置からユーザー装置管理プログラムに対する固有の識別子を受け
    取り、前記確認プログラムが前記固有の識別子をテストして、多くても1つの管
    理プログラムがその識別子を有し、前記確認プログラムがユーザー装置に継続メ
    ッセージを返し、ユーザー装置上の各タグに関連するソフトウエアのインスタン
    スの使用を試みる際に前記継続メッセージがその後の動作を指示し、 前記ユーザー装置の管理プログラムが継続メッセージの認証を確認し、認証さ
    れた場合は、その継続メッセージ内の動作を実行するシステム。
  37. 【請求項37】 請求項36において、前記管理プログラムが呼び出される
    最初の時に、まれにしか複製されない番号に基づいて、前記管理プログラム識別
    子が作成されるシステム。
  38. 【請求項38】 請求項37において、前記まれにしか複製されない番号は
    、前記管理プログラムが装置により最初に呼び出される時に発生する非常に正確
    なクロック値であるシステム。
  39. 【請求項39】 請求項37において、前記まれにしか複製されない事象が
    、保護センターにより提供される番号であるシステム。
  40. 【請求項40】 請求項1において、ユーザー装置上で使用されるタグ付け
    されていないソフトウエアのインスタンスをさらに備え、 前記管理プログラムが前記タグ付けされていないソフトウエアのインスタンス
    を検出して、前記タグ付けされていないソフトウエアのインスタンス上の指紋処
    理を実行し、ユーザー装置上の前記指紋処理の結果である指紋を格納するシステ
    ム。
  41. 【請求項41】 請求項40において、前記ユーザー装置の管理プログラム
    が、前記装置上で使用されるタグ付けされていないソフトウエアのインスタンス
    上の指紋処理をさらに実行し、前記ユーザー装置上の指紋テーブル内の指紋処理
    から得られる前記指紋を格納するシステム。
  42. 【請求項42】 請求項41において、前記管理プログラムが指紋を計算し
    た位置を格納するシステム。
  43. 【請求項43】 請求項41において、前記指紋が前記ソフトウエアのイン
    スタンスの内容に基づくシステム。
  44. 【請求項44】 請求項41において、前記指紋が前記ソフトウエアのイン
    スタンスの挙動の既知のシーケンスに基づくシステム。
  45. 【請求項45】 請求項41において、指紋データ構造体と確認プログラム
    を含む保護センターをさらに備え、 前記保護センターが呼び出し手順によってユーザー装置と定期的に通信して、
    前記ユーザー装置上で使用されるソフトウエアのインスタンスに対するユーザー
    装置からの全指紋を受け取り、前記確認プログラムが前記指紋データ構造体に対
    してユーザー装置から受け取ったすべての指紋を比較し、ユーザー装置上で使用
    されるソフトウエアのインスタンスが権利侵害のソフトウエアのインスタンスで
    あるかどうかを決定するシステム。
  46. 【請求項46】 請求項45において、前記確認プログラムが、前記保護セ
    ンターの指紋データ構造体内の指紋とユーザー装置から受け取った指紋との間の
    一致の指定数より多くの一致を検出した場合は、前記確認プログラムが実行すべ
    き報復措置を指定して、継続メッセージをユーザー装置に返し、前記継続メッセ
    ージが前記ユーザー装置上で実行すべき報復措置を指示するシステム。
  47. 【請求項47】 請求項46において、前記指紋一致処理が少なくとも1つ
    の一般位置または同一位置指紋一致であるシステム。
  48. 【請求項48】 請求項46において、前記指紋一致が反転保護センター指
    紋テーブルを使用するシステム。
  49. 【請求項49】 請求項46において、前記報復措置が、ユーザー装置を指
    定時間無効にすることを指定するシステム。
  50. 【請求項50】 請求項46において、前記報復措置が、保護センターの指
    紋データ構造体内の指紋に一致した指紋に関連するソフトウエアのインスタンス
    を指定時間無効にすることを指定するシステム。
  51. 【請求項51】 請求項46において、前記報復措置が、ユーザー装置の挙
    動履歴と、ユーザー装置上の特定ユーザーの挙動履歴と、ユーザー装置上の他の
    ソフトウエアの収集物との組み合わせの少なくとも1つに依存しているシステム
  52. 【請求項52】 請求項45において、前記ソフトウエアベンダーが権利侵
    害のソフトウエアインスタンスのコピーを保護センターに送信し、前記保護セン
    ターが前記権利侵害のソフトウエアインスタンス上の指紋を計算し、さらに保護
    センター上の指紋データ構造体内に前記指紋を格納するシステム。
  53. 【請求項53】 ユーザー装置の読み取り可能媒体上で符号化されたタグテ
    ーブルデータ構造体であって、前記タグテーブルデータ構造体が、1つのソフト
    ウエアインスタンスに一意的に関連付けされた少なくとも1つのタグを含み、タ
    グテーブル内の前記タグに関連する少なくとも1つの領域を含み、さらにソフト
    ウエアインスタンスに関連する前記タグに関連する使用状況を表す少なくとも1
    つの領域を含んでいるタグテーブルデータ構造体。
  54. 【請求項54】 請求項53において、前記少なくとも1つの領域が、タグ
    に関連する前記1つのソフトウエアインスタンスに対する使用統計を表している
    タグテーブルデータ構造体。
  55. 【請求項55】 請求項53において、前記タグテーブルを一意的に識別す
    るタグテーブルヘッダをさらに含んでいるタグテーブルデータ構造体。
  56. 【請求項56】 請求項53において、前記タグテーブルヘッダがユーザー
    装置使用統計に関する情報と継続メッセージを含んでいるタグテーブルデータ構
    造体。
  57. 【請求項57】 それぞれが少なくとも1つの名称とソフトウエア内容を有
    する、ソフトウエアインスタンスを作成するソフトウエア作成機構と、 各ソフトウエアインスタンスがそのソフトウエアインスタンスに固有のタグだ
    けに関連して使用でき、また前記タグが、そのタグに関連付けされた前記ソフト
    ウエアインスタンスに関連する情報の固有の偽造できない収集物であり、さらに
    前記ソフトウエアの少なくとも1つの名称と、前記ソフトウエアインスタンスの
    固有の番号と、前記ソフトウエア内容の各部分のハッシュ関数値を含むソフトウ
    エアインスタンスとを備えているソフトウエアベンダー。
  58. 【請求項58】 請求項57において、前記タグが、ソフトウエアインスタ
    ンスを使用するユーザー装置に関連する前記管理プログラムの識別子を含んでい
    るソフトウエアベンダー。
  59. 【請求項59】 請求項57において、前記タグが、前記タグが関連付けさ
    れているソフトウエアインスタンスの各部分の指紋のリストを含んでいるソフト
    ウエアベンダー。
  60. 【請求項60】 請求項57において、ベンダーの権利を侵害するソフトウ
    エアを検出し、その権利侵害のソフトウエアのコピーを保護センターに転送して
    使用管理を実行し、ユーザー装置上の権利侵害のソフトウエアインスタンスの使
    用を検出できるようにする権利侵害ソフトウエア検出機構を備えているソフトウ
    エアベンダー。
  61. 【請求項61】 請求項60において、ベンダーの権利を侵害するソフトウ
    エアを検出し、その権利侵害のソフトウエアのコピーを保護センターに転送し、
    前記保護センターが前記権利侵害のソフトウエアインスタンスに関連するすべて
    のタグを無効にし、前記権利侵害のソフトウエアインスタンスを使用した保護セ
    ンターにより検出されたすべてのユーザー装置に対し報復措置を送信する権利侵
    害ソフトウエア検出機構を備えているソフトウエアベンダー。
  62. 【請求項62】 ソフトウエアインスタンスと、一意的に関連付けされたタ
    グと、ソフトウエアインスタンスを使用するための要求とを受け取る入力ポート
    と、 管理プログラムを実行するプロセッサであって、前記ソフトウエアインスタン
    ス使用するための要求を検出し、ソフトウエアインスタンスに関連するタグの認
    証を確認した後、ユーザー装置での前記ソフトウエアインスタンスの使用を許可
    するプロセッサとを備えているユーザー装置。
  63. 【請求項63】 請求項62において、前記管理プログラムが、前記タグの
    認証を確認し、タグテーブル内にそのタグを保持し、そのタグが認証されている
    場合は前記ソフトウエアインスタンスを維持し、ソフトウエアに関連する前記タ
    グが認証されていない場合は前記ソフトウエアインスタンスを拒絶するユーザー
    装置。
  64. 【請求項64】 請求項63において、前記管理プログラムが、前記ソフト
    ウエアインスタント上のハッシュ関数値を計算し、その計算した値を前記タグ内
    のハッシュ関数値と比較して、前記タグが認証されているかどうか、さらに前記
    ソフトウエアインスタンスに適正に関連付けされているかどうかを決定するユー
    ザー装置。
  65. 【請求項65】 請求項63において、前記タグがディジタル的に署名され
    、前記管理プログラムがタグのディジタル署名を確認することによりタグの認証
    を確認するユーザー装置。
  66. 【請求項66】 請求項63において、前記タグテーブルがユーザー装置上
    のストレージ内に格納されたデータ構造体であり、ソフトウエアインスタンスに
    一意的に関連する少なくとも1つのタグを含み、さらにタグテーブル内の前記タ
    グに関連する少なくとも1つの領域を含むものであって、前記少なくとも1つの
    領域が前記タグに関連する前記ソフトウエアインスタンスに対する使用状況を表
    しているユーザー装置。
  67. 【請求項67】 請求項62において、前記管理プログラムが、呼び出しポ
    リシーによる規定にしたがって呼び出し手順を要求することを決定し、さらに前
    記管理プログラムが、前記呼び出し手順を実行してタグテーブル内に格納された
    タグの前記使用状況を更新するユーザー装置。
  68. 【請求項68】 請求項62において、前記管理プログラムが、タグ付けさ
    れたソフトウエアで使用される各データが正当なソフトウエアインタンスにより
    作成されていることを確認するユーザー装置。
  69. 【請求項69】 請求項67において、前記呼び出し手順の実行中に、前記
    管理プログラムがユーザー装置に接続された相互接続機構を介してユーザー装置
    から前記タグテーブルを安全に送信し、前記ユーザー装置に返送される継続メッ
    セージの受け取りを待機するものであり、前記継続メッセージが前記タグテーブ
    ル内の各タグに対し実行すべき動作を指示しているユーザー装置。
  70. 【請求項70】 請求項67において、前記呼び出し手順の実行中に、前記
    管理プログラムが、ユーザー装置に接続された相互接続機構を介してユーザー装
    置からタグテーブルヘッダを安全に送信し、前記ユーザー装置に返送される、前
    記タグテーブル内の各タグに対し実行すべき動作を指示している継続メッセージ
    の受け取りを待機するユーザー装置。
  71. 【請求項71】 請求項62において、前記ユーザー装置上で使用されるタ
    グ付けされていないソフトウエアインスタンスをさらに備え、 前記管理プログラムが、前記タグ付けされていないソフトウエアインスタンス
    を検出して、前記タグ付けされていないソフトウエアインスタンス上の指紋処理
    を実行し、前記ユーザー装置上の指紋テーブル内の前記指紋処理から得た指紋を
    格納するユーザー装置。
  72. 【請求項72】 請求項71において、前記管理プログラムが、呼び出しポ
    リシーによる規定にしたがって呼び出し手順を要求することを決定し、さらに前
    記管理プログラムが、前記呼び出し手順を実行して、ユーザー装置に格納された
    タグ付けされていないソフトウエアインスタンスの使用状況を更新するユーザー
    装置。
  73. 【請求項73】 請求項72において、前記呼び出し手順の実行中に、前記
    管理プログラムが、ユーザー装置に接続された相互接続機構を介して前記ユーザ
    ー装置から前記指紋テーブルの一部を送信し、さらに前記ユーザー装置に返送さ
    れる、前記ユーザー装置に格納された各タグ付けされていないソフトウエアイン
    スタンスに対し実行すべき動作を指示する継続メッセージの受け取りを待機する
    ユーザー装置。
  74. 【請求項74】 タグ付けされたソフトウエアデータベースと、内部のプロ
    セッサで実行する確認プログラムとを備える保護センターであって、 前記保護センターが、呼び出し手順を定期的に実行し、相互接続を介して、ソ
    フトウエアインスタンスに対するタグを受け取るものであって、前記確認プログ
    ラムが、保護センターに保持されている前記タグ付けされたソフトウエアデータ
    ベースに対して受け取ったタグを検査し、前記タグが少なくとも1つの使用管理
    ポリシーに適合していることを確認し、さらに前記管理プログラムが、相互接続
    機構を介して、前記呼び出し手順の間に保護センターで受け取られた各タグに関
    連するソフトウエアインスタンスの使用時にしたがうべき動作を指示している継
    続メッセージを送信する保護センター。
  75. 【請求項75】 請求項74において、少なくとも1つの使用管理ポリシー
    が、少なくとも1つのタグが関連付けされている各ソフトウエアインスタンスに
    関連付けされている保護センター。
  76. 【請求項76】 請求項74において、少なくとも1つの使用管理ポリシー
    が、前記保護センターがタグを受け取るために通信するユーザー装置に関連付け
    されている保護センター。
  77. 【請求項77】 請求項74において、少なくとも1つの使用管理ポリシー
    が、前記保護センターがタグを受け取る目的で通信するユーザー装置の個々のユ
    ーザーに関連付けされている保護センター。
  78. 【請求項78】 請求項74において、前記タグ付けされたソフトウエアデ
    ータベース内に、各ユーザー装置上の各ソフトウエアインスタンスに関連する各
    タグに対するタグデータ構造体を保持し、またタグサーバからのソフトウエアイ
    ンスタンスに関連する新しく作成されたタグを受信し、さらにユーザー装置から
    送信されたタグテーブル内のユーザー装置で使用されるソフトウエアインスタン
    スに関連するタグを受信する保護センター。
  79. 【請求項79】 請求項78において、各タグデータ構造体が、ソフトウエ
    アインスタンスの少なくとも1つのタグと、ソフトウエアインスタンスの名称と
    、前記ソフトウエアインスタンスの固有の番号と、前記ソフトウエアインスタン
    スのハッシュ関数値と、前記ソフトウエアインスタンスの使用管理ポリシーと、
    前記ソフトウエアインスタンスに関連するタグに関連付けされた呼び出しレコー
    ドヘの参照の収集物とを含んでいる保護センター。
  80. 【請求項80】 請求項79において、呼び出しレコードの前記収集物内の
    各呼び出しレコードが1つの呼び出し手順に関する情報を表し、さらに前記各呼
    び出しレコードが少なくとも1つの呼び出し時刻と、前記呼び出し手順の間に保
    護センターに転送されるタグテーブルのヘッダーと、前の呼び出し手順の時刻表
    示を示す最後の呼び出し時刻と、前記呼び出し手順の間に保護センターに転送さ
    れる前記タグテーブルのハッシュ関数値と、前記呼び出し手順に関連する継続メ
    ッセージ内に含まれるユーザー装置のその後の動作とを含む保護センター。
  81. 【請求項81】 指紋データ構造体と、確認プログラムを実行するプロセッ
    サとを含む保護センターであって、 前記確認プログラムが、ユーザー装置を用いて呼び出し手順を定期的に実行し
    、相互接続機構を介して、前記ユーザー装置で使用されるソフトウエアインスタ
    ンスに対する指紋を受信し、さらに前記確認プログラムが、指紋データ構造体に
    対して受け取った各指紋を検査し、ユーザー装置で使用されるタグ付けされてい
    ないソフトウエアインスタンスが権利侵害のソフトウエアインスタンスであるか
    どうかを決定し、権利侵害している場合は、前記確認プログラムが、前記ユーザ
    ー装置で実行される報復措置を準備する保護センター。
  82. 【請求項82】 請求項81において、すべてのベンダーソフトウエアが指
    紋付けされ、別のベンダーソフトウエアに関する1つのベンダーソフトウエアの
    権利侵害が、少なくとも1つの同一位置または一般位置の指紋検査に基づいて検
    出される保護センター。
  83. 【請求項83】 請求項81において、前記確認プログラムが、指紋データ
    構造体内の指紋と受け取った指紋内の指紋の間の十分な数の一致を検出する場合
    は、前記確認プログラムが実行すべき報復措置を指定して、継続メッセージを送
    信するものであり、前記継続メッセージがそのメッセージの受信機で実行される
    報復措置を指示している保護センター。
  84. 【請求項84】 請求項83において、前記十分な数が1つである保護セン
    ター。
  85. 【請求項85】 請求項83において、前記十分な数が1よりも大きい保護
    センター。
  86. 【請求項86】 請求項85において、前記十分な数が、各一致の重みが一
    致する指紋に依存する場合の、一致の重み付けされた総和として計算される保護
    センター。
  87. 【請求項87】 請求項83において、前記指紋照合法が一般位置の指紋検
    査である保護センター。
  88. 【請求項88】 請求項83において、前記報復措置が受信機の実行停止を
    指定する保護センター。
  89. 【請求項89】 請求項83において、前記報復措置が、前記指紋データ構
    造体内の指紋に一致した指紋に関連したソフトウエアインスタンスを無効にする
    ことを、指定する保護センター。
  90. 【請求項90】 請求項81において、前記確認プログラムが、相互接続機
    構を介して、権利侵害のソフトウエアインスタンスのコピーを受け取り、さらに
    前記タグ付けされていない権利侵害のソフトウエアインスタンスのコピー上の指
    紋を計算し、前記指紋を前記指紋データ構造体内に組み込んで格納する保護セン
    ター。
  91. 【請求項91】 特定ベンダーのソフトウエアのコピーを受け取り、前記ソ
    フトウエアインスタンスあたり複数タグを作成するタグサーバにおいて、 各タグがそのタグに関連付けられたソフトウエアインスタンスを一意的に識別
    し、さらに各タグが前記タグに関連する前記ソフトウエアの少なくとも1つの名
    称と、前記タグに関連する前記ソフトウエアインスタンスの固有の番号と、前記
    タグに関連する前記ソフトウエアインスタンスの各部分で計算されたハッシュ関
    数値とを含んでいるタグサーバ。
  92. 【請求項92】 請求項91において、前記タグにデジタル的に署名し、そ
    のタグを、意図する受信機に安全に送信するために使用されるデジタル署名機構
    をさらに含んでいるタグサーバ。
  93. 【請求項93】 ソフトウエアインスタスを作成するステップと、 前記ソフトウエアインスタスに一意的に関連付けされたタグを作成するステッ
    プと、 前記ソフトウエアインスタスを配信し、前記タグをユーザー装置に安全に配信
    し、前記ソフトウエアインスタンスと前記関連するタグを前記ユーザー装置で受
    け取るステップと、 前記ユーザー装置上での前記ソフトウエアインスタンスの使用を検出するステ
    ップと、 使用される前記ソフトウエアインスタンスに関連している前記タグのステータ
    スを判定することにより、前記ソフトウエアインスタンスの使用が可能かどうか
    を決定するステップとを含んでいるソフトウエアの使用を管理するための方法。
  94. 【請求項94】 請求項93において、前記タグを作成するステップが、 前記ソフトウエアインスタンスに固有の番号を割り当てるステップと、 前記ソフトウエアインスタンスの内容の各部の第1ハッシュ関数値を計算する
    ステップと、 前記ソフトウエアインスタンスに対し第2ハッシュ関数値を計算するステップ
    であって、前記第2ハッシュ関数値がソフトウエアの前記名称と、前記ソフトウ
    エアインスタンスに固有の番号と、第1ハッシュ関数値とを組み合わせている、
    第2ハッシュ関数値を計算するステップと、 前記ソフトウエアインスタンスに一意的に関連付けられるタグを計算するステ
    ップであって、前記タグがソフトウエアの前記名称と、前記ソフトウエアインス
    タンスの固有の番号と、第2ハッシュ関数値とを含む、タグを計算するステップ
    とを含んでいる方法。
  95. 【請求項95】 請求項94において、前記タグを計算するステップが、前
    記第2ハッシュ関数に対してデジタル署名関数を適用し、前記タグ内に前記署名
    を含むことによりデジタル的に署名されたタグを作成する方法。
  96. 【請求項96】 請求項93において、前記タグをユーザーに配信するステ
    ップが、前記タグをソフトウエアベンダーに安全に配信するステップを含み、ユ
    ーザー装置が公開鍵暗号化方式を使用する方法。
  97. 【請求項97】 請求項93において、前記ソフトウエアインスタンスを受
    け取るステップが、前記ユーザー装置で前記ソフトウエアインスタンスを受け取
    るステップを含み、 前記ユーザー装置でタグを受け取るステップが、 前記ユーザー装置でソフトウエアインスタンスに関連する前記タグを安全に
    受け取るステップと、 前記ソフトウエアインスタンスに関連する前記タグが署名されているかどう
    かを決定し、署名されていれば、前記タグ内のハッシュ関数値の署名を確認して
    、ユーザー装置に前記ソフトウエアをインストールし、また前記ソフトウエアイ
    ンスタンスに関連する前記タグが署名されていない場合は、ユーザー装置に前記
    ソフトウエアインスタンスをインストールするステップとを含んでいる方法。
  98. 【請求項98】 請求項93において、前記ユーザー装置での前記ソフトウ
    エアインスタンスの使用を検出するステップが、 前記ユーザー装置上の管理プログラムを呼び出して、前記ソフトウエアイン
    スタンスの使用に対するユーザー要求を遮断するステップを含み、 前記ソフトウエアインスタンスの使用を可能にするかどうかの決定のステップ
    が、 呼び出しポリシーに基づいて呼び出し手順が必要かどうかを決定し、必要な
    ら次の3つのステップ、 1)呼び出し手順を実行し、認証を確認して、ソフトウエアインスタンスに
    関連するタグの前記使用管理ポリシーを決定するステップと、 2)前記呼び出し手順の結果に基づいて前記ユーザー装置内の情報を更新す
    るステップと、 3)前記タグに関連するステータス情報を検査して、前記タグに関連するソ
    フトウエアインスタンスの使用が可能かどうかを決定するステップとを実行する
    方法。
  99. 【請求項99】 請求項98において、前記呼び出し手順を実行するステッ
    プが、 ユーザー装置から前記ソフトウエアインスタンスに関連する前記タグを格納し
    ているタグテーブルを送信するステップと、 ユーザー装置から返送された、前記タグテーブル内の各タグに対し実行される
    動作を指示する継続メッセージの受信を待機するステップとを含んでいる方法。
  100. 【請求項100】 請求項98において、前記継続メッセージがこの装置方
    向に向けられ、また事象履歴がこの装置の事象履歴に一致することを確認するス
    テップをさらに含んでいる方法。
  101. 【請求項101】 請求項98において、前記呼び出し手順を実行するステ
    ップが、 ソフトウエアインスタンスに関連する前記タグを含むタグテーブルを受け取る
    ステップと、 前記タグテーブル内の受け取った各タグをタグ付けされたソフトウエアデータ
    ベースに対して検査して、前記タグテーブル内のタグが少なくとも1つの使用管
    理ポリシーに適合していることを確認するステップと、 各タグに関連する前記ソフトウエアインスタンスの使用を検出した時点で、前
    記ユーザー装置でその後に実行する動作を指示する継続メッセージを送信するス
    テップとを含む方法。
  102. 【請求項102】 請求項101において、前記継続メッセージが、 前記継続メッセージを送信する宛先の前記管理プログラムの管理プログラム識
    別子と、 前記継続メッセージが準備された時刻と、 前記装置からの前記呼び出しに付随しているタグテーブルの符号化とを含んで
    いる方法。
  103. 【請求項103】 ユーザー装置上のタグ付けされていないソフトウエアイ
    ンスタンスの使用を検出するステップと、 ユーザー装置上の前記タグ付けされていないソフトウエアインスタンスに関連
    する指紋を作成して格納するステップと、 ユーザー装置上の前記タグ付けされていないソフトウエアインスタンスの使用
    を検出するステップと、 前記タグ付けされていないソフトウエアインスタンスに関連する指紋と権利侵
    害の指紋の指紋データ構造体とを比較して、前記ソフトウエアインスタンスの使
    用が正当であるかどうかを決定し、指紋の一致が発見されると前記タグ付けされ
    ていないソフトウエアインスタンスの使用を無効とするステップとを含んでいる
    ソフトウエアの使用を管理するための方法。
  104. 【請求項104】 請求項103において、ユーザー装置上のタグ付けされ
    たソフトウエアインスタンスの使用を検出するステップと、 ユーザー装置上の前記タグ付けされたソフトウエアインスタンスに関連する指
    紋を作成して格納するステップと、 ユーザー装置上の前記タグ付けされたソフトウエアインスタンスの使用を検出
    するステップと、 前記タグ付けされたソフトウエアインスタンスに関連する指紋と権利侵害の指
    紋の指紋データ構造体とを比較して、前記ソフトウエアインスタンスの使用が正
    当であるかどうかを決定し、指紋の一致が発見されると前記タグ付けされたソフ
    トウエアインスタンスの使用を無効とするステップとをさらに含んでいる方法。
  105. 【請求項105】 請求項103において、ソフトウエアベンダーにより、
    権利侵害のソフトウエアインスタンスを検出するステップと、 前記権利侵害のソフトウエアインスタンスのコピーを保護センターに提出する
    ステップと、 前記保護センターにおいて、権利侵害のソフトウエアインスタンス上の指紋を
    計算し、指紋データ構造体内にその指紋を組み込んで格納するステップとをさら
    に含んでいる方法。
  106. 【請求項106】 ソフトウエアインスタンスを取得するステップと、 前記ソフトウエアインスタンスに名称を割り当てるステップと、 前記ソフトウエアインスタンスに、同一ソフトウエアの別のインスタンスに割
    り当てられるすべての固有番号と異なる固有番号を割り当てるステップと、 前記ソフトウエアインスタンスの各部分のハッシュ関数値を計算するステップ
    と、 ソフトウエアインスタンスの前記名称と、前記ソフトウエアインスタンスの番
    号と、最初に計算されたハッシュ関数値との連続に関する第2ハッシュ関数値を
    計算して、そのソフトウエアインスタンスに固有の署名のないハッシュ関数値を
    作成するステップと、 鍵を使用して前記署名のないハッシュ関数値に署名して、前記ソフトウエアイ
    ンスタンスに対する署名されたハッシュ関数を作成するステップと、 そのソフトウエアインスタンスを一意的に識別する前記ソフトウエアインスタ
    ンスに関連付けされたタグを作成するステップであって、前記タグがソフトウエ
    アインスタンスの前記署名されたハッシュ関数と、ソフトウエアインスタンスの
    前記名称と、ソフトウエアインスタンスの前記固有番号と、ソフトウエアインス
    タンスの前記署名のないハッシュ関数とを含む、タグを作成するステップとを含
    む、ソフトウエアインスタンスを一意的に識別するための方法。
  107. 【請求項107】 請求項106において、前記ソフトウエアインスタンス
    を取得するステップと、そのソフトウエアに名称を割り当てるステップとがソフ
    トウエアベンダーによって実行され、また前記ソフトウエアインスタンスに固有
    番号を割り当てるステップと、前記第1および第2ハッシュ関数値を計算するス
    テップと、前記第2ハッシュ関数値に著名するステップと、前記タグを作成する
    ステップとがタグサーバーにより実行される方法。
  108. 【請求項108】 命令によって符号化されたコンピューター読み取り可能
    媒体であって、プロセッサで読み取りおよび実行されるときに、ソフトウエアイ
    ンスタンスを使用する要求を検出するステップを実行し、 そのステップでは、前記ソフトウエアインスタンスに対応するタグが、前記ソ
    フトウエアの使用を認める関連ステータスを有するかどうか決定し、定期的に呼
    び出し手順を実行して前記タグの認証を確認し、前記タグに対応する前記ソフト
    ウエアインスタンスが使用管理ポリシーにしたがって使用されることを確認する
    コンピューター読み取り可能媒体。
  109. 【請求項109】 通信媒体上を搬送波によって伝送される伝播信号であっ
    て、 前記信号が、1つのソフトウエアインスタンスに一意的に関連付けされた少な
    くとも1つのタグを含み、かつタグテーブル内の前記タグに関連する少なくとも
    1つの領域を含む符号化されたタグテーブルデータ構造体を有し、前記少なくと
    も1つの領域が前記タグに関連する1つのソフトウエアインスタンスに対する使
    用制御ステータスを表している伝播信号。
  110. 【請求項110】 媒体上を搬送波により伝送される伝播信号であって、前
    記信号が符号化された継続メッセージを有し、ある動作に関連するソフトウエア
    インスタンスの使用要求が受信機で検出されたとき、前記継続メッセージが前記
    伝播信号の受信機で実行される前記動作の指示を含む伝播信号。
  111. 【請求項111】 ソフトウエアプログラムの内容に関し偽造できないハッ
    シュ関数値を計算するステップと、 前記偽造できないハッシュ関数の前記結果を前に保持されたハッシュ関数値と
    比較してその結果が同一かどうかを決定し、それによりソフトウエアが変更して
    いないかどうかを示すステップとを含んでいるソフトウエアプログラムが変化し
    ていないことを確認する方法。
  112. 【請求項112】 請求項111において、前記オペレーティングシステム
    が前記偽造できないハッシュ関数値を計算し、前記ソフトウエアプログラムが前
    記管理プログラムである方法。
  113. 【請求項113】 データの内容に関する偽造できないハッシュ関数値を計
    算して、その値を前に計算したハッシュ関数値と比較することにより、データが
    変化していないことを確認する方法。
  114. 【請求項114】 請求項113において、前記管理プログラムが、前記偽
    造できないハッシュ関数値と、前記管理プログラムで使用される前記データとを
    計算する方法。
  115. 【請求項115】 請求項19において、前記保護センターとユーザー装置
    間の全メッセージが安全な方法で送信されるシステム。
  116. 【請求項116】 請求項115において、前記安全な方法が公開鍵暗号化
    方式を含むシステム。
  117. 【請求項117】 請求項38において、さらに、前記まれにしか複製され
    ない数が少なくとも1つのメモリ位置の値に基づいているシステム。
  118. 【請求項118】 請求項80の保護センターにおいて、前記装置からの前
    記継続メッセージ内に記録された最後の呼び出し時刻が、この装置に対する前記
    保護センターに記録された最新呼び出しの呼び出し時刻に一致するかどうかを検
    査する保護センター。
  119. 【請求項119】 ソフトウエアの使用を管理するためのシステムであって
    、 ソフトウエアインスタンスを作成するソフトウエアベンダーと、 ソフトウエアインスタンスを受け取ってそれをインストールするユーザー装置
    であって、かつ管理プログラムを含むユーザー装置と、 前記ユーザー装置上で使用されるタグ付けされていないソフトウエアインスタ
    ンスとを含み、 前記管理プログラムが、前記タグ付けされていないソフトウエアインスタンス
    の使用を検出し、前記タグ付けされていないソフトウエアインスタンス上の指紋
    処理を実行し、前記ユーザー装置上の指紋処理から得た指紋を格納するシステム
  120. 【請求項120】 請求項119において、前記ユーザー装置の管理プログ
    ラムが、前記装置上でタグ付けされていないソフトウエアインスタンスの指紋処
    理を実行し、前記ユーザー装置上の指紋テーブル内に前記指紋処理から得た指紋
    を格納するシステム。
  121. 【請求項121】 請求項120において、前記管理プログラムが指紋を計
    算する位置を格納するシステム。
  122. 【請求項122】 請求項120において、前記指紋がソフトウエアインス
    タンスの内容に基づいているシステム。
  123. 【請求項123】 請求項120において、前記指紋がソフトウエアインス
    タンスの挙動の既知のシーケンスに基づいているシステム。
  124. 【請求項124】 請求項120において、前記保護センターが、指紋デー
    タ構造体と確認プログラムとをさらに含み、 前記保護センターが呼び出し手順によってユーザー装置と定期的に通信して、
    前記ユーザー装置で使用されるソフトウエアインスタンスに対するユーザー装置
    からの全指紋を受け取り、前記管理プログラムが前記ユーザー装置から受け取っ
    たすべての指紋を指紋データ構造体に対して比較して、前記ユーザー装置で使用
    されるソフトウエアインスタンスが権利侵害のソフトウエアインスタンスかどう
    かを決定するシステム。
  125. 【請求項125】 請求項124において、前記管理プログラムが、保護セ
    ンターの指紋データ構造体内の指紋とユーザー装置から受け取った指紋との一致
    の特定数より多くの一致がある場合は、前記管理プログラムが実行すべき報復措
    置を指定し、さらに前記ユーザー装置に継続メッセージを返送するものであり、
    前記継続メッセージが前記ユーザー装置で実行される前記報復措置を指定するシ
    ステム。
  126. 【請求項126】 請求項125において、前記指紋一致プロセスが少なく
    とも1つの一般位置または同一位置の指紋一致であるシステム。
  127. 【請求項127】 請求項125において、前記指紋一致が反転保護センタ
    ー指紋テーブルを使用するシステム。
  128. 【請求項128】 請求項125において、前記報復措置が、ユーザー装置
    を特定時間無効にすることを指定するシステム。
  129. 【請求項129】 請求項125において、前記報復措置が、保護センター
    の指紋データ構造体内の指紋に一致した指紋に関連する前記ソフトウエアインス
    タンスを特定時間無効にすることを指定するシステム。
  130. 【請求項130】 請求項125において、前記報復措置が、ユーザー装置
    の動作履歴と、前記ユーザー装置上の特定ユーザーの動作履歴と、前記ユーザー
    装置上の他のソフトウエアの収集物の組合せの少なくとも1つに依存しているシ
    ステム。
  131. 【請求項131】 請求項124において、前記ソフトウエアベンダーが権
    利侵害のソフトウエアインスタンスのコピーを保護センターに送信し、前記保護
    センターが前記権利侵害のソフトウエアインスタンスのコピーの指紋を計算し、
    さらに保護センター上の指紋データ構造体内に前記指紋を格納するシステム。
  132. 【請求項132】 装置識別子を検査内に組み込んだ少なくとも1つのソフ
    トウエアインスタンスを作成するソフトウエア作成機構と、 前記ソフトウエアインスタンスを受け取ってインストールするユーザー装置と
    を含むソフトウエアベンダーであって、 前記検査が、前記組み込まれた識別子と前記ソフトウエアインスタンスを使用
    する装置の識別子との比較を含み、 前記組み込まれた識別子が前記装置の識別子に等しい場合は、前記ソフトウエ
    アインスタンスを使用でき、等しくない場合は前記装置上の管理プログラムによ
    り報復措置を実行するソフトウエアベンダー。
  133. 【請求項133】 請求項132において、前記ソフトウエアベンダーが前
    記ソフトウエアインスタンスのハッシュのデジタル署名を送信し、 第2試験が前記デジタル署名が認証できるかどうかを決定し、 第3試験が前記署名された値が前記ソフトウエアインスタンスのハッシュに等
    しいかどうかを決定するものであって、 前記デジタル署名が認証できないかまたは署名された値が前記ソフトウエアイ
    ンスタンスと異なる場合は、前記装置の管理プログラムが報復措置を実行するソ
    フトウエアベンダー。
  134. 【請求項134】 請求項131において、前記装置識別子が前記ソフトウ
    エアインスタンスの内容の最初の部分または最後の部分に組み込まれているソフ
    トウエアベンダー。
  135. 【請求項135】 ソフトウエアの使用を管理するための方法であって、 装置識別子を検査内に組み込んだソフトウエアインスタンスを作成するステッ
    プであって、 前記検査が、前記組み込まれた識別子と前記ソフトウエアインス
    タンスを使用する装置の識別子との比較を含むステップと、 前記ソフトウエアインスタンスをユーザー装置に配布するステップと、 前記検査を実行することにより前記ソフトウエアインスタンスの使用が可能か
    どうかを決定して、前記組み込まれた識別子が前記装置の識別子に等しい場合は
    前記ソフトウエアインスタンスを使用できるように使用を許可し、等しくない場
    合は報復措置を実行するステップとを含んでいる方法。
  136. 【請求項136】 請求項135において、前記ソフトウエアインスタンス
    の前記ハッシュのデジタル署名を送信するステップと、 前記デジタル署名が認証できるかどうかを決定するステップと、 前記署名された値が前記ソフトウエアインスタンスの前記ハッシュに等しいか
    どうかを決定するステップとを含み、 前記デジタル署名が認証できないかまたは署名された値が前記ソフトウエアイ
    ンスタンスと異なる場合は、前記装置の管理プログラムが報復措置を実行する方
    法。
  137. 【請求項137】 請求項135において、前記装置識別子が前記ソフトウ
    エアインスタンスの最初の部分または最後の部分に配置されている方法。
JP2000620446A 1999-05-05 2000-05-02 情報保護方法および装置 Pending JP2003500722A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/305,572 US6697948B1 (en) 1999-05-05 1999-05-05 Methods and apparatus for protecting information
US09/305,572 1999-05-05
PCT/US2000/011821 WO2000072119A2 (en) 1999-05-05 2000-05-02 Methods and apparatus for protecting information

Publications (1)

Publication Number Publication Date
JP2003500722A true JP2003500722A (ja) 2003-01-07

Family

ID=23181353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000620446A Pending JP2003500722A (ja) 1999-05-05 2000-05-02 情報保護方法および装置

Country Status (10)

Country Link
US (3) US6697948B1 (ja)
EP (1) EP1180252A2 (ja)
JP (1) JP2003500722A (ja)
CN (1) CN1361882A (ja)
AU (1) AU767286B2 (ja)
CA (1) CA2368861A1 (ja)
HK (1) HK1047803A1 (ja)
MX (1) MXPA01011201A (ja)
NZ (1) NZ515938A (ja)
WO (1) WO2000072119A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006311477A (ja) * 2005-04-29 2006-11-09 Microsoft Corp 同種写像ベースの署名の生成および検証のためのシステムおよび方法
JP2008159041A (ja) * 2006-12-22 2008-07-10 Samsung Electronics Co Ltd デジタル権限管理方法及びシステム並びにデバイス
US7421577B2 (en) 2003-03-31 2008-09-02 Ntt Docomo, Inc. Communication device, control method of communication device, program and communication method
JP2014530409A (ja) * 2011-09-13 2014-11-17 ティー—データ・システムズ(エス)ピーティーイー・リミテッド メモリカードに記憶されたデータへのアクセスを制限するための方法及びメモリカード

Families Citing this family (354)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560349B1 (en) * 1994-10-21 2003-05-06 Digimarc Corporation Audio monitoring using steganographic information
US6760463B2 (en) * 1995-05-08 2004-07-06 Digimarc Corporation Watermarking methods and media
US7805500B2 (en) * 1995-05-08 2010-09-28 Digimarc Corporation Network linking methods and apparatus
US7224819B2 (en) 1995-05-08 2007-05-29 Digimarc Corporation Integrating digital watermarks in multimedia content
US6829368B2 (en) * 2000-01-26 2004-12-07 Digimarc Corporation Establishing and interacting with on-line media collections using identifiers in media signals
US6411725B1 (en) * 1995-07-27 2002-06-25 Digimarc Corporation Watermark enabled video objects
US6505160B1 (en) * 1995-07-27 2003-01-07 Digimarc Corporation Connected audio and other media objects
US7051004B2 (en) * 1998-04-03 2006-05-23 Macrovision Corporation System and methods providing secure delivery of licenses and content
US6202056B1 (en) * 1998-04-03 2001-03-13 Audiosoft, Inc. Method for computer network operation providing basis for usage fees
US7689532B1 (en) 2000-07-20 2010-03-30 Digimarc Corporation Using embedded data with file sharing
US6044471A (en) * 1998-06-04 2000-03-28 Z4 Technologies, Inc. Method and apparatus for securing software to reduce unauthorized use
US6799277B2 (en) * 1998-06-04 2004-09-28 Z4 Technologies, Inc. System and method for monitoring software
US7617124B1 (en) 1998-12-04 2009-11-10 Digital River, Inc. Apparatus and method for secure downloading of files
US7058597B1 (en) * 1998-12-04 2006-06-06 Digital River, Inc. Apparatus and method for adaptive fraud screening for electronic commerce transactions
US20030195974A1 (en) 1998-12-04 2003-10-16 Ronning Joel A. Apparatus and method for scheduling of search for updates or downloads of a file
WO2000055962A2 (en) 1999-03-15 2000-09-21 Sony Electronics, Inc. Electronic media system, method and device
JP4238410B2 (ja) * 1999-04-09 2009-03-18 ソニー株式会社 情報処理システム
US6697948B1 (en) 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
US7302574B2 (en) * 1999-05-19 2007-11-27 Digimarc Corporation Content identifiers triggering corresponding responses through collaborative processing
US8095796B2 (en) * 1999-05-19 2012-01-10 Digimarc Corporation Content identifiers
US8874244B2 (en) * 1999-05-19 2014-10-28 Digimarc Corporation Methods and systems employing digital content
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
US20060212908A1 (en) * 1999-08-27 2006-09-21 Ochoa Optics Llc Video distribution system
US20030133692A1 (en) * 1999-08-27 2003-07-17 Charles Eric Hunter Video distribution system
US8090619B1 (en) * 1999-08-27 2012-01-03 Ochoa Optics Llc Method and system for music distribution
US6952685B1 (en) * 1999-08-27 2005-10-04 Ochoa Optics Llc Music distribution system and associated antipiracy protection
US7209900B2 (en) 1999-08-27 2007-04-24 Charles Eric Hunter Music distribution systems
US20020056118A1 (en) * 1999-08-27 2002-05-09 Hunter Charles Eric Video and music distribution system
US7647618B1 (en) * 1999-08-27 2010-01-12 Charles Eric Hunter Video distribution system
US6647417B1 (en) 2000-02-10 2003-11-11 World Theatre, Inc. Music distribution systems
GB9922665D0 (en) 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
US7934097B1 (en) * 1999-09-28 2011-04-26 Baytsp.Com, Inc. Method, apparatus, and system for managing, reviewing, comparing and detecting data on a wide area network
US7610289B2 (en) * 2000-10-04 2009-10-27 Google Inc. System and method for monitoring and analyzing internet traffic
GB9925227D0 (en) * 1999-10-25 1999-12-22 Internet Limited Data storage retrieval and access system
JP2001135023A (ja) * 1999-11-02 2001-05-18 Matsushita Electric Ind Co Ltd Dvd貸与システムおよび方法
CN1340185A (zh) * 1999-11-05 2002-03-13 索尼株式会社 分别用于数据解码、收费信息处理、数据再现的装置和方法以及电子货币、电子使用权限以及终端装置
US9252898B2 (en) 2000-01-28 2016-02-02 Zarbaña Digital Fund Llc Music distribution systems
US7565322B1 (en) * 2000-03-29 2009-07-21 Enliven Marketing Technologies Corporation Systems and methods for serverless software licensing
JP2001282947A (ja) * 2000-03-29 2001-10-12 Jsp:Kk 知的財産権管理システム
WO2001075794A2 (en) * 2000-04-05 2001-10-11 Sony United Kingdom Limited Identifying material
US7089173B1 (en) 2000-04-26 2006-08-08 Altera Corporation Hardware opencore evaluation
US7584512B2 (en) * 2000-05-09 2009-09-01 Microsoft Corporation Restricted software and hardware usage on a computer
US20050132233A1 (en) * 2000-05-10 2005-06-16 Cisco Technology, Inc. Digital rights framework
EP1305753A4 (en) * 2000-06-07 2010-07-14 Kount Inc ONLINE MACHINE METHOD FOR COLLECTING AND STORING DATA
US6947977B1 (en) * 2000-06-09 2005-09-20 Metadigm Llc Scalable transaction system for a network environment
US7024696B1 (en) * 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
JP4774582B2 (ja) * 2000-06-30 2011-09-14 ソニー株式会社 コンテンツ管理装置、コンテンツ管理方法及びプログラム格納媒体
US20050268099A1 (en) * 2000-08-22 2005-12-01 Dallas Semiconductor Corporation Security device and method
US7743259B2 (en) * 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US20030196120A1 (en) * 2000-08-28 2003-10-16 Contentguard Holdings, Inc. Method and apparatus for automatic deployment of a rendering engine
DE60115072T3 (de) * 2000-09-21 2010-04-01 Research In Motion Ltd., Waterloo System und verfahren zum unterschreiben eines software-kodes
KR20020030610A (ko) * 2000-10-19 2002-04-25 스톰 씨엔씨 인코포레이티드 통신상에서 불법 유통되는 디지털 음악파일에 의해 음반의판매량이 감소되는 것을 방지하는 방법
JP2002133144A (ja) * 2000-10-25 2002-05-10 Nec Corp 大容量データ販売/仲介/購入方法、システム、サーバ、端末、およびこのプログラムを記録した記録媒体
US6889209B1 (en) * 2000-11-03 2005-05-03 Shieldip, Inc. Method and apparatus for protecting information and privacy
JP2002189636A (ja) 2000-12-20 2002-07-05 Sega Corp セキュリティシステム
US7343390B2 (en) * 2000-12-20 2008-03-11 Microsoft Corporation Systems and methods for conducting internet content usage experiments
JP2002312054A (ja) * 2001-02-01 2002-10-25 Sony Computer Entertainment Inc コンピュータシステム及びその使用方法
US20030061607A1 (en) * 2001-02-12 2003-03-27 Hunter Charles Eric Systems and methods for providing consumers with entertainment content and associated periodically updated advertising
US8112311B2 (en) * 2001-02-12 2012-02-07 Ochoa Optics Llc Systems and methods for distribution of entertainment and advertising content
US20020112243A1 (en) * 2001-02-12 2002-08-15 World Theatre Video distribution system
US20020112235A1 (en) * 2001-02-12 2002-08-15 Ballou Bernard L. Video distribution system
US6784855B2 (en) * 2001-02-15 2004-08-31 Microsoft Corporation Methods and systems for a portable, interactive display device for use with a computer
EP1415211A2 (en) * 2001-03-09 2004-05-06 Koninklijke Philips Electronics N.V. System with a server for verifying new components
JP2002297452A (ja) * 2001-03-30 2002-10-11 Matsushita Electric Ind Co Ltd 記録再生装置、制御方法、及び不正防止システム
NO20011728L (no) * 2001-04-05 2002-10-07 Mobile Media Company As Datamaskinsystem og fremgangsmåte for sikker distribusjon av informasjonsprodukter
US9596090B1 (en) 2001-04-05 2017-03-14 Dj Inventions, Llc Method for controlling data acquisition for a plurality of field devices
WO2002086684A2 (en) * 2001-04-24 2002-10-31 Hewlett-Packard Company An information security system
US7046819B2 (en) * 2001-04-25 2006-05-16 Digimarc Corporation Encoded reference signal for digital watermarks
US7249176B1 (en) * 2001-04-30 2007-07-24 Sun Microsystems, Inc. Managing user access of distributed resources on application servers
US8812398B2 (en) 2001-05-08 2014-08-19 Qualcomm Incorporated Key for a wireless-enabled device
US7426494B2 (en) * 2001-06-06 2008-09-16 Matsushita Electric Industrial Co., Ltd. Rental system
US6983479B1 (en) * 2001-06-08 2006-01-03 Tarantella, Inc. Dynamic content activation by locating, coordinating and presenting content publishing resources such that content publisher can create or change content
US6976239B1 (en) * 2001-06-12 2005-12-13 Altera Corporation Methods and apparatus for implementing parameterizable processors and peripherals
NO314375B1 (no) * 2001-06-15 2003-03-10 Beep Science As Arrangement og fremgangsmåte for innholdskontroll av dataobjekter, spesieltdataobjekter i MMS-meldinger
US20030014496A1 (en) * 2001-06-27 2003-01-16 Spencer Donald J. Closed-loop delivery system
US20030014630A1 (en) * 2001-06-27 2003-01-16 Spencer Donald J. Secure music delivery
US7174466B2 (en) * 2001-08-01 2007-02-06 Sas Validy Method to protect software against unwanted use with a “detection and coercion” principle
US8515773B2 (en) 2001-08-01 2013-08-20 Sony Corporation System and method for enabling distribution and brokering of content information
US7716137B2 (en) * 2001-08-14 2010-05-11 Nokia Inc. System and method for automatically tracking and enabling the operation of a product
US7960005B2 (en) * 2001-09-14 2011-06-14 Ochoa Optics Llc Broadcast distribution of content for storage on hardware protected optical storage media
US6947910B2 (en) * 2001-10-09 2005-09-20 E-Cast, Inc. Secure ticketing
US20030069854A1 (en) * 2001-10-09 2003-04-10 Hsu Michael M. Expiring content on playback devices
US7392313B2 (en) * 2001-10-18 2008-06-24 International Business Machines Corporation Method and apparatus for partitioned environment for web application servers
US20030101341A1 (en) * 2001-11-26 2003-05-29 Electronic Data Systems Corporation Method and system for protecting data from unauthorized disclosure
US7644279B2 (en) * 2001-12-05 2010-01-05 Nvidia Corporation Consumer product distribution in the embedded system market
GB0129596D0 (en) * 2001-12-11 2002-01-30 Nokia Corp Risk detection
US20030131226A1 (en) * 2002-01-04 2003-07-10 Spencer Donald J. Dynamic distributed configuration management system
US7343619B2 (en) * 2002-03-16 2008-03-11 Trustedflow Systems, Inc. Trusted flow and operation control method
US7421412B2 (en) * 2002-03-18 2008-09-02 Kumaresan Ramanathan Computerized method and system for monitoring use of a licensed digital good
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
EP1509830A2 (en) * 2002-05-02 2005-03-02 Shieldip, Inc. Method and apparatus for protecting information and privacy
US20030217280A1 (en) * 2002-05-17 2003-11-20 Keaton Thomas S. Software watermarking for anti-tamper protection
US7802108B1 (en) 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
US7047488B2 (en) 2002-07-19 2006-05-16 Open Invention Network Registry driven interoperability and exchange of documents
JP2005534098A (ja) * 2002-07-24 2005-11-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ファイル共有規制方法及び装置
US7620699B1 (en) * 2002-07-26 2009-11-17 Paltalk Holdings, Inc. Method and system for managing high-bandwidth data sharing
GB2392262A (en) * 2002-08-23 2004-02-25 Hewlett Packard Co A method of controlling the processing of data
NZ521555A (en) * 2002-09-24 2005-05-27 Auckland Uniservices Ltd Transaction method involving authenticating an digital object such as an image or audio file and applying at least one authentication code to the digital object
US7472135B2 (en) * 2002-10-18 2008-12-30 Nokia Corporation Method and system for recalling details regarding past events
JP2004362532A (ja) * 2002-10-25 2004-12-24 Matsushita Electric Ind Co Ltd 透かし挿入装置および透かし取出装置
US20040088175A1 (en) * 2002-11-01 2004-05-06 Thomas Messerges Digital-rights management
JP2004157864A (ja) * 2002-11-07 2004-06-03 Canon Inc コンテンツ配信システム
WO2004053666A1 (ja) * 2002-12-11 2004-06-24 Interlex Inc. ソフトウェア実行制御システム及びソフトウェアの実行制御プログラム
GB0228960D0 (en) * 2002-12-11 2003-01-15 Mirada Solutions Ltd Improvements in or relating to processing systems
CN1729671A (zh) * 2002-12-20 2006-02-01 松下电器产业株式会社 内容历史日志收集系统、终端设备以及服务器设备
US8666524B2 (en) * 2003-01-02 2014-03-04 Catch Media, Inc. Portable music player and transmitter
US7302590B2 (en) 2003-01-06 2007-11-27 Microsoft Corporation Systems and methods for providing time-and weight-based flexibly tolerant hardware ID
US8181265B2 (en) * 2003-01-31 2012-05-15 Microsoft Corporation Secure machine counting
US20040163131A1 (en) * 2003-01-31 2004-08-19 Benco David S. Telecommunication feature activation and billing support from a centralized server
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US7322042B2 (en) * 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US8131649B2 (en) * 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US20040267384A1 (en) * 2003-02-07 2004-12-30 Broadon Communications, Inc. Integrated console and controller
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
CA2516580C (en) * 2003-02-21 2011-01-25 Research In Motion Limited System and method of multiple-level control of electronic devices
US7921302B2 (en) * 2003-03-10 2011-04-05 Igt Universal game download methods and system for legacy gaming machines
US7802087B2 (en) * 2003-03-10 2010-09-21 Igt Universal method for submitting gaming machine source code software to a game certification laboratory
WO2004080550A2 (en) 2003-03-10 2004-09-23 Cyberscan Technology, Inc. Dynamic configuration of a gaming system
US7337330B2 (en) * 2003-03-10 2008-02-26 Cyberview Technology, Inc. Universal game download system for legacy gaming machines
US8491391B2 (en) 2003-03-10 2013-07-23 Igt Regulated gaming—agile media player for controlling games
EP1606683A2 (en) * 2003-03-12 2005-12-21 Matsushita Electric Industrial Co., Ltd. Digital content distribution system, right management server and user terminal
US7716736B2 (en) * 2003-04-17 2010-05-11 Cybersoft, Inc. Apparatus, methods and articles of manufacture for computer virus testing
EP1523006A4 (en) * 2003-04-30 2011-08-10 Sony Corp DATA PROCESSING METHOD, PROGRAM THEREOF, ASSOCIATED DEVICE, AND RECORDING MEDIUM
US20060229989A1 (en) * 2003-05-16 2006-10-12 Koninklijke Philipls Electronics N.V. Valuating rights for 2nd hand trade
US9678967B2 (en) * 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
US20070276823A1 (en) * 2003-05-22 2007-11-29 Bruce Borden Data management systems and methods for distributed data storage and management using content signatures
US7325165B2 (en) * 2003-05-30 2008-01-29 Broadcom Corporation Instruction sequence verification to protect secured data
US8086844B2 (en) * 2003-06-03 2011-12-27 Broadcom Corporation Online trusted platform module
US7373520B1 (en) * 2003-06-18 2008-05-13 Symantec Operating Corporation Method for computing data signatures
NZ560223A (en) 2003-06-23 2008-12-24 Sony Pictures Entertainment Fingerprinting of data
US7434231B2 (en) * 2003-06-27 2008-10-07 Intel Corporation Methods and apparatus to protect a protocol interface
DE10330191A1 (de) * 2003-07-03 2005-02-10 Siemens Ag System bzw. Verfahren zur Freigabe freigabebedürftigter Softwareprogramme
US20050027657A1 (en) * 2003-08-01 2005-02-03 Yuri Leontiev Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers
US7343347B2 (en) * 2003-10-08 2008-03-11 Time Warner Inc. Electronic media player with metadata based control and method of operating the same
US7672810B2 (en) * 2003-10-15 2010-03-02 3D Scanners Ltd. Method, device and computer program for evaluating an object using a virtual representation of said object
US10437964B2 (en) * 2003-10-24 2019-10-08 Microsoft Technology Licensing, Llc Programming interface for licensing
US20050097052A1 (en) * 2003-10-31 2005-05-05 Nokia Corporation Distribution of media objects
US20050108303A1 (en) * 2003-10-31 2005-05-19 Carter Richard D. Remote backup and restore technique
US9489687B2 (en) * 2003-12-04 2016-11-08 Black Duck Software, Inc. Methods and systems for managing software development
US8700533B2 (en) * 2003-12-04 2014-04-15 Black Duck Software, Inc. Authenticating licenses for legally-protectable content based on license profiles and content identifiers
US20050132031A1 (en) * 2003-12-12 2005-06-16 Reiner Sailer Method and system for measuring status and state of remotely executing programs
US7568195B2 (en) 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US7614051B2 (en) * 2003-12-16 2009-11-03 Microsoft Corporation Creating file systems within a file in a storage technology-abstracted manner
US20050132357A1 (en) * 2003-12-16 2005-06-16 Microsoft Corporation Ensuring that a software update may be installed or run only on a specific device or class of devices
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
US7549148B2 (en) 2003-12-16 2009-06-16 Microsoft Corporation Self-describing software image update components
CN100349084C (zh) * 2004-01-05 2007-11-14 华为技术有限公司 一种在视窗操作系统中保证系统安全的方法
US20050163483A1 (en) * 2004-01-22 2005-07-28 Widevine Technologies, Inc. Piracy prevention system
US7665147B2 (en) * 2004-02-05 2010-02-16 At&T Mobility Ii Llc Authentication of HTTP applications
US7539686B2 (en) * 2004-03-12 2009-05-26 Microsoft Corporation Tag-based schema for distributing update metadata in an update distribution system
CA2561906C (en) * 2004-03-30 2014-03-25 International Business Machines Corporation System, method and program for user authentication, and recording medium on which the program is recorded
US7287159B2 (en) * 2004-04-01 2007-10-23 Shieldip, Inc. Detection and identification methods for software
NZ551233A (en) * 2004-04-14 2009-04-30 Digital River Inc Geographic location based licensing system
US20050235357A1 (en) * 2004-04-19 2005-10-20 Securemedia International Preventing cloning of high value software using embedded hardware and software functionality
US7581108B1 (en) * 2004-04-21 2009-08-25 Hewlett-Packard Development Company, L.P. Method and system for generating time-based identifiers
US8554889B2 (en) * 2004-04-21 2013-10-08 Microsoft Corporation Method, system and apparatus for managing computer identity
US8646107B1 (en) * 2004-06-25 2014-02-04 Altera Corporation Implementing usage limited systems
US7949666B2 (en) * 2004-07-09 2011-05-24 Ricoh, Ltd. Synchronizing distributed work through document logs
US20060020555A1 (en) * 2004-07-26 2006-01-26 Septon Daven W Monitoring a license proxy
KR100692011B1 (ko) * 2004-07-28 2007-03-09 엘지전자 주식회사 이동 통신 단말기 컨텐츠의 사용권 만료 기준을 갱신하는방법
US8359332B1 (en) 2004-08-02 2013-01-22 Nvidia Corporation Secure content enabled drive digital rights management system and method
US8402283B1 (en) 2004-08-02 2013-03-19 Nvidia Corporation Secure content enabled drive system and method
US8566616B1 (en) 2004-09-10 2013-10-22 Altera Corporation Method and apparatus for protecting designs in SRAM-based programmable logic devices and the like
US8612772B1 (en) 2004-09-10 2013-12-17 Altera Corporation Security core using soft key
US20060064758A1 (en) * 2004-09-22 2006-03-23 Joe Petner Method for preventing piracy of computer software
US8768844B2 (en) * 2004-10-06 2014-07-01 Sony Corporation Method and system for content sharing and authentication between multiple devices
US20060075441A1 (en) * 2004-10-06 2006-04-06 Sony Corporation Method and system for a personal video recorder comprising multiple removable storage/tuner units
US8243925B2 (en) * 2004-10-18 2012-08-14 Syphermedia International, Inc. Method and apparatus for supporting multiple broadcasters independently using a single conditional access system
US10477151B2 (en) 2004-10-18 2019-11-12 Inside Secure Method and apparatus for supporting multiple broadcasters independently using a single conditional access system
US8156488B2 (en) * 2004-10-20 2012-04-10 Nokia Corporation Terminal, method and computer program product for validating a software application
US20060112316A1 (en) * 2004-11-18 2006-05-25 Jui-Kuo Chiang Method of monitoring status of processor
EP1825342A1 (en) 2004-11-22 2007-08-29 Nokia Corporation Method and device for verifying the integrity of platform software of an electronic device
US10204338B2 (en) * 2004-11-24 2019-02-12 Microsoft Technology Licensing, Llc Synchronizing contents of removable storage devices with a multimedia network
US8751825B1 (en) 2004-12-15 2014-06-10 Nvidia Corporation Content server and method of storing content
US8346807B1 (en) 2004-12-15 2013-01-01 Nvidia Corporation Method and system for registering and activating content
US8788425B1 (en) 2004-12-15 2014-07-22 Nvidia Corporation Method and system for accessing content on demand
US8875309B1 (en) 2004-12-15 2014-10-28 Nvidia Corporation Content server and method of providing content therefrom
US7469276B2 (en) * 2004-12-27 2008-12-23 International Business Machines Corporation Service offering for the delivery of information with continuing improvement
JP4139382B2 (ja) * 2004-12-28 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 製品/サービスに係る所有権限を認証する装置、製品/サービスに係る所有権限を認証する方法、及び製品/サービスに係る所有権限を認証するプログラム
US8561126B2 (en) * 2004-12-29 2013-10-15 International Business Machines Corporation Automatic enforcement of obligations according to a data-handling policy
EP1866825A1 (en) 2005-03-22 2007-12-19 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
US20060224677A1 (en) * 2005-04-01 2006-10-05 Baytsp Method and apparatus for detecting email fraud
US8893299B1 (en) * 2005-04-22 2014-11-18 Nvidia Corporation Content keys for authorizing access to content
US7420474B1 (en) 2005-05-13 2008-09-02 Barron Associates, Inc. Idiosyncratic emissions fingerprinting method for identifying electronic devices
GB0510878D0 (en) * 2005-05-27 2005-07-06 Qinetiq Ltd Digital evidence bag
US7337147B2 (en) * 2005-06-30 2008-02-26 Microsoft Corporation Dynamic digital content licensing
US20070038576A1 (en) * 2005-08-12 2007-02-15 Lg Electronics Inc. Method for moving rights object in digital rights management
US7539647B2 (en) * 2005-08-25 2009-05-26 Microsoft Corporation Using power state to enforce software metering state
JP5507784B2 (ja) * 2005-09-01 2014-05-28 富士通株式会社 環境管理局の端末、評価値処理方法、評価値処理プログラム、ネットワーク事業者の端末、サービス要求処理方法、サービス要求処理プログラム
US20070073623A1 (en) * 2005-09-28 2007-03-29 Nicholas Phelps Method of manufacturing application software
US8340289B2 (en) * 2005-09-29 2012-12-25 Research In Motion Limited System and method for providing an indication of randomness quality of random number data generated by a random data service
US7797545B2 (en) * 2005-09-29 2010-09-14 Research In Motion Limited System and method for registering entities for code signing services
KR100746014B1 (ko) * 2005-11-09 2007-08-06 삼성전자주식회사 디지털 저작권 관리 방법 및 시스템
US7921059B2 (en) * 2005-12-15 2011-04-05 Microsoft Corporation Licensing upsell
US20070143228A1 (en) * 2005-12-15 2007-06-21 Microsoft Corporation Licensing matrix
US8818897B1 (en) * 2005-12-15 2014-08-26 Rockstar Consortium Us Lp System and method for validation and enforcement of application security
US8495389B2 (en) * 2005-12-16 2013-07-23 Safenet, Inc. Locking changing hard disk content to a hardware token
JP4852309B2 (ja) * 2005-12-27 2012-01-11 株式会社日立製作所 資産管理装置及び資産管理方法
US8463000B1 (en) 2007-07-02 2013-06-11 Pinehill Technology, Llc Content identification based on a search of a fingerprint database
US7991206B1 (en) 2007-07-02 2011-08-02 Datascout, Inc. Surrogate heuristic identification
US8549022B1 (en) 2007-07-02 2013-10-01 Datascout, Inc. Fingerprint generation of multimedia content based on a trigger point with the multimedia content
US7774385B1 (en) 2007-07-02 2010-08-10 Datascout, Inc. Techniques for providing a surrogate heuristic identification interface
US7840540B2 (en) 2006-04-20 2010-11-23 Datascout, Inc. Surrogate hashing
US8156132B1 (en) 2007-07-02 2012-04-10 Pinehill Technology, Llc Systems for comparing image fingerprints
US9020964B1 (en) * 2006-04-20 2015-04-28 Pinehill Technology, Llc Generation of fingerprints for multimedia content based on vectors and histograms
US7814070B1 (en) 2006-04-20 2010-10-12 Datascout, Inc. Surrogate hashing
US7801868B1 (en) 2006-04-20 2010-09-21 Datascout, Inc. Surrogate hashing
CN100437616C (zh) * 2006-04-27 2008-11-26 张文 一种软件防盗版装置
US20070255659A1 (en) * 2006-05-01 2007-11-01 Wei Yen System and method for DRM translation
JP2009535735A (ja) 2006-05-02 2009-10-01 ブロードオン コミュニケーションズ コーポレーション コンテンツ・マネージメント・システムおよび方法
US7970138B2 (en) 2006-05-26 2011-06-28 Syphermedia International Method and apparatus for supporting broadcast efficiency and security enhancements
US20070288389A1 (en) * 2006-06-12 2007-12-13 Vaughan Michael J Version Compliance System
US9002744B2 (en) * 2006-07-28 2015-04-07 Sony Corporation Methods, systems and computer program products for determining usage rights for digital content based on characterizing information thereof and related devices
US20080008321A1 (en) * 2006-07-10 2008-01-10 Syphermedia International, Inc. Conditional access enhancements using an always-on satellite backchannel link
EP2041656A2 (en) * 2006-07-13 2009-04-01 Nxp B.V. Secure upgrade of a mobile device with an individual upgrade software over the air
US8452988B2 (en) * 2006-07-24 2013-05-28 Michael Sujue Wang Secure data storage for protecting digital content
US20080027866A1 (en) * 2006-07-26 2008-01-31 Halcrow Michael A System and method for authenticating file content
US8387038B2 (en) * 2006-08-14 2013-02-26 Caterpillar Inc. Method and system for automatic computer and user migration
WO2008028200A2 (en) * 2006-08-29 2008-03-06 Benjamin Filmalter Grobler Digital data licensing system
US8479004B2 (en) 2006-08-31 2013-07-02 Ricoh Co., Ltd Paper-based document logging
US8615801B2 (en) * 2006-08-31 2013-12-24 Microsoft Corporation Software authorization utilizing software reputation
US8978974B2 (en) * 2006-09-26 2015-03-17 B & K Leasing Company, Inc. Signature management system
US20080080711A1 (en) * 2006-09-28 2008-04-03 Syphermedia International, Inc. Dual conditional access module architecture and method and apparatus for controlling same
US9277259B2 (en) 2006-10-13 2016-03-01 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
US8761393B2 (en) * 2006-10-13 2014-06-24 Syphermedia International, Inc. Method and apparatus for providing secure internet protocol media services
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US8413135B2 (en) * 2006-10-30 2013-04-02 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for controlling software application installations
US7613915B2 (en) * 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US8200961B2 (en) * 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US20080155701A1 (en) * 2006-12-22 2008-06-26 Yahoo! Inc. Method and system for unauthorized content detection and reporting
US7590599B2 (en) * 2006-12-22 2009-09-15 International Business Machines Corporation System and method of automatically maintaining and recycling software components
KR101369399B1 (ko) * 2006-12-29 2014-03-05 삼성전자주식회사 Drm 에이전트-렌더링 어플리케이션 분리 환경에서수행되는 drm 관련 권한 통제 방법 및 시스템
US7996820B2 (en) * 2007-01-04 2011-08-09 International Business Machines Corporation Determining proportionate use of system resources by applications executing in a shared hosting environment
WO2008088202A1 (en) * 2007-01-19 2008-07-24 Lg Electronics Inc. Method for protecting content
US8006094B2 (en) 2007-02-21 2011-08-23 Ricoh Co., Ltd. Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes
US8689334B2 (en) * 2007-02-28 2014-04-01 Alcatel Lucent Security protection for a customer programmable platform
US8996483B2 (en) * 2007-03-28 2015-03-31 Ricoh Co., Ltd. Method and apparatus for recording associations with logs
US20080243688A1 (en) * 2007-03-28 2008-10-02 Hart Peter E Method and Apparatus for Recording Transactions with a Portable Logging Device
US8116323B1 (en) 2007-04-12 2012-02-14 Qurio Holdings, Inc. Methods for providing peer negotiation in a distributed virtual environment and related systems and computer program products
US20080288504A1 (en) * 2007-05-17 2008-11-20 Fisher Iii William W Methods, media, and systems for recording and reporting content usage
US20080320596A1 (en) * 2007-06-22 2008-12-25 Feng Chi Wang Distributed digital rights management system and methods for use therewith
AU2013260728B2 (en) * 2007-10-18 2015-08-06 The Nielsen Company (U.S.), Inc. Methods and apparatus to create a media measurement reference database from a plurality of distributed source
US20090106297A1 (en) * 2007-10-18 2009-04-23 David Howell Wright Methods and apparatus to create a media measurement reference database from a plurality of distributed sources
CN101414342B (zh) * 2007-10-19 2010-06-02 西门子(中国)有限公司 软件狗及其实现软件保护的方法
EP2223256A1 (en) * 2007-11-17 2010-09-01 Uniloc Usa, Inc. System and method for adjustable licensing of digital products
US8590039B1 (en) 2007-11-28 2013-11-19 Mcafee, Inc. System, method and computer program product for sending information extracted from a potentially unwanted data sample to generate a signature
US8997054B2 (en) * 2007-11-30 2015-03-31 Red Hat, Inc. Software application certification service
US8490155B2 (en) * 2007-12-17 2013-07-16 Electronics And Telecommunications Research Institute Method and apparatus for detecting downloadable conditional access system host with duplicated secure micro
WO2009105702A2 (en) * 2008-02-22 2009-08-27 Etchegoyen Craig S License auditing for distributed applications
US9306796B1 (en) 2008-03-18 2016-04-05 Mcafee, Inc. System, method, and computer program product for dynamically configuring a virtual environment for identifying unwanted data
US10089306B1 (en) * 2008-03-31 2018-10-02 Amazon Technologies, Inc. Dynamically populating electronic item
US8453051B1 (en) 2008-03-31 2013-05-28 Amazon Technologies, Inc. Dynamic display dependent markup language interface
US20130276120A1 (en) * 2008-06-02 2013-10-17 Gregory William Dalcher System, method, and computer program product for determining whether a security status of data is known at a server
JP5369502B2 (ja) 2008-06-04 2013-12-18 株式会社リコー 機器、管理装置、機器管理システム、及びプログラム
US8301904B1 (en) 2008-06-24 2012-10-30 Mcafee, Inc. System, method, and computer program product for automatically identifying potentially unwanted data as unwanted
CN101315280B (zh) * 2008-07-09 2011-02-09 深圳市凯立德计算机系统技术有限公司 一种导航设备激活方法、导航设备激活中心和导航设备
US20100064048A1 (en) * 2008-09-05 2010-03-11 Hoggan Stuart A Firmware/software validation
US20100082583A1 (en) * 2008-10-01 2010-04-01 International Business Machines Corporation Automatically tagging software resources with search terms
US8185733B2 (en) * 2008-10-02 2012-05-22 Ricoh Co., Ltd. Method and apparatus for automatically publishing content based identifiers
KR101370340B1 (ko) * 2008-10-30 2014-03-06 삼성전자 주식회사 화상형성장치 및 그 소프트웨어 활성화 방법
JP2010134578A (ja) * 2008-12-03 2010-06-17 Fujitsu Microelectronics Ltd 情報処理装置、およびコンテンツ保護方法
WO2010097090A2 (en) * 2009-02-25 2010-09-02 Aarhus Universitet Controlled computer environment
US8627461B2 (en) 2009-03-04 2014-01-07 Mcafee, Inc. System, method, and computer program product for verifying an identification of program information as unwanted
US20100312810A1 (en) * 2009-06-09 2010-12-09 Christopher Horton Secure identification of music files
US8423473B2 (en) * 2009-06-19 2013-04-16 Uniloc Luxembourg S. A. Systems and methods for game activation
US9633183B2 (en) 2009-06-19 2017-04-25 Uniloc Luxembourg S.A. Modular software protection
US20100325149A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Auditing Software Usage
US20100325051A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Piracy Reduction in Software Activation
US20100324983A1 (en) * 2009-06-22 2010-12-23 Etchegoyen Craig S System and Method for Media Distribution
US20100325150A1 (en) * 2009-06-22 2010-12-23 Joseph Martin Mordetsky System and Method for Tracking Application Usage
US9129097B2 (en) * 2009-06-24 2015-09-08 Uniloc Luxembourg S.A. Systems and methods for auditing software usage using a covert key
US20110047540A1 (en) * 2009-08-24 2011-02-24 Embarcadero Technologies Inc. System and Methodology for Automating Delivery, Licensing, and Availability of Software Products
US10089092B2 (en) 2010-01-27 2018-10-02 Embarcadero Technologies, Inc. Creating a software product from a software application
US8769296B2 (en) * 2009-10-19 2014-07-01 Uniloc Luxembourg, S.A. Software signature tracking
CN102054135B (zh) * 2009-11-06 2013-07-10 北大方正集团有限公司 一种软件授权的方法和装置
US20110154436A1 (en) * 2009-12-21 2011-06-23 Mediatek Inc. Provider Management Methods and Systems for a Portable Device Running Android Platform
US8719939B2 (en) * 2009-12-31 2014-05-06 Mcafee, Inc. Malware detection via reputation system
JP5668926B2 (ja) * 2010-03-31 2015-02-12 株式会社リコー ログ管理システム、伝送システム、ログ管理方法、ログ管理プログラム
US9373106B1 (en) * 2010-04-26 2016-06-21 Sprint Communications Company L.P. Tracking the download and purchase of digital content
US9501582B2 (en) 2010-05-10 2016-11-22 Amazon Technologies, Inc. Providing text content embedded with protected multimedia content
US20110283368A1 (en) * 2010-05-11 2011-11-17 Massimiliano Gasparri Identification and end-use differentiation in digital media
US8522030B2 (en) * 2010-09-24 2013-08-27 Intel Corporation Verification and protection of genuine software installation using hardware super key
CN101980234B (zh) * 2010-10-19 2012-07-11 北京深思洛克软件技术股份有限公司 一种生成信息安全设备客户数据的方法
US9852143B2 (en) 2010-12-17 2017-12-26 Microsoft Technology Licensing, Llc Enabling random access within objects in zip archives
EP2695099A4 (en) * 2011-04-01 2015-05-06 Robert Steele SYSTEM FOR IDENTIFYING MULTIPLE VIOLATIONS OF COPYRIGHTS
US20120255996A1 (en) * 2011-04-05 2012-10-11 Rev Worldwide, Inc. Method and Device for Processing Payment Card Information
US10650361B2 (en) * 2011-05-18 2020-05-12 Dubset Media Holdings, Inc. Method and system for analyzing copyright information in a mixed long-format audio file
US8972967B2 (en) 2011-09-12 2015-03-03 Microsoft Corporation Application packages using block maps
US8819361B2 (en) 2011-09-12 2014-08-26 Microsoft Corporation Retaining verifiability of extracted data from signed archives
US8839446B2 (en) 2011-09-12 2014-09-16 Microsoft Corporation Protecting archive structure with directory verifiers
US20130179995A1 (en) * 2012-01-09 2013-07-11 United Video Properties, Inc. Systems and methods for authentication of digital content
US9165332B2 (en) * 2012-01-27 2015-10-20 Microsoft Technology Licensing, Llc Application licensing using multiple forms of licensing
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
US9349011B2 (en) * 2012-05-16 2016-05-24 Fisher-Rosemount Systems, Inc. Methods and apparatus to identify a degradation of integrity of a process control system
US20140019762A1 (en) * 2012-07-10 2014-01-16 Digicert, Inc. Method, Process and System for Digitally Signing an Object
JP2014048979A (ja) * 2012-08-31 2014-03-17 Fujitsu Ltd 情報処理システム、識別情報決定装置、識別情報決定方法、及びプログラム
US20140074663A1 (en) * 2012-09-09 2014-03-13 Apple Inc. Integrating purchase history and metadata across devices
US20140122343A1 (en) * 2012-11-01 2014-05-01 Symantec Corporation Malware detection driven user authentication and transaction authorization
US10038565B2 (en) * 2012-12-20 2018-07-31 GM Global Technology Operations LLC Methods and systems for bypassing authenticity checks for secure control modules
US9836730B1 (en) * 2013-03-14 2017-12-05 Corel Corporation Software product piracy monetization process
US20140283038A1 (en) 2013-03-15 2014-09-18 Shape Security Inc. Safe Intelligent Content Modification
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US8869281B2 (en) 2013-03-15 2014-10-21 Shape Security, Inc. Protecting against the introduction of alien content
US9338143B2 (en) 2013-03-15 2016-05-10 Shape Security, Inc. Stateless web content anti-automation
JP5711439B1 (ja) 2013-05-13 2015-04-30 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 情報管理方法
KR101651957B1 (ko) * 2013-06-05 2016-08-29 가부시키가이샤 히타치 시스테무즈 포털 사이트의 비용 분배·회수 시스템
US9443268B1 (en) 2013-08-16 2016-09-13 Consumerinfo.Com, Inc. Bill payment and reporting
US10185584B2 (en) * 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
CN104424402B (zh) * 2013-08-28 2019-03-29 卓易畅想(北京)科技有限公司 一种用于检测盗版应用程序的方法及装置
US20150186861A1 (en) * 2013-11-12 2015-07-02 Xtt Llc Lockable POS Device, Method for Distributing Lockable POS Devices, and Method for Locking a Lockable POS Device
US10325314B1 (en) 2013-11-15 2019-06-18 Consumerinfo.Com, Inc. Payment reporting systems
CN103634773B (zh) * 2013-11-25 2017-02-01 华为技术有限公司 一种安全计费的实现方法及装置
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US8893294B1 (en) 2014-01-21 2014-11-18 Shape Security, Inc. Flexible caching
US9225729B1 (en) 2014-01-21 2015-12-29 Shape Security, Inc. Blind hash compression
US9489526B1 (en) 2014-01-21 2016-11-08 Shape Security, Inc. Pre-analyzing served content
KR101577376B1 (ko) * 2014-01-21 2015-12-14 (주) 아워텍 텍스트 기준점 기반의 저작권 침해 판단 시스템 및 그 방법
US8997226B1 (en) 2014-04-17 2015-03-31 Shape Security, Inc. Detection of client-side malware activity
US9411958B2 (en) 2014-05-23 2016-08-09 Shape Security, Inc. Polymorphic treatment of data entered at clients
US9858440B1 (en) 2014-05-23 2018-01-02 Shape Security, Inc. Encoding of sensitive data
US9405910B2 (en) 2014-06-02 2016-08-02 Shape Security, Inc. Automatic library detection
US9075990B1 (en) 2014-07-01 2015-07-07 Shape Security, Inc. Reliable selection of security countermeasures
US9003511B1 (en) 2014-07-22 2015-04-07 Shape Security, Inc. Polymorphic security policy action
US9984086B2 (en) 2014-08-05 2018-05-29 International Business Machines Corporation Performing actions on objects as a result of applying tags to the objects
US9813305B2 (en) 2014-08-05 2017-11-07 International Business Machines Corporation Enabling a tag to show status
US9825984B1 (en) 2014-08-27 2017-11-21 Shape Security, Inc. Background analysis of web content
US9602543B2 (en) 2014-09-09 2017-03-21 Shape Security, Inc. Client/server polymorphism using polymorphic hooks
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
CN104407541B (zh) * 2014-10-17 2017-07-14 中国电子科技集团公司第四十一研究所 一种保护智能仪器电路板知识产权的装置和方法
CN105656704B (zh) * 2014-11-12 2020-02-18 腾讯数码(天津)有限公司 页面异常检测方法、装置及系统
CN104994217A (zh) * 2015-05-13 2015-10-21 惠州Tcl移动通信有限公司 一种检测移动终端状态的方法及移动终端
US9813440B1 (en) 2015-05-15 2017-11-07 Shape Security, Inc. Polymorphic treatment of annotated content
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
US10230718B2 (en) 2015-07-07 2019-03-12 Shape Security, Inc. Split serving of computer code
US9807113B2 (en) 2015-08-31 2017-10-31 Shape Security, Inc. Polymorphic obfuscation of executable code
EP3608825B1 (en) * 2016-05-10 2021-06-23 CyberArk Software Ltd. Application control
US20180204215A1 (en) * 2017-01-17 2018-07-19 Hung-Tzaw Hu Detecting electronic intruders via updatable data structures
US20180279976A1 (en) * 2017-02-22 2018-10-04 Todd C. Miller Intraoral sensor positioning system
DE112018000705T5 (de) 2017-03-06 2019-11-14 Cummins Filtration Ip, Inc. Erkennung von echten filtern mit einem filterüberwachungssystem
US10262127B2 (en) 2017-04-05 2019-04-16 General Electric Company Systems and method for securely sharing and executing data and models
CN107347098B (zh) * 2017-07-17 2020-03-03 广东电网有限责任公司清远供电局 一种基于云技术的设备监造辅助方法及云共享终端
CN107948132B (zh) * 2017-10-19 2022-01-18 远光软件股份有限公司 一种身份认证系统及报销设备
US11055006B1 (en) * 2017-10-30 2021-07-06 EMC IP Holding Company LLC Virtual storage domain for a content addressable system
US20210056525A1 (en) * 2018-02-21 2021-02-25 Todd C. Miller Control Center and Licensing Management System for an Intraoral Sensor
US20200074541A1 (en) 2018-09-05 2020-03-05 Consumerinfo.Com, Inc. Generation of data structures based on categories of matched data items
CN109729158B (zh) * 2018-12-19 2021-09-28 深圳市酷开网络科技股份有限公司 一种设备id标识信息的生成方法、系统及存储介质
US11182144B2 (en) * 2018-12-31 2021-11-23 Salesforce.Com, Inc. Preventing database package updates to fail customer requests and cause data corruptions
US11223877B2 (en) * 2019-02-12 2022-01-11 Vijay Madisetti Hybrid blockchains and streamchains using non-crypto hashes for securing audio-, video-, image-, and speech-based transactions and contracts
CN111325879A (zh) * 2020-01-21 2020-06-23 上海钧正网络科技有限公司 一种车辆的遥控方法、装置、存储介质及设备
US11954218B2 (en) 2020-02-10 2024-04-09 Visa International Service Association Real-time access rules using aggregation of periodic historical outcomes
US11579950B2 (en) * 2020-09-09 2023-02-14 Ciena Corporation Configuring an API to provide customized access constraints

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3609697A (en) 1968-10-21 1971-09-28 Ibm Program security device
US3966449A (en) * 1975-02-10 1976-06-29 International Business Machines Corporation Sealing glass composition and process
US3996449A (en) 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4458315A (en) 1982-02-25 1984-07-03 Penta, Inc. Apparatus and method for preventing unauthorized use of computer programs
US4658093A (en) 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US5109413A (en) * 1986-11-05 1992-04-28 International Business Machines Corporation Manipulating rights-to-execute in connection with a software copy protection mechanism
US4866769A (en) 1987-08-05 1989-09-12 Ibm Corporation Hardware assist for protecting PC software
US5023907A (en) 1988-09-30 1991-06-11 Apollo Computer, Inc. Network license server
US5132992A (en) 1991-01-07 1992-07-21 Paul Yurt Audio and video transmission and receiving system
JP3270102B2 (ja) 1991-03-11 2002-04-02 ヒューレット・パッカード・カンパニー ライセンス付与方法及びシステム
US5483658A (en) 1993-02-26 1996-01-09 Grube; Gary W. Detection of unauthorized use of software applications in processing devices
JP2596361B2 (ja) 1993-12-24 1997-04-02 日本電気株式会社 パスワード更新方式
US5598470A (en) * 1994-04-25 1997-01-28 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block
US5724425A (en) 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
JP3531978B2 (ja) 1994-08-10 2004-05-31 富士通株式会社 ソフトウエアの課金方式
US6963859B2 (en) * 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US5646997A (en) 1994-12-14 1997-07-08 Barton; James M. Method and apparatus for embedding authentication information within digital data
US5745569A (en) 1996-01-17 1998-04-28 The Dice Company Method for stega-cipher protection of computer code
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
EP2110732A3 (en) 1995-02-13 2009-12-09 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5613004A (en) 1995-06-07 1997-03-18 The Dice Company Steganographic method and device
NL1000530C2 (nl) 1995-06-08 1996-12-10 Defil N V Holland Intertrust A Filtreerwerkwijze.
US6115802A (en) 1995-10-13 2000-09-05 Sun Mircrosystems, Inc. Efficient hash table for use in multi-threaded environments
US5825883A (en) 1995-10-31 1998-10-20 Interval Systems, Inc. Method and apparatus that accounts for usage of digital applications
JP2000503154A (ja) 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US5719941A (en) 1996-01-12 1998-02-17 Microsoft Corporation Method for changing passwords on a remote computer
US5926624A (en) 1996-09-12 1999-07-20 Audible, Inc. Digital information library and delivery system with logic for generating files targeted to the playback device
US6052780A (en) 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
US20050010475A1 (en) * 1996-10-25 2005-01-13 Ipf, Inc. Internet-based brand management and marketing communication instrumentation network for deploying, installing and remotely programming brand-building server-side driven multi-mode virtual Kiosks on the World Wide Web (WWW), and methods of brand marketing communication between brand marketers and consumers using the same
US5823883A (en) * 1996-11-04 1998-10-20 Ford Motor Company Constant velocity joint with reactive cage
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US6108420A (en) 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
DE19721614A1 (de) * 1997-05-23 1998-11-26 Schuler Pressen Gmbh & Co Pressenanlagen mit automatischem Toolingwechsel und Verfahren zum Toolingwechsel
JP4456185B2 (ja) 1997-08-29 2010-04-28 富士通株式会社 コピー防止機能を持つ見える透かし入り動画像記録媒体とその作成・検出および録画・再生装置
US6030288A (en) 1997-09-02 2000-02-29 Quixotic Solutions Inc. Apparatus and process for verifying honest gaming transactions over a communications network
US6240184B1 (en) 1997-09-05 2001-05-29 Rsa Security Inc. Password synchronization
US6170060B1 (en) 1997-10-03 2001-01-02 Audible, Inc. Method and apparatus for targeting a digital information playback device
US6134327A (en) * 1997-10-24 2000-10-17 Entrust Technologies Ltd. Method and apparatus for creating communities of trust in a secure communication system
US6170058B1 (en) 1997-12-23 2001-01-02 Arcot Systems, Inc. Method and apparatus for cryptographically camouflaged cryptographic key storage, certification and use
US6341352B1 (en) 1998-10-15 2002-01-22 International Business Machines Corporation Method for changing a security policy during processing of a transaction request
US6920567B1 (en) * 1999-04-07 2005-07-19 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
US6889325B1 (en) 1999-04-28 2005-05-03 Unicate Bv Transaction method and system for data networks, like internet
US6697948B1 (en) * 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
US6691229B1 (en) 2000-03-06 2004-02-10 Matsushita Electric Industrial Co., Ltd. Method and apparatus for rendering unauthorized copies of digital content traceable to authorized copies
US6889209B1 (en) 2000-11-03 2005-05-03 Shieldip, Inc. Method and apparatus for protecting information and privacy

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421577B2 (en) 2003-03-31 2008-09-02 Ntt Docomo, Inc. Communication device, control method of communication device, program and communication method
JP2006311477A (ja) * 2005-04-29 2006-11-09 Microsoft Corp 同種写像ベースの署名の生成および検証のためのシステムおよび方法
JP2008159041A (ja) * 2006-12-22 2008-07-10 Samsung Electronics Co Ltd デジタル権限管理方法及びシステム並びにデバイス
JP2014530409A (ja) * 2011-09-13 2014-11-17 ティー—データ・システムズ(エス)ピーティーイー・リミテッド メモリカードに記憶されたデータへのアクセスを制限するための方法及びメモリカード

Also Published As

Publication number Publication date
MXPA01011201A (es) 2003-07-14
AU4813700A (en) 2000-12-12
NZ515938A (en) 2004-07-30
AU767286B2 (en) 2003-11-06
US7131144B2 (en) 2006-10-31
EP1180252A2 (en) 2002-02-20
CN1361882A (zh) 2002-07-31
US7073197B2 (en) 2006-07-04
US20040128515A1 (en) 2004-07-01
WO2000072119A3 (en) 2001-08-02
CA2368861A1 (en) 2000-11-30
WO2000072119A2 (en) 2000-11-30
US20040133803A1 (en) 2004-07-08
HK1047803A1 (zh) 2003-03-07
US6697948B1 (en) 2004-02-24

Similar Documents

Publication Publication Date Title
JP2003500722A (ja) 情報保護方法および装置
JP4278327B2 (ja) コンピュータ・プラットフォームおよびその運用方法
US7406593B2 (en) Method and apparatus for protecting information and privacy
US6889209B1 (en) Method and apparatus for protecting information and privacy
JP4486321B2 (ja) デジタル権利管理(drm)システムを使用するソフトウェアアプリケーションの保護のための方法および媒体
JP4406190B2 (ja) デジタル権管理(drm)システムを有するコンピューティングデバイスのセキュアビデオカード
US7055040B2 (en) Method and apparatus for uniquely and securely loading software to an individual computer
US7305366B2 (en) Content revocation and license modification in a digital rights management (DRM) system on a computing device
JP4842836B2 (ja) 認証コードを復旧する方法
JP2004086588A (ja) ソフトウェア不正使用防止システム