JP2005063207A - Update program and update method - Google Patents
Update program and update method Download PDFInfo
- Publication number
- JP2005063207A JP2005063207A JP2003293588A JP2003293588A JP2005063207A JP 2005063207 A JP2005063207 A JP 2005063207A JP 2003293588 A JP2003293588 A JP 2003293588A JP 2003293588 A JP2003293588 A JP 2003293588A JP 2005063207 A JP2005063207 A JP 2005063207A
- Authority
- JP
- Japan
- Prior art keywords
- software
- update
- decryption key
- decryption
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
本発明は、アップデートプログラム及びアップデート方法に関し、特に、ダウンロード式のソフトウェアのアップデートプログラム及びアップデート方法に関するものである。
The present invention relates to an update program and an update method, and more particularly to a download-type software update program and update method.
近年、コンピュータ上で利用するソフトウェアを、ネットワークを介して利用者の端末にダウンロードさせるサービスが増えている。 In recent years, an increasing number of services allow software used on a computer to be downloaded to a user's terminal via a network.
このようなサービスでは、より多くの利用者にソフトウェアを有償で購入してもらうため、まずは、通常版ソフトウェアが有する機能を縮小化した試用版ソフトウェアを無償で利用者の端末にダウンロードさせ、試用期間経過後に利用者の希望により、有償で通常版ソフトウェアを購入させることが多い。 In such a service, in order to have more users purchase the software for a fee, first, the trial version software with reduced functions of the normal version software is downloaded to the user's terminal free of charge, and the trial period After the elapse of time, the normal version software is often purchased for a fee according to the desire of the user.
一方、ほとんどのソフトウェアは、利用者向けに正規に発行されてからも、新機能の追加や日々発生するバグ修正のため、パッチが当てられたり、アップデートが行われる必要がある。そのための修正ソフトウェアやアップデートプログラムは、保証期間内であれば無償(場合によっては有償)で利用者に配布される。利用者は、各自の端末にダウンロードされたソフトウェアのアップデート作業を行う。 On the other hand, most software needs to be patched or updated to add new functions or fix bugs that occur every day even after it has been officially issued to users. The modified software and update program for that purpose are distributed to users free of charge (in some cases, for a fee) within the warranty period. The user performs the update operation of the software downloaded to his / her terminal.
しかし、このようなアップデート作業は利用者にとっては面倒であることから、利用者の手間を軽減するため、特許文献1に開示されているように、ソフトウェアの利用期限を、利用者による書き換えが不可能なハードウェアプロテクト装置に書き込み、ソフトウェアと共に利用者に提供し、その利用期限内であれば、ソフトウェア提供者側が、利用者の所有するソフトウェアのバージョンを確認してそのバージョンに適合するアップデート作業を自動的に行う、というソフトウェア利用者管理方法及びハードウェア・プロテクト装置がある。 However, since such an update operation is troublesome for the user, in order to reduce the user's trouble, the expiration date of the software is not rewritten by the user as disclosed in Patent Document 1. Write to an available hardware protection device, provide it to the user together with the software, and if it is within the usage period, the software provider checks the version of the software owned by the user and performs an update operation that conforms to that version. There is a software user management method and a hardware protection device that perform automatically.
又、無償でアップデートプログラムを提供すると、不正にアップデートプログラムがコピーされる等の問題が発生することから、特許文献2には、CD−Rや、CD−RW、MO、DVD−RAM等の可換記録媒体のユーザアクセス不可領域に、ソフトウェアのインストール可能回数やアップデート可能回数を書き込んで利用者に提供し、実際にインストールやアップデートする時の回数と比較することによって、不正なインストールやアップデートを防止する方法が開示されている。
In addition, if an update program is provided free of charge, problems such as unauthorized copying of the update program occur.
しかし、特許文献1、特許文献2に開示された発明には、以下に掲げる課題があった。
However, the inventions disclosed in Patent Document 1 and
すなわち、特許文献1、特許文献2に開示された発明のいずれも、利用者が自己の端末に、ソフトウェア提供者から提供されるハードウェアプロテクト装置や可換記録媒体を接続しなければならない。
That is, in any of the inventions disclosed in Patent Document 1 and
従って、ソフトウェア提供者は利用者毎にその提供物を用意して郵送等しなければならず、利用者も郵送等により送られてきた提供物を自己の端末に接続しなければならないことから、ソフトウェア提供者、利用者の双方に手間が発生し、これではネットワークを介してソフトウェアをダウンロード可能とするシステム(サーバ)の構築意義が没却されかねない。 Therefore, the software provider must prepare and deliver the deliverable for each user, and the user must also connect the deliverable sent by mail to his / her terminal. Both the software provider and the user are troublesome, and this may destroy the significance of constructing a system (server) that allows software to be downloaded via a network.
更に、特許文献1に開示された発明では、ソフトウェア提供者が、利用者の所有するソフトウェアのバージョンを確認して利用者毎に適合するアップデートプログラムを送らなければならないが、ソフトウェア提供者が複数の販売者に対して同一内容のソフトウェアを提供するような場合、ソフトウェア提供者は、個々のソフトウェアに対するバージョン管理、バージョン毎のアップデート動作確認テストを行わなければならず、ソフトウェア提供者はこれらの作業に多くの時間を費していた。 Furthermore, in the invention disclosed in Patent Document 1, the software provider must check the version of the software owned by the user and send an update program suitable for each user. When providing software with the same content to a seller, the software provider must perform version management for each software and update operation check test for each version. I spent a lot of time.
更に、特許文献1、特許文献2に開示された発明は、試用版ではない通常のソフトウェアのインストールやアップデートに関するものであり、そもそも試用版ソフトウェアをアップデートするという発想は含まれていなかった。
Furthermore, the inventions disclosed in Patent Document 1 and
しかし、試用版ソフトウェアを利用している利用者の端末が、無償で配布されるアップデートプログラムをダウンロードすると、端末に既に格納されている試用版ソフトウェアが通常版ソフトウェアで上書きされてしまう場合があり、利用者が、本来有償であるはずの通常版ソフトウェアを無償で利用することが可能となってしまう。 However, if the terminal of a user using trial version software downloads an update program distributed free of charge, the trial version software already stored on the terminal may be overwritten by the normal version software. The user can use the normal software that should be paid for free of charge.
このため、従来の試用版ソフトウェアには、予めアップデートを一切禁止するようなソースコードがプログラムとして記述されており、仮に試用版ソフトウェアに重大な不具合があったような場合でも、利用者には新たに試用版ソフトウェアをダウンロードさせるしかなかった。 For this reason, the source software that prohibits any updates is described as a program in the conventional trial version software in advance, and even if there is a serious malfunction in the trial version software, the user will Had to download the trial software.
本発明は、このような問題点に鑑みてなされたものであって、その目的とするところは、試用版か通常版かを問わず、利用者にとって負担なくソフトウェアのアップデートを行うことが出来、ソフトウェア提供者にとってもアップデートにかかる作業時間を大幅に少なくすることが出来るアップデートプログラム及びアップデート方法を提供することにある。
The present invention has been made in view of such problems, the purpose of which can be updated software without burden on the user, regardless of whether it is a trial version or a normal version, It is another object of the present invention to provide an update program and an update method that can significantly reduce the time required for updating for software providers.
上記目的を達成するために、本発明は、ソフトウェアを利用者以外の者が共通鍵暗号方式により生成した共通鍵によって暗号化し、パッケージ識別情報とともにパッケージ化したパッケージソフトウェアを、予め決められた利用回数・金額・期限等の利用条件の下で利用者の端末上で利用させるソフトウェア提供サービスに於いて、前記ソフトウェアのアップデートを行うアップデートプログラムであって、前記アップデートプログラムは、前記暗号化されたソフトウェアの復号鍵を解読する復号鍵解読プログラムが前記利用者の端末に格納された後に、前記端末に格納されるものであり、前記復号鍵解読プログラムは、前記ソフトウェアの利用毎に利用状況を更新することが出来る利用状況データベースを、前記利用者の端末以外の端末による読みとり、更新が出来ないような状態で、前記利用者の端末に生成する利用状況生成手段と、前記利用状況データベースに格納された利用状況と、前記利用条件との照合を行い、前記利用状況が前記利用条件を超えない場合に限り、前記利用状況データベース内の利用状況を更新し、前記暗号化されたソフトウェアの復号鍵を復号鍵格納ファイルの中から解読する復号鍵解読手段と、前記解読された復号鍵を、前記利用者の端末のメインメモリ上に展開する展開手段とを有し、前記アップデートプログラムは、前記利用者の端末に格納されている前記パッケージソフトウェアがアップデートの対象かどうかを判断し、前記復号鍵解読手段を起動するチェック手段と、前記パッケージソフトウェアのバックアップを行うバックアップ手段と、前記復号鍵解読手段によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、ソフトウェア提供者から送付された新しいソフトウェアを暗号化し、前記パッケージ識別情報とともにパッケージ化して、前記パッケージソフトウェアと置き換える再パッケージ手段とを有する構成を採用している。 In order to achieve the above-described object, the present invention provides a predetermined number of times of use of package software in which software other than a user is encrypted with a common key generated by a common key encryption method and packaged together with package identification information. -An update program for updating the software in a software providing service to be used on a user's terminal under usage conditions such as an amount, a deadline, etc., wherein the update program includes the encrypted software A decryption key decryption program for decrypting a decryption key is stored in the terminal after being stored in the terminal of the user, and the decryption key decryption program updates the use status every time the software is used. A usage database that can be used on a terminal other than the user's terminal The usage status generation means for generating in the user's terminal in a state that cannot be read or updated, the usage status stored in the usage status database, and the usage conditions are collated, and the usage status Only when the usage condition does not exceed the usage condition, the usage status in the usage status database is updated, and the decryption key decryption means for decrypting the decryption key of the encrypted software from the decryption key storage file, and the decryption Expansion means for expanding the decrypted key on the main memory of the user terminal, and the update program determines whether the package software stored in the user terminal is an update target. Determining means for activating the decryption key decryption means, and backup means for backing up the package software; Using the decryption key decrypted when the use condition regarding the update is satisfied by the decryption key decryption means, the new software sent from the software provider is encrypted and packaged together with the package identification information, and the package software And a re-packaging means for replacement.
請求項14の発明は、
ソフトウェアを利用者以外の者が共通鍵暗号方式により生成した共通鍵によって暗号化し、パッケージ識別情報とともにパッケージ化したパッケージソフトウェアを、予め決められた利用回数・金額・期限等の利用条件の下で利用者の端末上で利用させるソフトウェア提供サービスに於いて、前記ソフトウェアのアップデートを行うアップデート方法であって、前記アップデート方法は、前記暗号化されたソフトウェアの復号鍵を解読するための復号鍵解読過程を少なくとも1回経た後に、実行されるものであり、前記復号鍵解読過程は、前記ソフトウェアの利用毎に利用状況を更新することが出来る利用状況データベースを、前記利用者の端末以外の端末による読みとり、更新が出来ないような状態で、前記利用者の端末に生成する第1の過程と、前記利用状況データベースに格納された利用状況と、前記利用条件との照合を行い、前記利用状況が前記利用条件を超えない場合に限り、前記利用状況データベース内の利用状況を更新し、前記暗号化されたソフトウェアの復号鍵を復号鍵格納ファイルの中から解読する第2の過程と、前記解読された復号鍵を、前記利用者の端末のメインメモリ上に展開する第3の過程とを有し、前記アップデート方法は、前記利用者の端末に格納されている前記パッケージソフトウェアがアップデートの対象かどうかを判断する第4の過程と、前記パッケージソフトウェアのバックアップを行う第5の過程と、前記第復号鍵解読過程により、アップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、ソフトウェア提供者から送付された新しいソフトウェアを暗号化し、前記パッケージ識別情報とともにパッケージ化して、前記パッケージソフトウェアと置き換える第6の過程とを有するアップデート方法である。
The invention of claim 14
Package software that is encrypted with a common key generated by a person other than the user using a common key encryption method and packaged with package identification information is used under the usage conditions such as the number of times, amount of money, time limit, etc. An update method for updating the software in a software providing service to be used on a user's terminal, wherein the update method includes a decryption key decryption process for decrypting a decryption key of the encrypted software The decryption key decryption process is executed after at least one pass, and the usage status database that can update the usage status every time the software is used is read by a terminal other than the user terminal, The first to be generated on the user terminal in a state where the update is not possible The usage status stored in the usage status database is compared with the usage conditions, and only when the usage status does not exceed the usage conditions, the usage status in the usage status database is updated, A second step of decrypting the decryption key of the encrypted software from the decryption key storage file, and a third step of expanding the decrypted decryption key on the main memory of the user terminal; The update method includes a fourth step of determining whether or not the package software stored in the terminal of the user is an update target, and a fifth step of backing up the package software; From the software provider using the decryption key decrypted when the use condition regarding the update is satisfied by the decryption key decryption process. Encrypts assigned the new software, and packaged with the package identification information, an update method and a sixth step of replacing said package software.
請求項1及び請求項14の発明により、正当な利用者の元にアップデート用のソフトウェアが送られ、鍵の生成等の手間が発生することなくアップデートが行われるので、利用者にとっても、ソフトウェア提供者にとっても利便性の高いアップデートプログラム及びアップデート方法が提供される。 According to the inventions of claims 1 and 14, the software for update is sent to the legitimate user, and the update is performed without generating a trouble such as key generation. An update program and an update method that are convenient for the user are provided.
請求項3の発明は、
前記新しいソフトウェアは、前記共通鍵で暗号化された状態で、前記利用者の端末に送付され、前記チェック手段は、前記復号鍵解読手段によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、前記暗号化された新しいソフトウェアの復号化を試み、復号化された場合に、アップデートを許可するアップデートプログラムである。
The invention of claim 3
The new software is sent to the user's terminal in an encrypted state with the common key, and the checking means decrypts the decrypted data when the use condition regarding the update is satisfied by the decryption key decrypting means. This is an update program that attempts to decrypt the encrypted new software by using a key, and permits an update when decrypted.
請求項16の発明は、
前記新しいソフトウェアは、前記共通鍵で暗号化された状態で、前記利用者の端末に送付され、前記第4の過程では、前記復号鍵解読過程によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、前記暗号化された新しいソフトウェアの復号化を試み、復号化された場合に、アップデートを許可するアップデート方法である。
The invention of claim 16
The new software is sent to the user's terminal after being encrypted with the common key. In the fourth process, the new software is decrypted when the use conditions regarding the update are satisfied by the decryption key decryption process. In this update method, the encrypted new software is tried to be decrypted using the decryption key, and the update is permitted when the decrypted new software is decrypted.
請求項3及び請求項16の発明により、新しいソフトウェアは元のソフトウェアと同じ鍵で暗号化されているので、新たな鍵生成の必要がなく、又、第三者による盗聴の心配がなく、ソフトウェアのアップデートが可能となる。又、異なる鍵で暗号化されたソフトウェアによりアップデートが行われることがないので、不正アップデートを防止することが出来る。 According to the inventions of claims 3 and 16, since the new software is encrypted with the same key as the original software, there is no need to generate a new key, and there is no worry of eavesdropping by a third party. Can be updated. In addition, since the update is not performed by software encrypted with a different key, unauthorized update can be prevented.
請求項2の発明は、
前記再パッケージ手段に於ける新しいソフトウェアの暗号化、パッケージ化は、メインメモリ上で行われるアップデートプログラムである。
The invention of
Encryption and packaging of new software in the repackaging means is an update program performed on the main memory.
請求項4の発明は、
前記チェック手段に於ける暗号化された新しいソフトウェアの復号化は、メインメモリ上で行われるアップデートプログラムである。
The invention of claim 4
Decryption of the new encrypted software in the checking means is an update program performed on the main memory.
請求項15の発明は、
前記第6の過程に於ける新しいソフトウェアの暗号化、パッケージ化は、メインメモリ上で行われるアップデート方法である。
The invention of
Encryption and packaging of new software in the sixth process is an update method performed on the main memory.
請求項17の発明は、
前記第4の過程に於ける暗号化された新しいソフトウェアの復号化は、メインメモリ上で行われるアップデート方法である。
The invention of claim 17
The decryption of the new encrypted software in the fourth process is an update method performed on the main memory.
請求項2、請求項4、請求項15、請求項17の発明により、新しいソフトウェアがハードディスク上に保存されることなく、メインメモリ上で再パッケージ化されるので、不正利用を防止することが出来る。
According to the inventions of
請求項5の発明は、
前記チェック手段は、前記パッケージソフトウェア及び前記復号鍵解読プログラム及び前記復号鍵格納ファイル及び前記利用状況データベースが前記利用者の端末に格納されているかどうかを確認するアップデートプログラムである。
The invention of
The check means is an update program for confirming whether the package software, the decryption key decryption program, the decryption key storage file, and the use state database are stored in the terminal of the user.
請求項18の発明は、
前記第4の過程では、前記パッケージソフトウェア及び前記復号鍵格納ファイル及び前記利用状況データベースが前記利用者の端末に格納されているかどうかを確認するアップデート方法である。
The invention of claim 18 provides
The fourth process is an update method for confirming whether the package software, the decryption key storage file, and the usage status database are stored in the user terminal.
請求項5及び請求項18の発明により、正当なパッケージソフトウェアや復号鍵が利用者の端末に存在しなければ、そもそもアップデートが行われないので、正当なアップデートを遂行することが出来る。 According to the fifth and eighteenth aspects of the present invention, if there is no valid package software or decryption key in the user's terminal, the update is not performed in the first place, so that the valid update can be performed.
請求項6の発明は、
前記チェック手段は、前記パッケージソフトウェア内のソフトウェアのバージョンが、前記新しいソフトウェアのバージョンよりも古いかどうかを確認するアップデートプログラムである。
The invention of
The check means is an update program that confirms whether the software version in the package software is older than the new software version.
請求項19の発明は、
前記第4の過程では、前記パッケージソフトウェア内のソフトウェアのバージョンが、前記新しいソフトウェアのバージョンよりも古いかどうかを確認するアップデート方法である。
The invention of claim 19
The fourth process is an update method for confirming whether the software version in the package software is older than the new software version.
請求項6及び請求項19の発明により、確実に正しいアップデートを遂行することが出来る。
According to the inventions of
請求項7の発明は、
前記復号鍵格納ファイルは、前記復号鍵と、1以上の前記利用条件を内包し、前記復号鍵解読手段に於いてのみ前記復号鍵の解読が可能なように、前記利用者の端末に格納されるアップデートプログラムである。
The invention of
The decryption key storage file contains the decryption key and one or more usage conditions, and is stored in the user terminal so that the decryption key can be decrypted only by the decryption key decryption means. Update program.
請求項20の発明は、
前記復号鍵格納ファイルは、前記復号鍵と、1以上の前記利用条件を内包し、
前記復号鍵解読方法による前記復号鍵の解読が可能なように、前記利用者の端末に格納されるアップデート方法である。
The invention of claim 20
The decryption key storage file contains the decryption key and one or more use conditions,
An update method stored in the user terminal so that the decryption key can be decrypted by the decryption key decryption method.
請求項7及び請求項20の発明により、ソフトウェアの利用都度、復号鍵や利用条件をソフトウェア提供者から入手する必要がなく、ソフトウェア利用の迅速化が図られるとともに、一度、復号鍵格納ファイルを入手すれば、その後は盗聴等される危険性がなくなる。
According to the inventions of
請求項8及び請求項21の発明は、
前記利用条件の一部又は全部は、前記復号鍵格納ファイルに含まれず、前記利用者による前記パッケージソフトウェアの購入又はアップデートの決済完了後、発行されるアップデートプログラム及びアップデート方法である。
The inventions of
Part or all of the usage conditions are not included in the decryption key storage file, and are an update program and an update method that are issued after the user completes the purchase or update settlement of the package software.
請求項8及び請求項21の発明により、利用者毎に異なる利用条件については、復号鍵格納ファイルに含めず、別ファイルとして発行することが出来るので、復号鍵格納ファイルの共通化、決済完了確認後のソフトウェア利用やアップデートが可能となる。
According to the inventions of
請求項9及び請求項22の発明は、
前記復号鍵格納ファイルは、乱数等の第1の鍵を置換表で置換した第2の鍵によって暗号化されるアップデートプログラム及びアップデート方法である。
The inventions of claim 9 and claim 22
The decryption key storage file is an update program and an update method that are encrypted with a second key obtained by replacing a first key such as a random number with a replacement table.
請求項9及び請求項22の発明により、復号鍵を含む復号鍵格納ファイルが暗号化されるので、より一層復号鍵の保護が図られる。 According to the ninth and twenty-second aspects of the present invention, since the decryption key storage file including the decryption key is encrypted, the decryption key can be further protected.
請求項10及び請求項23の発明は、
前記置換表は、前記ソフトウェア提供者毎に生成されるアップデートプログラム及びアップデート方法である。
The inventions of claim 10 and
The replacement table is an update program and update method generated for each software provider.
請求項10及び請求項23の発明により、同一のソフトウェアであれば販売者毎に置換表を変えれば、不正利用された場合に、販売ルートまでの特定が可能となり、販売者の権利も保護される。
According to the inventions of
請求項11及び請求項24の発明は、
前記置換表は、前記パッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化されるアップデートプログラム及びアップデート方法である。
The invention of claim 11 and claim 24
The replacement table is an update program and an update method that are encrypted by a one-way function such as a hash value obtained from binary data of the package software.
請求項11及び請求項24の発明により、ソフトウェアの改ざんを検知することが可能となる。 According to the eleventh and twenty-fourth inventions, it is possible to detect software tampering.
請求項12の発明は、
前記再パッケージ手段は、前記置換表を、前記パッケージソフトウェアに置き換えられたパッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化するアップデートプログラムである。
The invention of claim 12
The repackaging means is an update program that encrypts the replacement table with a one-way function such as a hash value obtained from binary data of the package software replaced with the package software.
請求項25の発明は、
前記置換表が、前記パッケージソフトウェアに置き換えられたパッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化されるアップデート方法である。
The invention of
In the update method, the replacement table is encrypted by a one-way function such as a hash value obtained from binary data of the package software replaced with the package software.
請求項12及び請求項25の発明により、利用条件を満足する限りは、ソフトウェアのアップデートの有無によらず、又、アップデートされたことを意識することなくソフトウェアを利用し続けることが可能となる。 According to the twelfth and twenty-fifth aspects of the invention, as long as the use conditions are satisfied, it is possible to continue to use the software regardless of whether or not the software has been updated and without being aware of the update.
請求項13及び請求項26の発明は、
前記利用状況データベースは、前記利用者の端末に於いて、前記端末の識別情報(MACアドレス、BIOSのシリアル番号、ハードディスクのシリアル番号等)のハッシュ値等の一方向性関数によって暗号化されるアップデートプログラム及びアップデート方法である。
The inventions of
The usage database is encrypted at the user's terminal by a one-way function such as a hash value of identification information (MAC address, BIOS serial number, hard disk serial number, etc.) of the terminal. Program and update method.
請求項13及び請求項26の発明により、利用状況データベースを利用者の端末以外の端末にコピーして利用することが不可能となる。 According to the thirteenth and twenty-sixth aspects of the present invention, it is impossible to copy and use the usage status database to a terminal other than the user terminal.
尚、本明細書に於ける「送付」には、ネットワークを介した利用者からのダウンロード要求による送信形態や、電子メールへの添付による送信形態の他、これらいずれか1以上をCD−ROM等の可搬型の記録媒体に格納し、郵送等により利用者に送付する形態も含まれる。つまり、本発明に於いて、利用者がプログラム等のデータを入手する方法としては、ネットワークを介したダウンロード、メール添付の他、プログラムの全部又は一部がCD−ROM等の可搬型記録媒体に格納され、利用者が各自、当該可搬型記録媒体から端末にコピーを行う場合も含まれる。 In addition, in the “sending” in this specification, in addition to a transmission form by a download request from a user via a network, a transmission form by attachment to an e-mail, at least one of these is a CD-ROM or the like It is also possible to store the information in a portable recording medium and send it to the user by mail or the like. In other words, in the present invention, as a method for the user to obtain data such as a program, all or a part of the program can be stored in a portable recording medium such as a CD-ROM in addition to downloading via a network and attaching to a mail. It also includes the case where the user makes a copy from the portable recording medium to the terminal.
又、本明細書に於いて、「ソフトウェア提供者」には、ソフトウェアを作成したメーカーのみならず、ソフトウェアを直接利用者に提供又は販売する者も含まれるものとする。 Further, in this specification, “software provider” includes not only the manufacturer that created the software, but also those who directly provide or sell the software to users.
又、本明細書に於いて、「利用者」とは、ソフトウェア提供者に、特定のソフトウェアを利用することを認められた者を指す。 Further, in this specification, “user” refers to a person who is permitted to use specific software by a software provider.
又、本明細書に於いて、「利用者端末にダウンロード、コピー、格納、生成を行う」とは、利用者の端末内の書き換え可能な外部(補助)記憶装置にダウンロード等することを指す。書き換え可能な外部記憶装置には、その端末の内蔵ハードディスクや、端末と接続された外付けディスク(MOやFD)等の記憶装置が含まれる。但し、これらの記憶装置はその端末と1対1で対応可能なものであって、他の端末との共有ディスクや端末とネットワークを介して接続された外部記憶装置は含まないものとする。 Further, in this specification, “download, copy, store, and generate to a user terminal” refers to downloading to a rewritable external (auxiliary) storage device in the user terminal. The rewritable external storage device includes a storage device such as an internal hard disk of the terminal and an external disk (MO or FD) connected to the terminal. However, these storage devices are one-to-one correspondence with the terminal, and do not include a shared disk with another terminal or an external storage device connected to the terminal via a network.
又、本明細書に於いて、「利用者端末」は、本発明のアップデートプログラムや、パッケージソフトウェア等のプログラム、データを格納し、実行・利用するために必要な構成(CPU、メインメモリ、外部記憶装置、通信用デバイス、入出力デバイス等)を有する通常のコンピュータであればよい。
In this specification, the “user terminal” is a configuration (CPU, main memory, external) necessary for storing, executing, and using the update program of the present invention, a program such as package software, and data. Any ordinary computer having a storage device, a communication device, an input / output device, or the like may be used.
本発明のアップデートプログラム及びアップデート方法によれば、ソフトウェア利用者と、ソフトウェア提供者の双方にかかる負担が削減され、ソフトウェアのアップデートの利便性が増す。 According to the update program and the update method of the present invention, the burden on both the software user and the software provider is reduced, and the convenience of software update is increased.
再パッケージに必要となる復号鍵は既に利用者端末内に存在するので、アップデート用に新たに鍵を生成する等の手間が発生することなく、アップデートが必要となった時に利用者端末に本発明のアップデートプログラムとアップデート用のソフトウェアをダウンロードさせるだけで、利用者端末は、試用版か通常版かによらず、ソフトウェアのアップデートを行うことが可能となる。 Since the decryption key necessary for repackaging already exists in the user terminal, the present invention is applied to the user terminal when an update is required without generating a new key for updating. By simply downloading the update program and update software, the user terminal can update the software regardless of whether it is a trial version or a normal version.
又、一度、利用者端末に復号鍵解読プログラムとパッケージソフトウェアが格納されれば、その利用者端末に於いてしか行えないソフトウェアのアップデートが可能となり、不正なアップデートが防止されるだけでなく、正当な利用者に対してのみ無償でアップデートサービスを提供することが可能となる。 Also, once the decryption key decryption program and package software are stored in the user terminal, it is possible to update the software that can only be performed on the user terminal, which not only prevents unauthorized updates, but also It is possible to provide an update service free of charge only to new users.
本発明のアップデートプログラムは、販売者によらず、同一のプログラムでよく、ソフトウェアも同一でよいので、アップデートにかかる手間を大幅に削減することが出来る。しかも、試用版ソフトウェアのアップデートを禁止する必要がなくなり、試用版ソフトウェアにアップデートを禁止するためのソースコードを挿入する手間も削減される。又、利用者端末に試用版ソフトウェアが重複してダウンロードされたり、試用版ソフトウェアが通常版ソフトウェアで上書きされてしまう危険性がなくなる。
Since the update program of the present invention may be the same program and the software may be the same regardless of the seller, the labor required for the update can be greatly reduced. In addition, it is not necessary to prohibit the update of the trial version software, and the effort for inserting the source code for prohibiting the update into the trial version software is reduced. Further, there is no risk of the trial version software being downloaded to the user terminal in duplicate or the trial version software being overwritten with the normal version software.
以下、本発明の好適な実施の形態について、図1、図2、図3、図4、図5、図6を参照して詳細に説明する。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to FIGS. 1, 2, 3, 4, 5, and 6.
図2は本発明のアップデートプログラム1及びアップデート方法により、ソフトウェアプログラム(以下、ソフトウェア31という)をアップデートする前段階として、アップデートの対象となる当該ソフトウェア31を利用者端末7にダウンロード(ソフトウェア提供者側のサーバ端末6に保存されているデータをネットワークを介して転送すること)して、当該ソフトウェア31を利用者端末7のみで利用可能とするために必要なプログラム(以下、復号鍵解読プログラム2という)と、当該ソフトウェア31をパッケージ化したパッケージソフトウェア3と、インストールプログラム5の構成を示している。
FIG. 2 shows that the
図1は、図2に示されるパッケージソフトウェア3、復号鍵解読プログラム2、インストールプログラム5が利用者端末7にダウンロードされた後、ソフトウェア31からソフトウェア41へのアップデートが必要となった時、サーバ端末6から利用者端末7にダウンロードされるパッケージソフトウェア4と、アップデートプログラム1の構成を示している。
FIG. 1 shows a server terminal when an update from
まず、図2の構成について説明する。利用者端末7は、希望のパッケージソフトウェア3を指定、選択等した上で、サーバ端末6からネットワークを介して、図2に示すパッケージソフトウェア3、復号鍵解読プログラム2、インストールプログラム5をダウンロードする。ソフトウェアを含むこれらのプログラムは1回ダウンロードされれて、利用者端末7に格納されればよい。尚、これらのプログラムは、ダウンロード形態に限らず、電子メールに添付されてもよく、又、CD−ROM等の可搬型の記録媒体に格納され、郵送等により利用者に送付された後、利用者端末7にコピーされてもよい。
First, the configuration of FIG. 2 will be described. The
利用者端末7は、これらダウンロードしたプログラム等を格納し、実行・利用するために必要な構成(CPU、メインメモリ71、外部記憶装置、通信用デバイス、入出力デバイス等)を有するものであり、通常のコンピュータであればよい。
The
パッケージソフトウェア3には、暗号化ソフトウェア31a、復号化手段33、パッケージ識別情報35(図示せず)が含まれる。尚、暗号化ソフトウェア31aは、ソフトウェア31を暗号鍵で暗号化したものである。以降、暗号化処理が施されたソフトウェア、プログラム、ファイル等のデータには、暗号化処理前の元データの符号にa,b等の添字を付すものとする。
The package software 3 includes
復号鍵解読プログラム2には、利用状況生成手段21、復号鍵解読手段23、展開手段25、復号鍵格納ファイル29が含まれる。
The decryption
尚、図2では、復号鍵格納ファイル29の代わりに暗号化された復号鍵格納ファイル29aが復号鍵解読プログラム2に含まれ、更に、暗号化された置換表27aも含まれる。置換表27は、暗号化された復号鍵格納ファイル29aの復号化に必要な鍵の解読に必要となる。各手段等の詳細は順次説明する。
In FIG. 2, the decryption
インストールプログラム5は、ダウンロードしたパッケージソフトウェア3を実際に利用者端末7で利用出来るように各プログラムやデータの起動順序を制御する等のサポートを行うプログラムである。尚、インストールプログラム5の中に、パッケージソフトウェア3や復号鍵解読プログラム2が含まれていてもよい。
The
まずは、パッケージソフトウェア3について、図3を参照しながら説明する。ソフトウェアは利用者端末7にダウンロード、格納される時には当然バイナリ形式のプログラムであるが、実際にソフトウェアを端末上で実行、利用したり、ディスプレイに表示させるためには、実行プログラムのみならず、ソフトウェアを実行するのに必要なプログラムが必要である。
First, the package software 3 will be described with reference to FIG. The software is of course a binary format when downloaded and stored in the
ソフトウェア提供者は、これら実行プログラムとソフトウェアを実行するのに必要なプログラム(以下、合わせてソフトウェア31という)を暗号化処理装置を用いて任意の乱数等の暗号鍵で暗号化し、暗号化ソフトウェア31aとする。
The software provider encrypts the execution program and a program necessary for executing the software (hereinafter collectively referred to as software 31) with an encryption key such as an arbitrary random number using an encryption processing apparatus, and encrypts the
暗号化する理由は主に2点あり、1点は、このソフトウェア31をダウンロードした正当な利用者であっても、後述する利用条件を満足しない限りはソフトウェア31を利用出来ないようにするためであり、もう1点は、ネットワークの経由過程で悪意者に盗聴されるのを防止するためである。
There are two main reasons for encryption, and one point is to prevent the
つまり、本発明では、暗号化ソフトウェア31aのみをダウンロードしたとしても、利用者であってもソフトウェア31の利用は行えず、暗号化ソフトウェア31aを復号化する過程を経て、初めてソフトウェア31の利用が可能となる。
That is, in the present invention, even if only the
更に、暗号化ソフトウェア31aの復号化に必要な復号鍵8は、本発明に於いては、利用者側が生成するものではなく、又、復号鍵格納ファイル29の中に利用者さえも容易に知ることが出来ない状態で保存されている。つまり、利用者毎に定められるソフトウェア31の利用条件を満足した場合のみ、復号鍵8を得ることが出来、しかも、この解読過程で得られた復号鍵8によってのみ、暗号化ソフトウェア31aの復号化を可能とする仕組みが採用されている。
Further, in the present invention, the decryption key 8 necessary for decryption of the
ここでは、暗号化・復号化に共通鍵暗号方式を用いるものとし、暗号鍵と復号鍵8は共通である。共通鍵暗号方式により生成された鍵による暗号化、復号化の処理時間は、公開鍵暗号方式による暗号化、復号化処理時間と比較して短いので、利用者にとってもソフトウェア提供者にとっても、利便性が損なわれることがない。 Here, a common key cryptosystem is used for encryption / decryption, and the encryption key and the decryption key 8 are common. The encryption / decryption processing time using the key generated by the common key encryption method is shorter than the encryption / decryption processing time using the public key encryption method, which is convenient for both users and software providers. There is no loss of sex.
尚、共通鍵暗号方式の代わりに公開鍵暗号方式を用いてもよいが、その場合には、利用者による鍵の生成の手間をなくすため、暗号鍵と復号鍵8のいずれも、ソフトウェア提供者側で生成するものとする。 A public key cryptosystem may be used instead of the common key cryptosystem. In this case, both the encryption key and the decryption key 8 are provided by the software provider in order to save the user from generating a key. Shall be generated on the side.
この暗号鍵(復号鍵8)は利用者以外の者、つまり、本実施の形態に於いてはソフトウェア提供者によって生成された乱数である。尚、図1でソフトウェア31のアップデートの際にダウンロードされるパッケージソフトウェア4の中に、ソフトウェア41の代わりに暗号化ソフトウェア41aが含まれる場合には、この暗号化ソフトウェア41aは、ソフトウェア31の暗号鍵(復号鍵8)と同一の鍵で暗号化されている。
This encryption key (decryption key 8) is a random number generated by a person other than the user, that is, a software provider in the present embodiment. If the packaged software 4 downloaded when updating the
図3に示すように、暗号化ソフトウェア31aと、暗号化ソフトウェア31aを復号化するのに必要なプログラム類(復号化手段33、パッケージ識別情報35)とに、ヘッダ37を付加したものが、パッケージソフトウェア3となる。
As shown in FIG. 3, an
ソフトウェア31は、暗号化され、更にパッケージ化されることにより、インストールプログラム5(図1に於いてはアップデートプログラム1)やその他のプログラムとの連動によってのみ実行可能となり、単独実行や利用者端末7のハードディスク等への格納が出来ないようになる。
The
従って、利用者及び悪意者が復号鍵8を知り得たとしても、不正に暗号化ソフトウェア31aの復号化をすることは不可能であるし、又、実行プログラムのバイナリデータを改変してウィルスを作成したり不正利用の目的とすることが不可能となる。
Therefore, even if the user and the Service-to-Self are aware of the decryption key 8, it is impossible to decrypt the
尚、図2に示した利用状況生成手段21、展開手段25等の、利用者によらず共通のファイルやプログラムは、パッケージソフトウェア3に含まれてもよい。逆に、復号化手段33は、パッケージソフトウェア3に含まれる必要はなく、復号鍵解読プログラム2に含まれてもよい。
Note that files and programs that are common regardless of the user, such as the usage
又、複数種類のソフトウェアを利用者端末7内で利用する場合であって、ソフトウェアの種類によらず共通に利用可能な手段は、利用者端末7内に重複してダウンロードされる必要はないので、パッケージソフトウェア3や復号鍵解読プログラム2に含まれる必要はなく、別パッケージ又は別ファイルとして任意に利用者端末7にダウンロードされてもよい。
In addition, when a plurality of types of software are used in the
復号化手段33は、暗号化された各種データを鍵等を用いて復号化するのに必要なプログラムである。尚、復号化手段33は、単に復号化を行う他、ハッシュ値の生成等を行ってもよい。又、ハッシュ値の生成等に必要なプログラムが別途用意され、利用者端末7にダウンロードされてもよい。
The decryption means 33 is a program necessary for decrypting various encrypted data using a key or the like. Note that the decrypting means 33 may generate a hash value or the like in addition to simply decrypting. Further, a program necessary for generating a hash value or the like may be separately prepared and downloaded to the
パッケージ識別情報35は、ソフトウェアの種類及び/又はソフトウェア販売者を識別することが出来る情報であり、本実施の形態に於いては、パッケージソフトウェア3とともにダウンロードされた復号鍵解読手段23を起動するための入力情報として用いられる。
The
次に、復号鍵解読プログラム2の詳細について図4を参照しながら説明する。
Next, details of the decryption
復号鍵解読手段23は、暗号化ソフトウェア31aを復号化するための復号鍵8を内包する復号鍵格納ファイル29と連携して、復号鍵8を解読する手段である。尚、上述したように、本実施の形態に於いては、復号鍵解読手段23は、パッケージ識別情報35の入力によって起動するようになっている。
The decryption key decrypting means 23 is means for decrypting the decryption key 8 in cooperation with the decryption key storage file 29 containing the decryption key 8 for decrypting the
復号鍵解読手段23と、復号鍵格納ファイル29の構成の一例を図4に示す。尚、図4は、これらのプログラムやファイルがサーバ端末6からネットワークを介して利用者端末7にダウンロードされ、利用者端末7のハードディスク等の補助記憶装置(外部記憶装置)に格納されている状態を示すが、復号鍵格納ファイル29内の復号鍵8は、復号鍵解読手段23によってしか解読、取り出し出来ないようになっている。
An example of the configuration of the decryption key decryption means 23 and the decryption key storage file 29 is shown in FIG. 4 shows a state in which these programs and files are downloaded from the
復号鍵解読手段23は、本実施の形態に於いては、照合・更新手段231,232,233を有する。照合・更新手段231,232,233は、復号鍵格納ファイル29内の利用条件と、後述する利用状況データベース21a内の利用状況とを順次照合して、利用状況が利用条件を超えない場合に限り、利用状況データベース21aを更新する。最終的に問題なく全ての照合が完了した場合にのみ、復号鍵格納ファイル29内の復号鍵8が解読され、展開手段25で利用者端末7のメインメモリ71上に展開される。
In this embodiment, the decryption key decryption means 23 has collation / update means 231, 232, and 233. The collation / update means 231, 232, and 233 sequentially collate the usage conditions in the decryption key storage file 29 and the usage status in the usage status database 21 a described later, and only when the usage status does not exceed the usage conditions. The usage status database 21a is updated. Only when all verifications are completed without any problem, the decryption key 8 in the decryption key storage file 29 is decrypted and expanded on the main memory 71 of the
その後、復号化手段33は、復号鍵解読手段23によって解読された復号鍵8によってのみ、暗号化ソフトウェア31aを復号化し、展開手段25は、復号化されたソフトウェア31をメインメモリ71上に展開する。ソフトウェア31は、メインメモリ71上で利用可能となる。
Thereafter, the decryption means 33 decrypts the
復号鍵格納ファイル29は、1以上の鍵と、1以上の利用条件と、復号鍵8で構成されている。鍵が照合・更新手段231,232,233に渡されることにより、鍵に対応する利用条件及び利用状況が取り出され、各々照合されるようになっている。尚、ここでの鍵も、復号鍵8同様、乱数生成器で生成されるのが一般的である。 The decryption key storage file 29 is composed of one or more keys, one or more usage conditions, and a decryption key 8. By passing the key to the verification / update means 231, 232, 233, the usage conditions and usage status corresponding to the key are extracted and verified. Note that the key here is also generally generated by a random number generator like the decryption key 8.
復号鍵格納ファイル29は、本実施の形態に於いては、図2に示したように復号鍵解読プログラム2の一部として、パッケージソフトウェア3とともに1回ダウンロードされて以降は、ソフトウェア31の利用やアップデートの都度、ネットワークを介して復号鍵8や利用条件を取得する必要がない。
In the present embodiment, the decryption key storage file 29 is downloaded once together with the package software 3 as part of the decryption
しかも復号鍵8は、上述したように、利用条件と利用状況との照合によってしか取り出されないようになっているため、利用者によらず共通でもよい。従って、復号鍵格納ファイル29は、利用者によらず共通のファイルとなり、利用者によらず共通のインストールプログラム5に含めることが可能となり、ソフトウェア提供者側のインストールプログラム5や、復号鍵格納ファイル29の作成の手間が軽減される。
In addition, as described above, the decryption key 8 is extracted only by collation between the use conditions and the use status, and therefore may be common regardless of the user. Therefore, the decryption key storage file 29 becomes a common file regardless of the user, and can be included in the
図4の説明に戻ると、展開手段25は、既に述べたように、復号化された復号鍵8や、復号鍵8によって復号化されたソフトウェア31や、その他の鍵をメインメモリ71に一時的に格納する手段である。つまり、これらのデータや鍵は単独ではハードディスク等の外部記憶装置には保存することが出来ないようになっているため、予め決められた利用条件を超えてソフトウェア31を利用・アップデートしたり、鍵だけを利用したり、復号化されたソフトウェア31を利用者端末7から他人の端末にコピー、送信等することは不可能である。
Returning to the description of FIG. 4, the expansion means 25 temporarily stores the decrypted decryption key 8, the
従って、復号鍵解読手段23による、復号鍵格納ファイル29内の復号鍵8の解読過程を経なければ、復号鍵8は利用者であっても知り得ることが出来ないし、又、復号鍵8だけをハードディスク等に保存することは出来ない。 Therefore, the decryption key 8 cannot be known even by the user unless the decryption process of the decryption key 8 in the decryption key storage file 29 by the decryption key decrypting means 23 is performed. Cannot be saved to a hard disk.
利用状況生成手段21は、利用者自身による不正な更新が不可能な、及び利用者端末7以外の端末による読みとり、更新が出来ないような利用状況データベース21aを、利用者端末7の外部記憶装置にのみ生成する手段である。
The usage status generation means 21 generates an usage status database 21a that cannot be illegally updated by the user himself / herself and cannot be read or updated by a terminal other than the
この利用状況データベース21a内には利用者端末7によるソフトウェア31の利用状況が格納される。利用状況は、実際にソフトウェア31を利用した回数、金額、日時や、アップデートした回数、日時等であり、利用者が利用者端末7でソフトウェア31を利用又はアップデートする毎に、対応する利用条件(回数、金額、日時や期限等)を上回らないまで、つまり予め決められた利用限度に達するまで更新される。利用条件を超えてソフトウェア31の利用・アップデートがされそうになった場合には、その場でソフトウェア31の利用・アップデートや、ソフトウェア利用・アップデートの前過程(復号鍵解読過程)を中止させる。
The usage status database 21a stores the usage status of the
尚、当然のことながら、ソフトウェア提供者は、ソフトウェアに応じて、ソフトウェア利用額の計算方法(例えば、1時間利用したら200円課金、1回利用毎に100円課金等)や利用回数の計数方法等を予め決めておく必要がある。 As a matter of course, the software provider can calculate the usage amount of the software (for example, charge 200 yen if used for 1 hour, charge 100 yen for each use) or count the number of times of use depending on the software. Etc. need to be determined in advance.
又、サーバ端末6又は利用者端末7のいずれかには、利用者端末7によるソフトウェア31の利用状況を把握することが出来、かつ、利用状況データベース21aの更新に反映させることが出来るプログラム(例えば計数手段、計時手段、料金計算手段等)が必要となる。
Further, either the
更に、利用条件の1つとして「金額」が設定されているような場合には、サーバ端末6側に課金手段を設け、利用者が予めその金額を何らかの手段(現金、振込、クレジットカード等)で支払い、その支払った事実がソフトウェア提供者側(サーバ端末6)によって確認された後、鍵と利用条件が利用者端末7に発行されることが当然必要である。
In addition, when “amount” is set as one of the usage conditions, a billing means is provided on the
又、課金方式には、プリペイド方式を採用することも可能で、この場合、利用者は、例えば、5000円分の利用条件をサーバ端末6から購入し、決済完了とともに、5000円分の利用条件とこの利用条件に対応する鍵の発行を受ける。利用者は、利用状況が合計して5000円の利用を超えない限り、又、その他の利用条件を満足している限り、ソフトウェア31を利用することが可能である。
In addition, a prepaid method can be adopted as the charging method. In this case, for example, the user purchases a usage condition for 5000 yen from the
尚、ソフトウェア31の利用を、会員制かつ月額課金制にするのであれば、利用者の所有するクレジットカードの番号や銀行口座の確認がされた後、鍵と利用条件が発行されるのが望ましい。これにより、ソフトウェア31の利用時間に応じた料金や、固定料金の支払いが、毎月自動的に行われるようになる。
If the use of the
このように、決済を行った後にソフトウェア31の利用を開始させる場合や、ソフトウェア31の利用に際し、金銭に関連するような利用条件と利用状況の照合が必要である場合には、当該利用条件とこれに対応する鍵は、利用者によって異なるものとなるため、復号鍵格納ファイル29に含まれるのではなく、別途ソフトウェア提供者から受け取ることが望ましい。
As described above, when the use of the
尚、ソフトウェア31を無償で試用させるような場合であって、利用条件が利用者によらず共通である場合には、図4に示したように、復号鍵格納ファイル29に全ての利用条件と対応する鍵が含まれてもよい。
If the
利用状況データベース21aの読みとり、更新は、復号鍵解読手段23による復号鍵8の解読過程に於いてのみしか行われず、その過程以外に於いて、利用者や悪意者による更新、改ざんはされないこととする。 The usage status database 21a is read and updated only in the decryption process of the decryption key 8 by the decryption key decryption means 23, and is not updated or falsified by the user or the Service-to-Self in any other process. To do.
尚、利用状況データベース21a内の利用状況の無断更新、改ざん、不正利用等の検知は、公知のハッシュ(一方向性)関数技術等を用いれば可能である。例えば、利用状況を常に、直前に更新又は読みとりがされた時点の利用状況のハッシュ値で暗号化する等して、次の更新又は読みとり時に、正しいハッシュ値で暗号化されていたかどうかの整合性をチェックする。 In addition, it is possible to detect the usage status in the usage status database 21a without permission update, falsification, unauthorized use, and the like using a known hash (one-way) function technique or the like. For example, the consistency of whether or not it was encrypted with the correct hash value at the time of the next update or reading, such as by always encrypting the usage status with the hash value of the usage status at the time of the last update or reading Check.
不正な読みとりや更新が実行されていた場合には、次に正規の読みとりや更新をしようとしても、利用状況が本来のハッシュ値で暗号化されていないか、正しい復号鍵8を手に入れることが出来ないため、復号化が出来ない。 If an illegal read or update has been performed, the correct read key 8 is obtained whether the usage status is not encrypted with the original hash value, even if the next normal read or update is attempted. Can not be decrypted.
又、例えば、利用状況の更新を、例えば1ずつ減らす等、決められた数字でしか増減出来ないような仕組みにしておき、本来利用状況を2回から3回に更新すべきところを、0回に改ざんすることは不可能なようにすることも出来る。 Also, for example, the usage status can be updated only by a predetermined number, for example, by reducing it by one, for example, and the usage status should be updated from 2 to 3 times. It can be made impossible to tamper with.
このように、万一、不正な読みとりや改ざん等がされた場合には、その場でソフトウェア31の利用や復号鍵8の解読を中止させるか、レジストリ等に暗号化してバックアップしておいた正しい利用状況を読み込んで、改ざんされた利用状況データベース21aを元の状態に復元させるようにする。
In this way, in the unlikely event that unauthorized reading or falsification is made, the use of the
利用状況データベース21aを利用者端末7にのみ生成可能とするためには、パッケージソフトウェア3が最初にダウンロードされた端末で1回のみ、データベースの生成が可能なプログラムを設けるか、ダウンロード前にサーバ端末6が予め利用者端末7の識別情報(MACアドレス、BIOSのシリアル番号、ハードディスクのシリアル番号等)を認識し、その識別情報のハッシュ値等で利用状況データベース21aを暗号化しておき、他の識別情報を有する端末内では、暗号化された利用状況データベース21aを復号化出来ないようにするプログラムを設ける等する。
In order to be able to generate the usage status database 21a only in the
次に、利用状況データベース21aを利用者端末7以外の端末での読みとりを不可とするためには、復号鍵解読手段23が利用条件と利用状況の照合を行う際に、サーバ端末6側に登録された識別情報を有する利用者端末7内の外部記憶装置に利用状況データベース21aが生成されているかどうかを確認し、利用状況データベース21aが見つからなかった場合には、利用者端末7以外の端末でソフトウェア31が利用・アップデートされそうになったとみなし、ソフトウェア31の利用・アップデートを中止させる方法や、利用状況データベース21aを利用者端末7毎に固有の識別情報のハッシュ値等で暗号化しておき、他の端末の識別情報のハッシュ値等では利用状況データベース21aを復号化出来ないようにする方法等が挙げられる。
Next, in order to make the usage database 21a unreadable by terminals other than the
又、予め生成される利用条件の中に、利用者端末7の識別情報を1条件として加えておき、利用条件と利用状況の照合をする際に、利用状況として実際利用されている端末の識別情報を調べ、利用条件としての本来利用されるべき端末の識別情報と合致しない場合にはソフトウェア31の利用・アップデートを中止させる方法をとってもよい。尚、この利用条件は、当然のことながら利用者毎に異なるものとなるため、復号鍵格納ファイル29の共通化を図る場合には、復号鍵格納ファイル29には含まれないことが望ましい。
In addition, the identification information of the
利用状況データベース21aの生成の仕組みを以上のようにしていることにより、仮に利用条件(アップデート条件を含む)が回数無制限や無償利用等であった場合でも、中身が空又は無意味なデータで構成された利用状況データベース21aを利用者端末7に生成し、利用条件と利用状況の照合の際に、この利用状況データベース21aの存在を確認する過程を経るようにすれば、利用者端末7以外の端末でのソフトウェア31の利用・アップデート、つまり利用者及び悪意者によるソフトウェア31の不正利用・不正アップデートを防止することが出来る。
By configuring the usage status database 21a as described above, even if the usage conditions (including update conditions) are unlimited or free use, the content is empty or meaningless. If the generated usage status database 21a is generated in the
更に、利用条件(アップデート条件を含む)が回数無制限や試用期間中の無償利用等の決済を必要としないものであっても、0円で決済を行うようにすれば、ソフトウェア提供者側には以下のようなメリットがある。 In addition, even if the usage conditions (including update conditions) do not require an unlimited number of payments or free use during the trial period, if the payment is made at 0 yen, the software provider side There are the following merits.
まず、利用者に決済を行わせる際には、併せてユーザ登録をさせるのが一般的であるが、0円決済と併せてユーザ登録をさせれば、ソフトウェア提供者は利用者の情報を取得することが出来るので、ユーザサポート、違反コピー追跡等に活用することが可能となる。更に、利用者側の承諾を得れば、その他のソフトウェアの販売情報等を利用者に送付、通知することが出来る。 First, when making a user make a payment, it is common to register the user together. However, if the user registration is made together with the 0 yen payment, the software provider obtains the user information. It can be used for user support, violation copy tracking, and the like. Furthermore, with the consent of the user, other software sales information and the like can be sent and notified to the user.
又、特に無償の試用版ソフトウェアを利用者に利用させる場合には、ユーザ登録させずに単にソフトウェアをダウンロード可能としてしまうと、試用版ソフトウェアが濫用され、不正利用の温床となる場合があるため、利用者に0円決済をさせ、併せてユーザ登録もさせるのがよい。 Also, especially when letting users use free trial version software, if the software can only be downloaded without user registration, the trial version software may be abused and become a hotbed for unauthorized use. It is recommended that the user make 0 yen settlement and also register as a user.
無償の試用版ソフトウェアが提供されれば、利用者はこれに注目して集まり自動的にユーザ登録してくれるので、ソフトウェア提供者は、利用者の情報を集中的に、かつ費用や手間をかけずに取得することが出来、こうして取得した利用者の情報を販促等に活用することが可能となる。 If free trial software is provided, the user will pay attention to this and automatically register as a user, so the software provider will concentrate the user's information in a costly and labor-intensive manner. The user information acquired in this way can be used for sales promotion and the like.
ここで、復号鍵解読手段23、復号鍵格納ファイル29、利用状況データベース21aにより、復号鍵格納ファイル29内の復号鍵8が解読されるまでの具体的な過程を、図4を用いて詳細に説明する。 Here, a specific process until the decryption key 8 in the decryption key storage file 29 is decrypted by the decryption key decryption means 23, the decryption key storage file 29, and the usage status database 21a will be described in detail with reference to FIG. explain.
まず鍵0によって、最初の照合・更新手段231を起動させる。最初の鍵0の入手経路、生成方式等は問わないが、本実施の形態に於いては、鍵0がパッケージ識別情報35である。この場合、直接的に復号鍵解読手段23を起動することが出来る。
First, the first collation / update means 231 is activated by the key 0. The acquisition path, generation method, and the like of the first key 0 are not limited, but the key 0 is the
照合・更新手段231は、該当する利用条件を検索した上で、更に、その利用条件に対応する利用状況データベース21a内の利用状況を検索し、利用状況データベース21aが正当な場所(利用者端末7内)に存在するかどうかを確認し、利用条件1と利用状況1の照合を行い、利用状況1が利用条件1を超えていなければ、利用状況1を更新し、鍵1を取得する。
The collation /
鍵1は、次の照合・更新手段232を起動する。照合・更新手段232は、先の手続きと同様に利用条件2と利用状況2の照合と、利用状況2の更新を行い、鍵2を取得する。
The key 1 activates the next verification / update means 232. The collation / update means 232 collates the
鍵2は、次の照合・更新手段233を起動する。照合・更新手段233は、先の手続きと同様に利用条件3と利用状況3の照合と、利用状況2の更新を行い、鍵3を取得する。
The
最終的に全ての利用条件と利用状況の照合が問題なく完了し、最後の鍵3が取得されれば、復号鍵8が解読され、展開手段25によってメインメモリ71上に展開される。尚、最後の鍵3の存在は任意であり、照合・更新手段233が直接復号鍵8を取得してもよい。 Finally, when all the usage conditions and the usage status are collated without problems and the last key 3 is acquired, the decryption key 8 is decrypted and expanded on the main memory 71 by the expansion means 25. Note that the presence of the last key 3 is arbitrary, and the collation / update means 233 may directly acquire the decryption key 8.
尚、図4のように利用条件の数が少ない場合や、復号鍵8の解読をより困難にするためには、復号鍵格納ファイル29の内部を、同じ利用条件と利用状況の照合を繰り返すような構造としたり、1つの利用条件(例えば、利用限度額5000円)を細分化する(例えば、5000円を各桁に分割する)等が考えられる。 In addition, when the number of usage conditions is small as shown in FIG. 4 or in order to make the decryption key 8 more difficult to decrypt, the same usage conditions and usage status collation are repeated in the decryption key storage file 29. It may be possible to use a simple structure, or to subdivide one use condition (for example, use limit amount 5000 yen) (for example, divide 5000 yen into each digit).
又、復号鍵格納ファイル29内の鍵や利用条件の全部又は一部は、利用者端末7にダウンロードさせず、サーバ端末6又はデータ書き換えが不可能な記録媒体に格納されていてもよい。尚、鍵の場合は、単に鍵だけが格納されているのではなく、鍵の入手に必要な入口(照合・更新手段231,232,233によるチェック結果を受け取り確認する手段)と出口(次に進む照合・更新手段231,232,233の場所を示した手段)も合わせて格納されているものとする。
Further, all or a part of the keys and usage conditions in the decryption key storage file 29 may be stored in the
例えば、図4に於いて、鍵1を利用者端末7の識別情報とともにサーバ端末6に格納する場合、照合・更新手段231はサーバ端末6にアクセスして、利用条件1と利用状況1の照合結果に問題がなかったことをサーバ端末6に通知した上で、サーバ端末6から鍵1を入手する。当然、サーバ端末6はアクセス元が正当な利用者端末7であることを確認する必要がある。
For example, in FIG. 4, when the key 1 is stored in the
又、例えば、利用条件2をCD−ROMに格納する場合、照合・更新手段232は、必ず正当な利用者端末7からCD−ROMにアクセスすることにして、CD−ROM内の利用条件2を入手後、利用状況2との照合を行う。
Further, for example, when the
サーバ端末6内のデータの改ざんや、CD−ROM内のデータ書き換えは極めて困難であるため、利用者及び悪意者によるソフトウェア31の不正利用がより困難になり、復号鍵8の更なる保護が図られることになる。
Since alteration of data in the
このように、復号鍵格納ファイル29内の利用条件と鍵の一部を、サーバ端末6やCD−ROM等の記録媒体に格納する場合は、利用者端末7が、ソフトウェア31の利用都度、サーバ端末5や記録媒体にアクセスしなければならないが、それに伴い、処理や通信にかかる時間が多くなり、通信費もかかる。
As described above, when the usage conditions and a part of the key in the decryption key storage file 29 are stored in the recording medium such as the
従って、ソフトウェア31を有償で利用者に購入させるような場合には、サーバ端末6は、利用条件と鍵の一部を、復号鍵格納ファイル29とは別に、利用者の決済完了後発行し、利用者端末7にダウンロードさせることが望ましい。
Therefore, in the case where the user purchases the
この場合、利用者端末7内の利用状況生成手段21は、発行された利用条件と鍵を利用状況データベース21aに格納し、更に、当該利用条件に対応する利用状況を生成する。
In this case, the usage status generation means 21 in the
これにより、通信費や処理の時間がかかることなく、復号鍵格納ファイル29は利用者によらず共通のファイルでよく、しかも、利用者毎に利用条件と対応する鍵を生成して発行するだけで、その利用者の利用者端末7だけが利用条件の範囲内でソフトウェア31を利用することが出来るようになり、利用者及びソフトウェア提供者の双方の利便性が図られる。
As a result, the decryption key storage file 29 may be a common file regardless of the user without incurring communication costs and processing time, and only a key corresponding to the use condition is generated and issued for each user. Thus, only the
尚、復号化手段33は、復号鍵解読手段23で全ての解読過程を順番に経て解読された復号鍵8によってのみ、暗号化ソフトウェア31aの復号化を可能とする。つまり、何らかの方法で復号鍵8が知られてしまったとしても、暗号化ソフトウェア31aの復号化は、復号鍵解読手段23によって復号鍵格納ファイル29の中の復号鍵8が解読された利用者端末7内でしか行われない。
Note that the decryption means 33 enables the decryption of the
従って、復号鍵格納ファイル29は利用者によらず共通であっても、利用者毎に発行される利用条件と対応する鍵のうち、鍵を毎回異なる乱数にすれば、結果として、復号鍵8の解読ルートを利用者毎に変えることが出来、その利用者しかソフトウェア31を利用することが出来ないようにすることが出来る。
Therefore, even if the decryption key storage file 29 is common to all users, if the key is changed to a random number each time among the keys corresponding to the use conditions issued for each user, the decryption key 8 is obtained as a result. Can be changed for each user, and only the user can use the
復号鍵8は、以上のような解読過程を経て、復号鍵格納ファイル29から取り出されるが、ここで、復号鍵格納ファイル29のファイル構造の一例を図6に示す。 The decryption key 8 is extracted from the decryption key storage file 29 through the decryption process as described above. An example of the file structure of the decryption key storage file 29 is shown in FIG.
図6に基づいて説明すると、復号鍵格納ファイル29は、ルートディレクトリの下に、復号鍵8の取得経路、取得順序を示す経路ディレクトリと、利用状況データベース21aの生成場所や利用状況の更新方法を示す利用状況ディレクトリとを構成している。 Referring to FIG. 6, the decryption key storage file 29 includes an acquisition path for the decryption key 8, a path directory indicating the acquisition order, a generation location of the usage status database 21a, and a usage status update method under the root directory. The usage status directory shown in FIG.
尚、図6中、点線枠で囲まれた部分は、ソフトウェア31を有償で利用させる場合(決済が必要な場合)や、利用条件が利用者毎に異なる場合には、復号鍵格納ファイル29に含まれず、別途、ソフトウェア提供者から発行され、利用状況データベース21aに格納される部分である。
In FIG. 6, the portion surrounded by the dotted line frame is stored in the decryption key storage file 29 when the
経路ディレクトリ下には、照合・更新手段231,232,233を起動するための鍵と対応する利用条件が順番に並び、最終的に取得可能な復号鍵8自体も含まれている。 Under the path directory, keys for activating the collation / update means 231, 232, 233 and usage conditions corresponding to the keys are arranged in order, and the finally obtainable decryption key 8 itself is also included.
又、例えば、一定期間はソフトウェア31を無償で利用させる試用期間を設け、試用期間経過後は、有償に限り継続利用させるような場合には、経路ディレクトリ下には、試用期間中に復号鍵8を取得するための鍵と対応する利用条件の経路と、試用期間経過後に復号鍵8を取得するための鍵と対応する利用条件の経路の2つが並列に並ぶ。
Further, for example, when a trial period for using the
これにより、利用者は、ソフトウェア31の試用期間が経過しても、新たに通常版ソフトウェアを購入、ダウンロードする必要がなく、購入決済完了後に残りの利用条件と鍵を発行してもらうだけで、ソフトウェア31を継続利用することが出来る。又、後述するように、本発明のアップデートプログラムにより、試用版から通常版にアップデートするだけで、通常版ソフトウェアを即座に利用出来るようになる。
Thereby, even if the trial period of the
又、利用状況ディレクトリ下には、各利用条件に対応する利用状況の原型が含まれており、利用状況生成手段21は、ソフトウェア31の初回利用時、この利用状況の原型を利用状況データベース21aにコピー又は移動する。
Also, under the usage status directory, a usage status prototype corresponding to each usage condition is included, and the usage status generation means 21 stores the usage status prototype in the usage status database 21a when the
尚、利用状況の原型は、例えば、回数制限(例えば10回)の利用条件に対応するものである場合には、「0回」というデータで構成されているか、「10回」というデータで構成される。 For example, when the usage state prototype corresponds to a usage condition with a frequency limit (for example, 10 times), it is composed of data “0 times” or data “10 times”. Is done.
利用状況の原型が「10回」というデータで構成されている場合には、利用状況データベース21aは、ソフトウェア31の利用の都度、1回ずつ回数を減らすように更新され、「0回」になった時点でソフトウェア31を利用出来なくなるので、照合・更新手段231,232,233に於ける照合作業は実質的に不要となる。
When the usage status prototype is composed of data of “10 times”, the usage status database 21a is updated to reduce the number of times once each time the
一方、利用状況の原型が「0回」というデータで構成されている場合には、照合・更新手段231,232,233は、利用回数を増やすという利用状況データベース21a内の更新作業を行い、かつ、利用条件を満足しているかどうかという利用条件との照合作業を行う必要がある。 On the other hand, when the usage pattern is composed of data of “0 times”, the collation / update means 231, 232, 233 perform update work in the usage condition database 21a to increase the number of uses, and Therefore, it is necessary to perform a collation operation with the use condition as to whether or not the use condition is satisfied.
つまり、照合・更新手段231,232,233は、鍵に対応する利用状況データベース21aの場所を利用状況ディレクトリ下から探し出し、利用状況データベース21aの更新を行ない、最終的に次の鍵を取得する。又、場合によっては、対応する利用条件を利用条件ディレクトリ下から探し出して、利用条件と利用状況の照合を行う。そして、復号鍵格納ファイル29内の分岐した各ディレクトリに格納されている鍵と利用条件と利用状況格納場所とを相互に結び付ける役割を担う。 That is, the collation / update means 231, 232, 233 searches the usage status database 21a for the location of the usage status database 21a corresponding to the key, updates the usage status database 21a, and finally acquires the next key. In some cases, the corresponding use condition is searched from the use condition directory, and the use condition and the use status are collated. The key stored in each branched directory in the decryption key storage file 29, the usage conditions, and the usage status storage location are linked to each other.
復号鍵格納ファイル29をこのような木構造としていることにより、復号鍵8は正規の順序を経ないと取得されないこととなる。又、一方のディレクトリ内のデータが他方のディレクトリ内のデータと対応されないと復号鍵8が解読されないため、一部のディレクトリのみをコピーしたり、いずれかのディレクトリの格納場所やパス名が変わってしまうと、復号鍵解読手段23との連携が行われなくなるので不正利用が行われにくい、という効果がある。
Since the decryption key storage file 29 has such a tree structure, the decryption key 8 cannot be acquired unless it passes through a normal order. Also, since the decryption key 8 cannot be decrypted unless the data in one directory corresponds to the data in the other directory, only a part of the directory is copied or the storage location or path name of one of the directories is changed. As a result, the cooperation with the decryption key decryption means 23 is not performed, and thus there is an effect that unauthorized use is difficult to be performed.
次に、本発明のアップデートプログラム1の詳細について、図1を参照しながら説明する。 Next, details of the update program 1 of the present invention will be described with reference to FIG.
アップデートプログラム1は、利用者端末7にパッケージソフトウェア3がダウンロードされた後、ソフトウェア31のアップデートが必要となった場合に、アップデートに用いられる新しいソフトウェア41とともに、利用者端末7にネットワークを介してダウンロードされるプログラムである。尚、アップデートプログラム1と新しいソフトウェア41は、ダウンロード形態に限らず、電子メールに添付されてもよく、又、CD−ROM等の可搬型の記録媒体に格納され、郵送等により利用者に送付された後、利用者端末7にコピーされてもよい。
The update program 1 is downloaded to the
アップデートプログラム1は、利用者端末7に格納されていた元のソフトウェア31を新しいソフトウェア41に置き換え、利用者端末7で利用出来るように各プログラムやデータの起動順序を制御する等のサポートを行うプログラムであることから、初回ダウンロードされるインストールプログラム5とほぼ同じ役割を担っており、要は、ソフトウェア31がインストールされるかアップデートされるかの差異に過ぎない。
The update program 1 replaces the
従って、詳細な説明は行わないが、アップデートプログラム1にも、一般的なインストールプログラムが有するのと同様の機能は備えられている。尚、アップデートプログラムは一般にアップデータと呼ばれ、インストールプログラムは一般にインストーラと呼ばれることが多い。 Therefore, although not described in detail, the update program 1 has the same function as that of a general installation program. An update program is generally called an updater, and an installation program is often called an installer.
アップデートプログラム1と共にダウンロードされるパッケージソフトウェア4は、ソフトウェア41と、パッケージ識別情報35を少なくとも含んでいる。尚、ソフトウェア41は暗号鍵(復号鍵8)で暗号化された暗号化ソフトウェア41aであってもよい。又、パッケージソフトウェア4に、復号化手段33が含まれていてもよい。又、パッケージソフトウェア4は、一般的にはアップデートプログラム1の中に含まれており、アップデートプログラム1の実行によってのみ取り出されることが可能であり、パッケージソフトウェア3同様、単独での実行、利用は不可能となっている。
The package software 4 downloaded together with the update program 1 includes at
アップデートプログラム1は、チェック手段11と、バックアップ手段13と、再パッケージ手段15とを有している。
The update program 1 includes check means 11, backup means 13, and repackage
チェック手段11は、アップデートプログラム1がダウンロードされた利用者端末7に、アップデート対象となるソフトウェア31が存在するかどうか、ソフトウェア31をアップデートしてもよいかどうかを確認する手段である。この時、アップデート対象となるソフトウェア31が利用者端末7内のどこに格納されていたかどうかも合わせて確認される。
The checking means 11 is means for confirming whether or not the
アップデートプログラム1と共にダウンロードされるパッケージソフトウェア4にはパッケージ識別情報35が含まれており、チェック手段11は、このパッケージ識別情報35と同じパッケージ識別情報35を有するソフトウェア31が既に利用者端末7に存在するかどうかを確認する。更に、存在するソフトウェア31が暗号化され、かつ、パッケージ化されているかどうかを確認する。確認は、ハードディスク等の外部記憶装置上の検索を行うか、レジストリを見ることにより行われる。
The package software 4 downloaded together with the update program 1 includes
アップデートプログラム1は、暗号化、かつパッケージ化されているソフトウェア31をアップデート対象とするので、検索されたソフトウェア31が暗号化又はパッケージ化されていない場合には、ここでアップデートプログラム1はアップデートを中止する。
Since the update program 1 targets the
アップデート対象となるソフトウェア31が存在することが確認された場合、チェック手段11は、パッケージ識別情報35によって、利用者端末7に既に格納されている復号鍵解読手段23を起動する。ここで、復号鍵解読手段23が存在しない場合には、そもそもソフトウェア31が正当に入手されたものではないから、アップデートは中止される。
When it is confirmed that the
復号鍵解読手段23が起動されると、先に図4で説明したのと同様、照合・更新手段231,232,233が利用条件と利用状況データベース21a内の利用状況を照合する。 When the decryption key decryption means 23 is activated, the collation / update means 231, 232, 233 collate the usage conditions and the usage status in the usage status database 21a, as described above with reference to FIG.
尚、ここでは、チェック手段11から、照合・更新手段231に対して、アップデートに関する利用条件(例えば、回数や期限)と利用状況の照合を行うような命令が送られる。アップデートに関する利用条件は、回数制限なし、無期限のような条件であってもよいが、利用状況は現実に即してアップデート回数やアップデート日時が更新され、又、利用状況データベース21aが利用者端末7に存在するかどうかの確認がなされるため、不正なアップデートは防止される。
In this case, the check unit 11 sends a command to the collation /
ここで、アップデートに関する利用条件は、ソフトウェア31の利用に関する利用条件による鍵取得ルートとは別のルートを並行して形成して、復号鍵格納ファイル29に含まれていてもよい。又、アップデートに関する利用条件が当初の復号鍵格納ファイル29に含まれていなければ、別途(例えば、アップデート契約の決済完了後等)、利用条件とこれに対応する鍵が発行されてもよい。
Here, the usage conditions relating to the update may be included in the decryption key storage file 29 by forming a route different from the key acquisition route based on the usage conditions relating to the usage of the
又、アップデートに関する利用条件が、ソフトウェア31を利用する際の利用条件と同一であってもよい。例えば、ソフトウェア31を1回利用することと、アップデートを1回行うこととは、いずれも、ソフトウェア31の利用に相当するものとみなせばよく、アップデートが1回行われれば、利用状況データベース21aの利用回数に関する利用状況は、1回分更新されることになる。
Further, the usage conditions regarding the update may be the same as the usage conditions when using the
アップデートに関する利用条件が満足されていた場合には、復号鍵格納ファイル29の中の復号鍵8が解読され、メインメモリ71に一時保存される。復号鍵8が解読されたということは、利用者端末7で、ソフトウェア31のアップデートが行われてもよいということである。
If the use conditions regarding the update are satisfied, the decryption key 8 in the decryption key storage file 29 is decrypted and temporarily stored in the main memory 71. The decryption of the decryption key 8 means that the
又、チェック手段11は、照合・更新手段231にソフトウェア31のバージョンを確認するよう命令してもよい。例えば、利用状況データベース21aに格納されている現在のソフトウェア31のバージョンが、利用条件としてのバージョンよりも古くなければならないところを、利用条件としてのバージョンの方が古い等、所定の条件を満足しなかった場合には、アップデートが出来ないようにしてもよい。
The check unit 11 may instruct the collation /
又、アップデートプログラム1とともに、暗号鍵(復号鍵8)で暗号化された暗号化ソフトウェア41aがダウンロードされる場合、チェック手段11は、復号鍵解読手段23によって得られた復号鍵8を用いて、暗号化ソフトウェア41aの復号化を試み、復号化された場合には、ソフトウェア31のアップデートを許可し、復号化されなかった場合には、アップデートを中止するようにしてもよい。
When the encrypted software 41a encrypted with the encryption key (decryption key 8) is downloaded together with the update program 1, the check means 11 uses the decryption key 8 obtained by the decryption key decryption means 23, When the decryption of the encryption software 41a is attempted and the decryption is performed, the update of the
ソフトウェア41が暗号化されていれば、盗聴の危険性が減り、又、正しい暗号鍵で暗号化されていたかの確認過程が増えるので、確実なアップデートが行われる。
If the
バックアップ手段13は、アップデートを行う前に、元々利用者端末7に格納されていたパッケージソフトウェア3のコピーをとって、バックアップする手段である。パッケージソフトウェア3のコピーは利用者端末7のバックアップフォルダ等に格納される。尚、バックアップ手段13によるバックアップは、チェック手段11から、アップデート対象となるソフトウェア31のアップデートを行ってもよいという命令を受けた後で行われてもよく、順番は問わない。
The backup means 13 is a means for taking a backup of the package software 3 originally stored in the
バックアップを行う目的は、万一アップデート作業に失敗した場合に、パッケージソフトウェア3を利用者端末7内の元の格納場所に戻すためである。
The purpose of performing the backup is to return the package software 3 to the original storage location in the
再パッケージ手段15は、バックアップ手段13が元のパッケージソフトウェア3のバックアップを行った後、アップデートプログラム1と共に送られたパッケージソフトウェア4内のソフトウェア41を復号鍵解読手段23によって取り出された復号鍵8によって暗号化して暗号化ソフトウェア41aとし、復号化手段33やパッケージ識別情報35等の必要なプログラムとともにパッケージして、元のパッケージソフトウェア3の格納場所に於いて元のパッケージソフトウェア3に上書きする手段である。
The
再パッケージ手段15によりパッケージ化されたパッケージソフトウェア4aは、元のパッケージソフトウェア3の格納場所に格納されるため、以降、利用者端末7で利用される時は、今まで同様、復号鍵解読手段23によって復号鍵8の解読が行われ、暗号化ソフトウェア41aが復号鍵8で復号化され、ソフトウェア41のメインメモリ71上での利用が可能となる。
Since the package software 4a packaged by the
尚、新しいソフトウェア41は、アップデートプログラム1の起動によって、取り出されるが、再パッケージ手段15での再パッケージは、一旦ハードディスク上に保存された後に行われるのが一般的である。
The
又、新しいソフトウェア41がハードディスクに保存されず一旦メインメモリ71上に置かれ、メインメモリ71上で暗号化やパッケージ化の処理が行われ、元のパッケージソフトウェア3に上書きされる段階で初めてハードディスク上の格納場所に保存されてもよい。これにより、暗号化されていない状態の新しいソフトウェア41がハードディスクに保存されることがないので、その段階で、コピーされる等の不正利用が行われる心配がなくなる。
Also,
アップデートが正常に完了した後は、バックアップ手段13でバックアップされた元のパッケージソフトウェア3は、不正利用防止のため削除される。この削除機能は、アップデートプログラム1のいずれかの手段によって実現される。 After the update is completed normally, the original package software 3 backed up by the backup means 13 is deleted to prevent unauthorized use. This deletion function is realized by any means of the update program 1.
以上のように、アップデート前に、暗号化ソフトウェア31aの復号鍵8を格納する復号鍵格納ファイル29、復号鍵解読手段23、利用状況データベース21a等のデータが揃ってさえいれば、再パッケージに必要となる復号鍵8は既に利用者端末7内に存在するので、アップデート用に新たに鍵を生成する等の手間が発生することなく、アップデートが必要となった時に利用者端末7に本発明のアップデートプログラム1とアップデート用のソフトウェア41をダウンロードさせるだけで、利用者端末7は、試用版か通常版かによらず、ソフトウェア31のアップデートを行うことが可能となる。
As described above, as long as the decryption key storage file 29 for storing the decryption key 8 of the
又、復号鍵8は、利用者端末7に於いて利用条件を満足した場合にのみ取り出されるため、一度、利用者端末7に復号鍵解読プログラム2とパッケージソフトウェア3が格納されれば、その利用者端末7に於いてしか行えないソフトウェア31のアップデートが可能となり、不正なアップデートが防止されるだけでなく、正当な利用者に対してのみ無償でアップデートサービスを提供することが可能となる。
Since the decryption key 8 is extracted only when the
又、従来、ソフトウェア提供者側は、複数の販売者に同一種類のソフトウェアを提供している場合、販売者毎にソフトウェアのバージョン管理を行い、販売者毎にアップデートプログラム1やソフトウェア41を作成していた。これにより、個々にプログラミング作業やアップデート動作確認の手間が発生し、アップデートにかかる時間は膨大なものであった。
Conventionally, when the same type of software is provided to a plurality of sellers, the software provider side manages the version of the software for each seller and creates the update program 1 and the
しかし、本発明のアップデートプログラム1は、販売者によらず、同一のアップデートプログラム1でよく、ソフトウェア41も同一でよいので、アップデートにかかる手間を大幅に削減することが出来る。しかも、試用版ソフトウェアのアップデートを禁止する必要がなくなり、試用版ソフトウェアにアップデートを禁止するためのソースコードを挿入する手間も削減される。又、利用者端末7に試用版ソフトウェアが重複してダウンロードされたり、試用版ソフトウェアが通常版ソフトウェアで上書きされてしまう危険性がなくなる。
However, since the update program 1 of the present invention may be the same update program 1 and the
このように本発明のアップデートプログラム及びアップデート方法によれば、ソフトウェア利用者と、ソフトウェア提供者の双方にかかる負担が削減され、ソフトウェアのアップデートの利便性が増す。
As described above, according to the update program and the update method of the present invention, the burden on both the software user and the software provider is reduced, and the convenience of the software update is increased.
次に、復号鍵8の更なる保護や、ソフトウェア31,41や復号鍵格納ファイル29の改ざん防止や、不正アップデート防止のため、復号鍵格納ファイル29を暗号化して利用者端末7にダウンロードさせる場合の一例について、図5を参照しながら説明する。
Next, when the decryption key storage file 29 is encrypted and downloaded to the
まず、サーバ端末6は、乱数生成器により、乱数で出来た鍵A(第1の鍵)を得る。尚、鍵Aは、元の復号鍵格納ファイル29のバイナリデータのハッシュ値でもよい。これにより、仮に暗号化された復号鍵格納ファイル29aが復号化された後に改ざんされたとしても、改ざんの結果、ハッシュ値が前のハッシュ値と異なるため再暗号化が出来ず、復号鍵格納ファイル29の改ざん検知が可能となる。鍵Aは、復号鍵格納ファイル29等に添付され、利用者端末7にダウンロードされる。
First, the
次に、サーバ端末6は、変換器により鍵Aを置換表27を用いて鍵B(第2の鍵)に変換し、暗号化処理装置により鍵Bで復号鍵格納ファイル29を暗号化する。ここでは、鍵Bは暗号化、復号化とも共通の鍵とする。
Next, the
置換表27は、暗号解読表の一種であり、置換前と置換後の対応を表す表である。置換表27を用いることにより、鍵が直接、利用者や悪意者の目に触れられることがなく、鍵の解読や不正利用がしづらくなる。 The replacement table 27 is a kind of cryptanalysis table, and is a table showing the correspondence before and after replacement. By using the replacement table 27, the key is not directly touched by the user or the Service-to-Self, and it becomes difficult to decrypt or illegally use the key.
置換表27は、どの利用者、どのソフトウェアに対しても同じであってもよいが、同じ置換表を用いると置換表の推測がしやすくなり、結果的に不正利用されてしまうため、本実施の形態に於いては、ソフトウェア販売者毎に置換表27を用意している。これにより、同一のソフトウェアであっても不正利用がされれば、不正に販売されたルートの特定も可能となり、販売者の権利保護もされる。 The replacement table 27 may be the same for any user and any software. However, if the same replacement table is used, it becomes easier to guess the replacement table, resulting in unauthorized use. In this embodiment, a replacement table 27 is prepared for each software seller. Thus, even if the same software is illegally used, it is possible to specify an illegally sold route and protect the rights of the seller.
尚、暗号化された復号鍵格納ファイル29aを利用者端末7にダウンロードさせる場合には、図2に示したように、置換表27もダウンロードさせる必要があるが、置換表27が利用者や悪意者に分かる状態であると、復号鍵格納ファイル29を暗号化した意味がなくなるので、サーバ端末6は、更に暗号化処理装置により置換表27を暗号化する。
When the encrypted decryption
置換表27は、パッケージソフトウェア3等、改ざんされると不正利用等の問題となるようなバイナリデータから生成されたハッシュ値等の一方向性関数の値を鍵として暗号化され、暗号化された置換表27aとして利用者端末7にダウンロードされる。これにより、暗号化された復号鍵格納ファイル29aの復号化時に、ソフトウェア31等の改ざんがされていれば、置換表27が復号化されないので、暗号化された復号鍵格納ファイル29aの復号化もされない。
The replacement table 27 is encrypted and encrypted with the value of a one-way function such as a hash value generated from binary data that may cause problems such as unauthorized use if tampered with the package software 3 or the like. The replacement table 27a is downloaded to the
尚、パッケージソフトウェア3のバイナリデータのハッシュ値によって置換表27が暗号化される場合には、パッケージソフトウェア3に含まれるソフトウェア31は、置換表27を暗号化する前後で、ハッシュ値が変わらないようなバイナリデータであることが必要である。つまり、ソフトウェア31の利用前後で内容が書き替わってしまうような設定ファイルや保存データはパッケージに含めてはいけない。
When the replacement table 27 is encrypted with the hash value of the binary data of the package software 3, the
従って、ソフトウェア31が本発明のアップデートプログラム1によりアップデートされた後は、自ずとハッシュ値もアップデート前のハッシュ値と異なるものとなり、アップデート以降、暗号化された置換表27aの復号化が出来なくなるため、再パッケージ手段15は、アップデート後のパッケージソフトウェア4aのハッシュ値をとり、そのハッシュ値で置換表27を暗号化して、暗号化された置換表27bを再格納しておく必要がある。
Therefore, after the
尚、鍵0〜鍵n、復号鍵8、鍵A、置換表27が、乱数生成器により乱数で生成されている場合、これら鍵や置換表自身の改ざんを検知するため、鍵や置換表は、乱数部、情報部、ハッシュ部により構成されている。 In addition, when the key 0 to the key n, the decryption key 8, the key A, and the replacement table 27 are generated with random numbers by the random number generator, the key and the replacement table are detected in order to detect falsification of these keys and the replacement table itself. , A random number part, an information part, and a hash part.
ここで、乱数部には、乱数生成器により生成された乱数が含まれ、本実施の形態では鍵0〜鍵n、復号鍵8、鍵A、置換表27を構成する実質的な鍵に相当する部分である。情報部には、乱数部に対する取り扱い方法等が記述される。例えば、乱数部を本実施の形態に於けるように鍵として使用する場合は、輸出制限の法律によって鍵の長さが制限されることがあるので、鍵の長さ(例えば、40ビット、128ビット等)が情報部に記述される。又、当然のことながら、情報部にはその他の有用な情報を記述することも可能である。 Here, the random number part includes a random number generated by a random number generator, and corresponds to a substantial key constituting the key 0 to the key n, the decryption key 8, the key A, and the substitution table 27 in the present embodiment. It is a part to do. The information part describes a handling method for the random number part. For example, when the random number portion is used as a key as in the present embodiment, the key length may be limited by the export restriction law, so the key length (for example, 40 bits, 128 Bit etc.) is described in the information section. Of course, other useful information can be described in the information section.
ハッシュ部には、乱数部と情報部のハッシュ値が含まれる。これにより、乱数部、情報部のいずれかが改ざんされたとしても、改ざん前と改ざん後のハッシュ値が異なることにより改ざんを検知出来る。又、ハッシュ部そのものが改ざんされたとしても、元のハッシュ値と異なるものになってしまうので、その時点で、改ざんを検知することが出来る。 The hash part includes hash values of the random number part and the information part. Thereby, even if either the random number part or the information part is falsified, the falsification can be detected by the fact that the hash value after falsification is different from that before falsification. Further, even if the hash part itself is tampered with, it becomes different from the original hash value, so that tampering can be detected at that time.
尚、鍵Aを置換表27を用いて鍵Bに置換する過程では、鍵Aの乱数部と情報部とハッシュ部を1つのデータとして全部置換したものが、鍵Bの実質的な鍵(乱数部)となり、これに、情報部とハッシュ部が付加されて、鍵Bが生成される。 In the process of replacing the key A with the key B using the replacement table 27, the random number part, the information part, and the hash part of the key A are all replaced as one data. And the information part and the hash part are added to generate the key B.
又、鍵Aは、上述したように、暗号化された復号鍵格納ファイル29aに添付されてもよいが、復号鍵格納ファイル29のヘッダ部分に、鍵A(乱数部+情報部+ハッシュ部)が含まれていれば、鍵A用のファイルの添付が不要となる。その際、鍵Aは、復号鍵格納ファイル29のバージョン情報やパッケージ識別情報35等の、暗号化されず、かつ、固定のデータのハッシュ値によって暗号化されていれば、盗聴や改ざんを防止することが出来る。
Further, as described above, the key A may be attached to the encrypted decryption
次に、復号鍵解読プログラム2を用いて、利用者にソフトウェア31を利用させ、更に、その後、本発明のアップデートプログラム1を用いてソフトウェア31のアップデートを行うプロセスの流れの一例を図7から図13までのフローチャート図及び図1から図5までの構成図とを用いて詳細に説明する。
Next, FIG. 7 to FIG. 7 show an example of the flow of a process for allowing the user to use the
利用者端末7は、ネットワークを介してサーバ端末6にアクセスし、希望のソフトウェア31を選択する。
The
サーバ端末6は、利用者(利用者端末7)毎の利用条件と、乱数からなる暗号鍵を生成し、ソフトウェア31を暗号鍵(共通鍵方式で生成された鍵であって、復号鍵8と同一)で暗号化する。この暗号化ソフトウェア31aを、復号化手段33とパッケージ識別情報35とともにパッケージ化してパッケージソフトウェア3とし、更に、復号鍵8及び利用条件を復号鍵格納ファイル29に収容し、図2に示した復号鍵解読プログラム2(暗号化された復号鍵格納ファイル29aを含む)、インストールプログラム5とともに、利用者端末7にダウンロードさせる。尚、ソフトウェア31を無償で試用させるような場合や、利用条件が利用者によらず共通である場合には、復号鍵格納ファイル29に全ての利用条件と対応する鍵が含まれてもよい。
The
尚、復号鍵格納ファイル29を生成する前提として、サーバ端末6側に利用者端末7の登録手段、課金手段等は整備されており、ソフトウェア提供者は、利用者から、電子メール、ホームページ、ファックス、電話等の手段により、利用者登録、ソフトウェア申込み、送金通知等を受けた後に、その利用者の利用者端末7に一定条件内でソフトウェア31の利用を許可したものとする。
As a premise for generating the decryption key storage file 29, registration means, billing means, etc. of the
又、復号鍵格納ファイル29は、先に説明した方法によって暗号化されているものとする。利用状況データベース21aは、利用者端末7のみに生成されるものとする。
Further, it is assumed that the decryption key storage file 29 is encrypted by the method described above. It is assumed that the usage status database 21a is generated only in the
利用者端末7がこれらのパッケージソフトウェア3等のプログラムをダウンロードすると、利用者端末7内で、インストールプログラム5が自動的に起動されるようにするか、又は、利用者端末7からの要求に応じてインストールプログラム5が起動するようにする(S510)。
When the
尚、利用者端末7が2回目以降ソフトウェア31を利用する場合には、インストールプログラム5を起動しなくても、パッケージソフトウェア3を起動することによって、以下の流れで、ソフトウェア31を利用出来るようにしてもよい。つまり、本実施例に於いては、ソフトウェア31の利用手順を記述したプログラムがインストールプログラム5に含まれているが、初回インストールプログラム5の起動時に、利用手順を記述したプログラムが利用者端末7のハードディスク等の外部記憶装置に格納され、2回目以降は、パッケージソフトウェア3の起動と連動するようになっていてもよい。
When the
利用者端末7で、このソフトウェア31が初めて利用されるものである場合(S520)、利用状況生成手段21は、インストールプログラム5が起動されたこの利用者端末7のハードディスク等の外部記憶装置に、利用状況データベース21aを生成する(S530)。既に、このソフトウェア31に対応する利用状況データベース21aが生成されている場合には、利用状況データベース21aの生成を行わない。
When the
利用状況データベース21aは、ダウンロードされた復号鍵格納ファイル29内の利用条件(利用状況の一部又は全部が復号鍵格納ファイル29に含まれていない場合は、利用者のソフトウェア購入決済完了後等に発行された利用条件)に基づいて生成される。 The usage status database 21a stores the usage conditions in the downloaded decryption key storage file 29 (if a part or all of the usage status is not included in the decryption key storage file 29, etc. after completion of the user's software purchase settlement). It is generated based on issued usage conditions.
図4に於いては、利用条件の数が3個であるので、各利用条件に対応する利用状況が3個、利用状況データベース21a内に生成される。又、利用状況は、利用毎に回数や金額を増やすことによって更新されてもよいし、最初に利用条件の限度が利用状況に反映され、以降は利用毎に回数や金額を減らすことによって更新されてもよい。 In FIG. 4, since the number of usage conditions is three, three usage situations corresponding to each usage condition are generated in the usage situation database 21a. In addition, the usage status may be updated by increasing the number of times and the amount for each use, or the limit of usage conditions is first reflected in the usage status, and thereafter updated by reducing the number of times and the amount for each usage. May be.
尚、利用状況データベース21aは、利用者端末7の識別情報に基づいて暗号化されたり、予めサーバ端末6が認識した識別情報を有する利用者端末7にのみ利用状況データベース21aの生成を許可する等の方法により、他の端末での生成、コピー、読みとり、更新が不可能なようにされる。
The usage status database 21a is encrypted based on the identification information of the
インストールプログラム5は、ソフトウェア31を最終的に利用出来るようにするための過程の進行役を担う。まずは、パッケージソフトウェア3を実行する(S540)。但し、この時点では、まだソフトウェア31は暗号化されており、単に実行してもソフトウェア31を利用することは不可能であるため、パッケージに含まれていた復号化手段33と、展開手段25が起動することになる(S550)。
The
復号化手段33が起動すれば、暗号化されたデータを復号化するための鍵さえ揃えば、そのデータを復号化することが出来る。又、展開手段25が起動すれば、各種の鍵やソフトウェア31等の、利用者端末7のハードディスクにも保存されてばいけないデータをメインメモリ71上に展開させることが出来る。
If the decryption means 33 is activated, the data can be decrypted as long as the keys for decrypting the encrypted data are prepared. When the expansion means 25 is activated, data that must be stored in the hard disk of the
次に、パッケージ識別情報35をキーボード等により入力して、復号鍵解読手段23を起動させる(S560、S570)。尚、パッケージ識別情報35の入力により復号鍵解読手段23を起動させることは任意でよく、又、入力はキーボード等による入力ではなく、パッケージソフトウェア3内からパッケージ識別情報35が取り出され、自動的に入力されてもよい。又、復号鍵解読手段23以外の手段を起動、展開させる時にもこのような識別情報の入力を促すようにしてもよい。この識別情報の暗号化の有無も任意である。
Next, the
尚、ここまでのプロセスの流れは、この順番による必要はない。 The process flow up to this point does not need to be in this order.
本実施例に於いては、パッケージ識別情報35が図4に於ける鍵0に相当する。つまり、復号鍵解読手段23が起動し、更に、最初の照合・更新手段231が起動する。照合・更新手段231は、対応する利用条件1を取り出す。
In this embodiment, the
ここで、復号鍵格納ファイル29が暗号化されている場合には(S580)、利用条件1の取り出しが出来ないため、復号鍵解読手段23は、暗号化された置換表27aを取り出す(S610)。 Here, when the decryption key storage file 29 is encrypted (S580), since the usage condition 1 cannot be extracted, the decryption key decryption means 23 extracts the encrypted replacement table 27a (S610). .
暗号化された置換表27aを復号化するため、パッケージソフトウェア3のバイナリデータのハッシュ値が生成される(S615)。ハッシュ値の生成は、復号化手段33が行ってもよいし、利用者端末7内のその他のプログラムが行ってもよい。
In order to decrypt the encrypted replacement table 27a, a hash value of binary data of the package software 3 is generated (S615). The generation of the hash value may be performed by the
復号化手段33は、生成されたハッシュ値を復号化のための鍵として、暗号化された置換表27aを復号化する(S620)。ここで、置換表27の復号化がされなかった場合には、何者かによりパッケージソフトウェア3の内部の改ざんがされたことになり、その改ざんを検知するとともに、以降のステップには進めないようにする(S625)。 The decryption means 33 decrypts the encrypted replacement table 27a using the generated hash value as a key for decryption (S620). Here, if the replacement table 27 is not decrypted, it means that someone has tampered with the inside of the package software 3, so that the tampering is detected and it is not possible to proceed to the subsequent steps. (S625).
復号化された置換表27は、展開手段25により、一時メインメモリ71上に展開される(S630)。 The decrypted replacement table 27 is expanded on the temporary main memory 71 by the expansion means 25 (S630).
次に、復号鍵解読手段23は、復号鍵格納ファイル29に添付されているか、又は復号鍵格納ファイル29のヘッダ部分に記述されている鍵Aを取り出す(S635)。尚、鍵Aを復号鍵格納ファイル29自身のハッシュ値とすれば、復号鍵格納ファイル29の改ざん検知が可能である。又、復号鍵格納ファイル29のヘッダ部分に鍵Aのハッシュ値も記述されていれば、鍵Aの改ざん検知も可能である。 Next, the decryption key decryption means 23 takes out the key A attached to the decryption key storage file 29 or described in the header part of the decryption key storage file 29 (S635). If the key A is the hash value of the decryption key storage file 29 itself, tampering of the decryption key storage file 29 can be detected. Further, if the hash value of the key A is also described in the header part of the decryption key storage file 29, the alteration of the key A can be detected.
復号鍵解読手段23(又は復号化手段33)は、先の復号化された置換表27を用いて、鍵Aを鍵Bに置換する(S640)。ここで、鍵Aから鍵Bへの置換がされなかった場合には、何者かにより復号鍵格納ファイル29及び/又は置換表27が改ざんされたことになり、その改ざんを検知するとともに、以降のステップには進めないようにする(S645)。 The decryption key decryption means 23 (or the decryption means 33) replaces the key A with the key B using the decrypted replacement table 27 (S640). Here, when the replacement from the key A to the key B is not performed, the decryption key storage file 29 and / or the replacement table 27 has been falsified by someone, and the falsification is detected. Do not proceed to the step (S645).
置換された鍵Bは、展開手段25により、一時メインメモリ71上に展開される(S650)。 The replaced key B is expanded on the temporary main memory 71 by the expansion means 25 (S650).
復号化手段33は、置換された鍵Bを用いて、暗号化された復号鍵格納ファイル29aを復号化する(S655)。ここで、暗号化された復号鍵格納ファイル29aの復号化がされなかった場合には、何者かにより鍵Bの改ざんがされたことになり、その改ざんを検知するとともに、以降のステップには進めないようにする(S660)。
The decryption means 33 decrypts the encrypted decryption
復号鍵格納ファイル29が復号化されたので、照合・更新手段231は、利用条件1を取り出すことが出来る(S710)。
Since the decryption key storage file 29 has been decrypted, the collation /
尚、利用条件や鍵は、上述したように、全部又は一部が、サーバ端末6又はCD−ROM等のデータの書き換えが不可能な記録媒体に格納されている場合もあるし、ソフトウェア31の購入決済完了後に復号鍵格納ファイル29とは別のファイルとして利用者に発行される場合もある。
As described above, all or a part of the usage conditions and keys may be stored in a recording medium such as the
特に、ソフトウェア提供者が有償でソフトウェア31を提供するような場合には、鍵や利用条件の全部又は一部がサーバ端末6等に格納されていたり、復号鍵格納ファイル29とは別のファイルとされている方がソフトウェア31の不正利用等の防止により効果的である。但し、ソフトウェア31を試用させるような場合には、復号鍵格納ファイル29に全ての利用条件と鍵が格納されているほうが、利用者にとっても、ソフトウェア提供者にとっても都合がよい。
In particular, when the software provider provides the
このように、利用者毎に異なる利用条件については利用者毎に用意し、共通の利用条件については復号鍵格納ファイル29に格納することが出来るので、ソフトウェア提供者側の復号鍵格納ファイル29の作成の手間が軽減される。但し、サーバ端末6側に鍵や利用条件が格納されている場合は、利用者端末7がソフトウェア31の利用都度、サーバ端末6にアクセスしなければならず、その分ネットワーク接続の負担が高くなるため、注意が必要である。
In this way, different usage conditions for each user can be prepared for each user, and the common usage conditions can be stored in the decryption key storage file 29. Therefore, the decryption key storage file 29 on the software provider side Ease of creation is reduced. However, if a key or usage conditions are stored on the
照合・更新手段231は、取り出された利用条件1に対応する利用状況1が利用者端末7内の利用状況データベース21aに存在するかどうかを確認する(S715)。利用状況データベース21aそのもの、又は利用状況1が利用者端末7内に存在しない場合には、利用者端末7以外の端末で、ソフトウェア31が利用されそうになったことを表すので、以降のステップには進めないようにする(S720)。
The collation /
又、照合・更新手段231で、復号鍵格納ファイル29や利用条件や利用状況のハッシュ値をとることによって、これらに対する改ざんを検知することも可能である。 Further, the collation / update means 231 can detect falsification of the decryption key storage file 29, usage conditions, and usage status hash values.
照合・更新手段231は、利用状況1が利用者端末7内に存在した場合、その利用状況1が利用条件1を満足しているか、つまり、利用条件1の範囲内の利用かどうかを確認する(S725)。
When the usage status 1 exists in the
例えば、利用条件1は、「利用限度額が5000円」であり、利用者端末7内に格納された利用状況1が、「累積利用額が3000円」であれば、利用条件1を満足したものとする。一方、累積利用額が5000円以上又は、5000円未満であってもソフトウェア31の1回の利用につきかかる金額が残されていない場合には、利用条件1を満足しなかったものとして、以降のステップに進めないようにする(S730)。
For example, if the usage condition 1 is “use limit amount is 5000 yen” and the use status 1 stored in the
利用条件1と利用状況1の照合が終わると、利用状況1の更新を行うとともに、次の照合・更新手段232に進むために必要な鍵1が取り出される(S735)。 When the usage condition 1 and the usage status 1 are verified, the usage status 1 is updated, and the key 1 necessary for proceeding to the next verification / update means 232 is taken out (S735).
利用状況の更新は、例えば、対応する利用条件が「回数」に関するものである場合には、累積利用回数に1を加算するか、残り利用回数に1を減算する等した状態に自動的に更新される。利用条件が「金額」に関するものである場合には、ソフトウェア31の1回利用毎に課金されるものであれば、1回の利用料金を減算する等して、利用状況データベース21aを更新するが、実際にソフトウェア31を利用した時間に応じて課金されるような場合には、ソフトウェア31の利用終了後に、利用状況データベース21aを更新するようにしてもよい。
For example, when the corresponding usage condition is related to “number of times”, the usage status is updated automatically by adding 1 to the cumulative usage count or subtracting 1 from the remaining usage count. Is done. If the usage condition is related to “amount”, the usage status database 21a is updated by subtracting the usage fee for one time if the usage fee is charged for each use of the
又、利用条件が、無期限、回数制限なしといった永久利用権のようなものであった場合でも、利用者が他人にソフトウェア31を渡して不正利用させるといったことを防止するため、中身が空又は無意味なデータで構成された利用状況データベース21aを利用者端末7に生成し、利用条件と利用状況の照合時に必ず、利用状況データベース21aの存在を確認する過程を経るとよい。これは特に、試用版ソフトウェアのアップデートを無償で行う場合に有効である。
In addition, even if the usage conditions are like a permanent usage right such as indefinite or unlimited number of times, the contents are empty or in order to prevent the user from passing the
ここで、取り出された鍵が何番目の鍵かどうかを確認する(S740)。例えば、利用条件の合計数が3であれば、鍵3が取り出さた後に、ソフトウェア31の復号鍵8が取り出され、展開手段25により、一時メインメモリ71上に展開される(S750)。尚、図4に於いて、鍵1や鍵2が取り出された時点では、まだ全ての利用条件と利用状況の照合がされていないため、次の利用条件と利用状況の照合に進む(S745)。
Here, it is confirmed what number the extracted key is (S740). For example, if the total number of usage conditions is 3, after the key 3 is extracted, the decryption key 8 of the
復号鍵解読手段23により最終的に解読され、かつメインメモリ71上に展開された復号鍵8を用いて、復号化手段33は、暗号化ソフトウェア31aを復号化する(S755)。
Using the decryption key 8 finally decrypted by the decryption key decryption means 23 and developed on the main memory 71, the decryption means 33 decrypts the
復号化されたソフトウェア31は、利用者端末7のハードディスクではなくメインメモリ71上に展開され、メインメモリ71上でソフトウェア31の利用が可能となる(S760)。尚、利用者端末7のハードディスクにもソフトウェア31が格納されないのは、一旦、ハードディスクに格納されてしまうと、利用条件を無視したソフトウェア31の利用が可能となってしまうのを防止するためである。
The decrypted
但し、ソフトウェア31の利用都度、保存されるべきデータ(実行プログラムなしに単独では利用不可能な設定データや、文書データ等)については、復号化されたソフトウェア31がなければそもそも開くことが出来ないので、ハードディスク等の外部記憶装置に保存してもよい。
However, every time the
メインメモリ71上でのソフトウェア31の利用が終了すれば、ソフトウェア31は、メインメモリ71からも削除されるが、当然、ハードディスク上にはパッケージソフトウェア3が残されており、2回目以降ソフトウェア31を利用する場合も、これまでと同様の復号鍵解読過程を経ることによって、利用条件の範囲内でソフトウェア31の利用が可能となる。
When the use of the
次に、利用者端末7で利用されているソフトウェア31のアップデートを行う手順を説明する。ソフトウェア提供者側のサーバ端末6は、アップデートプログラム1と、パッケージソフトウェア4を用意し、ネットワークを介して利用者端末7にダウンロードさせる。尚、本実施例で、パッケージソフトウェア4には、パッケージ識別情報35と、元のソフトウェア31が暗号化されたのと同じ暗号鍵で暗号化された暗号化ソフトウェア41aがパッケージされているものとする。
Next, a procedure for updating the
利用者端末7は、ダウンロードしたアップデートプログラム1を起動する(S810)。尚、ダウンロードされたらアップデートプログラム1が自動的に起動するようになっていてもよい。
The
アップデートプログラム1が起動すると、チェック手段11が、アップデートプログラム1とともにダウンロードされたパッケージソフトウェア4からパッケージ識別情報35を取り出し(S820)、同一パッケージ識別情報35を有するパッケージソフトウェア3が利用者端末7内に存在するかどうかを確認する(S830)。
When the update program 1 is activated, the check unit 11 extracts the
当該パッケージソフトウェア3が存在しない場合には、アップデート対象が存在しないことになるから、アップデートプログラム1はアップデートを中止する(S850)。 If the package software 3 does not exist, there is no update target, so the update program 1 stops updating (S850).
当該パッケージソフトウェア3が存在した場合、チェック手段11は更に、そのパッケージソフトウェア3のバージョン情報を確認して、新しいソフトウェア41のバージョンよりも古いかどうかを確認し、更に、利用者端末7内に、復号鍵解読手段23及び復号鍵格納ファイル29が存在するかどうかを確認する(S840)。
When the package software 3 exists, the check unit 11 further confirms the version information of the package software 3 to confirm whether it is older than the version of the
復号鍵解読手段23や復号鍵格納ファイル29がなければ、そもそも利用者端末7内のパッケージソフトウェア3がアップデート対象かどうかの判断が出来ないからである。
This is because without the decryption key decryption means 23 and the decryption key storage file 29, it is impossible to determine whether the package software 3 in the
復号鍵解読手段23及び復号鍵格納ファイル29が存在した場合には、ソフトウェア31を利用する時同様、S570からS750までの手順により、復号鍵格納ファイル29から復号鍵8を取り出す。
If the decryption key decryption means 23 and the decryption key storage file 29 exist, the decryption key 8 is extracted from the decryption key storage file 29 by the procedure from S570 to S750, as in the case of using the
尚、復号鍵8を取り出す過程で、チェック手段11は、復号鍵解読手段23に対して、アップデートに関する利用条件と利用状況の照合を行うよう命令し、復号鍵解読手段23は、利用者端末7がアップデートに関する利用条件を満足していれば、利用状況データベース21a内の利用状況を更新して復号鍵8を解読する。
In the process of taking out the decryption key 8, the check means 11 instructs the decryption key decryption means 23 to collate the use condition and the use status regarding the update, and the decryption key decryption means 23 receives the
アップデートに関する利用条件は、ソフトウェア31の利用に関する利用条件と同一であってもよいし、別の利用条件であってもよい。別の利用条件の場合には、アップデート契約の決済完了後等に、利用条件と対応する鍵が発行されてもよい。又、無期限、無償のような空の条件であってもよく、利用状況データベース21aの存在が確認されることで、正当な利用者端末7でアップデートを行うことが出来るから、不正なアップデートを防止することが可能である。
The usage conditions regarding the update may be the same as the usage conditions regarding the usage of the
又、先に行ったソフトウェア31のバージョン確認を、利用条件と利用状況の照合の一過程として行ってもよい。
Further, the version check of the
この復号鍵解読過程で、復号鍵8を解読することが出来なかった場合には、不正にソフトウェア41やアップデートプログラム1がダウンロードされたか、改ざんが発生した可能性があるため、アップデートを中止する。
If the decryption key 8 cannot be decrypted in this decryption key decryption process, the
バックアップ手段13は、チェック手段11からソフトウェア31のアップデートを許可する旨の通知を受けて、利用者端末7に元々格納されていたパッケージソフトウェア3や、置換表27等のデータのバックアップをとって、バックアップフォルダ等に格納する(S860)。
The
尚、本実施例では、先にアップデートを許可する旨の通知を受けてからバックアップが行われたが、バックアップが先に行われ、バックアップされたパッケージソフトウェア3や置換表27に基づいて、復号鍵8の解読が行われてもよく、その順番は問わない。 In this embodiment, the backup is performed after receiving the notification that the update is permitted first. However, based on the package software 3 and the replacement table 27 that were backed up first, Decoding of 8 may be performed, and the order is not limited.
復号化手段33(又はチェック手段11)は、アップデートプログラム1とともにダウンロードされた新しいパッケージソフトウェア4内の暗号化ソフトウェア41aを、解読された復号鍵8で復号化することを試みる(S870、S880)。 The decryption means 33 (or check means 11) tries to decrypt the encrypted software 41a in the new package software 4 downloaded together with the update program 1 with the decrypted decryption key 8 (S870, S880).
ここで、復号化に成功した場合には、新しいパッケージソフトウェア4が正当なアップデート用のソフトウェア41であることが分かり、復号化に失敗した場合は、新しいパッケージソフトウェア4が不正に入手されたソフトウェアであることが分かるので、アップデートは中止される(S890)。
Here, if the decryption is successful, it can be seen that the new package software 4 is a
暗号化ソフトウェア41の復号化に成功した場合、再パッケージ手段15は、復号化されたソフトウェア41を再度、復号鍵8で暗号化して暗号化ソフトウェア41aとし、元のパッケージ識別情報35や、元のパッケージソフトウェア3に含まれていたプログラムやデータ(復号化手段33等)を合わせて、パッケージ化し、パッケージソフトウェア4aを生成する(S900)。生成されたパッケージソフトウェア4aは、元のパッケージソフトウェア3に上書きされる。つまり、新しいパッケージソフトウェア4aは元のパッケージソフトウェア3の格納場所に格納される。
If the decryption of the
更に、本実施例では、復号鍵8を解読する際に、暗号化された置換表27aの復号化過程を経ており、置換表27は、パッケージソフトウェア3のバイナリデータのハッシュ値で暗号化されているため、再パッケージ手段15は、新しいパッケージソフトウェア4aのバイナリデータのハッシュ値を計算し、置換表27をこのハッシュ値で暗号化して暗号化された置換表27bとして元の格納場所に再格納する(S920)。
Furthermore, in this embodiment, when the decryption key 8 is decrypted, the decryption process of the encrypted replacement table 27a is performed, and the replacement table 27 is encrypted with the hash value of the binary data of the package software 3. Therefore, the
これにより、アップデート前か後かにかかわらず、利用条件を満足する間は、利用者端末7で同一種類のソフトウェアを利用することが可能となる。
As a result, it is possible to use the same type of software on the
尚、ソフトウェア41のコピー等の不正利用を防止するため、再パッケージ手段15によるソフトウェア41の再パッケージ過程(暗号化ソフトウェア41aの復号化、再暗号化、パッケージ化)は、パッケージソフトウェア4aが元のパッケージソフトウェア3の格納場所に格納されるまでは、メインメモリ71上で行われることが望ましい。又、置換表27を新たなハッシュ値で暗号化し暗号化された置換表27bとする過程についても同様にメインメモリ71上で行われることが望ましい。
In order to prevent unauthorized use such as copying of the
アップデート完了後は、バックアップ手段13がバックアップした元のパッケージソフトウェア3はアップデートプログラム1により削除される。
After the update is completed, the original package software 3 backed up by the backup means 13 is deleted by the update program 1.
本発明に於ける各手段、データベースは、その機能が論理的に区別されているのみであって、物理上或は事実上は同一の領域を為していてもよい。又データベースの代わりにデータファイルであってもよいことは言うまでもなく、データベースとの記載にはデータファイルをも含んでいる。 Each means and database in the present invention are logically distinguished from each other in function, and may be physically or virtually the same area. Needless to say, a data file may be used instead of the database, and the description of the database includes the data file.
尚、本発明を実施するにあたり本実施態様の機能を実現するソフトウェアのプログラムを記録した記憶媒体をシステムに供給し、そのシステムのコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても実現される。 In carrying out the present invention, the present invention is also realized by supplying a storage medium storing a software program for realizing the functions of the present embodiment to the system, and reading and executing the program stored in the storage medium by the computer of the system. Is done.
この場合、記憶媒体から読み出されたプログラム自体が前記した実施態様の機能を実現することとなり、そのプログラムを記憶した記憶媒体は本発明を構成する。 In this case, the program itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program constitutes the present invention.
本発明のプログラムの供給は、主として、インターネット等のネットワークを介してコンピュータにダウンロードさせる方法による。その他、磁気ディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性のメモリカード等の可搬型の記録媒体からコンピュータへの供給も可能である。 The program of the present invention is supplied mainly by a method of downloading to a computer via a network such as the Internet. In addition, a portable recording medium such as a magnetic disk, an optical disk, a magneto-optical disk, a magnetic tape, and a nonvolatile memory card can be supplied to the computer.
又、コンピュータが読み出したプログラムを実行することにより、上述した実施態様の機能が実現されるだけではなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムなどが実際の処理の一部又は全部を行い、その処理によって前記した実施態様の機能が実現される場合も本発明に含まれる。
Further, by executing the program read by the computer, not only the functions of the above-described embodiments are realized, but also an operating system running on the computer is one of the actual processes based on the instructions of the program. A case where the function of the above-described embodiment is realized by performing part or all of the processing and the processing is also included in the present invention.
1:アップデートプログラム
11:チェック手段
13:バックアップ手段
15:再パッケージ手段
2:復号鍵解読プログラム
21:利用状況生成手段
21a:利用状況データベース
23:復号鍵解読手段
231,232,233:照合・更新手段
25:展開手段
27:置換表
27a,27b:暗号化された置換表
29:復号鍵格納ファイル
29a:暗号化された復号鍵格納ファイル
3,4,4a:パッケージソフトウェア
31,41:ソフトウェア
31a,41a:暗号化ソフトウェア
33:復号化手段
35:パッケージ識別情報
37:ヘッダ
5:インストールプログラム
6:サーバ端末
7:利用者端末
71:メインメモリ
8:復号鍵
1: Update program 11: Check means 13: Backup means 15: Repackaging means 2: Decryption key decryption program 21: Usage status generation means 21a: Usage status database 23: Decryption key decryption means 231, 232, 233: Verification / update means 25: Expansion means 27: Replacement table 27a, 27b: Encrypted replacement table 29: Decryption
Claims (26)
前記アップデートプログラムは、前記暗号化されたソフトウェアの復号鍵を解読する復号鍵解読プログラムが前記利用者の端末に格納された後に、前記端末に格納されるものであり、
前記復号鍵解読プログラムは、
前記ソフトウェアの利用毎に利用状況を更新することが出来る利用状況データベースを、前記利用者の端末以外の端末による読みとり、更新が出来ないような状態で、前記利用者の端末に生成する利用状況生成手段と、
前記利用状況データベースに格納された利用状況と、前記利用条件との照合を行い、前記利用状況が前記利用条件を超えない場合に限り、前記利用状況データベース内の利用状況を更新し、前記暗号化されたソフトウェアの復号鍵を復号鍵格納ファイルの中から解読する復号鍵解読手段と、
前記解読された復号鍵を、前記利用者の端末のメインメモリ上に展開する展開手段とを有し、
前記アップデートプログラムは、
前記利用者の端末に格納されている前記パッケージソフトウェアがアップデートの対象かどうかを判断し、前記復号鍵解読手段を起動するチェック手段と、
前記パッケージソフトウェアのバックアップを行うバックアップ手段と、
前記復号鍵解読手段によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、ソフトウェア提供者から送付された新しいソフトウェアを暗号化し、前記パッケージ識別情報とともにパッケージ化して、前記パッケージソフトウェアと置き換える再パッケージ手段と、
を有することを特徴とするアップデートプログラム。 Package software that is encrypted with a common key generated by a person other than the user using a common key encryption method and packaged with package identification information is used under the usage conditions such as the number of times, amount of money, time limit, etc. In a software providing service to be used on the user's terminal, an update program for updating the software,
The update program is stored in the terminal after a decryption key decryption program for decrypting the decryption key of the encrypted software is stored in the terminal of the user,
The decryption key decryption program is
Usage status generation that generates a usage status database that can be updated every time the software is used, on a terminal other than the user's terminal and that cannot be updated on the user's terminal. Means,
The usage status stored in the usage status database is collated with the usage conditions, and the usage status in the usage status database is updated only when the usage status does not exceed the usage conditions, and the encryption is performed. Decryption key decryption means for decrypting the decryption key of the software that has been decrypted from the decryption key storage file;
Expanding means for expanding the decrypted decryption key on a main memory of the user terminal;
The update program is
A check unit that determines whether the package software stored in the user terminal is an update target, and activates the decryption key decryption unit;
Backup means for backing up the packaged software;
Using the decryption key decrypted when the use condition regarding the update is satisfied by the decryption key decryption means, the new software sent from the software provider is encrypted and packaged together with the package identification information, and the package software Repackage means to replace with,
An update program characterized by comprising:
ことを特徴とする請求項1に記載のアップデートプログラム。 The update program according to claim 1, wherein encryption and packaging of new software in the repackaging means is performed on a main memory.
前記チェック手段は、前記復号鍵解読手段によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、前記暗号化された新しいソフトウェアの復号化を試み、復号化された場合に、アップデートを許可する
ことを特徴とする請求項1又は請求項2に記載のアップデートプログラム。 The new software is sent to the user's terminal in a state encrypted with the common key,
The check means tries to decrypt the new encrypted software using the decryption key decrypted when the use condition regarding the update is satisfied by the decryption key decryption means, and when the decrypted key is decrypted, The update program according to claim 1 or 2, wherein the update is permitted.
ことを特徴とする請求項3に記載のアップデートプログラム。 The update program according to claim 3, wherein decryption of the new encrypted software in the check means is performed on a main memory.
ことを特徴とする請求項1から請求項4のいずれかに記載のアップデートプログラム。 The said check means confirms whether the said package software, the said decryption key decryption program, the said decryption key storage file, and the said usage condition database are stored in the said user's terminal. Item 5. The update program according to any one of Items 4 to 6.
ことを特徴とする請求項1から請求項5のいずれかに記載のアップデートプログラム。 The update program according to any one of claims 1 to 5, wherein the check unit confirms whether a version of software in the package software is older than a version of the new software.
前記復号鍵解読手段に於いてのみ前記復号鍵の解読が可能なように、前記利用者の端末に格納される
ことを特徴とする請求項1から請求項6のいずれかに記載のアップデートプログラム。 The decryption key storage file contains the decryption key and one or more use conditions,
The update program according to any one of claims 1 to 6, wherein the update program is stored in the user terminal so that the decryption key can be decrypted only by the decryption key decryption means.
前記利用者による前記パッケージソフトウェアの購入又はアップデート決済完了後、発行される
ことを特徴とする請求項1から請求項7のいずれかに記載のアップデートプログラム。 Part or all of the use conditions are not included in the decryption key storage file,
The update program according to any one of claims 1 to 7, wherein the update program is issued after completion of purchase or update settlement of the package software by the user.
ことを特徴とする請求項1から請求項8のいずれかに記載のアップデートプログラム。 The update program according to any one of claims 1 to 8, wherein the decryption key storage file is encrypted with a second key obtained by replacing a first key such as a random number with a replacement table.
ことを特徴とする請求項9に記載のアップデートプログラム。 The update program according to claim 9, wherein the replacement table is generated for each software provider.
ことを特徴とする請求項9又は請求項10に記載のアップデートプログラム。 The update program according to claim 9 or 10, wherein the replacement table is encrypted by a one-way function such as a hash value obtained from binary data of the package software.
ことを特徴とする請求項11に記載のアップデートプログラム。 The update according to claim 11, wherein the repackaging means encrypts the replacement table with a one-way function such as a hash value obtained from binary data of the package software replaced with the package software. program.
ことを特徴とする請求項1から請求項12のいずれかに記載のアップデートプログラム。 The usage status database is encrypted at the user terminal by a one-way function such as a hash value of identification information (MAC address, BIOS serial number, hard disk serial number, etc.) of the terminal. The update program according to any one of claims 1 to 12, wherein:
前記アップデート方法は、前記暗号化されたソフトウェアの復号鍵を解読するための復号鍵解読過程を少なくとも1回経た後に、実行されるものであり、
前記復号鍵解読過程は、
前記ソフトウェアの利用毎に利用状況を更新することが出来る利用状況データベースを、前記利用者の端末以外の端末による読みとり、更新が出来ないような状態で、前記利用者の端末に生成する第1の過程と、
前記利用状況データベースに格納された利用状況と、前記利用条件との照合を行い、前記利用状況が前記利用条件を超えない場合に限り、前記利用状況データベース内の利用状況を更新し、前記暗号化されたソフトウェアの復号鍵を復号鍵格納ファイルの中から解読する第2の過程と、
前記解読された復号鍵を、前記利用者の端末のメインメモリ上に展開する第3の過程とを有し、
前記アップデート方法は、
前記利用者の端末に格納されている前記パッケージソフトウェアがアップデートの対象かどうかを判断する第4の過程と、
前記パッケージソフトウェアのバックアップを行う第5の過程と、
前記第復号鍵解読過程により、アップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、ソフトウェア提供者から送付された新しいソフトウェアを暗号化し、前記パッケージ識別情報とともにパッケージ化して、前記パッケージソフトウェアと置き換える第6の過程と、
を有することを特徴とするアップデート方法。 Package software that is encrypted with a common key generated by a person other than the user using a common key encryption method and packaged with package identification information is used under the usage conditions such as the number of times, amount of money, time limit, etc. In a software providing service to be used on a person's terminal, an update method for updating the software,
The update method is executed after at least one decryption key decryption process for decrypting the decryption key of the encrypted software,
The decryption key decryption process includes:
A usage database that can update the usage status every time the software is used is read by a terminal other than the user's terminal, and is generated on the user's terminal in a state in which it cannot be updated. Process,
The usage status stored in the usage status database is collated with the usage conditions, and the usage status in the usage status database is updated only when the usage status does not exceed the usage conditions, and the encryption is performed. A second step of decrypting the decryption key of the generated software from the decryption key storage file;
A third step of expanding the decrypted decryption key on a main memory of the user terminal;
The update method is:
A fourth step of determining whether or not the packaged software stored in the user terminal is an update target;
A fifth step of backing up the packaged software;
In the first decryption key decryption process, the decryption key decrypted when the use condition regarding the update is satisfied is used to encrypt the new software sent from the software provider, and package the package with the package identification information. A sixth process to replace the packaged software;
An update method characterized by comprising:
ことを特徴とする請求項14に記載のアップデート方法。 15. The update method according to claim 14, wherein encryption and packaging of new software in the sixth process is performed on a main memory.
前記第4の過程では、
前記復号鍵解読過程によりアップデートに関する利用条件が満足された場合に解読された復号鍵を用いて、前記暗号化された新しいソフトウェアの復号化を試み、復号化された場合に、アップデートを許可する
ことを特徴とする請求項14又は請求項15に記載のアップデート方法。 The new software is sent to the user's terminal in a state encrypted with the common key,
In the fourth step,
Try to decrypt the new encrypted software using the decryption key decrypted when the update usage conditions are satisfied by the decryption key decryption process, and permit the update when decrypted. The update method according to claim 14 or 15, wherein:
ことを特徴とする請求項16に記載のアップデート方法。 The update method according to claim 16, wherein the decryption of the new encrypted software in the fourth process is performed on a main memory.
前記パッケージソフトウェア及び前記復号鍵格納ファイル及び前記利用状況データベースが前記利用者の端末に格納されているかどうかを確認する
ことを特徴とする請求項14から請求項17のいずれかに記載のアップデート方法。 In the fourth step,
The update method according to any one of claims 14 to 17, wherein it is confirmed whether or not the package software, the decryption key storage file, and the usage status database are stored in the user terminal.
前記パッケージソフトウェア内のソフトウェアのバージョンが、前記新しいソフトウェアのバージョンよりも古いかどうかを確認する
ことを特徴とする請求項14から請求項18のいずれかに記載のアップデート方法。 In the fourth step,
The update method according to any one of claims 14 to 18, wherein it is confirmed whether or not a software version in the package software is older than a version of the new software.
前記復号鍵解読方法による前記復号鍵の解読が可能なように、前記利用者の端末に格納される
ことを特徴とする請求項14から請求項19のいずれかに記載のアップデート方法。 The decryption key storage file contains the decryption key and one or more use conditions,
The update method according to any one of claims 14 to 19, wherein the update key is stored in the user terminal so that the decryption key can be decrypted by the decryption key decryption method.
前記利用者による前記パッケージソフトウェアの購入又はアップデート決済完了後、発行される
ことを特徴とする請求項14から請求項20のいずれかに記載のアップデート方法。 Part or all of the use conditions are not included in the decryption key storage file,
The update method according to any one of claims 14 to 20, wherein the update is issued after the user completes the purchase of the package software or the completion of the update settlement.
ことを特徴とする請求項14から請求項21のいずれかに記載のアップデート方法。 The update method according to any one of claims 14 to 21, wherein the decryption key storage file is encrypted with a second key obtained by replacing a first key such as a random number with a replacement table.
ことを特徴とする請求項22に記載のアップデート方法。 The update method according to claim 22, wherein the replacement table is generated for each software provider.
ことを特徴とする請求項22又は請求項23に記載のアップデート方法。 The update method according to claim 22 or 23, wherein the replacement table is encrypted by a one-way function such as a hash value obtained from binary data of the package software.
前記置換表が、前記パッケージソフトウェアに置き換えられたパッケージソフトウェアのバイナリデータから得られるハッシュ値等の一方向性関数によって暗号化される
ことを特徴とする請求項24に記載のアップデート方法。 The update method is:
The update method according to claim 24, wherein the replacement table is encrypted by a one-way function such as a hash value obtained from binary data of the package software replaced with the package software.
ことを特徴とする請求項14から請求項25のいずれかに記載のアップデート方法。
The usage status database is encrypted at the user terminal by a one-way function such as a hash value of identification information (MAC address, BIOS serial number, hard disk serial number, etc.) of the terminal. The update method according to any one of claims 14 to 25, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003293588A JP2005063207A (en) | 2003-08-14 | 2003-08-14 | Update program and update method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003293588A JP2005063207A (en) | 2003-08-14 | 2003-08-14 | Update program and update method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005063207A true JP2005063207A (en) | 2005-03-10 |
Family
ID=34370480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003293588A Pending JP2005063207A (en) | 2003-08-14 | 2003-08-14 | Update program and update method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005063207A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100773317B1 (en) | 2006-03-14 | 2007-11-06 | 후지쯔 가부시끼가이샤 | Software update method, computer readable recording medium recording an update management program and information processing apparatus |
JP2008003928A (en) * | 2006-06-23 | 2008-01-10 | Hyper Tec:Kk | Download system |
JP2008071012A (en) * | 2006-09-13 | 2008-03-27 | Casio Hitachi Mobile Communications Co Ltd | Communication terminal and data updating system, and program |
JP2009301429A (en) * | 2008-06-16 | 2009-12-24 | Ricoh Co Ltd | Method and apparatus for detecting software falsification, and image processor |
US8522359B2 (en) | 2005-10-27 | 2013-08-27 | Samsung Electronics Co., Ltd. | Apparatus and method for automatic update |
JP2018072999A (en) * | 2016-10-26 | 2018-05-10 | 京セラドキュメントソリューションズ株式会社 | Electronic instrument and version check program |
JP2018073000A (en) * | 2016-10-26 | 2018-05-10 | 京セラドキュメントソリューションズ株式会社 | Electronic instrument and version check program |
JP2018527104A (en) * | 2015-09-09 | 2018-09-20 | シーピージー テクノロジーズ、 エルエルシーCpg Technologies, Llc | In-power medical devices using induced surface waves |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000035885A (en) * | 1998-05-14 | 2000-02-02 | Sega Enterp Ltd | Information processor, information processing method, information recording medium and information processing system |
JP2000089666A (en) * | 1998-09-16 | 2000-03-31 | Nippon Telegr & Teleph Corp <Ntt> | Encoding/decoding device |
JP2002189526A (en) * | 2000-12-22 | 2002-07-05 | Nec Corp | Distribution system |
JP2003067208A (en) * | 2001-08-23 | 2003-03-07 | Sony Corp | Information processing device and the method, recording medium and program |
-
2003
- 2003-08-14 JP JP2003293588A patent/JP2005063207A/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000035885A (en) * | 1998-05-14 | 2000-02-02 | Sega Enterp Ltd | Information processor, information processing method, information recording medium and information processing system |
JP2000089666A (en) * | 1998-09-16 | 2000-03-31 | Nippon Telegr & Teleph Corp <Ntt> | Encoding/decoding device |
JP2002189526A (en) * | 2000-12-22 | 2002-07-05 | Nec Corp | Distribution system |
JP2003067208A (en) * | 2001-08-23 | 2003-03-07 | Sony Corp | Information processing device and the method, recording medium and program |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8522359B2 (en) | 2005-10-27 | 2013-08-27 | Samsung Electronics Co., Ltd. | Apparatus and method for automatic update |
KR100773317B1 (en) | 2006-03-14 | 2007-11-06 | 후지쯔 가부시끼가이샤 | Software update method, computer readable recording medium recording an update management program and information processing apparatus |
JP2008003928A (en) * | 2006-06-23 | 2008-01-10 | Hyper Tec:Kk | Download system |
JP2008071012A (en) * | 2006-09-13 | 2008-03-27 | Casio Hitachi Mobile Communications Co Ltd | Communication terminal and data updating system, and program |
JP2009301429A (en) * | 2008-06-16 | 2009-12-24 | Ricoh Co Ltd | Method and apparatus for detecting software falsification, and image processor |
JP2018527104A (en) * | 2015-09-09 | 2018-09-20 | シーピージー テクノロジーズ、 エルエルシーCpg Technologies, Llc | In-power medical devices using induced surface waves |
JP2018072999A (en) * | 2016-10-26 | 2018-05-10 | 京セラドキュメントソリューションズ株式会社 | Electronic instrument and version check program |
JP2018073000A (en) * | 2016-10-26 | 2018-05-10 | 京セラドキュメントソリューションズ株式会社 | Electronic instrument and version check program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6195432B1 (en) | Software distribution system and software utilization scheme for improving security and user convenience | |
KR100240324B1 (en) | Licensee notification system | |
JP4835167B2 (en) | Program, system and method for license management | |
JP4694077B2 (en) | Computing device for accessing protected content in a rights management architecture | |
JP3766197B2 (en) | Software distribution method, server device, and client device | |
JP3507594B2 (en) | Computer | |
US6041411A (en) | Method for defining and verifying user access rights to a computer information | |
US5103476A (en) | Secure system for activating personal computer software at remote locations | |
AU2006200154B2 (en) | Flexible licensing architecture for licensing digital application | |
US7747873B2 (en) | Method and apparatus for protecting information and privacy | |
US7742992B2 (en) | Delivery of a secure software license for a software product and a toolset for creating the software product | |
RU2388051C2 (en) | Random password, automatically generated by basic input/output (bios) system for protecting data storage device | |
US20060168580A1 (en) | Software-management system, recording medium, and information-processing device | |
JP2003316913A (en) | Service providing method, information processing system, control program thereof and recording medium | |
WO1999052035A1 (en) | File managing system, file managing device, file managing method, and program recording medium | |
JPWO2007108127A1 (en) | System program download system | |
JP2002334173A (en) | Method for distributing contents, and server, terminal and computer program used in the same | |
JP2005063207A (en) | Update program and update method | |
JP4454280B2 (en) | License authentication method and license authentication system | |
JP2004309737A (en) | Decoding key protection program and decoding key protection method | |
JP2008513858A (en) | Method and equipment for postage payment | |
JP4678881B2 (en) | Information processing method, information processing system, program, and storage medium | |
JPH10222064A (en) | Digital information management system, terminal device, information management center, and method of controlling digital information | |
JP3042309B2 (en) | Software license system | |
JP2002229660A (en) | System, method and server for managing software distribution, and software usage managing applet and medium recording the same applet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060811 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080513 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080930 |