JPH0799497B2 - ソフトウェアの使用を管理するための装置及び方法 - Google Patents

ソフトウェアの使用を管理するための装置及び方法

Info

Publication number
JPH0799497B2
JPH0799497B2 JP3308350A JP30835091A JPH0799497B2 JP H0799497 B2 JPH0799497 B2 JP H0799497B2 JP 3308350 A JP3308350 A JP 3308350A JP 30835091 A JP30835091 A JP 30835091A JP H0799497 B2 JPH0799497 B2 JP H0799497B2
Authority
JP
Japan
Prior art keywords
software
software module
module
computer system
entitlement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP3308350A
Other languages
English (en)
Other versions
JPH05334072A (ja
Inventor
ロバート・カール・ビーチャー
マイケル・ジョーゼフ・コリガン
フランシス・ジョーゼフ・リアドン・ジュニア
ジェームズ・ウィリアム・モラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05334072A publication Critical patent/JPH05334072A/ja
Publication of JPH0799497B2 publication Critical patent/JPH0799497B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータ・ソフト
ウェアの使用に関し、より具体的には、コンピュータ・
ユーザがライセンス・ソフトウェアをライセンスに従わ
ない形で使用できるのを制限することに関する。
【0002】
【従来の技術】現代のコンピュータ・システムは、数え
きれない時間にわたる技術上及びプログラミング上の熟
練の成果をその設計に取り入れた、極めて複雑な機械で
ある。コンピュータ・システムは多くの構成要素を含ん
でいるが、それらはハードウェアとソフトウェアに大別
できる。ハードウェアは、システムを構成する、有形の
回路、ボード、ケーブル、記憶装置、格納装置などであ
る。しかし、タイプライタでピューリツアー賞を受賞で
きる脚本を書けないのと同様、ハードウェアは、それ自
体で、現実の世界の問題を解決することはできない。ハ
ードウェアは、何をすべきかを告げる命令を必要とす
る。「ソフトウェア」とは、そのもっとも純粋な形で
は、ハードウェアに有用な仕事を実行させる命令を言
う。(ただし漠然と、ソフトウェアが記憶され配布され
ている媒体に適用されることもある)。ハードウェアと
同様に、ソフトウェアも人間の創意工夫の産物である。
高品質のソフトウェアは、プログラマとも呼ばれる作成
者の側の、かなりの創造性、訓練、知能を必要とする。
多くの大学が、人々にソフトウェアを作成する技術を教
える目的で、「コンピュータ科学」及び類似の学科の教
育課程を設けている。この業界全体が、何千人ものキャ
リアを抱え、有用な仕事をするソフトウェアを作成する
までに成長して来た。ソフトウェアの開発に莫大な労力
が費やされる結果、コンピュータ・システムの一部分で
あるソフトウェアの価値が、ハードウェアの価値を上回
ることも珍しくはない。
【0003】現代のコンピュータ・システムの特徴の一
つは、非常に高速度で容易にデータを伝送し複写できる
ことである。一般的に、これは必要かつ有益な能力であ
る。しかし、このことはまた、何年も労力をかけて作成
したソフトウェアが、比較的安価な磁気媒体で1秒の何
分の一かで複製でき、濫用される可能性があることを意
味している。許可を得ていない人々が、僅かな費用と労
力で、価値のあるソフトウェアを複製することができ
る。この慣行は、一般に、ソフトウェア著作権侵害と呼
ばれている。近年、ソフトウェア著作権侵害を抑制する
ため、刑法及び民法上の義務を課する様々な法律が制定
されてきている。しかしながら、ソフトウェアが比較的
容易に複写でき、かつソフトウェアが高価なためにそう
したくなる誘惑にかられるため、ソフトウェアの著作権
侵害は依然として問題となっている。
【0004】「パーソナル・コンピュータ」と呼ばれる
小型コンピュータ用の大量配布される安価なソフトウェ
アの場合、全顧客に対して同額の固定した一括払い料金
で、ソフトウェアの使用ライセンスを認めるのが普通で
ある。これは、大型のメインフレーム・コンピュータ・
システムでは、それほど行われていない。このような大
型システム用のソフトウェアは、数百万行のコードを要
することがあり、開発及び維持に非常に大量の投資を必
要とする。開発者がこの投資を回収するのに充分な単一
の固定した一括払い料金を設定すると、多くの小口ユー
ザにとって、使用できないほど高価になりがちである。
したがって、メインフレームの場合は、使用量に基づく
ソフトウェアのライセンス料を請求するのが普通であ
る。「段階的価格設定」と呼ばれるこのような一つの方
法は、可変料金体系に従って顧客の機械の性能に基づい
た料金を請求するものである。より多くの端末が接続さ
れたより高速の機械を使用する顧客ほど、同じソフトウ
ェアに対し、性能の劣る機械の顧客よりも高いライセン
ス料を支払う。もう一つの通常の慣行は、ソフトウェア
の保守グレードアップに対して別途料金を請求するもの
である。
【0005】高品位のソフトウェアを作成するのに必要
な専門知識のレベルと、それにかかる時間及び労力の量
を考えると、このようなソフトウェアの作成には金がか
かる。ソフトウェアの開発者がその訓練と努力に比して
報われない場合は、ソフトウェアを作成する人がいなく
なる。開発者が行ったソフトウェアへの投資を保護する
ことは、実際上の要請であるだけでなく、道徳上の要請
でもある。したがって、ソフトウェアの正当な所有者
は、ソフトウェアを許可なしに使用することが難しく、
ソフトウェアの開発者がその製品に対して正当に報われ
る、ソフトウェア配布方法の開発を求めて来た。
【0006】ソフトウェアは、正当な所有者から多数の
異なる方法で配布される。無許可の使用を防止する観点
から、これらの配布方法は、無制限資格付与法、制限資
格付与法、非資格付与法の3つのグループに大別でき
る。
【0007】無制限資格付与とは、配布されたソフトウ
ェアが、その設計の対象であったどの機械ででも、制限
なしに走行するという意味である。無制限資格付与のソ
フトウェアを配布する所有者は、各ユーザに、ユーザが
それに対して対価を支払いそれを実行する資格を有する
ソフトウェアだけを配布しなければならない。このよう
なソフトウェアの受取側がこれを許可されない形で複製
したり使用したりするのを妨げるものは、法的及び契約
上の義務だけである。大部分のパーソナル・コンピュー
タで使用されているものなど、一括払い料金でライセン
スが与えられる安価なソフトウェアでは、これがもっと
も普通の配布方法である。
【0008】制限資格付与とは、ソフトウェアが、ユー
ザがそれを複写していくらでも多くの機械上で実行でき
るのを制限する、ある種の制限を内蔵していることを意
味する。いくつかの異なる制限資格付与法がある。その
一つは、配布されたオリジナルから作成できるコピーの
数を制限する、複写制限である。複写制限は、ソフトウ
ェア著作権侵害に対してあるレベルの保護を実現する
が、若干の欠点をもつ。無制限資格付与と同様に、複写
制限でも、所有者が各ユーザに、そのユーザが実行する
資格を有するソフトウェアだけを配布することが必要と
なる。これはフルプルーフではなく、保護機構を打ちや
ぶって、複写保護されたソフトウェアの文字通りのコピ
ーをとることのできるプログラムも存在する。最後に、
これは、ユーザがバックアップの目的で正当なコピーを
とれる、またはソフトウェアを高速記憶装置から走行で
きるのを妨げる。もう一つの制限資格付与法は、ユーザ
または機械に特有の情報をソフトウェア自体の中にコー
ド化するものである。ソフトウェアを実行する際、機械
は、ソフトウェアがその機械またはユーザに許可されて
いることを確かめるために検査を行う。この方法は、ユ
ーザが正当なコピーをとれるのを妨げずに、保護を実現
する。ただし、これは、配布されたソフトウェアの各コ
ピーをそれぞれ独自にコンパイルし、配布媒体に載せ、
発送しなければならないので、非常に高価な配布システ
ムが必要となる。
【0009】非資格付与法は、配布されたソフトウェア
が使用禁止にされていて、実行するには別途配布される
資格付与を必要とすることを意味する。ある非資格付与
法は、特注ソフトウェアの配布を完全に避ける可能性が
ある。ただし、必ずしもこのような方法の全てがこうし
た能力をもっているわけでない。たとえば、所有者は、
同じ1組の多数のソフトウェア・プログラムを単一の総
称媒体上でその全ての顧客に配布し、顧客が支払いを済
ませたプログラムだけを実行することを許す、個別化さ
れた許可キーを各顧客に別途配布することができる。非
資格付与法は、他の方法に付随する多くの問題を回避す
るが、現在の設計は、資格付与の偽造や著しい性能劣化
を受ける恐れが大きい。大抵の場合、ソフトウェアを実
行するための資格付与を差し止めるために用いられる機
構は、性能劣化という検証上のオーバーヘッドを避ける
ため、資格検証手段をソフトウェア・モジュール内に
(データあるいは命令として)集中することを必要とす
る。場合によっては、この資格付与のオーバーヘッド
が、製品識別子のサイズ、及び配布されたソフトウェア
内の保護ルーチンの実装によることがある。あるいはま
た、そのオーバーヘッドがソフトウェアを走行させなが
ら複雑な復号手段を実行する必要によることもある。こ
うした資格検査の集中の結果、経験あるプログラマが、
「パッチング」すなわち目的コードの選択された小部分
を無効にすることによって、保護機構を無効にするの
は、比較的容易である。別の場合、目的コードは資格検
証を行わず、モジュールを、それからビット署名を作成
することによって識別する、安全呼出経路がそれを行
う。これはパッチングを受け難くするが、不可避的に呼
出し機構の重大な性能劣化をひき起こす。
【0010】従来技術で教示されている保護方法は、保
護レベルと使いやすさとの折合いをつけるものである。
機械特有の情報をソフトウェア中にコード化することに
よって比較的高レベルの保護を得ることが可能である
が、配布される各ソフトウェア・コピーが独自のものと
なる、非常に複雑な配布システムを維持するという犠牲
を払わなければならない。より安価な配布も可能である
が、保護が一部失われるという犠牲を払わなければなら
ない。高レベルの保護を実現し、大量配布技法を用いて
容易に配布でき、かつシステムの性能、ユーザが正当に
バックアップ複写用コピーをとる可能性、その他の必要
な機能を不当に妨げない方法が求められている。同時
に、段階的価格設定、及び異なるソフトウェアの異なる
バージョンごとに別々のライセンス料をサポートする方
法も求められている。
【0011】
【発明が解決しようとする課題】本発明の目的は、コン
ピュータ・システムにおけるソフトウェアの使用を管理
する改善された方法及び装置を提供することにある。
【0012】本発明の他の目的は、コンピュータ・シス
テムにおける無許可のソフトウェア使用に対するより高
レベルの保護を提供することにある。
【0013】本発明の他の目的は、ソフトウェアを無許
可使用に対して保護する費用を削減することにある。
【0014】本発明の他の目的は、無許可使用に対して
保護されたソフトウェアを実行するコンピュータ・シス
テムの性能を増強することにある。
【0015】本発明の他の目的は、無許可使用に対して
保護されたソフトウェアの配布者の配布システムを簡単
にすることにある。
【0016】本発明の他の目的は、このような保護がソ
フトウェアの正当な使用に及ぼす影響を削減する、ソフ
トウェアを無許可使用から保護する方法及び装置を提供
することにある。
【0017】本発明の他の目的は、ユーザがソフトウェ
アの正当なバックアップ用コピーをとるのを許しなが
ら、ソフトウェアを無許可使用から保護する改善された
方法及び装置を提供することにある。
【0018】本発明の他の目的は、ソフトウェアを無許
可の使用が可能となるように改変するのを難しくするこ
とにある。
【0019】本発明の他の目的は、段階的に価格設定し
たソフトウェアを配布する、改善された方法及び装置を
提供することにある。
【0020】
【課題を解決するための手段】本発明によれば、ソフト
ウェアは、実行するための資格付与なしに配布される。
別々に配布される暗号化された資格付与キーにより、ソ
フトウェアの実行が可能となる。この資格付与キーは、
それに対してソフトウェアのライセンスが与えられてい
る機械の通し番号と、どのソフトウェア・モジュールが
その機械で走行する資格をもつかを指示する複数の資格
付与ビットを含んでいる。安全解読機構が機械に内蔵さ
れている。安全解読機構が機械の通し番号を取り出し、
これを資格付与キーを解読するためのキーとして使用す
る。次いで、資格付与情報が、メモリ内の製品ロック・
テーブルに記憶される。
【0021】配布されたソフトウェアは、複数の資格検
証トリガを含んでいる。好ましい実施例では、各トリガ
は、ソフトウェア・モジュールの製品番号を識別する、
目的コード中の単一機械語命令である。ソフトウェア・
モジュールの実行中にこのような資格検証トリガに出会
うと、機械は、ソフトウェア・モジュールの製品番号に
対応する製品ロック・テーブルのエントリを検査する。
製品が走行する資格をもつ場合、正常に実行が継続さ
れ、そうでない場合は、実行が打ち切られる。この検証
はただ1個の機械語命令しか要しないので、システム全
体の性能にほとんど影響を与えずに実行できる。その結
果、かなりの数のこのような資格検証トリガを目的コー
ド中に配置し、誰かがこのトリガを「パッチング」する
ことによってコードを改変することを事実上不可能にす
ることができる。別の実施例では、資格検証トリガが、
ソフトウェア・モジュールの適正な実行に必要な何らか
の有用な仕事をも行う。これによって、ソフトウェアを
「パッチング」するのが一層難しくなり、このような検
証トリガの性能に対する影響がさらに軽減される。
【0022】ソフトウェア自身はどのような資格付与も
含んでいないので、配布の制限は必要でない。好ましい
実施例では、ソフトウェアの配布者は、複数のソフトウ
ェア・モジュールを単一の総称媒体に記録し、記録され
た同じ1組のモジュールをその全ての顧客に配布するこ
とができる。各顧客は、自分がライセンスを与えられて
いるソフトウェア・モジュールだけを実行できる、独自
の資格付与キーを受け取る。顧客に、ライセンスが与え
られていない何らかのモジュールが与えられても、適切
なキーなしにはそれが実行できないので、大きな問題に
はならない。顧客は、自由にソフトウェアを自分のシス
テムのその他の記憶装置にロードし、あるいはソフトウ
ェアのバックアップ用コピーをいくらでも作成すること
ができる。
【0023】
【実施例】本発明の好ましい実施例にもとづくソフトウ
ェア保護機構の主要要素の説明図を図1に示す。顧客の
コンピュータ・システム101は、制御記憶機構103
に緊密に結合された中央演算処理装置(CPU)10
2、ランダム・アクセス・システム・メモリ104、消
去不能で電子的に読取り可能な独自の識別子105、複
数の記憶装置106、107、108を含んでいる。好
ましい実施例では、独自の識別子105は機械の通し番
号である。好ましい実施例では、記憶装置106〜10
8は、回転式磁気ディスク記憶装置であるが、他の記憶
技術を使用することも可能である。コンピュータ・シス
テム101はまた、オペレータからの入力を受け取る操
作卓109及びソフトウェア媒体読取装置110をも含
んでいる。図1には1台の操作卓、1個のソフトウェア
媒体読取装置、3個の記憶装置が示されているが、シス
テム101に取り付けられるこのような装置の実際の数
は可変であることを理解されたい。また、追加の装置を
システム101に取り付けられることを理解されたい。
好ましい実施例では、コンピュータ・システム101
は、IBM社のAS/400コンピュータ・システムで
あるが、他のコンピュータ・システムも使用できる。
【0024】ソフトウェア・モジュールは、それを動作
させるのに必要な資格付与キー(entitlemen
t key)とは別に配布される。本来、ソフトウェア
・モジュールは、開発用コンピュータ・システム125
上で作成される。開発用コンピュータ・システム125
は、コンパイラ126及びトランスレータ127を含ん
でいる。ソフトウェア・モジュールはソフトウェア記録
媒体112上に記録され、倉庫120に格納され、そこ
から顧客に配布される。配布者の販売事務所121か
ら、暗号化された資格付与キー111が配布される。販
売事務所121は、マーケッティング用コンピュータ・
システム124にアクセスすることができる。マーケテ
ィング用コンピュータ・システム124は、資格付与キ
ーの生成/暗号化プログラム122と、顧客情報を含む
データ・ベース123とを含んでいる。具体的には、デ
ータ・ベース123は、暗号化された資格付与キーの生
成に必要な機械の通し番号とプロセッサの種類の情報を
含んでいる。好ましい実施例では、マーケッティング用
コンピュータ・システム124は、中央に位置して複数
の販売事務所と通信するコンピュータである。ただし、
マーケッティング用コンピュータ・システム124は、
販売事務所自体に位置し、局所または中央のデータ・ベ
ースにアクセスすることもできる。図1には、配布者の
制御下にある別々の2つのコンピュータ・システム12
4、125が示されているが、両方の機能を実行する物
理的に単一のコンピュータ・システムでもよいことを理
解されたい。
【0025】ソフトウェアの配布者から顧客に、暗号化
された資格付与キー111が郵送、電話またはその他の
適当な手段で送られる。資格付与キーを電子的にまたは
フロッピー・ディスクなどの磁気媒体上で伝送すること
が可能であるが、キーは、オペレータが操作卓109上
でタイプして、これをシステム101中に入力できるほ
ど十分簡潔なものである。
【0026】好ましい実施例では、多数のソフトウェア
・モジュールが同一媒体112上で配布される。配布者
は、資格付与キーを介して各モジュールを使用する資格
を独立に与えることができる。倉庫120は、媒体11
2上に、総称的に1組のソフトウェア・モジュールを格
納する。各顧客に、どのモジュールを使用するライセン
スが与えられているかにかかわらず、同じ総称的な1組
のソフトウェア・モジュールが発送される。別途に配布
される資格付与キーは、どのソフトウェア・モジュール
をその上で実行する資格があるかをシステム101が決
定するための情報を含んでいる。
【0027】好ましい実施例では、ソフトウェア媒体1
12は、一枚または複数の読取り専用光ディスクから構
成され、媒体読取装置110は光ディスク読取装置であ
る。ただし、電子式配布媒体やその他の配布媒体も使用
できることを理解されたい。ソフトウェア媒体112を
受け取ると、通常、顧客は、所望のソフトウェア・モジ
ュールを媒体読取装置110からシステム101にロー
ドし、そのソフトウェア・モジュールを記憶装置106
〜108に記憶する。顧客は、ソフトウェア・モジュー
ルの一つまたは複数のバックアップ用コピーを任意の適
当な媒体上に生成し、これらをアーカイブに記憶するこ
とができる。ソフトウェア媒体112は、システムへの
複写やロードに対する制限を含んでおらず、自由に複写
可能かつロード可能である。
【0028】好ましい実施例による暗号化前の資格付与
キー200の内容が図2に示されている。このキーは、
料金グループ・フィールド201、ソフトウェア・バー
ジョン・フィールド202、キー形式フィールド20
3、機械通し番号フィールド204及び製品資格付与フ
ラグ205を含んでいる。料金グループ・フィールド2
01は、16通りの機械段階値から、1つを指定し、ソ
フトウェアの段階的価格設定をサポートするのに使用さ
れる。ソフトウェア・バージョン・フィールド202
は、資格が与えられるソフトウェアのバージョン・レベ
ルを指定する。ソフトウェアのグレードアップを維持す
るための別途料金が課せられることが予想されている。
資格付与キー200中で指定されるバージョンは、その
バージョン・レベルより以前(下位)の全レベルのソフ
トウェアに資格を与える。キー形式フィールド203は
キー・フォーマット、キーの関連性の将来変更のため、
あるいはサポートされる異なる製品の番号拡張のために
保留された領域である。機械通し番号フィールド204
は、資格付与キーが対象としている機械の通し番号を含
んでいる。製品資格付与フラグ205は、それぞれが製
品番号に対応する80本の別々の製品フラグを含む、8
0ビットのフィールドである。対応する製品番号に資格
が与えられている場合、このビットは“1”にセットさ
れ、そうでない場合は、“0”にセットされる。
【0029】好ましい実施例では、ソフトウェア・モジ
ュールは、コンパイルされた目的コードとして配布され
る。典型的なソフトウェア・モジュール300を図3に
示す。このソフトウェア・モジュールは、コンピュータ
・システム101上で実行できる複数の目的コード命令
を含んでいる。本発明によれば、いくつかの資格検証ト
リガ命令(以下、「資格検証トリガ」と表記)301が
目的コードに組み込まれている。ソフトウェア・モジュ
ール内に含まれる全ての資格検証トリガ301は、同一
である。資格検証トリガ301は、命令コード・フィー
ルド302、バージョン・フィールド303、製品番号
フィールド304を含んでいる。フィールド305は使
用されていない。命令コード・フィールド302は、実
行すべき操作を識別する、目的コード命令の動詞部分で
ある。バージョン・フィールド303は、ソフトウェア
・モジュールのバージョン・レベルを識別する。製品番
号フィールド304は、そのソフトウェア・モジュール
に関連する製品番号を識別する。バージョン及び製品番
号の情報はモジュールごとに変わるが、全ての資格検証
トリガには単一の命令コードが使用される。別の実施例
では、資格検証トリガは、他の何らかの有用な仕事を実
行する直接命令(とりわけ、その処理用のオペランドを
命令中で指定しておく必要のない命令)でもある。この
ような別の実施例では、トリガ命令が実行されると、シ
ステム101は資格検証と同時に他の何らかの操作を実
行する。
【0030】コンピュータ・システム101は、暗号化
された資格付与キー111を受け取ってデコードする手
段、ならびに資格検証トリガに応答してシステムがソフ
トウェア・モジュールを実行する資格をもつことを検証
する手段を含んでいる。好ましい実施例では、図4に示
されているように、これらの機能は、異なるレベルのシ
ステム・ハードウェア及びシステム・ソフトウェアの間
で分割されている。この実施例では、システム101
は、ハードウェア・レベル401、水平マイクロコード
・レベル402、実行可能コード・レベル403、仮想
計算機レベル404という、4レベルのハードウェア/
ソフトウェア機能を含んでいる。機械インターフェース
405が、仮想計算機レベルを下位の全てのレベルから
分離している。機械インターフェース405は、顧客に
対して定義されている最も下位レベルにあるインタフェ
ースである。すなわち、仮想計算機レベルの命令ビット
は顧客に対して定義されるが、それより下のレベルの操
作は定義されない。したがって、顧客は、機械インター
フェース・レベルより下のレベルの命令を直接改変する
能力がない。永久的な、改変不能な機械通し番号410
が、ハードウェア・レベル401に格納されている。
【0031】水平マイクロコード402は、実行可能な
命令セットを解釈するマイクロコード・エントリを含ん
でいる。これは、制御記憶機構103、すなわち好まし
い実施例では、顧客による改変が不可能な読取り専用メ
モリ(ROM)に、物理的に記憶されている。水平マイ
クロコード中のエントリは、機械キー取得機能420、
ロック設定機能421、ロック検査機能422をサポー
トしている。機械キー取得機能420は、好ましい実施
例ではシステム通し番号に基づく、独自の識別子を、あ
る永久的なハードウェア位置から取り出す。ロック設定
機能421は、製品ロック・テーブル460にアクセス
し、テーブル中のエントリを変更する。ロック設定機能
は、製品ロック・テーブル460を変更できる唯一のマ
イクロコード機能である。ロック検査機能422は、製
品ロック・テーブル460にアクセスし、エントリの一
つを読み取って資格が付与されているかどうかを検証す
る。
【0032】実行可能コード・レベル403は、下位レ
ベルの監視サポート、及び機械インターフェースで定義
された命令を実施するサポートを含んでいる。これはメ
モリに物理的に記憶されるが、その内部仕様が顧客に対
して定義されていないので、実際上は顧客によって改変
できない。下位レベルのサポートには、ロック解除ルー
チン430、初期プログラムロード(IPL)ロック再
検証ルーチン431、例外処理ルーチン432が含まれ
る。アンロック・ルーチン430は、固有の機械キーを
用いて資格付与キー111をデコードし、暗号化された
資格付与キー111を製品キー・テーブル450に記憶
する。初期プログラムロードロック再検証ルーチン43
1は、システムが再び初期設定されると、コード化され
た製品キー・テーブル450の内容を取り出して、製品
ロック・テーブル460を再構築する。例外処理ルーチ
ン432は、水平マイクロコード・レベル402の機能
によって生成される例外条件に応答する。実行可能コー
ド・レベル403は、目的コード形式のソフトウェア・
モジュール300を含んでいる。
【0033】仮想計算機レベル404は、機械語命令に
よって表されているものとしてソフトウェアを参照す
る。このレベルの計算機は、機械語命令が直接実行可能
ではないという意味で、仮想計算機として動作する。仮
想計算機レベル404は顧客に利用できる最も下位レベ
ルのインターフェースなので、システム上で実行可能な
目的コード形式のモジュールを作成するのに、非従来型
のコンパイル経路が必要である。このコンパイル処理に
ついては、後に説明する。厳密には、この非従来型のコ
ンパイル経路を介して作成されるソフトウェアは、実行
しようとする実行可能な目的コードの形式をとらなけれ
ばならないが、機械語命令が直接実行可能であるかのよ
うに、仮想計算機レベルの機械語命令で表して議論する
のが普通であり、よりわかりやすい。これが確立される
と、仮想計算機レベル404がコンパイルしたユーザの
ソフトウェアを含んでいると言うことができる。これは
また、システム101に対するより上位レベルのオペレ
ーティング・システムのサポートも含んでいる。仮想計
算機レベル404でこのオペレーション・システムのサ
ポートは、資格付与キーの入力をサポートするのに必要
な2個のユーザ・インターフェース・ルーチンを含んで
いる。一般入力ルーチン441は、通常の操作中に入力
を処理するのに使用する。さらに、オペレーティング・
システムの初期導入中に資格付与キーを入力するには特
別のインストール入力ルーチン440が必要である。こ
れが必要なのは、機械インターフェース・レベル405
より上位のオペレーティング・システムの部分が、本発
明では他のプログラム製品として扱われるためである。
すなわち、このような部分は製品番号をもち、その目的
コードは資格検証トリガの影響を受ける。インストール
入力ルーチン440は、オペレーティング・システム
の、資格検証トリガをもたない唯一の部分であり、従っ
て、システムを最初に導入する際に資格付与キーが入力
できるようになる。
【0034】ソフトウェア・モジュール300は、シス
テム101上で実行されるコンパイルされた目的コード
形式のプログラム製品の一部である。これは、仮想計算
機レベルの他の対象にアクセス可能であるという意味
で、仮想計算機レベル404のエンティティとして存在
する。ただし、実際に実行可能なコードは、破線の枠で
示されているように、実行可能コード・レベル403で
動作する。実行可能コードは、水平マイクロコードのロ
ック検査機能422によって実行される、資格検証トリ
ガ301(一つだけが図に示されている)を含んでい
る。
【0035】コード化された製品キー・テーブル450
が図5に示されている。製品キー・テーブル450はラ
ンダム・アクセス・メモリ104に入っており、不揮発
性記憶装置に複製されているため、システムの電力を遮
断したり、その他の理由で再初期設定しなければならな
い場合に、回復することが可能である。テーブル450
は、それぞれが各製品番号に対応し得る80個のエント
リ501を含んでいる。各エントリ501は、そのエン
トリの製品番号に適用される暗号化された資格付与キー
502と、そのキーが最初にいつ使用されたかを示す日
時スタンプ503と、そのキーのバージョン番号504
と、そのキーの料金グループ505と、そのキーが製品
をアンロックするかどうかを示す資格付与ビット506
との完全なコピーを含んでいる。日時スタンプ503は
暗号化することができる。バージョン番号504、料金
グループ505及び資格付与ビット506は、暗号化さ
れた資格付与キー502に含まれる情報を繰り返す。そ
れらは、照合をサポートするためにこのテーブルに含ま
れている。ただし、最初に暗号化された資格付与キー5
02中の情報を検証してからでないと、製品ロック・テ
ーブル460のエントリを改変して、プログラム実行の
資格を与えることはできない。製品キー・テーブル45
0中の各資格付与キー502は暗号化された形なので、
ユーザーのこのテーブルへのアクセスを防止するために
特別の措置は必要でない。
【0036】図6に、製品ロック・テーブル460が示
されている。このテーブルは、水平マイクロコードの完
全な制御下にある、ランダム・アクセス・メモリ104
の特別な下位アドレス範囲に入っている。製品ロック・
テーブル460は、それぞれが各製品番号に対応し得る
80個のエントリ601を含んでいる。各エントリは、
資格付与の最大バージョンのレベルを示すバージョン番
号を含んでいる。0のバージョン番号は、製品のどのバ
ージョンにも資格付与がないことを示している。製品ロ
ック・テーブル460の改変に対する保護の度合をさら
に強化するために、バージョン番号をスクランブルする
ことができる。
【0037】次に、本発明の好ましい実施例によるコン
ピュータ・システム101上でのソフトウェア・モジュ
ールの動作について述べる。この動作には4つの部分が
ある。第1の動作は、複数の資格検証トリガを実行可能
な目的コード形式のソフトウェア・モジュール中に配置
する。第2の動作は、ソフトウェア・モジュールへのア
クセスを許可する暗号化された資格付与キー111を生
成する。第3の動作は、コンピュータ・システム101
が資格付与キー111を受け取り、デコードして、記憶
し、製品ロック・テーブル460を設定する。第4の動
作は、ソフトウェア・モジュールをシステム101上で
実行して、資格検証トリガに出会ったときには、システ
ム101に資格を検証させる。始めの2つの動作は、ソ
フトウェア配布者の管理下で実施される。後の2つの動
作は、顧客のシステム101上で実施される。
【0038】ソフトウェア配布者は、ソフトウェア・モ
ジュールをコンパイルするとき、資格検証トリガを目的
コード中に配置しなければならない。開発用コンピュー
タ・システム125で起こる典型的なこの過程を図7に
示す。原始コードは、資格検証トリガを含めずに、通常
通りプログラマによって生成される。ステップ701
で、原始コードがコンパイラ126に入力され、ステッ
プ702で、プログラム・テンプレートを作成する。プ
ログラム・テンプレートは、仮想計算機レベル404
(すなわち機械インターフェース405より上のレベ
ル)の機械語命令を含んでいる。ステップ704で、プ
ログラム・テンプレートは、その製品番号及びバージョ
ン番号を識別すると共に、トランスレータ127への入
力として働く。トランスレータ127は、自動的に、か
なりの数の資格検証トリガを生成し、これを目的コード
中のランダムな位置に挿入し、資格検証トリガの挿入後
に参照を解決する。ステップ705で出力された結果得
られる実行可能な目的コード形式のソフトウェア・モジ
ュールには、資格検証トリガが含まれている。この実行
可能な形式のソフトウェア・モジュールは、実行可能コ
ード・レベル403の目的コード命令を含んでいる。
【0039】暗号化された資格付与キーを生成する過程
を図8に示す。ステップ801で、販売担当員によって
生成されたあるバージョン・レベルの1個または複数の
プログラム製品に対するライセンスの注文が、マーケテ
ィング用コンピュータ・システム124に入力される。
理論上、顧客が多数のバージョン・レベルの製品を注文
することは可能であるが、一般的にはそうする理由はほ
とんどない。ただし、各資格付与キーは指定されたバー
ジョン・レベルでしか動作しないので、顧客が異なるバ
ージョン・レベルを注文すると、別々の資格付与キーを
生成しなければならない。顧客の注文を受け取ると、ス
テップ802で、システム124で実行中のキー生成/
暗号化プログラム122が、顧客に関する情報、具体的
には機械の通し番号及びプロセッサ形式の情報を含むデ
ータベース123にアクセスする。この情報を使って、
暗号化されていない資格付与キー200の料金グループ
・フィールド201及び機械通し番号フィールド204
が生成される。ステップ803で、顧客の注文及び可能
な製品番号提供のデータベースへの参照によって残りの
フィールドが生成されて、完全な非暗号形式の資格付与
キーが構築される。次いで、ステップ804で、キー生
成/暗号化プログラム122が、当技術分野で既知のい
くつかの暗号化技法のうちのどれかを使って、資格付与
キーを暗号化する。次いで、ステップ805で、その結
果得られた暗号化された資格付与キー111が、顧客に
伝送される。図1ではキー111は複数の2進ビットと
して示されているが、資格付与キーを鍵盤から入力する
仕事を簡単にするため、16進数字や英数字による等価
物など2進ビットをグループ化した何らかの形式で顧客
に提示してもよい。
【0040】コンピュータ・システム101上で資格付
与キー111を受け取り、製品ロック・テーブル460
を維持する過程を図9a及び図9bに示す。ステップ9
01で、顧客は、操作卓109を介して、資格付与キー
111をコンピュータ・システム101に入力する。こ
れが初期導入である場合には、インストール入力ルーチ
ン440がオペレータと対話して入力を受け取る。そう
でない場合は、一般入力ルーチン441が入力を受け取
る。資格付与キーは、デコード過程を処理するロック解
除ルーチン430に渡される。ステップ902で、ロッ
ク解除ルーチン430が、機械キー取得機能420に、
機械通し番号を検索させ、機械キーを生成させる。次い
で、ステップ903で、ロック解除ルーチン430が、
機械キーを用いて資格付与キー111をデコードする。
次いで、ステップ904で、以下に述べるように、ロッ
ク解除ルーチン430がコード化された製品キー・テー
ブル450を再構築する。デコードされた資格付与キー
は、図2に示した形をとる。これは、各製品番号ごと
に、その製品が新しい資格付与キーの下でロックを解除
されているかどうかを示す、80ビットの製品資格付与
フラグ・アレイ205を含んでいる。新しい資格付与キ
ーは、それがロックを解除する全ての製品に対する置換
されたキーと見なされる。ロック解除ルーチン430
は、デコードされた資格付与キー中の各製品資格付与フ
ラグ205を走査する(ステップ904)。ステップ9
05で、製品資格付与フラグが“1”(資格付与ありを
指す)にセットされている場合、ステップ908で、製
品キー・テーブル450中の対応するエントリが、新し
い資格付与キー、バージョン番号及び料金グループ値で
置換される。資格付与ビット・フィールド506が
“1”にセットされ、日/時スタンプ・ビット・フィー
ルド503が、資格付与キーがまだ使用されていないこ
とを示すゼロの値にセットされる。新しいキーの製品資
格付与フラグが“0”の場合には、バージョン番号と料
金グループ番号が製品キー・テーブル450に記憶され
ているものと同じでない限り、新しい資格付与キーは効
果がない。バージョン番号及び料金グループ番号が同じ
場合(ステップ906)、資格付与キーは製品をロック
する効果がある。したがって、ロック解除ルーチン43
0は、ステップ907で、製品ロック・テーブル460
中のバージョン番号を“0”にセットするために、ロッ
ク設定機能421を呼び出し、ステップ908で、製品
キー・テーブル450中の対応するエントリを新しい資
格付与キーの値で置換する。製品キー・テーブル450
が再構築されると、ステップ909で、その内容が記憶
装置にセーブされる。
【0041】前に資格を付与された製品が資格を失わな
い限り、製品キー・テーブル450の再構築は製品ロッ
ク・テーブル460に直接影響を与えない。製品は、要
求に応じて、ロックを解除される。前に資格を付与され
ていないソフトウェア製品を最初に実行するとき、資格
検証トリガに出会うと、システムによって例外が生成さ
れる。次いで、ステップ920で、例外処理ルーチン4
32が、製品のロック解除を試みるため、ロック解除ル
ーチン430を呼び出す。次に、ステップ921で、ロ
ック解除ルーチン430が、コード化された製品キー・
テーブル450中の適当なエントリから暗号化された資
格付与キーを取り出し、ステップ922で機械キーを得
て、ステップ923で資格付与キーを解読する。資格が
付与されている(ステップ924)場合は、ステップ9
26で、ソフトウェア製品の製品番号に対応する、製品
ロック・テーブル460のエントリ601中でバージョ
ン番号を設定するために、ロック設定機能421が呼び
出される。同時に、ステップ927で、ロック解除ルー
チン430が、第1回使用の日時を日/時スタンプ・フ
ィールド503に記録する。次いで、ステップ928
で、資格検証トリガが再試行され、プログラムの実行が
続行される。ステップ924で資格付与が示されない場
合は、ステップ925で、プログラムの実行が打ち切ら
れる。
【0042】製品ロック・テーブル460は、RAMに
記憶されており、システムの再初期設定後は残らない。
再初期設定(「IPL」)中に、製品ロック・テーブル
430を再構築するため、IPLロック再検証ルーチン
431が呼び出される。このルーチンは、上記のよう
に、資格を検証し、製品ロック・テーブル460中の対
応するエントリを再構築するために機械キーを得て、コ
ード化された製品キー・テーブル450中の各資格付与
キー・エントリを系統的にデコードする。
【0043】好ましい実施例による、ソフトウェア・モ
ジュールを実行する過程を図10に示す。システム10
1によるソフトウェア・モジュールの実行は、モジュー
ルの目的コード命令が終了するまで(ステップ100
3)、これを取り出して(ステップ1001)実行する
(ステップ1002)ことによってなされる。命令が資
格検証トリガ301である(ステップ1004)場合
は、ロック検査機能422が呼び出される。ステップ1
005で、ロック検査機能422が、資格検証トリガに
含まれる製品番号に対応する、製品ロック・テーブル・
エントリ601にアクセスする。製品ロック・テーブル
460中のバージョン番号が資格検証トリガ301に含
まれるバージョン番号303に等しいかまたはそれより
大きい場合には、ソフトウェアは実行する資格を付与さ
れる(ステップ1006)。この場合、ロック検査機能
422はそれ以上の処置を行わず、システムはソフトウ
ェア・モジュール内の次の目的コード命令の実行に進
む。ソフトウェアが資格を付与されていない場合は、ロ
ック検査機能が例外条件を生成して、制御を例外処理ル
ーチン432に渡し、例外処理ルーチン432がプログ
ラムの実行を終了させる(ステップ1007)。システ
ムは、ソフトウェアが資格を付与されていることを示す
資格検査の結果をセーブしない。したがって、ソフトウ
ェア・モジュール中で資格検証トリガに再び出会うと、
上記のように、システムは再度資格を検証する。
【0044】別の実施例では、資格検証トリガを、従来
型のコンパイル経路を介して目的コード中に注入できる
ように、追加の定義をすることが可能である。これは、
顧客及びコンパイラ作成者が利用できる機械インターフ
ェースが、目的コード形式のモジュールがシステムによ
って実行されるのと同じ実行可能な命令のビットとなっ
ているものとなるはずである。目的コードのフォーマッ
トが顧客に知られている従来型のコンパイル経路をサポ
ートするため、資格検証トリガを無効にするかまたは変
更するような目的コードの「パッチング」に対する障壁
を追加することが適切になる場合がある。このような追
加の障壁の一つは、同時に他の何らかの機能を果たすよ
うに、資格検証トリガを定義することである。この場
合、資格検証トリガによって実施される代替機能が、他
の単純命令で実施できないことが肝要である。この代替
機能は、コンパイルされたどんなソフトウェア・モジュ
ールもかなり確実にその機能を果たすいくつかの命令を
含むように、選定しなければならない。これらの判定規
準に合致している場合、コンパイラは、自動的に、その
通常のコンパイル手順の一部として、その代替機能を
(それと同時に資格検証トリガも)果たす目的コードを
生成することができる。この定義は、資格検証トリガを
無効にするような目的コードの「パッチング」に対する
重要な障壁をもたらすはずである。他の実施例は、資格
検証トリガを、目的コード中で、それが識別する製品番
号に対して単純な関係をもつアドレス可能位置に、配置
しなければならないと定義することである。コンパイラ
が、通常のコンパイル過程の一部としてこれらの命令を
適切なコード位置に注入するのは比較的簡単なはずであ
り、命令実施態様でこの追加的検証を行うのは簡単なは
ずである。この定義は、資格検証トリガ中で供給される
製品番号の識別を変更する、目的コードのパッチングに
対する重要な障壁となるはずである。
【0045】好ましい実施例は、80個の独立な製品番
号に対応している。本発明によってサポートされる製品
番号の実際の数は可変であることを理解されたい。好ま
しい実施例では、配布者から配布される、別々にコンパ
イル可能なソフトウェア・モジュールの数が80を大幅
に越えることも予想されている。製品番号の数は、配布
者のマーケティング組織によって提供される別々に価格
設定されたソフトウェア・パッケージの数に対応する。
各ソフトウェア・モジュールは一つの製品番号しかもた
ないが、この製品番号を共有するソフトウェア・モジュ
ールは多数存在し得る。たとえば、配布者は、画面編
集、スペル・チェック、文書フォーマット化などを扱う
別々のソフトウェア・モジュールを含む、ワード・プロ
セッシング・パッケージを提供する。こうしたソフトウ
ェア・モジュールが常にワード・プロセッシング・パッ
ケージの一部としてライセンスを与えられる場合には、
それらのモジュールは共通の製品番号をもつことにな
る。別の実施例では、各ソフトウェア・モジュールごと
に、別々の番号をもつことも可能である。
【0046】好ましい実施例では、ソフトウェアは一括
払い料金でライセンスが与えられるが、グレードアップ
を維持するための追加料金が請求されることが可能であ
る。別の実施例では、ある期間の間ソフトウェアのライ
センスを許諾することができる。このような別の実施例
においては、資格付与キーが、ソフトウェアのライセン
スが与えられる期間の長さを示す追加のフィールドを含
むことになる。コード化された製品キー・テーブル45
0中の製品番号に関連する日/時スタンプをライセンス
許諾の期間の長さと比較して、ライセンスが満了したか
どうかを判定するために、IPLロック再検証ルーチン
431が、定期的に呼び出される。このとき、ライセン
スが満了した場合には、製品ロック・テーブル460中
の対応するエントリにロック解除ビット(図示せず)を
設けておきこれを“0”にセットすることによって、新
たな資格付与が得られるまで、ソフトウェア・モジュー
ルのそれ以上の実行を防止するようにすることもでき
る。
【発明の効果】本発明によって、コンピュータ・システ
ムにおけるソフトウェアの使用を管理する、改善された
方法及び装置が提供される。
【図面の簡単な説明】
【図1】本発明の好ましい実施例によるソフトウェア保
護機構の主要要素を示す図である。
【図2】本発明の好ましい実施例による資格付与キーの
暗号化されていない内容を示す図である。
【図3】好ましい実施例による典型的な実行可能ソフト
ウェア・モジュールの内容を示す図である。
【図4】好ましい実施例によるソフトウェア保護機構を
サポートするために顧客のコンピュータ・システム上で
必要なハードウェア及びソフトウェアの構造を示す図で
ある。
【図5】好ましい実施例によるコード化された製品キー
・テーブルのフォーマットを示す図である。
【図6】好ましい実施例による製品ロック・テーブルの
フォーマットを示す図である。
【図7】好ましい実施例による、資格検証トリガをソフ
トウェア・モジュールに配置するのに必要なステップの
ブロック図である。
【図8】好ましい実施例により、暗号化された資格付与
キーを生成するのに必要なステップのブロック図であ
る。
【図9】好ましい実施例による、顧客のコンピュータ・
システム上で資格付与キーをデコードし、資格付与状況
の記録を維持するのに必要なステップのブロック図であ
る。
【図10】好ましい実施例による、ソフトウェア・モジ
ュールの実行中に資格を検証するのに必要なステップの
ブロック図である。
【符号の説明】
101 顧客側コンピュータ・システム 102 中央演算処理装置(CPU) 103 制御記憶機構 104 ランダム・アクセス・メモリ(RAM) 106 記憶装置 107 記憶装置 108 記憶装置 109 操作卓 110 媒体読取装置 112 ソフトウェア記録媒体 120 倉庫 121 販売事務所 123 データ・ベース 124 マーケティング用コンピュータ・システム 125 開発用コンピュータ・システム 126 コンパイラ 127 トランスレータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マイケル・ジョーゼフ・コリガン アメリカ合衆国55906、ミネソタ州ロチェ スター、20番アベニュー、ノース・イース ト 1510番地 (72)発明者 フランシス・ジョーゼフ・リアドン・ジュ ニア アメリカ合衆国55901、ミネソタ州ロチェ スター、シャトー・ロード、ノース・ウェ スト 5685番地 (72)発明者 ジェームズ・ウィリアム・モラン アメリカ合衆国55934、ミネソタ州エヨタ、 チェスター・ロード、サウス・イースト、 3221番地 (56)参考文献 特開 昭61−123935(JP,A) 特開 昭63−298529(JP,A)

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムで実行されるソフ
    トウェア・モジュールの使用を管理するための装置であ
    って、 上記 コンピュータ・システムに所定のソフトウェア・モ
    ジュールを実行する資格を付与するための資格付与キー
    を、資格が付与される該システムの識別子を含めて生成
    し該システムに入力する資格付与手段と、上記ソフトウェア・モジュールの識別子を含み、 資格の
    検証をトリガする複数の独立したトリガ機構を、該ソフ
    トウェア・モジュール内に設けるトリガ生成手段と、 上記の複数の独立したトリガ機構のそれぞれに応答し
    て、上記コンピュータ・システムが上記ソフトウェア・
    モジュールを実行する資格をもつことを、上記システム
    の識別子と上記ソフトウェア・モジュールの識別子を用
    いて検証する資格検証手段と、 上記の資格検証手段に応答して、上記コンピュータ・シ
    ステムが上記のソフトウェア・モジュールを実行する資
    格をもたないと上記資格検証手段が判定した場合に、上
    記ソフトウェア・モジュールの実行を打ち切る手段と を備える、ソフトウェアの使用を管理するための装置。
  2. 【請求項2】上記の複数の独立したトリガ機構が、上記
    資格検証手段をトリガする単一の目的コード命令であ
    る、請求項1に記載のソフトウェアの使用を管理するた
    めの装置。
  3. 【請求項3】上記資格検証手段をトリガする上記目的コ
    ード命令が、上記ソフトウェア・モジュールの適切な実
    行に必要な追加ステップをも実行し、その結果、上記目
    的コード命令を除去することによって上記ソフトウェア
    ・モジュールが修正される場合は、上記の追加ステップ
    が実行されず、上記ソフトウェア・モジュールが適切に
    実行されなくなる、請求項2に記載のソフトウェアの使
    用を管理するための装置。
  4. 【請求項4】上記資格検証手段が、 資格付与情報を含みかつそれぞれが上記ソフトウェア・
    モジュールの識別子に関連する複数のエントリを備え
    る、上記コンピュータ・システム内の製品ロック・テー
    ブルと、 上記目的コード命令に応答して、上記目的コード命令に
    含まれる上記ソフトウェア・モジュールの識別子に関連
    する上記製品ロック・テーブル中のエントリに含まれる
    上記資格付与情報にアクセスする手段と を含む、請求項に記載のソフトウェアの使用を管理す
    るための装置。
  5. 【請求項5】上記システムの識別子を用いて上記資格付
    与キーを暗号化し、その結果得られる暗号化された資格
    付与キーが同じ独自の識別子をもつコンピュータ・シス
    テム上でしか解読できないようにする手段と、 上記コンピュータ・システムの独自の識別子にアクセス
    する、コンピュータ・システム内の手段と、 上記の独自の識別子にアクセスする上記手段に応答し
    て、上記の暗号化された資格付与キーを解読する、上記
    のコンピュータ・システム内の手段と を備える、請求項に記載のソフトウェアの使用を管理
    するための装置。
  6. 【請求項6】コンピュータ・システムにおいて実行され
    るソフトウェア・モジュールの使用を管理するための方
    法であって、 ソフトウェア・モジュールの識別子を含み、 資格の検証
    をトリガする複数の独立したトリガ機構が、該ソフトウ
    ェア・モジュール内に配置されており上記コンピュータ・システムに所定のソフトウェア・モ
    ジュールを実行する資格を付与するために該システムの
    識別子を含めて生成される資格付与キーを、該システム
    で受け取る段階と、 上記ソフトウェア・モジュールを実行する段階と、 上記ソフトウェア・モジュールの実行中に上記複数の独
    立したトリガ機構の一つに出会ったとき、コンピュータ
    ・システムがそのソフトウェア・モジュールを実行する
    資格をもつことを、上記システムの識別子と上記ソフト
    ウェア・モジュールの識別子を用いて検証する資格検証
    動作を上記コンピュータ・システム中でトリガする段階
    と、 上記資格検証で、上記コンピュータ・システムには上記
    ソフトウェア・モジュールを実行する資格がないと判定
    された場合、上記ソフトウェア・モジュールの実行を打
    ち切る段階と を含む、ソフトウェアの使用を管理するための方法。
  7. 【請求項7】複数の独立したトリガ機構を上記ソフトウ
    ェア・モジュール内に配置する際に、上記ソフトウェア
    ・モジュール内の複数の別々の位置に、上記資格検証動
    作をトリガする単一の目的コード命令が配置される、請
    求項に記載のソフトウェアの使用を管理するための方
    法。
  8. 【請求項8】上記資格検証動作をトリガする上記目的コ
    ード命令が、上記ソフトウェア・モジュールの適切な実
    行に必要な追加ステップをも実行し、その結果、目的コ
    ード命令を除去することによって上記ソフトウェア・モ
    ジュールが修正される場合は、上記の追加ステップが実
    行されず、上記ソフトウェア・モジュールが適切に実行
    されなくなる、請求項に記載のソフトウェアの使用を
    管理するための方法。
  9. 【請求項9】資格付与情報を含みかつそれぞれが上記ソ
    フトウェア・モジュールの識別子に関連する複数のエン
    トリを備えた製品ロック・テーブルを、上記のコンピュ
    ータ・システム内で維持する段階を含み、資格検証動作
    をトリガする上記段階が、上記目的コード命令中に含ま
    れる上記ソフトウェア・モジュールの識別子に関連する
    製品ロック・テーブル中のエントリに含まれる上記資格
    付与情報にアクセスすることを含む、 請求項に記載のソフトウェアの使用を管理するための
    方法。
  10. 【請求項10】ソフトウェア・モジュールを実行する資
    格を受け取り管理する手段を有し、かつ上記ソフトウェ
    ア・モジュール内のトリガ機構に応答して、ソフトウ
    ェア・モジュールを実行する資格をもつことをシステム
    の識別子とソフトウェア・モジュールの識別子を用いて
    検証する資格検証手段を有するコンピュータ・システム
    上で実行される、ソフトウェア・モジュールを配布する
    方法であって、ソフトウェア・モジュールの識別子を含み、 資格の検証
    をトリガするための複数の独立したトリガ機構を上記ソ
    フトウェア・モジュール内に配置する段階と、 上記ソフトウェア・モジュールを上記コンピュータ・シ
    ステムに配布する段階と、 上記コンピュータ・システムに所定のソフトウェア・モ
    ジュールを実行する資格を付与するために該システムの
    識別子を含めて生成される資格付与キーを、該システム
    に送付する段階と を含む、ソフトウェアの配布方法。
  11. 【請求項11】上記複数の独立したトリガ機構を上記ソ
    フトウェア・モジュール内に配置する上記段階が、上記
    資格の検証をトリガする単一の目的コード命令を、上記
    ソフトウェア・モジュール中の複数の別々の位置に配置
    することを含む、請求項10に記載のソフトウェアを配
    布する方法。
  12. 【請求項12】上記資格検証をトリガする上記目的コー
    ド命令が、上記ソフトウェア・モジュールの適切な実行
    に必要な追加ステップをも実行し、その結果、上記目的
    コード命令を除去することによって上記ソフトウェア・
    モジュールが修正される場合は、上記の追加ステップが
    実施されず、ソフトウェア・モジュールが適切に実行さ
    れなくなる、請求項11に記載の、ソフトウェア・モジ
    ュールを配布する方法。
  13. 【請求項13】コンピュータ・システム上の上記資格検
    証手段が、資格付与情報を含みかつそれぞれが上記ソフ
    トウェア・モジュールの識別子に関連する複数のエント
    リを備えた製品ロック・テーブルを、コンピュータ・シ
    ステム内に有する、 請求項11に記載の、ソフトウェア・モジュールを配布
    する方法。
  14. 【請求項14】上記ソフトウェア・モジュールを配布す
    る上記段階が、それぞれ単一の記憶媒体上に資格検証を
    トリガする複数の独立したトリガ機構を有する、複数の
    ソフトウェア・モジュールを配布することを含み、 上記コンピュータ・システムに上記ソフトウェア・モジ
    ュールを実行する資格を付与する上記段階が、上記の単
    一の記憶媒体上の上記複数のソフトウェア・モジュール
    のうち少なくとも2つに別々の資格を与えることを含
    む、 請求項10に記載の、ソフトウェア・モジュールを配布
    する方法。
JP3308350A 1990-12-14 1991-10-29 ソフトウェアの使用を管理するための装置及び方法 Expired - Lifetime JPH0799497B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US629295 1984-07-09
US62929590A 1990-12-14 1990-12-14

Publications (2)

Publication Number Publication Date
JPH05334072A JPH05334072A (ja) 1993-12-17
JPH0799497B2 true JPH0799497B2 (ja) 1995-10-25

Family

ID=24522406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3308350A Expired - Lifetime JPH0799497B2 (ja) 1990-12-14 1991-10-29 ソフトウェアの使用を管理するための装置及び方法

Country Status (2)

Country Link
US (1) US5933497A (ja)
JP (1) JPH0799497B2 (ja)

Families Citing this family (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089212B2 (en) * 1992-12-15 2006-08-08 Sl Patent Holdings Llc System and method for controlling access to protected information
US6266654B1 (en) * 1992-12-15 2001-07-24 Softlock.Com, Inc. Method for tracking software lineage
US7831516B2 (en) 1992-12-15 2010-11-09 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US7036019B1 (en) 1994-04-01 2006-04-25 Intarsia Software Llc Method for controlling database copyrights
JPH07271865A (ja) * 1994-04-01 1995-10-20 Mitsubishi Corp データベース著作権管理方法
US7302415B1 (en) 1994-09-30 2007-11-27 Intarsia Llc Data copyright management system
US6424715B1 (en) 1994-10-27 2002-07-23 Mitsubishi Corporation Digital content management system and apparatus
DE69532434T2 (de) 1994-10-27 2004-11-11 Mitsubishi Corp. Gerät für Dateiurheberrechte-Verwaltungssystem
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
DE69638018D1 (de) * 1995-02-13 2009-10-15 Intertrust Tech Corp Systeme und Verfahren zur Verwaltung von gesicherten Transaktionen und zum Schutz von elektronischen Rechten
US6658568B1 (en) * 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US7133846B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6948070B1 (en) * 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7143290B1 (en) 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US20080141033A1 (en) * 1995-02-13 2008-06-12 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US7937312B1 (en) * 1995-04-26 2011-05-03 Ebay Inc. Facilitating electronic commerce transactions through binding offers
US8595502B2 (en) 1995-09-29 2013-11-26 Intarsia Software Llc Data management system
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6708171B1 (en) 1996-04-23 2004-03-16 Sun Microsystems, Inc. Network proxy
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6272559B1 (en) 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6466947B2 (en) * 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6530019B1 (en) * 1996-06-12 2003-03-04 Dell U.S.A., L.P. Disk boot sector for software contract enforcement
US7177429B2 (en) 2000-12-07 2007-02-13 Blue Spike, Inc. System and methods for permitting open access to data objects and for securing data within the data objects
US6237020B1 (en) * 1996-10-01 2001-05-22 International Business Machines Corporation Task-oriented automatic distribution of software
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
JP2000507484A (ja) * 1996-10-23 2000-06-20 エスディージーアイ・ホールディングス・インコーポレーテッド 脊柱用スペーサ
JP3302593B2 (ja) * 1997-02-25 2002-07-15 三菱電機株式会社 ソフトウェア版権保護装置
US6067416A (en) * 1997-06-03 2000-05-23 Fraser; Robert E. Method for dynamically wrapping files for downloading
US6253256B1 (en) 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
WO1999044296A2 (en) * 1998-02-26 1999-09-02 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
AU2787799A (en) 1998-02-26 1999-09-15 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6243692B1 (en) * 1998-05-22 2001-06-05 Preview Software Secure electronic software packaging using setup-external unlocking module
US6389403B1 (en) * 1998-08-13 2002-05-14 International Business Machines Corporation Method and apparatus for uniquely identifying a customer purchase in an electronic distribution system
US7664264B2 (en) 1999-03-24 2010-02-16 Blue Spike, Inc. Utilizing data reduction in steganographic and cryptographic systems
US7188193B1 (en) 2000-01-20 2007-03-06 Sonic Solutions, A California Corporation System, method and article of manufacture for a synchronizer component in a multimedia synchronization framework
US7458091B1 (en) 2000-01-20 2008-11-25 Sonic Solutions, A California Corporation System, method and article of manufacture for a business layer component in a multimedia synchronization framework
US6453420B1 (en) 1999-04-21 2002-09-17 Research Investment Network, Inc. System, method and article of manufacture for authorizing the use of electronic content utilizing a laser-centric medium
US7178106B2 (en) * 1999-04-21 2007-02-13 Sonic Solutions, A California Corporation Presentation of media content from multiple media sources
CA2388565A1 (en) 1999-04-21 2000-10-26 Research Investment Network, Inc. System, method and article of manufacture for updating content stored on a portable storage medium
US20050182828A1 (en) 1999-04-21 2005-08-18 Interactual Technologies, Inc. Platform specific execution
US7448021B1 (en) 2000-07-24 2008-11-04 Sonic Solutions, A California Corporation Software engine for combining video or audio content with programmatic content
US6769130B1 (en) * 2000-01-20 2004-07-27 Interactual Technologies, Inc. System, method and article of manufacture for late synchronization during the execution of a multimedia event on a plurality of client computers
US7346920B2 (en) 2000-07-07 2008-03-18 Sonic Solutions, A California Corporation System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content
US6529949B1 (en) * 2000-02-07 2003-03-04 Interactual Technologies, Inc. System, method and article of manufacture for remote unlocking of local content located on a client device
US6941383B1 (en) 2000-01-20 2005-09-06 Interactual Technologies, Inc. System, method and article of manufacture for java/javascript component in a multimedia synchronization framework
US6681212B1 (en) 1999-04-23 2004-01-20 Nianning Zeng Internet-based automated system and a method for software copyright protection and sales
US6966002B1 (en) 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
US7360252B1 (en) 1999-04-30 2008-04-15 Macrovision Corporation Method and apparatus for secure distribution of software
US20050251686A1 (en) * 1999-06-09 2005-11-10 Andres Torrubia-Saez Methods and apparatus for secure distribution of software
US6877163B1 (en) 1999-06-14 2005-04-05 Sun Microsystems, Inc. Method and system for dynamic proxy classes
US7885899B1 (en) * 2000-02-08 2011-02-08 Ipass Inc. System and method for secure network purchasing
US7366702B2 (en) * 1999-07-30 2008-04-29 Ipass Inc. System and method for secure network purchasing
US7191153B1 (en) * 1999-09-10 2007-03-13 Dphi Acquisitions, Inc. Content distribution method and apparatus
US7188255B1 (en) * 1999-09-23 2007-03-06 Hewlett-Packard Development Company, L.P. Software delivery system
US6745328B1 (en) 1999-10-23 2004-06-01 Lockstream Corporation Encryption using a user-known and personally valuable key to deter key sharing
US6683954B1 (en) * 1999-10-23 2004-01-27 Lockstream Corporation Key encryption using a client-unique additional key for fraud prevention
US6778992B1 (en) 1999-12-21 2004-08-17 Lockstream Corporation Flexible and hierarchical user interfaces defined using a data definition language
US7392481B2 (en) * 2001-07-02 2008-06-24 Sonic Solutions, A California Corporation Method and apparatus for providing content-owner control in a networked device
JP2001211171A (ja) * 2000-01-28 2001-08-03 Advantest Corp 機器認証装置、方法、機器認証プログラムを記録した記録媒体
KR100847596B1 (ko) * 2000-03-02 2008-07-21 소니 가부시끼 가이샤 통신망 시스템, 게이트웨이, 데이터 통신방법과 프로그램제공매체
US20070271191A1 (en) * 2000-03-09 2007-11-22 Andres Torrubia-Saez Method and apparatus for secure distribution of software
CN1241083C (zh) 2000-04-28 2006-02-08 莫尔德弗洛公司 启用网络的应用软件系统和方法
US6789077B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US8001232B1 (en) 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US6789126B1 (en) 2000-05-09 2004-09-07 Sun Microsystems, Inc. Addressing message gates in a distributed computing environment
US7716492B1 (en) 2000-05-09 2010-05-11 Oracle America, Inc. Method and apparatus to obtain service capability credentials
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US6792466B1 (en) 2000-05-09 2004-09-14 Sun Microsystems, Inc. Trusted construction of message endpoints in a distributed computing environment
US6643650B1 (en) 2000-05-09 2003-11-04 Sun Microsystems, Inc. Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US8135796B1 (en) 2000-05-09 2012-03-13 Oracle America, Inc. Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US6763440B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. Garbage collection using nursery regions for new objects in a virtual heap
US6760815B1 (en) * 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
JP4378590B2 (ja) * 2000-10-12 2009-12-09 ソニー株式会社 情報処理装置および情報処理方法、並びにプログラム格納媒体
US7660902B2 (en) * 2000-11-20 2010-02-09 Rsa Security, Inc. Dynamic file access control and management
US20020073312A1 (en) * 2000-12-08 2002-06-13 International Business Machines Corporation Secure electronic software distribution
JP2002189636A (ja) * 2000-12-20 2002-07-05 Sega Corp セキュリティシステム
US20030005302A1 (en) * 2001-03-02 2003-01-02 Scott Searle Theft resistant graphics
US7434067B1 (en) * 2001-04-26 2008-10-07 Palmsource, Inc. Method and system for a security technique for enabling an electronic device to run controlled test applications
WO2002091146A2 (en) 2001-05-09 2002-11-14 Ecd Systems, Inc. Systems and methods for the prevention of unauthorized use and manipulation of digital content
US6549980B2 (en) 2001-07-19 2003-04-15 Dell Pruducts L.P. Manufacturing process for software raid disk sets in a computer system
WO2003021427A2 (en) * 2001-08-29 2003-03-13 Globespanvirata Incorporated Secure access to software functionalities
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US20030070160A1 (en) * 2001-10-04 2003-04-10 International Business Machines Corporation Embedding information in software
US7392517B2 (en) * 2001-10-04 2008-06-24 International Business Machines Corporation Extracting information from software
US7953665B2 (en) * 2001-12-21 2011-05-31 Nokia Corporation Method and system for delivering content to and locking content in a user device
US20030135754A1 (en) * 2002-01-11 2003-07-17 Chaucer Chiu Database expanding system and method
EP1333350A1 (en) * 2002-01-30 2003-08-06 STMicroelectronics Limited Memory security device
EP1333351A1 (en) * 2002-01-31 2003-08-06 Culture. Com. Technology (Macau) Ltd. System and method for electronic file transmission
KR100443621B1 (ko) * 2002-02-25 2004-08-09 주식회사 마크애니 개인용 컴퓨터 기반의 고유 아이디를 이용한 휴대용 정보단말기의 어플리케이션의 인증방법과 이를 이용한 시스템
US7287275B2 (en) 2002-04-17 2007-10-23 Moskowitz Scott A Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth
US7680743B2 (en) * 2002-05-15 2010-03-16 Microsoft Corporation Software application protection by way of a digital rights management (DRM) system
US20040254890A1 (en) * 2002-05-24 2004-12-16 Sancho Enrique David System method and apparatus for preventing fraudulent transactions
US7107461B2 (en) * 2002-06-03 2006-09-12 Sony Computer Entertainment America, Inc. Methods and apparatus for customizing a rewritable storage medium
JP2004046327A (ja) 2002-07-09 2004-02-12 Sony Corp データ記録媒体、プログラム起動方法およびプログラム
US20040039705A1 (en) * 2002-08-26 2004-02-26 Microsoft Corporation Distributing a software product activation key
US7698441B2 (en) * 2002-10-03 2010-04-13 International Business Machines Corporation Intelligent use of user data to pre-emptively prevent execution of a query violating access controls
US6928554B2 (en) * 2002-10-31 2005-08-09 International Business Machines Corporation Method of query return data analysis for early warning indicators of possible security exposures
US7835520B2 (en) * 2003-02-20 2010-11-16 Zoran Corporation Unique identifier per chip for digital audio/video data encryption/decryption in personal video recorders
EP1465092B1 (en) * 2003-04-03 2006-01-18 Culture.com Technology (Macau) Ltd System and method for secure electronic commerce
US7475254B2 (en) * 2003-06-19 2009-01-06 International Business Machines Corporation Method for authenticating software using protected master key
US20050027657A1 (en) * 2003-08-01 2005-02-03 Yuri Leontiev Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers
US8108319B2 (en) * 2003-08-26 2012-01-31 Sony Computer Entertainment America Llc System and method for controlling access to computer readable content using downloadable authentication
US20050066324A1 (en) * 2003-09-22 2005-03-24 Microsoft Corporation Method and system for distributing and installing software
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
US7681046B1 (en) 2003-09-26 2010-03-16 Andrew Morgan System with secure cryptographic capabilities using a hardware specific digital secret
US7788496B2 (en) 2003-10-08 2010-08-31 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf thereof
US7979911B2 (en) 2003-10-08 2011-07-12 Microsoft Corporation First computer process and second computer process proxy-executing code from third computer process on behalf of first process
US8103592B2 (en) * 2003-10-08 2012-01-24 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf of first process
US7761921B2 (en) * 2003-10-31 2010-07-20 Caterpillar Inc Method and system of enabling a software option on a remote machine
US7841533B2 (en) 2003-11-13 2010-11-30 Metrologic Instruments, Inc. Method of capturing and processing digital images of an object within the field of view (FOV) of a hand-supportable digitial image capture and processing system
US7694151B1 (en) * 2003-11-20 2010-04-06 Johnson Richard C Architecture, system, and method for operating on encrypted and/or hidden information
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US7500108B2 (en) * 2004-03-01 2009-03-03 Microsoft Corporation Metered execution of code
US8694802B2 (en) * 2004-04-30 2014-04-08 Apple Inc. System and method for creating tamper-resistant code
US7908477B2 (en) * 2004-07-27 2011-03-15 Seiji Eto System and method for enabling device dependent rights protection
US7849329B2 (en) * 2004-09-01 2010-12-07 Microsoft Corporation Licensing the use of a particular feature of software
US8312431B1 (en) * 2004-09-17 2012-11-13 Oracle America, Inc. System and computer readable medium for verifying access to signed ELF objects
US20060143135A1 (en) * 2004-11-26 2006-06-29 Tucker David M Associating licensing information with software applications
US20060242082A1 (en) * 2004-11-29 2006-10-26 Yanki Margalit Method and system for protecting of software application from piracy
WO2006066052A2 (en) 2004-12-16 2006-06-22 Sonic Solutions Methods and systems for use in network management of content
US7716439B2 (en) * 2005-01-07 2010-05-11 Roland Corporation Data processing system and method with copy protection
US7552429B2 (en) * 2005-04-21 2009-06-23 International Business Machines Corporation Integrated development environment for managing software licensing restrictions
WO2007024782A2 (en) * 2005-08-24 2007-03-01 Pioneer Hi-Bred International, Inc. Compositions providing tolerance to multiple herbicides and methods of use thereof
US8306918B2 (en) * 2005-10-11 2012-11-06 Apple Inc. Use of media storage structure with multiple pieces of content in a content-distribution system
US7555715B2 (en) * 2005-10-25 2009-06-30 Sonic Solutions Methods and systems for use in maintaining media data quality upon conversion to a different data format
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7934214B2 (en) * 2006-03-31 2011-04-26 Lenovo (Singapore) Pte Ltd. Computer implemented method, system and computer program product for controlling software entitlement
US8806586B2 (en) * 2006-04-24 2014-08-12 Yubico Inc. Device and method for identification and authentication
US8224751B2 (en) 2006-05-03 2012-07-17 Apple Inc. Device-independent management of cryptographic information
CN100524333C (zh) 2006-06-13 2009-08-05 正璞科技有限公司 防止非法使用软件的方法
US20090249492A1 (en) * 2006-09-21 2009-10-01 Hans Martin Boesgaard Sorensen Fabrication of computer executable program files from source code
US9246687B2 (en) * 2007-02-28 2016-01-26 Broadcom Corporation Method for authorizing and authenticating data
WO2008112663A2 (en) * 2007-03-10 2008-09-18 Feeva Technology, Inc. Method and apparatus for tagging network traffic using extensible fields in message headers
US20080256596A1 (en) * 2007-04-11 2008-10-16 Seiji Eto System and method for marketing in a device dependent rights protection framework
US8347098B2 (en) * 2007-05-22 2013-01-01 Apple Inc. Media storage structures for storing content, devices for using such structures, systems for distributing such structures
US9311492B2 (en) 2007-05-22 2016-04-12 Apple Inc. Media storage structures for storing content, devices for using such structures, systems for distributing such structures
US7992001B2 (en) * 2007-09-05 2011-08-02 International Business Machines Corporation Preventing execution of software without a dynamically generated key
US8385554B2 (en) * 2007-09-05 2013-02-26 International Business Machines Corporation Preventing execution of pirated software
JP2009201030A (ja) * 2008-02-25 2009-09-03 Nec Corp 携帯電話機およびその制御方法および携帯電話サービス提供システムおよびプログラム
KR101227787B1 (ko) * 2008-09-24 2013-01-29 엔이씨 유럽 리미티드 네트워크를 통해 tv 콘텐츠를 분배하는 방법 및 시스템
US9727850B2 (en) 2010-03-29 2017-08-08 Forward Pay Systems, Inc. Secure electronic cash-less payment systems and methods
US9342825B2 (en) 2010-06-10 2016-05-17 International Business Machines Corporation Software license and installation process management within an organization
EP3362980B1 (en) * 2015-08-27 2022-06-08 Citytaps SAS Resource delivery
US10706164B2 (en) * 2017-09-29 2020-07-07 Intel Corporation Crypto-enforced capabilities for isolation
CN110162937B (zh) * 2018-02-09 2024-02-02 黄冈职业技术学院 基于网络通讯实现计算机软件保护的方法
CN112328975A (zh) * 2020-10-29 2021-02-05 上海金仕达软件科技有限公司 一种产品软件授权管理方法、终端设备及介质

Family Cites Families (15)

* 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
US4433207A (en) * 1981-09-10 1984-02-21 Best Robert M Cryptographic decoder for computer programs
US4471163A (en) * 1981-10-05 1984-09-11 Donald Thomas C Software protection system
FR2523745B1 (fr) * 1982-03-18 1987-06-26 Bull Sa Procede et dispositif de protection d'un logiciel livre par un fournisseur a un utilisateur
JPS59133643A (ja) * 1983-01-19 1984-08-01 Hitachi Ltd プログラムの不正使用防止方法
US4644493A (en) * 1984-09-14 1987-02-17 International Business Machines Corporation Implementing a shared higher level of privilege on personal computers for copy protection of software
JPS61123935A (ja) * 1984-11-20 1986-06-11 Fujitsu Ltd 有償プログラムの管理方式
US4685055A (en) * 1985-07-01 1987-08-04 Thomas Richard B Method and system for controlling use of protected software
JPS63298529A (ja) * 1987-05-29 1988-12-06 Nec Corp 有償プログラムの不正利用防止方法
US4866769A (en) * 1987-08-05 1989-09-12 Ibm Corporation Hardware assist for protecting PC software
US4959861A (en) * 1988-07-13 1990-09-25 Howlette Edward L Security system for computer software
US4932054A (en) * 1988-09-16 1990-06-05 Chou Wayne W Method and apparatus for protecting computer software utilizing coded filter network in conjunction with an active coded hardware device
JPH0319026A (ja) * 1989-06-16 1991-01-28 Nec Corp 有償ソフトウェアチェック方式
JPH0368024A (ja) * 1989-08-08 1991-03-25 Nec Corp プログラムの不正使用防止方式
JPH03266118A (ja) * 1990-03-16 1991-11-27 Nec Corp ソフトウェアの不正利用防止方式

Also Published As

Publication number Publication date
JPH05334072A (ja) 1993-12-17
US5933497A (en) 1999-08-03

Similar Documents

Publication Publication Date Title
US5933497A (en) Apparatus and method for controlling access to software
US5287408A (en) Apparatus and method for serializing and validating copies of computer software
US6643775B1 (en) Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
US5291598A (en) Method and system for decentralized manufacture of copy-controlled software
US5530752A (en) Systems and methods for protecting software from unlicensed copying and use
US5222134A (en) Secure system for activating personal computer software at remote locations
US4796181A (en) Billing system for computer software
US6334189B1 (en) Use of pseudocode to protect software from unauthorized use
US6480959B1 (en) Software system and associated methods for controlling the use of computer programs
Karger et al. Multics security evaluation: Vulnerability analysis
EP0679977B1 (en) Method and apparatus enabling software trial allowing the distribution of software objects
CA1292791C (en) Hardware assist for protecting pc software
US4817140A (en) Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
EP0367700B1 (en) A method of verifying receipt and acceptance of electronically delivered data objects
US5812662A (en) Method and apparatus to protect computer software
US5870467A (en) Method and apparatus for data input/output management suitable for protection of electronic writing data
US5737416A (en) Method and apparatus for enabling trial period use of software products: method and apparatus for utilizing a decryption stub
US20030120938A1 (en) Method of securing software against reverse engineering
US5822771A (en) System for management of software employing memory for processing unit with regulatory information, for limiting amount of use and number of backup copies of software
KR100626920B1 (ko) 파일관리 시스템, 파일관리장치, 파일관리방법 및프로그램 기록매체
US20070074050A1 (en) System and method for software and data copy protection
EP0266748B1 (en) A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
WO1997025675A1 (en) A secure pay-as-you-use system for computer software
WO2001046811A1 (en) Software for restricting other software to be used by the rightful user only and method therefor
US20100228673A1 (en) System and method for using digital strings to provide secure distribution of digital content