JP4187844B2 - 実行可能なコンピュータプログラムを未許可の使用から保護するための方法 - Google Patents

実行可能なコンピュータプログラムを未許可の使用から保護するための方法 Download PDF

Info

Publication number
JP4187844B2
JP4187844B2 JP30062398A JP30062398A JP4187844B2 JP 4187844 B2 JP4187844 B2 JP 4187844B2 JP 30062398 A JP30062398 A JP 30062398A JP 30062398 A JP30062398 A JP 30062398A JP 4187844 B2 JP4187844 B2 JP 4187844B2
Authority
JP
Japan
Prior art keywords
program
computer
billing
user
protection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP30062398A
Other languages
English (en)
Other versions
JPH11203126A (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.)
Xerox Corp
Original Assignee
Xerox 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25503734&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4187844(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Xerox Corp filed Critical Xerox Corp
Publication of JPH11203126A publication Critical patent/JPH11203126A/ja
Application granted granted Critical
Publication of JP4187844B2 publication Critical patent/JP4187844B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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
    • 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/1063Personalisation
    • 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/2135Metering

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータソフトウェアの「海賊行為/著作権(特許権)侵害」と戦うための対抗策に関し、より詳細には、実行可能なコンピュータプログラム(非公式に配布されたプログラムを含む)を未許可の使用から保護するための手法に関する。
【0002】
【従来の技術】
コンピュータソフトウェアの配布には、基本的にソフトウェア著作者又は著作者の権利の承継者(即ち、「サプライヤ(提供者)」)と潜在的なエンドユーザの2つのパーティが関わる。標準商取引では、サプライヤは一般に、商取引で満足のいく収益を得ることに関心を持つが、エンドユーザは通常、指定したソフトウェアを特定のコンピューティング環境で使用する合法な権利を満足なスケジュールで得ることに興味を持つ。例えば小売店、直接販売、通信販売配布、その他を使用する様々な形式化された配布戦略は、これらのパーティの競い合う興味を解決するために発達したが、より一般的な配布技法の多くは、元のソフトウェアに対してはあるとしてもほんの少しの価値を加えたコストを、配布処理に負わせる傾向がある。例えば、ソフトウェアサプライヤはしばしば、ソフトウェアには大きな価値を加えないが、ソフトウェアをエンドユーザに引渡すためのコストに加わるパッケージング及び取扱コストを負う。
【0003】
更に、従来の市販のソフトウェア配布戦略は、ソフトウェアの未許可使用に対する適切な保護を提供することにあまりに頻繁に失敗する。2、3のサプライヤは依然として彼らのプログラム提供に「コピープロテクト」をかけるが、このことは正当なユーザが彼らの個別のニーズ及び好みに応じて彼らのコンピューティングシステムを構成する能力及びバックアップを取る能力を制限するため、この方法は一般的に不人気に陥った。従って、幾つかのソフトウェアサプライヤは内蔵の海賊行為禁止メカニズムの使用を一切断念することを決定し、他のサプライヤはユーザコミュニティで幾分反対が少ない不便な対抗策を採用している。例えば、幾つかのプログラムはホストコンピュータが指定されたポート上でプログラム指定の「ドングル(dongle:ハードウェアキー) 」を有する場合のみ動作するように設計され、他のプログラムはユーザの合法性を検証するのに役立つ質問(プログラムドキュメンテーションの指定のページから情報を要求する質問等)にユーザが正確に返答する場合のみ動作するように設計され、更に他のプログラムはそれらが例えばユーザ名及び/又はアドレスにより「個人用に」された後にのみ動作するように設計される。
【0004】
コンピュータ「シェアウェア」は、標準の市販ソフトウェアよりもより非公式に、またより少ない経費で配布される。シェアウェアが促進する傾向にあるユーザからユーザへの配布処理は、実行可能プログラムが本質的に「1」及び「0」の2進のパターンにより表される無形の情報であるので、現在市販のソフトウェアの配布を支配している直接販売/小売配布モデルよりも、少なくとも論理上では実行可能なコンピュータプログラムの基本的な特性とよりうまく調和する。他のサプライヤは、市販ソフトウェアを配布するための手段としてシェアウェアの可能性を認識したが、ソフトウェアサプライヤの補償期待を強化するための容易に実現される内蔵の保護メカニズムが存在しないため、商業市場でこの配布モデルの効率及び有効性を利用することは難しかった。
【0005】
『IEICEの研究論文/報告書(Transactions of the IEICE)』、E73巻7号(1990年7月)、1133〜1146頁に記載のモリ氏他による「スーパーディストリビューション(超配布):概念及び体系(Superdistribution: The Concept and Architecture)」はこの施行問題について言及するが、ソフトウェアを暗号化することを提案している。しかし、生憎、如何なるユーザによっても使用されるように無制限の配布に陥り易いソフトウェアを暗号化するために平凡な鍵暗号手法が使用されると、ソフトウェアを解読するための鍵も必然的に如何なるユーザにとっても利用可能でなければならない。モリ氏他は、ユーザに重要な内容を漏らす危険性を減らすための厳重な物理的なセキュリティー対策の使用を提案するが、暗号化されたシェアウェアが実行されるであろう全てのホストコンピュータに単一の共通鍵が利用可能でなければならないとすると、最善の状態でもシステムセキュリティは疑わしい。他方、もし複数の鍵が使用されるとすると、ソフトウェアの複数のバージョンが作成及び配布されねばならず、このことはしばしば深刻な不都合をもたらす。また、『日本情報処理協会の研究論文/報告書(Trans. of Information Proc. Soc. of Japan )』、第38巻7号(1997年7月)、1465〜1472頁に記載のモリ氏他による「スーパーディストリビューション(超配布):未来経済のための電子インフラストラクチャ(Superdistribution: An Electronic Infrastructure for the Economy of the Future)」も参照のこと。
【0006】
【発明が解決しようとする課題】
従って、これらのプログラムの無制限の配布及びインストールが容認される場合(即ち、シェアウェア配布モデルが使用される場合)、コンピュータソフトウェアサプライヤが提供する実行可能なコンピュータプログラムの未許可の使用に対して、彼らに適切な保護を与える努力へのコスト有効度が高い対応の必要性が依然として存在する。商用アプリケーションにとっては、プログラム使用権利としてサプライヤが求める価格を潜在的なユーザに伝達すること、ユーザの支払い又は支払約束を登録すること、及びもし支払いが期日までに受け取られない場合、ユーザの使用権利を拒絶又は無効にすることを含む、少なくとも商取引の基本要素を自動的に実行するためのシステムソリューションを有することが好ましい。更に、サプライヤの利益を強要するシステム資源が、ユーザがシェアウェアプログラムを実行することに決めたホストコンピュータへ断続的にのみアクセスする場合でさえも、このソリューションがこれらの機能を実行することは有利であろう。
【0007】
【課題を解決するための手段】
本発明では、前述の目的を達成するために、「保護(プロテクトを掛けられる)シェアウェア」の機能性が、デジタル方式で署名(サイン)されたメッセージ伝送プロトコルにより制御される。シェアウェア内の保護コードは、直接又は間接的にシェアウェアサプライヤにより供給される許可メッセージに応じてシェアウェアの機能性を制御する。これらのメッセージは、全部又は一部をシェアウェアサプライヤにより又はシェアウェアサプライヤの代わりにサプライヤの秘密署名鍵を使用することによりデジタル方式で署名される。一方、シェアウェアはサプライヤのこのデジタル署名のための公開照合鍵を含み、それにより許可メッセージを信用して動作し始める前に、保護コードがそのような全ての許可メッセージを認証することを可能にしている。シェアウェアは、その保護コードを含むシェアウェアが予期された状態であることを適時保証するために実行される保全性自己検査ルーチンを含む。通常、これはコードが変更されていないことの確認と同義であるが、コードはある権限を与えられた(即ち、「予期された」)方法によっては、動的に変更されうるであろうと考えられる。
【0008】
本発明の一態様では、互換性のあるプログラム内蔵コンピュータ上で前記プログラムの少なくとも幾つかの機能的特性を、秘密署名鍵を使用して認可されたパーティによりデジタル方式で署名されたメッセージを前記コンピュータが受信するまで実行することを禁止するステップと、前記プログラムに、前記プログラム内の前記秘密署名鍵のための公開照合鍵へのアクセスを提供するステップと、前記プログラムが予期された状態であることを確認するために前記プログラムの保全性自己検査を実行するステップと、前記コンピュータ上で前記プログラムの前記機能的特性の実行を試験的に認めるために、前記秘密署名鍵を用いてデジタル方式で署名されたメッセージを前記コンピュータに通信するステップと、それを認証するために前記デジタル方式で署名されたメッセージに前記公開照合鍵を当てはめるステップと、前記プログラムが前記予期された状態にあると確認された場合に、前記メッセージの認証に応じて、前記選択されたコンピュータ上で前記機能的特性が実行されることを可能にするステップとを含む実行可能なコンピュータプログラムを未許可の使用から保護するための方法が提供される。
【0009】
【発明の実施の形態】
以下の詳細な説明が添付図面と共に読まれると、本発明の更なる目的及び長所が明らかになるであろう。本発明は特定の実施の形態及び幾つかの潜在的に興味深い拡張を参照しながら以下に詳細に記載されるが、本発明をそれに限定する意図はないことは理解されなければならない。それどころか、意図としては、付随する請求項により定義される本発明の精神及び範囲内の全ての変更、代案及び同等物を含む。
【0010】
ここで図面、特に図1を参照すると、本発明のいくぶん精巧な実施の形態が、単純な商用アプリケーションのための適切な実施を例示するために示される。しかし、より基本的なレベルでは、本発明に従って全体又は一部を保護される実行可能なコンピュータプログラム11が、予め定められた規則に従ってプログラム11のための実行時環境の現在の状態と対話する埋込み保護コードを含むことに気づくであろう。次にこれらの規則は、保護コードが実行時環境の状態における予め定義され認識可能な変化の関数に従って、予め定められたようにプログラム11の機能性の変更をもたらすように選択される。
【0011】
例えば、本発明の比較的簡単な適用においては、許可メッセージがサプライヤにより制御されるコンピュータ等のプログラムサプライヤに信頼されている発信元13から直接又は間接的に受け取られるまで、保護コードは保護プログラム11の機能性を単純に制限するかもしれない。実際には、保護プログラム11と信頼されている発信元13との間の通信チャネルが安全でない可能性があるため、発信元13はプログラムサプライヤに代わって発行する各許可メッセージをプログラムサプライヤの秘密署名鍵を用いてデジタル方式で署名することにより適切に認証する。次に、プログラム11のための保護コードが、受信する全ての一見明らかな許可メッセージの認証を、そのメッセージを信用して動作し始める前に検証することを可能にするために、保護プログラム11はサプライヤの秘密署名鍵のための公開照合鍵を含む。この公開照合鍵は、保全性自己検査により認証されうる。或いは、プログラム11はこの公開照合鍵のためのハッシュ値を含むことができ、このハッシュ値から公開照合鍵を認証するための手段を有することができる。更に、他の既知の認証方法が、サプライヤの公開照合鍵を認証するために使用可能である。
【0012】
理解されるように、保護プログラム11のための保護コードと実行時環境との間の対話は単純な2進関数である必要はない。その代わりとして、保護コードは、実行時環境の予め特定された種々の状態に応じて、プログラム11の漸増的に異なる機能面の実行能力(パフォーマンスケイパビリティ)へのアクセスをユーザに与えうる。更に、保護コードは、時間の関数に従って、及び/又は適切にモニターされる他の如何なる変数の関数に従って、プログラム11のための実行時環境の1つ又は複数の認識可能な状態への応答を変更するようにプログラムされうる。例えば、保護コードは、保護プログラム11が、実時間又は実行時間に関して固定期間有効であった前の許可に従って使用された後、又は所定日の到来時等の予め定められた条件下で、再許可処理で発信元13と通信するようにプログラムされうる。
【0013】
本発明の重要な特徴の一つに従うと、プログラム11のための保護コードが回避又は無効にされる危険性を減らすための対策が講じられる。このために、保護プログラム11は有利なことに、もしプログラム11の保全性が危うくなったことが確認されると、予め定められた対抗策(例えば、保護プログラム11を機能的に禁止する及び/又は信頼された発信元13等のプログラムサプライヤ又はサプライヤのエージェントに警告メッセージを送る)を作動させる保全性自己検査メカニズムを含む。例えば、保護プログラム11は、プログラムコードの現在のバージョンに関する合計を多かれ少なかれランダムに選択された時点で計算し、少しでも矛盾がある場合に適切な対抗策がとられることが可能であるように、算出された其々の合計を予め計算された保全性参照値と比較するためのチェックサムルーチンを含みうる。この保全性自己検査は保護コードのためのフェイルセーフ(危険防止)保護を提供しえないが、自己検査はコード変更攻撃に対して有意義な実利的な障壁を構築するために十分に精巧でありうる。例えば、一連の保全性検査は、最後の保全性検査を除き毎回、この一連の保全性検査の内の次の保全性検査によりモニターされるように実行されることが可能である。理解されるように、このような保全性検査を実行するためのコードは、保護プログラム11内の事実上どこにでも配布型又は非配布型ルーチンとして埋め込まれることが可能である。
【0014】
発信元13による適切に認証された許可メッセージの発行には、少なくとも所定の前提条件への外見上の応諾があることが発信元13に直接又は間接的に通知されることが予め条件づけられうる。従って、このようなプログラムのサプライヤが、予め定められモニター可能な条件に対する外見上の応諾に従ってプログラム使用権利を与える用意ができていればいつでも、本発明は実行可能なコンピュータプログラムを未許可の使用から保護するために使用されることが可能である。完全な応諾保証を提供することは現実的又は実行可能ではありえないであろうが、プログラムサプライヤの利益を適度に保護する充分な信頼性から成る応諾保証は、通常提供可能である。従って、本発明は、彼らのプログラムの使用に対して代価が支払われることに特に関心が高いプログラムサプライヤによるものを含む、シェアウェアソフトウェア配布モデルへのより強い信頼となる。
【0015】
例示される実施の形態の商業面に従うと、デジタル方式で署名された許可メッセージの発信元13は、恐らく他の同様の保護プログラム(図示せず)のサプライヤの利益と共に、保護プログラム11のサプライヤの利益を表す中央請求書作成エージェンシーとして示される。保護プログラム11の潜在的なユーザは、プログラム11の保護された機能へのアクセスを与えられる前に、許可を得るためにこの請求書作成エージェンシー13と交信することを要求されうる。しかし、このような認可前の処理は、あまりに制限が多いことが認められるであろうし、相当数の潜在的なユーザは請求書作成エージェンシー13へ都合のよい多かれ少なかれリアルタイムなアクセスをしないであろうことから、逆効果であると証明されさえするであろう。従って、中央請求書作成エージェンシー13との臨時的な対話のみを必要とする許可処理が好まれる。例えば、請求書作成エージェンシー13との月1回の接触等の定期的に予定された接触を含む処理は、ユーザにとっての不都合の回避とプログラムサプライヤの利益の保護との間の合理的なバランスを確立しうる。
【0016】
プログラム11等の保護プログラムの許可使用を管理する契約条件を確立及び訂正することに関して、プログラムサプライヤにある程度の柔軟性を与えるために、各潜在的なユーザのローカルのコンピューティング環境(即ち、ユーザのホストコンピュータ12又は以下により詳細に記載されるようにコンピュータ12とインターフェース(相互接続)される図2に15で示されるような周辺装置)に、選択されたセットの課金ルーチンを格納するための対策が講じられる。次に、保護プログラム11は、コンピュータ12の標準ディスプレイ装置のインターフェース等を介して、潜在的なユーザにプログラム11の許可使用のためのサプライヤの契約条件を伝達するため、及び適切なメモリにこの申し出に対するユーザの受諾及び/又は拒絶を記録するためのこれらのルーチンの内の予め選択されたものの呼出しを含む。例えば、サプライヤは保護プログラムが30日間無料で使用可能であると指定し、この最初の無料トライアル期間を越えた使用には全て年間50ドル又は先払いの認可料を設定しうる。理解されるように、図2に16で示されるようなクロックは、このような申し出により指定される期間を追跡するために、有すると役立つツールであるが、サプライヤの期待とこのような申し出に対するユーザの受諾は他の方法でも自己定義される。従って、保護プログラム11のあらゆる使用に関するデータが図2の不揮発性ランダムアクセスメモリ(RAM)17等の改竄抵抗性の不揮発性メモリに記録されるように、課金ルーチンの追加的な呼出しが保護プログラム11に含まれる。この使用データは次に、適切な通信リンクを介して、選択されたスケジュールで中央請求書作成エージェンシー13に伝達される。例えば、公衆電話交換回線網を介して請求書作成エージェンシーに使用データを伝達するためには、モデム18が使用されるであろう。
【0017】
或いは、課金処理及び請求書作成機能は、ユーザのコンピュータ12で内的に実行されてもよい。これは、普通のパーソナルコンピュータ又はワークステーションに、承認された課金ルーチンを介さずにはユーザがアクセス不可能な保護されたメモリと共に動作する安全なカーネルを補うことにより実行されることが可能である。このようなソフトウェアの基礎を成す概念に精通しているプログラマは一般に、ソフトウェア内の課金情報に関する限られたタスクを取り扱うための安全な処理を容易に実行できると信じられる。これは当然、本発明を実行することが要求される可能性のあるあらゆる特殊目的用ハードウェアのコスト及び複雑さを減ずる。
【0018】
しかし、図示されるように、保護プログラム11の各潜在的なユーザのコンピュータ12(例えば、パーソナルコンピュータ、コンピュータワークステーション又は他のあらゆるタイプの内部プログラム制御型コンピュータ)は、特殊目的の請求書作成コンピュータ15にインターフェースされる直列又は並列のデータポートを有する。図2に更に詳細に示されるように、この請求書作成コンピュータ15は、不揮発性RAM17、読出し専用メモリ(ROM)22及びある追加的な揮発性又は不揮発性RAM23を含む全てのメモリトランザクションを管理するためにプロセッサ(CPU)21を有する。不揮発性RAM17は使用データを格納し、ROM22は課金ルーチンを格納する。従って、この情報及びRAM23へ書かれるであろうあらゆる「スクラッチパッド」データの未許可の操作を防ぐために、請求書作成コンピュータ15は、このような改竄抵抗性を備えるための既知の手法の何れかを使用して、「改竄抵抗」であるように有利に設計される。クロック16はこの時、この改竄抵抗を利用するために請求書作成コンピュータ15に含まれることが好ましい。他方、モデム18は請求書作成コンピュータ15に内蔵或いは外付けでありうる。内蔵モデムが使用される場合、それは標準の電話インターフェース(図示せず)に適切に接続され、それがアイドル状態であると、電話信号が他の装置(やはり図示せず)へ/からパスすることを可能にするように構成される。実際上は、請求書作成コンピュータ15を「シングルチップ」コンピュータとして実現するために埋込み式プロセッサテクノロジを使用することが、最も経済的でありえる。
【0019】
恐らく、請求書作成コンピュータ15への攻撃は、その秘密署名鍵の漏洩に帰着しうる。しかし、その時でさえ、保護プログラム11は、そのプログラムが請求書作成エージェンシー13から請求書作成コンピュータ15を介して受信する認証証明書上の期限日を、最も最近のデータファイル上の日付けを照合すること等により、その操作環境から推定される日付けと照合することにより、請求書作成コンピュータ15が認識している日付けの不正な操作からそれ自体を保護できる。これらの認証証明書の使用については、以下に更に詳細に記載される。
【0020】
図1に戻ると、請求書作成エージェンシー13と請求書作成コンピュータ15との間の通信は通常、安全でない通信リンクにより伝達される。従って、それらが交換する情報の保全性を保証するために、請求書作成エージェンシー13及び請求書作成コンピュータ15は通常、互いに対して伝送するメッセージに単に其々の秘密署名鍵を用いてデジタル方式で署名するのみでなく、受信時にそれらのメッセージを検証できるように、互いの公開照合鍵に関する事前の知識も有する。
【0021】
もし望まれるならば、ユーザが負っている現時点の又は累算された使用料金、ユーザのアカウントの支払い状況、及びその他に関するデータについて、ユーザが請求書作成コンピュータ15に問い合わせることを可能にするためのソフトウェアプログラム(図示せず)が提供されることが可能である。このプログラムは、独立型プログラム又は保護プログラム11に含まれるユーティリティであってもよい。ユーザは、請求書作成データへの改竄抵抗性の読出し専用アクセス権のみを与えられているので、請求書作成質問プログラムは安全である必要はない。
【0022】
請求書作成エージェンシー13と請求書作成コンピュータ15との間のメッセージの交信の信頼性は、上記のデジタル署名プロトコルにより保証される。しかし、プログラム11のあらゆる保護されたコードを実行する権限をユーザのコンピュータ12に与えることを意図する全てのメッセージを認証するための対策が講じられていない限り、保護プログラム11に対する「送信欺瞞(spoofing)」攻撃が成功する危険性が、依然として存在する。例えば、最善を尽くしてもその動作が予測不可能である請求書作成コンピュータ15の模倣者(図示せず)により、不正な許可メッセージがコンピュータ12に伝達されるかもしれない。先に指摘されたように、請求書作成エージェンシー13のデジタル署名のための公開照合鍵(即ち、サプライヤのデジタル署名)は保護プログラム11の変更のない全てのコピーに容易に埋め込まれる。しかし、この実施の形態では、保護プログラム11は、請求書作成コンピュータ15を介して中央請求書作成エージェンシー13と間接的に通信する。従って、保護プログラム11が、ホストコンピュータ12には請求書作成コンピュータ15からであるように見える許可メッセージを検証するために請求書作成エージェンシーの公開照合鍵を使用することを可能にするために、請求書作成コンピュータ15がホストコンピュータ12へ通信するメッセージの1つ又は複数には、請求書作成エージェンシー13によりデジタル方式で署名された証明書及び同等なものが含まれる。例えば、図示されるように、この証明書は請求書作成コンピュータの秘密署名鍵のための公開照合鍵を保護プログラム11に渡すと同時に、限定された期間の公開照合鍵の有効性を証明する。従って、請求書作成コンピュータ15の請求書作成エージェンシーの証明書が失効するまで、プログラム11は、請求書作成コンピュータ15から受信するデジタル方式で署名されたメッセージを認証するためにこの公開照合鍵を使用することが可能である。
【0023】
一般に、請求書作成エージェンシー13が、請求書作成コンピュータ15によりホストコンピュータ12に伝送される全ての許可メッセージをその都度準備することに積極的に参加することは不必要に能率が悪い。この理由のために、請求書作成エージェンシー13又はプログラムサプライヤが、使用料金の未払い等の理由でプログラム11の保護された機能を使用するためのユーザの許可を終了させることを決定しない限り、請求書作成エージェンシー13は期限満了になっていない証明書は常に有効であることを保証するように、選択され予め定められたスケジュールに従って連続的に期間限定の認証証明書を請求書作成コンピュータ15に発行しうる。この方法論を適応させるために、請求書作成エージェンシー13は、最も最近受信した認証証明書を、必要に応じた使用に備えて格納する。その後、許可メッセージがホストコンピュータ12により受信されると、一見明らかな許可メッセージを信用して、更なる行動を少しでも取る前に、証明書が期限満了になっていないことを確認するために、保護プログラム11は先ず受信したメッセージの認証証明書の期限日をクロック16による現在の日付と照合する。保護プログラム11は有利であることに、プログラム11が開始される度に、及び/又はプログラム11の実行中に定期的に、ホストコンピュータ12が許可メッセージのために請求書作成コンピュータ15と交信することをもたらすためのコードを含み、このことによりユーザの使用権利が無効又は失効されている場合には、プログラム11のための保護をある程度タイムリーに再表明することを保証している。
【0024】
保護プログラム11から請求書作成コンピュータ15への通信は、通常安全でない。この理由のために、請求書作成コンピュータ15は有利であることに、ホストコンピュータ12からプログラム11のために受信する全てのメッセージをエコーして、デジタル方式で署名する。エコーされたメッセージは認証されたチャネルを介して(即ち、請求書作成コンピュータ15によりデジタル方式で署名されるメッセージ内で)ホスト12へ戻されるので、このことは請求書作成コンピュータ15がプログラム11及びコンピュータ12から受信したと信じるメッセージを、プログラム11及びコンピュータ12が自己認証することを可能にする。
【0025】
ソフトウェア11の保護に対する「繰返し」攻撃を妨害するために、保護されたソフトウェア11の管理下で請求書作成コンピュータ15へ送信される各メッセージに、所謂「その場限り情報(nonce) 」等のランダム情報が有益に含まれる。このその場限り情報は、乱数生成ルーチンの使用を介してソフトウェア11により適切に供給される。次に、請求書作成コンピュータ15は、上述のようにプログラム11に戻すために、このランダム情報をエコーバックする。
【0026】
例示される実施の形態においては、使用料金は、請求書作成コンピュータ15により集計される使用データに基づいて、請求書作成エージェンシー13により計算されるので、クレジット(信用貸し)はユーザに対して延長される。従って、不徳なユーザは、使用データが請求書作成エージェンシー13に伝達される前に請求書作成コンピュータ15を破壊することにより、使用料金の支払を避けられうる。この理由のために、請求書作成コンピュータ15は、信用限度をユーザに強制するようにプログラムされてもよい。
【0027】
実行に際しては、請求書作成エージェンシー13は、ユーザのアカウントから支払が受け取られると、デジタル方式で署名されたメッセージで請求書作成コンピュータ15に通知する。これは、請求書作成コンピュータ15がユーザのアカウント上の流動するクレジットバランスを維持することを可能にする。その結果として、ユーザのアカウントから支払われるべき如何なる残高も、クロック16の使用を介して請求書作成コンピュータ15により経年処理(エージング)を行われることが可能である。従って、ホストコンピュータ12上で保護プログラム11を使用する許可のための将来の要求が認められるべきか拒絶されるべきかを決定するために、過失規則が請求書作成コンピュータ15へプログラムされてもよい。思い出されるように、再許可要求を拒絶することはプログラム11の保護された機能を実行するホストコンピュータの能力を効果的に終了させ、従ってプログラムサプライヤの権利を強化するために役立つメカニズムである。
【0028】
望まれるならば、保護プログラム11は、プログラム11の保護された機能の使用のための契約条件について潜在的なユーザと交渉するためのコードを含むことができる。例えば、保護プログラム11は潜在的なユーザにプログラム11の使用のための機能及び価格により区別された複数のセットの契約条件を次々と提示するためのコードを含んでもよく、それにより潜在的なユーザにこれらの「申し出」の何れかを「受諾する」又は何れも受諾しない自由を与える。又は、潜在的なユーザとのこれらの事前の対話のためのコードは、ユーザが選択可能なプログラム11の機能から成る個々に価格付けされたメニューを提供するかもしれない。これらの交渉処理を管理するために請求書作成コンピュータ15により使用される課金ルーチン及び許可プロトコルは、ユーザが選択するであろう異なるオプションを区別するために必要な差別化を提供するように設計されるであろうが、その他の点では、これらの交渉処理は上述の単純な商用アプリケーションと同一の一般原則により管理される。
【0029】
本発明の実施の一形態が、図3〜5に描写される単純化された論理的なフローチャート(これらの処理により交換されるメッセージは破線で描写される)により例示される。理解されるように、請求書作成エージェンシー13はシェアウェアサプライヤのための信頼された代理人であり、従って請求書作成エージェンシー13が複数のシェアウェアサプライヤにサービスしていない限り、シェアウェアサプライヤと同一であると見なされることが可能である。他方、請求書作成コンピュータ15はシェアウェアサプライヤの改竄抵抗力のある代理人であるので、請求書作成エージェンシー13の補助的な役割を果たす(即ち、請求書作成エージェンシーが高い権限を有する)。この概括的なフレームワークに一致する他の実施の形態は、容易にそれら自身を連想させるであろう。例えば、ユーザの行動に対する保護されたシェアウェア11の反応を管理するための権限は、図3に示される実施の形態内でよりも、図1及び図2に示される実施の形態における請求書作成コンピュータ15に、より著しく委任される。異なる設計者は、この管理制御の集中化、又は様々な方面へ委任することの望ましさに関する異なる意見を有するであろう。請求書作成エージェンシー13及び請求書作成コンピュータ15との間に責任の分担に関して大体における同意が存在するならば、同一の請求書作成コンピュータ15及び同一の請求書作成エージェンシー13が、同一の一般的なサポートフレームワークを単にそれらの個々の提供向けに拡張することにより、同一の又は異なるサプライヤによる複数のシェアウェア提供をサービスするために使用されることが可能である。
【0030】
前述のことを考慮すると、本発明は、現存するシェアウェア配布モデルの最も好ましい特性を多く有するが、商用アプリケーションの使用料金を支払われる権利等のプログラムサプライヤの権利をより強力に強化するという利点も有する低コストのソフトウェア配布技法を効果的に提供することが理解されるであろう。
【図面の簡単な説明】
【図1】本発明を商用のシェアウェアに適用するための処理の概略図である。
【図2】図1に示される処理のハードウェアの具体化の概略図である。
【図3】本発明の態様を実行するために(破線により示されるように)請求書作成コンピュータと通信する、保護プログラムのための単純化された論理的なフローチャートである。
【図4】本発明の態様を実行するために(破線により示されるように)保護プログラム及び請求書作成エージェンシーと通信する、請求書作成コンピュータのための単純化された論理的なフローチャートである。
【図5】本発明の態様を実行するために(破線により示されるように)請求書作成コンピュータと通信する、請求書作成エージェンシーのための単純化された論理的なフローチャートである。
【符号の説明】
11 保護プログラム
12 ホストコンピュータ
13 請求書作成エージェンシー
15 請求書作成コンピュータ

Claims (1)

  1. 実行可能なコンピュータプログラムを潜在的なユーザに配布するための方法から独立して、前記プログラムを未許可の使用から保護するための方法であって、前記プログラムは埋め込まれた保護コードを含み、前記保護コードは自己検査ルーチンを含み、
    前記保護コードが、前記ユーザのコンピュータ上で前記プログラムの少なくとも幾つかの機能へ、請求書コンピュータのために請求書エージェンシーが請求書エージェンシーの秘密署名鍵を使用してデジタル方式で署名した許可メッセージを前記コンピュータが受信するまで、アクセスすることを禁止するステップであって、前記保護コードは、前記プログラム内に前記秘密署名鍵のための公開照合鍵を含む、前記禁止するステップと
    記請求書エージェンシーが前記プログラムの使用料金の前記ユーザによる支払状況に応じてデジタル方式で署名した前記許可メッセージを前記請求書コンピュータが前記ユーザのコンピュータに送信するステップと、
    前記保護コードが前記許可メッセージを認証するために前記公開照合鍵を当てはめるステップと、
    前記自己検査ルーチンが前記プログラムが予期された状態であることを確認するステップと、
    前記保護コードが前記プログラムが前記予期された状態にあると確認され、且つ、前記許可メッセージが認証された場合、前記ユーザのコンピュータ上で前記機能へアクセスすることを可能にするステップと、
    を含む、実行可能なコンピュータプログラムを未許可の使用から保護するための方法。
JP30062398A 1997-10-30 1998-10-22 実行可能なコンピュータプログラムを未許可の使用から保護するための方法 Expired - Fee Related JP4187844B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/960,867 US6330549B1 (en) 1997-10-30 1997-10-30 Protected shareware
US960867 1997-10-30

Publications (2)

Publication Number Publication Date
JPH11203126A JPH11203126A (ja) 1999-07-30
JP4187844B2 true JP4187844B2 (ja) 2008-11-26

Family

ID=25503734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30062398A Expired - Fee Related JP4187844B2 (ja) 1997-10-30 1998-10-22 実行可能なコンピュータプログラムを未許可の使用から保護するための方法

Country Status (3)

Country Link
US (1) US6330549B1 (ja)
EP (1) EP0913757A3 (ja)
JP (1) JP4187844B2 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
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
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems 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
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
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
JP4794707B2 (ja) * 1998-11-17 2011-10-19 ソニー株式会社 端末装置、課金システム、データ処理方法
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US7770016B2 (en) 1999-07-29 2010-08-03 Intertrust Technologies Corporation Systems and methods for watermarking software and other media
WO2001010076A2 (en) * 1999-07-29 2001-02-08 Intertrust Technologies Corp. Systems and methods for protecting secure and insecure computing environments using cryptography
EP1531383A3 (en) 1999-07-30 2005-07-27 Intertrust Technologies Corp. Methods and systems for transaction record delivery using thresholds and multi-stage protocol
US7406603B1 (en) 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
US6985885B1 (en) 1999-09-21 2006-01-10 Intertrust Technologies Corp. Systems and methods for pricing and selling digital goods
US6983374B2 (en) * 2000-02-14 2006-01-03 Kabushiki Kaisha Toshiba Tamper resistant microprocessor
GB2359156B (en) * 2000-02-14 2004-10-13 Reuters Ltd Methods of computer programs for and apparatus for providing and accessing digital content
JP2001309099A (ja) * 2000-04-21 2001-11-02 Sharp Corp 画像処理装置およびその管理システム
CN1241083C (zh) * 2000-04-28 2006-02-08 莫尔德弗洛公司 启用网络的应用软件系统和方法
US7693961B2 (en) * 2000-06-30 2010-04-06 Sharp Kabushiki Kaisha Method and system for supplying programs
US6826546B1 (en) * 2000-08-17 2004-11-30 Ideaflood, Inc. Method and system for licensing a copy of a copyright protected work
EP1191421A3 (en) * 2000-09-21 2003-05-07 Matsushita Electric Industrial Co., Ltd. Tamper resistant software protection method with renewable security mechanism
US7581103B2 (en) * 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
US7257844B2 (en) * 2001-07-31 2007-08-14 Marvell International Ltd. System and method for enhanced piracy protection in a wireless personal communication device
GB0215911D0 (en) * 2002-07-10 2002-08-21 Hewlett Packard Co Method and apparatus for encrypting data
JP2004362532A (ja) * 2002-10-25 2004-12-24 Matsushita Electric Ind Co Ltd 透かし挿入装置および透かし取出装置
US7373658B1 (en) 2002-10-25 2008-05-13 Aol Llc Electronic loose-leaf remote control for enabling access to content from a media player
US7647277B1 (en) 2002-10-25 2010-01-12 Time Warner Inc. Regulating access to content using a multitiered rule base
US7315946B1 (en) * 2003-04-14 2008-01-01 Aol Llc Out-of-band tokens for rights access
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US6883706B2 (en) * 2003-05-05 2005-04-26 International Business Machines Corporation Point-of-sale bill authentication
US7797192B2 (en) * 2003-05-06 2010-09-14 International Business Machines Corporation Point-of-sale electronic receipt generation
US6967565B2 (en) * 2003-06-27 2005-11-22 Hx Lifespace, Inc. Building automation system
EP1730619B1 (en) 2004-04-02 2011-05-11 Panasonic Corporation Unauthorized contents detection system
US7340610B1 (en) * 2004-08-31 2008-03-04 Hitachi, Ltd. Trusted time stamping storage system
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US7702110B2 (en) * 2005-06-02 2010-04-20 Xerox Corporation Electronic document protection system and method
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
JP4556857B2 (ja) * 2005-12-07 2010-10-06 セイコーエプソン株式会社 情報配信装置、情報配信装置の制御方法および制御プログラム
US7991902B2 (en) * 2006-12-08 2011-08-02 Microsoft Corporation Reputation-based authorization decisions
US20080148061A1 (en) * 2006-12-19 2008-06-19 Hongxia Jin Method for effective tamper resistance
US20090189441A1 (en) * 2008-01-29 2009-07-30 Paul Degoul Distributed electrical/electronic architectures for brake-by-wire brake systems
US20110184829A1 (en) * 2010-01-22 2011-07-28 Kher Amod A Dental products distribution system
JP5704322B2 (ja) * 2011-03-10 2015-04-22 セイコーエプソン株式会社 画像生成装置、プロジェクターおよび画像生成方法
CN103365675A (zh) * 2012-04-02 2013-10-23 鸿富锦精密工业(深圳)有限公司 试用软件处理系统及方法
US8743382B2 (en) 2012-06-28 2014-06-03 Xerox Corporation On demand software for print workflows

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software
US4740890A (en) * 1983-12-22 1988-04-26 Software Concepts, Inc. Software protection system with trial period usage code and unlimited use unlocking code both recorded on program storage media
US5010571A (en) 1986-09-10 1991-04-23 Titan Linkabit Corporation Metering retrieval of encrypted data stored in customer data retrieval terminal
US4827508A (en) 1986-10-14 1989-05-02 Personal Library Software, Inc. Database usage metering and protection system and method
US5050213A (en) 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4977594A (en) 1986-10-14 1990-12-11 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
US4796220A (en) * 1986-12-15 1989-01-03 Pride Software Development Corp. Method of controlling the copying of software
US5005200A (en) * 1988-02-12 1991-04-02 Fischer Addison M Public key/signature cryptosystem with enhanced digital signature certification
US5247575A (en) 1988-08-16 1993-09-21 Sprague Peter J Information distribution system
US5222134A (en) * 1990-11-07 1993-06-22 Tau Systems Corporation Secure system for activating personal computer software at remote locations
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5235642A (en) * 1992-07-21 1993-08-10 Digital Equipment Corporation Access control subsystem and method for distributed computer system using locally cached authentication credentials
AU678985B2 (en) * 1992-09-21 1997-06-19 Uniloc Corporation Pty Limited System for software registration
US5625690A (en) * 1993-11-15 1997-04-29 Lucent Technologies Inc. Software pay per use system
US5553143A (en) 1994-02-04 1996-09-03 Novell, Inc. Method and apparatus for electronic licensing
US5586186A (en) * 1994-07-15 1996-12-17 Microsoft Corporation Method and system for controlling unauthorized access to information distributed to users
EP0717337B1 (en) * 1994-12-13 2001-08-01 International Business Machines Corporation Method and system for the secured distribution of programs
US5754761A (en) * 1995-03-06 1998-05-19 Willsey; John A. Universal sofeware key process
US6141652A (en) 1995-10-10 2000-10-31 British Telecommunications Public Limited Company Operating apparatus
US5708709A (en) * 1995-12-08 1998-01-13 Sun Microsystems, Inc. System and method for managing try-and-buy usage of application programs
GB9608696D0 (en) 1996-04-26 1996-07-03 Europ Computer Ind Res Electronic copy protection mechanism
US5982892A (en) * 1997-12-22 1999-11-09 Hicks; Christian Bielefeldt System and method for remote authorization for unlocking electronic data

Also Published As

Publication number Publication date
US6330549B1 (en) 2001-12-11
JPH11203126A (ja) 1999-07-30
EP0913757A3 (en) 2000-02-02
EP0913757A2 (en) 1999-05-06

Similar Documents

Publication Publication Date Title
JP4187844B2 (ja) 実行可能なコンピュータプログラムを未許可の使用から保護するための方法
Yuan et al. Shadoweth: Private smart contract on public blockchain
US7742992B2 (en) Delivery of a secure software license for a software product and a toolset for creating the software product
White ABYSS: ATrusted Architecture for Software Protection
EP1224516B1 (en) Trusted computing platform for restricting use of data
US7680743B2 (en) Software application protection by way of a digital rights management (DRM) system
US7103574B1 (en) Enforcement architecture and method for digital rights management
JP4406190B2 (ja) デジタル権管理(drm)システムを有するコンピューティングデバイスのセキュアビデオカード
US7383205B1 (en) Structure of a digital content package
JP3703095B2 (ja) ディジタル・エンコードされた製品の使用を制御する方法
US7051005B1 (en) Method for obtaining a black box for performing decryption and encryption functions in a digital rights management (DRM) system
US7305366B2 (en) Content revocation and license modification in a digital rights management (DRM) system on a computing device
US7996669B2 (en) Computer platforms and their methods of operation
US7680744B2 (en) Method for interdependently validating a digital content package and a corresponding digital license
US8065521B2 (en) Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US7024393B1 (en) Structural of digital rights management (DRM) system
US20030149670A1 (en) Method and system for delivery of secure software license information
US20060106845A1 (en) System and method for computer-based local generic commerce and management of stored value
US20060167814A1 (en) Enforcement architecture and method for digital rights management
JP2003500722A (ja) 情報保護方法および装置
CN112364305B (zh) 基于区块链平台的数字内容版权保护方法和装置
Wilhelm et al. A pessimistic approach to trust in mobile agent platforms
WO1997025675A1 (en) A secure pay-as-you-use system for computer software
KR20010038207A (ko) 컴퓨터 프로그램 온라인 유통 방법
CN112699344A (zh) 基于区块链的软件授权方法、激励方法和授权交易方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080606

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080812

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080910

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees