JP2007334821A - Application protection device, application protection method, and application protection program - Google Patents

Application protection device, application protection method, and application protection program Download PDF

Info

Publication number
JP2007334821A
JP2007334821A JP2006169039A JP2006169039A JP2007334821A JP 2007334821 A JP2007334821 A JP 2007334821A JP 2006169039 A JP2006169039 A JP 2006169039A JP 2006169039 A JP2006169039 A JP 2006169039A JP 2007334821 A JP2007334821 A JP 2007334821A
Authority
JP
Japan
Prior art keywords
application
file
content
step
installer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006169039A
Other languages
Japanese (ja)
Inventor
Kenji Nishimoto
憲司 西本
Original Assignee
Trinity Security Systems Inc
株式会社トリニティーセキュリティーシステムズ
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 Trinity Security Systems Inc, 株式会社トリニティーセキュリティーシステムズ filed Critical Trinity Security Systems Inc
Priority to JP2006169039A priority Critical patent/JP2007334821A/en
Publication of JP2007334821A publication Critical patent/JP2007334821A/en
Application status is Pending legal-status Critical

Links

Images

Abstract

To properly protect an installer-type application.
A user terminal 120 to which content is distributed includes a detection unit 201 that detects a start of a writing process of data to be installed into a recording unit 205 during an application installation process by an installer 210, and a detection unit 201 When the start of the writing process is detected by the file acquisition unit 202, the file acquisition unit 202 that acquires the data before writing, the encryption unit 203 that encrypts the data acquired by the file acquisition unit 202, and the encryption unit 203 And a writing unit 204 that writes the encrypted data to the recording unit 205.
[Selection] Figure 2

Description

  The present invention relates to an application protection apparatus, an application protection method, and an application protection program for protecting an installer-type application.

  2. Description of the Related Art Conventionally, various contents such as software, applications (various execution programs), still image images, moving images, and music have been distributed via a network or a recording medium. In addition, a content protection system has been devised to prevent unauthorized use of distributed content.

  In such a content protection system, for example, the content server of the content distributor encrypts the content using an encryption key and distributes the encrypted data to the client. The content server also distributes the encryption key used for content encryption to the client. Furthermore, a content protection program is distributed to the client in advance. The client decrypts the downloaded encrypted data using the encryption key to obtain decrypted data. The decrypted data is displayed, for example, in the display area of the browser. When browsing (displaying) content, a storage unit (hard disk drive: HDD) is used.

  The content protection program distributed to the client decrypts the downloaded content (encrypted data) using an encryption key, and encrypts the decrypted content using a key and stores it in the HDD Processing (including decryption processing at the time of reading from the HDD) and access control for preventing unauthorized access to the content (encrypted data) stored in the HDD are executed (for example, see Patent Document 1 below).

Japanese Patent Laying-Open No. 2005-010957

  However, according to the prior art described above, the content server encrypts the content data itself to be distributed to the client. Here, when the distributed content is an application installed by the installer (installer-type application), the distributed content data (installer) is expanded and copied on the user terminal. For this reason, there is a problem that it is necessary to encrypt each installed module.

  In particular, when the content distributor is different from the content creator, for example, the content distributor may distribute the content on consignment from the content creator. In such a case, the content distributor cannot encrypt the content data (installer format application data) created by the content creator as it is, and it is necessary to encrypt each module to be installed and create the installer again. There is a problem that there is.

  An object of the present invention is to provide an application protection apparatus, an application protection method, and an application protection program for appropriately protecting an installer-type application in order to solve the above-described problems caused by the prior art.

  In order to solve the above-described problems and achieve the object, the application protection apparatus according to the invention of claim 1 detects the start of the writing process to the recording unit of the file to be installed during the application installation process. And when the start of the writing process is detected by the detection means, a file acquisition means for acquiring the file before writing, an encryption means for encrypting the file acquired by the file acquisition means, Writing means for writing the encrypted file encrypted by the encryption means into the recording unit.

  According to the first aspect of the present invention, the file to be installed is acquired before writing, encrypted, and written to the recording unit. Thereby, it is possible to protect the application file recorded on the terminal where the application is installed, and to prevent unauthorized use.

  According to a second aspect of the present invention, in the application protection device of the first aspect, the file acquisition unit acquires the file by a module that detects an API (Application Program Interface) used in the installation process. It is characterized by doing.

  According to the second aspect of the present invention, the file to be installed can be encrypted during the installation process.

  According to a third aspect of the present invention, in the application protection device according to the first or second aspect, the file acquisition unit acquires the file by a general-purpose module included in an operation system of a terminal in which the application is installed. It is characterized by doing.

  According to the third aspect of the present invention, since the file is obtained using the existing module of the operation system of the terminal where the application is installed, it is not necessary to prepare a special module for obtaining the file.

  An application protection apparatus according to a fourth aspect of the present invention is the application protection apparatus according to any one of the first to third aspects, wherein the encryption means encrypts the file based on the type of the file. It is characterized by.

  According to the invention of claim 4, encryption can be performed according to the type of file. For example, only a predetermined type of file can be encrypted, or a file type that is not encrypted can be set.

  An application protection apparatus according to a fifth aspect of the present invention is the application protection apparatus according to any one of the first to fourth aspects, further comprising decryption means for decrypting the encrypted file, wherein the writing means comprises: Data including an activation command for activating the decryption means when execution of the application is instructed in the encrypted file is embedded.

  According to the fifth aspect of the present invention, when executing the application, the decryption means is activated, and the encrypted file can be decrypted to execute the application.

  The application protection apparatus according to a sixth aspect of the present invention is the application protection apparatus according to the fifth aspect, wherein the decryption means decrypts the encrypted file when the application is executed, and the decrypted encrypted file. Is deleted at the end of the application.

  According to the sixth aspect of the present invention, the encrypted file decrypted when the application is executed can be erased to prevent unauthorized use of the application data.

  According to a seventh aspect of the present invention, an application protection apparatus according to any one of the first to sixth aspects further comprises installer acquisition means for acquiring an installer of the application, wherein the detection means is the installer. It is detected that the writing process is performed during the installation process.

  According to the seventh aspect of the present invention, unauthorized use of an application installed by the installer can be prevented.

  According to an eighth aspect of the present invention, there is provided an application protection method according to a detection step of detecting that a file writing process is performed during an application installation process, and when the writing process is detected in the detection step, A file acquisition step of acquiring a file, an encryption step of encrypting the file acquired in the file acquisition step, and writing the encrypted file encrypted in the encryption step to a write destination by the writing process And a writing process.

  According to the eighth aspect of the present invention, the file to be installed is obtained before writing, encrypted, and written to the recording unit. Thereby, it is possible to protect the application file recorded on the terminal where the application is installed, and to prevent unauthorized use.

  According to a ninth aspect of the present invention, an application protection program causes a computer to execute the application protection method according to the eighth aspect.

  According to the ninth aspect of the present invention, the data to be installed is obtained before writing, encrypted, and written to the recording unit. Thereby, the application data recorded in the terminal where the application is installed can be protected and unauthorized use can be prevented.

  According to the application protection device, the application protection method, and the application protection program according to the present invention, there is an effect that an installer-type application can be appropriately protected.

  Exemplary embodiments of an application protection device, an application protection method, and an application protection program according to the present invention will be explained below in detail with reference to the accompanying drawings.

(Embodiment)
(System configuration of content protection system 100)
First, the system configuration of the content protection system 100 according to the embodiment will be described. FIG. 1 is an explanatory diagram showing a system configuration of a content protection system. The content protection system 100 includes a content distributor 110, user terminals 120 (120a to 120c), a content creator 130, and a network 140.

  The content distributor 110 distributes content created by a content creator 130 described later to the user terminal 120 via the network 140. The content distributor 110 includes an encryption processing terminal 110a, a content server 110b, and a license management server 110c.

  The encryption processing terminal 110a encrypts the content to be distributed by the encryption processing program. For the content encryption, an encryption key (license key) generated by the license management server 110c is used.

  The content server 110b stores the content data encrypted by the encryption processing terminal 110a. The license management server 110c generates an encryption key (license key) based on the ID of the content to be encrypted and the browsing period, and passes it to the encryption processing terminal 110a. Further, the license management server 110c transmits a license key based on a license key acquisition request from a decryption application installed in the user terminal 120 described later. If the usage authority setting is to be changed after the content is encrypted, it can be changed with the license management tool of the encryption processing terminal 110a.

  The user terminal 120 (120a to 120c) is a content purchaser terminal, and may be a mobile phone terminal, a PDA, or the like in addition to a PC (personal computer). The user terminal 120 accesses the content server 110b via the network 140, purchases desired content, and downloads content data. In addition, the user terminal 120 has acquired in advance a decryption application for decrypting the encrypted content data. The decryption application is acquired, for example, at the time of the first content purchase.

  In the present embodiment, content is distributed to the user terminal 120 via the network 140. However, the present invention is not limited to this. For example, the content is distributed to the user terminal 120 by distributing a recording medium on which the content is recorded. May be distributed.

  The content creator 130 creates content data. Examples of content created by the content creator 130 include software, applications (various execution programs), still image images, moving images, and music. The content created by the content creator 130 includes an installer application.

  Here, the installer is software for introducing an application into a computer. The installer format application data includes various setting files in addition to the application data. When the installer application is executed, files such as programs and data used by the application are copied to the hard disk of the user terminal 120 and necessary settings are made.

  As described above, the content distributed from the content distributor 110 is encrypted by the encryption processing program. When the content is an application in the installer format, the user terminal 120 decrypts the encrypted content. To install. At this time, files such as programs and data used in the application are copied to the hard disk of the user terminal 120.

  The content protection system 100 automatically encrypts application data when installing an application in order to prevent unauthorized use of data copied to a hard disk or the like of the user terminal 120 or application setting information. As a result, it is possible to prevent unauthorized use of the installer application while reducing the burden on the user terminal 120 that uses the content.

(Functional configuration of user terminal 120)
Next, a functional configuration of the user terminal 120 that uses content distributed by the content distributor 110 will be described. FIG. 2 is a block diagram illustrating a functional configuration of the user terminal. The user terminal 120 includes a detection unit 201, a file acquisition unit 202, an encryption unit 203, a writing unit 204, a recording unit 205, an installer acquisition unit 206, and a decryption unit 207.

  The detection unit 201 detects the start of the writing process of the file to be installed in the recording unit 205 during the application installation process by the installer 210. Specifically, it is detected whether a file I / O has occurred during the installation process.

  When the detection unit 201 detects the start of the writing process, the file acquisition unit 202 acquires a file before writing. The file acquisition unit 202 acquires a file by, for example, a module that hooks an API used in the installation process. This module is, for example, a general-purpose module included in an operation system of a terminal where an application is installed.

  The encryption unit 203 encrypts the file acquired by the file acquisition unit 202. For example, the encryption unit 203 encrypts the file based on the file type. For example, whether to encrypt at the time of installation can be set according to the file type.

  The writing unit 204 writes the encrypted file encrypted by the encryption unit 203 into the recording unit 205. The writing unit 204 embeds data including an activation command that activates a later-described decryption unit 207 when an execution of an application is instructed in the encrypted file.

  The recording unit 205 records an application file to be installed. The recording unit 205 is, for example, a hard disk of a terminal where an application is installed.

  The installer acquisition unit 206 acquires an application installer. For example, the installer acquisition unit 206 acquires the encrypted installer 210 from the content distributor 110 via the network 140. Further, the installer acquisition unit 206 may acquire the installer, for example, by reading a recording medium on which content is recorded.

  The decryption unit 207 decrypts the encrypted file encrypted by the encryption unit 203. The decryption unit 207 decrypts the encrypted file when the application is executed, and deletes the decrypted encrypted file when the application ends.

(Hardware configuration of user terminal 120)
Next, the hardware configuration of the user terminal 120 will be described. FIG. 3 is a block diagram illustrating a hardware configuration of the user terminal. In FIG. 3, the user terminal 120 includes a CPU 301, a ROM 302, a RAM 303, a magnetic disk drive 304, a magnetic disk 305, an optical disk drive 306, an optical disk 307, an audio I / F (interface) 308, and a microphone 309. A speaker 310, an input device 311, a video I / F 312, a display 313, and a communication I / F (interface) 314. Each component 301 to 314 is connected by a bus 320.

  First, the CPU 301 governs overall control of the user terminal 120. The ROM 302 records programs such as a boot program, a communication program, and a data analysis program. The RAM 303 is used as a work area for the CPU 301.

  The magnetic disk drive 304 controls the reading / writing of the data with respect to the magnetic disk 305 according to control of CPU301. The magnetic disk 305 records data written under the control of the magnetic disk drive 304. As the magnetic disk 305, for example, an HD (hard disk) or an FD (flexible disk) can be used.

  The optical disk drive 306 controls the reading / writing of the data with respect to the optical disk 307 according to control of CPU301. The optical disk 307 is a detachable recording medium from which data is read according to the control of the optical disk drive 306. As the optical disc 307, a writable recording medium can be used. In addition to the optical disk 307, the removable recording medium may be an MO, a memory card, or the like.

  The audio I / F 308 is connected to a microphone 309 for audio input and a speaker 310 for audio output. The sound received by the microphone 309 is A / D converted in the sound I / F 308. In addition, sound is output from the speaker 310. Examples of the input device 311 include a remote controller including a plurality of keys for inputting characters, numerical values, various instructions, a keyboard, a mouse, a touch panel, and the like.

  The video I / F 312 is connected to the display 313. Specifically, the video I / F 312 includes, for example, a graphic controller that controls the entire display 313, a buffer memory such as a VRAM (Video RAM) that temporarily records image information that can be displayed immediately, and a graphic controller. Based on the output image data, the display 313 is configured by a control IC or the like.

  The display 313 displays icons, cursors, menus, windows, or various data such as characters and images. As the display 313, for example, a CRT, a TFT liquid crystal display, a plasma display, or the like can be adopted.

  The communication I / F 314 is connected to the network 140 and functions as an interface with the CPU 301. The user terminal 120 receives content distribution from the content distributor 110 via the communication I / F 314.

(Content distribution processing by content protection system 100)
Next, an outline of content distribution processing by the content protection system 100 will be described. In the content protection system 100, the content created by the content creator 130 is distributed to the user terminal 120 by the content distributor 110. Hereinafter, an outline of content distribution processing by the content protection system 100 will be described.

  FIG. 4 is a flowchart showing a procedure of content distribution processing by the content distributor. In the flowchart of FIG. 4, the content distributor 110 first receives content data from the content creator 130 (step S401).

  Next, the content distributor 110 determines the license setting and the ID (content ID, eg, content folder name) of the content to be encrypted (step S402). Here, the license setting includes information such as a content usage period and whether or not a time server (NTP) is used. The content use period may be defined by the elapsed date and time after the user terminal 120 purchases (downloads) the content, or may be defined by the date. Also, the usage period may be unlimited. Furthermore, the date and time determination of the usage period may be performed based on the time of the time server instead of the clock provided in the user terminal 120. The content distributor 110 records these license settings in the license setting file.

  Subsequently, the content distributor 110 encrypts the content data using the license key generated by the license management server 110c based on the license setting file and the content ID (step S403), and the encrypted content is stored in the content server 110b. Upload (step S404). Specifically, the encrypted content data is uploaded to the content server 110b by compressing it with compression software.

  The content distributor 110 waits until the content uploaded to the content server 110b is purchased (step S405: No loop). When the content is purchased (step S405: Yes), purchase processing is performed with the user terminal 120 that has purchased the content (step S406). Here, the purchase processing is, for example, content usage fee payment processing or user registration processing using a credit card or the like.

  Next, the content distributor 110 determines whether or not the user terminal 120 that has purchased the content is the first time to purchase content from the content distributor 110 (first time purchase) (step S407). In the case of the first purchase (step S407: Yes), a content data decryption application is transmitted (step S408). The decryption application incorporates a license key acquisition module that acquires a license key from the license management server 110c. Note that the decryption application and the license key acquisition module may be transmitted as separate applications.

  If the content purchased by the user terminal 120 is an installer application, an installation monitoring program is transmitted together with the decryption application. The installation monitoring program monitors application installation processing on the user terminal 120, encrypts data in the application, and records the encrypted data in the user terminal 120. On the other hand, if it is not the first purchase (step S407: No), the process proceeds to step S409.

  Then, the content distributor 110 transmits the encrypted content data to the user terminal 120 (step S409), and ends the processing according to this flowchart.

  Next, content acquisition processing by the user terminal 120 will be described. FIG. 5 is a flowchart showing a procedure of content acquisition processing by the user terminal. In the flowchart of FIG. 5, the user terminal 120 determines whether or not to purchase content from the content distributor 110 (step S501). When purchasing content (step S501: Yes), the user terminal 120 is connected to the content server 110b. The purchase process is performed (step S502).

  When the user terminal 120 purchases content for the first time from the content distributor 110 (first purchase) (step S503: Yes), the decryption application transmitted from the content distributor 110 is received and installed (step S504). Here, the decryption application incorporates an installation monitoring program for monitoring the installation processing of the installer application. The decryption application and the installation monitoring program may be received as separate programs (applications). On the other hand, if it is not the first purchase (step S503: No), the process proceeds to step S505.

  Next, the user terminal 120 receives the encrypted content data from the content distributor 110 (step S505). If the content purchased by the user terminal 120 is an application in the installer format, the installation monitoring program is executed to install the purchased application. At this time, the application data copied to the user terminal 120 is automatically encrypted.

  When using the received content (step S506: Yes), the license key acquisition module of the decryption application installed in step S504 acquires the license key from the license management server 110c (step S507). The use of content is, for example, browsing of an image or video if the content is an image or video, or executing an application if the content is an application. When the license key is acquired, it is encrypted with a terminal-specific identifier and registered in the user terminal 120. In order to use the license key, a terminal-specific identifier of the user terminal 120 is required, and therefore the content cannot be decrypted by other terminals.

  Then, after decrypting the content data with the license key (step S508), the content is used on the decryption application (step S509), and the processing according to this flowchart is terminated.

  At this time, the decryption application decrypts the encrypted content data using the license key. If the usage period set in the license key has elapsed, an error message is displayed and the content data Stop decryption. In addition, while using the content, the content is protected by a protection program such as capture prevention. Then, when the use of the content is terminated (the decryption application is terminated), the decrypted content data is deleted and does not remain on the recording area of the user terminal 120.

  Also, when the content is copied or moved from the terminal of the user terminal 120 that has downloaded the content to another terminal, the decryption application displays an error message and does not decrypt the content. This is because when the license key is registered in the user terminal 120, the license key is encrypted and registered with an identifier unique to the terminal. In order to use the license key, a terminal-specific identifier of the user terminal 120 is required, and therefore the content cannot be decrypted by other terminals.

  Further, when the date and time of the terminal of the user terminal 120 are back dated in the past from the date and time when the previous content was used, an error message is displayed and the content is not decrypted.

  Through the processing as described above, the content protection system 100 prevents unauthorized use of content by a user other than the user terminal 120 that has purchased the content. Here, when the content to be distributed is an installer application, it is necessary to encrypt the application data once decrypted and record it on the hard disk of the user terminal 120 when the application is installed.

  Therefore, the content protection system 100 dynamically encrypts installed application data by a module that detects (hooks) an API (Application Program Interface) when installing an application, thereby protecting the installer-type application. I am going to do that. Here, the API is a set of instructions and functions that can be used when developing software for a predetermined platform (operation system or middleware). In addition, it is a set of rules that define the program procedures for using them. Examples of the module that hooks the API include DLL (Dynamic Link Library) and an exe file. Hereinafter, in the present embodiment, a case where an API hook DLL is used as a module for hooking an API will be described.

(Installer application distribution process)
Next, details of processing of the content protection system 100 when distributing an installer application (hereinafter referred to as an installer) will be described. In the following, content encryption processing by the content distributor 110 (see step S403 in FIG. 4), application installation processing using the installer by the user terminal 120, processing when using the application by the user terminal 120 (step in FIG. 5) S508 and S509 will be described.

(Content data encryption)
FIG. 6 is a flowchart showing a procedure of content encryption processing by the content distributor. Hereinafter, for convenience of explanation, it is assumed that the content is either an installer application or a normal application. In the flowchart of FIG. 6, the content distributor 110 activates the encryption processing program of the encryption processing terminal 110a and reads a content folder (content data) recorded on a hard disk or the like (step S601). Here, a priority encryption mode is set in the encryption processing program. The encryption mode includes a mode for encrypting a normal application (for example, an application not in the installer format) (hereinafter referred to as an application mode), and a mode for encrypting an installer format application (hereinafter referred to as an installer mode). There are two types.

  More specifically, the application mode preferentially processes an execution file (exe file) as an application. When the priority encryption mode is set to the application mode, if an exe file exists in the content folder, the content is recognized as an application, and an application activation program is embedded in the encrypted exe file.

  In the installer mode, the exe file is preferentially processed as an installer. When the priority encryption mode is set to the installer mode, if an exe file exists in the content folder, the content is recognized as an installer, and an installer activation program is embedded in the encrypted exe file.

  In addition, when there is an encryption setting file in the content folder, the encryption processing terminal 110a reads the encryption setting file (step S602). Here, the encryption setting file sets the encryption mode for each content. Specifically, it is defined whether the encryption mode is the application mode or the installer mode. In addition to this, a definition of a file (non-encrypted file) that is not encrypted, an uninstaller program name, an application activation program name, and the like are defined in the installation monitoring process described later.

  Next, the encryption processing terminal 110a acquires a license key from the license management server 110c (step S603). Then, the file is searched from the content folder read in step S601 (step S604), and encrypted with the license key acquired in step S603 (step S605).

  Subsequently, the encryption processing terminal 110a determines whether or not the file encrypted in step S605 is an exe file (step S606). If it is an exe file (step S606: Yes), it is determined whether or not the encryption mode set in the encryption setting file is the installer mode (step S607). If the installer mode is selected (step S607: Yes), the installer activation program is embedded in the encrypted file (step S608). Also, the encryption setting file is encrypted (step S609).

  Here, the installer activation program is a program that activates an installer monitoring program installed in the user terminal 120. Although details will be described later, the installer monitoring program monitors application installation processing. Specifically, the installer monitoring program incorporates an installer API hook DLL into the installer and monitors the process until the installer is finished.

  On the other hand, in step S607, if the encryption mode set in the encryption setting file is not the installer mode (step S607: No), that is, if the encryption mode is the application mode, the application is activated in the encrypted file. The program is embedded (step S610), and the process proceeds to step S609.

  Here, the application activation program is a program that activates the decryption application installed in the user terminal 120. The application activation program is activated when an execution of the encrypted application is instructed (for example, when an icon indicating the encrypted application is double-clicked), and activates the decryption application. Although details will be described later, the decryption application decrypts the encrypted application data and enables the application to be executed.

  The encryption processing terminal 110a determines whether or not there is an unencrypted file in the content folder (step S611). If there is an unencrypted file (step S611: Yes), the process returns to step S604. The subsequent processing is continued. On the other hand, if there is no unencrypted file (step S611: No), it is determined whether there is an unencrypted folder (step S612).

  If there is an unencrypted folder (step S612: Yes), the process returns to step S601 and the subsequent processing is continued. On the other hand, if there is no unencrypted folder (step S612: No), the result of the encryption process is displayed (step S613), and the process of this flowchart is terminated.

(Application installation process)
Next, application installation processing using an installer by the user terminal 120 will be described. FIG. 7 is a flowchart showing a procedure of application installation processing by the user terminal. The user terminal 120 has received the encrypted installer from the content distributor 110 in advance (see step S505 in FIG. 5).

  In the flowchart of FIG. 7, the user terminal 120 stands by until there is an instruction to install an installer-type application that is purchased content (step S <b> 701: No loop). Whether or not there is an installation instruction is performed by detecting that an icon indicating an installer is double-clicked, for example.

  If there is an installation instruction (step S701: Yes), the installer activation program embedded in step S608 of FIG. 6 is activated (step 702), and the installer monitoring program is activated (step S703). At this time, the installer activation program passes its file path as an argument to the installer monitoring program. The installer activation program is terminated after the installer monitoring program is activated.

  The installer monitoring program refers to the argument passed from the installer activation program to determine whether or not there is a license (step S704), and if there is a license (step S704: Yes), decrypts the encrypted installer. (Step S705). On the other hand, when there is no license (step S704: No), the process proceeds to step S713.

  When the installer is decrypted in step S705, the installer monitoring program starts the installer in the suspend mode (step S706) and monitors the installation process by the installer (step S707). Monitoring of the installation process continues until the installer process ends.

  Next, the installer activation program maps the API hook DLL in the process of the activated installer (step S708). Here, the API hook DLL hooks the API of the file I / O by the installer and acquires information on the file to be installed. Further, based on the information of the encryption setting file, file encryption, application start program, and installer start program are embedded. Also, restrict access to files being installed.

  FIG. 8 is a chart showing an API hooked by the API hook DLL. The chart of FIG. 8 shows an API name 801 to be hooked, an original processing content 802 of each API, and an actual processing content 803 of each API. In addition, the API hook DLL holds, as list information, file path information obtained by hooking the file I / O of the installer.

  The installer activation program releases the suspended state of the installer after incorporating the API hook DLL into the installer process (step S709). Specifically, a release signal for releasing the suspended state of the installer is sent to the installer.

  When the installer activation program receives an update instruction signal instructing update of the file list from the API hook DLL as described later, the installer activation program updates the file list (step S710). Then, a process completion signal indicating that the process of the API hook DLL has been completed normally is received (step S711), and when the installer process ends (step S712: Yes), the installer activation program performs a program end process. (Step S713), the process according to this flowchart is terminated.

  Note that if the installer process ends without receiving a process completion signal from the API hook DLL, the installer newly deletes the newly created file, assuming that the installer has ended abnormally. If the installer has additionally written to an existing file, the file is restored to the original state by the backup data.

  Next, the installer process will be described. When the installer activated in the suspend mode by the process of step S706 (step S721) receives a release signal for canceling the suspend mode by the installer monitoring program (step S722), the installation process of the application is started (step S723). When file I / O occurs during the installation process, the installer sends a file I / O generation signal to the API hook DLL (step S724).

  When the application installation process ends (step S725), the installer performs a program end process (step S726), and ends the process according to this flowchart. In this termination process, the installer sends a DLL release signal to the API hook DLL during the program termination process.

  Next, processing of the API hook DLL will be described. When the file I / O generation signal is sent from the installer, the API hook DLL incorporated in the installer process in step S708 hooks the file I / O (step S741). Then, the API hook DLL encrypts the installed file (step S742).

  Encryption of the file to be installed is performed at the timing when the file is written from the installer. If the file size of the write destination is 0, a key is set in the encryption management module and data is written. On the other hand, if the file size of the write destination is not 0, after encrypting the existing file, a key is set in the encryption management module and data is written. Also, existing files are backed up in the work area in case of abnormal termination. If the writing destination file has already been encrypted, the writing process is performed as it is.

  In addition, files other than the file created in the same directory as the installed exe file or a directory under the same directory are set as the target of non-encryption setting. Encryption processing is not performed for files registered as non-encryption setting targets in the encryption setting file. Also, encryption processing is not performed on files created in locations other than the device itself, such as registry information files, shortcut files, and network drives.

  Also, files created during installation are made inaccessible by the encryption management module from other than the installer and installer monitoring program processes. When the file I / O of the installer is hooked by the API hook DLL and writing to the disk of the user terminal 120 occurs, access restriction is applied to this file. This prevents copying from other applications during installation. Access restriction is not performed on registry information files or files created in locations other than the local device.

  The API hook DLL sends an update instruction signal for instructing the installer monitoring program to update the file list (step S743). When the DLL release signal sent from the installer is received (step S744), the application activation program is embedded in the installed exe file (step S745). The application activation program is a program that activates a decryption application necessary for executing an encrypted application.

  Then, a processing completion signal indicating that the processing of the API hook DLL is completed is sent to the installer monitoring program (step S746), and the processing according to this flowchart ends.

(Application usage processing)
Next, processing when using the application by the user terminal 120 will be described. FIG. 9 is a flowchart illustrating a processing procedure when the application is used by the user terminal. In the flowchart of FIG. 9, the user terminal 120 stands by until there is an instruction to execute the installed application (step S901: No loop). An application execution instruction is given by, for example, double-clicking an icon indicating the application.

  When there is an application execution instruction (step S901: Yes), the application activation program is activated (step S902), and the decryption application is activated by the application activation program (step S903). After activating the decryption application, the application activation program ends the process.

  The decryption application acquires a license key from the license management server 110c (step S904). If the user terminal 120 is authorized to use the content (step S905: Yes), the encrypted application data is decrypted (step S906). On the other hand, when there is no authority to use the content (step S905: No), the process proceeds to step S913.

  Here, decryption of application data will be described. The decryption application creates a protection area in the hard disk of the user terminal 120 and decrypts the application data in the protection area. When the execution of the application is completed, the decryption application deletes the decrypted application data for each protection area so that the decrypted data does not remain in the terminal.

  When the application data is decrypted, the decryption application activates the capture protection function (step S907). The capture protection function restricts the operation system standard print screen function and standard screen capture function to prevent the screen from being captured. For example, even if the Print Screen key is pressed during content display and then pasted into a paint application, the screen is not acquired. This function is realized by disabling the Print Screen key.

  Also, for example, the activation of software having a capture function is monitored, and when the capture software registered in the capture software information file detects the activation, the capture software is stopped. The capture software information file describes information for recognizing the capture software. The latest version of the capture software information file is always distributed from the content distributor 110 to protect the latest capture software.

  The decryption application activates the application monitoring process (step S908), and activates the application decrypted in step S906 (step S909). Until the application is terminated (step S911: No), capture protection and application monitoring are continued (step S910). When the application is terminated (step S911: Yes), the decrypted application data is deleted (step S912). Then, decryption application termination processing is performed (step S913), and processing according to this flowchart is terminated.

  As described above, according to the application protection device, the application protection method, and the application protection program, data to be installed is acquired before writing, encrypted, and written to a recording unit (such as a hard disk). Thereby, the application data recorded in the user terminal 120 where the application is installed can be protected and unauthorized use can be prevented.

  In addition, since data is acquired using an existing module (API hook DLL) included in the operation system of the terminal in which the application is installed, it is not necessary to prepare a special module for acquiring data. Further, it is possible to encrypt the data to be installed during the installation process.

  Furthermore, an application activation program for activating the decryption application is embedded in the data simultaneously with the encryption. Thereby, when executing the application, the decryption application is activated, and the application can be executed by decrypting the encrypted data. In addition, the encrypted data decrypted when the application is executed can be erased to prevent unauthorized use of the application data.

  The application protection method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. The program may be a transmission medium that can be distributed via a network such as the Internet.

  As described above, the application protection apparatus, the application protection method, and the application protection program according to the present invention are useful for distributing an installer-type application, and are particularly suitable for a paid content distribution system.

It is explanatory drawing which shows the system configuration | structure of a content protection system. It is a block diagram which shows the functional structure of a user terminal. It is a block diagram which shows the hardware constitutions of a user terminal. It is a flowchart which shows the procedure of the content delivery process by a content distributor. It is a flowchart which shows the procedure of the content acquisition process by a user terminal. It is a flowchart which shows the procedure of the encryption process of the content by a content distributor. It is a flowchart which shows the procedure of the installation process of the application by a user terminal. It is a graph which shows API hooked by API hook DLL. It is a flowchart which shows the procedure of the process at the time of utilization of the application by a user terminal.

Explanation of symbols

DESCRIPTION OF SYMBOLS 100 Content protection system 110 Content distributor 110a Encryption processing terminal 110b Content server 110c License management server 120a-120c User terminal 130 Content creator 140 Network 201 Detection part 202 File acquisition part 203 Encryption part 204 Writing part 205 Recording part 206 Installer acquisition unit 207 Decryption unit 210 Installer


Claims (9)

  1. Detecting means for detecting the start of the writing process to the recording unit of the file to be installed during the installation process of the application;
    A file acquisition unit that acquires the file before writing when the detection unit detects the start of a writing process;
    Encryption means for encrypting the file acquired by the file acquisition means;
    Writing means for writing the encrypted file encrypted by the encryption means to the recording unit;
    An application protection device comprising:
  2. The file acquisition means
    The application protection apparatus according to claim 1, wherein the file is acquired by a module that detects an API (Application Program Interface) used in the installation process.
  3. The file acquisition means
    The application protection apparatus according to claim 1, wherein the file is acquired by a general-purpose module included in an operation system of a terminal in which the application is installed.
  4. The encryption means includes
    The application protection apparatus according to claim 1, wherein the file is encrypted based on the type of the file.
  5. Decryption means for decrypting the encrypted file,
    The writing means includes
    5. The application protection apparatus according to claim 1, wherein data including a start command for starting the decryption unit when execution of the application is instructed in the encrypted file is embedded. .
  6. The decoding means includes
    The application protection apparatus according to claim 5, wherein the encrypted file is decrypted when the application is executed, and the decrypted encrypted file is deleted when the application is terminated.
  7. An installer acquisition means for acquiring an installer of the application;
    The detection means includes
    The application protection apparatus according to claim 1, wherein the writing process is detected during the installation process by the installer.
  8. A detection process for detecting that a file writing process is performed during the application installation process;
    A file acquisition step of acquiring the file when a writing process is detected in the detection step;
    An encryption step of encrypting the file acquired in the file acquisition step;
    A writing step of writing the encrypted file encrypted in the encryption step into a writing destination by the writing process;
    An application protection method comprising:
  9. An application protection program for causing a computer to execute the application protection method according to claim 8.

JP2006169039A 2006-06-19 2006-06-19 Application protection device, application protection method, and application protection program Pending JP2007334821A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006169039A JP2007334821A (en) 2006-06-19 2006-06-19 Application protection device, application protection method, and application protection program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006169039A JP2007334821A (en) 2006-06-19 2006-06-19 Application protection device, application protection method, and application protection program

Publications (1)

Publication Number Publication Date
JP2007334821A true JP2007334821A (en) 2007-12-27

Family

ID=38934211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006169039A Pending JP2007334821A (en) 2006-06-19 2006-06-19 Application protection device, application protection method, and application protection program

Country Status (1)

Country Link
JP (1) JP2007334821A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016004349A (en) * 2014-06-16 2016-01-12 富士通株式会社 Software information management program, software information management device, and software information management method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04184650A (en) * 1990-11-20 1992-07-01 Kobe Nippon Denki Software Kk Program protection system
JPH09251426A (en) * 1996-01-10 1997-09-22 Hitachi Ltd File ciphering system and its control method, and cipher file reception system and its control method
JP2002024037A (en) * 2000-07-03 2002-01-25 Nec Microsystems Ltd Method for updating dynamic link library file
JP2004280678A (en) * 2003-03-18 2004-10-07 Sony Corp Data processor and data processing method
JP2004309737A (en) * 2003-04-07 2004-11-04 Easy Systems Japan Kk Decoding key protection program and decoding key protection method
JP2005173197A (en) * 2003-12-11 2005-06-30 Buffalo Inc Encryption /decryption processing system and encryption/decryption processing apparatus
JP2006092149A (en) * 2004-09-22 2006-04-06 Nec System Technologies Ltd Document file copy movement monitoring system, method and program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04184650A (en) * 1990-11-20 1992-07-01 Kobe Nippon Denki Software Kk Program protection system
JPH09251426A (en) * 1996-01-10 1997-09-22 Hitachi Ltd File ciphering system and its control method, and cipher file reception system and its control method
JP2002024037A (en) * 2000-07-03 2002-01-25 Nec Microsystems Ltd Method for updating dynamic link library file
JP2004280678A (en) * 2003-03-18 2004-10-07 Sony Corp Data processor and data processing method
JP2004309737A (en) * 2003-04-07 2004-11-04 Easy Systems Japan Kk Decoding key protection program and decoding key protection method
JP2005173197A (en) * 2003-12-11 2005-06-30 Buffalo Inc Encryption /decryption processing system and encryption/decryption processing apparatus
JP2006092149A (en) * 2004-09-22 2006-04-06 Nec System Technologies Ltd Document file copy movement monitoring system, method and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016004349A (en) * 2014-06-16 2016-01-12 富士通株式会社 Software information management program, software information management device, and software information management method
US9354862B2 (en) 2014-06-16 2016-05-31 Fujitsu Limited Apparatus and method for software information management

Similar Documents

Publication Publication Date Title
US5327563A (en) Method for locking software files to a specific storage device
DE69531082T2 (en) Method and device with an encryption header, which makes it possible to test software
CA2525376C (en) System and method for authenticating software using hidden intermediate keys
US7395245B2 (en) Content usage management system and server used in the system
US7802112B2 (en) Information processing apparatus with security module
US7757101B2 (en) Data processing apparatus, data processing system, and data processing method therefor
CN101427222B (en) Data processing device, method, program, integrated circuit, and program generating device
US20060277598A1 (en) Method of synchronizing data between contents providers and a portable device via network and a system thereof
US20070288383A1 (en) Method and apparatus for issuing rights object required to use digital content
US6920567B1 (en) System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
US20020019814A1 (en) Specifying rights in a digital rights license according to events
EP2273341A2 (en) Content management method and content management apparatus
US6378071B1 (en) File access system for efficiently accessing a file having encrypted data within a storage device
US20010004736A1 (en) Method for facilitating legitimate use of digital content
KR100962927B1 (en) Information processing method, information processing apparatus and storage medium
US6405316B1 (en) Method and system for injecting new code into existing application code
EP0768601B1 (en) Device for executing enciphered program
EP1586973A2 (en) Method for encryption backup and method for decryption restoration
US7516497B2 (en) Information processing apparatus and method, and program storage medium
DE60301782T2 (en) Apparates and methods for decreasing enclosed data blocks and for locating the encrypted data blocks in the memory area used for implementation
US20060149683A1 (en) User terminal for receiving license
US20020184499A1 (en) Information processing apparatus, information processing method, and storage medium
US4817140A (en) Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
JP4250089B2 (en) Content reproduction apparatus and content reproduction control method
US5881287A (en) Method and apparatus for copy protection of images in a computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090608

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

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120228