JP4870937B2 - ソフトウエアのアップデートを制限する方法およびシステム - Google Patents

ソフトウエアのアップデートを制限する方法およびシステム Download PDF

Info

Publication number
JP4870937B2
JP4870937B2 JP2005092511A JP2005092511A JP4870937B2 JP 4870937 B2 JP4870937 B2 JP 4870937B2 JP 2005092511 A JP2005092511 A JP 2005092511A JP 2005092511 A JP2005092511 A JP 2005092511A JP 4870937 B2 JP4870937 B2 JP 4870937B2
Authority
JP
Japan
Prior art keywords
software
test
client
computer
client computer
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
JP2005092511A
Other languages
English (en)
Other versions
JP2005316974A (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005316974A publication Critical patent/JP2005316974A/ja
Application granted granted Critical
Publication of JP4870937B2 publication Critical patent/JP4870937B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

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

Description

本発明は、一般に、コンピュータソフトウエアのセキュリティの分野に関する。より詳細には、本発明は、海賊版ソフトウエアまたはライセンスを受けていないソフトウエアの検出に関する。
ソフトウエアの海賊行為は、ソフトウエア製造業者の重大な懸念である。金銭収入が大きく減っているのは、市販されているソフトウエア製品の不正コピーおよび不正使用に起因すると考えられる。ソフトウエア製品は、数多くの形態で保護することができる。普及している1つの形態は、ソフトウエア製品内に埋め込まれたコードを使用することである。このようにコードを埋め込むことによって、不正にコピーされたコードは一般に、動作させることが難しくなる。これらのタイプのソフトウエアベースのコードによる保護は、熟練していないソフトウエア盗用者の活動を阻止するには有用であるが、熟練したソフトウエアハッカーにとっては、このような保護では、たかだかその活動のペースを落とさせるだけである。実際、ソフトウエアハッカーは、コードを解析・模倣してパッチその他の回避方法を考案し、それによってソフトウエアベースの保護に打ち勝つことができる助けとなるいくつかの市販のツールが、インターネット上で入手可能である。したがって、現在利用可能なソフトウエアベースのコードによる保護によっては、市販ソフトウエアの不正使用を防止する効果はますます薄くなりつつある。しかし、ソフトウエアベースのコードによる保護は、ある程度のレベルで海賊行為から確かに保護する働きをしており、ある種のソフトウエア海賊行為予備軍に対しては効果的である。
そのため、ソフトウエアコードによる保護の概念のてこ入れをし、コードを解析・模倣しこれらの保護を阻害する頭のよい盗用者の問題に対処するための、盗用者からソフトウエアを保護する技術が必要とされている。本発明は、本明細書に記載するさらなる利点によって、上記要求に対処し、それらの問題を解決する
海賊版ソフトウエアを検出する方法は、クライアントコンピュータからのソフトウエアアップデート要求を受け取るステップと、このクライアントコンピュータに実施すべきテストを提供するステップとを含む。このテストは、クライアントコンピュータ上で、クライアントソフトウエアアプリケーションに対して実施する。このテストの結果、クライアントコンピュータは、ソフトウエアのアップデートを拒否されることがあり、それによって、ソフトウエアの盗用が広がるのを阻止することができる。
本発明の一態様によれば、クライアントは、サーバにソフトウエアのアップデート要求を出し、サーバはクライアントにテストコードを送信し、クライアントはこのコードを実行し、その結果をサーバに送出する。サーバは、この結果を評価し、このテストによりサーバがクライアントのソフトウエアが本物であるかどうかを検証することに基づいて、ソフトウエアのアップデート要求を許可または拒否する。サーバを使用しない環境では、アップグレードを要求するクライアントコンピュータにCDからテストを提供することができる。アップグレード要求の許可または拒否は、クライアントコンピュータによってソフトウエアアプリケーション上で実施される完全性テストの合格または不合格にそれぞれ基づいて行われる。
上記概要ならびに好ましい実施形態の以下の詳細な説明は、添付の図面を併せ読むことによりよく理解されるだろう。本発明の実施形態を例示するために、これらの図面に本発明の構成の例を示す。ただし、本発明は、ここで開示する特定の方法および手段に限定されるものではない。
概要
アプリケーションに付加された海賊行為防止コードを用いることによって、ソフトウエアベースの海賊行為防止技術を有利に利用して、使用中のソフトウエアが本物のライセンスを受けたものであるかどうかを識別する助けとすることができる。ソフトウエアの盗用者は、ソフトウエアベースの保護を改変し無効にしてこれらの保護方式を欺き、それによってこのアプリケーションを使用可能にする。
本発明の一つの態様は、コードの完全性が疑わしいことを示す結果が戻されるように、アプリケーション上でこの疑わしいコードに対してテストが実施される場合に、このような海賊版アプリケーションに対する正当なアップデートを拒否できることである。ソフトウエアベースの海賊行為保護などのアイテムが適切に存在し、かつ/または適切に機能していることをテストすることによって、存続可能なライセンスの正当性に関する評価を行うことができる。疑わしいアプリケーションをホスティングするクライアントコンピュータによって実施されたテストが不合格になった場合、このコードは改変されたものである可能性があり、まず間違いなく、正しいライセンスを受けたものではない。このような状態の下では、ソフトウエアのアップデートを拒否することができ、それによって、海賊版コードをアップグレードし続けることを妨げることができる。先々のアップグレードを妨げることにより、最終的には海賊版ソフトウエアが旧版になり、したがって、ソフトウエアの盗用版の有用性は少なくなる。
消費者に販売されるソフトウエアアプリケーションに設けられるソフトウエアベースの保護に対する攻撃には、3つの主なカテゴリーがある。第1のカテゴリーは、データ攻撃と呼ぶことができるものである。この攻撃では、制限を超える状態を感知することの基礎になるデータを変更することによって、ソフトウエアによる保護の仕組みの裏をかく。例えば、試用版など、ユーザのマシンにインストールされるソフトウエアアプリケーションが、1週間または1ヵ月間有効である場合、ソフトウエアによる保護の仕組みにより、1週間または1ヶ月の有効期限が過ぎると、このアプリケーションにアクセスはできなくなる。この保護の裏をかく一方法は、ソフトウエア保護コードを入力し、タイマ情報(データ)を除去するか、または他の方法で改ざんして、期限切れに到達させないことである。このように、盗用者は、期間が制限された試用アプリケーションソフトウエアライセンスを取得し、このライセンス期間を不正に無限に延長する。よく用いられる別の技法は、試用ソフトウエアをブートするたびに、この試用ソフトウエアのタイマをゼロにリセットすることである。このように、仮ライセンス期間を不正に延長する。こうした種類の攻撃をデータ攻撃と呼ぶことがある。
ソフトウエアベースの盗用防止の仕組みに対する第2のカテゴリーの攻撃は、バイナリパッチ(birany patch)と呼ぶことができるものである。このよく用いられる技法は、ソフトウエア盗用者が、海賊版アプリケーションが機能し続けるように、その中で働くコードを生成するというものである。なぜなら、コードパッチにより、ライセンステストパラメータが裏をかかれるからである。例えば、ライセンス版ソフトウエアが、所与の期間で期限切れになる場合、あるいは、他のなんらかのライセンス存続可能性テストが用いられる場合、盗用者は、ソフトウエアパッチを使用して、ライセンスが失効したときでも、テストの状態を常にライセンスされている状態に設定することができる。このタイプの攻撃をバイナリ攻撃と呼ぶことがある。
ソフトウエアベースの盗用防止保護に対する第3のタイプの攻撃は、バイパスキー(bypass key)の漏洩と呼ぶことができるものある。このタイプの攻撃では、通常、ソフトウエアアプリケーションのサイトライセンスとして企業に与えられるマルチユーザキーを改変し、それによって不正なキー所有者が、所望のソフトウエアアプリケーションのコピーを入手することができる。この一例は、このキーを正当に購入した企業の外部の人間に、このバイパスライセンスキーを販売して拡散させることであろう。この漏洩キーおよび製品識別子が他人に渡ると、それらを用いることで、所望のソフトウエアの動作版を入手することができる。
一般に、バイパスキー漏洩タイプの攻撃が発見された場合、このバイパスキーを変更することができ、古いキーを用いても、海賊版ソフトウエアへのアップグレードが拒否される。現在、このタイプの攻撃の解決策は、当技術分野では周知のものである。しかし、データタイプの攻撃およびバイナリタイプの攻撃を検出しそれに打ち勝つことは、それほど簡単ではない。
データタイプおよびバイナリタイプの攻撃は、盗用されたアプリケーションのソースコードに対してテストを実行することによって検出することができる。これらのテストにより、このソースコードが、製造業者によって最初に配給されたコードと同じであることが明らかになれば、テストされたアプリケーションプログラムは、存続可能とみなすことができる。しかし、アプリケーションコードが、製造業者によって配給されたものと異なる場合、このコードは改変されている可能性がある。コードの改変は合法であることもあるし、改変されたコードは、海賊版コードを示している改ざんを示すこともある。
製造業者の当初の製品と一致しないアプリケーションソフトウエアコードは、この製造業者から本物のアップデートを取得する通常のプロセスの結果であることがある。これらのアップデートは一般に、新しいバージョン、あるいはこのアプリケーションに適用されるサービスパックアップデートとして、このアプリケーションに反映される。そのため、アプリケーション上で示されるバージョンまたはソフトウエアサービスパックに応じて、ソフトウエアアプリケーションコードの様々なテストが必要になり得る。アプリケーションソフトウエアの成熟レベルに応じて、巡回冗長符号検査、チェックサム、またはハッシュ値などのテストを適用しなければならない。
アプリケーションソフトウエアの完全性を判定するために実施できる別のタイプのテストは、ソフトウエアアプリケーション内の隠しコードを実行することである。アプリケーションソフトウエア内に隠されたコードは、アプリケーションの実用性の点では遊んでいることがあるが、完全性テストが望まれる場合に活動化させることができる。別のソフトウエアベースの盗用防止手段では、アプリケーションソフトウエアに様々なデジタル署名を挿入することができる。デジタル署名が不成功になることは、盗用者に対してライセンス許可が延長されるようにアプリケーションコードが改変された可能性があることを示し得る。本発明の一態様においては、アプリケーションソフトウエアに対して、そのライセンスの完全性を判定するテストをオンラインで実施できる。
図1は、本発明の態様を実施できるネットワーク構成100を示す。この構成では、ネットワーク20は、クライアントコンピュータA30、クライアントコンピュータB40、およびクライアントコンピュータC50をネットワークサーバ10に相互接続する。1つのサーバおよび3つのクライアントしか示していないが、図1の構成は単なる例であり、サーバの数を増やすこともできるし、同様に、クライアントコンピュータの数を増減することもできる。このネットワーク構成においては、サーバ10は、要求された時に、クライアントコンピュータ30、40、および50にソフトウエアのアップデートを提供できるサーバとして指定できる。
好ましい実施形態においては、クライアントコンピュータ30、40、または50は、サーバ10と交信して、クライアントコンピュータ上に常駐するソフトウエアアプリケーションのアップグレードを要求するのが好ましい。サーバ10は、要求されたアップグレードを提供できる。本発明の一つの態様においては、サーバ10は、クライアントソフトウエアアプリケーション用の完全性テストコードを提供することもできる、このコードは、クライアントマシンに転送し、そこで実行することができる。次いで、クライアントコンピュータA30、B40、およびC50は、テスト結果をサーバ10に送り返して評価を受ける。この評価結果により、クライアントが海賊版ソフトウエアを実行している可能性に基づいて、クライアントがソフトウエアアプリケーションアップグレードにアクセスすることを許可するか、あるいは、アップグレード要求を拒否するかを判定できる。
図2は、本発明の態様を組み込んだ方法の例である。少なくとも1つのクライアントおよび1つのサーバを含むシステムでは、クライアントコンピュータが、クライアントソフトウエアアプリケーションのアップデート要求を生成し送信することによって、この方法は開始される(ステップ210)。サーバは、このソフトウエアアップデート要求を受信し、クライアントコンピュータにテストを送信することによって応答する(ステップ220)。本明細書で論じるように、このテストは、アップデート要求の対象であるクライアントソフトウエアアプリケーションが、正規のものであるかどうかを検出するように設計されたものである。クライアントコンピュータに送信されるテストは、要求された特定のソフトウエアアップデート、ならびにクライアントコンピュータ上で利用可能なバージョンまたはサービスパックアップグレードに関する情報に応じて適合される。そのため、本発明の一実施形態においては、ソフトウエアアップグレード要求を受信した後で、サーバとクライアントの間で一連の問い合わせ(query)がなされ、それによって、サーバは、より詳細にアップグレードの範囲を確認し、クライアントコンピュータ上で利用可能なソフトウエア製品およびバージョンを識別することができる。
サーバは、いずれのタイプの、いずれのバージョンのソフトウエアアプリケーションアップデートが要求されているかを判定した後で、対応するテストコードをクライアントコンピュータに送信する(ステップ220)。クライアントコンピュータは、このテストコードを受信し、次いで、それを実行することができる(ステップ230)。このテストコードが実行されると、クライアントソフトウエアアプリケーションが検査され、その全体的な完全性についてテストが行われる。このテストは、クライアントのソフトウエアの一部を実行して、このコードが改ざんされていないか、また、コードがその他の点でライセンス切れになっていないかを判定するように設計することができる。コードの改変は、海賊行為が行われていることを示すことができる。同様に、コードのライセンス付与に関わるデータ(タイマ情報など)が改変されている可能性もあり、この場合も、不正な使用が行われていることを示すことができる。
この実行可能なテストは、クライアントコンピュータ内で実行されるので、クライアントソフトウエアコードのあらゆる面にアクセスすることができ、それによって、この対象ソフトウエアアプリケーションがアップデートの許容範囲内にあるかどうかを見極めることができる。本発明の一態様は、クライアントコンピュータの外部のソースを介して、例えばサーバによって、このようなテストコードを提供することである。このことにより、いかなるクライアントベースのコードも、クライアントソフトウエアアプリケーションの完全性を検証するために実行されるテストのタイプを予測することができない。その結果、クライアントソフトウエアアプリケーションを改変したソフトウエア盗用者は、おそらくはこのソフトウエアアプリケーションのライセンス制限を打ち負かそうとする際の行動をすべて隠すことができなくなる。この実行可能なテストがクライアントコンピュータ上で実行された後で、この完全性テストの結果はサーバに提供される(ステップ240)。次いで、サーバはこのテスト結果の処理を開始する(ステップ250)。
他の実施形態として、クライアントはアップデート要求を送信し(ステップ210)、(点線を通って)サーバはこの要求を受信することができる(ステップ221)。サーバは、クライアントのソフトウエアの完全性を検証する最も適切なテストを決定することができる。上記で述べたように、サーバに対してアップグレード要求がなされた後で、サーバとクライアントの間で一連の問い合わせ(query)が行われ、それによって、サーバが、より詳細にアップグレードの範囲を確認し、クライアントコンピュータ上で利用可能なソフトウエア製品およびバージョンを識別することができる。サーバによって適切な完全性テストが決定されると、サーバ自身が、この完全性テストを実行することができる(ステップ231)。
ステップ231を通る経路を用いると、テスト結果の処理は広範なものになり、ステップ240を通る経路を用いると、テスト結果の処理は比較的直接的なものになり得る(ステップ250)。広範な処理においては、CRC、チェックサム、ハッシュ値、デジタル署名、隠し実行可能プログラムその他のテスト方法の処理を行い、それらの結果と、基準値および許容差とを比較して、テストの合格・不合格を判定することができる。クライアントアプリケーションソフトウエアに対して実施されるテストにより、合格または不合格のステータスがもたらされ、このステータスおよび/またはデータをサーバに送り返すことも可能である。いずれの場合でも、ステップ260で、合格または不合格について処理結果を検査することがきできる。
この結果が、テストに不合格にならなかったことを示し、その結果、クライアントソフトウエアアプリケーションが本物とみなされる場合、要求されたクライアントソフトウエアアップデートを提供する権限がサーバに与えられる(ステップ280)。テストに不合格だった場合には、このソフトウエアの完全性は、まず間違いなく損なわれており、要求されたソフトウエアアプリケーションのアップデートは拒否される(ステップ270)。
一実施形態においては、クライアントソフトウエアアプリケーションの完全性をテストするためにサーバからクライアントに提供されるテストは、時間ゼロの情報とともに、暗号化されたPID(製品識別子)またはPkey(プロダクトキー)、あるいはPID/Pkeyの組合せを、サーバに送信することを含むことができる。このサーバは例えば、米国ワシントン州Redmond所在のMicrosoft(登録商標)社から入手可能なWindows(登録商標)アップデートサーバとすることができる。サーバが、N回(例えば、N<100)以上の回数にわたって、同じPID/Pkeyの組合せに対して異なる時間ゼロを受け取る場合、2つ以上のマシンが同じPID/Pkeyを使用していると結論づけることができる。このような状況下では、このクライアントソフトウエアアプリケーションは、ライセンス外で動作しているとみなすことができ、上記で説明したように、ソフトウエアのアップデートを拒否することができる。
別の実施形態においては、ソフトウエアに基づいてライセンスを実施することを、クライアントソフトウエアアプリケーションに組み込むことができる。対応するAPI(アプリケーションプログラミングインターフェース)を、クライアントソフトウエアアプリケーションとともに出荷される様々なバイナリファイルに実装することができる。クライアントに送信されるテストプログラムをクライアントコンピュータ上で実行し、このテストプログラムが、これらのAPIを呼び出して、特定のクライアントソフトウエアアプリケーションについての情報を取得し、この情報をサーバに送信することができる。この同じテストプログラムが、バイナリ選択されたバイナリファイルのハッシュ値を計算し、これらをアップデートサーバに送信することもできる。次いで、これらのハッシュ値と、サーバ側のテーブルにある有効なバイナリハッシュ値とを比較する。これらのハッシュ値が一致しない場合、高い確率で、このバイナリファイルにパッチが当てられているか、あるいは、このバイナリファイルは、ソフトウエア製造業者が意図しないなんらかの方法で改変されている。この実施形態においては、ソフトウエア製造業者によって正規のソフトウエアアップグレードまたはサービスパックアップデートが公開されるたびにハッシュテーブル内のエントリを更新する仕組みを、アップデートサーバの内部または外部に設けることができる。
別の実施形態においては、XrMLライセンスファイルなどのアクティブなライセンスファイルのハッシュ値または実際の値をアップデートサーバに送信することができる。これらのアクティブなライセンスファイルまたはXrMLライセンスは、変更が生じる可能性が低いので、アップデートサーバに送信するバイナリファイルの更新されるハッシュ値の更新回数を少なくすることができる。
別の実施形態においては、アップデートを要求された場合、クライアントソフトウエアアプリケーション自体の中でハートビートシーケンス(heart−beat sequence)を生成できる自己評価機構を、アップデートサーバによって探査することができる。アップデートサーバは、このハートビートシーケンスの検出またはそのテストを行うことができ、このシーケンスの正当性を確認することができる。この正当性の確認に基づいて、上記で説明したように、要求されたアップデートを提供または拒否することができる。
別の実施形態においては、実際のバイパスライセンスキーを安全にアップデートサーバに送信し、次いで、完全性テストにより、この本物のキーと、クライアントコンピュータ上に存在するバイパスライセンスキーとを比較することができる。このようにして、アップデートサーバは、ライセンスキーをテストし、偽のバイパスライセンスキーを使用しているクライアントコンピュータを識別することができる。さらに、偽物のプロダクトキーを検出し、本物のプロダクトキーと区別して、海賊版クライアントソフトウエアを識別することができる。
ネットワークを使用しない本発明の実施形態においては、上記で説明したサーバ側認証機構を、本発明におけるクライアントにより実行されるテストとして使用することができ、また、署名されたバイナリファイルに統合することもできる。このバイナリファイルは、CDの形で出荷されるオフラインソフトウエアパッケージのインストーラと統合することができる。この実施形態においては、顧客は、ソフトウエアに対するアップデートを含むCDを購入することになる。CD上のこのインストーラは、アップグレードおよび/または新しいアップデートの適用前に、認証機構を呼び出して、クライアントマシン上にすでにインストールされているクライアントソフトウエアを検証することができる。テストの仕組みを備えたCDが、クライアントコンピュータに、完全性が損なわれたアプリケーションが含まれることを検出した場合、このアプリケーションのアップデートは拒否されることになる。このテストの仕組みが、クライアントソフトウエアアプリケーションが本物であることを検出した場合、このアプリケーションに対するアップデートが提供されることになる。
コンピューティング装置の例
図3および以下の考察は、本発明の実施形態を実施しできる適切なコンピューティング環境を、簡単かつ全体的に説明するためのものである。以下、汎用コンピュータを説明するが、これは一例であり、ネットワーク/バスによる相互運用および相互作用が可能なクライアントなど、他のコンピューティング装置で本発明の実施形態を実施することができる。そのため、本発明の実施形態は、関与するクライアントリソースが極めて少ない、または最小限であるネットワーク化されたホストサービス環境で実施できる。このような環境は、ネットワーク/バスへのインターフェースとして働くネットワーク化された環境である。例えば、クライアント装置が単に、機器内に設けられたオブジェクト、または他のコンピューティング用の装置およびオブジェクトなどがある。本質的には、データを記憶させることができ、また、データを取り出すことができる場所ならどこでも、望ましいまたは適切な動作環境になる。
要件ではないが、本発明の実施形態は、装置またはオブジェクト用のサービスの開発者が使用し、かつ/または、アプリケーションソフトウエアに含まれるオペレーティングシステムによって実施することもできる。ソフトウエアは、クライアントワークステーション、サーバその他の装置など、1つまたは複数のコンピュータによって実行されるコンピュータが実行可能な命令、例えばプログラムモジュールの一般の状況において説明できる。一般に、プログラムモジュールは、特定のタスクを実施し、また特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、これらのプログラムモジュールの機能は、様々な実施形態において、所望のとおりに組み合わせるか、あるいは分散させることができる。さらに、当業者には、他のコンピュータ構成によって本発明の様々な実施形態を実施できることが理解されよう。使用に適した他の周知のコンピューティングシステム、環境、および/または構成には、PC(パーソナルコンピュータ)、現金自動預入払出機、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な民生用電子機器、ネットワークPC、機器、光源、環境制御要素、ミニコンピュータ、大型コンピュータなどが含まれるが、これらに限定されるものではない。本発明の実施形態は、通信ネットワーク/バスその他のデータ送信メディアを介して接続された遠隔処理装置によってタスクが実施される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含めて、ローカルおよびリモートコンピュータ記憶メディアに配置することができ、クライアントノードは、サーバノードとして挙動することができる。
図3は、本発明の実施形態を実施できる適切なコンピューティングシステム環境の実施例700を示す。ただし、上記で明確にしたように、コンピューティングシステム環境700は、適切なコンピューティング環境の単なる1つの例であり、本発明の実施形態の利用法または機能の範囲に関していかなる制限も示唆するものではない。また、コンピューティング環境700を、動作環境の実施例700に示すコンポーネントのいずれか1つまたはそれらの組合せに関係する依存性または要件を持っていると解釈すべきではない。
図3を参照すると、本発明の実施形態を実施するシステムは、コンピュータシステム710の形態で汎用コンピューティング装置を含む。コンピュータシステム710のコンポーネントは、処理装置720と、システムメモリ730と、システムメモリを含めて様々なシステムコンポーネントを処理装置720に接続するシステムバス721を含むことができるが、これらに限定されるものではない。システムバス721は、メモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含めて、様々なバスアーキテクチャのいずれかを利用するいくつかのタイプのバス構造のいずれかとすることができる。例を挙げると、このようなアーキテクチャには、ISA(業界標準アーキテクチャ)バス、MCA(マイクロチャネルアーキテクチャ(Micro Channel Architecture))バス、EISA(拡張ISA)バス、VESA(ビデオ電子規格協会)ローカルバス、および(メザニン(Mezzanine)バスとしても知られる)PCI(ペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect))バスが含まれるが、これらに限定されるものではない。
コンピュータシステム710は一般に、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータシステム710がアクセスできる任意の利用可能な媒体とすることができ、揮発性および不揮発性メディア、リムーバブルおよび非リムーバブルメディアをともに含む。例を挙げると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含み得るが、これらに限定されるものではない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールその他のデータなどの情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性メディア、リムーバブルおよび非リムーバブルメディアを含む。コンピュータ記憶媒体は、RAM(ランダムアクセスメモリ)、ROM(読出し専用メモリ)、EEPROM(電気的に消去可能なプログラマブル読出し専用メモリ)、フラッシュメモリその他のメモリ技術、CDROM(コンパクトディスク型読出し専用メモリ)、CDRW(再書込み可能なコンパクトディスク)、DVD(デジタル多用途ディスク)その他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置その他の磁気記憶装置、あるいは所望の情報を記憶するのに使用することができ、かつコンピュータシステム710がアクセスできる他のメディアを含むが、これらに限定されるものではない。通信媒体は一般に、搬送波その他の搬送機構などの変調データ信号の形で、コンピュータ可読命令、データ構造、プログラムモジュールその他のデータを実施するものであり、任意の情報送達メディアを含む。「変調データ信号」という用語は、その信号に情報を符号化するようにその信号の特性の1つまたは複数が設定または変更された信号を意味する。例を挙げると、通信メディアは、有線ネットワークまたは直接有線接続などの有線メディア、および音波、RF、赤外線その他の無線メディアなどの無線メディアを含むが、これらに限定されるものではない。上記のいずれの組合せも、コンピュータ可読メディアの範囲に含めるべきである。
システムメモリ730は、ROM(読出し専用メモリ)731およびRAM(ランダムアクセスメモリ)732など、揮発性および/または不揮発性メモリの形態でコンピュータ記憶媒体を含む。例えば起動時に、コンピュータシステム710内の要素間で情報を転送する助けとなる基本ルーチンを含むBIOS(基本入出力システム)733は一般に、ROM731内に格納される。RAM732は一般に、処理装置720が、即座にアクセスすることができ、かつ/または現在操作中のデータおよび/またはプログラムモジュールを含む。例を挙げると、図3に、オペレーティングシステム734、アプリケーションプログラム735、他のプログラムモジュール736、およびプログラムデータ737を示すが、これらに限定されるものではない。
コンピュータシステム710は、他のリムーバブル/非リムーバブルな、揮発性/不揮発性のコンピュータ記憶媒体も含み得る。単なる例として、図3に、不揮発性非リムーバブル磁気メディアに対して読書きを行うハードディスクドライブ741、不揮発性リムーバブル磁気ディスク752に対して読書きを行う磁気ディスクドライブ751、およびCD ROM、CDRW、DVDその他の光メディアなどの不揮発性リムーバブル光ディスク756に対して読書きを行う光ディスクドライブ755を示す。例示の動作環境で使用できる他のリムーバブル/非リムーバブルな、揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどが含まれるが、これらに限定されるものではない。ハードディスクドライブ741は一般に、インターフェース740などの非リムーバブルメモリ用インターフェースを介してシステムバス721に接続され、磁気ディスクドライブ751および光ディスクドライブ755は一般に、インターフェース750などのリムーバブルメモリ用インターフェースによってシステムバス721に接続される。
上記で論じ、かつ図3に示すドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータシステム710用のコンピュータ可読命令、データ構造、プログラムモジュールその他のデータの記憶装置を提供する。図3では、例えば、ハードディスクドライブ741は、オペレーティングシステム744、アプリケーションプログラム745、他のプログラムモジュール746、およびプログラムデータ747を記憶するように示されている。これらのコンポーネントは、オペレーティングシステム734、アプリケーションプログラム735、他のプログラムモジュール736、およびプログラムデータ737と同じものとすることもできるし、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム744、アプリケーションプログラム745、他のプログラムモジュール746、およびプログラムデータ747には、少なくともそれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザは、キーボード762、および一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス761などの入力装置を介して、コンピュータシステム710にコマンドおよび情報を入力することができる。(図示しない)他の入力装置は、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことができる。上記その他の入力装置は、システムバス721に結合されたユーザ入力インターフェース760を介して処理装置720に接続されることが多いが、パラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)など他のインターフェースおよびバス構造によって接続することもできる。モニタ791その他のタイプのディスプレイ装置も、(図示しない)ビデオメモリと通信し得るビデオインターフェース790などのインターフェースを介してシステムバス721に接続される。コンピュータシステムは、モニタ791に加えて、出力用周辺インターフェース795を介して接続できるスピーカ797およびプリンタ796など他の周辺出力装置も含むことができる。
コンピュータシステム710は、リモートコンピュータ780など、1つまたは複数のリモートコンピュータへの論理接続部を利用するネットワーク環境または分散環境で動作することができる。リモートコンピュータ780は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス(peer device)その他一般のネットワークノードとすることができる。一般に、コンピュータシステム710に関連して上記で説明した要素の多くまたはすべてを含むが、図3にはメモリ記憶装置781だけを示す。図3に示す論理接続部は、LAN(ローカルエリアネットワーク)771およびWAN(ワイドエリアネットワーク)773を含むが、他のネットワーク/バスも含み得る。このようなネットワーク環境は、家庭、一般事務所、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
LANネットワーク環境で用いられるとき、コンピュータシステム710は、ネットワークインターフェースまたはアダプタ770を介してLAN771に接続される。WANネットワーク環境で用いられるとき、コンピュータシステム710は一般に、インターネットなどのWAN773を介して通信を確立するためのモデム772その他の手段を含む。内蔵型または外付けとできるモデム772は、ユーザ入力インターフェース760その他の適切な機構を介してシステムバス721に接続することができる。ネットワーク環境においては、コンピュータシステム710に関連して示すプログラムモジュールまたはその一部は、リモートメモリ記憶装置に格納することができる。例を挙げると、図3に、メモリ装置781上に常駐するようにリモートアプリケーションプログラム785を示すが、これに限定されるものではない。図3に示すネットワーク接続部は例であり、コンピュータ間で通信リンクを確立する他の手段を使用できることを理解されたい。
様々な分散コンピューティング構成が、パーソナルコンピューティングとインターネットを統合させるという観点からこれまで開発されており、現在も開発中である。個人および企業のユーザには等しく、アプリケーションおよびコンピューティング装置用のシームレスに相互運用可能なウェブ対応型インターフェースが提供され、それによって、コンピューティング活動が、ますますウェブブラウザ指向またはネットワーク指向になる。
例えば、Microsoft社から入手可能なMICROSOFT(登録商標).NET(商標)プラットホームは、サーバ、ウェブベースのデータ記憶などのビルディングブロックサービス(building−block services)、およびダウンロード可能なデバイスソフトウエアを含む。本明細書においては実施形態の例を、コンピューティング装置上に常駐するソフトウエアに関連して説明したが、オペレーティングシステム、API(アプリケーションプログラミングインターフェース)、あるいは、コプロセッサ、ディスプレイ装置、および要求オブジェクトのいずれかの間の「仲介」オブジェクトによって本発明の実施形態の一部または複数の部分を実施することもでき、それによって、すべての.NET(商標)の言語およびサービスによって動作が実施され、それらの言語およびサービス内で動作がサポートされ、また、それらの言語およびサービスを介して動作にアクセスすることができ、また、他の分散コンピューティング構成でも同様である。
上記で述べたように、様々なコンピューティング装置およびネットワークアーキテクチャに関連して本発明の実施形態の例を説明してきた。その基礎となる概念は、不正なソフトウエアを検出する技術を実施することが望ましい任意のコンピューティング装置またはシステムに適用できる。そのため、本発明の実施形態に関連して説明した方法およびシステムは、様々な応用例および装置に適用できる。本明細書においては、例示のプログラミング用の言語、名称、および例を、様々な選択肢の代表として選択したが、これらの言語、名称、および例は、限定するためのものではない。本発明の実施形態によって実現されるのと同じ、または類似の、あるいは等価なシステムおよび方法を実現するオブジェクトコードを提供する多数のやり方があることが当業者には理解されよう。
本明細書で説明した様々な技術は、ハードウエアまたはソフトウエアに関連づけて、あるいは、適切な場合には、両者の組合せとともに実施できる。そのため、本発明の方法および機器、あるいは本発明のある種の態様またはその一部は、フロッピー(登録商標)ディスク、CD−ROM、ハードドライブその他の任意の機械可読記憶メディアなど、有形のメディアで実施されるプログラムコード(すなわち命令)の形態をとり得る。このプログラムコードが、コンピュータなどの機械にロードされ、その機械によって実行されると、この機械は、本発明を実施する機器になる。プログラム可能なコンピュータ上でプログラムコードを実行する場合、このコンピューティング装置は一般に、プロセッサ、(揮発性および不揮発性のメモリおよび/または記憶素子を含めて)このプロセッサによって読込み可能な記憶メディア、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。本発明の実施形態の信号処理サービスを、例えば、データ処理APIなどを使用することによって利用できる1つまたは複数のプログラムは、好ましくは、コンピュータと通信するために、高級処理型言語またはオブジェクト指向のプログラミング言語で実施される。ただし、これら1つ(または複数)のプログラムは、所望の場合にはアセンブリまたは機械語で実施できる。いずれの場合でも、この言語を、コンパイル型またはインタプリタ型の言語とし、ハードウエアの実施形態と組み合わせることができる。
様々な形態の好ましい実施形態に関して本発明の態様を説明してきたが、本発明から逸脱することなく本発明の同じ機能を実施するために、他の類似の実施形態を用いることもできる。上記で説明した実施形態に改変および追加を施すこともできることを理解されたい。さらに、ハンドヘルド型装置用のオペレーティングシステムおよび他の特定用途向けオペレーティングシステムを含めて、特に、無線ネットワーク装置の数が急増するにつれ、様々なコンピュータプラットホームが企図されていることを強調しておく。したがって、特許請求する本発明は、いかなる単一の実施形態にも限定されるべきではなく、添付の特許請求の範囲による広さおよび範囲の中で解釈すべきである。
本発明の実施形態を実施できるネットワークのブロック図である。 本発明の態様を含む方法のフロー図である。 本発明の態様を実施できるコンピューティング環境の例を示すブロック図である。
符号の説明
100 ネットワーク構成
710 コンピュータシステム
752 不揮発性リムーバブル磁気ディスク
755 光ディスクドライブ
756 不揮発性リムーバブル光ディスク

Claims (8)

  1. サーバコンピュータにおいて海賊版ソフトウェアを検出する方法であって、
    クライアントコンピュータから、クライアントコンピュータに常駐しているソフトウェアプログラムへのソフトウェアアップデートに対する要求を受信するステップと、
    前記サーバコンピュータにおいて、前記クライアントコンピュータ内の前記ソフトウェアプログラムに対して実施すべき、実行可能コードを含むテストを決定するステップと、
    前記テストを前記クライアントコンピュータへ送信するステップと、
    前記クライアントコンピュータにおいて、前記テストの前記コードを実行するステップと、
    評価のために前記テストの結果を前記サーバコンピュータへ送信するステップであって、前記テストの前記結果は前記サーバコンピュータによって使用されて前記クライアントコンピュータにおける前記ソフトウェアプログラムが適法なコピーであるかどうかを決定するステップと、
    前記クライアントコンピュータが、前記サーバコンピュータによって評価されたように前記テストに合格せずに前記テストが海賊版ソフトウェアを検出する場合、前記クライアントコンピュータに前記ソフトウェアアップデートを拒否するステップと
    を備えることを特徴とする方法。
  2. ソフトウェアアップデートに対する要求を受信する前記ステップは、前記サーバコンピュータが、ネットワークを介して前記ソフトウェアアップデート要求を受信することを含み、前記サーバコンピュータは、前記ソフトウェアプログラムが適法なコピーであるかどうかを決定するときに使用される海賊行為検出ソフトウェアをホスティングすることを特徴とする請求項1に記載の方法。
  3. 前記テストを実行する前記ステップは、クライアントソフトウェアプログラムの実行時の完全性検査を実施することを含むことを特徴とする請求項1に記載の方法。
  4. 前記実行時の完全性検査は、クライアントソフトウェア内に存在する実行可能なプログラムを実行すること、巡回冗長符号検査を実施すること、ハッシュ値検査を実施すること、およびデジタル署名を検証することのうち1つまたは複数を含むことを特徴とする請求項3に記載の方法。
  5. クライアントコンピュータから、ソフトウェアプログラムアップデートに対する要求を受信するステップと、
    前記クライアントコンピュータ内の前記ソフトウェアプログラムに対して実施すべき、実行可能なテストコードを含むテストを決定するステップと、
    前記サーバコンピュータから前記クライアントコンピュータへ、前記クライアントコンピュータ内で実行する前記テストコードをダウンロードするステップと、
    前記クライアントコンピュータにおいて実行された前記テストの結果を受信するステップであって、前記テストの前記結果は前記サーバコンピュータによって使用されて前記クライアントコンピュータ内の前記ソフトウェアプログラムが適法なコピーであるかどうかを決定するステップと、
    前記テストの前記結果を評価することによって、前記クライアントコンピュータソフトウェアプログラムが改変されたかどうかを決定するステップと、
    前記テストの前記結果の評価に依存して前記ソフトウェアアップデートを許可するかどうかを決定するステップと
    を備える方法をサーバコンピュータ上で実行するためのコンピュータ実行可能命令を有するコンピュータ読取り可能記憶媒体。
  6. 前記方法は、前記ソフトウェアプログラムが改変されたことを前記テスト結果が示している場合に、前記ソフトウェアアップデートを拒否するステップをさらに含むことを特徴とする請求項5に記載のコンピュータ読取り可能記憶媒体。
  7. 海賊版ソフトウェアを検出するシステムであって、
    サーバコンピュータおよびクライアントコンピュータの間でメッセージを送信するネットワークと、
    前記ネットワーク上に常駐し、クライアントコンピュータ用のソフトウェアアップデートを有するサーバコンピュータと、
    前記ネットワーク上に常駐し、前記サーバコンピュータから、クライアントソフトウェアのアップデートを要求するクライアントコンピュータとを備え、
    前記クライアントソフトウェアに対して前記クライアントコンピュータによってテストが実施され、前記テストは、前記サーバコンピュータから前記クライアントコンピュータにダウンロードされ、前記クライアントコンピュータ上で実行できる実行可能ソフトウェアプログラムテストコードを含み、前記テストは前記ソフトウェアプログラムテストコードの実行結果が、前記クライアントソフトウェアが海賊版であるかどうかを決定するために前記サーバコンピュータに送られ、前記テスト結果が前記サーバコンピュータ内で合格しなければ、前記クライアントコンピュータはクライアントソフトウェアの前記アップデートを拒否されることを特徴とするシステム。
  8. 前記テストは、クライアントソフトウェアプログラムの実行時の完全性検査を実施するように設計されていることを特徴とする請求項7に記載のシステム。
JP2005092511A 2004-04-30 2005-03-28 ソフトウエアのアップデートを制限する方法およびシステム Expired - Fee Related JP4870937B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/836,409 2004-04-30
US10/836,409 US7331063B2 (en) 2004-04-30 2004-04-30 Method and system for limiting software updates

Publications (2)

Publication Number Publication Date
JP2005316974A JP2005316974A (ja) 2005-11-10
JP4870937B2 true JP4870937B2 (ja) 2012-02-08

Family

ID=34939280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005092511A Expired - Fee Related JP4870937B2 (ja) 2004-04-30 2005-03-28 ソフトウエアのアップデートを制限する方法およびシステム

Country Status (10)

Country Link
US (1) US7331063B2 (ja)
EP (1) EP1591865B1 (ja)
JP (1) JP4870937B2 (ja)
KR (1) KR101122950B1 (ja)
CN (1) CN100461064C (ja)
AU (1) AU2005201006B2 (ja)
BR (1) BRPI0501156A (ja)
CA (1) CA2501755C (ja)
MX (1) MXPA05003409A (ja)
RU (1) RU2375739C2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006094117A2 (en) 2005-03-01 2006-09-08 Mfoundry Application program update deployment to a mobile device
JP2007066271A (ja) * 2005-09-02 2007-03-15 Canon Inc 情報処理装置及びその制御方法、データ処理装置、並びにプログラム
WO2008004525A1 (fr) * 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de traitement d'informations, dispositif d'enregistrement d'informations, système de traitement d'informations, procédé de mise à jour de programme, programme, et circuit intégré
US8117461B2 (en) * 2006-09-13 2012-02-14 Igt Method of randomly and dynamically checking configuration integrity of a gaming system
US7688757B2 (en) * 2006-12-29 2010-03-30 Alcatel-Lucent Usa Inc. Method and apparatus for assessing sourced elements
US7937762B2 (en) * 2007-01-15 2011-05-03 Microsoft Corporation Tracking and identifying operations from un-trusted clients
US8201231B2 (en) * 2007-02-21 2012-06-12 Microsoft Corporation Authenticated credential-based multi-tenant access to a service
CN101335746A (zh) * 2007-06-29 2008-12-31 国际商业机器公司 保护软件系统的完整性的安全设备和方法及其系统
GB2458568B (en) * 2008-03-27 2012-09-19 Covertix Ltd System and method for dynamically enforcing security policies on electronic files
US8578510B2 (en) * 2008-06-26 2013-11-05 Valve Corporation Anti-piracy measures for a video game using hidden secrets
US10459711B2 (en) * 2008-08-12 2019-10-29 Adobe Inc. Updating applications using migration signatures
US8095987B2 (en) * 2008-09-04 2012-01-10 Microsoft Corporation Software anti-piracy protection
JP4991668B2 (ja) * 2008-09-29 2012-08-01 株式会社東芝 コンピュータシステムおよび修正パッチ確認/適用方法
JP4711002B2 (ja) * 2009-03-26 2011-06-29 ブラザー工業株式会社 プログラム、及びライセンス登録装置
US8464249B1 (en) 2009-09-17 2013-06-11 Adobe Systems Incorporated Software installation package with digital signatures
US8359657B2 (en) * 2010-03-30 2013-01-22 Sandcastles Technology Inc. Method and apparatus for enabling secure distribution of digital content
EP2583225A4 (en) * 2010-06-21 2014-03-05 Hewlett Packard Development Co SYSTEM FOR TESTING AND CERTIFYING A VIRTUAL DEVICE ON A CLIENT COMPUTER SYSTEM
EP2413257B1 (en) * 2010-07-26 2017-04-26 Sony DADC Austria AG Method for replacing an illegitimate copy of a software program with legitimate copy and corresponding system
US9684781B2 (en) * 2010-11-12 2017-06-20 Hewlett Packard Enterprise Development Lp Determine authorization of a software product based on a first and second authorization item
US8763158B2 (en) 2010-12-06 2014-06-24 Microsoft Corporation Directory service distributed product activation
CN102315963B (zh) * 2011-08-11 2016-04-20 百度在线网络技术(北京)有限公司 一种验证设备系统配置变更的方法与设备
CN102955700A (zh) * 2011-08-18 2013-03-06 腾讯科技(深圳)有限公司 软件升级系统及方法
EP3660673A1 (en) * 2012-03-22 2020-06-03 Irdeto B.V. Updating software components
JP5330565B2 (ja) * 2012-04-24 2013-10-30 株式会社東芝 コンピュータ
US20140208306A1 (en) * 2013-01-23 2014-07-24 Caterpillar Inc. Control system having automatic component software management
US9836730B1 (en) * 2013-03-14 2017-12-05 Corel Corporation Software product piracy monetization process
KR101515707B1 (ko) * 2013-07-12 2015-04-27 숭실대학교산학협력단 소프트웨어의 특징정보 기반 스마트폰 앱 불법 복제 및 표절 탐지 방법 및 그 장치
EP2840492A1 (en) * 2013-08-23 2015-02-25 British Telecommunications public limited company Method and apparatus for modifying a computer program in a trusted manner
CN104424402B (zh) * 2013-08-28 2019-03-29 卓易畅想(北京)科技有限公司 一种用于检测盗版应用程序的方法及装置
US9197647B2 (en) * 2013-10-21 2015-11-24 Cisco Technology, Inc. Integrity checking of a client device in a networked computer environment
KR101654973B1 (ko) * 2014-04-30 2016-09-06 단국대학교 산학협력단 소프트웨어 필터링 장치 및 방법
US10318271B2 (en) 2015-01-05 2019-06-11 Irdeto Canada Corporation Updating software components in a program
RU2637485C2 (ru) * 2015-12-29 2017-12-04 Эдуард Юрьевич Прудников Способ антипиратской авторизации доступа к компьютерной сети
WO2018014327A1 (en) * 2016-07-22 2018-01-25 Intel Corporation Embedded system application installation and execution method and apparatus
WO2018081093A1 (en) * 2016-10-24 2018-05-03 Clark Carl M Software algorithm security
US10089661B1 (en) * 2016-12-15 2018-10-02 Amazon Technologies, Inc. Identifying software products to test
US10318281B1 (en) * 2017-04-06 2019-06-11 Amdocs Development Limited System, method, and computer program for upgrading software associated with a distributed, state-full system
JP6655762B2 (ja) * 2017-05-26 2020-02-26 株式会社日立国際電気 機械学習モデル不正検知システム及び不正検知方法
CN107423581B (zh) * 2017-07-31 2019-04-12 北京深思数盾科技股份有限公司 软件的保护方法和装置
CN112579111A (zh) * 2020-12-30 2021-03-30 深圳市欢太科技有限公司 安装包的安装方法及装置、电子设备、存储介质

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5528490A (en) * 1992-04-10 1996-06-18 Charles E. Hill & Associates, Inc. Electronic catalog system and method
JPH06309261A (ja) * 1993-04-22 1994-11-04 Mitsubishi Electric Corp ソフトウェア自動インストール方法及びソフトウェア自動バージョンアップ方法
JP3393521B2 (ja) * 1995-10-19 2003-04-07 日本電信電話株式会社 端末プログラム改ざん検出方法、および情報センタ
US6918038B1 (en) * 1996-08-13 2005-07-12 Angel Secure Networks, Inc. System and method for installing an auditable secure network
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US6189146B1 (en) 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US6226747B1 (en) 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6243468B1 (en) 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US7503072B2 (en) 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
WO1999056196A1 (en) * 1998-04-30 1999-11-04 Bindview Development Corporation Computer security
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
US7225333B2 (en) * 1999-03-27 2007-05-29 Microsoft Corporation Secure processor architecture for use with a digital rights management (DRM) system on a computing device
JP2004534973A (ja) * 2000-04-14 2004-11-18 ゴー アヘッド ソフトウェア インコーポレイテッド ネットワークデバイスのアップグレードシステム及び方法
US6857067B2 (en) * 2000-09-01 2005-02-15 Martin S. Edelman System and method for preventing unauthorized access to electronic data
US7003110B1 (en) * 2000-11-14 2006-02-21 Lucent Technologies Inc. Software aging method and apparatus for discouraging software piracy
US20030188160A1 (en) * 2001-08-02 2003-10-02 Singam Sunder Method and system to securely update files via a network
US7159240B2 (en) * 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
CN1448842A (zh) * 2002-03-31 2003-10-15 任东海 基于网络数据库的软件版权保护方法
JP2005309759A (ja) * 2004-04-21 2005-11-04 Nippon Telegr & Teleph Corp <Ntt> 電子データ提供システムと方法およびプログラム
US20070067419A1 (en) * 2005-09-19 2007-03-22 Bennett James D Dedicated client devices supporting web based service, specifications and interaction
TWI273456B (en) * 2005-09-30 2007-02-11 Inventec Corp Open type network gaming system and method thereof
KR100667820B1 (ko) * 2005-09-30 2007-01-12 삼성전자주식회사 보안 방법 및 시스템, 그 방법을 기록한 컴퓨터 판독가능한 기록매체
US7433804B2 (en) * 2005-11-04 2008-10-07 Research In Motion Limited Automated test script for communications server

Also Published As

Publication number Publication date
RU2375739C2 (ru) 2009-12-10
JP2005316974A (ja) 2005-11-10
CN100461064C (zh) 2009-02-11
KR101122950B1 (ko) 2012-03-15
AU2005201006B2 (en) 2010-03-25
EP1591865B1 (en) 2016-11-02
CA2501755A1 (en) 2005-10-30
MXPA05003409A (es) 2005-11-03
RU2005108284A (ru) 2006-10-10
US7331063B2 (en) 2008-02-12
CA2501755C (en) 2013-07-23
EP1591865A3 (en) 2006-07-19
EP1591865A2 (en) 2005-11-02
AU2005201006A1 (en) 2005-11-17
CN1694031A (zh) 2005-11-09
US20050246537A1 (en) 2005-11-03
BRPI0501156A (pt) 2006-01-10
KR20060044773A (ko) 2006-05-16

Similar Documents

Publication Publication Date Title
JP4870937B2 (ja) ソフトウエアのアップデートを制限する方法およびシステム
EP1443381B1 (en) System and method for secure software activation with volume licenses
US7644442B2 (en) Systems and methods for using machine attributes to deter software piracy in an enterprise environment
US8001596B2 (en) Software protection injection at load time
AU2004200043B2 (en) Systems and methods for providing time- and weight-based flexibly tolerant hardware ID
JP4794217B2 (ja) ソフトウェア製品ライセンスの単一の再アクティブ化のための方法およびシステム
CA2507793C (en) System and method for protected operating system boot using state validation
EP1934810B1 (en) Secure machine counting
AU2006236956A1 (en) Secure boot

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110517

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111025

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: 20111115

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: 20111118

R150 Certificate of patent or registration of utility model

Ref document number: 4870937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees