JP2008003928A - Download system - Google Patents
Download system Download PDFInfo
- Publication number
- JP2008003928A JP2008003928A JP2006174045A JP2006174045A JP2008003928A JP 2008003928 A JP2008003928 A JP 2008003928A JP 2006174045 A JP2006174045 A JP 2006174045A JP 2006174045 A JP2006174045 A JP 2006174045A JP 2008003928 A JP2008003928 A JP 2008003928A
- Authority
- JP
- Japan
- Prior art keywords
- data
- identification information
- client
- client identification
- storage area
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、ダウンロードシステムに関し、特に、プログラムなどのデータをダウンロードなどしてクライアントに導入した場合に、そのデータを専らそのクライアントだけで利用可能とするダウンロードシステムに関する。 The present invention relates to a download system, and more particularly to a download system that allows data such as a program to be used only by the client when the data is downloaded and installed in the client.
プログラムなどのデジタルデータの不正コピーが問題となっている。「データの不正コピー」とは、本来そのデータを利用する権利を有する者が、権利を有しない者にそのプログラムを複製して譲渡、引渡などをし、権利を有しない者がそのデータを自分の有するクライアントなどに導入して利用することなどをいう。 Unauthorized copying of digital data such as programs is a problem. “Unauthorized copy of data” means that a person who originally has the right to use the data duplicates the program to a person who does not have the right to transfer or deliver the data. Introducing and using it for clients.
このような不正コピーを防止するために、例えばプログラムを配信する者は、プログラムと、そのプログラムを実行するためのシリアルキーなどと、を異なる経路で送信して配信したり、プログラムをダウンロードなどして導入するクライアントの固有情報をプログラムの配信サーバに送信させ、配信サーバが受け取った固有情報をプログラムに埋め込み、そのクライアントでしか実行できないプログラムを配信したりしている。しかし、プログラムとそのシリアルキーなどとの両方を譲渡などすれば、権利を有しない者のクライアントでもプログラムの実行が可能となり問題の解決にならず、また、配信サーバにクライアントの固有情報を送信するのは、個人情報やプライバシの保護の観点から問題がある。 In order to prevent such unauthorized copying, for example, a person who distributes a program transmits and distributes the program and a serial key for executing the program through different paths, or downloads the program. The unique information of the client to be introduced is transmitted to the program distribution server, the unique information received by the distribution server is embedded in the program, and the program that can be executed only by the client is distributed. However, if both the program and its serial key are transferred, the client can execute the program even if the client does not have rights, and the problem is not solved, and the client's unique information is sent to the distribution server. There is a problem from the viewpoint of protecting personal information and privacy.
一方、プログラムのダウンロードの完了を検出し、ダウンロードされたプログラムのインストール時にクライアントの固有情報が含まれているかどうかを判断し、(1)固有情報が含まれていないと判断されたときには、固有情報が含まれているかどうか判断したタスク等とダウンロードの完了を検出したタスク等とが同一かどうかを判定し、同一であると判定されれば、ダウンロードされたプログラムにクライアントの固有情報を追加記録し、(2)固有情報が含まれていると判断されたときには、含まれている固有情報がクライアントの固有情報と適合するかどうかを判断することにより、不正なプログラムの実行を防止するプログラムなどが知られている(例えば、特許文献1参照。)。
しかしながら、特許文献1に開示されている技術では、ダウンロードの検出を行なったタスク等と、ダウンロードされたプログラムに固有情報が含まれているかどうかを判断したタスク等と、が同一となる必要があるためには、プログラムのダウンロードを行なった直後に、プログラムの実行を行なう必要がある。 However, in the technique disclosed in Patent Document 1, the task that has detected the download needs to be the same as the task that has determined whether the downloaded program contains unique information. For this purpose, it is necessary to execute the program immediately after downloading the program.
一方、配信されるプログラムが複雑化、高度化しており、プログラムのサイズが増大する傾向にある。近年、光ファイバが用いるなどされて通信速度の上限が増大しているが、利用者の増大などによる通信の混雑により、実質的な通信速度の増大はプログラムのサイズの増大に追いついていない。このため、プログラムのダウンロードにより多くの時間が必要となってきている。したがって、特許文献1に開示されている技術では、クライアントの利用者は、プログラムのダウンロードの完了まで待ち、直ちにプログラムを実行必要があり、利用者は不便を強いられる。例えば、複数のプログラムをまとめてダウンロードしておき、後日、時間ができたときに、それらの複数のプログラムを実行することができず、煩に堪えない。 On the other hand, distributed programs are becoming more complex and sophisticated, and the program size tends to increase. In recent years, the upper limit of the communication speed has increased due to the use of optical fibers, etc., but due to the congestion of communication due to an increase in users and the like, the substantial increase in communication speed has not caught up with the increase in program size. For this reason, more time is required for downloading the program. Therefore, in the technology disclosed in Patent Document 1, the client user needs to wait until the program download is completed and immediately execute the program, which is inconvenient for the user. For example, when a plurality of programs are downloaded together and time is available at a later date, the plurality of programs cannot be executed, which is uncomfortable.
また、特許文献1には、ダウンロードしたプログラムに追加記録された固有情報を、ダウンロードしたプログラムが参照するとは開示されていない。このため、ダウンロードしたプログラム(例えば、特許文献1の図3(b)、(c)に示されているSetup.exe)を、特許文献1の請求項1などに記載されている不正インストール防止プログラムを介して実行して初めて、不正インストールが防止される効果が発揮されるのであり、ダウンロードしたプログラムが、不正インストール防止プログラムを介さずに直接実行されてしまえば、不正インストールは防止できない。 Further, Patent Document 1 does not disclose that the downloaded program refers to the unique information additionally recorded in the downloaded program. For this reason, the downloaded program (for example, Setup.exe shown in FIGS. 3B and 3C of Patent Document 1) is used as an unauthorized installation prevention program described in claim 1 of Patent Document 1 or the like. The effect of preventing unauthorized installation is exhibited only when it is executed via the Internet. If the downloaded program is directly executed without using the unauthorized installation prevention program, the unauthorized installation cannot be prevented.
そこで、本発明では、不正インストール防止プログラムなどを介さずに、ダウンロードしたプログラムなどのデータが直接実行などの利用がされても、不正な実行などの利用がされないクライアント、システムなどを提供することを目的とする。 Therefore, the present invention provides a client, a system, or the like that is not used for illegal execution even when data such as a downloaded program is directly executed without using an unauthorized installation prevention program. Objective.
かかる目的を解決するために、本発明では、クライアント識別情報を格納するために確保されたクライアント識別情報格納領域を備えたデータを受信などして取得してから蓄積に至るまでの受信蓄積工程において、受信蓄積工程において実行される生成モジュールが、そのクライアントのクライアント識別情報を取得するサブモジュールと、取得したクライアント識別情報を受信などされたデータの備えるクライアント識別情報格納領域に書込むサブモジュールと、を有するように構成されたクライアント、また、そのようなクライアントから構成されるダウンロードシステムを提供する。 In order to solve such an object, in the present invention, in a receiving and accumulating process from receiving and acquiring data including a client identification information storage area secured for storing client identification information to accumulating. A generation module that is executed in the reception and accumulation step acquires a client identification information of the client; a submodule that writes the acquired client identification information to a client identification information storage area included in received data; and And a download system comprising such a client.
このような構成により、データのダウンロードなどによる取得から蓄積までの工程で、そのデータが備えるクライアント識別情報格納領域にクライアント識別情報が、クライアントの利用者から透過的に書込まれ(すなわち、利用者はクライアント識別情報を書込む処理を別途行なう必要がない)、そのクライアントのみで利用可能とすることができるので、課題が解決される。 With such a configuration, client identification information is transparently written from the client user (that is, the user) in the client identification information storage area included in the data in the process from acquisition to accumulation by downloading data or the like. Does not require a separate process for writing client identification information), and can be used only by the client, thus solving the problem.
また、ダウンロードなどにより取得されるデータは、クライアント識別情報格納領域にクライアント識別情報が格納された後に、格納されたクライアント識別情報と、実行処理を行なうクライアントのクライアント識別情報と、を比較して実行処理を許可するかを判断するための判断モジュールを備えたプログラムとして構成されていてもよい。 Data obtained by downloading is executed after the client identification information is stored in the client identification information storage area and the stored client identification information is compared with the client identification information of the client performing the execution process. You may comprise as a program provided with the determination module for determining whether a process is permitted.
このような構成により、プログラムのダウンロードなどによる取得から蓄積までの工程で、そのプログラムが有するクライアント識別情報格納領域にクライアント識別情報が、端末の利用者から透過的に書込まれ、蓄積されたプログラムはそのクライアントでしか実行できなくなるので、課題が解決される。 With such a configuration, the program in which client identification information is transparently written from the user of the terminal and stored in the client identification information storage area of the program in the process from acquisition to accumulation by downloading the program etc. Can only run on that client, so the problem is solved.
また、ダウンロードなどにより取得されるデータが備えるクライアント識別情報格納領域には、そのデータのクライアント識別情報格納領域以外の部分を参照して算出された値である格納領域初期値が格納されており、前記生成モジュールは、受信蓄積工程において、受信したデータのクライアント識別情報格納領域以外の部分を参照して格納領域初期値を算出するサブモジュールと、その算出された格納領域初期値を用いて、ダウンロードなどにより取得されるデータの格納領域の有無を検出するサブモジュールから構成されていてもよい。 In addition, in the client identification information storage area included in the data acquired by downloading or the like, a storage area initial value that is a value calculated by referring to a portion other than the client identification information storage area of the data is stored, The generation module downloads using a sub-module that calculates a storage area initial value by referring to a part other than the client identification information storage area of the received data in the reception and accumulation step, and the calculated storage area initial value For example, the sub-module may be configured to detect the presence or absence of a storage area for data acquired by the above method.
このような構成により、格納領域を持たない一般のデータをダウンロードなどして取得されてもデータが改変されることなくダウンロードなどが可能であり、また、クライアント識別情報格納領域を持つデータについては、そのクライアント識別情報格納領域の位置を可変にできるという効果が得られる。 With such a configuration, even if general data that does not have a storage area is downloaded and downloaded, the data can be downloaded without being modified, and for data that has a client identification information storage area, The effect that the position of the client identification information storage area can be made variable is obtained.
また、生成モジュールは、取得されたデータにクライアント識別情報格納領域が有ることを検出した場合に、検出されたクライアント識別情報格納領域に格納領域初期値以外の値が格納されているかどうかを検出するサブモジュールから構成されていてよい。 Further, when the generation module detects that the acquired data has a client identification information storage area, the generation module detects whether a value other than the storage area initial value is stored in the detected client identification information storage area. It may consist of submodules.
このような構成により、あるクライアントに取得されてクライアント識別情報格納領域にそのクライアントのクライアント識別情報が書込まれたデータが、別のクライアントにダウンロードなどされたことを検出することができ、不正行為などが行なわれたことを検出することが可能となる。 With such a configuration, it is possible to detect that data acquired by a client and having the client identification information of the client written in the client identification information storage area has been downloaded to another client. It is possible to detect that the above has been performed.
また、上記のように構成されたクライアントと、サーバと、から構成されるダウンロードシステムにおいて、サーバに任意のデータを入力可能とし、入力されたプログラムにクライアント識別情報格納領域を確保する機能を備えさせた構成をとってもよい。 In addition, in the download system including the client and the server configured as described above, arbitrary data can be input to the server, and the input program is provided with a function for securing a client identification information storage area. It is also possible to take a different configuration.
これにより、配信先のクライアントでのみ利用可能なデータの配信を容易に行なうことができる。 As a result, it is possible to easily distribute data that can be used only by the client of the distribution destination.
また、サーバに配信などのために蓄積されるデータやサーバにより配信されるデータが暗号化されるようになっていてもよい。 In addition, data stored for distribution in the server or data distributed by the server may be encrypted.
これにより、特にデータがプログラムである場合に、クライアント識別情報の取得、比較のアルゴリズムが難読化されることにより、クラッキングされることを防止することができる。 Thereby, especially when data is a program, it is possible to prevent cracking by obfuscating the algorithm for obtaining and comparing the client identification information.
本発明により、データのダウンロードなどによる取得から蓄積までの工程で、そのデータが備えるクライアント識別情報格納領域にクライアント識別情報が、クライアントの利用者から透過的に書込まれるので、蓄積されたデータはそのクライアントでしか実行できなくなる、などの効果が得られ、データの不正コピーなどを防止することができる。 According to the present invention, since the client identification information is transparently written from the client user in the client identification information storage area included in the data in the process from acquisition to accumulation by downloading the data or the like, the accumulated data is The effect that it can be executed only by the client can be obtained, and illegal copying of data can be prevented.
以下、本発明を実施するための最良の形態について、実施形態として図を用いて説明を行なう。なお、本発明はこれら実施形態に何ら限定されることなく、その要旨を逸脱しない範囲において種々なる態様で実施し得る。 Hereinafter, the best mode for carrying out the present invention will be described with reference to the drawings as an embodiment. Note that the present invention is not limited to these embodiments, and can be implemented in various modes without departing from the scope of the invention.
(実施形態1)
実施形態1として、クライアント識別情報を格納するために確保されたクライアント識別情報格納領域を備えたデータを受信などして取得してから蓄積に至るまでの受信蓄積工程において、受信蓄積工程において実行される生成モジュールが、そのクライアントのクライアント識別情報を取得するサブモジュールと、取得したクライアント識別情報を受信などされたデータの備えるクライアント識別情報格納領域に書込むサブモジュールと、を有するように構成されたクライアントから構成されるダウンロードシステムについて説明を行なう。
(Embodiment 1)
As Embodiment 1, in the reception accumulation process from receiving and acquiring data including a client identification information storage area reserved for storing client identification information to accumulation, it is executed in the reception accumulation process. The generation module is configured to have a sub-module that acquires the client identification information of the client and a sub-module that writes the acquired client identification information to a client identification information storage area included in the received data. A download system composed of clients will be described.
図1は、実施形態に1に係るダウンロードシステムの機能ブロック図を例示する。ダウンロードシステム100は、サーバ101とクライアント102とからなる。サーバ101とクライアント102とは、インターネットなどに代表される通信網103によって通信を行なうのが可能である。なお、サーバ101とクライアント102とは、通信を行なうことは必須ではなく、例えば、サーバ101でデータを媒体に書込み、その媒体がクライアント102で読み取り可能になっていてもよい。サーバ101とクライアント102の実装の方法の一つとしては、電子計算機を用い、以下に説明する部、手段を実現するためのプログラムを動作させるものがある。
FIG. 1 illustrates a functional block diagram of a download system 1 according to the embodiment. The
サーバ101は、送信データ蓄積部104と、送信部105とを有する。
The
「送信データ蓄積部」104は、クライアント識別情報格納領域を備えたデータを蓄積する。ここに「データ」とは、デジタルデータを主に意味する。デジタルデータの例としては、音楽を再生するためのデータ、映像や静止画像を再生するためのデータ、プログラムなどがある。また、プログラムという場合、それ自体で実行可能なデータもあれば、他のモジュールと組み合わせて実行可能となる形式のデータもある。例えば、「o」、「obj」などの拡張子を持つオブジェクトや、「a」、「lib」、「lo」、「dll」などの拡張子を持つライブラリなどがある。本実施形態では、このようなデータは、クライアント識別情報格納領域を備えるものとする。「クライアント識別情報格納領域」とは、クライアント識別情報を格納するために確保された領域である。例えば、送信データ蓄積部104にデータが蓄積されるときに、そのデータにクライアント識別情報格納領域を付加する。例えば、データの開始部分、データの途中部分、データの終わり部分に付加する。また、クライアント識別情報格納領域は、複数の部分に分散されるようになっていてもよい。また、新たに領域を付加することなく、例えば、画像データに電子透かしなどのデータを付加する部分をクライアント識別情報格納領域と呼んでもよい。また、header領域などの空き領域をクライアント識別情報格納領域として用いてもよい。
The “transmission data storage unit” 104 stores data including a client identification information storage area. Here, “data” mainly means digital data. Examples of digital data include data for reproducing music, data for reproducing video and still images, programs, and the like. In addition, in the case of a program, there is data that can be executed by itself, and there is data in a format that can be executed in combination with other modules. For example, there are objects having extensions such as “o” and “obj” and libraries having extensions such as “a”, “lib”, “lo”, and “dll”. In this embodiment, it is assumed that such data includes a client identification information storage area. The “client identification information storage area” is an area reserved for storing client identification information. For example, when data is accumulated in the transmission
ここに、「クライアント識別情報」とは、クライアントを識別するために用いることができる情報を言い、クライアントが異なるとクライアント識別情報も異なる蓋然性が高い情報である。クライアント識別情報の例としては、クライアントの製造番号や、クライアントが備える通信インターフェースのMAC(Media Access Control)アドレスや、クライアントがCPU(Central Processing Unit)を備える場合には、CPUの名称、コードネーム、CPUの個数、CPUが動作するクロック数、オーバークロックの有無、CPUに固有の製造番号や、マザーボードの名称、クライアントがハードディスクドライブを備える場合には、ハードディスクのフォーマット時のシリアル番号や、クライアントで動作するオペレーティングシステムのバージョン番号やそのオペレーティングシステムを動作させる場合のシリアルキーや、インストールされているソフトウェアの種類、利用するユーザ名、ユーザの生体認証情報、を含んで生成される情報や、また、これらの組み合わせを含んで生成される情報がある。なお、クライアント識別情報は、以上の例示に限定されるものではない。 Here, “client identification information” refers to information that can be used to identify a client, and information that has a high probability of different client identification information for different clients. Examples of client identification information include the client's serial number, the MAC (Media Access Control) address of the communication interface provided by the client, and the CPU name, code name, if the client has a CPU (Central Processing Unit), The number of CPUs, the number of clocks that the CPU operates, the presence or absence of overclocking, the serial number unique to the CPU, the name of the motherboard, if the client has a hard disk drive, the serial number when formatting the hard disk, and the client Operating system version number, serial key for operating the operating system, type of installed software, and usage Username, biometric information of the user, information is generated include, also, there is information generated combinations thereof. The client identification information is not limited to the above examples.
サーバ101を電子計算機を用いて実装する場合には、送信データ蓄積部104は、電子計算機の主メモリやディスク装置により実現される。
When the
「送信部」105は、蓄積されたデータを送信する。「蓄積されたデータ」には、送信データ蓄積部104に蓄積されたデータが含まれる。送信は、通信網103を介してクライアント102などに向けて行なわれることが想定される。それ以外には、脱着可能な媒体にデータを書込むことも挙げられる。
“Transmitter” 105 transmits the accumulated data. “Accumulated data” includes data accumulated in the transmission
サーバ101を電子計算機を用いて実装する場合には、送信部105は、電子計算機の通信インターフェースや、その通信インターフェースを動作させるためのデバイスドライバや、通信のためのプログラムモジュールなどを用いて実現される。また、媒体に書込むためのデバイスドライバなどで実現されてもよい。
When the
クライアント102は、受信部106と、蓄積部107と、生成モジュール保持部108とを有する。
The
「受信部」106は、サーバ101からデータを受信する。すなわち、サーバ101の送信部105から通信網103を介して送信されるデータを受信する。したがって、ここで受信されるデータには、クライアント識別情報格納領域を備えたデータが含まれる。また、サーバ101によりデータが書込まれた媒体をクライアント102に装着し、その媒体を読み取ることで、データをクライアント102に導入するようになっていてもよい。通信網103は、このように媒体を経由してデータが導入されることも含んで表現しているものとする(他の機能ブロック図においても同様である)。
The “reception unit” 106 receives data from the
クライアント102を電子計算機を用いて実装する場合には、受信部106は通信インターフェースや、その通信インターフェースを動作させるためのデバイスドライバや、通信のためのプログラムモジュールなどを用いて実現される。また、媒体を読み取るデバイスドライバを用いて実現されていてもよい。
When the
「蓄積部」107は、蓄積用データを蓄積する。「蓄積用データ」とは、受信したデータに基づいて生成されるデータである。「基づいて」とは、受信したデータを用いて蓄積用データが生成されることを意味しており、後に説明するように、受信したデータにクライアント識別情報格納領域が備えられていれば、そのクライアント識別情報格納領域にクライアント識別情報を格納して得られるデータが蓄積用データとなる。また、受信したデータにクライアント識別情報格納領域がなければ、受信したデータがそのまま蓄積用データとなる。 The “accumulation unit” 107 accumulates accumulation data. “Storage data” is data generated based on received data. “Based on” means that the data for storage is generated using the received data. As will be described later, if the received data has a client identification information storage area, The data obtained by storing the client identification information in the client identification information storage area is storage data. Also, if the received data does not have a client identification information storage area, the received data becomes storage data as it is.
クライアント102を電子計算機を用いて実装する場合には、蓄積部107は、ハードディスクや主メモリなどを用いて実現される。特に、クライアントの各部を実現するプログラムのうち、ユーザモードで動作するプログラムが参照可能な主メモリの一部やハードディスクの一部であることが主に想定される。
When the
「生成モジュール保持部」108は、生成モジュールを保持する。「生成モジュール」とは、受信部106による受信から蓄積部107による蓄積に至る受信蓄積工程において、蓄積用データのために実行されるモジュールである。すなわち、受信部106が通信網103を介してデータを受信し、その受信されたデータから蓄積部107に蓄積するためのデータである蓄積用データを生成する間に実行されるモジュールである。
The “generation module holding unit” 108 holds a generation module. The “generation module” is a module that is executed for accumulation data in a reception accumulation process from reception by the
生成モジュールは、プログラムのモジュールとして提供されることが主に想定される。したがって、生成モジュール保持部108は、電子計算機の主メモリにより実現され得る。
It is mainly assumed that the generation module is provided as a program module. Therefore, the generation
生成モジュールは、クライアント識別情報取得サブモジュールと、クライアント識別情報書込サブモジュールとを有する。 The generation module includes a client identification information acquisition submodule and a client identification information writing submodule.
「クライアント識別情報取得サブモジュール」は、クライアント102の有するクライアント識別情報を取得する。例えば、クライアント102のMACアドレスなどを取得する。クライアントが電子計算機を用いて実現される場合には、取得されたクライアント識別情報は、メモリやレジスタに保持される。
The “client identification information acquisition submodule” acquires client identification information of the
「クライアント識別情報書込サブモジュール」は、クライアント識別情報取得サブモジュールにより取得されたクライアント識別情報を、受信部106により受信したデータの備えるクライアント識別情報格納領域に書込む。例えば、データの開始部分にクライアント識別情報格納領域が備えられているのであれば、そこに、メモリやレジスタに保持されているクライアント識別情報を書込む。また、クライアント識別情報格納領域に格納されるクライアント識別情報が、画像データの電子透かしなどのデータとして格納されるのであれば、そのような電子透かしなどとして、クライアント識別情報を格納する。クライアント識別情報格納領域がデータのどの位置に存在するかは、例えば、前もって、サーバ101との通信プロトコルなどにより規定する。また、データの種類に応じて、その位置が異なるようになっていてもよい。また、データ中の位置を決めておくのではなく、データ中に特定のビットパターンなどの特定の値(例えば、通常のデータに現れる頻度が低いと考えられるAFAFAFAFという16進数)の存在する場所が、クライアント識別情報が書込まれる場所であると定めておいてもよい。
The “client identification information writing submodule” writes the client identification information acquired by the client identification information acquisition submodule in the client identification information storage area included in the data received by the receiving
生成モジュールは、クライアント102が電子計算機を用いて実装される場合においては、通信インターフェースのデバイスドライバや通信のためのプログラムモジュールの一部として実現することができる。
When the
図2は、生成モジュールをデバイスドライバなどとして実現する場合での生成モジュールの処理の流れを説明するフローチャートである。この場合、生成モジュールは、サーバ101によりデータが送信されるためのバケットなどが受信あるいは取得される都度、呼び出されるようになっていてもよい。もしそのようになっているのであれば、サーバ101からパケットなどが受信されたり、媒体を読み取るためのブロックデータが得られたりした都度、ステップS201へ処理が移行され、サーバ101からパケットやブロックデータを受け取る。次に、ステップS202へ処理が移行され、受け取ったパケットやブロックデータの表わす部分データの位置がクライアント識別情報格納領域を含むかどうかを判断する。もし、クライアント識別情報格納領域を含めば、ステップS203へ処理が移行され、そうでなければ、ステップS205へジャンプする。ステップS203では、クライアント識別情報の取得がされる。この処理は、クライアント識別情報取得サブモジュールで行なわれる。次のステップS204では、クライアント識別情報格納領域へのクライアント識別情報の書込みが行なわれる。この処理は、クライアント識別情報書込サブモジュールで行なわれる。次のステップでは、読み出しバッファにパケットの表わす部分データを読み出しバッファに追記する。読み出しバッファというのは、通信などのためのプログラムモジュールは上下に階層化されているので、生成モジュールの上位階層のモジュールが入力するデータを一時的に蓄えるバッファである。
FIG. 2 is a flowchart for explaining the processing flow of the generation module when the generation module is realized as a device driver or the like. In this case, the generation module may be called whenever a bucket or the like for transmitting data by the
図3は、クライアントが電子計算機を用いて実装される場合のデバイスドライバの位置を示す一例図である。ハードウェア301が最下位の層にあり、その上の階層として、ハードウェア301を抽象化するためのオペレーティングシステム302が動作する。このオペレーティングシステム302と、その上で実行される実行プログラム303とにより、クライアントを実現するためのプログラムが構成される。デバイスドライバ304は、オペレーティングシステムの内部で動作し、ハードウェアを抽象化し、ハードウェア301の機能を実行プログラム303からシステムコールAPI(Application Interface)を通じて操作可能にする。なお、実行プログラム303の例としては、データをダウンロードするためのftpクライアントや、ブラウザなどが挙げられる。なお、実行プログラム303は、これらに限定されるものではない。
FIG. 3 is a diagram illustrating an example of the position of the device driver when the client is mounted using an electronic computer. The
図4は、ハードウェア301の構成の一例図である。ハードウェア400は、CPU401、RAM402、ハードディスクなどの外部記憶媒体403、ROM404、入出力インターフェース405、通信インターフェース406からなり、これらがバスにより相互に結合された形態となっている。電源が投入されると、ROM404に格納された初期起動プログラム(例えば、BIOS)の所定アドレスからの処理がCPU401により開始される。その初期起動プログラムは、例えば、ハードディスクの最初のセクタに格納されているブートプログラムをRAM402に読込み、ブートプログラムへ制御を移す。ブートプログラムは、例えば、ハードディスクの所定位置に記録されているオペレーティングシステムをRAMに展開し、オペレーティングシステムに制御を移す。オペレーティングシステムは、実行プログラム303をハードディスクから読み取り実行を行なう。実行プログラム303は、例えば、マウスやキーボード、ディスプレイが接続された入出力インターフェース405からのクライアント102の利用者からの指示を読み取り、通信インターフェース406などを用いてサーバとの通信を行ない、データの受信を行なう。このとき、デバイスドライバなどして実現される生成モジュールが動作して、蓄積用データが生成されて、RAM402や外部記憶媒体403に格納される。
FIG. 4 is an example of a configuration of the
なお、近年開発されているオペレーティングシステムでは、デバイスドライバは、動的ライブラリとして提供が可能であり、生成モジュールも、そのような動的ライブラリとして提供が可能である。また、生成モジュールはオペレーティングシステムのカーネル内で動作するように実現されるものではなく、例えば、システムコールAPIの中に組み込まれたり、システムコールAPIを用いたライブラリに組み込まれるようになっていてもよい。また、実行プログラム303の中に組み込まれるなどしてもよい。例えば、実行プログラム303がブラウザであれば、実行モジュールは、そのブラウザに対するプラグインとして提供されてもよい。
In an operating system developed in recent years, a device driver can be provided as a dynamic library, and a generation module can also be provided as such a dynamic library. In addition, the generation module is not realized so as to operate in the kernel of the operating system. For example, the generation module may be incorporated in a system call API or a library using the system call API. Good. Further, it may be incorporated in the
(実施形態1:別の構成)
図5は、実施形態1の別の構成における機能ブロック図を例示する。ダウンロードシステム500は、サーバ501と、クライアント502とからなる。サーバ501と、クライアント502とは、インターネットなどに代表される通信網503により通信が可能である。
(Embodiment 1: Another configuration)
FIG. 5 illustrates a functional block diagram in another configuration of the first embodiment. The
サーバ501は、送信データ蓄積部504と、送信部505とを有する。上述のサーバ101との違いは、送信データ蓄積部504が、送信プログラム蓄積手段509を有している点である。
The
「送信プログラム蓄積手段」509は、判断モジュールを備えたプログラムを全体または一部とするデータを蓄積する。「判断モジュール」とは、クライアントの生成モジュールによりクライアント識別情報格納領域にそのクライアントのクライアント識別情報が格納された後に、プログラムの実行処理がされる際に、その格納されたクライアント識別情報と、実行処理を行なうクライアントのクライアント識別情報と、を比較して実行処理を許可するか判断をするためのモジュールである。すなわち、この構成では、プログラムとしてのデータをサーバからダウンロードなどして導入したクライアント以外のクライアントへ、データをコピーしても、そのデータであるプログラムは実行されなくなる。なぜならば、ダウンロードしたクライアントのクライアント識別情報と、コピーを行ないプログラムを実行しようとするクライアントのクライアント識別情報と、が異なる蓋然性が高いからである。 The “transmission program storage unit” 509 stores data including a program including the determination module in whole or in part. The “determination module” means the client identification information stored in the client identification information storage area when the program is executed after the client identification information is stored in the client identification information storage area. This is a module for comparing the client identification information of the client performing the processing and determining whether to permit the execution processing. That is, in this configuration, even if data is copied to a client other than the client introduced by downloading the data as a program from the server, the program that is the data is not executed. This is because there is a high probability that the client identification information of the downloaded client is different from the client identification information of the client who performs the copy and executes the program.
なお、判断モジュールの無いプログラムに、後から判断モジュールを追加することも可能である。この追加のために用いられるプログラムを変換プログラムと呼ぶと、変換プログラムは、サーバ501で動作し、変換プログラムの結果として得られたプログラムを送信プログラム蓄積手段509に蓄積するようになっていてもよい。また、変換プログラムは、サーバ501以外のサーバである変換サーバで動作して、いわゆるアプリケーションサービスプロバイダ的に構成されていてもよい。すなわち、一旦、サーバ501は、判断モジュールのないプログラムを変換サーバに送信し、変換サーバでは、変換プログラムを動作させて、判断モジュールの追加されたプログラムを返信する。サーバ501は、返信されたプログラムを送信プログラム蓄積手段509に蓄積する。
It is possible to add a determination module later to a program without a determination module. When a program used for this addition is called a conversion program, the conversion program may be operated by the
図6は、クライアント識別情報格納領域を備えないプログラムの構造と、そのような構造のプログラムがクライアント識別情報格納領域を備えた構造と、の一例を示す。図6(A)は、クライアント識別情報格納領域を備えないプログラムの構造の一例を示し、プログラムは、header領域601と、.text領域602と、.data領域603とからなる。header領域601は、実行形式であることを示すマジックナンバ、.text領域602などの領域のサイズ、エントリポイントのアドレスなどを保持する。.text領域602は、インストラクションが格納された領域である。.data領域603は、初期化されたデータを含む領域である。なお、プログラムの構造は、オペレーティングシステムごとに異なり、本明細書の例に限定されるものではない。例えば、.data領域が先にあり、次に.text領域があり、.rsrc領域などがその後に続いてもよい。
FIG. 6 shows an example of the structure of a program that does not have a client identification information storage area and the structure in which a program having such a structure has a client identification information storage area. 6A shows an example of the structure of a program that does not include a client identification information storage area. The program includes a
図6(B)は、図6(A)に例示された構造のプログラムに、クライアント識別情報格納領域604が備えられた構造の一例を示す。ここでは、クライアント識別情報格納領域604は、.text領域602に続けて配置され、.text領域602の一部として備えられている。もちろん、クライアント識別情報格納領域604の配置は、図6(B)に例示されるものに限定されない。例えば、header領域601の空き領域に確保されたり、header領域601と.text領域と、の間に配置されてもよい。また、.data領域603に続けて配置されるようになっていてもよい。
FIG. 6B illustrates an example of a structure in which a client identification
クライアント502は、受信部506と、蓄積部507と、受信モジュール保持部508と、クライアント識別情報生成部510と、を有する。上述のクライアント102との違いは、クライアント識別情報生成部510をさらに有する点である。
The
「クライアント識別情報生成部」510は、判断モジュールにより利用可能にクライアント識別情報を生成する部である。例えば、クライアント識別情報がMACアドレスであれば、そのMACアドレスを読み出すハードウェアやソフトウェアのモジュールにより構成されている。また、クライアント識別情報が、MACアドレスとCPUの名称などとの組み合わせなどの、複数の情報の組み合わせとして算出されるのであれば、それぞれの情報を読み出して、組み合わせを算出するモジュールにより構成される。読み出されたクライアント識別情報や、算出されたクライアント識別情報は、判断モジュールにより利用可能となるように、レジスタやメモリの領域などに格納される。 The “client identification information generation unit” 510 is a unit that generates client identification information that can be used by the determination module. For example, if the client identification information is a MAC address, it is constituted by a hardware or software module that reads the MAC address. Further, if the client identification information is calculated as a combination of a plurality of pieces of information such as a combination of a MAC address and a CPU name, it is configured by a module that reads each piece of information and calculates the combination. The read client identification information and the calculated client identification information are stored in a register or a memory area so that they can be used by the determination module.
図7は、送信プログラム蓄積手段509に蓄積されたプログラムがクライアントにダウンロードなどされ導入された後に実行される場合の判断モジュールの処理の流れを説明するフローチャートを例示する。まず、ステップS701として、プログラムに備えられたクライアント識別情報格納領域に格納されたクライアント識別情報の読み出しを行なう。例えば、.text領域602に続けてクライアント識別情報格納領域が備えられている場合には、.text領域の終わりから所定の大きさの領域に格納されたクライアント識別情報を読み出す。次にステップS702として、プログラムの実行処理を行なうクライアントのクライアント識別情報を、クライアント識別情報生成部510で生成して取得する。次に、ステップS704において、ステップS701で読み出されたクライアント識別情報と、ステップS702で取得されたクライアント識別情報と、の比較を行なう。ステップS705において、比較の結果を判断する。もし、比較の結果が等しい、あるいは、二つのクライアント識別情報が所定の条件で適合するものである場合には、ステップS706へ処理を移行して、プログラムの実行処理を許可する。例えば、判断モジュールの実行の次に実行されるべきプログラムの部分の処理を継続する。もし、比較の結果が異なり、二つのクライアント識別情報が所定の条件で適合しないものである場合には、ステップS707へ処理を移行して、プログラムの実行処理を許可しない。例えば、プログラムの実行を強制的に終了させる。
FIG. 7 exemplifies a flowchart for explaining the processing flow of the determination module when the program stored in the transmission
図8は、サーバとクライアントにおける処理の流れをクライアント側から説明するフローチャートを例示する。ステップS801において、サーバとの通信セッションなどの確立を行なう。サーバ側では、例えば、listenシステムコールなどを実行して、通信セッションの確立を待ち、クライアントでは、connectシステムコールなどを実行して通信セッションを確立させる。ステップS802においては、生成モジュールを介して所定量の情報の読み出しを行なう。所定量というのは、例えばreadシステムコールにより読み出しを行なうためのバッファのサイズである。クライアントでのreadシステムコールは、サーバの送信データ蓄積部に蓄積されたデータのwriteに対応して処理がされる。すなわち、ハードウェア301の通信インターフェース406から実行プログラム303へデータが渡される際に、生成モジュールが動作して、クライアント識別情報格納領域にクライアント識別情報が書込まれるなどして、読み出しバッファに書込まれたデータがreadシステムコールにより読み出される。読み出しが終了すると、ステップS803で、EOF(End of File)かどうかを判断し、もしそうならば、処理を終了し、EOFでなければ読み出したデータをハードディスク等へ追記してステップS802へ戻る。
FIG. 8 illustrates a flowchart for explaining the flow of processing in the server and the client from the client side. In step S801, a communication session with the server is established. On the server side, for example, a listen system call is executed to wait for establishment of a communication session, and on the client side, a communication system call is executed to establish a communication session. In step S802, a predetermined amount of information is read through the generation module. The predetermined amount is, for example, the size of a buffer for reading by a read system call. The read system call at the client is processed in accordance with the write of the data stored in the transmission data storage unit of the server. That is, when data is passed from the
多くのオペレーティングシステムでは、上述したように、サーバとの通信によるデータの読み出しは、ファイルの読み出しとほぼ同じように行なわれる。したがって、本実施形態では、データはサーバから送信されるとして説明したが、サーバによりプログラムが記録されたCD−ROMなどの媒体に記録されたデータをクライアントが読み取る際に、生成モジュールが実行されるようになっていてもよい。すなわち、媒体には、クライアント識別情報格納領域を備えたデータが記録されており、そのように記録されたデータを読み取り、蓄積に至る工程において、生成モジュールが実行されて、データに備えられたクライアント識別情報格納領域に、クライアントのクライアント識別情報が書込まれるようになっていてもよい。 In many operating systems, as described above, data reading through communication with the server is performed in substantially the same manner as file reading. Therefore, in the present embodiment, it has been described that the data is transmitted from the server. However, when the client reads data recorded on a medium such as a CD-ROM on which the program is recorded by the server, the generation module is executed. It may be like this. That is, data including a client identification information storage area is recorded on the medium, and the generation module is executed in the process of reading and storing the recorded data, and the client provided in the data The client identification information of the client may be written in the identification information storage area.
本実施形態によれば、データのダウンロードなどによる取得から蓄積までの工程で、そのデータが備えるクライアント識別情報格納領域にクライアント識別情報が、クライアントの利用者から透過的に書込まれ、そのクライアントのみで利用可能とすることができるので、不正コピーによるデータの不正利用を防止することができる。 According to the present embodiment, client identification information is transparently written from the client user in the client identification information storage area included in the data in the process from acquisition to accumulation by downloading data, etc., and only the client Therefore, unauthorized use of data due to unauthorized copying can be prevented.
(実施形態2)
実施形態2として、ダウンロードなどにより取得されるデータが備えるクライアント識別情報格納領域には、そのデータのクライアント識別情報格納領域以外の部分を参照して算出された値である格納領域初期値が格納されており、前記生成モジュールは、受信蓄積工程において、受信したデータのクライアント識別情報格納領域以外の部分を参照して格納領域初期値を算出するサブモジュールと、その算出された格納領域初期値を用いて、ダウンロードなどにより取得されるデータの格納領域の有無を検出するサブモジュールを用いて構成される実施形態を説明する。
(Embodiment 2)
As Embodiment 2, the client identification information storage area included in the data acquired by downloading or the like stores a storage area initial value that is a value calculated by referring to a portion other than the client identification information storage area of the data. The generation module uses a sub-module that calculates a storage area initial value by referring to a portion other than the client identification information storage area of the received data in the reception and accumulation step, and the calculated storage area initial value. An embodiment configured using submodules for detecting the presence or absence of a storage area for data acquired by downloading or the like will be described.
本実施形態では、サーバの送信データ蓄積部に蓄積されたデータのクライアント識別情報格納領域は、格納領域初期値を格納する。ここに、「格納領域初期値」とは、そのデータのクライアント識別情報格納領域以外の部分を参照して算出された値である。 In this embodiment, the client identification information storage area of the data stored in the transmission data storage unit of the server stores a storage area initial value. Here, the “storage area initial value” is a value calculated with reference to a portion of the data other than the client identification information storage area.
図9は、格納領域初期値の算出の一例を示す。図9の左のようにheader領域、.text領域、.data領域からなるプログラムがデータであり、.text領域に続けてクライアント識別情報格納領域(図9では、「格納領域」と略してある)が備えられる場合には、格納領域に格納される値である格納領域初期値は、格納領域以外の領域であるheader領域、.text領域、.data領域を参照して算出される。なお、格納領域初期値は、header領域、.text領域、.data領域の全ての部分を参照して算出される必要はなく、その一部を参照して算出されるものであってもよい。 FIG. 9 shows an example of calculation of the storage area initial value. As shown on the left side of FIG. text region,. A program consisting of a data area is data,. When a client identification information storage area (abbreviated as “storage area” in FIG. 9) is provided following the text area, the storage area initial value that is a value stored in the storage area is a value other than the storage area. A header area,. text region,. It is calculated with reference to the data area. Note that the storage area initial value is the header area,. text region,. It is not necessary to calculate with reference to all parts of the data area, and it may be calculated with reference to a part thereof.
図10は、header領域、.text領域、.data領域の一部であるheader領域、.text領域を参照して格納領域初期値が算出され、格納領域に格納される様子を例示している。このように、格納領域より前の部分を参照して格納領域初期値を算出すると、格納領域の有無の検出が、データの全てを読込まずに行なうことができるという利点がある。また、格納領域より後ろの部分であっても、データの送信、受信などの入出力の単位である同じバッファサイズで示される大きさ程度以内の距離に離れている部分(例えば、ある読込みにより、格納領域と同じバッファに読込まれる部分(具体的な数字を用いて例を挙げると、次のようになる。すなわち、バッファサイズが1024バイトであり、格納領域がデータの1030バイトから50バイトまでの部分である場合には、1080バイトから2048バイトまでの部分を参照して格納領域初期値を算出してもよい))を算出しても同じような利点を得ることができる。 FIG. 10 shows a header area,. text region,. a header region that is part of the data region,. The storage area initial value is calculated with reference to the text area and stored in the storage area. As described above, when the storage area initial value is calculated with reference to the part before the storage area, there is an advantage that the presence / absence of the storage area can be detected without reading all the data. In addition, even in a portion after the storage area, a portion separated by a distance within about the size indicated by the same buffer size that is an input / output unit such as data transmission and reception (for example, by a certain reading, The part read into the same buffer as the storage area (Examples using specific numbers are as follows. That is, the buffer size is 1024 bytes and the storage area is from 1030 bytes to 50 bytes of data. If the storage area initial value is calculated by referring to the portion from 1080 bytes to 2048 bytes, the same advantage can be obtained.
本実施形態では、図11に例示されるように、クライアントの生成モジュール保持部が保持する生成モジュール1101は、クライアント識別情報取得サブモジュール1102と、クライアント識別情報書込サブモジュール1103に加えて、格納領域初期値算出サブモジュール1104と、格納領域検出サブモジュール1105と、を有する。
In this embodiment, as illustrated in FIG. 11, the
「格納領域初期値算出サブモジュール」1104は、受信蓄積工程において、クライアント識別情報格納領域以外のデータ部分を参照して格納領域初期値を算出する。格納領域初期値算出サブモジュールが格納領域初期値を算出するアルゴリズムは、サーバの送信データ蓄積部に格納されたデータのクライアント識別情報格納領域に格納されている格納領域初期値を算出するアルゴリズムと実質的に同等になっている。「実質的に同等」とは、アルゴリズムを具現化するプログラムの表現が同じか、異なっていたとしても、同じ入力(ここでは、クライアント識別情報格納領域以外のデータ部分)に対して同じ出力(ここでは、格納領域初期値)を与えることをいう。 The “storage area initial value calculation submodule” 1104 calculates a storage area initial value by referring to a data portion other than the client identification information storage area in the reception and accumulation process. The algorithm for calculating the storage area initial value by the storage area initial value calculation submodule is substantially the same as the algorithm for calculating the storage area initial value stored in the client identification information storage area of the data stored in the transmission data storage unit of the server. Are equivalent. “Substantially equivalent” means that the same output (here, the data part other than the client identification information storage area) is the same output (here, even if the expression of the program embodying the algorithm is the same or different. In this case, the storage area initial value is given.
ここで、格納領域初期値を算出するアルゴリズムとしては、例えば、可変長の情報を一定のサイズの情報に変換するハッシュ値算出アルゴリズムを用いることができる。より具体的は、SHAやMD5を用いることができる。また、このようなアルゴリズムで算出された値を更にサーバの秘密鍵などを用いて暗号化してもよい。これにより、格納領域初期値と同じ値がクライアント識別情報格納領域以外に現れて、誤った書込みがされるのを防止することが可能となる。 Here, as an algorithm for calculating the storage area initial value, for example, a hash value calculation algorithm that converts variable-length information into information of a certain size can be used. More specifically, SHA or MD5 can be used. Further, the value calculated by such an algorithm may be further encrypted using a server secret key or the like. As a result, it is possible to prevent the same value as the storage area initial value from appearing outside the client identification information storage area and erroneously writing.
「格納領域検出モジュール」1105は、受信されたデータの中のクライアント識別情報格納領域の有無を検出する。例えば、格納領域初期値算出サブモジュールにより算出された格納領域初期値と同じ値が、クライアント識別情報格納領域に格納されているかどうかを判断して、もし、格納されていれば、クライアント識別情報格納領域が有ると判断し、そうでなければ無いと判断する。クライアント識別情報格納領域が有ると判断されれば、クライアント識別情報書込モジュールにより、有ると判断されたクライアント識別情報格納領域にクライアント識別情報を書込む。 The “storage area detection module” 1105 detects the presence or absence of a client identification information storage area in the received data. For example, it is determined whether or not the same value as the storage area initial value calculated by the storage area initial value calculation submodule is stored in the client identification information storage area. It is determined that there is a region, otherwise it is determined that it does not exist. If it is determined that the client identification information storage area exists, the client identification information writing module writes the client identification information in the client identification information storage area determined to be present.
また、図10のようにクライアント識別情報格納領域より前、あるいは、後ろの部分があってもクライアント識別情報格納領域と同じバッファに読込まれる部分などから、格納領域初期値が算出される場合には、生成モジュールは、データの受信を行ないつつ、格納領域初期値の算出を行ない、それまでに算出された格納領域初期値が、新たに受信を行なった部分に現れるかどうかを判断して、クライアント識別情報格納領域の有無を検出してもよい。 Further, when the initial value of the storage area is calculated from the part read into the same buffer as the client identification information storage area even if there is a part before or after the client identification information storage area as shown in FIG. The generation module calculates the storage area initial value while receiving data, determines whether the storage area initial value calculated so far appears in the newly received part, The presence or absence of a client identification information storage area may be detected.
本実施形態では、格納領域を持たない一般のデータであってもダウンロードなどして取得されてもデータが改変されることなくダウンロードなどが可能であり、また、クライアント識別情報格納領域を持つデータであっても、そのクライアント識別情報格納領域の位置を可変にできるという効果が得られる。例えば、ダウンロードの都度、あるいは、送信データ蓄積部にデータが蓄積される都度、クライアント識別情報格納領域の位置が変わるようにでき、データの不正コピーを困難にできる。 In this embodiment, even general data that does not have a storage area can be downloaded without being modified even if it is obtained by downloading or the like, and data that has a client identification information storage area can be downloaded. Even if it exists, the effect that the position of the client identification information storage area can be changed is acquired. For example, the location of the client identification information storage area can be changed each time data is downloaded or data is stored in the transmission data storage unit, making it difficult to illegally copy data.
(実施形態3)
実施形態3として、生成モジュールは、取得されたデータにクライアント識別情報格納領域が有ることを検出した場合に、検出されたクライアント識別情報格納領域に格納領域初期値以外の値が格納されているかどうかを検出するサブモジュールから構成されている場合について説明する。
(Embodiment 3)
As Embodiment 3, when the generation module detects that the acquired data has a client identification information storage area, whether or not a value other than the storage area initial value is stored in the detected client identification information storage area A case in which the sub module is configured to detect the above will be described.
図12は、本実施形態での生成モジュールの構成の一例図である。本実施形態では、生成モジュール1201は、クライアント識別情報取得サブモジュール1202と、クライアント識別情報書込サブモジュール1203に加えて、格納領域初期値算出サブモジュール1204と、格納領域検出サブモジュール1205と、更に、不正検出サブモジュール1206と、を有する。
FIG. 12 is an example of a configuration of the generation module in the present embodiment. In this embodiment, the
「不正検出サブモジュール」1206は、受信したデータにクライアント識別情報格納領域が有ることが検出された場合、検出されたクライアント識別情報格納領域に格納領域初期値以外の値が格納されているかどうかを検出する。データの構造や、クライアント識別情報格納領域のデータ中での位置が予め定められていたり、データのheader領域などに格納されている情報から位置を算出できる場合には、クライアント識別情報格納領域以外の部分を参照して、格納領域初期値を算出することが可能である。そして、算出された格納領域初期値が、クライアント識別情報格納領域に格納されているかどうかを判断することができる。 When it is detected that the received data has a client identification information storage area, the “fraud detection submodule” 1206 determines whether a value other than the storage area initial value is stored in the detected client identification information storage area. To detect. If the data structure or the position of the client identification information storage area in the data is determined in advance or the position can be calculated from the information stored in the data header area, etc. It is possible to calculate a storage area initial value by referring to the portion. Then, it can be determined whether or not the calculated storage area initial value is stored in the client identification information storage area.
もし、算出された格納領域初期値が、クライアント識別情報格納領域に格納されていなければ、受信したデータは、サーバから正規に受信されたものではなく、途中で改変がされたり、あるいは、サーバから別のクライアントに受信され、それが受信されたりしたものであることが判明し、何らかの不正が行なわれていることを検出することができる。このように不正が検出された場合には、データの取得を中止したり、データを破壊などするようになっていてもよい。あるいは、クライアントの利用者に不正が介在した旨を入出力インターフェース405を介して表示などを行なってもよい。
If the calculated initial value of the storage area is not stored in the client identification information storage area, the received data is not normally received from the server and has been altered in the middle or from the server It is received by another client, and it is found that it has been received, and it is possible to detect that some kind of fraud has been performed. When fraud is detected in this manner, data acquisition may be stopped or data may be destroyed. Alternatively, it may be displayed via the input /
このように、本実施形態では、あるクライアントに取得されてクライアント識別情報格納領域にそのクライアントのクライアント識別情報が書込まれたデータが、別のクライアントにダウンロードなどされたことを検出することができ、不正行為などが行なわれたことを検出することが可能となる。 As described above, in this embodiment, it is possible to detect that data obtained by a client and having the client identification information of the client written in the client identification information storage area is downloaded to another client. It is possible to detect that an illegal act has been performed.
(実施形態4)
実施形態4として、サーバに任意のデータを入力可能とし、入力されたプログラムにクライアント識別情報格納領域を確保する機能を備えさせたダウンロードシステムについて説明する。
(Embodiment 4)
As a fourth embodiment, a description will be given of a download system in which arbitrary data can be input to a server and the input program has a function of securing a client identification information storage area.
図13は、実施形態4に係るダウンロードシステムの機能ブロック図を例示する。ダウンロードシステムは、サーバ1301と、クライアント1302と、からなる。サーバ1301と、クライアント1302と、は、通信網1303などを介して通信が可能である。
FIG. 13 illustrates a functional block diagram of a download system according to the fourth embodiment. The download system includes a
サーバ1301は、送信データ蓄積部1304と、送信部1305と、データ入力部1309と、格納領域確保部1310と、を有する。なお、送信データ蓄積部1304は、送信プログラム蓄積手段を更に有していてもよい。
The
クライアント1302は、受信部1306と、蓄積部1307と、生成モジュール保持部1308と、を有する。なお、クライアント1302は、クライアント識別情報生成部を更に有していてもよい。
The
したがって、本実施形態に係るダウンロードシステムの構成は、実施形態1に係るダウンロードシステムにおいて、サーバが更にデータ入力部1309と格納領域確保部1310とを有する構成となっている。
Therefore, the configuration of the download system according to the present embodiment is a configuration in which the server further includes the
「データ入力部」1309は、任意のデータを入力する。例えば、データを生成した企業などからデータを所定のプロトコルで受信したり、データを生成した企業などから送付された媒体に記録されたデータを読み取ったりする。 A “data input unit” 1309 inputs arbitrary data. For example, data is received from a company that has generated data using a predetermined protocol, or data recorded on a medium sent from a company that has generated data is read.
「格納領域確保部」1310は、データ入力部1309に入力されたデータに、クライアント識別情報格納領域を確保する。例えば、データの開始部分、データの途中部分、データの終わり部分のうち、予め定められた位置にクライアント識別情報格納領域を確保する。また、クライアント識別情報格納領域が、画像データなどの電子透かしなどのデータとして付加される部分であれば、付加される電子透かしなどのデータの初期値を設定するようになっていてもよい。この初期値により、例えば、どのサーバへいつ誰によってデータが入力されたかが示されるようになっていてもよい。
A “storage area securing unit” 1310 secures a client identification information storage area in the data input to the
図14は、実施形態4に係るダウンロードシステムでのサーバの処理の流れを説明するフローチャートである。ステップS1401において、データ入力部1309により、任意のデータを入力する。続くステップS1402において、入力されたデータに、格納領域確保部1310により、クライアント識別情報格納領域を確保する。そして、ステップS1403において、送信データ蓄積部1304により、データを蓄積する。
FIG. 14 is a flowchart illustrating the processing flow of the server in the download system according to the fourth embodiment. In step S1401, the
このようにダウンロードシステムのサーバが構成されることにより、配信先のクライアントでのみ利用可能なデータの配信を容易に行なうことができる。 By configuring the download system server in this way, it is possible to easily distribute data that can be used only by the client of the distribution destination.
(実施形態5)
実施形態5として、プログラムを全体または一部とするデータが入力された場合に、そのプログラムに判断モジュールを追加するサーバからなるダウンロードシステムについて説明を行なう。
(Embodiment 5)
As a fifth embodiment, a description will be given of a download system including a server that adds a determination module to a program when data including the whole or a part of the program is input.
図15は、実施形態5に係るダウンロードシステムの機能ブロック図を例示する。ダウンロードシステム1500は、サーバ1501と、クライアント1502と、からなる。サーバ1501と、クライアント1502と、は、通信網1503などを介して通信が可能である。
FIG. 15 illustrates a functional block diagram of a download system according to the fifth embodiment. The
サーバ1501は、送信データ蓄積部1504と、送信部1505と、データ入力部1509と、格納領域確保部1510と、判断モジュール追加部1511と、を有する。なお、送信データ蓄積部1504は、送信プログラム蓄積手段を更に有していてもよい。
The
クライアント1502は、受信部1506と、蓄積部1507と、生成モジュール保持部1508と、を有する。なお、クライアント1502は、クライアント識別情報生成部を更に有していてもよい。
The
したがって、本実施形態に係るダウンロードシステムの構成は、実施形態4に係るダウンロードシステムにおいて、サーバが更に判断モジュール追加部1511を有する構成となっている。
Therefore, the configuration of the download system according to the present embodiment is a configuration in which the server further includes a determination
「判断モジュール追加部」1511は、データ入力部1509に入力されたデータに判断モジュールを追加する部である。なお、この場合、データ入力部1509に入力されたデータは、プログラムであることが好ましい。ただし、プログラムでなくてもよい。例えば、音楽再生用のデータである場合には、その再生プログラムが、データに追加された判断モジュールを読み込み、判断モジュールを実行するようになっていてもよい。
The “determination module addition unit” 1511 is a unit that adds a determination module to the data input to the
図16は、判断モジュールを追加の一例を示す。図16(A)のようにheader領域と、.text領域と、.data領域からなるプログラムが入力されたとする。この場合、図16(B)に例示されるように、格納領域確保部1510により、クライアント識別情報格納領域が確保され、次いで、判断モジュール追加部により判断モジュールがクライアント識別情報格納領域の前に追加される。
FIG. 16 shows an example of adding a determination module. The header area as shown in FIG. a text region; It is assumed that a program consisting of a data area is input. In this case, as illustrated in FIG. 16B, the storage
なお、クライアント識別情報格納領域が確保され、次いで、判断モジュールが追加されると説明したが、判断モジュールの追加が先に行なわれてもよい。また、図15では、判断モジュールが追加されてから、送信データ蓄積部1504にプログラムが蓄積されるようになっているが、送信データ蓄積部1504に蓄積されるプログラムには、判断モジュールは追加されず、送信部1505による送信時にプログラムに判断モジュールが追加されるようになっていてもよい。
Although it has been described that the client identification information storage area is secured and then the determination module is added, the determination module may be added first. In FIG. 15, the program is stored in the transmission
本実施形態では、判断モジュールがサーバ側において追加されるので、プログラムの制作者などは、判断モジュールの追加を行なってプログラムを製作する必要がない。また、判断モジュールのソースコードや判断モジュールのリンクの際に必要なシンボルテーブル付きのオブジェクトコードがプログラムの制作者などの手に渡って判断モジュールでの処理が解析されて、どのようにクライアント識別情報の比較などが行なわれるかが公知になってしまうことを防止することができる。 In this embodiment, since the determination module is added on the server side, the program creator does not need to add the determination module to create the program. In addition, how the client identification information is analyzed by analyzing the processing of the judgment module source code and the object code with the symbol table necessary for linking the judgment module to the creator of the program. It can be prevented that the comparison or the like is made publicly known.
(実施形態6)
実施形態6として、サーバに配信などのために蓄積されるデータやサーバにより配信されるデータが暗号化される実施形態について説明する。
(Embodiment 6)
As the sixth embodiment, a description will be given of an embodiment in which data accumulated for distribution to the server or data distributed by the server is encrypted.
図17は、実施形態6に係るダウンロードシステムの機能ブロック図を例示する。ダウンロードシステム1700は、サーバ1701と、クライアント1702と、からなる。サーバ1701と、クライアント1702と、は通信網1703などを介して通信が可能である。
FIG. 17 illustrates a functional block diagram of a download system according to the sixth embodiment. The
サーバ1701は、送信データ蓄積部1704と、送信部1705と、データ入力部1709と、格納領域確保部1710と、暗号化部1711と、を有する。なお、サーバ1701は、判断モジュール追加部を更に有してもよい。また、送信データ蓄積部1704は、送信プログラム蓄積手段を更に有していてもよい。
The
クライアント1702は、受信部1706と、蓄積部1707と、生成モジュール保持部1708と、を有する。なお、クライアント1702は、クライアント識別情報生成部を更に有していてもよい。
The
したがって、本実施形態に係るダウンロードシステムの構成は、実施形態5に係るダウンロードしシステムにおいて、サーバが更に暗号化部1711を有している構成となっている。
Therefore, the configuration of the download system according to the present embodiment is a configuration in which the server further includes the
「暗号化部」1711は、入力されたデータを暗号化する。この際、好ましくは、データに格納領域確保部1710により確保されたクライアント識別情報格納領域以外の部分を暗号化する。なぜならば、クライアントで復号化を行なう際に、クライアント識別情報格納領域に格納された値を復号化することにより、その値が変更されてしまい、実施形態2のように格納領域初期値の存在の有無を検出することが困難か不可能になってしまう可能性があるからである。
The “encryption unit” 1711 encrypts the input data. At this time, it is preferable to encrypt the data other than the client identification information storage area secured by the storage
暗号化は、例えば、サーバ1701の秘密鍵により行なう。また、暗号化は、送信データ蓄積部にデータを蓄積する前に行なうのではなく、送信部1705によりデータが送信される直前に行なうようになっていてもよい。これにより、サーバ1701とクライアント1702との間で決められた共有鍵で暗号化することができ、サーバで必要になるデータの暗号化のコスト、クライアントで必要となる復号化のコストを下げることができる。
The encryption is performed using the secret key of the
サーバ1701で暗号化を行なう目的は、クライアントにおける、あるいは、クライアントによるデータの取得経路上におけるデータの難読化であり、例えば、どのようなデータの構造になっており、その構造上でのクライアント識別情報格納領域の位置の解析を困難としたりする。
The purpose of encryption in the
本実施形態では、データは、汎用データであってもよいが、その全体または一部がプログラムであることとが好ましい。この場合、暗号化されたデータの全体または一部である暗号化されたプログラムは、クライアントで自己復号化されるようになっているのが好ましい。 In the present embodiment, the data may be general-purpose data, but it is preferable that all or part of the data is a program. In this case, it is preferable that the encrypted program which is the whole or a part of the encrypted data is self-decrypted by the client.
図18は、このような場合のダウンロードシステムの機能ブロック図を例示する。ダウンロードシステム1800は、サーバ1801と、クライアント1802と、からなる。サーバ1801と、クライアント1802と、は、通信網1803などを介して通信が可能である。
FIG. 18 illustrates a functional block diagram of the download system in such a case. The
サーバ1801は、送信データ蓄積部1804と、送信部1805と、データ入力部1809と、格納領域確保部1810と、判断モジュール追加部1811と、暗号化部1812と、を有する。暗号化部1812は、復号化モジュール追加手段1813を有する。なお、データの全体または一部がプログラムであれば、送信データ蓄積部1804は、送信プログラム蓄積手段を更に有しているものとする。
The
クライアント1802の構成は、図17のクライアント1702のそれと同じである。
The configuration of the
「復号化モジュール追加手段」1813は、復号化モジュールを追加する。「復号化モジュール」は、暗号化部1812により暗号化された部分を復号化して実行するモジュールである。ここでいう「復号化」とは、クライアントでの実行処理に先立って行なわれる復号化の処理を意味する。
The “decryption module adding unit” 1813 adds a decryption module. The “decryption module” is a module that decrypts and executes the portion encrypted by the
図19は、サーバ1801に入力されたデータの全体または一部がプログラムである場合におけるプログラムの変化の様子の一例を示す。図19(A)に示すように、header領域と、.text領域と、.data領域と構成されるプログラムが入力されたとする。この場合、格納領域確保部1810と、判断モジュール追加部1811と、により、図19(B)に示されるように、クライアント識別情報格納領域が確保され、判断モジュールが.text領域に追加される。次いで、図19(C)に示されるように、暗号化部1812により、.text領域、.data領域が暗号化され、暗号化.text領域、暗号化.data領域になる。そして、復号化モジュール追加手段により、図19(D)に示されるように復号化モジュールが追加される。headerから復号化モジュールへ延びる矢印線は、エントリポイントが書き換えられ、まず、復号化モジュールが実行されるようになっていることを示す。これにより、図19(D)に示されるプログラムが実行されると、符号化モジュールが最初に実行され、暗号化.text、暗号化.dataが復号化され、暗号化される前の.data領域のデータを用いて暗号化前の.text領域の命令が実行がされる。なお、復号化された.data領域のデータ、.text領域の命令は、プログラムを実行するプロセスのヒープ領域に配置されるようになっていてもよい。以上の技術については、出願人が既に出願を行なった特願二00四−九七0八七に開示されている。
FIG. 19 shows an example of how the program changes when all or part of the data input to the
本実施形態では、判断モジュールが暗号化されるので、判断モジュールのアルゴリズムの解析が困難となり、クライアント識別情報をどのように取得し、クライアント識別情報の比較などを行なうかを他人が知ることが困難となり、より一層プログラムの不正利用を防止することができる。 In this embodiment, since the determination module is encrypted, it is difficult to analyze the algorithm of the determination module, and it is difficult for others to know how to acquire client identification information, compare client identification information, and the like. Thus, unauthorized use of the program can be further prevented.
(実施形態7)
実施形態7として、受信蓄積工程によりダウンロードなどされたプログラムが、インストールなどのためのプログラムを展開して起動する例について説明する。
(Embodiment 7)
As an embodiment 7, an example will be described in which a program downloaded in the reception / accumulation step expands and starts a program for installation or the like.
図20は、「インストールなどのためのプログラム」と説明したプログラムの構造を例示する。このプログラムを仮に「Setup.exe」と呼ぶとすると、このプログラムには、「チェックモジュール」が含まれ、このチェックモジュールは、Setup.exeの実行の途中に実行される。 FIG. 20 illustrates the structure of a program described as “a program for installation”. If this program is called “Setup.exe”, this program includes a “check module”, and this check module is called Setup.exe. It is executed during the execution of exe.
図21は、チェックモジュールの処理の流れを説明するフローチャートを例示する。チェックモジュールは、まず、ステップS2101において、所定の領域に格納されているデータを読み出す。「所定の領域」とは、後述のように、Setup.exeと、受信蓄積工程によりダウンロードなどされたプログラムと、の両方がアクセス可能な予め定められた領域のことである。この領域は、例えば、Setup.exeを実行するプロセスと、受信蓄積工程によりダウンロードなどされたプログラムを実行するプロセスと、により共有される共有メモリに設けられてもよい。あるいは、ハードディスクなどの記憶媒体の所定の位置に設けられてもよい。また、外部に設置されているファイルサーバなどのネットワーク通信などによりアクセスが可能なサーバにその領域が設けられてもよい。なお、「読み出す」には、例えば、所定の領域に格納されているデータを取得して、復号化などの処理を行なうことをも含んでもよい。 FIG. 21 exemplifies a flowchart for explaining the flow of processing of the check module. First, in step S2101, the check module reads data stored in a predetermined area. The “predetermined area” means Setup. It is a predetermined area that can be accessed by both exe and programs downloaded by the reception and accumulation process. This area is, for example, Setup. It may be provided in a shared memory shared by a process for executing exe and a process for executing a program downloaded by the reception and accumulation step. Alternatively, it may be provided at a predetermined position of a storage medium such as a hard disk. In addition, the area may be provided in a server that can be accessed through network communication such as a file server installed outside. Note that “reading” may include, for example, obtaining data stored in a predetermined area and performing processing such as decoding.
ステップS2102として、ステップS2101で読み出されたデータが所定の値に等しいかどうかを判断する。「所定の値」とは、受信蓄積工程によりダウンロードなどされたプログラムを実行するプロセスが設定したと判断できる値であり、例えば、固定値や、そのプロセスが実行されるクライアントなどの識別情報やそれを用いて算出される値などである。 In step S2102, it is determined whether the data read in step S2101 is equal to a predetermined value. The “predetermined value” is a value that can be determined to be set by a process that executes a program downloaded by the receiving and accumulating process. For example, a fixed value, identification information such as a client that executes the process, or the like A value calculated by using.
もし、ステップS2101で読み出されたデータが所定の値に等しいと判断されれば、ステップS2103へ処理を移行する。すなわち、チェックモジュールの次に実行されるモジュールなどへ処理を続行する。また、もし、ステップS2101で読み出されたデータが所定の値に等しいと判断されなければ、ステップS2104へ処理を移行する。ステップS2104へ処理が移行されることにより、処理が中断される。すなわち、Setup.exeの実行がステップS2104にて中断される。 If it is determined that the data read in step S2101 is equal to the predetermined value, the process proceeds to step S2103. That is, the processing is continued to the module to be executed next to the check module. If it is not determined that the data read in step S2101 is equal to the predetermined value, the process proceeds to step S2104. The processing is interrupted when the processing proceeds to step S2104. That is, Setup. Execution of exe is interrupted in step S2104.
これにより、Setup.exeが、受信蓄積工程によりダウンロードなどされたプログラムを実行するプロセスにより起動された場合に、限り、Setup.exeの処理が続行されることになる。 As a result, Setup. Only when exe is started by a process that executes a program downloaded by the reception accumulation step, Setup. The processing of exe will be continued.
なお、チェックモジュールは、例えば、Setup.exeを製作などする企業などにライブラリとして渡しておいてもよい。あるいは、動的実行ライブラリとして提供され、呼び出し方をその企業などに伝えておき、動的実行ライブラリの本体は、クライアントにインストールしておいてもよい。 The check module is, for example, Setup. It may be handed over to a company that produces exe as a library. Alternatively, the dynamic execution library may be provided as a dynamic execution library, and the calling method may be communicated to the company, and the main body of the dynamic execution library may be installed in the client.
図22は、受信蓄積工程によりダウンロードなどされたプログラムの構造の一例図を示す。このプログラムを「HTSetup.exe」と呼ぶことにすると、HTSetup.exeは、判断モジュールと、クライアント識別情報格納領域を有し、また、Setup.exeを展開可能な形式で有する。「展開可能な形式」とは、C:\temp などの一時フォルダなどにSetup.exeを格納するファイルやフォルダを作成できる形態をいう。例えば、HTSetup.exeのデータ領域に、Setup.exeのプログラムコードがそのまま格納される。あるいは、Setup.exeのプログラムコードが、HTSetup.exeにより復号化できる形態で、HTSetup.exeのデータ領域に格納される。 FIG. 22 shows an example of the structure of a program downloaded by the reception accumulation process. If this program is called “HTSetup.exe”, HTSetup.exe is called. exe has a determination module, a client identification information storage area, and Setup. exe in an expandable format. “Expandable format” refers to Setup.com in a temporary folder such as C: \ temp. A form in which a file or folder for storing exe can be created. For example, HTSetup. In the data area of exe, Setup. The exe program code is stored as it is. Alternatively, Setup. The program code of exe is HTSetup. In a form that can be decrypted by exe, HTSetup. stored in the exe data area.
このような構造により、Setup.exeを製作などする企業などと、HTSetup.exeなどを製作などする企業と、を異なるようにさせることができる。すなわち、Setup.exeの提供を他の企業などから受け、HTSetup.exeを製作することに専念する企業などを設立できる。 Due to such a structure, Setup. with companies that produce exe, HTSetup. It can be made different from a company that produces exe. That is, Setup. exe is received from other companies, and HTSetup. Establish a company dedicated to producing exe.
図23は、HTSetup.exeがクライアントに蓄積された後に、HTSetup.exeが起動されたことにより行なわれる処理の流れを説明するフローチャートである。 FIG. 23 shows HTSetup. After exe is stored on the client, HTSetup. It is a flowchart explaining the flow of the process performed when exe is started.
ステップS2301において、判断モジュールを実行する。もし、実行のクライアントが、HTSetup.exeが受信蓄積工程により蓄積されたクライアントであれば、判断モジュールの処理の後には、ステップS2302へ処理が続行される。しかし、実行のクライアントが、HTSetup.exeが受信蓄積工程により蓄積されたクライアントと異なれば、ステップS2301で処理が中断し、ステップS2302へ処理が続行しなくなる。 In step S2301, a determination module is executed. If the execution client is HTSetup. If exe is a client accumulated in the reception accumulation process, the process continues to step S2302 after the process of the determination module. However, the executing client is HTSetup. If exe is different from the client accumulated in the reception accumulation process, the process is interrupted in step S2301, and the process does not continue to step S2302.
ステップS2302において、所定の領域に所定のデータを格納する。例えば、あらかじめ決められた固定値のデータや、HTSetup.exeが起動されたクライアントなどの識別情報やそれを用いて算出される値などを、予め定められた領域に格納する。 In step S2302, predetermined data is stored in a predetermined area. For example, predetermined fixed value data, HTSetup. The identification information of the client or the like in which exe is activated, the value calculated using the identification information, and the like are stored in a predetermined area.
ステップS2303において、一時フォルダなどに、Setup.exeを展開し、Setup.exeを起動する。これにより、図21に示された処理がされることになる。 In step S2303, the temporary. exe is expanded and Setup. exe is started. As a result, the processing shown in FIG. 21 is performed.
ステップS2304において、Setup.exeの終了を待つ。 In step S2304, Setup. Wait for exe to finish.
ステップS2305において、所定の領域をクリア、あるいは削除などする。 In step S2305, a predetermined area is cleared or deleted.
以上をまとめると、次のようになる。(1)例えば、A社がインストーラなどのプログラム(例えば、Setup.exeという)を生成する場合に、共有メモリなどの所定の領域に特定の所定のデータ(例えば、特定の文字列)があるかどうかをチェックするライブラリなどのモジュールを埋め込む。(2)例えば、B社は、クライアント識別情報格納領域を有し、なおかつ、共有メモリなどの所定の領域に所定のデータを書込む機能を持ったプログラム(例えば、HTSetup.exeという)をバイナリレベルでSetup.exeと結合する。ここに結合するとは、HTSetup.exeの実行時にSetup.exeを生成可能にHTSetup.exeに取り入れることをいう。例えば、HTSetup.exeのデータ領域に、Setup.exeのファイルの内容を取り入れる。必要に応じて、Setup.exeのファイルの内容を暗号化しておき、HTSetup.exeの実行時にその暗号化された内容を復号化するようになっていてもよい。(3)HTSetup.exeをダウンロードなどして、クライアントに導入する際に、クライアント識別情報がSetup.exeのクライアント識別情報格納領域に書込まれる。(4)HTSetup.exeを起動すると、HTSetup.exeの判断モジュールが、クライアント識別情報格納領域に書込まれたクライアント識別情報と、HTSetup.exeが起動されたクライアントのクライアント識別情報とが比較され、おなじあるいは、適合するものであれば、HTSetup.exeの他の処理が行なわれる。これにより、共有メモリなどの所定の領域に所定のデータが書込まれる。(5)また、HTSetup.exeは、Setup.exeを展開して、一時フォルダに格納し、Setup.exeを起動する。(6)Setup.exeは、所定の領域に所定のデータが書込まれていることを確認すると、そのまま処理を続行し、また、所定の領域がアクセス不可能であったり、所定のデータが書込まれていなかったりすれば、処理を中止する。(7)Setup.exeのプロセスが終了するなどして、所定の領域が不要になれば、所定の領域をクリアしたり、破棄したりする。 The above is summarized as follows. (1) For example, when company A generates a program such as an installer (for example, Setup.exe), is there a specific predetermined data (for example, a specific character string) in a predetermined area such as a shared memory? Embed a module such as a library to be checked. (2) For example, Company B has a binary level of a program (for example, HTSetup.exe) having a client identification information storage area and a function for writing predetermined data in a predetermined area such as a shared memory. In Setup. Combine with exe. Bind to here is HTSetup. When executing exe, Setup. exe can be generated. It means to be incorporated into exe. For example, HTSetup. In the data area of exe, Setup. Import the contents of the exe file. If necessary, Setup. The contents of the exe file are encrypted, and HTSetup. The encrypted content may be decrypted when exe is executed. (3) HTSetup. When the exe is downloaded and installed in the client, the client identification information is set to Setup. exe is written in the client identification information storage area. (4) HTSetup. When exe is started, HTSetup. The exe determination module includes the client identification information written in the client identification information storage area, the HTSetup. exe is compared with the client identification information of the client on which the exe has been started, and if the same or compatible, the HTSetup. Other processing of exe is performed. As a result, predetermined data is written in a predetermined area such as a shared memory. (5) Also, HTSetup. exe is set up in Setup. exe is expanded and stored in a temporary folder, and Setup. exe is started. (6) Setup. When exe confirms that the predetermined data is written in the predetermined area, the processing is continued, and the predetermined area is not accessible or the predetermined data is not written. If so, the process is canceled. (7) Setup. If the predetermined area becomes unnecessary because the exe process is finished, the predetermined area is cleared or discarded.
以上のような構成により、HTSetup.exeは、受信蓄積工程が行なわれたクライアントでのみ実行可能となる。また、Setup.exeは、HTSetup.exeから起動された場合のみ、実行がされる。 With the above configuration, HTSetup. exe can be executed only by the client that has undergone the reception and accumulation process. Also, Setup. exe is an HTS setup. Only executed when run from exe.
100 ダウンロードシステム
101 サーバ
102 クライアント
103 通信網
104 送信データ蓄積部
105 送信部
106 受信部
107 蓄積部
108 生成モジュール保持部
100
Claims (9)
前記サーバは、
クライアント識別情報を格納するために確保されたクライアント識別情報格納領域を備えたデータを蓄積する送信データ蓄積部と、
蓄積されたデータを送信する送信部と、
を有し、
前記クライアントは、
前記サーバから前記データを受信する受信部と、
受信したデータに基づいて生成される蓄積用データを蓄積する蓄積部と、
前記受信から前記蓄積に至る受信蓄積工程において前記蓄積用データの生成のために実行されるモジュールであって、前記クライアントの有するクライアント識別情報を取得するクライアント識別情報取得サブモジュールと、取得したクライアント識別情報を前記受信したデータのクライアント識別情報格納領域に書込むクライアント識別情報書込サブモジュールと、を有する生成モジュールを保持する生成モジュール保持部と、
を有するダウンロードシステム。 A download system consisting of a server and a client,
The server
A transmission data storage unit for storing data including a client identification information storage area reserved for storing client identification information;
A transmission unit for transmitting the accumulated data;
Have
The client
A receiving unit for receiving the data from the server;
An accumulation unit for accumulating accumulation data generated based on the received data;
A client identification information acquisition sub-module that acquires the client identification information of the client, and is a module that is executed for generating the storage data in the reception and accumulation process from the reception to the accumulation, and the acquired client identification A generation module holding unit that holds a generation module having a client identification information writing sub-module that writes information in a client identification information storage area of the received data;
Download system with.
全体または一部が、前記クライアント識別情報格納領域にクライアント識別情報が格納された後に、格納されたクライアント識別情報と、実行処理を行なうクライアントのクライアント識別情報と、を比較して実行処理を許可するか判断をするための判断モジュールを備えたプログラムとなっているデータを蓄積する送信プログラム蓄積手段を有し、
前記クライアントは、
前記判断モジュールにより利用可能にクライアント識別情報を生成するクライアント識別情報生成部
を有する請求項1に記載のダウンロードシステム。 The transmission data storage unit of the server,
After the client identification information is stored in the client identification information storage area in whole or in part, the stored client identification information is compared with the client identification information of the client performing the execution process, and the execution process is permitted. Transmission program storage means for storing data that is a program having a determination module for determining whether or not
The client
The download system according to claim 1, further comprising: a client identification information generation unit that generates client identification information that can be used by the determination module.
前記クライアントの生成モジュール保持部が保持する生成モジュールは、
前記受信蓄積工程においてクライアント識別情報格納領域以外のデータの部分を参照して格納領域初期値を算出する格納領域初期値算出サブモジュールと、
受信されたデータ中のクライアント識別情報格納領域の有無を検出する格納領域検出サブモジュールと、
を更に有する請求項1または2に記載のダウンロードシステム。 The client identification information storage area of the data stored in the transmission data storage unit of the server stores a storage area initial value that is a value calculated by referring to a portion other than the client identification information storage area of the data. And
The generation module held by the generation module holding unit of the client is
A storage area initial value calculation submodule that calculates a storage area initial value by referring to a part of data other than the client identification information storage area in the reception and accumulation step;
A storage area detection submodule that detects the presence or absence of a client identification information storage area in the received data;
The download system according to claim 1, further comprising:
受信したデータにクライアント識別情報格納領域が有ることが検出された場合に、検出されたクライアント識別情報格納領域に格納領域初期値以外の値が格納されているかどうかを検出する不正検出サブモジュールを有する請求項3に記載のダウンロードシステム。 The generation module held by the generation module holding unit of the client is
A fraud detection sub-module that detects whether a value other than the initial value of the storage area is stored in the detected client identification information storage area when it is detected that the received data has a client identification information storage area The download system according to claim 3.
任意のデータを入力するデータ入力部と、
入力されたデータにクライアント識別情報を格納するクライアント識別情報格納領域を確保する格納領域確保部と、
を有する請求項1または2に記載のダウンロードシステム。 The server
A data input section for inputting arbitrary data;
A storage area securing unit for securing a client identification information storage area for storing client identification information in the input data;
The download system according to claim 1, comprising:
データ入力部に、プログラムを全体または一部とするデータが入力された場合に、クライアント識別情報格納領域に、そのプログラムが実行処理されるクライアントのクライアント識別情報が格納された後に、格納されたクライアント識別情報と、そのプログラムの実行処理を行なうクライアントのクライアント識別情報とを比較して実行処理を許可するか判断するための判断モジュールを追加する判断モジュール追加部を有する請求項5に記載のダウンロードシステム。 The server
Client data stored after the client identification information of the client on which the program is executed is stored in the client identification information storage area when data including all or part of the program is input to the data input unit 6. The download system according to claim 5, further comprising a determination module adding unit for adding a determination module for comparing the identification information with the client identification information of the client executing the program to determine whether the execution process is permitted. .
データ入力部に、プログラムを全体または一部とするデータが入力された場合に、暗号化された部分を復号化して実行する復号化モジュールを追加する復号化モジュール追加手段を有する請求項7に記載のダウンロードシステム。 The encryption unit is
The decryption module adding means for adding a decryption module for decrypting and executing the encrypted part when data having the whole or a part of the program is input to the data input unit. Download system.
前記サーバにおいて、
クライアント識別情報を格納するために確保されたクライアント識別情報格納領域を備えたデータを蓄積する送信データ蓄積ステップと、
蓄積されたデータを送信する送信ステップと、
が実行され、
前記クライアントにおいて、
前記サーバから前記データを受信する受信ステップと、
受信したデータに基づいて生成される蓄積用データを蓄積する蓄積ステップと、
前記受信から前記蓄積に至る受信蓄積工程において前記蓄積用データの生成のために実行されるモジュールであって、前記クライアントの有するクライアント識別情報を取得するサブモジュールと、取得したクライアント識別情報を前記受信したデータのクライアント識別情報格納領域に書込む書込サブモジュールと、を有する生成モジュールを保持する生成モジュール保持ステップと、
が実行されるダウンロードシステムの動作方法。 A method of operating a download system comprising a server and a client,
In the server,
A transmission data accumulation step for accumulating data having a client identification information storage area reserved for storing client identification information;
A transmission step for transmitting the accumulated data;
Is executed,
In the client,
Receiving the data from the server;
An accumulation step for accumulating accumulation data generated based on the received data;
A module that is executed for generation of the storage data in a reception and accumulation process from the reception to the accumulation, the submodule obtaining client identification information of the client, and the received client identification information A generation module holding step for holding a generation module, and a writing submodule for writing the data into the client identification information storage area
Operating system of the download system where is executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006174045A JP4930982B2 (en) | 2006-06-23 | 2006-06-23 | Download system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006174045A JP4930982B2 (en) | 2006-06-23 | 2006-06-23 | Download system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008003928A true JP2008003928A (en) | 2008-01-10 |
JP4930982B2 JP4930982B2 (en) | 2012-05-16 |
Family
ID=39008246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006174045A Expired - Fee Related JP4930982B2 (en) | 2006-06-23 | 2006-06-23 | Download system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4930982B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011028724A (en) * | 2009-06-22 | 2011-02-10 | Softbank Bb Corp | Content distribution system, distribution method and receiving program |
US10742479B2 (en) | 2015-07-07 | 2020-08-11 | International Business Machines Corporation | Management of events and moving objects |
US20220083679A1 (en) * | 2020-09-14 | 2022-03-17 | Box, Inc. | Broker-assisted workflows |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0229823A (en) * | 1988-07-20 | 1990-01-31 | Pfu Ltd | Software copyright protection system |
JPH07175599A (en) * | 1993-12-20 | 1995-07-14 | Canon Inc | Information processor |
JPH07262001A (en) * | 1994-03-18 | 1995-10-13 | Fujitsu Ltd | Unauthorized use preventing method |
JP2002333927A (en) * | 2001-05-08 | 2002-11-22 | Sony Corp | Data distribution method, program for data distribution method, data processing method and recording medium |
JP2003099074A (en) * | 2001-09-21 | 2003-04-04 | Casio Comput Co Ltd | Data processor and data processing method |
JP2003150457A (en) * | 2001-11-12 | 2003-05-23 | Matsushita Electric Ind Co Ltd | Apparatus compatible with electronic data distribution system for preventing fraudulent usage using copyright protecting function integrated medium |
JP2003330564A (en) * | 2002-05-17 | 2003-11-21 | Canon Inc | Function-in-device usage limiting method |
JP2004139539A (en) * | 2002-10-15 | 2004-05-13 | Atsushi Takahashi | Method of delivering software |
JP2005033640A (en) * | 2003-07-09 | 2005-02-03 | Canon Inc | Content distribution method or content tampering detection method |
JP2005063207A (en) * | 2003-08-14 | 2005-03-10 | Easy Systems Japan Kk | Update program and update method |
JP2005141454A (en) * | 2003-11-06 | 2005-06-02 | Ii D Kontoraibu Kk | Illegal installation preventing program, computer-readable recording medium with its program recorded and illegal installation preventing system |
JP2005242871A (en) * | 2004-02-27 | 2005-09-08 | Denso Corp | Communication system |
-
2006
- 2006-06-23 JP JP2006174045A patent/JP4930982B2/en not_active Expired - Fee Related
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0229823A (en) * | 1988-07-20 | 1990-01-31 | Pfu Ltd | Software copyright protection system |
JPH07175599A (en) * | 1993-12-20 | 1995-07-14 | Canon Inc | Information processor |
JPH07262001A (en) * | 1994-03-18 | 1995-10-13 | Fujitsu Ltd | Unauthorized use preventing method |
JP2002333927A (en) * | 2001-05-08 | 2002-11-22 | Sony Corp | Data distribution method, program for data distribution method, data processing method and recording medium |
JP2003099074A (en) * | 2001-09-21 | 2003-04-04 | Casio Comput Co Ltd | Data processor and data processing method |
JP2003150457A (en) * | 2001-11-12 | 2003-05-23 | Matsushita Electric Ind Co Ltd | Apparatus compatible with electronic data distribution system for preventing fraudulent usage using copyright protecting function integrated medium |
JP2003330564A (en) * | 2002-05-17 | 2003-11-21 | Canon Inc | Function-in-device usage limiting method |
JP2004139539A (en) * | 2002-10-15 | 2004-05-13 | Atsushi Takahashi | Method of delivering software |
JP2005033640A (en) * | 2003-07-09 | 2005-02-03 | Canon Inc | Content distribution method or content tampering detection method |
JP2005063207A (en) * | 2003-08-14 | 2005-03-10 | Easy Systems Japan Kk | Update program and update method |
JP2005141454A (en) * | 2003-11-06 | 2005-06-02 | Ii D Kontoraibu Kk | Illegal installation preventing program, computer-readable recording medium with its program recorded and illegal installation preventing system |
JP2005242871A (en) * | 2004-02-27 | 2005-09-08 | Denso Corp | Communication system |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011028724A (en) * | 2009-06-22 | 2011-02-10 | Softbank Bb Corp | Content distribution system, distribution method and receiving program |
US10742479B2 (en) | 2015-07-07 | 2020-08-11 | International Business Machines Corporation | Management of events and moving objects |
US20220083679A1 (en) * | 2020-09-14 | 2022-03-17 | Box, Inc. | Broker-assisted workflows |
Also Published As
Publication number | Publication date |
---|---|
JP4930982B2 (en) | 2012-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210192095A1 (en) | Program execution device | |
US6961852B2 (en) | System and method for authenticating software using hidden intermediate keys | |
US7475254B2 (en) | Method for authenticating software using protected master key | |
Wang et al. | Steal This Movie: Automatically Bypassing DRM Protection in Streaming Media Services. | |
JPWO2006009081A1 (en) | Application execution apparatus and application execution method of application execution apparatus | |
WO2005098570A1 (en) | Execution device | |
US8607071B2 (en) | Preventing replay attacks in encrypted file systems | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
JP4930982B2 (en) | Download system | |
US8479014B1 (en) | Symmetric key based secure microprocessor and its applications | |
JP2009129461A (en) | Storage device, terminal device using the storage device, and using method thereof | |
US7330980B2 (en) | Method of and system for encrypting digital data, method of and apparatus for reproducing digital data, and computer product | |
JP2007219685A (en) | Content distribution device, content distribution system, content distribution method, and content distribution program | |
Bahaa-Eldin et al. | A comprehensive software copy protection and digital rights management platform | |
US9081936B2 (en) | System and method for tracking a downloaded digital media file | |
JP4906739B2 (en) | How to protect rights file descriptions | |
JP4897066B2 (en) | Encryption program decryption method and encryption program decryption program | |
JP2008011219A (en) | Digital watermark embedding system, device and program | |
JP4502359B2 (en) | Encryption program decryption method and encryption program decryption program | |
CN112632571B (en) | Data encryption method, data decryption device and storage device | |
US8176249B2 (en) | Methods for embedding session secrets, within application instances | |
JP2007328541A (en) | Electronic device | |
CN115296821A (en) | Data processing system for digital collection management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090507 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120126 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4930982 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150224 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |