WO2004053666A1 - ソフトウェア実行制御システム及びソフトウェアの実行制御プログラム - Google Patents

ソフトウェア実行制御システム及びソフトウェアの実行制御プログラム Download PDF

Info

Publication number
WO2004053666A1
WO2004053666A1 PCT/JP2003/015779 JP0315779W WO2004053666A1 WO 2004053666 A1 WO2004053666 A1 WO 2004053666A1 JP 0315779 W JP0315779 W JP 0315779W WO 2004053666 A1 WO2004053666 A1 WO 2004053666A1
Authority
WO
WIPO (PCT)
Prior art keywords
software
execution control
user
program
computer
Prior art date
Application number
PCT/JP2003/015779
Other languages
English (en)
French (fr)
Inventor
Kenji Sato
Original Assignee
Interlex 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 Interlex Inc. filed Critical Interlex Inc.
Priority to AU2003289301A priority Critical patent/AU2003289301A1/en
Priority to JP2004558454A priority patent/JPWO2004053666A1/ja
Priority to US10/538,764 priority patent/US7484207B2/en
Publication of WO2004053666A1 publication Critical patent/WO2004053666A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Definitions

  • the present invention provides, for example, a software execution control system and a software for controlling the execution of various application software such as game software, practical software for creating documents and graphics, etc. It relates to an execution control program.
  • application software such as game software running on a user computer such as a personal computer or a portable information terminal is, for example, ⁇ S (Operating System), language used, hardware configuration, etc.
  • ⁇ S Operating System
  • Multiple types of versions may be prepared depending on the software execution environment, or depending on the price of the software or payment.
  • a technology is known in which a product ID printed on a software package or a recording medium is input to determine whether the product is a genuine purchase product (for example, Japanese Patent Laid-Open 2 0 0 2 _ 2 5 8 9 6 3 (see paragraph 0 0 0 3).
  • request key data for using the software from the license management server installed on the intranet and if it is recognized as a valid user by user authentication, obtain key data from the license management server, It is also known that the software is activated by using this key data (for example, Japanese Patent Laid-Open No. 2 0 0-6 9 7 2 and Japanese Patent Laid-Open No. 2 0 0 2-2). 9 7 2 5 4).
  • the conventional technology that determines whether or not an authorized user is entered by entering a product ID (product key) is a defense mechanism that simply inputs an ID consisting of characters and symbols at the time of installation, and can be easily avoided. . Therefore, software with only this type of defense mechanism (copyright protection mechanism) cannot effectively exclude illegal copying and unauthorized use.
  • the technology that performs user authentication with the license management server and sends the key data to the user computer when it is successfully authenticated is simply a product ID. Compared to a technology that only inputs, the defense is improved. However, the software is already in a startable state on the user computer and is waiting for key data acquisition. Therefore, if software that is waiting for key data is illegally copied and key data is obtained by another method, the defense mechanism can be bypassed and used.
  • the user computer plays back software while receiving software from the server. Data that is no longer needed after playback has ended is immediately discarded. Therefore, in the streaming method, data is not left when the user's browsing is completed, and software cannot be illegally copied unless special software is used.
  • the software desired by the user is downloaded from the server to the user computer, stored, and executed on the user computer. It can respond to the distribution request from the user.
  • the download method since the software remains stored in the user computer, illegal copying can be performed more easily than the streaming method.
  • CD-ROM compact disc-ROM
  • DVD-ROM hard disk
  • semiconductor memory etc.
  • game programs etc. on various recording media for distribution. Even in this case, as described above, the game program or the like is illegally copied or the protection mechanism is illegally broken, and is illegally used.
  • an object of the present invention is to provide a software execution control system and a software execution control program capable of suppressing unauthorized use of software.
  • One object of the present invention is to provide a software execution control system and software execution control program capable of preventing illegal copying and unauthorized use in the case of a download method in which software is stored and executed on a user computer. There is to do.
  • One object of the present invention is to provide a software execution control system and a software execution control program capable of preventing unauthorized use during software execution.
  • One object of the present invention is to provide a software execution control system and a software execution control program capable of dynamically controlling the monitoring efficiency against unauthorized use while considering the load state and the like. .
  • the software execution control system updates the first software installed in the user computer to the second software, and includes a distribution unit and an authentication unit, which will be described later.
  • An execution control program that performs various operations is adopted.
  • the distribution unit includes the encoded second software and the second software.
  • An execution control program for controlling execution is distributed to a user computer via a communication network.
  • the authentication unit performs user authentication in response to a request from the execution control program installed on the user computer, and if it is confirmed that the user is a valid user, it is necessary to decode and start the second software.
  • the predetermined information is transmitted to the execution control program via the communication network.
  • the second software is configured so that it can be activated only with the activation information passed from the execution control program.
  • the execution control program is (1) the first software encoded based on the predetermined information received from the authentication unit.
  • the software of 2 is decoded and replaced with the first software.
  • the startup information is generated based on predetermined information to start the second software.
  • the second software When execution is completed, the second software is configured to be disabled.
  • the first software and the second software are the same type of software but different versions.
  • the first software can be called the old software, and the second software can be called the new software.
  • various application software such as games, movies, entertainment programs, educational programs, educational programs, document creation, figure creation, image editing, etc. can be employed.
  • the first software and the second software differ depending on, for example, the language used, the executable environment (corresponding OS, etc.), and whether or not there are functional restrictions.
  • Examples of the user computer include a workstation, a personal computer, a portable information terminal, and a mobile phone.
  • the first software installed on the user computer can be used freely by the user without performing the authentication process described later.
  • the first software is, for example, from a software vendor site via a communication network such as the Internet, or by package software sold over the counter. Therefore, it is installed on the user computer.
  • an execution control program for controlling the execution of the second software and the second software is transmitted from the distribution unit to the user computer.
  • the execution control program is executed on the user computer.
  • the execution control program requests user authentication from the authentication unit via the communication network.
  • a user authentication method for example, a user ID, a password, and information specific to a user computer (for example, a MAC address (Media Access Control address), etc.) are collated with pre-registered data. Can do.
  • the present invention is not limited to this, and authentication may be performed using biometric information unique to the user such as a fingerprint or a voiceprint.
  • predetermined information is transmitted from the authentication unit to the execution control program of the user computer.
  • This predetermined information includes data necessary for decoding the second software sent to the user computer in the encoded state and starting the decoded second software. Yes.
  • the second software is configured to be able to start only with the start information passed from the execution control program.
  • the execution control program acts as dedicated “launcher software” that activates the second software.
  • the execution control program performs the following processing.
  • the execution control program decodes the second software based on the predetermined information received from the authentication unit (using the decode key included in the predetermined information).
  • the decoded second software is replaced with the first software.
  • the execution control program uses the startup information (using the startup argument included in the predetermined information) based on the predetermined information received from the authentication unit (the second argument decoded with the startup argument). Generate a startup statement consisting of a software registry path) Therefore, the second software is started. As a result, the user can use the second software on the user computer.
  • the execution control program monitors the execution status of the second software even after the second software is started. When the execution end of the second software is detected, the execution control program disables the second software. Let This prevents the user from using the second software.
  • the second software may be downloaded again by making the user computer access the distribution unit again. It is not necessary to download the entire second software again, and if only the program part is downloaded again, the communication time can be shortened and the traffic can be reduced.
  • the predetermined information transmitted from the authentication unit to the user computer is preferably encrypted.
  • the execution control program disables the second software.
  • Neutralization means that the second software cannot be started or executed.
  • Various methods can be adopted as the neutralization method. For example, it can be disabled by deleting the entire decoded second software. It can also be disabled by deleting a part of the decoded second software. When only a part is deleted, the second software can be restarted by receiving the deleted part and the startup argument from the authentication unit.
  • the second software includes a program and an accompanying data group, the second software can be disabled by deleting only the program.
  • the second software can be used again simply by receiving predetermined information from the authentication unit again.
  • data group means a data group other than the program used when executing the program, and examples thereof include image data, sound data, music data, and text data.
  • the execution control program is configured to be compatible with a plurality of types of second software, and the predetermined information transmitted from the authentication unit to the execution control program includes the second software to be activated. Storage address information, startup arguments, and decode key information for decoding the second software.
  • An execution control program that controls real-time online authentication via the communication network and activation and termination of the second software is generated separately from the second software. Therefore, it is possible to deal with many types of second software simply by preparing one type of execution control program.
  • the execution control program transmits authentication information including machine information unique to the user computer and encryption key information to the authentication unit, and the authentication unit uses the user information based on at least the machine information.
  • the predetermined information is encrypted with the encryption key information and transmitted to the execution control program via the communication network.
  • the machine information can be registered multiple times.
  • Examples of machine information specific to the user computer include a MAC address.
  • configuration information of the user computer for example, the amount of installed memory, CPU specifications, product name of the sound chip or graphic accelerator, etc.
  • the authentication unit can register multiple pieces of machine information. As a result, a user who has just purchased a license for the second software can use the same second software using a plurality of user computers, such as a personal computer at home and a personal computer at work. Air can be used.
  • the authentication unit when the authentication unit confirms that the user is a legitimate user, the authentication unit transmits the list data of the second software that can be activated by the user to the user computer, and selects the second software selected from the list data. Predetermined information about the software of 2 is sent to the execution control program via the communication network.
  • a user may have already purchased multiple types of second software licenses, but after authenticating the user, the authentication unit lists list data that lists the names of second software that can be used by the user. Send to user computer. The user selects the second software that he wishes to launch from the list of available (available) lists. Thus, the authentication unit generates predetermined information for decoding and starting the selected second software, and transmits it to the execution control program.
  • the execution control program requests a user authentication to the authentication unit, a function to acquire machine information unique to the user computer, a function to generate encryption key information, and at least machine information and encryption.
  • the user selects either one of the function to send the activation key information to the authentication unit or the list of second software that can be started received from the authentication unit.
  • the function of notifying the authentication unit of the second software and the storage destination address information, startup argument, and decode key information in the user computer of the selected second software are encrypted with at least the encryption key information.
  • the second software includes a program and an accompanying data group, and updates at least one of the program and the accompanying data group.
  • the first software installed in the user computer can be executed without being authenticated by the authentication unit until the first software is replaced with the second software.
  • the execution control program is configured as a program that cannot be forcibly terminated separately from the second software.
  • BIOS Basic Input / Output System
  • BIOS Basic Input / Output System
  • BIOS basically has only the function of directly transmitting / receiving data to / from hardware, it decrypts encrypted data, monitors the execution of second software, etc. Can not perform advanced control.
  • the execution control program as an intermediate program located between the OS and the application program (second software), for example, a device driver, advanced processing can be performed.
  • second software for example, a device driver
  • the distribution unit and the authentication unit are each on separate computers. It has been realized.
  • a distribution unit that distributes the second software and the execution control program is set up for each software company, and the authentication unit that performs the authentication at the time of starting the second software includes each country, each region, and each software company. It can be installed for each group.
  • the present invention can also be understood as a program invention.
  • it is an execution control program that updates the first software installed in the user computer to the second software and controls the execution of the second software, via an external authentication unit and a communication network.
  • Function, the fifth function to start the second software based on the generated startup information, and the execution status of the second software. If the execution of the second software is completed, a second soft ware neutralize the sixth feature and the software Touea execution control program to be implemented on a user computer to.
  • the present invention can also be grasped as a software update method.
  • a step for notifying the user that the first usable software installed on the user computer can be updated to the second software, and a distribution for distributing the second software.
  • Connecting a user computer to the computer via a communication network and requesting an update to the second software; the second software encoded from the distribution computer to the user computer; and the second software A step of transmitting an execution control program for controlling the execution of the software of 2 through a communication network;
  • a user computer and an authentication computer are connected via a communication network by an execution control program started on a computer, and the authentication computer requests user authentication.
  • the second software is decoded based on the predetermined information transmitted from the authentication computer to the user computer, and the second information is received based on the predetermined information received from the authentication computer.
  • the management computer controls the operation of the execution control program by communicating with the execution control program installed in the user computer together with the application software and the monitoring program.
  • the management computer authenticates the user based on a request from the execution control program, and the execution control program starts the application software when the authentication unit confirms that the user is a valid user.
  • Permission to continue execution of application software based on continuous confirmation communication performed between the information transmission unit for transmitting the first information necessary for the execution to the execution control program and the execution control program at a predetermined time And a continuous execution management unit for managing whether or not.
  • the continuous execution management unit compares the first identification information acquired from the execution control program by the continuous confirmation communication with the second identification information associated in advance with the user authentication, and both If the identification information corresponds, the execution control program is allowed to continue execution of the application software. If the identification information does not correspond, the application software is executed for the execution control program. Continuation of execution of the key is prohibited.
  • the continuous execution management unit causes the execution control program to set first identification information corresponding to the second identification information in advance.
  • the continuous execution management unit sets a predetermined time in the execution control program in advance, and when the predetermined time arrives, the execution control program sends the continuous execution management unit to the continuous execution management unit. Continuation confirmation communication.
  • the continuous execution management unit can variably set the predetermined time.
  • the continuous execution management unit can variably set the predetermined time in consideration of at least a predicted future load state.
  • the monitoring program monitors the operation states of the application software and the execution control program, respectively, and when either the application software or the execution control program stops operating, the application software
  • the execution control program monitors the operating status of the application software and the monitoring program, and either the application software or the monitoring program stops operating. In such a case, the application software and the monitoring program are stopped, and they are also stopped.
  • a computer program causes a computer to function as an execution control unit that controls execution of application software, and a monitoring unit that monitors the operating states of the application software and the execution control unit, respectively.
  • the execution control unit communicates with the management computer to request user authentication, starts the application software based on the first information received from the management computer, Comb for
  • the monitoring unit is equipped with a function for performing continuous confirmation communication with the data and a function for stopping the operation of the application software when continuous execution of the application software is prohibited by the continuous confirmation communication.
  • the application software or the execution control unit stops monitoring the operation status of the application software and the execution control unit the application software and the execution control unit are stopped. And a function to stop.
  • FIG. 1 is an explanatory diagram showing an overall outline of a software execution control system according to an embodiment of the present invention.
  • Figure 2 shows the structure of the database, etc.
  • (a) is the user information database
  • (b) is the game information database
  • (c) is the embedded activation information embedded in the HTML header. Each of them is shown.
  • Figure 3 shows the schematic structure of the program, where (a) shows the game program and (b) shows the structure of the execution control program.
  • FIG. 4 is an explanatory diagram showing a state in which the old version game program installed in the user computer is updated to the new version game program and the activation is controlled.
  • FIG. 5 is a flowchart showing the processing when installing the game program and the execution control program.
  • FIG. 6 is a flowchart showing online authentication and the like performed between the execution control program and the authentication computer.
  • FIG. 8 shows the structure of the database, etc. (a) shows the user information database, (b) shows the game information database, and (c) shows the monitoring status database.
  • Fig. 9 is a flowchart showing an overview of the overall operation of the software execution control system.
  • FIG. 10 is a flowchart showing an outline of the process of continuous confirmation communication performed periodically.
  • Figure 11 is a flowchart showing an overview of the process for determining when to perform the next continuous confirmation communication.
  • Fig. 12 is a flowchart showing an outline of the process that the game manager and the monitoring program monitor each other.
  • FIG. 13 is an explanatory diagram showing an overall outline of a software execution control system according to still another embodiment of the present invention.
  • FIGS. Fig. 1 is an explanatory diagram showing the overall outline of the software execution control system.
  • a system for updating a game program online will be described as an example.
  • the distribution computer 10 is for distributing the new version of the game program 40 and the execution control program 50 to the computer 30 of each user via a communication network such as the Internet.
  • Distribution computer 1 0 It can be configured as a server installed at each wearer (vendor).
  • the distribution computer 10 registers the new version program registered in the game program database 12 in the authentication computer 20 in advance (S 1). For example, data such as the name, type, sales price, data size, and version information of the new version game program are registered from the distribution computer 10 to the authentication computer 20.
  • data such as the name, type, sales price, data size, and version information of the new version game program are registered from the distribution computer 10 to the authentication computer 20.
  • the distribution computer 10 and the authentication computer are configured in a body, such notification via the external network is not necessarily required.
  • the distribution control unit 11 of the distribution computer 10 Upon receiving a program update request from the user computer 30, the distribution control unit 11 of the distribution computer 10 reads the game program 40 desired by the user from the game program database 12, and the user computer 30 (S 2).
  • the new version of the game program 40 is not distributed to the user computer 30 alone, but is distributed to the user computer 30 together with the execution control program 50 that manages the activation and deletion of the game program 40. It should be noted that.
  • the authentication computer 20 can be configured, for example, as a server installed for each organization or organization to which a plurality of software companies belong. Further, the present invention is not limited to this, and an authentication computer 20 may be installed for each software company.
  • Verification computer .2 0 includes an authentication unit 2 1, the accounting unit 2 2, a start information transmission unit 2 3, a user information database 2 4, and a game information database 2 5.
  • Authentication unit 2 1, based on a predetermined authentication data transmitted from the execution control program 5 0 of the user computer 3 0, and performs user authentication.
  • the authentication data includes, for example, user identification information (user ID), password (PW) and MAC address (Media Access Control address) are included.
  • the charge processing unit 22 charges the user when the new version of the game program 40 is licensed.
  • Various accounting methods can be used. For example, the user may be charged for the game program in a lump sum (sold out), or charged each time the user uses the game program. Or you may make it charge every predetermined period or every predetermined number of times.
  • Various payment methods such as credit payment and electronic money payment can be adopted.
  • the activation information transmission unit 23 decodes the new version of the game program 40 stored in the storage device (for example, a hard disk) of the user computer 30 and provides the activation information necessary to activate the user computer 30. This is sent to the execution control program 50.
  • the user authenticates with the authentication unit 21 of the computer 20 for authentication via the execution control program 50, and is authenticated as a legitimate user who has paid the purchase price (usage of the right to use) of the game program 40. If it is (S 3), the activation information is transmitted from the activation information transmitter 23 to the execution control program 50 (S 4). When a user who has not paid for the game program 40 has accessed the computer for authentication 20, after the accounting process is performed via the accounting processor 22, the activation information is transmitted to the execution control program 50. Is done.
  • the user computer 30 is configured as a computer such as a personal computer, a workstation, a portable information terminal, or a mobile phone.
  • the user computer 30 includes computer resources such as an arithmetic processing unit (CPU), a main memory, an auxiliary memory, and an external input / output circuit, as necessary. These resources are appropriately stored in the game program 40 and execution control. Used by program 50.
  • a new version of the game sent from the distribution computer 10 to the user computer 30 The program 40 and the execution control program 50 are installed in the user computer 30 by an attached installer as will be described later. Then, when the execution control program 50 performs user authentication with the authentication computer 20 and obtains activation information, the game program 40 is activated (S 5).
  • the old game program that was already installed on the user computer 30 before the installation of the 5 program 40 is replaced with the new program, and cannot be used thereafter.
  • the user can use the new version of the game program 40 via the user computer 30. Then, when the user finishes the game, the game program 4 0
  • the execution control program 50 is disabled by deleting the game program 40 (S 6).
  • the user uses the game program 40 again, he / she accesses the authentication computer 20 again to perform user authentication and obtain activation information.
  • the new version of the game program 15 40 is stored in the state of the encrypted file before decoding in the storage device of the user computer 30, when reusing the game program 40, this It is only necessary to obtain information (decoding key) for decoding the encrypted file and information for starting from the authentication computer 20. That is, in this embodiment, the new version game program 40 is stored in an encrypted file state on the local disk of the user computer 30 and online authentication is performed with the authentication computer 20 every time 20 games are played. To decode and start the encrypted game program 40. After the game is over, the decoded game program 40 is deleted and disabled.
  • FIG. 2 is an explanatory diagram showing an example of the structure of the user information database 24 and the game information database 25 used by the authentication computer 20. It should be noted that the contents of each database 24, 25 shown in Fig. 2 are examples, and all items shown in the figure are provided. There is no need to .
  • the user information database 24 shown in FIG. 2 (a) includes, for example, a user ID, a ⁇ password, a plurality of MAC addresses l to n, a game ID l to n for identifying a purchased game program, and other information. It is configured by associating information with each other.
  • the reason why a plurality of MAC addresses l to n can be registered is that a single user uses a plurality of different user computers 30 and uses a game program 40. Therefore, the user can use the game program 40 via different information processing terminals such as a computer at work and a computer at home. Examples of other information include the user's name, age, address, number of times the game has been played, and the number of points earned (for example, if points are given according to the game purchase price, number of times played, etc.) be able to.
  • the game information database 25 shown in FIG. 2 (b) includes, for example, a game ID, a game name, game information (information indicating a game program registry path), and an encrypted game program 40.
  • a decoding key for decoding, an activation argument for activating the decoded game program 40, and other information are associated with each other. Examples of other information include the type of game (role-playing game, fighting game, presence / absence of adult designation, etc.), data size, copyright management information, and the like.
  • the game information, decode key, and activation argument are encrypted and embedded in HTML (Hyper Text Markup Language) data and sent to the user computer 30.
  • the activation information (game information, decode key, activation argument) is encrypted by the encryption key and MAC address generated on the user computer 30 side, and is embedded in, for example, the header portion of HTML. Therefore, the authentication server 20 is connected to the HTTP from the user computer 30.
  • HTTP Hyper Text Transport Protocol
  • encrypted startup information is generated, and an HTTP response including this encrypted startup information is returned to the user computer 30.
  • FIG. 3 shows a schematic configuration of the game program 40 and the execution control program 50.
  • FIG. 1 A first figure.
  • the game program 40 includes a program main body 41 and an accompanying data group 42.
  • Examples of the accompanying data group 42 include moving image data, still image data, graphics data, music data, audio data, text data, and the like.
  • the new version of the game program 40 has a new one or both of the program 41 and the accompanying data group 42 as compared to the old version of the program. If both the program body 4 1 and the associated data group 4 2 are newer than the previous version, both the program body 4 1 and the associated data group 4 2 are replaced with the new version. If only the accompanying data group 4 2 is new or if only the program body 4 1 is new, the accompanying data group
  • the execution control program 50 is executed on the user computer 30 by the encryption information generation unit 51, the authentication request unit 52, the game selection unit 53, and the decryption.
  • the functions of unit 5 4, start-up unit 5 5, decode unit 5 6, and execution monitoring unit 5 7 are realized.
  • the execution control program 50 does not identify the device.
  • the execution control program 50 can be configured not to be terminated by a task management program or the like, unlike an application program such as a game program.
  • the encryption information generation unit 51 generates an encryption key based on time information obtained from a built-in timer of the user computer 30, as well as the user computer 30. Get MAC address, etc.
  • the authentication request unit 52 calls the network access function implemented in the user computer 30 internally to access the authentication computer 20 and obtains the encryption key, MAC address, user ID, and password. Sent to authentication computer 20 for user authentication.
  • the game selection unit 53 selects a game desired by the user from the list menu transmitted from the authentication computer 20 to the user computer 30 after the user authentication is completed.
  • This list menu displays a list of game programs that can be used (runnable) by the user in a list format, and can be generated based on the purchased game ID in the user information database 24.
  • the activation information for activating the game program 40 selected by the user is encrypted and transmitted to the user computer 30 by the encryption key and MAC address generated by the encryption information generation unit 51.
  • the decryption unit 54 decrypts the encrypted activation information based on the encryption key and the MAC address.
  • the decoding unit 56 decodes the encrypted game program 40 using the decoded decoding key.
  • the encrypted file is saved as it is.
  • the activation unit 55 generates an activation statement based on the decrypted game information and the activation argument, and activates the decoded game program 40.
  • the startup statement consists of a game program registry path and startup arguments.
  • Figure 4 shows how the game program is updated to the latest version using this system. It is explanatory drawing which shows this typically.
  • the old version of the game program is already installed in the user computer 30.
  • the old version of the game program before the upgrade is displayed as “Initial Program” and the new version of the game program to be upgraded as “Update Program”.
  • the user installs the old version game program 4 O A fixed on a recording medium such as a CD-ROM, DVD-ROM, or memory into the user computer 30 and uses it for ij (S l l).
  • the old version of the game program 4 O A can be obtained via a communication network such as the Internet.
  • This old version of the game product 10 O 4 O A can be used without receiving online authentication with the authentication computer 20.
  • this update system even if the updated program becomes obsolete, it cannot be used without online authentication.
  • the first method is, for example, notifying the user that the old version of the game program 40 A can be actively or passively updated to the new version of the game program 40, and also distributing the computer 10.
  • URL Uniform Resource Locator
  • the second method is to notify the user of the fact that it can be updated to the new version of the game program 40 actively or passively through electronic media and the URL of the distribution computer 10. is there.
  • an e-mail addressed to a user can be cited as an active notification.
  • a new version of the game program 40 can be advertised on a website (for example, a distribution computer 10).
  • advertisements on paper media such as game magazines and computer magazines, and advertisements for communities such as game program clubs formed on the network can be used.
  • the user can be notified of the existence of the new version game program 40.
  • the user who wishes to update accesses the distribution computer 10 via the web browser 31 and requests an update to the new game program 40 (S 12). .
  • the distribution computer 10 directs the user's desired new version of the game program 40 (including the accompanying data group) to the user computer 30 via the communication network. (S 1 3).
  • the execution control program 50 is set together with the new version of the game program 40 and transmitted to the user computer 30 (S 1 3).
  • the new version of the game program 40 and the execution control program 50 are stored in the storage device of the user computer 30.
  • the new version of the game program 40 and the execution control program 50 are provided with a dedicated installer.
  • a new version of the game program 40 and the execution control program 50 are installed on the user computer 30 by the installer.
  • the execution control program 50 calls the network access function and stores it in the authentication computer 20 as shown in FIG. 4 (d).
  • user authentication and purchase processing (billing processing) are performed with the authentication computer 20 (S 14). After completing user authentication and billing processing,
  • the execution control program 50 decodes the encrypted startup information and extracts the decode key, startup argument, and the like. Then, the execution control program 50 decodes and activates the game program 40. This allows the user to use the new version of the game program 40. The execution state of the game program 40 is monitored by the execution control program 50.
  • the new version of the game program 40 that has been decoded and can be executed (can be started by entering a startup statement) is deleted, and the pre-decode obtained from the distribution computer 10 is deleted.
  • the encrypted file can be stored in the storage device of the user computer 30.
  • the game program 40 when the game program 40 is played again, it is convenient to re-acquire only the activation information of the game program 40.
  • the present invention is not limited to this. Get the program again from the distribution computer 10 You may make it do. It is also possible to delete only the decoded program body 41 and leave the accompanying data group 42 as it is.
  • FIGS. The flowchart shown in the figure shows the general flow of processing, and is different from the actual program.
  • FIG. 5 shows processing for installing a new version of the game program 40 and the execution control program 50 stored in the storage device of the user computer 30.
  • the game program 40 and the execution control program 50 are stored in the user computer 30 in an encrypted file state.
  • the installer is activated (S 21).
  • the installer determines whether or not the previous version of the game program 4 O A to be updated to the user computer 30 has been installed (S 2 2). Old version game program 4 If OA is not installed, for example, “Old version game is not installed. Processing will be terminated.” Will be displayed on the screen and the process will end. (S2 3).
  • S 24 determines whether or not the user registration and accounting process has already been completed.
  • the installer determines the registry of the execution control program 50. If the execution control program 50 is not yet installed, the installation control program 50 is installed (S27). The installer rewrites the old version of the program body 41 and the accompanying data group 42 with the new version of the program body 41 and the accompanying data group 42 to replace the old version of the game program 5 4 OA with the new version of the game program 40 (S 28, S 29). Then, the installer activates the execution control program 50 and ends the process (S30).
  • FIG. 6 shows a computer for execution control processing and authentication by the execution control program 50.
  • 10 is a flowchart showing processing of 10 20 and the like.
  • the started execution control program 50 acquires machine information specific to the user computer 30, specifically, MAC key [less] (S41). Further, the current time information is obtained from the built-in timer of the user computer 30, and an encryption key is generated based on this time information (S42).
  • the execution control program 50 calls the function of the web browser 31 (S43), connects to the authentication computer 10 through the communication network, and requests the authentication computer 20 for login authentication (S44). ).
  • the execution control program 50 transmits the user ID, password, MAC address, and encryption key to the authentication computer 20 (S44).
  • the authentication computer 20 is a user information database.
  • the authentication computer 20 When it is recognized that the user is a valid user, the authentication computer 20 creates a list of game programs that can be used by the user and transmits the list to the user computer 30 (S62).
  • a typical game program that can be used by a user is a game program that the user has purchased.
  • game pros provided free of charge by software companies Gram etc. can also be included.
  • the execution control program 50 When receiving the list data of the available game programs from the authentication computer 20, the execution control program 50 displays the list of games on the monitor display of the user computer 30 (S45). Based on this list menu, the user selects a game to be played (S46).
  • the authentication computer 20 refers to the game information database 25 to generate activation information necessary to activate the game program selected by the user, and uses the encryption key and MAC acquired in S 61 as the activation information. Encryption is performed using an end address (S63). The authentication computer 20 transmits the encrypted startup information to the execution control program 50 of the user computer 30 (S64).
  • the execution control program 50 When the execution control program 50 receives the encrypted activation information from the authentication computer 20 (S 47), the execution control program 50 decrypts the encrypted activation information using the encryption key and the MAC address (S 48).
  • the execution control program 50 acquires the registry information of the new version of the game program 40 (S49), and generates a startup statement based on the registry path and startup arguments (S50).
  • the execution control program 50 decodes the encrypted new version of the game program 40 by using the decode key extracted from the activation information, and expands it in a predetermined directory of a predetermined drive (S51). As a result, the game program 40 is decoded and waits for activation.
  • the execution control program 50 activates the decoded new version of the game program 40 by the activation statement generated in S 50 (S 52, S 70). As a result, the user can play with the new version of the game program 40 (S 7 1).
  • the execution control program 50 monitors the execution state of the game program 40. (S 5 3) When the user finishes the game and ends the game program 40 (S 7 2), the game program 40 is disabled by deleting the decoded program main body 41, etc. The process is terminated (S 5 4).
  • the user wants to play with the game program 40 again, he / she can access the authentication computer 20 again to receive online authentication and obtain the activation information.
  • the execution control program 50 is configured as a program close to the OS side like a device driver, and cannot be terminated by a normal method like an application program. Therefore, the execution control program 50 and the game program 40 are separated, and only the game program 40 cannot be illegally copied or taken out.
  • the present invention can be utilized in various businesses. For example, an old version game program that has been illegally copied and distributed in the past can be updated to a new version game program, allowing illegal users to formally obtain usage rights and change to legitimate users. it can.
  • an accompanying data group (game scenario, music, etc.) corresponding to the user's native language is prepared, or an additional scenario is newly prepared. The Stimulate your willingness to update.
  • FIGS. In the present embodiment, a case where a game program is fixed and distributed on a recording medium will be described as an example. In the present embodiment, the description given in the above embodiment can be appropriately used as long as the scope of the present invention is not reduced.
  • the execution of the game program is controlled by the execution control program (game manager of this embodiment) as in the above embodiment.
  • online authentication between the authentication computer (DRM computer of this embodiment) and the execution control program can be executed periodically.
  • FIG. 7 is an explanatory diagram showing an overall outline of the software execution control system according to the present embodiment. As will be described later, this system can be configured to include, for example, a supplier computer 100, a DRM computer 200, and a user computer 300.
  • the supplier computer 100 is used, for example, by a software vendor that produces a program product.
  • the supplier computer 100 includes a DRM unit 110 that processes the game program 400 and converts it into a DRM program 700.
  • DRM is an abbreviation for Digital Rights Management, which means managing the rights of digitized content such as game programs.
  • DRM means to improve the resistance against unauthorized use by setting a unique protector described later in a non-protection game program.
  • the D RM unit 110 sets a unique protector for the game program 400 by adding the game manager 500 and the monitoring program 60 to the game program 400.
  • the protected game program 400 is a DRM-enabled program. As a program 700, it is recorded on the recording medium RM and distributed to the factory. The game manager 500 and the monitoring program 600 will be further described later.
  • the recording medium RM for example, various media such as a CD-ROM, a DVD-ROM, an optical disk, a hard disk, a flexible disk, a semiconductor memory, and a magnetic tape can be used as appropriate.
  • the DRM conversion program 700 may be compressed and recorded on the recording medium RM, or the DRM conversion program 700 may be recorded on the recording medium RM without being compressed.
  • the recording medium RM can also store an installer for causing the user computer 300 to install the DRM conversion program 700.
  • the D RM computer 200 is an example of a “management computer”.
  • the DRM computer 200 can also be called, for example, an “authentication management server”.
  • the DRM computer 200 may be installed for each software vendor, or only one may be installed for multiple software vendors.
  • the D RM computer 2 00 communicates with the game manager 5 0 0 running on the user computer 3 0 0 to manage user authentication, transmission of startup information, and continuous execution.
  • the D RM computer 2 200 includes an authentication unit 2 1 0, an activation information transmission unit 2 2 0, and a continuous execution management unit 2 3 0.
  • the DRM computer 2 00 can use the user information database 2 4 0, the game information database 2 5 0, and the monitoring status database 2 6 0.
  • the DRM computer 200 does not need to be physically configured from a single computer, and may be realized by a cooperative operation of a plurality of computers.
  • the authentication unit 2 10 is, for example, a user ID, a password (“PW” in the figure), based on the authentication data transmitted from the game manager 50 0 Authentication is performed.
  • the activation information transmission unit 2 2 0 In the same manner as the activation information transmission unit 23 in FIG. 2, for example, the game manager 5 0 0 transmits information necessary for the game program 4 0 0 to be decoded and placed in a startable state to the game manager 5 0 0 It is.
  • the continuous execution management unit 230 manages whether or not the game program 400 can be continuously executed by communicating with the game manager 500 every predetermined time. As will be described in detail later, the continuous execution management unit 2 3 0 compares the session ID transmitted from the game manager 50 0 with the session ID held in advance, and if both match, the game program Allows continuation of 4 0 0 execution. Conversely, if both sessions ID do not match, the continuous execution management unit 2 3 0 instructs the game manager 5 0 0 to forcibly terminate the game program 4 0 0.
  • the user computer 300 can be configured as, for example, a personal computer, a portable information terminal, a mobile phone, or the like, similar to the user computer 3 of the embodiment.
  • the user computer 300 can be provided with hardware resources and software resources as required, such as CPU, memory, auxiliary storage device, OS, and various device drivers.
  • the game program 400, the game manager 500, and the monitoring program 600 can use hardware resources and software resources of the user computer 300 as appropriate.
  • the game program 400, game manager 500, and monitoring program 60 on the user computer 300 Each 0 is executed.
  • the game manager 500 acts as a launcher program for starting the game program 400.
  • the game manager 500 controls the operation of the game program 400, not just the launcher program.
  • the game manager 500 monitors the operation status of the game program 400 and the monitoring program 600, respectively. If one of the monitoring targets stops operating, the other monitoring target and its own operation stop.
  • the monitoring program 6 0 0 monitors the operating states of the game program 4 0 0 and the game manager 5 0 0, and when one of the monitoring targets stops operating, stops the other monitoring target and its own operation Let A legitimate user can use the game program 400 without being aware of the presence of the monitoring program 600.
  • FIG. 8 is an explanatory diagram showing an example of each of the databases 2 4 0 to 2 60.
  • the user information database 240 can manage, for example, a user ID, a password, a MAC address, a session ID, and other information in association with each other.
  • the session ID is information used to determine whether or not continuous execution is permitted. That is, a game program 4 using a user computer different from the first authenticated user computer 3 0 0 0
  • the session ID received from 0 is compared with the session ID registered in the user information database 240, so that the execution of the game program 400 is allowed only when the session ID matches. It has become. Note that, similarly to the user information database 24 shown in FIG. 2A, a plurality of MAC addresses can be associated with one user ID.
  • the game information database 2 5 0 includes, for example, a game
  • the reporting mode is information for setting a policy regarding the frequency of periodic reporting from the game manager 500 to the DRM computer 200.
  • the reporting mode is for example games Can be set by program 400 provider (software vendor).
  • the reporting mode includes, for example, a mode that reports to the DRM computer 200 only when the game program 400 is first started, a mode that reports to the DRM computer 200 every time the game program 400 is started, and monitoring.
  • a mode in which efficiency 5 is prioritized and a mode for reporting to the DRM computer 200 in the shortest possible cycle and a mode in which the load reduction of the DRM computer 200 is considered and the mode for reporting to the DRM computer 200 with a low frequency can be given.
  • the monitoring status database 260 includes, for example, the user ID of each user executing the game program 400, the reporting period from each user computer 10 300, the next reporting time, The game ID of the game program 400 executed by each user can be managed in association with the game start time. As will be described later, the next reporting time is dynamically controlled based on the load state and reporting mode of the DRM computer 200.
  • Fig. 9 ' is a flowchart showing an outline of the operations performed when the 15-system is started up.
  • a user who desires to use the game program 400 selects, for example, a game icon that represents the desired game program 400 and instructs activation.
  • the game manager 500 is activated (S 101).
  • the game manager 500 acquires a MAC address that is an example of machine information unique to the user computer 300 (S102), and transmits this MAC address to the DRM computer 200 via the communication network CN (S 103).
  • the DRM computer 200 registers the MAC address received from the game manager 500 in the user information database 240 (S 1 21, S 1 22). This
  • the MAC address is stored in the memory without registering it in the user information database 240, and when user authentication is successful, the MAC address is registered in the user information database 240 together with the user ID and session ID, etc. Issue a session ID and set the reporting interval. The initial value set in advance can be used for the initial reporting period. Then, the DRM computer 200 notifies the game manager 500 of the session ID and the first reporting period (S123).
  • the game manager 500 When the game manager 500 receives the session ID and the report cycle (S 104), the game manager 500 stores and stores these pieces of information in the memory of the user computer 300. Next, the game manager 500 determines whether or not the user ID and password are input from the user (S 105). For example, when the user selects and operates a game icon, the user ID and password can be prompted to be displayed by displaying a screen that prompts the user to input the user ID and password.
  • the game manager 500 When the game manager 500 confirms the input of the user ID and password (S105: YES), the game manager 500 transmits the input user ID and password and the game ID of the game program 400 that the user desires to execute to the DRM computer 200. (S106).
  • the DRM computer 200 When the DRM computer 200 receives the user ID, password, and game ID from the game manager 500 (S124), the DRM computer 200 refers to the user information database .240 and performs user authentication (S125). If the user ID and password registered in advance match the user ID and password received from the game manager 500 (S125: YES), the user authentication is successful. The DRM computer 200 registers the user ID, password, MAC address, etc. in the user information database 240 in association with each other (S127). Conversely, no user ID or password If either one does not match (S125: NO), user authentication fails and error handling is performed (S126). As error processing, for example, a message such as “ID or password is different” may be displayed on the screen of the user computer 300.
  • the activation of the game program 400 can be locked.
  • the user authentication information is not limited to the user ID and password, and for example, biometric information such as a voiceprint, fingerprint, and iris may be employed.
  • the DRM computer 200 determines permission to execute the game program 400 desired by the user based on the success of the user authentication (S128).
  • the DRM computer 200 generates and encrypts information for enabling the game manager 500 to start the game program 400 permitted to be executed (S 1 29). Examples of the information for starting the game include execution information such as a file name and an activity key.
  • the DRM computer 200 encrypts the execution information and the artifact key using, for example, the session ID and user information (MAC address, etc.), and transmits the encrypted information to the game manager 500 (S 1 30 ).
  • the game manager 500 When the game manager 500 receives the encryption information from the DRM computer 200 (S107), the game manager 500 decompresses the encryption information (S108) and obtains the activity key and execution information (S109).
  • the encryption algorithm used by the DRM computer 200 is known to the game manager 500, and information necessary for decompression is also present on the user computer 300 side, so that the encrypted information can be decompressed.
  • the game manager 500 decodes the game program 400 based on the acquired activity and stores the decoded game program 400 in the memory of the user computer 300 (S 110).
  • the game program 400 is installed in the user computer 300 using the recording medium RM, the game program is stored in an encoded state in the auxiliary storage device of the user computer 300, for example. Is done. In this encoded state, the game program 400 cannot be started.
  • the manager 5 00 acquires the activity key from the D RM computer 2 0 0 and decodes the game program 4 0 0 and places it in the memory of the user computer 3 0 0, the game program 4 0 0 It becomes possible to start.
  • the decoded game program 400 (executable program) is not stored as a file but exists only in memory. Game Pro
  • the game manager 500 Based on the execution information, the game manager 500 starts the game program 400 stored in the memory of the user computer 300 (S 1 1 1).
  • the user can play the game program 400 by playing it.
  • the game manager 500 starts the monitoring program 60 00 simultaneously with the start of the game program 4 ⁇ 0 (not necessarily in a physically strict sense) (S 1 1 2).
  • the operation of the monitoring program 600 will be further described later. '
  • the game manager 500 refers to the reporting period set from the DRM computer 200 when starting up (S 14 1).
  • the game manager 5 0 0 uses the timer function etc. of the user computer 3 0 0 to enable the DRM computer 2
  • the DRM computer 200 When the DRM computer 200 receives the session ID from the game manager 500 (S 161), the DRM computer 200 refers to the user information database 240. The DRM computer 200 compares the issued session ID registered in the user information database 240 with the session ID received from the game manager 500, and determines whether or not they match (S163). Note that only the session ID may be transmitted from the game manager 500 to the DRM computer 200, or in addition to the session ID, for example, all or part of user information such as a user ID may be included. it can. Furthermore, it is possible to include environmental information (such as the CPU usage rate and memory consumption) of the user computer 300. As the information added to the session ID increases, the load on the user computer 300 increases and the network traffic also increases.
  • environmental information such as the CPU usage rate and memory consumption
  • the DRM computer 200 continuously execution management unit 230 sends the game program 400 to the game manager 500. Prohibition of continuation of execution is notified (S 1 64). If the session IDs do not match, it means that the game program 400 is being executed by another user computer, that is, for example, when the same game program 400 is activated by a single user ID. . Therefore, if both sessions ID do not match, the game manager 500 is instructed to forcibly terminate the game program 400.
  • DRM computer 200 If the session ID received from game manager 500 matches the session ID registered in advance (S163: YES), DRM computer 200 A new reporting cycle, that is, the next reporting time is calculated (S165). The calculation of this new reporting period will be described later, but will be determined in consideration of the load state of the DRM computer 200 and the like.
  • the DRM computer 200 notifies the game manager 500 of the newly calculated report cycle and permission to continue execution (S 1 66).
  • the game manager 500 receives a response from the DRM computer 200 as to whether or not to continue execution (S145). If the game manager 500 is allowed to continue execution of the game program 400 (S146: YES), the game manager 500 stores the newly set reporting cycle in the memory of the user computer 300, returns to S141, and the reporting time has come. Wait for.
  • the game manager 500 periodically performs simple authentication with the DRM computer 200. As a result, for example, it is possible to prevent unauthorized use in which a plurality of game programs 400 are activated using the same user ID and password.
  • FIG 11 is a flowchart showing the reporting cycle setting process. This is an example of the content of S 1 65 in FIG.
  • the DRM computer 300 (specifically, the continuous execution management unit 230) refers to the time when the session ID is received from the game manager 500 (S181). Next, the game manager 500 refers to the reporting period associated with reception of this session ID (S 182).
  • Game Manager 500 was set in advance with the session ID reception time Calculate the deviation from the reporting period. For example, if the actual reception time is later than the scheduled session ID reception time, it may be due to a delay in the arrival of the bucket due to congestion of the communication network CN or a decrease in response performance due to an increase in the load on the DRM computer 300. be able to.
  • the DRM computer 200 detects its current load state (S 184).
  • Examples of the load state include the number of users who are currently playing, that is, the number of game managers that should perform periodic authentication processing online.
  • CPU utilization, memory consumption, data input / output processing speed (IZO speed), etc. may be detected.
  • the DRM computer 200 predicts a future load state based on the current load state (S185). That is, the DRM computer 200 is a game manager 5
  • the load state of the DRM computer 200 at the next reporting period is predicted. Specifically, for example, if the current reporting cycle is set to “1 hour”, the number of users (game managers) who perform online authentication one hour after the current time I can understand more.
  • the DRM computer 200 refers to a report mode preset in the game program 400 being executed (S 186).
  • the reporting mode associated with the game program 400 can be changed even after the recording medium RM is distributed. For example, from a supplier computer 100 to a DRM computer 200, a game
  • the DRM computer 200 maximizes the monitoring efficiency based on, for example, the report mode, the amount of time difference between the scheduled reception time of the session ID and the actual reception time, and the predicted load state in the future. To calculate a new reporting period (S 1 8 7).
  • the load on the DRM computer 200 that performs periodic simple online authentication increases.
  • the shorter the reporting cycle the better the security against unauthorized use, but on the other hand, the load on the DRM converter 200 also increases. If the reporting cycle is set too short with emphasis on security, the responsiveness of the DRM computer 200 may decrease or the function may stop. Therefore, when the load temporarily increases, such as when a new popular game is released, control is performed so that the reporting cycle becomes longer.
  • the DRM computer 200 can set the reporting cycle (monitoring timing) so that the maximum security can be obtained without causing a function stop.
  • the DRM computer 200 can set the reporting period to such an extent that the minimum security can be maintained.
  • FIG. 12 is a flowchart showing the mutual monitoring process by the game manager 50 ° and the monitoring program 60.
  • the game manager 5 00 and the monitoring program 6 0 0 monitor the operating state of the game program 4 0 0 as a common monitoring target, and regularly monitor each other as a monitoring target. Yes.
  • D If periodic online authentication between the RM computer 2 00 and the game manager 5 0 0 is external monitoring, mutual monitoring by the game manager 5 0 0 and the monitoring program 6 0 0 is internally monitored. Can be positioned.
  • the monitoring process of the game manager 500 will be described first.
  • the game manager 500 determines whether or not a preset monitoring time has come (S 2 0 1).
  • the monitoring time is preferably set to a relatively short cycle.
  • the game manager 500 checks the operating state of the monitoring program 600 (S203), and determines whether or not the monitoring program 600 is operating normally (S203).
  • the game manager 500 When the monitoring program 600 is operating normally (S203: YES), the game manager 500 next checks the operating state of the game program 400 (S204), and whether the game program 400 is operating normally. Is determined (S205). If the game program 400 is also operating normally (S205: YES), the game manager 500 waits until the next monitoring time comes (S201).
  • the game manager 500 performs a forced stop process (S 206 to S208).
  • the game manager 500 stops the operations of both the game program 400 and the monitoring program 600 (S206, S207), and then stops the game manager itself (S208).
  • the decoded game program 400 is immediately erased or destroyed from the memory of the user computer 300.
  • Monitoring program 600 is for monitoring When the period arrives (S221: YES), the operation status of game management 500 and game program 400 is monitored (S 2 2 2 to S 2 2 5), and one of them has stopped operating. If this happens (S223: NO or S225: NO), the program shifts to forced stop processing, and all programs are stopped (S2 26 to S2 28).
  • a plurality of operation monitoring programs namely the game manager 500 and the monitoring program 60, monitor the operation state of the game program 400 and monitor each other, so that the game program 40 Zero stoppage can be detected more reliably. Even if one of the operation monitoring programs is intentionally stopped, the other monitoring program shuts down the whole, so that the game program 4 0 0 deployed in the memory of the user computer 3 0 0 is illegal. Can be prevented from being copied.
  • periodic online authentication is performed between the game manager 5 0 0 that controls the operation of the game program 4 0 0 and the DRM computer 2 0 0 that performs license authentication.
  • durability against unauthorized use can be improved.
  • this periodic online authentication is performed by comparing session IDs, so it is a relatively simple process. Therefore, simple authentication can be performed in a relatively short cycle without increasing the computer load, and security can be maintained for a long time.
  • timing (reporting cycle) for performing simple online authentication is dynamically controlled based on the load status of the DRM computer 200, etc., network security can be increased in consideration of computer load. Can be realized.
  • FIG. 13 shows still another embodiment of the present invention.
  • the operation of the game program 400 Not only the status but also each other monitors each other, and if any one of the game program 4 0 0, game manager 5 0 0, and monitoring program 6 0 0 stops, the remaining two programs Since the operation is also stopped and the game program 4 0 0 is erased to disable it, the act of illegally reading out and copying the game program 4 0 5 0 deployed in the memory is prevented, thereby improving reliability. It can be increased.
  • FIG. 13 shows still another embodiment of the present invention. In this embodiment, in the first embodiment, mutual monitoring by a plurality of monitoring programs and periodic online authentication with 10 computers for authentication are realized.
  • a game program 40, an execution control program 50A, and a monitoring program 60 are distributed from the distribution computer 10 to the user computer 30.
  • the execution control program 50 A includes a periodic simple online authentication function and a monitoring function executed by the game manager 50 0 described above, in addition to the configuration and operation 15 of the execution control program 50 described above. Yes.
  • the monitoring program 60 has a monitoring function similar to that of the monitoring program 60 0 described above.
  • the execution control program 5 OA decodes the game program 4 0 by the first user authentication. Further, the execution control program 5 OA performs user authentication even during execution of the game program 40 by periodically transmitting a session ID to the authentication computer 20 20. The execution control program 5 OA permits the continuous execution of the game program 40 if the user authentication is successful, and forcibly terminates the game program 40 if the user authentication fails.
  • the execution control program 5 OA and the monitoring program 60 both monitor the activation status of the game program 25 and monitor each other. The If any one of the game program 40, execution control program 5 OA, and monitoring program 60 ends, the execution control program 5 OA or the monitoring program 60 detects this and the remaining programs And terminate yourself.

Landscapes

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

Abstract

【課題】ユーザコンピュータに予めプログラムやデータを格納させて利用するダウンロード式のソフトウェア配信において、ゲームプログラム等のソフトウェアの違法な使用を未然に阻止する。【解決部】ユーザは、配信用コンピュータ10から新版のゲームプログラム40(付随データ群も含む)及び実行制御プログラム50をダウンロードする(S2)。実行制御プログラム50は、認証用コンピュータ20とオンラインによる認証を行って、ゲームプログラム40を起動させるために必要な起動情報を取得する(S3,S4)。実行制御プログラム50は、起動情報に基づいてゲームプログラム40をデコードし、起動させる(S5)。ユーザがゲームを終えて、ゲームプログラム40を終了させると、実行制御プログラム50は、ゲームプログラム40の全部又は一部を削除することにより無力化する(S6)。

Description

明 細 書
ソフトウェア実行制御システム及びソフトウエアの実行制御プログラム
技 術 分 野
本発明は、 例えば、 ゲームソフトウェア、 文書や図形等を作成する実務用ソフ トウエア等の各種アプリケーションソフトウエアを新バージョンのソフトウェア に更新させたり、 その実行を制御するソフトウエア実行制御システム及びソフト ゥェァの実行制御プログラムに関する。
技 術 背 景
一般的に、 例えば、 パーソナルコンピュータや携帯情報端末等のユーザコンビ ユータ上で稼働するゲームソフトウエア等のアプリケーションソフトウエアは、 例えば、 〇S (Operating System)、 使用言語、 ハードウェア構成等の各種のソフ トウエア実行環境に応じて、 あるいは、 ソフ トゥヱァの価格や代金支払いの有無 等に応じて、 複数種類のバージョンが用意されることがある。
例えば、 同じソフトウェアであっても、 英語版、 日本語版、 中国語版等のよう に、 使用言語毎に異なるバージョンが用意されることがある。 また、 無償で提供 するバージョンと有償で提供するバージョンとを用意し、 無償のソフトウェアか ら有償のソフトウエアへバージョンアップを誘導することも比較的よく行われて いる。 無償のソフトウェアは、 「体験版」 や 「お試し版」 とも呼ばれ、 有償のソフ トウエアは 「製品版」 や 「完全版」 とも呼ばれる。 無償のソフトウェアは、 同種 の有償のソフトウェアに比べて、 その機能が一部制限されていたり、 試用期間や 試用回数に制限を受けることが多い。 無償のソフトウエアを試用することにより ソフトウエアの価値を認めたユーザは、 提供元のウェブサイトから有償のソフト ウェアを購入してダウンロードしたり、 販売店で有償のパッケージソフトウェア を購入したりしてバージョンアップを行う。
一方、 ソフトウェアはディジタルデータであり、 複製が容易で、 かつ複製によ る劣化も殆ど生じないという特徴を有するため、 違法コピーや無断使用が大きな 問題となっている。 そこで、 ソフトウェア (ソフトウエアのライセンス) を購入 した正規ユーザとライセンスを得ていない違法ユーザとを、 ユーザ認証等によつ て識別し、 正規ユーザにのみソフトウェアを使用させるようにすることが従来よ り行われている。
例えば、 ソフトウェアをインス トールする際に、 ソフトウェアパッケージや記 録媒体に印刷されたプロダクト I Dを入力させて、 正規購入品であるか否かを判 定する技術は知られている (例えば、 特開 2 0 0 2 _ 2 5 8 9 6 3号公報 段落 0 0 0 3参照)。
また、 ソフトウェアを使用するための鍵データを、 イントラネット上に設置さ れたライセンス管理サーバに要求し、 ユーザ認証により正当なユーザと認められ た場合には、 ライセンス管理サーバから鍵データを取得し、 この鍵データによつ てソフトウ アを起動させて使用するようにしたものも知られてい.る (例えば、 特開 2 0 0 2— 6 9 7 2号公報、 特開 2 0 0 2— 2 9 7 2 5 4公報)。
プロダクト I D (プロダクトキー) を入力することにより正規ユーザであるか 否かを判別する従来技術は、 単なる文字や記号からなる I Dをインストール時に 入力するだけの防御機構であり、 容易に回避可能である。 従って、 この種の防御 機構 (著作権保護機構) しか備えないソフトゥ アは、 違法コピーや無断使用を 事実上排除することができない。
ライセンス管理サーバとの間でユーザ認証を行い、 正常に認証された場合に鍵 データをユーザコンピュータに送信して起動させる技術は、 単にプロダク ト I D を入力するだけの技術に比べて、 防御力は向上している。 しかし、 ソフトウェア はユーザコンピュータ上で既に起動可能状態に置かれており、 鍵データの取得待 ちとなつている。 従って、 鍵データの入力待ち状態となっているソフトウェアを 違法コピーし、 別の方法で鍵データを取得してしまえば、 防御機構をすり抜けて 使用することができる。
—方、 近年では、 コンピュータの処理能力増大及び通信ネットワークの高速化 等に伴って、 ユーザが希望する時に希望のソフトウユアを実行させる方法が提案 されている。 このようなソフトウエアのオンデマンド配信に適用可能な配信方法 としては、 ストリーミング方式とダウンロード方式とが知られている。
ス トリーミング方式では、 ユーザコンピュータは、 サーバからソフトウェアを 受信しながら同時に再生を行う。 そして、 再生を終了して不要になったデータは 直ちに破棄される。 従って、 ス トリーミング方式は、 ユーザの閲覧が終了した時 点でデータが残らないため、 特殊なソフトウェアを用いる等しない限り、 違法に ソフトウェアをコピーすることができない。 し力 し、 ストリーミング方式では、 ユーザが視聴を希望するたび毎に毎回ソフトウエアのデータを送信する必要があ るため、 広帯域で高速な通信ネットワークが整備されている場合でも、 多数のュ 一ザが同時にストリーミング配信を希望すると、 通信ネットワークのトラフィッ クが増大し、 サーバの負担も大きくなる。
これに対し、 ダウンロード方式の場合は、 ユーザの希望するソフトゥ アをサ ーバからユーザコンピュータにダウンロードさせて蓄積し、 ユーザコンピュータ 上で実行させるため、 データが通信ネットワークを流れる時間は少なく、 多数の ユーザからの配信要求に応えることができる。 しかし、 ダウンロード方式の場合 は、 ユーザコンピュータ内にソフトウェアが蓄積されたままになるため、 ストリ 一ミング方式よりも簡単に違法コピー等を行うことができる。
また、 例えば、 CD — ROM, DVD - ROM, ハードディスク、 半導体メモリ等 の各種記録媒体にゲームプログラム等を固定して流通に置くことも広く行われて いる。 この場合も、 上述の通り、 ゲームプログラム等が不正にコピーされたり、 プロテクト機構が不正に破られたりして、 不正に使用されている。
発 明 の 開 示
そこで、 本発明の 1つの目的は、 ソフトウェアの不正使用を抑制できるように したソフトウエア実行制御システム及びソフトウエアの実行制御プログラムを提 供することにある。
本発明の 1つの目的は、 ユーザコンピュータにソフトウェアを保存して実行さ せるダウンロード方式の場合に、 違法コピーや無断使用を防止できるようにした ソフトウエア実行制御システム及びソフトウエアの実行制御プログラムを提供す ることにある。
本発明の 1つの目的は、 ソフトウエアの実行中に不正な使用が行われるのを未 然に防止できるようにしたソフトウエア実行制御システム及びソフトウエアの実 行制御プログラムを提供することにある。
本発明の 1つの目的は、 負荷状態等を考慮しながら、 不正使用に対する監視効 率を動的に制御することができるソフトウエア実行制御システム及びソフトウェ ァの実行制御プログラムを提供することにある。
本発明の他の目的は、 後述する実施の形態の説明から明らかになるであろう。 本発明に係るソフトウユア実行制御システムは、 ユーザコンピュータにィンス トールされた第 1のソフトウエアを第 2のソフトウエアに更新させるものであつ て、 後述の配信部及び認証部を備え、 かつ、 特徴的な動作を行う実行制御プログ ラムを採用する。
配信部は、 エンコードされた第 2のソフトウェア及び該第 2のソフトウェアの 実行を制御するための実行制御プログラムをユーザコンピュータに通信ネットヮ ークを介して配信するものである。 認証部は、 ユーザコンピュータにィンストー ルされた実行制御プログラムからの要求によってユーザ認証を行い、 正当なユー ザであると確認した場合には、 第 2のソフトウェアをデコードして起動させるた めに必要な所定の情報を通信ネットワークを介して実行制御プログラムに送信す るものである。 そして、 第 2のソフトウェアは実行制御プロ'グラムから渡される 起動情報のみで起動可能に構成されており、 実行制御プログラムは、 (1 ) 認証部 から受信した所定の情報に基づいてエンコードされた第 2のソフトウェアをデコ ードして第 1のソフトウェアに置き換え、 (2 ) 所定の情報に基づいて起動情報を 生成することにより、 第 2のソフトウエアを起動させ、 (3 ) 第 2のソフトウェア の実行が終了された場合には、 第 2のソフトウエアを無力化させるように構成さ れている。
第 1のソフトウェアと第 2のソフトウェアとは、 同一種類のソフトウエアであ つて、 バージョンの異なるものである。 第 1のソフトウエアを旧版ソフトウエア、 第 2のソフトウェアを新版ソフトウェアと呼ぶこともできる。 第 1, 第 2のソフ トウユアとしては、 例えば、 ゲーム、 映画、 娯楽番組、 教養番組、 教育番組、 文 書作成、 図形作成、 画像編集等の各種アプリケーションソフトウェアを採用する ことができる。 第 1のソフトウェアと第 2のソフトウェアとは、 例えば、 使用言 語、 実行可能環境 (対応 O S等)、 機能制限の有無等で相違する。 ユーザコンビュ —タとしては、 例えば、 ワークステーション、 パーソナルコンピュータ、 携帯情 報端末、 携帯電話等を挙げることができる。
最初に、ユーザコンピュータにインストールされている第 1のソフトウエアは、 後述の認証処理等を行わずに、 ユーザが自由に使用することができる。 第 1のソ フトウエアは、 例えば、 ソフトウェアベンダーのサイ トからインターネット等の 通信ネットワークを介して、 あるいは、 店頭販売のパッケージソフトウェアによ つて、 ユーザコンピュータにインスト一ノレされている。
次に、 ユーザが、配信部から第 2のソフトウェアのダウンロードを希望すると、 第 2のソフトウエア及び第 2のソフトウ アの実行を制御する実行制御プロダラ ムが配信部からユーザコンピュータに送信される。 実行制御プログラムは、 ユー ザコンピュータ上で実行される。 実行制御プログラムは、 通信ネットワークを介 して認証部にユーザ認証を要求する。 ユーザ認証の方法としては、 例えば、 ユー ザ I D、 パスワード、 ユーザコンピュータに固有の情報 (例えば、 MAC ァドレ ス (Media Access Control address) 等) を予め登録されているデータと照合するこ とにより行うことができる。 なお、 これに限らず、 例えば、 指紋や声紋等のユー ザ固有の生体情報を用いて認証を行うようにしてもよい。
認証部が正当なユーザであると認証した場合は、 認証部からユーザコンビユー タの実行制御プログラムに向けて、 所定の情報が送信される。 この所定の情報に は、 ェンコ一ドされた状態でユーザコンピュータに送信された第 2のソフトウェ ァをデコードし、 デコードされた第 2のソフトウエアを起動させるために必要な データが含まれている。
ここで、 第 2のソフトウェアは、 実行制御プログラムから渡される起動情報の みで起動可能に構成されている。 即ち、 実行制御プログラムは、 第 2のソフトゥ エアを起動させる専用の 「ランチャーソフトウェア」 として作用する。
そして、 実行制御プログラムは、 以下の処理を行う。 (1 ) まず、 実行制御プロ グラムは、 認証部から受信した所定の情報に基づいて (所定の情報に含まれるデ コードキーを利用して)、 第 2のソフトウェアをデコードする。 デコードされた第 2のソフトウェアは、 第 1のソフトウェアに置き換えられる。 (2 ) 次に、 実行制 御プログラムは、 認証部から受信した所定の情報に基づいて (所定の情報に含ま れる起動引数を利用して)、 起動情報 (起動引数とデコードされた第 2のソフトゥ エアのレジストリパスからなる起動ステートメント) を生成し、 この起動情報に よって第 2のソフトウェアを起動させる。 これにより、 ユーザは、 ユーザコンビ ユータ上で第 2のソフトウェアを使用することができる。 (3 ) 実行制御プロダラ ムは、 第 2のソフトウェアの起動後も、 第 2のソフトウェアの実行状態を監視し ており、 第 2のソフトウェアの実行終了を検出すると、 第 2のソフトウェアを無 力化させる。 これにより、 ユーザは、 第 2のソフトウェアを使用することができ なくなる。
ユーザが再度の使用を希望する場合、 再び認証部による認証を受けて所定の情 報を取得すればよい。 あるいは、 再びユーザコンピュータを配信部にアクセスさ せて、 第 2のソフトウェアを再度ダウンロードしてもよい。 第 2のソフトウェア の全体を再度ダウンロードする必要はなく、 プログラム部分のみを再ダウンロー ドするように構成すれば、 通信時間を短縮し、 トラフィックを低減させることが できる。 なお、認証部からユーザコンピュータに向けて送信される所定の情報は、 暗号化されているのが好ましい。
第 2のソフトウェアの実行が終了すると、 実行制御プログラムは、 第 2のソフ トウエアを無力化させる。 無力化とは、 第 2のソフトウェアを起動したり、 実行 したりできなくすることを意味する。 無力化の方法としては、 種々のものを採用 することができる。 例えば、 デコードされた第 2のソフトウェアの全体を削除す ることにより無力化することができる。 また、 デコードされた第 2のソフトゥェ ァの一部を削除することによつても無力化することができる。 なお、 一部のみを 削除する場合は、 その削除した部分及び起動引数を認証部から受信することによ り、 第 2のソフトウェアを再起動させることができる。 あるいは、 第 2のソフト ウェアがプログラムと付随データ群とを含んでなる場合、 プログラムのみを削除 することでも第 2のソフトウェアを無力化させることができる。 なお、 デコード 前のエンコードデータを保存しておくことにより、 認証部から所定の情報を再度 受信するだけで第 2のソフトウェアを再び使用することができる。 付随データ群 とは、プログラムの実行に際して利用されるプログラム以外のデータ群を意味し、 例えば、 画像データ、 音声データ、 楽曲データ、 テキストデータ等を挙げること ができる。
好適な実施形態では、 実行制御プログラムは、 複数種類の第 2のソフトウェア に対応可能に構成されており、 認証部が実行制御プログラムに送信する所定の情 報には、 起動させる第 2のソフトウエアの格納先ァドレス情報と起動引数と第 2 のソフトウエアをデコードするためのデコードキー情報とが含まれる。
通信ネットワークを介したリアルタイムのオンライン認証と第 2のソフトウェ ァの起動及び終了を制御する実行制御プログラムは、 第 2のソフトウエアとは別 体に生成されている。 従って、 1種類の実行制御プログラムを用意するだけで、 多種類の第 2のソフトウエアに対応することができる。
好適な実施形態では、 実行制御プログラムは、 ユーザコンピュータに固有のマ シン情報と暗号化キー情報とを含む認証用情報を認証部に送信し、 認証部は、 少 なくともマシン情報に基づいてユーザ認証を行い、 正当なユーザであると確認し た場合には、 所定の情報を暗号化キー情報で暗号化して通信ネットワークを介し て実行制御プログラムに送信するものであり、 かつ、 認証部には、 マシン情報を 複数個登録可能に構成されている。
ユーザコンピュータに固有のマシン情報としては、 例えば、 MAC アドレス等 を挙げることができる。 これに加えて、 ユーザコンピュータの構成情報 (例えば、 搭載メモリ量、 C P Uスペック、 サゥンドチップやグラフィックァクセラレータ の製品名等) を採用してもよい。 認証部には、 複数個のマシン情報を登録させる ことができる。 これにより、 第 2のソフトウェアのライセンスを正当に購入した ユーザは、 例えば、 自宅のパーソナルコンピュータと職場のパーソナルコンビュ ータ等のように、 複数台のユーザコンピュータを用いて、 同一の第 2のソフトゥ エアを利用することができる。 好適な実施形態では、 認証部は、 正当なユーザであると確認した場合には、 該 ユーザが起動可能な第 2のソフトウェアの一覧データをユーザコンピュータに送 信し、 一覧データから選択された第 2のソフトウエアに関する所定の情報を通信 ネットワークを介して実行制御プログラムに送信する。
ユーザが複数種類の第 2のソフトウェアのライセンスを正式に購入済の場合も あるが、 認証部は、 ユーザ認証後に、 そのユーザが利用可能な第 2のソフトゥェ ァの名称等を列挙した一覧データをユーザコンピュータに送信する。 ユーザは、 起動可能な (利用可能な) 一覧メニューから起動を望む第 2のソフトウェアを選 択する。 これにより、 認証部は、 選択された第 2のソフトウェアをデコードし起 動するための所定の情報を生成し、 実行制御プログラムに送信する。
好適な実施形態では、 実行制御プログラムは、 ユ ザコンピュータに固有のマ シン情報を取得する機能と、 暗号化キー情報を生成する機能と、 認証部にユーザ 認証を要求し、 少なくともマシン情報及び暗号化キー情報を認証部に送信する機 能と、 認証部から受信した起動可能な第 2のソフトウエアの一覧データからいず れか 1つの第 2のソフトウエアをユーザに選択させ、 選択された第 2のソフトウ エアを認証部に通知する機能と、 選択された第 2のソフトウエアのユーザコンビ ユータにおける格納先ァドレス情報と起動引数とデコードキー情報とを少なくと も暗号化キー情報により暗号化してなる所定の情報を受信する機能と、 暗号化さ れた所定の情報を少なくとも暗号化キー情報により解読する機能と、 解読された デコードキー情報によりユーザコンピュータ内の第 2のソフトウエアをデコード させる機能と、 解読された起動引数及び格納先アドレス情報に基づいて、 起動情 報を生成する機能と、 生成された起動情報によってデコードされた第 2のソフト ウェアを起動させる機能と、起動された第 2のソフトウユアの実行状態を監視し、 該第 2のソフトウ アの実行が終了した場合は、 第 2のソフトウェアを無力化さ せる機能と、 をユーザコンピュータ上に実現させる。 また、 好適な実施形態では、 第 2のソフトウェアは、 プログラムと付随データ 群とを含んでなり、 プログラム又は付随データ群の少なくともいずれか一方を更 新させるようになっている。
ここで、ユーザコンピュータにインストールされている第 1のソフトウエアは、 第 2のソフトウエアに置換されるまでは、 認証部による認証を受けることなく実 行可能である。
また、 好適な実施形態では、 実行制御プログラムは、 第 2のソフトウェアとは 別に強制終了させることができないプログラムとして構成されている。
即ち、 例えば、 稼働中のタスクを管理するプログラム等を用いて、 実行制御プ ログラムのみを強制終了させることができないように構成されている。 実行制御 プログラムによる監視を停止させて、 第 2のソフトウエアのみをコピー等できな いようにするためである。 より具体的には、 ハードウェアを指定しないデバイス ドライバとして実行制御プログラムを生成すれば (ハードウェアを指定しないの で、 厳密にはデバイスドライバではないが)、 アプリケーションプログラムよりも O S側に近いプログラムあるいは O Sの一部を構成するプログラムとして構成さ れるため、 通常のアプリケーションプログラムのように強制的に終了させること が困難となる。 強制終了させにくいプログラムとしては、 ドライバプログラムの 他に B I O S (Basic Input/Output System) も知られている。 しかし、 BIOSは、 基 本的に、 ハードウユアとの間で直接データを送受信するだけの機能しか持たない ため、 暗号化されたデータを復号化したり、 第 2のソフトウェアの実行を監視し たりする等の高度な制御を行うことができない。 このように、 実行制御プロダラ ムを、 例えば、 デバイスドライバのように、 O Sとアプリケーションプログラム (第 2のソフトウエア) との間に位置する中間プログラムとして構成することに より、 高度な処理を行わせつつ、 悪用を防止することができる。
好適な実施形態では、 配信部と認証部とは、 それぞれ別体のコンピュータ上に 実現されている。
例えば、 第 2のソフトウェア及び実行制御プログラムを配信する配信部は、 各 ソフトウエア会社毎にそれぞれ設置し、 第 2のソフトウエアの起動時認証を行う 認証部は、 各国、 各地域、 各ソフトウユア会社の団体毎に設置することができる。 本発明は、 プログラムの発明としても把握することができる。
即ち、 ユーザコンピュータにィンストールされた第 1のソフトウェアを第 2の ソフトウエアに更新し、 この第 2のソフトウ アの実行を制御する実行制御プロ グラムであって、 外部の認証部と通信ネットワークを介して通信し、 ユーザ認証 を求める第 1の機能と、 認証部から受信した所定の情報に基づいて、 第 2のソフ トウエアを起動させるための起動情報を生成する第 2の機能と、 認証部から受信 した所定の情報に基づいて、第 2のソフトウェアをデコードさせる第 3の機能と、 ユーザコンピュータに既にインストールされている更新前のソフトウエアをデコ 一ドされた第 2のソフトウエアに置き換える第 4の機能と、 生成された起動情報 によって第 2のソフトウエアを起動させる第 5の機能と、 第 2のソフトウェアの 実行状態を監視し、 第 2のソフトウェアの実行が終了した場合は、 第 2のソフ ト ウェアを無力化させる第 6の機能と、 をユーザコンピュータ上に実現させるソフ トウエアの実行制御プログラム。
また、 本発明は、 ソフ トウェアの更新方法としても把握できる。
即ち、 ユーザコンピュータにインストールされている自由に使用可能な第 1の ソフトウエアを第 2のソフトウエアに更新可能である旨をユーザに通知させるス テツプと、 第 2のソフトウエアを配信する配信用コンピュータにユーザコンビュ —タを通信ネットワークを介して接続させ、 第 2のソフトウエアへの更新を要求 させるステップと、 配信用コンピュータからユーザコンピュータにェンコ一ドさ れた第 2のソフトウエア及び該第 2のソフトウエアの実行を制御するための実行 制御プログラムを通信ネットワークを介して送信させるステップと、 ユーザコン ピユータ上で起動した実行制御プログラムにより、 ユーザコンピュータと認証用 コンピュータとを通信ネットワークを介して接続させ、 認証用コンピュータにュ 一ザ認証を要求させるステップと、 ユーザ認証により正当なユーザであると認め られた場合に認証用コンピュータからユーザコンピュータに送信される所定の情 報に基づいて、 第 2のソフトウェアをデコードするステップと、 認証用コンビュ ータから受信した所定の情報に基づいて、 第 2のソフトウ アを起動させるため の起動情報を生成させるステップと、 生成された起動情報によって第 2のソフト ウェアを起動させるステップと、起動された第 2のソフトウエアの実行を監視し、 第 2のソフトウエアの実行が終了した場合は、 第 2のソフトウヱァを無力化させ るステップと、 を含んでなるソフトウェアの更新方法。
本発明の他の観点に従う管理用コンピュータは、 アプリケーシヨンソフトウェ ァ及び監視プログラムと共にユーザコンピュータにインス トールされる実行制御 プログラムと通信を行うことにより、 実行制御プログラムの動作を制御するもの である。 そして、 この管理用コンピュータは、 実行制御プログラムからの要求に 基づいてユーザ認証を行う認証部と、 認証部により正当なユーザであると確認さ れた場合は、 実行制御プログラムがアプリケーションソフトウエアを起動させる ために必要な第 1の情報を実行制御プログラムに送信する情報送信部と、 所定の 時期に実行制御プログラムとの間で行われる継続確認通信に基づいて、 アプリケ ーシヨンソフトゥ アの実行継続を許可するか否かを管理する継続実行管理部と、 を備えている。
本発明の一態様では、 継続実行管理部は、 継続確認通信によって実行制御プロ グラムから取得される第 1の識別情報とユーザ認証に予め関連付けられている第 2の識別情報とを比較し、 両方の識別情報が対応する場合は、 実行制御プロダラ ムに対してアプリケーションソフトウエアの実行継続を許可し、 各識別情報が対 応していない場合は、 実行制御プログラムに対してアプリケーションソフトウェ ァの実行継続を禁止させる。
本発明の一態様では、 継続実行管理部は、 第 2の識別情報に対応する第 1の識 別情報を予め実行制御プログラムに設定させる。
本発明の一態様では、 継続実行管理部は、 所定の時期を実行制御プログラムに 予め設定し、 この予め設定された所定の時期が到来した場合は、 実行制御プログ ラムから継続実行管理部に対して継続確認通信を行わせる。
本発明の一態様では、 継続実行管理部は、 所定の時期を可変に設定可能となつ ている。
本発明の一態様では、 継続実行管理部は、 少なくとも予測される将来の負荷状 態を考慮して、 所定の時期を可変に設定可能である。
本発明の一態様では、 監視プログラムは、 アプリケーションソフトウェア及び 実行制御プログラムの動作状態をそれぞれ監視し、 アプリケーションソフトウェ ァまたは実行制御プログラムのいずれか一方が動作を停止した場合は、 アプリケ ーションソフトウエア及び実行制御プログラムをそれぞれ停止させ、 自身も停止 させるものであり、 実行制御プログラムは、 アプリケーションソフトウェア及び 監視プログラムの動作状態をそれぞれ監視し、 アプリケーションソフトウェアま たは監視プログラムのいずれか一方が動作を停止した場合は、 アプリケーション ソフトウ ア及び監視プログラムをそれぞれ停止させ、 自身も停止させるもので ある。
本発明のさらに別の観点に従うコンピュータプログラムは、 コンピュータを、 アプリケーションソフトウエアの実行を制御する実行制御部と、 アプリケーショ ンソフトウ ア及び実行制御部の動作状態をそれぞれ監視する監視部として、 機 能させるものであって、 実行制御部は、 管理用コンピュータと通信することによ りユーザ認証を要求する機能と、 管理用コンピュータから受信した第 1の情報に 基づいて、 アプリケーションソフトウェアを起動させる機能と、 管理用コンビュ ータとの間で継続確認通信を行う機能と、 継続確認通信によってアプリケーショ ンソフトウエアの実行継続が禁止された場合は、 アプリケーションソフトウエア の動作を停止させる機能と、 を備え、 監視部は、 アプリケーションソフトゥヱァ 及び実行制御部の動作状態をそれぞれ監視する機能と、 アプリケーションソフト ウェアまたは実行制御部のいずれか一方が動作を停止した場合は、 アプリケーシ ョンソフトゥユア及び実行制御部をそれぞれ停止させ、 自身も停止させる機能と、 を備えている。
図面の簡単な説明 図 1は、 本発明の実施形態に係るソフトウエア実行制御システムの全体概要を 示す説明図である。
図 2は、データベース等の構造を示し、 ( a )はユーザ情報データベースを、(b ) はゲーム情報データベースを、 (c ) は H TM Lヘッダ内に喑号化された起動情報 を埋め込んで送信する様子を、 それぞれ示す。
図 3は、 プログラムの概略構造を示し、 (a ) はゲームプログラムを、 ( b ) は 実行制御プログラムの構造を、 それぞれ示す。
図 4は、ユーザコンピュータにインストールされた旧版のゲームプログラムを、 新版のゲームプログラムに更新し、 起動を制御する様子を示す説明図である。 図 5は、 ゲームプログラム及び実行制御プログラムをインストールするときの 処理を示すフローチヤ一トである。
図 6は、 実行制御プログラム及び認証用コンピュータとの間で行われるオンラ イン認証等を示すフローチャートである。
図 7は、 本発明の他の実施形態に係るソフトウ ア実行制御システムの全体概要を示す 説明図である。
図 8は、データベース等の構造を示し、 (a )はユーザ情報データベースを、 (b ) はゲーム情報データベースを、 (c ) は監視状況データベースを、 それぞれ示す。 図 9は、 ソフトウェア実行制御システムの全体動作の概要を示すフローチヤ一 トである。
図 1 0は、 周期的に行われる継続確認通信の処理概要を示すフローチャートで ある。
図 1 1は、 次回の継続確認通信を行う時期を決定する処理の概要を示すフロー チャートである。
図 1 2は、 ゲームマネージャ及び監視プログラムがそれぞれ相互に監視する処 理の概要を示すフローチャートである。
図 1 3は、 本発明のさらに別の実施形態に係るソフトウエア実行制御システム の全体概要を示す説明図である。
発明を実施するための最良の形態 以下、 本発明の実施形態を図 1〜図 1 3を参照しつつ詳細に説明する。
まず、 図 1〜図 6に基づいて第 1実施例を説明する。 図 1は、 ソフトウェア実 行制御システムの全体概要を示す説明図である。 本実施例では、 ゲームプロダラ ムをオンラインで更新させるシステムを例に挙げて説明する。
配信用コンピュータ 1 0は、 新版のゲームプログラム 4 0及び実行制御プログ ラム 5 0を、 インターネット等の通信ネットワークを介して、 各ユーザのコンビ ユータ 3 0に配信するためのものである。 配信用コンピュータ 1 0は、 各ソフト ウェア会社 (ベンダー) 毎にそれぞれ設置されるサーバとして構成することがで きる。
まず、 配信用コンピュータ 1 0は、 ゲームプログラムデータベース 1 2に登録 された新版プログラムについて、 事前に、 認証用コンピュータ 2 0に登録を行う ( S 1 )。 例えば、 新版ゲームプログラムの名称、種類、 販売価格、 データサイズ、 バージョン情報等のデータが、 配信用コンピュータ 1 0から認証用コンピュータ 2 0に登録される。 もっとも、 配信用コンピュータ 1 0と認証用コンピュータと がー体的に構成されている場合は、 このような外部ネットワークを介した通知は 必ずしも必要ない。
配信用コンピュータ 1 0の配信制御部 1 1は、 ユーザコンピュータ 3 0からプ ログラムの更新要求を受けると、 ユーザの希望するゲームプログラム 4 0をゲー ムプログラムデータベース 1 2から読み出して、 ユーザコンピュータ 3 0に配信 するようになつている (S 2 )。 ここで、 新版のゲームプログラム 4 0は、 単独で ユーザコンピュータ 3 0に配信されるのではなく、 ゲームプログラム 4 0の起動 や削除等を管理する実行制御プログラム 5 0と共にユーザコンピュータ 3 0に配 信される点に留意すべきである。
認証用コンピュータ 2 0は、 例えば、 複数のソフトウ ア会社が所属する団体 や機関毎にそれぞれ設置されるサーバとして構成することができる。 また、 これ に限らず、 各ソフトウエア会社毎に認証用コンピュータ 2 0をそれぞれ設置して もよい。 認証用コンピュータ.2 0は、 認証部 2 1と、 課金処理部 2 2と、 起動情 報送信部 2 3と、 ユーザ情報データベース 2 4と、 ゲーム情報データベース 2 5 とを備えている。
認証部 2 1は、 ユーザコンピュータ 3 0の実行制御プログラム 5 0から送信さ れる所定の認証用データに基づいて、 ユーザ認証を行うものである。 詳細は後述 するが、 認証用データには、 例えば、 ユーザ識別情報 (ユーザ I D )、 パスワード ( P W)、 MACアドレス (Media Access Control address) が含まれる。 課金処理部 2 2は、 新版ゲームプログラム 4 0の使用許諾に際して、 ユーザに 課金するものである。 課金方法には、 種々のものを採用できる。 例えば、 ゲーム プログラムの代金を一括でユーザに支払わせたり (売り切り)、 又は、 ユーザがゲ —ムプログラムを使用する毎に課金してもよい。 あるいは、 所定期間や所定回数 毎に課金するようにしてもよい。 なお、 支払方法も、 例えば、 クレジット決済、 電子マネー決済等のように種々のものを採用できる。
起動情報送信部 2 3は、 ユーザコンピュータ 3 0の記憶装置 (例えば、 ハード ディスク等) に格納された新版のゲームプログラム 4 0をデコードし、 起動させ るために必要な起動情報をユーザコンピュータ 3 0の実行制御プログラム 5 0に 向けて送信するものである。
ユーザが、 実行制御プログラム 5 0を介して認証用コンピュータ 2 0の認証部 2 1と認証を行い、 ゲームプログラム 4 0の購入代金 (使用権の代金) を支払い 済みの正当なユーザであると認証された場合は (S 3 )、 起動情報送信部 2 3から 起動情報が実行制御プログラム 5 0に送信される (S 4 )。 ゲームプログラム 4 0 の代金を未払いのユーザが認証用コンピュータ 2 0にアクセスした場合は、 課金 処理部 2 2を介して課金処理が行われた後、 起動情報が実行制御プログラム 5 0 に向けて送信される。
さて、 ユーザコンピュータ 3 0の構成に目を転じると、 ユーザコンピュータ 3 0は、 例えば、 パーソナルコンピュータ、 ワークステーション、 携帯情報端末、 携帯電話等のコンピュータとして構成されている。 ユーザコンピュータ 3 0は、 演算処理装置 (C P U)、 主記憶、 補助記憶、 外部入出力回路等のコンピュータ資 源を必要に応じて備えており、 これらの各資源は適宜ゲームプログラム 4 0及び 実行制御プログラム 5 0によつて使用される。
配信用コンピュータ 1 0からユーザコンピュータ 3 0に送信された新版のゲー ムプログラム 4 0及び実行制御プログラム 5 0は、 後述のように、 付属するイン ス トーラによってユーザコンピュータ 3 0にインス トールされる。 そして、 実行 制御プログラム 5 0が認証用コンピュータ 2 0との間でユーザ認証を行い、 起動 情報を入手すると、 ゲームプログラム 4 0が起動される (S 5 )。 なお、 新版のゲ
5 ームプログラム 4 0をインストールするより前に、 ユーザコンピュータ 3 0に既 にインストールされていた旧版のゲームプログラムは、 新版のプログラムに置き 換えられるため、 以後使用することができなくなる。
ユーザは、 ユーザコンピュータ 3 0を介して新版のゲームプログラム 4 0を禾 IJ 用することができる。 そして、 ユーザがゲームを終えて、 ゲームプログラム 4 0
10 を終了させると、 実行制御プログラム 5 0は、 ゲームプログラム 4 0を削除する 等して無力化する(S 6 )。ユーザがゲームプログラム 4 0を再び利用する場合は、 認証用コンピュータ 2 0に再度アクセスしてユーザ認証を行い、 起動情報を取得 する。
ここで、 ユーザコンピュータ 3 0の記憶装置内には、 新版のゲームプログラム 15 4 0がデコード前の暗号化ファイルの状態で保存されているため、 ゲームプログ ラム 4 0を再使用する場合は、 この暗号化ファイルをデコードするための情報(デ コードキー) と起動させるための情報とを認証用コンピュータ 2 0から取得する だけでよい。 即ち、 本実施例では、 ユーザコンピュータ 3 0のローカルディスク に新版ゲームプログラム 4 0を暗号化ファイルの状態で保存しておき、 ゲームを 20行うたびに、 認証用コンピュータ 2 0との間でオンライン認証を行って、 暗号化 されたゲームプログラム 4 0をデコードして起動させる。 そして、 ゲーム終了後 には、 デコードされたゲームプログラム 4 0を削除して無力化させる。
次に、 図 2は、 認証用コンピュータ 2 0が利用するユーザ情報データベース 2 4及ぴゲーム情報データベース 2 5の構造例を示す説明図である。 なお、 図 2に 25示す各データベース 2 4 , 2 5の内容は一例であって、 図示する項目の全てを備 える必要はない。 .
図 2 ( a ) に示すユーザ情報データベース 2 4は、 例えば、 ユーザ I Dと、 Λ スワードと、 複数の MAC アドレス l〜nと、 購入済のゲームプログラムを特定 するゲーム I D l〜nと、 その他の情報とをそれぞれ対応付けることにより構成 されている。 ここで、 複数の MAC アドレス l ~ nを登録可能としたのは、 1人 のユーザがそれぞれ異なる複数のユーザコンピュータ 3 0を用いて、 ゲームプロ グラム 4 0を使用する場合も考慮したためである。 従って、 ユーザは、 例えば、 職場のコンピュータ、 自宅のコンピュータ等の異なる情報処理端末を介して、 ゲ ームプログラム 4 0を利用できるようになつている。 その他の情報としては、 例 えば、 ユーザの氏名、 年齢、 住所、 ゲームのプレイ回数、 獲得したポイント数 (例 えば、 ゲーム購入代金やプレイ回数等に応じてポイントを与えるような場合) 等 を挙げることができる。
図 2 ( b ) に示すゲーム情報データベース 2 5は、 例えば、 ゲーム I Dと、 ゲ ーム名と、 ゲーム情報 (ゲームプログラムのレジストリパスを示す情報) と、 暗 号化されたゲームプログラム 4 0を復号するためのデコードキーと、 デコードさ れたゲームプログラム 4 0を起動させるための起動引数と、 その他の情報とをそ れぞれ対応付けることにより構成されている。 その他の情報としては、 例えば、 ゲームの種類 (ロールプレイイングゲーム、 格闘ゲーム、 成人指定の有無等)、 デ ータサイズ、 著作権管理情報等を挙げることができる。
図 2 ( c ) に示すように、 ゲーム情報、 デコードキー及び起動引数は、 暗号化 されて H T M L (Hyper Text Markup Language) データに埋め込まれ、 ユーザコン ピュ一タ 3 0に送信されるようになっている。 即ち、 ユーザコンピュータ 3 0側 で生成された暗号化キー及び MAC アドレスによって、 起動情報 (ゲーム情報、 デコードキー、 起動引数) は暗号化され、 例えば、 H T M Lのヘッダ部に埋め込 まれる。 従って、 認証用サーバ 2 0は、 ユーザコンピュータ 3 0からの HTTP (Hyper Text Transport Protocol) リクエストに応じて、 暗号化された起動情報を生 成し、 この暗号化された起動情報を含んだ HTTP レスポンスをユーザコンビユー タ 3 0に返すようになっている。
次に、 図 3は、 ゲームプログラム 4 0及ぴ実行制御プログラム 5 0の概略構成
5 を示す説明図である。
図 3 ( a ) に示すように、 ゲームプログラム 4 0は、 プログラム本体 4 1と、 付随データ群 4 2とを含んでいる。 付随データ群 4 2としては、 例えば、 動画像 データ、 静止画像データ、 グラフィックスデータ、 楽曲データ、 音声データ、 テ キストデータ等を挙げることができる。
10 新版のゲームプログラム 4 0は、 旧版のプログラムに比較して、 プログラム 4 1又は付随データ群 4 2のいずれか又は双方が新しく作成されている。 プロダラ ム本体 4 1及び付随データ群 4 2の両方が旧版よりも新しい場合は、 プログラム 本体 4 1及び付随データ群 4 2の両方が新版に置き換えられる。 付随データ群 4 2のみが新しい場合及びプログラム本体 4 1のみが新しい場合は、 付随データ群
15 4 2又はプログラム本体 4 1のいずれかが新版に置き換えられる。
図 3 ( b ) に示すように、 実行制御プログラム 5 0は、 ユーザコンピュータ 3 0上で、 暗号用情報生成部 5 1と、 認証要求部 5 2と、 ゲーム選択部 5 3と、 暗 号解読部 5 4と、 起動部 5 5と、 デコード部 5 6と、 実行監視部 5 7という各機 能を実現させる。 一例として、 実行制御プログラム 5 0は、 デバイスを特定しな
20いデバイスドライバとして構成されている。 このため、 実行制御プログラム 5 0 は、 例えば、 ゲームプログラム等のアプリケーションプログラムとは異なって、 タスク管理プログラム等から終了させることができないように構成することがで さる。
暗号情報生成部 5 1は、 例えば、 ユーザコンピュータ 3 0の内蔵タイマから取 25得した時刻情報に基づいて暗号化キーを生成するほか、 ユーザコンピュータ 3 0 の MACァドレス等を取得する。
認証要求部 5 2は、 ユーザコンピュータ 3 0に実装されているネットワークァ クセスの機能を内部的に呼び出して、 認証用コンピュータ 2 0にアクセスし、 暗 号化キー、 MAC アドレス、 ユーザ I D及びパスワードを認証用コンピュータ 2 0に送信してユーザ認証を求める。
ゲーム選択部 5 3は、 ユーザ認証が終了して認証用コンピュータ 2 0からユー ザコンピュータ 3 0に送信された一覧メニューから、 ユーザが希望するゲームを 選択させる。 この一覧メニューは、 ユーザが利用可能な (起動可能な) ゲームプ ログラムを一覧形式で表示させるものであり、 ユーザ情報データベース 2 4の購 入済ゲーム I Dに基づいて生成することができる。
暗号化情報生成部 5 1によって生成された暗号化キー及び MAC ァドレスによ り、 ユーザの選択したゲームプログラム 4 0を起動させるための起動情報は、 喑 号化されてユーザコンピュータ 3 0に送信される。 暗号解読部 5 4は、 暗号化キ 一及び MACアドレスに基づいて、 暗号化された起動情報を解読する。
デコード部 5 6は、 解読されたデコードキーによって、 暗号化されたゲームプ ログラム 4 0をデコードさせる。 なお、 暗号化ファイルはそのまま保存される。 起動部 5 5は、 解読されたゲーム情報及び起動引数に基づいて、 起動ステートメ ントを生成し、 デコードされたゲームプログラム 4 0を起動させる。 起動ステー トメントは、 ゲームプログラムのレジストリパスと起動引数から構成される。 ゲームプログラム 4 0が起動されると、 実行監視部 5 7は、 ゲームプログラム 4 0の実行状態を監視し、 ゲームプログラム 4 0が終了すると、 デコードされた プログラム本体 4 1を削除する。 なお、 デコードした付随データ群も一緒に削除 してもよレ、。 また、 削除する場合は、 プログラム又はデータの全部を削除しても よいし、 一部を削除してもよい。
次に、 図 4は、 本システムによってゲームプログラムを最新版に更新する様子 を模式的に示す説明図である。
まず、 図 4 ( a ) に示すように、 ユーザコンピュータ 3 0には、 旧版のゲーム プログラムが既にインス トールされている。 なお、 図中では、 バージョンアップ 前の旧版のゲームプログラムを 「初期プログラム」 と、 バージョンアップする新 5版のゲームプログラムを 「更新版プログラム」 とそれぞれ表示する。
ユーザは、 例えば、 CD-ROM、 DVD-ROM, メモリ等の記録媒体に固定された 旧版のゲームプログラム 4 O Aをユーザコンピュータ 3 0にインストーノレして禾 ij 用する (S l l )。 あるいは、 インターネット等の通信ネットワークを介して旧版 のゲームプログラム 4 O Aを取得することもできる。 この旧版のゲームプロダラ 10 ム 4 O Aは、 認証用コンピュータ 2 0とのオンライン認証を受けることなく使用 可能である。 但し、 本更新システムによっていつたん更新された後は、 更新版プ ログラムが旧式になった場合でも、 オンライン認証を受けなければ利用すること はできない。
旧版のゲームプログラム 4 O Aを利用するユーザには、 新版ゲームプログラム 15 4 0へアップデート可能である旨が通知される。 この通知は、 種々の方法で行う ことができる。
第 1の方法は、 例えば、 旧版のゲームプログラム 4 0 Aが、 積極的又は消極的 に、 ユーザに新版のゲームプログラム 4 0へ更新可能であることを通知し、 併せ て、 配信用コンピュータ 1 0の U R L (Uniform Resource Locator) を表示する方
20法である。 積極的な通知としては、 例えば、 ゲーム開始時や終了時等に更新可能 である旨及ぴ配信用コンピュータ 1 0の U R Lを画面に表示させることが考えら れる。 消極的な通知としては、 例えば、 旧版のゲームプログラム 4 O Aのヘルプ メニューの中に、 更新可能である旨及び配信用コンピュータ 1 0の U R Lを表示 させることが考えられる。 いずれの場合も、 U R Lをクリックするだけで、 ゥェ
25 ブブラウザ 3 1を起動させ、 自動的にユーザコンピュータ 3 0を配信用コンビュ ータ 1 0にアクセスさせるように構成すると、 ユーザの使い勝手が良い。
第 2の方法は、 電子的な媒体を介して積極的又は消極的に、 新版のゲームプロ グラム 4 0へ更新可能である旨及ぴ配信用コンピュータ 1 0の U R Lを、 ユーザ に通知する方法である。 積極的な通知としては、 例えば、 ユーザ宛の電子メール を挙げることができる。 消極的な通知としては、 例えば、 ウェブ上のサイ ト (例 えば、 配信用コンピュータ 1 0等) で、 新版のゲームプログラム 4 0を広告宣伝 することが考えられる。
第 3の方法としては、 その他、 ゲーム雑誌やコンピュータ雑誌等の紙媒体上で の広告宣伝、 ネットワーク上に形成されたゲームプログラム同好会のようなコミ ュニティへの広告宣伝等を用いることができる。
以上のようにして、 ユーザに対し、 新版ゲームプログラム 4 0の存在を通知さ せることができる。 図 4 ( b ) に示すように、 更新を希望するユーザは、 ウェブ ブラゥザ 3 1を介して配信用コンピュータ 1 0にアクセスし、 新版ゲームプログ ラム 4 0への更新を要求する (S 1 2 )。
図 4 ( c ) に示すように、 配信用コンピュータ 1 0は、 ユーザの希望する新版 のゲームプログラム 4 0 (付随データ群も含まれる) を、 通信ネットワークを介 して、 ユーザコンピュータ 3 0に向けて送信する (S 1 3 )。 また、 新版のゲーム プログラム 4 0と一緒に実行制御プログラム 5 0もセットにしてユーザコンビュ ータ 3 0に送信される (S 1 3 )。 新版のゲームプログラム 4 0及び実行制御プロ グラム 5 0は、 ユーザコンピュータ 3 0の記憶装置に保存される。
新版のゲームプログラム 4 0及び実行制御プログラム 5 0には、 専用のインス トーラが付属している。 インストーラにより、 新版のゲームプログラム 4 0及び 実行制御プログラム 5 0がユーザコンピュータ 3 0にインストールされる。 実行 制御プログラムが起動すると、 図 4 ( d ) に示すように、 実行制御プログラム 5 0は、 ネットワークアクセスの機能を呼び出して、 認証用コンピュータ 2 0にァ クセスし、 認証用コンピュータ 2 0との間で、 ユーザ認証及び購入処理 (課金処 理) を行う (S 1 4 )。 ユーザ認証や課金処理を終えた後で、 認証用コンピュータ
2 0は、 ユーザコンピュータ 3 0の実行制御プログラム 5 0に向けて、 暗号化さ れた起動情報を送信する (S 1 5 )。
実行制御プログラム 5 0は、 暗号化された起動情報を解読して、 デコードキー や起動引数等を取り出す。 そして、 実行制御プログラム 5 0は、 ゲームプロダラ ム 4 0をデコードして起動させる。 これにより、 ユーザは、 新版のゲームプログ ラム 4 0を利用することができる。 ゲームプログラム 4 0の実行状態は、 実行制 御プログラム 5 0により監視される。
図 4 ( e ) に示すように、 ユーザがゲームプレイを終了し、 ゲームプログラム
4 0が終了すると、 実行制御プログラム 5 0は、 新版のゲームプログラム 4 0を 削除することにより無力化させる (S 1 6 )。
一例として、 デコードされて実行可能な状態 (起動ステートメントの入力によ り起動可能な状態) に置かれている新版のゲームプログラム 4 0のみを削除し、 配信用コンピュータ 1 0から取得したデコード前の暗号化ファイルは、 ユーザコ ンピュータ 3 0の記憶装置内に保存しておくことができる。
これにより、 ユーザがゲームプログラム 4 0の再プレイを希望する場合は、 認 証用コンピュータ 2 0にアクセスしてオンラインによるユーザ認証を受け、 認証 用コンピュータ 2 0から起動情報を改めて取得するだけで足りる (S 1 7 )。 暗号 化されたゲームプログラム 4 0を配信用コンピュータ 1 0から改めて取得する必 要がないため、 ダウンロードの手間がかからず、 また通信ネットワークへの負担 を軽減することができる。
このように、 ゲームプログラム 4 0を再度プレイする場合は、 ゲームプロダラ ム 4 0の起動情報のみを再取得する方法が便利である力 本発明はこれに限らず、 デコード前の暗号化されたプログラムを配信用コンピュータ 1 0から再度取得す るようにしてもよい。 また、 デコードされたプログラム本体 4 1のみを削除し、 付随データ群 4 2をそのまま残してもよい。
次に、 図 5及び図 6に基づいて、 本システムの処理の詳細を説明する。 図に示 すフローチャートは、 処理の大まかな流れを示すものであり、 実際のプログラム とは相違する。
図 5は、 ユーザコンピュータ 3 0の記憶装置に格納された新版のゲームプログ ラム 4 0及び実行制御プログラム 5 0をインストール等する処理を示す。
ゲームプログラム 4 0及び実行制御プログラム 5 0は暗号化ファイルの状態で ユーザコンピュータ 3 0に保存される。 例えば、 ユーザが、 暗号化ファイルをマ ウスポインタで選択してダブルクリックする等のように、 起動イベントを発生さ せると、 インス トーラが起動する (S 2 1 )。
インストーラは、 ユーザコンピュータ 3 0に更新すべき旧版のゲームプロダラ ム 4 O Aがインストール済であるか否かを判定する (S 2 2 )。 旧版のゲームプロ グラム 4 O Aがインストールされていない場合は、 例えば、 「旧版のゲームがイン ストールされていません。 処理を終了します。」 等のような警告メッセージを画面 に表示させて終了する (S 2 3 )。
旧版のゲームプログラム 4 O Aがユーザコンピュータ 3 0にィンストールされ ている場合は (S22:YES)、 新版のゲームプログラム 4 0及び実行制御プログラム 5 0を初めてインストールするのか否かを判定する (S 2 4 )。 新版ゲームプログ ラム 4 0及び実行制御プログラム 5 0が過去にインストールされている場合は、 既にユーザ登録及び課金処理が完了しているものとみなすことができる。従って、
S 2 4は、 結果的に、 既にユーザ登録及ぴ課金処理が完了しているか否かを判定 することになる。
初めてのインストールである場合は、 ウェブブラウザ 3 1の機能を呼び出して 認証用コンピュータ 2 0に接続し、 ユーザに、 ユーザ登録及び課金処理を行わせ る (S 25, S 26)。
次に、 インス トーラは、 実行制御プログラム 50のレジストリを判定し、 実行 制御プログラム 50が未だィンストールされていない場合は、 実行制御プロダラ ム 50をインス トールする (S 27)。 インス トーラは、 旧版のゲームプログラム 5 4 OAを新版のゲームプログラム 40に置き換えて更新すべく、 旧版のプロダラ ム本体 41及び付随データ群 42を新版のプログラム本体 41及び付随データ群 42に書き換える (S 28, S 29)。 そして、 インストーラは、 実行制御プログ ラム 50を起動させて処理を終了する (S 30)。
図 6は、 実行制御プログラム 50による実行制御処理及び認証用コンピュータ
10 20の処理等を示すフローチャートである。
起動された実行制御プログラム 50は、 ユーザコンピュータ 30に固有のマシ ン情報、 具体的には、 MAC ァ ]^レスを取得する (S 41)。 また、 ユーザコンビ ユータ 30の内蔵タイマから現在時刻の情報を取得し、 この時刻情報に基づいて 暗号化キーを生成する (S42)。
15 次に、 実行制御プログラム 50は、 ウェブブラウザ 31の機能を呼び出し (S 43)、 通信ネットワークを介して認証用コンピュータ 10に接続し、 認証用コン ピュータ 20に口グイン認証を要求する ( S 44 )。 実行制御プログラム 50は、 ユーザ I D、 パスワード、 MAC アドレス及び暗号化キーを認証用コンピュータ 20に送信する (S 44)。 認証用コンピュータ 20は、 ユーザ情報データベース
20 24を参照し、 正当なユーザであるか否かを判断する (S 61)。
正当なユーザであると認められた場合、 認証用コンピュータ 20は、 ユーザが 利用可能なゲームプログラムの一覧データを作成し、 ユーザコンピュータ 30に 送信する (S 62)。 ユーザが利用することができるゲームプログラムとしては、 典型的には、 そのユーザが購入しているゲームプログラムを挙げることができる
251 これに限らず、 例えば、 ソフトウェア会社が無償で提供しているゲームプロ グラム等を含めることもできる。
実行制御プログラム 50は、 利用可能なゲームプログラムの一覧データを認証 用コンピュータ 20から受信すると、 ユーザコンピュータ 30のモニタディスプ レイにゲームの一覧を表示させる (S45)。 この一覧メニューに基づいて、 ユー ザは、 プレイを希望するゲームを選択する (S 46)。
認証用コンピュータ 20は、 ゲーム情報データベース 25を参照して、 ユーザ が選択したゲームプログラムを起動させるために必要な起動情報を生成し、 この 起動情報を、 S 6 1で取得した暗号化キー及び MAC 了ドレス等によって暗号化 する (S 63)。 認証用コンピュータ 20は、 暗号化された起動情報をユーザコン ピュータ 30の実行制御プログラム 50に送信する (S 64)。
実行制御プログラム 50は、 暗号化された起動情報を認証用コンピュータ 20 から受信すると (S 47)、 この暗号化された起動情報を暗号化キー及び MACァ ドレスによって解読する (S 48)。
次に、 実行制御プログラム 50は、 新版のゲームプログラム 40のレジストリ 情報を取得し (S 49)、 レジストリパスと起動引数とによって起動ステートメン トを生成する (S 50)。
また、 実行制御プログラム 50は、 起動情報から取り出したデコードキーによ つて、 暗号化された新版のゲームプログラム 40をデコードし、 所定のドライブ の所定のディレク トリに展開させる (S 51)。 これにより、 ゲームプログラム 4 0はデコードされて起動待ちの状態になる。
そして、 実行制御プログラム 50は、 S 50で生成した起動ステートメントに よって、 デコードされた新版のゲームプログラム 40を起動させる (S 5 2, S 70)。 これにより、 ユーザは、 新版のゲームプログラム 40で遊ぶことができる (S 7 1)。
実行制御プログラム 50は、 ゲームプログラム 40の実行状態を監視しており ( S 5 3 )、 ユーザがゲームを終えてゲームプログラム 4 0を終了させた場合には ( S 7 2 )、 デコードされたプログラム本体 4 1を削除等することにより、 ゲーム プログラム 4 0を無力化し、 処理を終了する (S 5 4 )。
なお、 ユーザが再びゲームプログラム 4 0で遊びたい場合は、 再度認証用コン ピュータ 2 0にアクセスしてオンラインによる認証を受け、 起動情報を取得すれ ばよい。
このように構成される本実施例によれば、 ユーザコンピュータ 3 0にプロダラ ムを格納させるダウン口一ド式のソフトゥェァ配信の場合でも、 使用権を購入し ていな!/、違法な使用を阻止することができる。
即ち、 本実施例において、 ゲームプログラム 4 0を起動させるには、 使用する 度毎に、 実行制御プログラム 5 0を介してオンラインによる認証を行い、 認証用 コンピュータ 2 0から通信ネットワークを介して起動情報を取得する必要がある ため、 仮に、 ゲームプログラム 4 0のみを単体で違法にコピーしても、 違法にコ ピーされたゲームプログラム 4 0を単体で起動させることはできない。
また、 実行制御プログラム 5 0はデバイスドライバのように O S側に近いプロ グラムとして構成されており、 アプリケーションプログラムのように通常の方法 では終了させることができない。 従って、 実行制御プログラム 5 0とゲームプロ グラム 4 0とを切り離して、 ゲームプログラム 4 0のみを違法にコピーしたり持 ち出したりすることができないようになっている。
本発明は、 種々のビジネスに活用することができるであろう。 例えば、 過去に 違法にコピーされて流通している旧版ゲームプログラムを、 新版ゲームプログラ ムに更新させることにより、 違法使用のユーザに正式に使用権を取得させて、 正 当なユーザへ変えることができる。 違法なユーザを新版のゲームプログラムに乗 り換えさせるためには、 そのユーザの母国語に対応した付随データ群 (ゲームシ ナリオや楽曲等) を用意したり、 追加のシナリオ等を新しく用意したり して、 ュ 一ザの更新意欲を刺激すればよレ、。 次に、 図 7〜図 1 2を参照し、 他の実施例を説明する。 本実施例では、 ゲーム プログラムを記録媒体に固定して流通させる場合を例に挙げて説明する。 本実施 例では、 本発明の範囲を減縮しない限りにおいて、 前記実施例で述べた説明を適 宜援用することができる。 後述のように本実施例では、 上記実施例と同様に、 実 行制御プログラム (本実施例のゲームマネージャ ) によってゲームプログラムの 実行を制御している。 これに加えて、 本実施例では、 認証用コンピュータ (本実 施例の D RMコンピュータ) と実行制御プログラムとの間のオンライン認証を、 定期的に実行可能としている。
図 7は、 本実施例によるソフトウエア実行制御システムの全体概要を示す説明 図である。 本システムは、 それぞれ後述するように、 例えば、 サプライヤコンピ ユータ 1 0 0と、 D RMコンピュータ 2 0 0と、 ユーザコンピュータ 3 0 0とを 含めて構成することができる。
サプライャコンピュータ 1 0 0は、 例えば、 プログラムプロダク トを生産する ソフトウェアベンダーにより使用される。 サプライャコンピュータ 1 0 0は、 ゲ ームプログラム 4 0 0を加工して D RM化プログラム 7 0 0に変換する D RM部 1 1 0を備えている。 ここで、 D RMとは、 Digital Rights Managementの略称であ り、 ゲームプログラム等のディジタル化されたコンテンツの権利を管理すること を意味する。 本明細書において、 D RM化とは、 ノンプロテク トのゲームプログ ラムに後述する独自のプロテク トを設定することにより、 不正使用等に対する耐 性を向上させることを意味する。
D RM部 1 1 0は、 ゲームプログラム 4 0 0に、 ゲームマネージャ 5 0 0及び 監視プログラム 6 0 0を加えることにより、 ゲームプログラム 4 0 0に独自のプ ロテク トを設定する。 プロテク トされたゲームプログラム 4 0 0は、 D R M化プ ログラム 7 0 0として、 記録媒体 R Mに記録され巿場に流通する。 ゲームマネー ジャ 5 0 0及び監視プログラム 6 0 0については、 さらに後述する。
記録媒体 RMとしては、 例えば、 CD - ROM, DVD一 ROM、 光ディスク、 ハ ードディスク、 フレキシブルディスク、 半導体メモリ、 磁気テープ等のような種 々の媒体を適宜用いることができる。 D R M化プログラム 7 0 0を圧縮して記録 媒体 RMに記録してもよいし、 D R M化プログラム 7 0 0を圧縮することなく記 録媒体 RMに記録してもよい。 また、 記録媒体 RMには、 D RM化プログラム 7 0 0をユーザコンピュータ 3 0 0にィンストーゾレさせるためのィンストーラを記 憶させることもできる。
D RMコンピュータ 2 0 0は、 「管理コンピュータ」 の一例である。 D RM化コ ンピュータ 2 0 0は、 例えば 「認証管理サーバ」 等と呼ぶこともできる。 D RM 化コンピュータ 2 0 0は、 各ソフトウエアベンダー毎にそれぞれ設置してもよい し、 複数のソフトウエアベンダーに対して 1つだけ設置してもよい。
D RMコンピュータ 2 0 0は、 ユーザコンピュータ 3 0 0上で稼働するゲーム マネージャ 5 0 0との間で通信を行うことにより、 ユーザ認証、 起動情報の送信、 及び継続実行の管理を行うものである。 D RMコンピュータ 2 0 0は、 認証部 2 1 0と、 起動情報送信部 2 2 0と、 継続実行管理部 2 3 0とを備えている。
また、 D RMコンピュータ 2 0 0は、 ユーザ情報データベース 2 4 0と、 ゲー ム情報データベース 2 5 0と、 監視状況データベース 2 6 0とを利用することが できる。 なお、 D RMコンピュータ 2 0 0は、 物理的に単一のコンピュータから 構成されている必要はなく、 複数のコンピュータの協働動作によつて実現されて もよい。
認証部 2 1 0は、 前記実施例の認証部 2 1と同様に、 例えば、 ユーザ I D、 パ スワード (図中 「P W」) ゲームマネージャ 5 0 0から送信される認証用データに 基づいて、 ユーザ認証を行うものである。 起動情報送信部 2 2 0は、 前記実施例 の起動情報送信部 2 3と同様に、 例えば、 ゲームマネージャ 5 0 0がゲームプロ グラム 4 0 0をデコードして起動可能状態に置くために必要な情報を、 ゲームマ ネージャ 5 0 0に送信するものである。
継続実行管理部 2 3 0は、 ゲームマネージャ 5 0 0との間で所定時間毎に通信 を行うことにより、 ゲームプログラム 4 0 0の実行継続の可否を管理するもので ある。 詳細はさらに後述するが、 継続実行管理部 2 3 0は、 ゲームマネージャ 5 0 0から送信されたセッション I Dと予め保持されているセッション I Dとを比 較し、 両者が一致する場合は、 ゲームプログラム 4 0 0の実行継続を許可する。 逆に、 継続実行管理部 2 3 0は、 両セッション I Dがー致しない場合、 ゲームプ ログラム 4 0 0の強制終了をゲームマネージャ 5 0 0に対して指示する。
ユーザコンピュータ 3 0 0は、 前記実施例のユーザコンピュータ 3と同様に、 例えば、 パーソナルコンピュータや携帯情報端末、 携帯電話等として構成可能な ものである。 ユーザコンピュータ 3 0 0は、 C P U、 メモリ、 補助記憶装置、 O S、 各種デバイスドライバ等のように、 ハードウェア資源及ぴソフトウェア資源 を必要に応じて備えることができる。 ゲームプログラム 4 0 0と、 ゲームマネー ジャ 5 0 0と、 監視プログラム 6 0 0とは、 ユーザコンピュータ 3 0 0の有する ハードウェア資源及びソフトウェア資源を適宜利用することができる。
記録媒体 RMの記憶内容をユーザコンピュータ 3 0 0に読み込ませ、 所定のィ ンストール処理を行うことにより、 ユーザコンピュータ 3 0 0上でゲームプログ ラム 4 0 0, ゲームマネージャ 5 0 0及び監視プログラム 6 0 0がそれぞれ実行 される。 正当な権限を有するユーザにとって、 ゲームマネージャ 5 0 0はゲーム プログラム 4 0 0を起動させるためのランチャープログラムとして作用する。 し かし、 ゲームマネージャ 5 0 0は、 単なるランチャープログラムではなく、 ゲー ムプログラム 4 0 0の作動を制御する。 また、 ゲームマネージャ 5 0 0は、 ゲー ムプログラム 4 0 0及ぴ監視プログラム 6 0 0の動作状態をそれぞれ監視し、 い ずれか一方の監視対象が動作を停止した場合は、 他方の監視対象及び自身の動作 を停止させる。
監視プログラム 6 0 0は、 ゲームプログラム 4 0 0及びゲームマネージャ 5 0 0の動作状態をそれぞれ監視し、 いずれか一方の監視対象が動作を停止した場合 は、 他方の監視対象及び自身の動作を停止させる。 正当なユーザは、 監視プログ ラム 6 0 0の存在を意識せずに、 ゲームプログラム 4 0 0を使用することができ る。
図 8は、 各データベース 2 4 0〜2 6 0の一例を示す説明図である。 図 8 ( a ) に示すように、 ユーザ情報データベース 2 4 0は、 例えば、 ユーザ I Dと、 パス ワードと、 MAC アドレスと、 セッション I Dと、 その他の情報とを対応付けて 管理することができる。 後述のように、 セッション I Dは、 継続実行を許可する か否かを判定するために用いられる情報である。 即ち、 最初に認証されたユーザ コンピュータ 3 0 0とは別のユーザコンピュータを使用してゲームプログラム 4
0 0が不正に実行されるのを防止するために、 ゲームマネージャ 5 0 0と D RM コンピュータ 2 0 0とは定期的に通信を行う。 この際に、 ゲームマネージャ 5 0
0から受信したセッション I Dと、 ユーザ情報データベース 2 4 0に登録されて いるセッション I Dとの比較が行われ、 セッション I Dがー致する場合にのみゲ ームプログラム 4 0 0の実行継続が許可されるようになっている。なお、図 2 ( a ) に示すユーザ情報データベース 2 4と同様に、 1つのユーザ I Dに複数の MAC ァドレスを対応付けることもできる。
図 8 ( b ) に示すように、 ゲーム情報データベース 2 5 0は、 例えば、 ゲーム
1 Dと、 ゲーム名と、 ゲーム情報と、 デコードキー (ァクティべィ トキ一) と、 起動引数と、 報告モードとを対応付けて管理することができる。 ここで、 報告モ 一ドとは、 ゲームマネージャ 5 0 0から D RMコンピュータ 2 0 0への定期的な 報告の頻度に関する方針を設定する情報である。 報告モードは、 例えば、 ゲーム プログラム 400の提供者 (ソフトウェアベンダー) が設定することができる。 ここで、 報告モードとしては、 例えば、 ゲームプログラム 400を最初に起動 した時だけ DRMコンピュータ 200に報告するモードと、 ゲームプログラム 4 00を起動させる度に DRMコンピュータ 200に報告するモ一ドと、 監視効率 5 を優先して可能な限り短周期で DRMコンピュータ 200に報告するモードと、 DRMコンピュータ 200の負荷低減を考慮して少ない頻度で DRMコンビユー タ 200に報告するモードと、 を挙げることができる。
図 8 (c) に示すように、 監視状況データベース 260は、 例えば、 ゲームプ ログラム 400を実行している各ユーザのユーザ I Dと、 各ユーザコンピュータ 10 300からの報告周期と、 次回の報告時期と、 各ユーザが実行しているゲームプ ログラム 400のゲーム I Dと、 ゲームスタート時刻とを対応付けて管理するこ とができる。 後述のように、 次回の報告時期は、 DRMコンピュータ 200の負 荷状態や報告モード等に基づいて動的に制御される。
次に、 図 9〜図 1 2に基づいて、本システムの動作を説明する。 まず、 図 9'は、 15本システムの起動時に行われる動作の概要を示すフローチヤ一トである。
ゲームプログラム 400の利用を希望するユーザは、 例えば、 所望のゲームプ ログラム 400を象徴するゲームアイコンを選択し、 起動を指示する。 このユー ' ザによる操作が検出されると、 まず最初に、 ゲームマネージャ 500が起動する (S 101)。
20 ゲームマネージャ 500は、 ユーザコンピュータ 300に固有のマシン情報の 一例である MAC了ドレスを取得し (S 102)、 この MAC了ドレスを通信ネッ トワーク CNを介して、 DRMコンピュータ 200に送信する (S 103)。
DRMコンピュータ 200は、 ゲームマネージャ 500から受信した MAC ァ ドレスを、 ユーザ情報データベース 240に登録する (S 1 21, S 1 22)。 こ
25 の時点では、 MAC アドレスのみが判明しているだけであり、 ユーザ I D等との 対応付けはされない。 なお、 MACァドレスをユーザ情報データベース 240に 登録せずに、 メモリに保持しておき、 ユーザ認証が成功した場合に、 ユーザ I D やセッション I D等と共に MAC アドレスをユーザ情報データベース 240に登 DRMコンピュータ 200は、 セッション I Dを発行し、 また、 報告周期を設 定する。 最初に設定される報告周期には、 予め設定された初期値を用いることが できる。 そして、 DRMコンピュータ 200は、 セッション I Dと初回の報告周 期とをゲームマネージャ 500に通知する (S 1 23)。
ゲームマネージャ 500は、 セッション I D及び報告周期を受信すると (S 1 04)、 これらの情報をユーザコンピュータ 300のメモリに格納して保持する。 次に、 ゲームマネージャ 500は、 ユーザからユーザ I D及びパスワードが入力 されたか否かを判定する (S 105)。 例えば、 ユーザがゲームアイコンを選択操 作したときに、 ユーザ I D及びパスワードの入力を求める画面を表示させること により、 ユーザにユーザ I D及びパスヮードの入力を促すことができる。
ゲームマネージャ 500は、 ユーザ I D及びパスワードの入力を確認すると (S105: YES), 入力されたユーザ I D及びパスヮードと、 ユーザが実行を希望す るゲームプログラム 400のゲーム I Dとを DRMコンピュータ 200に送信す る (S 106)。
DRMコンピュータ 200は、 ゲームマネージャ 500からユーザ I D、 パス ヮード及ぴゲーム I Dを受信すると (S 124)、 ユーザ情報データベース.240 を参照し、 ユーザ認証を行う (S 1 25)。 予め登録されているユーザ I D及びパ スワードと、 ゲームマネージャ 500から受信したユーザ I D及びパスワードと がー致する場合 (S125 : YES)、 ユーザ認証は成功する。 DRMコンピュータ 20 0は、 ユーザ I D、 パスワード、 MAC アドレス等を対応付けてユーザ情報デー タベース 240に登録する (S 1 27)。 逆に、 ユーザ I Dまたはパスワードのい ずれか一方が一致しない場合 (S125 : NO)、 ユーザ認証は失敗し、 エラー処理が 行われる (S 1 26)。 エラー処理としては、 例えば、 「 I Dまたはパスワードが 違います」 等のメッセージをユーザコンピュータ 300の画面に表示させること が考えられる。 また、 例えば、 所定回数以上ユーザ認証が失敗した場合は、 ゲー ムプログラム 400の起動をロックさせることも可能である。 なお、 ユーザ認証 の情報としては、 ユーザ I D及びパスワードに限らず、 例えば、 声紋、 指紋、 虹 彩等の生体情報を採用してもよい。
DRMコンピュータ 200は、 ユーザ認証の成功によって、 ユーザが希望する ゲームプログラム 400の実行許可を決定する (S 1 28)。 DRMコンピュータ 200は、 実行を許可したゲームプログラム 400をゲームマネージャ 500が 起動できるようにするための情報を生成して暗号化する (S 1 29)。 このゲーム 起動用の情報としては、 例えば、 ファイル名等の実行情報ゃァクティべイトキー 等を挙げることができる。 DRMコンピュータ 200は、 これら実行情報及びァ タティべイトキーを、 例えば、 セッション I Dやユーザ情報 (MACアドレス等) を用いて暗号化し、 この暗号化された情報をゲームマネージャ 500に送信する (S 1 30)。
ゲームマネージャ 500は、 DRMコンピュータ 200から暗号化情報を受信 すると (S 107)、 暗号化情報を解凍して (S 108)、 ァクティべイ トキー及 ぴ実行情報を取得する (S 109)。 DRMコンピュータ 200が使用する暗号ァ ルゴリズムは、 ゲームマネージャ 500にとつて既知であり、 解凍に必要な情報 はユーザコンピュータ 300側にも存在するので、 暗号化情報を解凍することが できる。
ゲームマネージャ 500は、 入手したァクティべィトキ一によつてゲームプロ グラム 400をデコードし、 このデコードしたゲームプログラム 400をユーザ コンピュータ 300のメモリに格納させる (S 1 10)。 即ち、 記録媒体 RMを用いてゲームプログラム4 0 0をユーザコンピュータ 3 0 0にインストールした場合、 ゲームプログラムは、 例えば、 ユーザコンビユー タ 3 0 0の補助記憶装置にェンコ一ドされた状態で記憶される。 このェンコ一ド された状態では、 ゲームプログラム 4 0 0を起動させることはできない。 ゲーム
5 マネージャ 5 0 0が D RMコンピュータ 2 0 0からァクティべィ トキ一を取得し てゲームプログラム 4 0 0をデコードし、 ユーザコンピュータ 3 0 0のメモリに 置いた時点で、 ゲームプログラム 4 0 0は起動可能となる。 ここで、 注意すべき 点は、 デコードされたゲームプログラム 4 0 0 (実行体プログラム) は、 フアイ ノレとして保存されるのではなく、 メモリ内にのみ存在する点である。 ゲームプロ
10 グラム 4 0 0の終了時には、 メモリ内のプログラムが消去されるため、 再度ゲー ムをプレイをする場合は、 ゲームマネージャ 5 0 0を介して再びユーザ認証ゃァ クティべィ トキ一の取得等を行う必要がある。
そして、 ゲームマネージャ 5 0 0は、 実行情報に基づいて、 ユーザコンビユー タ 3 0 0のメモリに置かれたゲームプログラム 4 0 0を起動させる (S 1 1 1 )。
15 これにより、 ユーザは、 ゲームプログラム 4 0 0を実行させて遊ぶことができる ようになる。 また、 ゲームマネージャ 5 0 0は、 ゲームプログラム 4◦ 0の起動 と同時に (物理的に厳密な意味で同時でなくてもよい)、 監視プログラム 6 0 0を 起動させる (S 1 1 2 )。 監視プログラム 6 0 0の動作については、 さらに後述す る。 '
20 次に、ゲームプログラム 4 0 0の実行継続を制御するための監視処理について、 図 1 0に基づき説明する。
ゲームマネージャ 5 0 0は、 起動時に D R Mコンピュータ 2 0 0から設定され た報告周期を参照する (S 1 4 1 )。 ゲームマネージャ 5 0 0は、 ユーザコンビュ ータ 3 0 0が有するタイマ機能等を利用することにより、 D RMコンピュータ 2
25 0 0から予め設定された報告時期が到来したか否かを判定する (S 1 4 2 )。 報舎時期が到来した場合 (S142: YES), ゲームマネージャ 500は、 DRMコ ンピュータ 200から設定されたセッション I Dをユーザコンピュータ 300の メモリから読出し (S 143)、 この読み出したセッション I Dを DRMコンビュ ータ 200に送信する (S 144)。
DRMコンピュータ 200は、 ゲームマネージャ 500からセッション I Dを 受信すると (S 161)、 ユーザ情報データベース 240を参照する。 DRMコン ピュータ 200は、 ユーザ情報データベース 240に登録されている発行済セッ シヨン I Dと、ゲームマネージャ 500から受信したセッション I Dとを比較し、 両者が一致するか否かを判定する (S 163)。 なお、 ゲームマネージャ 500か ら DRMコンピュータ 200に対して、セッション I Dのみを送信してもよいし、 あるいは、 セッション I Dに加えて、 例えば、 ユーザ I D等のユーザ情報の全部 または一部を含めることもできる。 さらには、 ユーザコンピュータ 300の環境 情報 (C PU利用率やメモリ消費量等) を含めることも可能である。 しカゝし、 セ ッシヨン I Dに付加する情報が増大するほど、 ユーザコンピュータ 300の負荷 は増し、 また、 ネットワークトラフィックも増大する。
ゲームマネージャ 500から受信したセッション I Dが予め登録されているセ ッシヨン I Dと一致しない場合 (S163 : NO)、 DRMコンピュータ 200 (継続 実行管理部 230) は、 ゲームマネージャ 500に対して、 ゲームプログラム 4 00の実行継続の禁止を通知する (S 1 64)。 両セッション I Dが不一致の場合 は、 別のユーザコンピュータでゲームプログラム 400を実行等している場合、 即ち、 例えば、 1つのユーザ I Dで同一のゲームプログラム 400を複数起動し ているような場合である。 そこで、 両セッション I Dが不一致の場合は、 ゲーム プログラム 400の強制終了をゲームマネージャ 500に指令する。
ゲームマネージャ 500から受信したセッション I Dと予め登録されているセ ッシヨン I Dとが一致する場合 (S163 : YES)、 D RMコンピュータ 200は、 新 たな報告周期、 即ち、 次回の報告時期を算出する (S 165)。 この新たな報告周 期の算出については、 さらに後述するが、 DRMコンピュータ 200の負荷状態 等を考慮して決定される。
両セッション I Dがー致する場合、 DRMコンピュータ 200は、 新たに算出 された報告周期と実行継続の許可とをゲームマネージャ 500に通知する (S 1 66)。
ゲームマネージャ 500は、 DRMコンピュータ 200から実行継続の可否に ついて応答を受信する (S 145)。 ゲームマネージャ 500は、 ゲームプログラ ム 400の実行継続が許可された場合 (S146 : YES)、 新たに設定された報告周期 をユーザコンピュータ 300のメモリに保存して、 S 141に戻り、 報告時期の 到来を待つ。
逆に、 DRMコンピュータ 200から実行継続が禁止された場合(S146: NO), ゲームマネージャ 500は、 実行中のゲームプログラム 400を強制的に終了さ せる (S 147)。 そして、 ゲームマネージャ 500は、 監視プログラム 600を 終了させた後 (S 148)、 自身も終了させる (S 149)。
上述のように、 ゲームマネージャ 500は、 DRMコンピュータ 200との間 で簡易な認証を定期的に行う。 これにより、 例えば、 同一のユーザ I D及びパス ワードを用いてゲームプログラム 400を複数起動させるような不正な利用を防 止することができる。
図 1 1は、 報告周期の設定処理を示すフローチャートである。 図 10中の S 1 65の内容を具体化した一例である。 DRMコンピュータ 300 (詳しくは、 継 続実行管理部 230) は、 ゲームマネージャ 500からセッション I Dを受信し た時刻を参照する (S 1 81)。 次に、 ゲームマネージャ 500は、 このセッショ ン I Dの受信に関連付けられていた報告周期を参照する (S 182)。
ゲームマネージャ 500は、 セッション I Dの受信時刻と予め設定されていた 報告周期とのずれを算出する。 例えば、 セッション I Dの受信予定時刻よりも実 際の受信時刻が遅れている場合は、 通信ネットワーク CNの混雑によるバケツト 到着の遅れや、 DRMコンピュータ 300の負荷増大による応答性能の低下等を 原因として挙げることができる。
DRMコンピュータ 200は、 自身の現在の負荷状態を検出する (S 184)。 この負荷状態としては、 例えば、 現在プレイ中のユーザ数、 即ち、 オンラインに よる定期的な認証処理を行うべきゲームマネージャ数を挙げることができる。 こ れに加えて、 例えば、 例えば、 CPU利用率、 メモリ消費量、 データ入出力処理 速度 (IZO速度) 等を検出してもよい。
DRMコンピュータ 200は、 現在の負荷状態に基づいて、 将来の負荷状態を 予測する (S 185)。 即ち、 DRMコンピュータ 200は、 ゲームマネージャ 5
00の報告周期を現在値に維持した場合に、 次の報告時期における DRMコンビ ユータ 200の負荷状態を予測する。 具体的には例えば、 もしも仮に、 現在の報 告周期が 「1時間」 に設定されている場合、 現在時刻から 1時間後にオンライン 認証を行うユーザ数 (ゲームマネージャ数) は、 監視状況データベース 260に より把握できる。
次に、 DRMコンピュータ 200は、 実行中のゲームプログラム 400に予め 設定されている報告モードを参照する (S 186)。 ゲームプログラム 400に関 連付けられる報告モードは、記録媒体 RMの流通後でも変更可能である。例えば、 サプライャコンピュータ 100から DRMコンピュータ 200に対して、 ゲーム
1 D及び新たな報告モードを通知し、 ゲーム情報データベース 250の更新を要 求すればよい。
最後に、 DRMコンピュータ 200は、 例えば、 報告モードと、 セッション I Dの受信予定時刻と実際の受信時刻との時間的なずれ量と、 将来の予測負荷状態 とに基づいて、 監視効率が最大となるように、 新たな報告周期を算出する (S 1 8 7 )。
例えば、 新作の人気ゲームプログラムが発売された当初は、 そのゲームプログ ラムのユーザ数が急激に増大する。 従って、 オンラインによる周期的な簡易認証 を行う D RMコンピュータ 2 0 0の負荷は増大する。 報告周期を短く設定するほ ど、 不正使用に対するセキュリティ性が向上するが、 その反面、 D RMコンビュ ータ 2 0 0の負荷も增大する。 セキュリティ性を重視するあまりに報告周期を短 く設定すると、 D RMコンピュータ 2 0 0の応答性が低下したり、 機能停止を招 く可能性がある。 そこで、 新作人気ゲームの発売当初等のように、 一時的に負荷 が増大するような場合は、 報告周期が長くなるように制御する。
このように、 D RMコンピュータ 2 0 0は、 例えば、 監視優先モードの場合、 機能停止を招かない範囲で最大限のセキュリティ性が得られるように、 報告周期 (監視タイミング) を設定することができる。 一方、 負荷軽減モードの場合、 D R Mコンピュータ 2 0 0は、 最低限のセキュリティ性を維持できる程度に報告周 期を設定することができる。
以上は一例であって、 負荷状態の予測や報告周期の設定等には、 種々のァルゴ リズムを取り入れることができる。
次に、 図 1 2は、 ゲームマネージャ 5 0◦及び監視プログラム 6 0 0による相 互監視の処理を示すフローチャートである。 本実施例では、 ゲームマネージャ 5 0 0と監視プログラム 6 0 0とは、 それぞれ共通の監視対象としてゲームプログ ラム 4 0 0の動作状態を監視するほか、 お互いも監視対象として定期的に監視し ている。 D RMコンピュータ 2 0 0とゲームマネージャ 5 0 0との間の定期的な オンライン認証を外部からの監視とすれば、 ゲームマネージャ 5 0 0及び監視プ ログラム 6 0 0による相互監視を内部での監視と位置づけることができる。
ゲームマネージャ 5 0 0の監視処理について先に説明すると、 ゲームマネージ ャ 5 0 0は、 予め設定された監視時期が到来したか否かを判定する (S 2 0 1 )。 監視時期は比較的短周期に設定するのが好ましい。 監視時期が到来すると (S201 : YES)、 ゲームマネージャ 500は、 監視プログラム 600の動作状態を確認し (S 203)、 監視プログラム 600が正常に動作しているか否かを判定する (S 203)。
監視プログラム 600が正常に動作している場合 (S203 : YES)、 次に、 ゲーム マネージャ 500は、 ゲームプログラム 400の動作状態を確認し ( S 204 )、 ゲームプログラム 400が正常に動作しているか否かを判定する (S 205)。 ゲ ームプログラム 400も正常に動作している場合 (S205 : YES)、 ゲームマネージ ャ 500は、 次の監視時期が到来するまで待機する (S 201 )。
一方、 監視プログラム 600が動作を停止していた場合 (S203 : NO)、 あるい は、 ゲームプログラム 400が動作を停止していた場合 (S205: NO), ゲームマ ネージャ 500は、 強制停止処理 (S 206〜S 208) に移行する。
即ち、 ゲームマネージャ 500は、 ゲームプログラム 400及び監視プロダラ ム 600の両方の動作を停止させた後 (S 206, S 207)、 ゲームマネージャ 自身も停止させる (S 208)。 ゲームプログラム 400の動作が停止された場合 は、 デコードされたゲームプログラム 400は、 ユーザコンピュータ 300のメ モリから直ちに消去ないし破壌される。
なお、 既に停止しているプログラムについては、 改めて停止を命令する必要が ない。 例えば、 ゲームプログラム 400の動作停止が確認されて強制停止処理に 移行した場合は、 ゲームプログラム 400の動作停止を改めて指示する必要はな い。 同様に、 監視プログラム 600の動作停止が確認されて強制停止処理に移行 した場合は、 監視プログラム 600の動作停止を改めて指示する必要はない。 し かし、 念のために、 ゲームプログラム 400及び監視プログラム 600の両方に 動作停止を命じてもよい。
監視プログラム 600の処理も同様である。 監視プログラム 600は、 監視時 期が到来すると (S221: YES) , ゲームマネージ 5 0 0及びゲームプログラム 4 0 0の動作状態をそれぞれ監視し (S 2 2 2〜S 2 2 5 )、 いずれか一方が動作を停 止していた場合は (S223 : NO、 または S225 : NO)、 強制停止処理に移行し、 全 てのプログラムを停止させる (S 2 2 6〜S 2 2 8 )。
· このように、 ゲームマネージャ 5 0 0及び監視プログラム 6 0 0という複数の 動作監視用プログラムが、ゲームプログラム 4 0 0の動作状態を監視すると共に、 それぞれお互いをも監視するため、 ゲームプログラム 4 0 0の動作停止をより確 実に検出することができる。 また、 一方の動作監視用プログラムが意図的に停止 された場合でも、 他方の監視用プログラムが全体のシャットダゥンを行うため、 ユーザコンピュータ 3 0 0のメモリに展開されたゲームプログラム 4 0 0が不正 .にコピーされるのを未然に防止することができる。
以上詳述した通り、 本実施例によれば、 ゲームプログラム 4 0 0の作動を制御 するゲームマネージャ 5 0 0とライセンス認証を行う D RMコンピュータ 2 0 0 との間で、 定期的なオンライン認証を行うため、 不正使用に対する耐久性を高め ることができる。
また、 この定期的なオンライン認証は、 セッション I Dの比較により行われる ため、 比較的簡易な処理で済む。 従って、 コンピュータ負荷を増大させずに、 簡 易な認証を比較的短周期で行うことができ、 長時間にわたってセキュリティ性を 維持することも可能となる。
さらに、 オンラインによる簡易認証を行うタイミング (報告周期) を、 D RM コンピュータ 2 0 0の負荷状態等に基づいて動的に制御するため、 ネットワーク トラフィックゃコンピュータ負荷等を考慮して、 より高いセキュリティ性を実現 することができる。
また、 ゲームマネージャ 5 0 0及ぴ監視プログラム 6 0 0という、 2種類のそ れぞれ独立した動作監視用プログラムを用意し、 ゲームプログラム 4 0 0の動作 状態のみならず、 それぞれお互いの監視をも行い、 ゲームプログラム 4 0 0 , ゲ ームマネージャ 5 0 0, 監視プログラム 6 0 0のいずれか 1つでも動作を停止し た場合は、 残りの 2つのプログラムの動作も停止させ、 ゲームプログラム 4 0 0 を消去等して無力化する構成のため、 メモリに展開されたゲームプログラム 4 0 5 0を不正に読み出してコピー等する行為を阻止して、 信頼性をより高めることが できる。 次に、 図 1 3は、 本発明のさらに別の実施例を示す。 本実施例は、 第 1実施例 において、 複数の監視用プログラムによる相互監視と、 認証用コンピュータとの 10 間の定期的なオンライン認証とを実現させるものである。
. 本実施例では、配信用コンピュータ 1 0からユーザコンピュータ 3 0に向けて、 ゲームプログラム 4 0と実行制御プログラム 5 0 Aと監視プログラム 6 0とが配 信される。
実行制御プログラム 5 0 Aは、 上述した実行制御プログラム 5 0の構成及び作 15用に加えて、 上述したゲームマネージャ 5 0 0が実行する定期的な簡易オンライ ン認証機能と監視機能とを備えている。 また、 監視プログラム 6 0は、 上述した 監視プログラム 6 0 0と同様の監視機能を備えている。
実行制御プログラム 5 O Aは、 最初のユーザ認証によりゲームプログラム4 0 のデコード等を行う。 また、 実行制御プログラム 5 O Aは、 認証用コンピュータ 20 2 0に対して定期的にセッション I Dを送信することにより、 ゲームプログラム 4 0の実行中においてもユーザ認証を行う。 実行制御プログラム 5 O Aは、 ユー ザ認証が成功した場合はゲームプログラム 4 0の継続的な実行を許可し、 ユーザ 認証が失敗した場合はゲームプログラム 4 0を強制的に終了させる。
また、 実行制御プログラム 5 O Aと監視プログラム 6 0とは、 共にゲームプロ 25 グラム 4 0の起動状態を監視していると共に、 お互い同士もそれぞれ監視してい る。 そして、 ゲームプログラム 4 0, 実行制御プログラム5 O A , 監視プログラ ム 6 0のうちいずれか 1つのプログラムが終了した場合は、 実行制御プログラム 5 O Aまたは監視プログラム 6 0がこれを検出し、 残りのプログラム及び自分自 身を終了させる。
なお、 上述した本発明の各実施例は、 本発明の説明のための例示であり、 本発 明の範囲を実施例にのみ限定する趣旨ではない。 当業者は、 本発明の要旨を逸脱 することなしに、 他の様々な態様で本発明を実施できる。

Claims

請 求 の 範 囲
1 . ユーザコンピュータにインストールされた第 1のソフトウエアを第 2の ソフトウエアに更新させるソフトウエア実行制御システムであって、
ェンコ一ドされた前記第 2のソフトウエア及び該第 2のソフトウエアの実行を 制御するための実行制御プログラムを前記ユーザコンピュータに通信ネットヮ一 クを介して配信する配信部と、
前記ユーザコンピュータにインストールされた前記実行制御プログラムからの 要求によってユーザ認証を行い、 正当なユーザであると確認した場合には、 前記 第 2のソフトウエアをデコードして起動させるために必要な所定の情報を前記通 信ネットワークを介して前記実行制御プログラムに送信する認証部と、
を備え、
前記第 2のソフトウェアは前記実行制御プログラムから渡される起動情報のみ で起動可能に構成されており、
前記実行制御プログラムは、
( 1 ) 前記認証部から受信した前記所定の情報に基づいて前記ェンコ一ドされた 第 2のソフトウエアをデコードして前記第 1のソフトウェアに置き換え、
( 2 ) 前記所定の情報に基づいて起動情報を生成することにより、 前記第 2のソ フトウエアを起動させ、
( 3 ) 前記第 2のソフトウェアの実行が終了された場合には、 前記第 2のソフト ウェアを無力化させるように構成されているソフトウエア実行制御システム。
2 . 前記実行制御プログラムは、 複数種類の第 2のソフトウェアに対応可能 に構成されており、
前記認証部が前記実行制御プログラムに送信する前記所定の情報には、 起動さ せる第 2のソフトウヱァの格納先ァドレス情報と起動引数と第2のソフトウエア をデコードするためのデコードキー情報とが含まれている請求項 1に記載のソフ トウエア実行制御システム。
3 . 前記実行制御プログラムは、 前記ユーザコンピュータに固有のマシン情 報と暗号化キー情報とを含む認証用情報を前記認証部に送信し、
前記認証部は、 少なくとも前記マシン情報に基づいてユーザ認証を行い、 正当 なユーザであると確認した場合には、 前記所定の情報を前記暗号化キー情報で暗 号化して前記通信ネットワークを介して前記実行制御プログラムに送信するもの であり、
かつ、 前記認証部には、 前記マシン情報を複数個登録可能である請求項 1に記 載のソフトウエア実行制御システム。
4 . 前記認証部は、 正当なユーザであると確認した場合には、 該ユーザが起 動可能な第 2のソフトウエアの一覧データを前記ユーザコンピュータに送信し、 前記一覧データから選択された第 2のソフトウェアに関する前記所定の情報を前 記通信ネットワークを介して前記実行制御プログラムに送信するものである請求 項 1に記載のソフトウエア実行制御システム。
5 . 前記実行制御プログラムは、
前記ユーザコンピュータに固有のマシン情報を取得する機能と、
暗号化キー情報を生成する機能と、
前記認証部にユーザ認証を要求し、 少なくとも前記マシン情報及び前記暗号化 キー情報を前記認証部に送信する機能と、
前記認証部から受信した起動可能な第2のソフトゥェァの一覧データからいず れか 1つの第 2のソフトウエアをユーザに選択させ、 選択された第 2のソフトウ ェァを前記認証部に通知する機能と、
前記選択された第 2のソフトウユアの前記ユーザコンピュータにおける格納先 ァドレス情報と起動引数とデコードキー情報とを少なくとも前記暗号化キー情報 により暗号化してなる所定の情報を受信する機能と、
前記暗号化された所定の情報を少なくとも前記暗号化キー情報により解読する 機能と、
前記解読されたデコ一ドキー情報により前記ユーザコンピュータ内の第2のソ フトウエアをデコードさせる機能と、
前記解読された起動引数及び前記格納先ァドレス情報に基づいて、 前記起動情 報を生成する機能と、
前記生成された起動情報によつて前記デコードされた第 2のソフトウェアを起 動させる機能と、
前記起動された第 2のソフトウ アの実行状態を監視し、 該第 2のソフトウェ ァの実行が終了した場合は、 前記第 2のソフトウェアを無力化させる機能と、 を前記ユーザコンピュータ上に実現させるものである請求項 1に記載のソフトゥ エア実行制御システム。
6 . 前記第 2のソフトウェアは、 プログラムと付随データ群とを含んでなり、 前記プログラム又は前記付随データ群の少なくともいずれか一方を更新させる ものである請求項 1に記載のソフトゥ ア実行制御システム。
7 . 前記ユーザコンピュータにインストールされている前記第 1のソフトウ エアは、 前記第 2のソフトウェアに置換されるまでは、 前記認証部による認証を 受けることなく実行可能である請求項 1に記載のソフトウェア実行制御システム。
8 . 前記実行制御プログラムは、 前記第 2のソフトゥ アの実行が終了した 場合は、 前記第 2のソフトゥエアの全部又は一部を削除することにより無力化さ せるものである請求項 1に記載のソフトウェア実行制御システム。
9 . 前記第 2のソフトウェアは、プログラムと付随データ群とを含んでなり、 前記実行制御プログラムは、前記第 2のソフトウェアの実行が終了した場合は、 前記第 2のソフ トウェアのェンコ一ドデータは保存しつつ、 前記デコードされた 第 2のソフトウエアのうち前記プログラムのみを無力化させるものである請求項 1に記載のソフトウエア実行制御システム。
1 0 . 前記実行制御プログラムは、 前記第 2のソフトウェアとは別に強制終 了させることができないプログラムとして構成されている請求項 1に記載のソフ トウェア実行制御システム。
1 1 . 前記配信部と前記認証部とは、 それぞれ別体のコンビユータ上に実現 されている請求項 1に記載のソフトゥエア実行制御システム。
1 2 . 前記実行制御プログラムは、 前記第 2のソフトウェアの実行中に、 前記 認証部との間で定期的または不定期なユーザ認証を行うものであり、 このユーザ 認証が失敗した場合は前記第 2のソフトゥエアを強制的に終了させる請求項 1に 記載のソフ トゥエア実行制御システム。
1 3 . 前記第 2のソフトウエアの実行中に行われる定期的または不定期なユー ザ認証は、 少なくとも予測される将来の認証用コンピュータの負荷状態を考慮し て、 可変に制御可能である請求項 1 2に記載のソフトウェア実行制御システム。
1 4 . 前記配信部は、 前記第 2のソフ トウェア及び前記実行制御プログラムと 共に監視プログラムを前記ユーザコンピュータに配信し、
前記監視プログラムは、 前記第 2のソフトゥエア及び前記実行制御プログラム の動作状態をそれぞれ監視し、 前記第 2のソフトウエアまたは前記実行制御プロ グラムのいずれか一方が動作を停止した場合は、 前記第 2のソフトウエア及び前 記実行制御プログラムをそれぞれ停止させ、 自身も停止させるものであり、 前記実行制御プログラムは、 前記第 2のソフトゥ ァ及び前記監視プログラム の動作状態をそれぞれ監視し、 前記第 2のソフトウエアまたは前記監視プロダラ ムのいずれか一方が動作を停止した場合は、 前記第 2のソフトウエア及び前記監 視プログラムをそれぞれ停止させ、 自身も停止させるものである請求項 1に記載 のソフ トウェア実行制御システム。
1 5 . ユーザコンピュータにインス トールされた第 1のソフトウェアを第 2 のソフトウェアに更新し、 この第 2のソフトウエアの実行を制御する実行制御プ 口グラムであって、
外部の認証部と通信ネットワークを介して通信し、 ユーザ認証を求める第 1の 機能と、
前記認証部から受信した所定の情報に基づいて、 前記第 2のソフトウェアを起 動させるための起動情報を生成する第 2の機能と、
前記認証部から受信した所定の情報に基づいて、 前記第 2のソフトウエアをデ コードさせる第 3の機肯 gと、
前記ユーザコンピュータに既にィンストールされている更新前のソフトウェア を前記デコードされた第 2のソフトウェアに置き換える第 4の機能と、 前記生成された起動情報によつて前記第 2のソフトウェアを起動させる第 5の 機能と、
前記第 2のソフトウ アの実行状態を監視し、 前記第 2のソフトウ アの実行 が終了した場合は、 前記第 2のソフトウエアを無力化させる第 6の機能と、 を前記ユーザコンピュータ上に実現させるソフトウエアの実行制御プログラム。
1 6 . 前記第 2のソフトウェアは、 プログラムと付随データ群とを含んでな り、
前記第 4の機能は、 前記プロダラム又は前記付随データ群の少なくともいずれ か一方を置き換えるものである請求項 1 5に記載のソフトウエアの実行制御プロ グラム。
1 7 . 前記ユーザコンピュータに既にインストールされている更新前のソフ トウエアは、前記第 4の機能によつて前記第 2のソフトウェアに置換される前は、 前記認証部による認証を受けることなく実行可能である請求項 1 6に記載のソフ トウェアの実行制御プログラム。
1 8 . 前記第 6の機能は、 前記第 2のソフトウエアの実行が終了した場合は、 前記第 2のソフトウエアの全部又は一部を削除することにより無力化させるもの である請求項 1 7に記載のソフトウエアの実行制御プログラム。
1 9 . 前記第 2のソフトウェアは、 プログラムと付随データ群とを含んでな り、
前記第 6の機能は、 前記第 2のソフトウェアの実行が終了した場合は、 前記第 2のソフトウェアのエンコードデータは保存しつつ、 前記デコードされた第 2の ソフトウエアのうち前記プログラムのみを無力化させるものである請求項 1 7に 記載のソフトウェアの実行制御プログラム。
2 0 . 前記実行制御プログラムは、 前記第 2のソフトウェアとは別に強制終 了させることができないプログラムとして構成されている請求項 1 5に記载のソ フトウエアの実行制御プログラム。
2 1 . ユーザコンピュータにィンストールされたソフトウエアを第 2のソフ トウェアに更新し、 この第 2のソフトウエアの実行を制御する実行制御プログラ ムであって、
前記ユーザコンピュータに固有のマシン情報を取得する機能と、
暗号化キー情報を生成する機能と、
外部の認証部にユーザ認証を要求し、 少なくとも前記マシン情報及び前記暗号 化キー情報を前記認証部に送信する機能と、
前記認、証部から受信した起動可能な第 2のソフトウエアの一覧データからいず れか 1つの第 2のソフトウエアをユーザに選択させ、 選択された第 2のソフトウ ァを前記認証部に通知する機能と、
前記選択された第 2のソフトウヱァの前記ユーザコンピュータにおける格納先 ァドレス情報と起動引数とデコードキー情報とを前記暗号化キー情報により暗号 化してなる所定の情報を受信する機能と、
前記暗号化された所定の情報を少なくとも前記暗号化キー情報により解読する 機能と、
前記解読されたデコードキー情報により前記ユーザコンピュータ内の第 2のソ フトウエアをデコードさせる機能と、
前記解読された起動引数及び前記格納先ァドレス情報に基づいて、 前記起動情 報を生成する機能と、
前記生成された起動情報によつて前記デコードされた第 2のソフトウェアを起 動させる機能と、
前記起動された第 2のソフトウエアの実行状態を監視し、 該第 2のソフ トゥェ ァの実行が終了した場合は、 前記第 2のソフトウェアを無力化させる機能と、 を前記ユーザコンピュータ上に実現させるソフトウェアの実行制御プログラム。
2 2 . ユーザコンピュータにィンストールされている自由に使用可能な第 1 のソフ トウェアを第 2のソフトウエアに更新可能である旨をユーザに通知させる ステップと、 .
前記第 2のソフトウエアを配信する配信用コンピュータに前記ユーザコンビュ ータを通信ネットワークを介して接続させ、 前記第 2のソフトウエアへの更新を 要求させるステップと、
前記配信用コンピュータから前記ユーザコンピュータにエンコードされた前記 第 2のソフトウユア及び該第 2のソフトウユアの実行を制御するための実行制御 プログラムを通信ネットワークを介して送信させるステップと、
前記ユーザコンピュータ上で起動した前記実行制御プログラムにより、 前記ュ 一ザコンピュータと認証用コンピュータとを通信ネットワークを介して接続させ、 前記認証用コンピュータにユーザ認証を要求させるステップと、
前記ユーザ認証により正当なユーザであると認められた場合に前記認証用コン ピュータから前記ユーザコンピュータに送信される所定の情報に基づいて、 前記 第 2のソフトウエアをデコードするステップと、
前記認証用コンピュータから受信した前記所定の情報に基づいて、 前記第 2の ソフトゥヱァを起動させるための起動情報を生成させるステップと、
前記生成された起動情報によって前記第 2のソフトウエアを起動させるステツ プと、
前記起動された第 2のソフトウエアの実行を監視し、 前記第 2のソフトウエア の実行が終了した場合は、 前記第 2のソフトウエアを無力化させるステップと、 を含んでなるソフトウエアの更新方法。
2 3 . 第 1のソフトウエアに置換される第 2のソフトウエアと共にユーザコ ンピュータにインス トールされる実行制御プログラムからの要求によつてユーザ 認証を行う認証部と、
前記認証部により正当なユーザであると確認された場合は、 前記第 2のソフト ウェアをデコードして起動させるために必要な所定の情報を前記実行制御プログ ラムに送信する情報送信部と、
を備 、
前記第 2のソフトウェアは前記実行制御プログラムから渡される起動情報のみ で起動可能に構成されており、
前記実行制御プログラムは、
( 1 ) 前記認証部から受信した前記所定の情報に基づいて前記ェンコ一ドされた 第 2のソフトウェアをデコードして前記第 1のソフトウェアに置き換え、
( 2 ) 前記所定の情報に基づいて起動情報を生成することにより、 前記第 2のソ フトウエアを起動させ、
( 3 ) 前記第 2のソフトウェアの実行が終了された場合には、 前記第 2のソフ ト ウェアを無力化させるように構成されているコンピュータ。
2 4 . アプリケーションソフトウェア及び監視プログラムと共にユーザコン ピュータにインストールされる実行制御プログラムと通信を行うことにより、 前 記実行制御プログラムの動作を制御する管理用コンピュータであって、 前記実行制御プログラムからの要求に基づいてユーザ認証を行う認証部と、 前記認証部により正当なユーザであると確認された場合は、 前記実行制御プロ グラムが前記アプリケーションソフトウエアを起動させるために必要な第 1の情 報を前記実行制御プログラムに送信する情報送信部と、
所定の時期に前記実行制御プログラムとの間で行われる継続確認通信に基づい て、 前記アプリケーションソフトウエアの実行継続を許可するか否かを管理する 継続実行管理部と、 を備えた管理用コンピュータ。
2 5 . 前記継続実行管理部は、 前記継続確認通信によって前記実行制御プログ ラムから取得される第 1の識別情報と前記ユーザ認証に予め関連付けられている 第 2の識別情報とを比較し、 両方の識別情報が対応する場合は、 前記実行制御プ ログラムに対して前記アプリケーションソフトウエアの実行継続を許可し、 前記 各識別情報が対応していない場合は、 前記実行制御プログラムに対して前記アブ リケーシヨンソフトウエアの実行継続を禁止させる請求項 2 4に記載の管理用コ ンピュータ。
2 6 . 前記継続実行管理部は、 前記第 2の識別情報に対応する前記第 1の識 別情報を予め前記実行制御プログラムに設定させる請求項 2 5に記載の管理用コ ンピュータ。
2 7 . 前記継続実行管理部は、 前記所定の時期を前記実行制御プログラムに 予め設定し、 この予め設定された所定の時期が到来した場合は、 前記実行制御プ ログラムから前記継続実行管理部に対して前記継続確認通信を行わせる請求項 2 4に記載の管理用コンピュータ。
2 8 . 前記継続実行管理部は、 前記所定の時期を可変に設定可能である請求 項 2 4に記載の管理用コンピュータ。
2 9 . 前記継続実行管理部は、 少なくとも予測される将来の負荷状態を考慮 して、 前記所定の時期を可変に設定可能である請求項 2 8に記載の管理用コンビ ユータ。
3 0 . 前記監視プログラムは、 前記アプリケーションソフトウェア及び前記 実行制御プログラムの動作状態をそれぞれ監視し、 前記アプリケーシヨンソフ ト ウェアまたは前記実行制御プロダラムのいずれか一方が動作を停止した場合は、 前記アプリケーションソフトウエア及び前記実行制御プログラムをそれぞれ停止 させ、 自身も停止させるものであり、
前記実行制御プログラムは、 前記アプリケーシヨンソフトゥェァ及び前記監視 プログラムの動作状態をそれぞれ監視し、 前記アプリケーションソフトウエアま たは前記監視プログラムのいずれか一方が動作を停止した場合は、 前記アプリケ ーシヨンソフトウエア及び前記監視プログラムをそれぞれ停止させ、 自身も停止 させるものである請求項 2 4に記載の管理用コンピュータ。
3 1 . アプリケーションソフトウエアが実行されるユーザコンピュータと、 前記アプリケーションソフトウェアの実行を管理する管理用コンピュータとを備 えたソフトウエア実行制御システムであって、
前記ユーザコンピュータには、
前記アプリケーションソフトウェアの実行を制御するための実行制御部と、 前記ァプリケーシヨンソフトゥェァ及び前記実行制御プログラムの動作を監視 するための監視部とが設けられ、 前記管理用コンピュータには、
前記実行制御プログラムからの要求に基づいてユーザ認証を行う認証部と、 前記認証部により正当なユーザであると確認された場合は、 前記実行制御部が 前記アプリケーションソフトウエアを起動させるために必要な第 1の情報を前記 実行制御部に送信する情報送信部と、
所定の時期に前記実行制御部との間で行われる継続確認通信に基づいて、 前記 アプリケーションソフトウエアの実行継続を許可するか否かを管理する継続実行 管理部とが設けられているソフトゥヱァ実行制御システム。
3 2 . コンピュータを、 アプリケ一ションソフトウエアの実行を制御する実 行制御部と、 前記アプリケーシヨンソフトウェア及び前記実行制御部の動作状態 をそれぞれ監視する監視部として、 機能させるためのコンピュータプログラムで あって、
前記実行制御部は、
管理用コンピュータと通信することによりユーザ認証を要求する機能と、 前記管理用コンピュータから受信した第 1の情報に基づいて、 前記アプリケー シヨンソフトウエアを起動させる機能と、
前記管理用コンピュータとの間で継続確認通信を行う機能と、
前記継続確認通信によって前記アプリケーションソフトウエアの実行継続が禁 止された場合は、前記アプリケーションソフトウエアの動作を停止させる機能と、 を備え、
前記監視部は、
前記アプリケーションソフトウエア及び前記実行制御部の動作状態をそれぞれ 監視する機能と、
前記アプリケーションソフトウエアまたは前記実行制御部のいずれか一方が動 作を停止した場合は、 前記アプリケーンヨンソフトウェア及び前記実行制御部を それぞれ停止させ、 自身も停止させる機能と、
を備えているコンピュータプログラム。
3 3 . 前記実行制御部は、 さらに、
前記アプリケーションソフトウエア及び前記監視部の動作状態をそれぞれ監視 する機能と、
前記アプリケーションソフトウエアまたは前記監視部のいずれか一方が動作を 停止した場合は、 前記アプリケーションソフトウエア及び前記監視部をそれぞれ 停止させ、 自身も停止させる機能を備えている請求項 3 2に記載のコンピュータ プログラム。
3 4 . 前記実行制御部の前記継続確認通信を行う機能は、 前記管理用コンビ ユータから予め設定された所定の時期に、 前記管理用コンピュータから予め設定 された第 1の識別情報を前記管理用コンピュータに送信するものである請求項 3 2に記載のゴンピュータプログラム。
3 5 . 前記継続確認通信を行う度に、 前記管理用コンピュータから前記所定 の時期が可変に設定される請求項 3 4に記載のコンピュータプログラム。
3 6 . 前記アプリケーションソフトウェアと、 前記実行制御部と、 前記監視 部とは、 同一の記録媒体に記録されて流通するものである請求項 3 2に記載のコ ンピュータプログラム。
PCT/JP2003/015779 2002-12-11 2003-12-10 ソフトウェア実行制御システム及びソフトウェアの実行制御プログラム WO2004053666A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
AU2003289301A AU2003289301A1 (en) 2002-12-11 2003-12-10 Software execution control system and software execution control program
JP2004558454A JPWO2004053666A1 (ja) 2002-12-11 2003-12-10 ソフトウェア実行制御システム及びソフトウェアの実行制御プログラム
US10/538,764 US7484207B2 (en) 2002-12-11 2003-12-10 Software execution control system and software execution control program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002-359597 2002-12-11
JP2002359597 2002-12-11

