JP2008003928A - Download system - Google Patents

Download system Download PDF

Info

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
Application number
JP2006174045A
Other languages
Japanese (ja)
Other versions
JP4930982B2 (en
Inventor
Hideaki Ogawa
秀明 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HYPER TEC KK
Original Assignee
HYPER TEC KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HYPER TEC KK filed Critical HYPER TEC KK
Priority to JP2006174045A priority Critical patent/JP4930982B2/en
Publication of JP2008003928A publication Critical patent/JP2008003928A/en
Application granted granted Critical
Publication of JP4930982B2 publication Critical patent/JP4930982B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To prevent data downloaded or the like from being illegally used. <P>SOLUTION: In a receiving and storing process from acquiring data provided with a client identification information storage area secured to store client identification information by receiving the data, or the like till storing the data, a generation module to be executed in the receiving and storing process has a submodule for acquiring client identification information of a client and a submodule for writing the acquired client identification information in the client identification information storage area provided in the data received or the like, and compares the stored client identification information with client identification information of a client for performing execution processing to determine whether to allow execution after the client identification information is entirely or partially stored in the client identification information storage area. <P>COPYRIGHT: (C)2008,JPO&INPIT

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参照。)。
特開2005−141454号公報
On the other hand, the completion of downloading of the program is detected, it is determined whether or not the client's unique information is included when the downloaded program is installed. (1) When it is determined that the unique information is not included, the unique information It is determined whether the task that has been included is the same as the task that detected the completion of download, and if it is determined to be the same, the client specific information is additionally recorded in the downloaded program. (2) When it is determined that the unique information is included, it is possible to determine whether the included unique information matches the unique information of the client, thereby preventing an unauthorized program from being executed. It is known (for example, refer to Patent Document 1).
JP 2005-141454 A

しかしながら、特許文献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 download system 100 includes a server 101 and a client 102. The server 101 and the client 102 can communicate with each other via a communication network 103 typified by the Internet. The server 101 and the client 102 do not necessarily communicate with each other. For example, the server 101 may write data on a medium and the medium can be read by the client 102. One of the methods for mounting the server 101 and the client 102 is to use an electronic computer and operate a program for realizing the units and means described below.

サーバ101は、送信データ蓄積部104と、送信部105とを有する。   The server 101 includes a transmission data storage unit 104 and a transmission unit 105.

「送信データ蓄積部」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 data accumulation unit 104, a client identification information storage area is added to the data. For example, it is added to the start part of data, the middle part of data, or the end part of data. The client identification information storage area may be distributed in a plurality of parts. Further, for example, a part in which data such as a digital watermark is added to image data without adding a new area may be called a client identification information storage area. A free area such as a header area may be used as a client identification information storage area.

ここに、「クライアント識別情報」とは、クライアントを識別するために用いることができる情報を言い、クライアントが異なるとクライアント識別情報も異なる蓋然性が高い情報である。クライアント識別情報の例としては、クライアントの製造番号や、クライアントが備える通信インターフェースの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 server 101 is mounted using an electronic computer, the transmission data storage unit 104 is realized by a main memory or a disk device of the electronic computer.

「送信部」105は、蓄積されたデータを送信する。「蓄積されたデータ」には、送信データ蓄積部104に蓄積されたデータが含まれる。送信は、通信網103を介してクライアント102などに向けて行なわれることが想定される。それ以外には、脱着可能な媒体にデータを書込むことも挙げられる。   “Transmitter” 105 transmits the accumulated data. “Accumulated data” includes data accumulated in the transmission data accumulation unit 104. The transmission is assumed to be performed toward the client 102 or the like via the communication network 103. Another way is to write data to a removable medium.

サーバ101を電子計算機を用いて実装する場合には、送信部105は、電子計算機の通信インターフェースや、その通信インターフェースを動作させるためのデバイスドライバや、通信のためのプログラムモジュールなどを用いて実現される。また、媒体に書込むためのデバイスドライバなどで実現されてもよい。   When the server 101 is implemented using an electronic computer, the transmission unit 105 is realized using a communication interface of the electronic computer, a device driver for operating the communication interface, a program module for communication, and the like. The Further, it may be realized by a device driver for writing to a medium.

クライアント102は、受信部106と、蓄積部107と、生成モジュール保持部108とを有する。   The client 102 includes a receiving unit 106, a storage unit 107, and a generation module holding unit 108.

「受信部」106は、サーバ101からデータを受信する。すなわち、サーバ101の送信部105から通信網103を介して送信されるデータを受信する。したがって、ここで受信されるデータには、クライアント識別情報格納領域を備えたデータが含まれる。また、サーバ101によりデータが書込まれた媒体をクライアント102に装着し、その媒体を読み取ることで、データをクライアント102に導入するようになっていてもよい。通信網103は、このように媒体を経由してデータが導入されることも含んで表現しているものとする(他の機能ブロック図においても同様である)。   The “reception unit” 106 receives data from the server 101. That is, data transmitted from the transmission unit 105 of the server 101 via the communication network 103 is received. Therefore, the data received here includes data having a client identification information storage area. In addition, a medium in which data is written by the server 101 may be loaded into the client 102, and the medium may be read into the client 102 by reading the medium. It is assumed that the communication network 103 represents that data is introduced through the medium as described above (the same applies to other functional block diagrams).

クライアント102を電子計算機を用いて実装する場合には、受信部106は通信インターフェースや、その通信インターフェースを動作させるためのデバイスドライバや、通信のためのプログラムモジュールなどを用いて実現される。また、媒体を読み取るデバイスドライバを用いて実現されていてもよい。   When the client 102 is mounted using an electronic computer, the receiving unit 106 is realized by using a communication interface, a device driver for operating the communication interface, a program module for communication, and the like. Further, it may be realized using a device driver that reads a medium.

「蓄積部」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 client 102 is mounted using an electronic computer, the storage unit 107 is realized using a hard disk, a main memory, or the like. In particular, it is mainly assumed that among the programs that realize each part of the client, a program that operates in the user mode is a part of the main memory or a part of the hard disk that can be referred to.

「生成モジュール保持部」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 reception unit 106 to accumulation by the accumulation unit 107. In other words, the module is executed while the receiving unit 106 receives data via the communication network 103 and generates data for storage that is data to be stored in the storage unit 107 from the received data.

生成モジュールは、プログラムのモジュールとして提供されることが主に想定される。したがって、生成モジュール保持部108は、電子計算機の主メモリにより実現され得る。   It is mainly assumed that the generation module is provided as a program module. Therefore, the generation module holding unit 108 can be realized by the main memory of the electronic computer.

生成モジュールは、クライアント識別情報取得サブモジュールと、クライアント識別情報書込サブモジュールとを有する。   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 client 102. For example, the MAC address of the client 102 is acquired. When the client is realized using an electronic computer, the acquired client identification information is held in a memory or a register.

「クライアント識別情報書込サブモジュール」は、クライアント識別情報取得サブモジュールにより取得されたクライアント識別情報を、受信部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 unit 106. For example, if a client identification information storage area is provided at the start of the data, the client identification information held in the memory or register is written therein. Further, if the client identification information stored in the client identification information storage area is stored as data such as an electronic watermark of image data, the client identification information is stored as such an electronic watermark. For example, the location of the client identification information storage area in the data is defined in advance by a communication protocol with the server 101 or the like. Further, the position may be different depending on the type of data. In addition, instead of determining the position in the data, there is a place where a specific value such as a specific bit pattern (for example, a hexadecimal number AFAFAFAF considered to appear less frequently in normal data) exists in the data. It may be determined that the client identification information is written.

生成モジュールは、クライアント102が電子計算機を用いて実装される場合においては、通信インターフェースのデバイスドライバや通信のためのプログラムモジュールの一部として実現することができる。   When the client 102 is mounted using an electronic computer, the generation module can be realized as a part of a communication interface device driver or a communication program module.