Publications (1)

Publication Number Publication Date
WO2004053666A1 true WO2004053666A1 (ja) 2004-06-24

Family

ID=32500944

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/015779 WO2004053666A1 (ja) 2002-12-11 2003-12-10 ソフトウェア実行制御システム及びソフトウェアの実行制御プログラム

Country Status (5)

Country Link
US (1) US7484207B2 (ja)
JP (2) JPWO2004053666A1 (ja)
CN (1) CN1333314C (ja)
AU (1) AU2003289301A1 (ja)
WO (1) WO2004053666A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072664A (ja) * 2004-09-01 2006-03-16 Nec Corp ファイル管理システム、およびファイル管理プログラム
JP2008084233A (ja) * 2006-09-29 2008-04-10 Fuji Xerox Co Ltd 情報処理システムおよび情報処理プログラム
JP2008532121A (ja) * 2005-02-22 2008-08-14 コネクティフ ソリューションズ インク. 分散型資産管理システム及び方法
JPWO2006073008A1 (ja) * 2005-01-07 2008-10-23 株式会社システム・ケイ ネットワークカメラへのログイン認証システム
JP2010183506A (ja) * 2009-02-09 2010-08-19 Nippon Telegr & Teleph Corp <Ntt> マルチキャスト通信システム、ルーティング装置、認証サーバ装置、ルーティング装置用プログラム、認証サーバ装置用プログラム、並びにルーティング方法および認証方法
US7930743B2 (en) 2006-09-01 2011-04-19 Fuji Xerox Co., Ltd. Information processing system, information processing method, information processing program, computer readable medium and computer data signal
JP2014137699A (ja) * 2013-01-16 2014-07-28 Fujitsu Ltd 情報資源保護プログラム、及び情報資源保護方法

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9267144B2 (en) * 2002-01-23 2016-02-23 Monsanto Technology Llc Plastid transformation of maize
FR2849704A1 (fr) * 2003-01-02 2004-07-09 Thomson Licensing Sa Dispositifs et procedes de decision conditionnelle d'execution de services recus et de constitution de messages d'informations associes a des services, et produits associes
DE10360535B4 (de) * 2003-12-22 2006-01-12 Fujitsu Siemens Computers Gmbh Einrichtung und Verfahren zur Steuerung und Kontrolle von Überwachungsdetektoren in einem Knoten eines Clustersystems
US7647647B2 (en) * 2004-08-05 2010-01-12 International Business Machines Corporation System, method and program product for temporally authorizing program execution
US8819639B2 (en) * 2004-09-15 2014-08-26 Lakeside Software, Inc. System for selectively blocking execution of applications on a computer system
US7950061B2 (en) * 2004-10-22 2011-05-24 Om Ahuja Copy-protected audio, video and or data optical disk
EP1688834A3 (en) * 2005-02-03 2009-01-14 LG Electronics Inc. Video device having software upgrade function using wireless communication and method for controlling the same
US7730525B2 (en) * 2005-06-22 2010-06-01 International Business Machines Corporation Method, system, and computer program product for limiting authorization of an executable action to an application session
KR100724935B1 (ko) * 2005-09-15 2007-06-04 삼성전자주식회사 컨텐츠 보호를 위한 개체 간 연동 방법 및 장치, 그리고 그시스템
NO325438B1 (no) * 2005-12-22 2008-05-05 World Medical Ct Holding Sa Fremgangsmate for sikker overforing av medisinsk data til en mobil enhet/terminal
US20070219909A1 (en) * 2006-03-14 2007-09-20 Robert Hardacker System and method for automatically updating timed DRM keys
US7967682B2 (en) 2006-04-12 2011-06-28 Bally Gaming, Inc. Wireless gaming environment
US8301753B1 (en) 2006-06-27 2012-10-30 Nosadia Pass Nv, Limited Liability Company Endpoint activity logging
US7668954B1 (en) * 2006-06-27 2010-02-23 Stephen Waller Melvin Unique identifier validation
US9101820B2 (en) 2006-11-09 2015-08-11 Bally Gaming, Inc. System, method and apparatus to produce decks for and operate games played with playing cards
US8631501B2 (en) 2006-11-10 2014-01-14 Bally Gaming, Inc. Reporting function in gaming system environment
US9508218B2 (en) 2006-11-10 2016-11-29 Bally Gaming, Inc. Gaming system download network architecture
US20080171588A1 (en) * 2006-11-10 2008-07-17 Bally Gaming, Inc. Download and configuration server-based system and method with structured data
US8920233B2 (en) * 2006-11-10 2014-12-30 Bally Gaming, Inc. Assignment template and assignment bundle in a gaming configuration and download system
US8784212B2 (en) * 2006-11-10 2014-07-22 Bally Gaming, Inc. Networked gaming environment employing different classes of gaming machines
US9111078B2 (en) 2006-11-10 2015-08-18 Bally Gaming, Inc. Package manager service in gaming system
US20080153600A1 (en) * 2006-11-10 2008-06-26 Bally Gaming, Inc. Gaming system configuration change reporting
US8930461B2 (en) 2006-11-13 2015-01-06 Bally Gaming, Inc. Download and configuration management engine for gaming system
US8347280B2 (en) * 2006-11-13 2013-01-01 Bally Gaming, Inc. System and method for validating download or configuration assignment for an EGM or EGM collection
US9082258B2 (en) 2006-11-13 2015-07-14 Bally Gaming, Inc. Method and system for providing download and configuration job progress tracking and display via host user interface
KR101368327B1 (ko) * 2006-12-22 2014-02-26 삼성전자주식회사 프로그램 실행흐름 보고 시스템 및 방법
US8056070B2 (en) * 2007-01-10 2011-11-08 Goller Michael D System and method for modifying and updating a speech recognition program
US8734245B2 (en) 2007-11-02 2014-05-27 Bally Gaming, Inc. Game related systems, methods, and articles that combine virtual and physical elements
US8616958B2 (en) 2007-11-12 2013-12-31 Bally Gaming, Inc. Discovery method and system for dynamically locating networked gaming components and resources
US8725790B2 (en) * 2007-12-12 2014-05-13 Big Fish Games, Inc. Multiple application activation
US8856657B2 (en) 2008-04-30 2014-10-07 Bally Gaming, Inc. User interface for managing network download and configuration tasks
US9005034B2 (en) * 2008-04-30 2015-04-14 Bally Gaming, Inc. Systems and methods for out-of-band gaming machine management
US9483911B2 (en) * 2008-04-30 2016-11-01 Bally Gaming, Inc. Information distribution in gaming networks
US20090275374A1 (en) * 2008-04-30 2009-11-05 Bally Gaming, Inc. Tournament play in a gaming property
WO2009155047A2 (en) * 2008-05-30 2009-12-23 Bally Gaming, Inc. Web pages for gaming devices
JP4548524B2 (ja) * 2008-07-29 2010-09-22 ソニー株式会社 通信装置、プログラム、通信方法および通信システム
KR101331032B1 (ko) 2008-07-30 2013-11-19 삼성전자주식회사 가상화 환경과 결합된 어플리케이션 실행 방법
US8266213B2 (en) 2008-11-14 2012-09-11 Bally Gaming, Inc. Apparatus, method, and system to provide a multiple processor architecture for server-based gaming
US8635672B2 (en) 2009-01-28 2014-01-21 Nec Corporation Thin client-server system, thin client terminal, data management method, and computer readable recording medium
US9424399B2 (en) 2009-05-12 2016-08-23 Microsoft Technology Licensing, Llc Availability of permission models in roaming environments
US20100293536A1 (en) * 2009-05-12 2010-11-18 Microsoft Corporation Enhanced product functionality based on user identification
JP2010282529A (ja) * 2009-06-08 2010-12-16 Konami Digital Entertainment Co Ltd インストールシステム、サーバ装置、インストール方法、ならびに、サーバプログラム
US20100318987A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Bootstrapping streamed and virtualized applications
US8959508B2 (en) * 2009-06-15 2015-02-17 Microsoft Technology Licensing, Llc Mitigating user interruption for partially downloaded streamed and virtualized applications
GB0910327D0 (en) * 2009-06-16 2009-07-29 Antix Labs Ltd Rights managed distributable software
JP5551899B2 (ja) * 2009-07-14 2014-07-16 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラム
US20110083188A1 (en) * 2009-10-07 2011-04-07 Om Ahuja Virus, trojan, worm and copy protection of audio, video, digital and multimedia, executable files and such installable programs
JP5511506B2 (ja) * 2010-05-25 2014-06-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を有する装置、所定のリソースを監視する監視プログラムの強制終了攻撃に対する耐性を付与する方法及び該方法を装置で実行することが可能なコンピュータプログラム
JP5449044B2 (ja) * 2010-06-10 2014-03-19 シャープ株式会社 サーバ装置、端末装置およびアプリケーション制御システム
JP2012190268A (ja) * 2011-03-10 2012-10-04 Dainippon Printing Co Ltd コンテンツ利用端末、コンテンツ管理システム、コンテンツ管理方法、コンテンツ管理プログラムおよびサーバ装置
US9058716B2 (en) 2011-06-06 2015-06-16 Bally Gaming, Inc. Remote game play in a wireless gaming environment
US8683457B1 (en) * 2011-06-17 2014-03-25 Western Digital Technologies, Inc. Updating firmware of an electronic device by storing a version identifier in a separate header
US20130167223A1 (en) * 2011-12-27 2013-06-27 Symbol Technologies, Inc. Methods and apparatus for securing a software application on a mobile device
US8914790B2 (en) 2012-01-11 2014-12-16 Microsoft Corporation Contextual solicitation in a starter application
US8974305B2 (en) 2012-01-18 2015-03-10 Bally Gaming, Inc. Network gaming architecture, gaming systems, and related methods
US9120007B2 (en) 2012-01-18 2015-09-01 Bally Gaming, Inc. Network gaming architecture, gaming systems, and related methods
US20130254553A1 (en) * 2012-03-24 2013-09-26 Paul L. Greene Digital data authentication and security system
CN103377350A (zh) * 2012-04-23 2013-10-30 合肥科盛微电子科技有限公司 利用硬件加密模块实现嵌入式软件的代码保护的方法和装置
JP5545325B2 (ja) * 2012-07-13 2014-07-09 株式会社セガ サーバ装置、サーバプログラム、および、ゲームプログラム
JP5977305B2 (ja) * 2014-10-17 2016-08-24 グリー株式会社 サーバ装置の制御方法、サーバ装置、及びプログラム
US10438170B2 (en) 2017-01-05 2019-10-08 International Business Machines Corporation Blockchain for program code credit and programmer contribution in a collective
JP6808157B2 (ja) 2017-03-15 2021-01-06 株式会社コナミデジタルエンタテインメント サーバ装置、及びそれに用いられるコンピュータプログラム
JP6767308B2 (ja) * 2017-05-23 2020-10-14 ファナック株式会社 機械と相互通信可能に接続される機械制御用コンピュータ、機械システム、ベースソフトウェア、コンピュータ読取可能な記録媒体、データ構造、及び機械制御方法
JP7238632B2 (ja) * 2019-06-26 2023-03-14 オムロン株式会社 制御システム、制御装置、および管理方法
US11397793B2 (en) * 2019-12-03 2022-07-26 Microsoft Technology Licensing, Llc Delivering digital content for an application
KR20220088633A (ko) * 2020-12-18 2022-06-28 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 음성을 텍스트로 변환하는 방법, 시스템, 장치 및 매체
CN114840859B (zh) * 2021-12-21 2023-03-24 许磊 一种通用数据的流媒体化系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086784A (ja) * 1994-06-15 1996-01-12 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア/著作物の無断複製使用防止システムおよび無断複製使用防止処理方法
JPH10133869A (ja) * 1996-10-30 1998-05-22 Shinichiro Ogawa ソフトウエア製品の流通方法
WO2000072119A2 (en) * 1999-05-05 2000-11-30 Rabin Michael O Methods and apparatus for protecting information
JP2001084137A (ja) * 1999-09-14 2001-03-30 Matsushita Electric Ind Co Ltd ライセンス管理装置およびライセンス管理方法
JP2002163578A (ja) * 2000-08-21 2002-06-07 Credist Inc ソフトウェア貸し出しシステム及び、ソフトウェア貸し出し方法並びに、ソフトウェア貸し出しシステム用のコンピュータプログラム
JP2002229660A (ja) * 2001-01-31 2002-08-16 Toshiba Corp ソフトウェア流通管理システム、ソフトウェア流通管理方法、ソフトウェア使用管理アプレット、ソフトウェア使用管理アプレットを記録した媒体及びソフトウェア流通管理サーバ
JP2002351564A (ja) * 2001-05-22 2002-12-06 Ntt Communications Kk アプリケーション提供サービスのための装置及び方法並びにプログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5390256A (en) * 1991-01-08 1995-02-14 Dolby Laboratories Licensing Corporation Dynamic loader
US5724425A (en) * 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
JPH10177473A (ja) * 1996-12-18 1998-06-30 Japan Airlines Co Ltd コンピュータ・プログラムのインストール方法及びシステム
JP3623347B2 (ja) * 1997-09-11 2005-02-23 三菱電機株式会社 デジタルコンテンツ配布システム装置
WO1999057634A1 (en) * 1998-05-06 1999-11-11 Jcp Computer Services Ltd. Processing apparatus and method
US6725260B1 (en) * 1998-09-11 2004-04-20 L.V. Partners, L.P. Method and apparatus for configuring configurable equipment with configuration information received from a remote location
US6889376B1 (en) * 1999-05-12 2005-05-03 Treetop Ventures, Llc Method for migrating from one computer to another
US7062765B1 (en) * 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
US6453469B1 (en) * 1999-06-18 2002-09-17 Phoenix Technologies Ltd. Method and apparatus to automatically deinstall an application module when not functioning
JP2001100989A (ja) * 1999-09-30 2001-04-13 Casio Comput Co Ltd データ通信装置、データ通信システム、及び記憶媒体
JP3578266B2 (ja) * 2000-01-06 2004-10-20 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションの起動方法、アプリケーションの起動のためのソフトウエア・プロダクト
JP2001337732A (ja) * 2000-05-25 2001-12-07 Infotekku Kk コンピューターソフトウエアの利用認証方法
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
JP2001216041A (ja) * 2000-12-22 2001-08-10 Sakura Consulting:Kk ソフトウェア製品の流通方法
JP3483540B2 (ja) * 2001-04-23 2004-01-06 富士通株式会社 ソフトウェア流通システムにおける識別子管理装置及び方法
CA2414246C (en) * 2001-05-14 2014-01-28 Ntt Docomo, Inc. System for managing program stored in storage block of mobile terminal
US7055067B2 (en) * 2002-02-21 2006-05-30 Siemens Medical Solutions Health Services Corporation System for creating, storing, and using customizable software test procedures
US7260557B2 (en) * 2003-02-27 2007-08-21 Avaya Technology Corp. Method and apparatus for license distribution
US7203745B2 (en) * 2003-05-29 2007-04-10 Akamai Technologies, Inc. Method of scheduling hosts for software updates in a distributed computer network
US7222339B2 (en) * 2003-06-13 2007-05-22 Intel Corporation Method for distributed update of firmware across a clustered platform infrastructure

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH086784A (ja) * 1994-06-15 1996-01-12 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア/著作物の無断複製使用防止システムおよび無断複製使用防止処理方法
JPH10133869A (ja) * 1996-10-30 1998-05-22 Shinichiro Ogawa ソフトウエア製品の流通方法
WO2000072119A2 (en) * 1999-05-05 2000-11-30 Rabin Michael O Methods and apparatus for protecting information
JP2001084137A (ja) * 1999-09-14 2001-03-30 Matsushita Electric Ind Co Ltd ライセンス管理装置およびライセンス管理方法
JP2002163578A (ja) * 2000-08-21 2002-06-07 Credist Inc ソフトウェア貸し出しシステム及び、ソフトウェア貸し出し方法並びに、ソフトウェア貸し出しシステム用のコンピュータプログラム
JP2002229660A (ja) * 2001-01-31 2002-08-16 Toshiba Corp ソフトウェア流通管理システム、ソフトウェア流通管理方法、ソフトウェア使用管理アプレット、ソフトウェア使用管理アプレットを記録した媒体及びソフトウェア流通管理サーバ
JP2002351564A (ja) * 2001-05-22 2002-12-06 Ntt Communications Kk アプリケーション提供サービスのための装置及び方法並びにプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072664A (ja) * 2004-09-01 2006-03-16 Nec Corp ファイル管理システム、およびファイル管理プログラム
JP4539240B2 (ja) * 2004-09-01 2010-09-08 日本電気株式会社 ファイル管理システム、およびファイル管理サーバ
JPWO2006073008A1 (ja) * 2005-01-07 2008-10-23 株式会社システム・ケイ ネットワークカメラへのログイン認証システム
JP2008532121A (ja) * 2005-02-22 2008-08-14 コネクティフ ソリューションズ インク. 分散型資産管理システム及び方法
US7930743B2 (en) 2006-09-01 2011-04-19 Fuji Xerox Co., Ltd. Information processing system, information processing method, information processing program, computer readable medium and computer data signal
JP2008084233A (ja) * 2006-09-29 2008-04-10 Fuji Xerox Co Ltd 情報処理システムおよび情報処理プログラム
JP2010183506A (ja) * 2009-02-09 2010-08-19 Nippon Telegr & Teleph Corp <Ntt> マルチキャスト通信システム、ルーティング装置、認証サーバ装置、ルーティング装置用プログラム、認証サーバ装置用プログラム、並びにルーティング方法および認証方法
JP2014137699A (ja) * 2013-01-16 2014-07-28 Fujitsu Ltd 情報資源保護プログラム、及び情報資源保護方法

Also Published As

Publication number Publication date
CN1723426A (zh) 2006-01-18
AU2003289301A1 (en) 2004-06-30
US7484207B2 (en) 2009-01-27
JPWO2004053666A1 (ja) 2006-04-13
CN1333314C (zh) 2007-08-22
US20060117314A1 (en) 2006-06-01
JP4701446B2 (ja) 2011-06-15
JP2008262580A (ja) 2008-10-30

Similar Documents

Publication Publication Date Title
JP4701446B2 (ja) ソフトウェア実行制御システム及びソフトウェアの実行制御プログラム
US7752139B2 (en) Method and system for managing software licenses and reducing unauthorized use of software
US7483988B2 (en) Information transmission method and system
JP3766197B2 (ja) ソフトウエア流通方法およびサーバ装置およびクライアント装置
TWI387898B (zh) 以授權資訊為基礎於手持裝置間程式化地轉移應用程式
US9628447B2 (en) Methods and apparatus for protected distribution of applications and media content
US7089594B2 (en) Application rights management in a mobile environment
US9117055B2 (en) Method and apparatus for downloading DRM module
US20020165026A1 (en) Method and system for delivering and securing computer game content via the internet
US20090089881A1 (en) Methods of licensing software programs and protecting them from unauthorized use
WO2008004525A1 (fr) Dispositif de traitement d&#39;informations, dispositif d&#39;enregistrement d&#39;informations, système de traitement d&#39;informations, procédé de mise à jour de programme, programme, et circuit intégré
JP2008543216A (ja) Drm基盤のコンテンツ提供及び処理方法並びにその装置
JPH10214297A (ja) インターネットを利用した会員制サービスシステムおよび方法
US20040199766A1 (en) Keyed-build system for controlling the distribution of software
JP2004030617A (ja) インターネットを利用したトランザクションサービスシステムおよびその方法
JP2001350534A (ja) 有償ソフトウェアのダウンロード方法及びシステム
WO2006006241A1 (ja) コンテンツ配信システム及びランチャー
JP2003162340A (ja) 情報処理プログラム,情報送信プログラム,情報送信システム,情報処理装置、及び情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体
JPH10133869A (ja) ソフトウエア製品の流通方法
JP2004062864A (ja) インターネットを利用したオンラインショッピングシステム
JP2004046448A (ja) 配信データ管理システム及びその方法
JP2004030618A (ja) インターネットを利用したサービスシステムおよびその方法
JP2002024096A (ja) 端末装置、データ配信装置、データ配信システム、及び、データ配信方法
WO2000075758A1 (en) Protection against unauthorized use of software products
WO2004061625A1 (ja) ソフトウェア・ライセンス管理方法および生体認識装置を備えた携帯型電子デバイス

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004558454

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 2006117314

Country of ref document: US

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 10538764

Country of ref document: US

Ref document number: 20038A5688X

Country of ref document: CN

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10538764

Country of ref document: US