図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 server 101 is received or acquired. If so, each time a packet or the like is received from the server 101 or block data for reading the medium is obtained, the process proceeds to step S201, and the packet or block data is transferred from the server 101. Receive. Next, the process proceeds to step S202, and it is determined whether the position of the partial data represented by the received packet or block data includes the client identification information storage area. If the client identification information storage area is included, the process proceeds to step S203; otherwise, the process jumps to step S205. In step S203, client identification information is acquired. This process is performed by the client identification information acquisition submodule. In the next step S204, the client identification information is written into the client identification information storage area. This processing is performed by the client identification information writing submodule. In the next step, the partial data represented by the packet is appended to the read buffer. The read buffer is a buffer that temporarily stores data input by modules higher in the generation module because program modules for communication and the like are hierarchized vertically.

図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 hardware 301 is in the lowest layer, and an operating system 302 for abstracting the hardware 301 operates as a layer above it. The operating system 302 and the execution program 303 executed thereon constitute a program for realizing a client. The device driver 304 operates inside the operating system, abstracts hardware, and enables the functions of the hardware 301 to be operated from the execution program 303 through a system call API (Application Interface). Examples of the execution program 303 include an ftp client for downloading data, a browser, and the like. The execution program 303 is not limited to these.

図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 hardware 301. The hardware 400 includes a CPU 401, a RAM 402, an external storage medium 403 such as a hard disk, a ROM 404, an input / output interface 405, and a communication interface 406, which are connected to each other via a bus. When the power is turned on, the CPU 401 starts processing from a predetermined address of an initial startup program (for example, BIOS) stored in the ROM 404. The initial startup program reads, for example, the boot program stored in the first sector of the hard disk into the RAM 402, and transfers control to the boot program. For example, the boot program expands an operating system recorded at a predetermined position of the hard disk in the RAM, and transfers control to the operating system. The operating system reads and executes the execution program 303 from the hard disk. For example, the execution program 303 reads an instruction from the user of the client 102 from the input / output interface 405 to which a mouse, a keyboard, and a display are connected, communicates with the server using the communication interface 406, and receives data. To do. At this time, a generation module realized as a device driver operates to generate storage data, which is stored in the RAM 402 or the external storage medium 403.

なお、近年開発されているオペレーティングシステムでは、デバイスドライバは、動的ライブラリとして提供が可能であり、生成モジュールも、そのような動的ライブラリとして提供が可能である。また、生成モジュールはオペレーティングシステムのカーネル内で動作するように実現されるものではなく、例えば、システムコール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 execution program 303. For example, if the execution program 303 is a browser, the execution module may be provided as a plug-in for the browser.

(実施形態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 download system 500 includes a server 501 and a client 502. The server 501 and the client 502 can communicate with each other via a communication network 503 typified by the Internet.

サーバ501は、送信データ蓄積部504と、送信部505とを有する。上述のサーバ101との違いは、送信データ蓄積部504が、送信プログラム蓄積手段509を有している点である。   The server 501 includes a transmission data storage unit 504 and a transmission unit 505. The difference from the server 101 described above is that the transmission data storage unit 504 has a transmission program storage unit 509.

「送信プログラム蓄積手段」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 server 501 and the program obtained as a result of the conversion program may be stored in the transmission program storage unit 509. . Further, the conversion program may operate on a conversion server that is a server other than the server 501, and may be configured as a so-called application service provider. That is, the server 501 once transmits a program without a determination module to the conversion server, and the conversion server operates the conversion program and returns a program with the determination module added. The server 501 stores the returned program in the transmission program storage unit 509.

図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 header area 601,. text region 602,. data area 603. A header area 601 includes a magic number indicating that the format is an execution format,. It holds the size of the area such as the text area 602, the entry point address, and the like. . A text area 602 is an area in which instructions are stored. . The data area 603 is an area including initialized data. Note that the program structure differs for each operating system, and is not limited to the examples in this specification. For example,. The data area is first, then. There is a text region,. An rsrc region or the like may follow thereafter.

図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 information storage area 604 is provided in the program having the structure illustrated in FIG. Here, the client identification information storage area 604 includes. arranged following the text region 602,. It is provided as a part of the text area 602. Of course, the arrangement of the client identification information storage area 604 is not limited to that illustrated in FIG. For example, it is secured in a free area of the header area 601 or the header area 601. You may arrange | position between text areas. Also,. It may be arranged following the data area 603.

クライアント502は、受信部506と、蓄積部507と、受信モジュール保持部508と、クライアント識別情報生成部510と、を有する。上述のクライアント102との違いは、クライアント識別情報生成部510をさらに有する点である。   The client 502 includes a receiving unit 506, a storage unit 507, a receiving module holding unit 508, and a client identification information generating unit 510. The difference from the client 102 described above is that a client identification information generation unit 510 is further provided.

「クライアント識別情報生成部」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 program storage unit 509 is executed after being downloaded and introduced to the client. First, as step S701, the client identification information stored in the client identification information storage area provided in the program is read. For example,. When a client identification information storage area is provided after the text area 602,. Client identification information stored in an area of a predetermined size is read from the end of the text area. In step S702, the client identification information generation unit 510 generates and acquires client identification information of the client that performs the program execution process. In step S704, the client identification information read in step S701 is compared with the client identification information acquired in step S702. In step S705, the comparison result is determined. If the comparison results are the same, or if the two pieces of client identification information meet the predetermined conditions, the process proceeds to step S706 and the program execution process is permitted. For example, the processing of the part of the program to be executed following execution of the determination module is continued. If the comparison results are different and the two pieces of client identification information do not match under a predetermined condition, the process proceeds to step S707 and the program execution process is not permitted. For example, the program execution is forcibly terminated.

図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 communication interface 406 of the hardware 301 to the execution program 303, the generation module operates to write the client identification information in the client identification information storage area and write it to the read buffer. The read data is read by the read system call. When the reading is completed, it is determined in step S803 whether or not it is EOF (End of File). If so, the process is ended. If it is not EOF, the read data is added to the hard disk or the like, and the process returns to step S802.

多くのオペレーティングシステムでは、上述したように、サーバとの通信によるデータの読み出しは、ファイルの読み出しとほぼ同じように行なわれる。したがって、本実施形態では、データはサーバから送信されるとして説明したが、サーバによりプログラムが記録された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 generation module 1101 held by the generation module holding unit of the client is stored in addition to the client identification information acquisition submodule 1102 and the client identification information writing submodule 1103. An area initial value calculation submodule 1104 and a storage area detection submodule 1105 are provided.

「格納領域初期値算出サブモジュール」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 generation module 1201 includes a storage area initial value calculation submodule 1204, a storage area detection submodule 1205, in addition to the client identification information acquisition submodule 1202 and the client identification information write submodule 1203. And a fraud detection submodule 1206.

「不正検出サブモジュール」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 / output interface 405 that fraud is present in the client user.

このように、本実施形態では、あるクライアントに取得されてクライアント識別情報格納領域にそのクライアントのクライアント識別情報が書込まれたデータが、別のクライアントにダウンロードなどされたことを検出することができ、不正行為などが行なわれたことを検出することが可能となる。   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 server 1301 and a client 1302. The server 1301 and the client 1302 can communicate with each other via a communication network 1303 or the like.

サーバ1301は、送信データ蓄積部1304と、送信部1305と、データ入力部1309と、格納領域確保部1310と、を有する。なお、送信データ蓄積部1304は、送信プログラム蓄積手段を更に有していてもよい。   The server 1301 includes a transmission data storage unit 1304, a transmission unit 1305, a data input unit 1309, and a storage area reservation unit 1310. The transmission data storage unit 1304 may further include a transmission program storage unit.

クライアント1302は、受信部1306と、蓄積部1307と、生成モジュール保持部1308と、を有する。なお、クライアント1302は、クライアント識別情報生成部を更に有していてもよい。   The client 1302 includes a receiving unit 1306, a storage unit 1307, and a generation module holding unit 1308. Note that the client 1302 may further include a client identification information generation unit.

したがって、本実施形態に係るダウンロードシステムの構成は、実施形態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 data input unit 1309 and the storage area securing unit 1310 in the download system according to the first embodiment.

「データ入力部」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 data input unit 1309. For example, the client identification information storage area is secured at a predetermined position among the data start part, the data middle part, and the data end part. Further, if the client identification information storage area is a portion added as data such as digital watermark such as image data, an initial value of data such as digital watermark to be added may be set. This initial value may indicate, for example, who and when the data was input to which server.

図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 data input unit 1309 inputs arbitrary data. In subsequent step S1402, the storage area securing unit 1310 secures a client identification information storage area for the input data. In step S1403, the transmission data storage unit 1304 stores data.

このようにダウンロードシステムのサーバが構成されることにより、配信先のクライアントでのみ利用可能なデータの配信を容易に行なうことができる。   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 download system 1500 includes a server 1501 and a client 1502. A server 1501 and a client 1502 can communicate with each other via a communication network 1503 or the like.

サーバ1501は、送信データ蓄積部1504と、送信部1505と、データ入力部1509と、格納領域確保部1510と、判断モジュール追加部1511と、を有する。なお、送信データ蓄積部1504は、送信プログラム蓄積手段を更に有していてもよい。   The server 1501 includes a transmission data storage unit 1504, a transmission unit 1505, a data input unit 1509, a storage area securing unit 1510, and a determination module addition unit 1511. The transmission data storage unit 1504 may further include a transmission program storage unit.

クライアント1502は、受信部1506と、蓄積部1507と、生成モジュール保持部1508と、を有する。なお、クライアント1502は、クライアント識別情報生成部を更に有していてもよい。   The client 1502 includes a reception unit 1506, a storage unit 1507, and a generation module holding unit 1508. Note that the client 1502 may further include a client identification information generation unit.

したがって、本実施形態に係るダウンロードシステムの構成は、実施形態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 module adding unit 1511 in the download system according to the fourth embodiment.

「判断モジュール追加部」1511は、データ入力部1509に入力されたデータに判断モジュールを追加する部である。なお、この場合、データ入力部1509に入力されたデータは、プログラムであることが好ましい。ただし、プログラムでなくてもよい。例えば、音楽再生用のデータである場合には、その再生プログラムが、データに追加された判断モジュールを読み込み、判断モジュールを実行するようになっていてもよい。   The “determination module addition unit” 1511 is a unit that adds a determination module to the data input to the data input unit 1509. In this case, the data input to the data input unit 1509 is preferably a program. However, it may not be a program. For example, in the case of music reproduction data, the reproduction program may read the determination module added to the data and execute the determination module.

図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 area securing unit 1510 secures the client identification information storage area, and then the determination module adding unit adds the determination module before the client identification information storage area. Is done.

なお、クライアント識別情報格納領域が確保され、次いで、判断モジュールが追加されると説明したが、判断モジュールの追加が先に行なわれてもよい。また、図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 data storage unit 1504 after the determination module is added. However, the determination module is added to the program stored in the transmission data storage unit 1504. Instead, a determination module may be added to the program at the time of transmission by the transmission unit 1505.

本実施形態では、判断モジュールがサーバ側において追加されるので、プログラムの制作者などは、判断モジュールの追加を行なってプログラムを製作する必要がない。また、判断モジュールのソースコードや判断モジュールのリンクの際に必要なシンボルテーブル付きのオブジェクトコードがプログラムの制作者などの手に渡って判断モジュールでの処理が解析されて、どのようにクライアント識別情報の比較などが行なわれるかが公知になってしまうことを防止することができる。   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 download system 1700 includes a server 1701 and a client 1702. The server 1701 and the client 1702 can communicate with each other via a communication network 1703 or the like.

サーバ1701は、送信データ蓄積部1704と、送信部1705と、データ入力部1709と、格納領域確保部1710と、暗号化部1711と、を有する。なお、サーバ1701は、判断モジュール追加部を更に有してもよい。また、送信データ蓄積部1704は、送信プログラム蓄積手段を更に有していてもよい。   The server 1701 includes a transmission data storage unit 1704, a transmission unit 1705, a data input unit 1709, a storage area securing unit 1710, and an encryption unit 1711. Note that the server 1701 may further include a determination module addition unit. The transmission data storage unit 1704 may further include a transmission program storage unit.

クライアント1702は、受信部1706と、蓄積部1707と、生成モジュール保持部1708と、を有する。なお、クライアント1702は、クライアント識別情報生成部を更に有していてもよい。   The client 1702 includes a receiving unit 1706, a storage unit 1707, and a generation module holding unit 1708. Note that the client 1702 may further include a client identification information generation unit.

したがって、本実施形態に係るダウンロードシステムの構成は、実施形態5に係るダウンロードしシステムにおいて、サーバが更に暗号化部1711を有している構成となっている。   Therefore, the configuration of the download system according to the present embodiment is a configuration in which the server further includes the encryption unit 1711 in the download system according to the fifth embodiment.

「暗号化部」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 area securing unit 1710 in the data. This is because when the client performs decryption, the value stored in the client identification information storage area is decrypted, so that the value is changed, and the existence of the storage area initial value is present as in the second embodiment. This is because it may be difficult or impossible to detect the presence or absence.

暗号化は、例えば、サーバ1701の秘密鍵により行なう。また、暗号化は、送信データ蓄積部にデータを蓄積する前に行なうのではなく、送信部1705によりデータが送信される直前に行なうようになっていてもよい。これにより、サーバ1701とクライアント1702との間で決められた共有鍵で暗号化することができ、サーバで必要になるデータの暗号化のコスト、クライアントで必要となる復号化のコストを下げることができる。   The encryption is performed using the secret key of the server 1701, for example. Further, the encryption may be performed immediately before data is transmitted by the transmission unit 1705 rather than being performed before the data is stored in the transmission data storage unit. As a result, encryption can be performed using a shared key determined between the server 1701 and the client 1702, and the cost of data encryption required by the server and the cost of decryption required by the client can be reduced. it can.

サーバ1701で暗号化を行なう目的は、クライアントにおける、あるいは、クライアントによるデータの取得経路上におけるデータの難読化であり、例えば、どのようなデータの構造になっており、その構造上でのクライアント識別情報格納領域の位置の解析を困難としたりする。   The purpose of encryption in the server 1701 is obfuscation of data on the client or on the data acquisition path by the client. For example, what kind of data structure is used, and the client identification on the structure This makes it difficult to analyze the position of the information storage area.

本実施形態では、データは、汎用データであってもよいが、その全体または一部がプログラムであることとが好ましい。この場合、暗号化されたデータの全体または一部である暗号化されたプログラムは、クライアントで自己復号化されるようになっているのが好ましい。   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 download system 1800 includes a server 1801 and a client 1802. The server 1801 and the client 1802 can communicate with each other via a communication network 1803 or the like.

サーバ1801は、送信データ蓄積部1804と、送信部1805と、データ入力部1809と、格納領域確保部1810と、判断モジュール追加部1811と、暗号化部1812と、を有する。暗号化部1812は、復号化モジュール追加手段1813を有する。なお、データの全体または一部がプログラムであれば、送信データ蓄積部1804は、送信プログラム蓄積手段を更に有しているものとする。   The server 1801 includes a transmission data storage unit 1804, a transmission unit 1805, a data input unit 1809, a storage area securing unit 1810, a determination module addition unit 1811, and an encryption unit 1812. The encryption unit 1812 has a decryption module addition unit 1813. If all or part of the data is a program, the transmission data storage unit 1804 further includes transmission program storage means.

クライアント1802の構成は、図17のクライアント1702のそれと同じである。   The configuration of the client 1802 is the same as that of the client 1702 in FIG.

「復号化モジュール追加手段」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 encryption unit 1812. Here, “decryption” means decryption processing performed prior to execution processing at the client.

図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 server 1801 is a program. As shown in FIG. 19A, the header area,. a text region; It is assumed that a program configured as a data area is input. In this case, the storage area securing unit 1810 and the determination module adding unit 1811 secure the client identification information storage area as shown in FIG. Added to the text area. Next, as shown in FIG. text region,. The data area is encrypted and encrypted. text field, encryption. It becomes a data area. Then, the decryption module is added by the decryption module adding means as shown in FIG. An arrow line extending from the header to the decryption module indicates that the entry point has been rewritten and that the decryption module is first executed. As a result, when the program shown in FIG. 19D is executed, the encoding module is executed first, and encryption. text, encryption. before the data is decrypted and encrypted. Data before the encryption using data in the data area. The instruction in the text area is executed. It was decrypted. data area data,. The instructions in the text area may be arranged in the heap area of the process that executes the program. The above technique is disclosed in Japanese Patent Application No. 2000-90787 filed by the applicant.

本実施形態では、判断モジュールが暗号化されるので、判断モジュールのアルゴリズムの解析が困難となり、クライアント識別情報をどのように取得し、クライアント識別情報の比較などを行なうかを他人が知ることが困難となり、より一層プログラムの不正利用を防止することができる。   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.

実施形態に1に係るダウンロードシステムの機能ブロック図Functional block diagram of a download system according to embodiment 1 生成モジュールの処理のフローチャートGeneration module processing flowchart デバイスドライバの位置を示す一例図Example diagram showing the position of the device driver ハードウェアの構成の一例図Example of hardware configuration 実施形態に1に係るダウンロードシステムの別の構成の機能ブロック図Functional block diagram of another configuration of the download system according to the embodiment 1 プログラムの構造の一例図Example of program structure 判断モジュールの処理のフローチャートFlow chart of processing of judgment module ダウンロードシステムの処理をクライアント側から説明するフローチャートFlowchart explaining processing of download system from client side 格納領域初期値の算出の一例図Example of storage area initial value calculation 格納領域初期値の算出の一例図Example of storage area initial value calculation 実施形態2における生成モジュールの構成の一例図FIG. 10 is an example of a configuration of a generation module according to the second embodiment. 実施形態3における生成モジュールの構成の一例図Example of configuration of generation module in embodiment 3 実施形態4に係るダウンロードシステムの機能ブロック図Functional block diagram of a download system according to Embodiment 4 実施形態4に係るダウンロードシステムの処理のフローチャートFlowchart of download system processing according to embodiment 4 実施形態5に係るダウンロードシステムの機能ブロック図Functional block diagram of a download system according to Embodiment 5 判断モジュールを追加の一例図Example of adding a judgment module 実施形態6に係るダウンロードシステムの機能ブロック図Functional block diagram of a download system according to Embodiment 6 実施形態6に係るダウンロードシステムの別の機能ブロック図Another functional block diagram of the download system according to the sixth embodiment 入力されたプログラムに対する処理の一例図Example of processing for input program インストールなどのプログラムの構造の一例図Example of program structure such as installation インストールなどのプログラムのチェックモジュールの処理のフローチャートFlow chart of processing of program check module such as installation ダウンロードなどされたプログラムの構造の一例図An example of the structure of a downloaded program ダウンロードなどされたプログラムの処理のフローチャートFlow chart of processing of downloaded program

符号の説明Explanation of symbols

100 ダウンロードシステム
101 サーバ
102 クライアント
103 通信網
104 送信データ蓄積部
105 送信部
106 受信部
107 蓄積部
108 生成モジュール保持部
100 download system 101 server 102 client 103 communication network 104 transmission data storage unit 105 transmission unit 106 reception unit 107 storage unit 108 generation module holding unit

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. .
前記サーバは、確保されたクライアント識別情報格納領域以外のデータの部分を暗号化する暗号化部を有する請求項5または6に記載のダウンロードシステム。   The download system according to claim 5 or 6, wherein the server includes an encryption unit that encrypts a data portion other than the secured client identification information storage area. 前記暗号化部は、
データ入力部に、プログラムを全体または一部とするデータが入力された場合に、暗号化された部分を復号化して実行する復号化モジュールを追加する復号化モジュール追加手段を有する請求項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.
JP2006174045A 2006-06-23 2006-06-23 Download system Expired - Fee Related JP4930982B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (12)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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