WO2006003875A1 - プログラム実行機器およびそのプログラム実行方法 - Google Patents

プログラム実行機器およびそのプログラム実行方法 Download PDF

Info

Publication number
WO2006003875A1
WO2006003875A1 PCT/JP2005/011792 JP2005011792W WO2006003875A1 WO 2006003875 A1 WO2006003875 A1 WO 2006003875A1 JP 2005011792 W JP2005011792 W JP 2005011792W WO 2006003875 A1 WO2006003875 A1 WO 2006003875A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
permission information
information
permission
recorded
Prior art date
Application number
PCT/JP2005/011792
Other languages
English (en)
French (fr)
Inventor
Tomokazu Kanamaru
Masahiro Oashi
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to US11/571,098 priority Critical patent/US7823197B2/en
Priority to JP2006528683A priority patent/JP4682139B2/ja
Priority to EP05755805A priority patent/EP1783581A4/en
Publication of WO2006003875A1 publication Critical patent/WO2006003875A1/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]

Definitions

  • the present invention relates to a program execution device that manages permissions (access authority or execution authority for resources) in a device that executes a program.
  • Typical technologies for program execution systems that run programs on home appliances include J AVA (registered trademark) and Dot NET (registered trademark).
  • a program added to a device is accompanied by permission information indicating an operation permitted for the program.
  • permission information By setting permission information appropriately, for example, an added program may tamper with or destroy the user's personal information existing on the device, or use the network function without permission to transfer data on the device to the outside. It is possible to prevent the risk of selfish behavior such as leakage.
  • «JA VA registered trademark
  • a typical method of distributing a program to be added to a device is a method of performing this through a network.
  • a service has already been realized in which a program is later distributed to the device by wireless communication and executed.
  • portable medium In addition to this, the method power of distributing programs through a portable recording (or storage) medium (hereinafter simply referred to as “portable medium”) has been increasingly highlighted in recent years.
  • portable media include optical disks, silicon devices, memory cards, and other various media that can record data and are portable.
  • the home appliance includes a mechanism that can attach and detach a portable medium.
  • the form of attachment / detachment varies depending on the type of portable medium.
  • the portable medium is loaded in the device and the data recorded on the portable medium can be read by the device.
  • the portable media is called “inserted” into the device.
  • the other state is called the state in which the portable medium is “discharged” from the device, or the state in which the device has “discharged” the portable medium.
  • the household electric appliance reads and executes the program directly from the inserted portable medium, or executes the program recorded on the portable medium after copying it to a unique storage device of the apparatus. You can select a method such as, and execute that program.
  • Some devices equipped with a removable medium attachment / detachment mechanism associate the operation of the program with the removable state of the portable medium in some form.
  • a conventional example is shown in Patent Document 1, for example.
  • Patent Document 2 discloses a technique for performing some processing other than simple data copying when a device copies program data from a portable medium to a device.
  • a device copies program data from a portable medium to a device.
  • One is a method in which the program execution system of the device directly reads and executes the program recorded on the portable medium. In this case, it is an indispensable condition that the portable medium is inserted in the device.
  • the program execution system of the device uses the copied data. This is a method of reading and executing.
  • the portable medium itself does not necessarily have to be inserted into the device when the program is executed.
  • the latter method allows a user who holds a portable medium to copy the portable medium freely once the program on the portable medium is copied to a storage device in the device. It is also a method that allows the next distribution (for example, transferring or selling portable media to other users). Therefore, from the viewpoint of the creator or provider of the portable media, it is preferable to allow the program to be executed by this method, but there are many cases.
  • Patent Document 1 permits the execution of the program copied to the storage device only when a portable medium in which the program is recorded is inserted in the device, and otherwise.
  • a method of prohibiting program execution is proposed. In this method, in order to run the program, it is always necessary to insert a portable medium into the device. Therefore, the secondary distribution of the portable medium, which is not intended by the creator or provider of the portable medium, can be performed by the user. Can be prevented from doing.
  • Patent Document 1 Japanese Patent Laid-Open No. 2004-46801
  • Patent Document 2 Japanese Translation of Special Publication No. 2002-511615
  • Non-Patent Document 1 jAVA (registered trademark) Security ”by Scott Oaks, published by O, Reilly, May 2001, ISBNO—596—00157—6
  • An object of the present invention is to provide a program execution device capable of setting permission information in accordance with a program acquisition route when a program provided on a portable medium is executed.
  • the present invention provides a program execution device that acquires and executes a program to which permission information indicating a right to access a resource at the time of program execution is added.
  • the permission information setting means for setting the first permission information included in the permission information or the second permission information different from the first permission information, and the first information set by the permission information setting means
  • an execution means for executing the program according to the second permission information an execution means for executing the program according to the second permission information.
  • the first permission information and the second permission information different from the first permission information are set according to the acquisition route of the program. Therefore, the permission information according to the usage mode is set in the program. It can be applied and operated.
  • the permission information setting unit includes a first setting unit configured to set the first permission information when the program is read from a portable recording medium mounted on the mounting unit. And a second setting unit for setting the second permission information when the program is read from the storage means.
  • a program that operates using the local resources held by the device is provided to the user who uses the portable recording medium mounted on the device.
  • For users who do not use portable recording media installed in devices provide programs that operate with some functions disabled (for example, network access functions outside devices). In this way, appropriate permission information can be set according to the program acquisition route.
  • the permission information recorded on the portable recording medium includes first permission information and second permission information
  • the storage means includes the first information together with the program. Permission information and second permission information are stored, the first setting unit sets first permission information recorded in the portable recording medium, and the second setting unit The second permission information recorded in the program storage means is set.
  • the permission information recorded on the portable recording medium includes the first permission information, and further includes conversion means for converting the first permission information into the second permission information according to the conversion rule. We are going to prepare.
  • the permission information added to the program recorded on the portable recording medium can be used as the first permission information as it is, and the first permission information is converted to the first permission information. 2 It can be used as permission information.
  • the apparatus further comprises detection means for detecting a portable recording medium attached to the attachment means, and the permission information setting means is configured such that the detection means detects the portable recording medium.
  • the first permission information is set regardless of the acquisition route.
  • the first program storage means and the first program are read regardless of the acquisition route of the program when the program is read and executed.
  • the program can be executed according to the permission information.
  • the information processing apparatus further includes an acquisition unit configured to acquire additional program information associated with the program, and the additional program information includes an additional program for adding or updating the function of the program and second permission information,
  • the permission information setting means sets second permission information when passing through the acquisition means on the acquisition route.
  • the additional program information associated with the program recorded on the portable recording medium is acquired by the acquisition means, and when the additional program is executed, the second program information included in the additional program information
  • the program can be executed according to the permission information.
  • mounting means for mounting a portable recording medium in which the program is recorded and program storage means for replicating and storing the program and the permission information recorded in the mounted portable recording medium
  • the acquisition means includes an external server, a download unit that downloads the additional program information via a communication line, and an addition unit that additionally stores the downloaded additional program information in the program storage unit.
  • the present invention also relates to a program execution method for a program execution device that acquires and executes a program to which permission information indicating permission to access resources at the time of program execution is added. And a permission information setting step for setting first permission information included in the permission information or second permission information different from the first permission information, and the permission information. An execution step of executing the program according to the first or second permission information set in the information setting step.
  • FIG. 1 is a configuration diagram of Embodiment 1 of a program execution device according to the present invention.
  • FIG. 2 is a configuration diagram of a modification of the above embodiment.
  • FIG. 3 is a diagram showing an example of permission information in the embodiment.
  • FIG. 4 is a diagram showing an example of permission information in the above embodiment.
  • FIG. 5 is a diagram showing a flow of processing up to execution and installation of a program according to the embodiment.
  • FIG. 6 is a diagram showing an example of a permission change policy of the program storage unit of the above embodiment.
  • FIG. 7 is a diagram showing an example of an installation information table in the program storage unit of the embodiment.
  • FIG. 8 is a diagram showing a processing flow when a program recorded in a program storage unit of the embodiment is started.
  • FIG. 9 is a diagram showing a flow of processing (insertion / discharge) of a portable storage medium according to the embodiment.
  • FIG. 10 is a configuration diagram of Embodiment 3 of a program execution device according to the present invention.
  • FIG. 11 is a diagram showing an example of an extended installation information table in the program storage unit of the above embodiment.
  • FIG. 12 is a diagram showing a flow of program installation processing according to the embodiment.
  • FIG. 13 is a diagram showing a flow of an additional program information installation process according to the above embodiment.
  • FIG. 14 is a diagram showing a flow of processing up to execution of a program according to the embodiment. Explanation of symbols 100 program execution equipment
  • a program execution device is a device that has a mounting section for mounting a portable medium, reads and executes a recorded program, and includes a program execution section for that purpose.
  • the device of the present invention includes a program storage unit that copies and stores a program recorded on a portable medium.
  • This program execution unit supports program execution in the following two types of usage (program acquisition route).
  • the program data refers to the execution format of the program.
  • «JAVA (registered trademark) program refers to JAVA (registered trademark) class files and JAR files that are archive formats.
  • execution method A The difference between execution method A and execution method B will be described in more detail.
  • the storage device (storage means) of the program storage unit referred to in execution method B is a long-term storage device (NON—) such as a hard disk or non-volatile memory that retains its recorded contents even when the device power is turned off.
  • NON— long-term storage device
  • Volatile storage systems such as volatile RAM (random access' memory), that lose their recorded contents when power supply is interrupted, are included as storage devices of the program storage unit. Absent.
  • Execution method A is portable without using any program data stored in the long-term storage device
  • program storage unit means that data can be recorded by a long-term storage device such as a hard disk or non-volatile memory as described above.
  • Permission information describing the range of use permitted for the program is added to the program recorded on the portable medium.
  • the program execution unit When executing the program, the program execution unit reads the permission information added to the program and reflects it in the operation during program execution. At this time, the program execution unit executes the program using permission information that varies depending on the type of usage. In other words, when executing a program using execution method A, the program is executed using the first permission information. When executing a program using execution method B, the program is executed using the second permission information. Execute.
  • the present invention assumes the following three types of mechanisms for preparing different permission information depending on the program acquisition route.
  • the duplication of the program recorded on the portable medium is the permission information when executing the program recorded on the portable medium and the program when storing the program stored in the program storage unit. If the permission information is substantially the same permission information, the execution by the program contained in the portable medium and the execution by the program stored in the portable medium force program storage unit will realize the same function. Included in portable media This is an operation for storing a program in the program storage unit.
  • the same file as the file included in the portable medium program is stored in the program storage unit, or the program data included in the portable medium is compressed in the program storage unit. Storing (in this case, it is necessary to restore the compressed file when executing the program stored in the program storage unit and then execute it), or the compressed program included in the portable medium For example, the developed data is stored in the program storage unit.
  • the device acquires the program information associated with the program recorded on the portable medium by downloading, and acquires the second permission information included in the additional program information.
  • the device of the present invention when executing the program by the execution method B, distinguishes whether or not a portable medium in which a program is recorded is inserted in the device.
  • Example method B Read and execute the program data recorded in the program storage unit with the portable medium inserted in the device.
  • Example method B-2 Read and execute the program data recorded in the program storage unit with no portable media inserted in the device.
  • the device of the present invention also distinguishes between these usage forms, and executes programs using different permission information accordingly.
  • FIG. 1 is a configuration diagram of Embodiment 1 of a program execution device 100 according to the present invention.
  • FIG. 2 is a configuration diagram of a modification of the first embodiment, and the same components are denoted by the same reference numerals.
  • the program execution device 100 (hereinafter simply referred to as “device 100") is capable of attaching and detaching the portable medium 120.
  • a possible mounting mechanism (not shown) is provided.
  • FIG. 1 shows the case where the program adds two permission information, that is, the first permission information and the second permission information to the portable medium 120
  • FIG. 2 shows the portable medium 120. Shows the case where the program adds one permission information, that is, only the first permission information.
  • a program 121 is recorded on the portable medium 120. If the device 100 can read the data recorded on the portable medium 120 such as a program, what kind of portable medium 120 is used and what is the mechanism for inserting / discharging (detaching) the portable medium 120 from the device? Also good.
  • the portable medium includes an optical disk, a memory card, a silicon device, and other various objects capable of recording data.
  • a storage device such as a memory card is equipped with a dedicated terminal, and the portable medium can be attached to or detached from the terminal by directly inserting or removing the portable medium.
  • Other portable media, such as optical discs, can be attached to and removed from portable devices by including a disc loading mechanism using trays and an optical disc reader (pickup). is there.
  • the program 121 is written in the JAVA (registered trademark) execution format, and the program execution unit 107 is realized by a J AVA (registered trademark) virtual machine.
  • the program 121 may be in any other format as long as it can be operated by the program execution unit 107 described later.
  • the program here may be a dot NET (registered trademark) execution format, and the program execution unit 107 may be a dot NET (registered trademark) virtual machine.
  • the program may be model-dependent native code, and the program execution unit 107 may be a processor and a main memory (main memory) included in the device.
  • JAR and a recording format are defined!
  • JAR As a format for recording a JAVA (registered trademark) program and a file that records meta information accompanying the JAVA (registered trademark) in a single file, JAR and a recording format are defined!
  • a program is recorded on the portable medium 120 in this JAR format.
  • programs 121 there may be a plurality of programs 121 recorded on the portable medium 120, only one program 121 is recorded for convenience of explanation.
  • the program 121 recorded on the portable medium 120 is added with a program ID, which is a program identification symbol, and permission information 123.
  • the permission information is information indicating the range of behavior allowed for the program in the device that operates the program, that is, the access execution authority to the device resource.
  • a description describing permissions for each device resource is called a permission item, and one or more permission items are described in a table format or a language format and stored in a file called a permission file.
  • the content of the permission item depends on what function the device executing the program has. For example, in the case of a device that reproduces a high-density recording medium represented by a DVD (digital 'Versatile' disc) or a BD (Blue Ray 'disc), the following are specific permission items.
  • Permission item example 3 Is it OK for the program to access specific information of the device and read it?
  • the specific information here includes various settings such as clock time, recording reservation information, channel settings, personal information such as the name of the user of the device, and usage history of the device.
  • Permission Item Example 4 Can a program access and read other contents (for example, video recorded on the portable medium 120)?
  • Program power Is it possible to perform specific execution processing? For example, thread operations, serialization, deserialization, reflection, etc.
  • Output resources include, for example, displays, specific windows, sound sources, LED lamps, and vibrators.
  • Input resources include, for example, a power switch, various switches, a tuner, a remote control, a joystick, and a touch panel.
  • a program may control the execution of another program! /. For example, starting execution, pausing, or ending.
  • FIG. 3 is a diagram showing an example of permission information in a table format. Based on this figure, an example of the type of information specified by permission information will be described.
  • the details specified in the permission item of the permission information table 301 include two types: resource type and parameter.
  • Resource type 311 indicates the type of behavior permitted by the permission (accessed device resource), and parameter 312 indicates the type. Indicates the scope of permission for the resource.
  • Each permission item entry indicates the following permissions corresponding to the indicated code.
  • (301A) Indicates permission to refer to or update all files on a device or a specific file.
  • (301B) Indicates permission to reference / update the device and various properties of the device.
  • (301C) Indicates permission to use network functions (such as use of network sockets, port numbers, use of specific communication protocols, and access to specific communication destinations).
  • (301D) Indicates permission to use specific operations (thread operation, serialization, deserialization, reflection, etc.) during program execution.
  • (301E) Indicates permission to use output resources (display, specific window, sound source, LED lamp, vibrator, etc.) of the device.
  • Input resources of equipment power switch, various switches, tuner, remote control
  • (301H) Indicates whether or not the data used by the program and the data generated by the program can be exported to other devices.
  • permission information information on whether or not the use of these programs is permitted when the program is executed and the restrictions (how far the operation is permitted) is recorded. Is done.
  • the permission types shown in the permission information are those shown above. Of course, other things may be used.
  • the permission information can be recorded in any format that can be read when the program execution system executes the program.
  • POLICY” file may be set as a format for recording the permission of the JAVA (registered trademark) program. If similar information is described, it may be in other formats.
  • FIG. 4 shows an example in which permission information is described in the XML language format.
  • permission information 401 for example, a user name “user name” 411 of a property which is one type of device resource is set to be neither read nor write (False).
  • the device 100 includes a program storage unit 101, a reading unit 105, an installation unit 104, a selection unit 106, a program execution unit 107, a permission setting unit 108, a detection unit 109, and a device resource 110. .
  • a permission conversion unit 115 is further provided.
  • the program storage unit 101 the program recorded on the portable medium 120 is copied and recorded by the installation unit 104.
  • the program storage unit 101 can be realized by a long-term storage device such as a non-volatile memory such as a hard disk, which retains the recorded contents even when the device is turned off.
  • the program 121 recorded in the portable medium 120 and the permission information 123 added thereto are all copied to the program storage unit 101 of the device.
  • the program 121 recorded on the portable medium 120 is copied to the program storage unit 101 by the installation unit 104 as it is.
  • the permission information 123 recorded in the portable medium 120 is copied as it is by the installation unit 104 into the program storage unit 101 of the first permission information 123A.
  • the first The permission information 123A is converted by the permission conversion unit 115 and recorded in the program storage unit 101 as the second permission information 103B.
  • the program execution unit 107 executes the program (121 or 102).
  • the program is provided by JAVA (registered trademark)
  • the execution of the program itself can be realized by using an AVA (registered trademark) virtual machine.
  • the installation unit 104 installs the program 121 and permission information 123A of the portable medium 120.
  • the storage medium ID of the portable medium 120, the program ID of the program 121, and the file name of the first permission information 123A are read and recorded in the installation information table 114 described later. .
  • the second permission information 123B if there is the second permission information 123B, it is also installed. As shown in FIG. 2, if there is no second permission information 123B, the permission conversion unit 115 1st permission information 123A is transmitted to and the second permission information is converted and generated. Then, the generated second permission information is received from the permission conversion unit 115 and installed in the program storage unit 101.
  • the reading unit 105 reads the storage medium ID of the portable medium 120, the program 121, the program ID thereof, and the first permission information 123A. Further, as shown in FIG. If there is 123B, it is also read and transmitted to the selection unit 106. Also, as shown in FIG. 2, if there is no second permission information 123B, the first permission information 123A is transmitted to the permission converting unit 115 to instruct to convert and generate the second permission information. Then, the generated second permission information 103 B is received from the permission conversion unit 115 and transmitted to the selection unit 106.
  • the selection unit 106 inquires of the user whether to execute the program 102 installed in the program storage unit 101 or the program 121 recorded in the portable medium 120. In the former case, the program 106 The program 102 installed in the storage unit 101 is read and written into the main memory (not shown) of the program execution unit 107.
  • the first and second permission information of the program is read from the program storage unit 101, and the storage medium ID and program ID of the portable medium 120 are read from the installation information table 114, which will be described later, and these permissions are set. Notify the setting unit 108. In the latter case, the selection unit 106 instructs the reading unit 105 to read from the portable medium 120. Then, the program recorded on the portable medium 120 is received from the reading unit 105 and written in the main memory.
  • the storage medium ID of the portable medium 120, the program ID of the program written in the main memory, and the first and second permission information are received from the reading unit 105 and transmitted to the permission setting unit 108.
  • the storage medium ID is obtained from the entry in the storage medium ID column 715 of the installation information table 114 when the program is in the program storage unit 101, or the reading unit 105 when the program is in the portable medium 120. Get from.
  • the selection unit 106 uses a display device (not shown) and a keyboard or a mouse (not shown) when making an inquiry. Note that a default selection may be defined when no query is explicitly shown to the user. That is, an embodiment in which an inquiry to the user as to which selection is to be made may be omitted by setting the device in advance.
  • the program execution unit 107 analyzes permission information added to the program, and appropriately controls (controls) execution of the program.
  • JAVA registered trademark
  • virtual machines have a security manager and an access controller.
  • the JAVA (registered trademark) virtual machine analyzes the permission information added to the JAVA (registered trademark) program, The program is loaded into the virtual machine using this mechanism. By taking this procedure, the secure manager and the access controller appropriately control the execution of the program so that the behavior when the program is executed follows the permission range indicated in the permission information. Details of this mechanism are given in Non-Patent Document 1.
  • the permission setting unit 108 is realized by a JAVA (registered trademark) virtual machine, and sets permission information of a program executed by the program execution unit 107.
  • the permission setting unit 108 selects the storage medium ID of the portable medium 120 that records the program to be executed, the program ID of the program to be executed, and the first and second permission information.
  • the permission information received from the selection unit 106 is set in the main memory (not shown) of the program execution unit 108 as appropriate one of the first permission information and the second permission information for the program to be executed.
  • the permission setting unit 108 sets first permission information. Even when the program to be executed is read from the program storage unit 101, the first permission information is set when the portable medium 120 in which the program to be executed is recorded is inserted. I do. Otherwise, set the second permission information.
  • the permission setting unit 108 instructs the detection unit 109 to store the storage medium ID of the portable medium 120 and the program. The ID is transmitted, and the mounting mechanism (not shown) is instructed to determine whether or not the portable medium 120 is inserted.
  • the permission setting unit 108 sets the first permission information and the second permission, respectively. Change settings to information.
  • the detection unit 109 receives the storage medium ID and the program ID from the permission setting unit 108, and when the portable medium 120 is inserted in the device, the received storage medium ID and program ID are inserted. It is determined whether the storage medium ID of the portable medium 120 and the program ID of the recorded program match, and if they match, the permission setting unit 108 is notified of the insertion state. If they do not match, the permission setting unit 108 is also notified of the fact that they are not inserted (discharge).
  • the detection unit 109 can be realized by a recognition device for the portable medium 120, a process for reading data from the portable medium 120, and a software program that accesses the device.
  • the device resource 110 is realized as a function of various devices included in the device, a function of accessing data stored in the device, which can be accessed by the program execution unit 107 executing the program.
  • the program execution unit 107 is realized by a JAVA (registered trademark) virtual machine
  • access to the device resource 110 is restricted to the JAVA (registered trademark) program.
  • Gram force Can be realized by providing various called JAVA (registered trademark) libraries
  • the device resource 110 has a communication function 111, an input / output function 112, and a storage access function 113. Of course, other devices may be used.
  • the permission conversion unit 115 is added to and recorded on the program 123 of the portable medium 120 according to an instruction from the installation unit 104 or the selection unit 106, and the permission information is only the first permission information. Then, the second permission information is generated by converting it, recorded in the program storage unit 101, and the file name is recorded in the entry in the second permission information column 713 of the program in the installation information table 114.
  • the permission conversion unit 115 defines a rule (permission change policy) for changing the permission information 123, and changes the input permission information according to the definition to generate new permission information. Can be realized by software programs. Details of the permission conversion unit 115 will be described later. Note that the permission information stored in the program storage unit 101 may be tamper-resistant so that it cannot be stolen or altered by any means other than the device of the present invention from the viewpoint of security. Hope ⁇ .
  • FIG. 5 is a diagram showing the flow of installation processing and program startup processing.
  • the installation is executed by the installation unit 104 when the portable medium 120 is inserted into the device 101 and the user gives an installation instruction. For example, it can be realized by inquiring a user who uses the device 100 whether or not to install the program in the device 100 and obtaining the response result. Alternatively, as an implementation method other than inquiring the user, if the installation unit 104 has information on the free capacity of the long-term storage device in the device and has enough capacity to store the program, An implementation form such as automatically performing replication processing may be used.
  • the installation unit 104 is a product program recorded on the portable medium 120 inserted in the device 100.
  • the program 121 is copied to the program storage unit 101 (S504).
  • the program storage unit 101 holds information on the usable capacity of the long-term storage device of the device. For example, if there is a problem with the replication process, such as when there is insufficient free space on the long-term storage device, the installation is terminated.
  • the installation unit 103 determines whether or not a force to apply a change is determined.
  • Case 1 is selected, and the process proceeds to S507.
  • the program storage unit 101 stores information on the usable capacity of the long-term storage device of the device. keeping. For example, if there is a problem in performing the replication process, such as insufficient free space on the long-term storage device, S506 is canceled and the program start-up is recorded on the portable medium 120.
  • the program may be directly started by the program execution unit 107 (S503 is performed).
  • the permission information of the program recorded on the transport medium 120 is converted, and second permission information is newly generated. Then, the generated second permission information is received from the permission conversion unit 115, recorded in the program storage unit 101, and the ID or file name is recorded in the second permission information column 713 of the installation information table 114. Included.
  • the permission conversion unit 115 can be implemented as, for example, a software program that reads permission information before change and outputs permission information rewritten by a specific rule.
  • FIG. 6 is a diagram illustrating an example of conversion by the permission conversion unit 115.
  • Fig. 6 (a) shows an example of permission information before the change, that is, permission information added to the program recorded on the portable medium 120.
  • This figure shows an example of realizing information in XML format.
  • the permission conversion unit 115 reads the permission information shown in FIG. 6 (a), and generates new permission information according to the rules described above.
  • Figure 6 (b) is an example of new permission information generated by S507.
  • the changed second permission information is recorded in the program storage unit 101.
  • FIG. 7 An example of installation information is shown in Figure 7.
  • the installation information is recorded in the installation information table 701 in a table format.
  • the program is copied to the program storage unit 101, the program is added as a new entry in the installation information table.
  • the installation information table 701 is composed of item columns of a program 711, first permission information 712, second permission information 713, program ID 714, and portable medium ID 715.
  • program column 711 information for specifying a target program is described.
  • the file name in the file system in the program storage unit 101 is described
  • each item column 712, 713 of the first permission information and the second permission information information for specifying permission information corresponding to the program is described.
  • the permission file name in the file system in the program storage unit 101 is described.
  • the first permission information field 712 when a program having a portable medium capacity is acquired and executed, the program installed in the program storage unit 101 is acquired and executed with the portable medium mounted. File name of permission information used sometimes.
  • the second permission information field 713 is used when the program installed in the program storage unit 101 is acquired and executed with the portable medium ejected. The file name of the permission information used is described.
  • the entries in the first permission information column 712 and the second permission information column 713 describe permission file names (each of which can be specified more than once) for identifying permission information.
  • the identification information “proglA.prT,“ withdisk ”of the first permission information 712 used in the execution of the state where the portable medium 120 is inserted and the state where the portable medium 120 is not inserted The second permission information field 713, “proglA.prT,“ no disk ”, and identification information used in the execution of the above are described.
  • identification information for identifying the program described in the duplicatable portable medium 120 is recorded.
  • a file name identifying a program on the portable medium 120 is recorded here. How to use the program ID information may or may not exist depending on the power realization form described below.
  • identification information for identifying the portable medium 120 that is the copy source is recorded.
  • serial numbers held individually by the portable medium 120 are recorded here. How to use portable media ID information will be described later, but it may not exist depending on the implementation.
  • the selection unit 106 inquires of the user whether to execute the program installed in the program storage unit 101 or the program recorded in the portable medium 120 (S510). In the former case, After the program 102 installed in the program storage unit 101 is written into the main memory by the selection unit 106 and the permission setting unit 108 sets the second permission information 103B in the main memory, the program execution unit 107 The system is started (S511).
  • the program recorded in the portable medium 120 is written into the main memory by the selection unit 106 via the reading unit 105, and the permission setting unit 108 stores the first permission information 123A in the main memory.
  • Program execution unit 107 starts the program. Move (S512).
  • the information on which permission information is selected may be recorded in the portable medium 120, or the device side may determine whether the permission information is selected according to an appropriate rule (for example, the order of data in the portable medium 120). It's OK to make a decision!
  • FIG. 8 shows the details of the process (S511) when the program recorded in the program storage unit 101 is started.
  • Timing 2 Periodically determine whether or not the portable medium 120 is inserted during the execution of the program.
  • the program execution power recorded in the program storage unit 101 is started by the program execution unit 107.
  • the program execution unit 107 is realized by a JAVA (registered trademark) virtual machine
  • the virtual machine for starting the execution of the program is initialized (S801).
  • This determination is performed by the detection unit 109.
  • the detection unit 109 not only simply determines the insertion state of any portable medium 120, but also determines the type of the portable medium 120 and inserts the “correct” portable medium 120 according to the program to be started. It is determined whether or not.
  • the flow of the process for determining whether the portable medium 120 is inserted or discharged is shown in FIG. [0090] First, it is determined whether or not any portable medium 120 is simply inserted into the device 100 (S901). If the insertion of the portable medium 120 is confirmed, the process proceeds to S902. If the portable medium 120 is inserted into the device 100, the process proceeds to S907.
  • the program execution unit 107 obtains the ID of the portable medium 120 of the program instructed to start. This can be acquired by referring to the storage medium ID field 715 of the installation information table 114 of the program storage unit 101 described above (S902).
  • the identity can be confirmed using, for example, serial numbers individually held by the portable medium 120.
  • serial numbers individually held by the portable medium 120.
  • it can be used. It doesn't matter.
  • the detection unit 109 acquires the program ID of the program whose activation is instructed by the program execution unit 107 from the permission setting unit 108 (S904).
  • Read the recorded contents of portable medium 120 inserted into device 100 obtain the ID of the recorded program, and check the identity of the program ID of the program to be activated acquired in S904 (S905) .
  • the identity can be confirmed by using a file name for identifying a program on a portable medium.
  • the program ID if there is information that can confirm the identity of the program recorded in the program storage unit 101 and the program recorded in the portable medium 120 inserted in the device, it may be used. Absent.
  • the process reaches S906, the correct portable medium 120 is inserted in the device.
  • the determination is made using two types of information, that is, the portable medium ID and the program ID.
  • the portable medium ID only one of the information may be used. Also, even if two types of information are used, if only one of the information matches, it is decided that the correct portable medium has been inserted into the device.
  • the detection unit 109 described above determines whether or not the “correct” portable medium 120 is inserted in the device 100. If it is determined that the card is inserted, the process proceeds to S805A. Otherwise, the process proceeds to S805B.
  • the permission setting unit 108 sets the first permission information file (multiple allowed) identified by the identification information.
  • the program is executed by the program execution unit 107 (S805A).
  • the permission setting unit 108 asks the detection unit 109 whether or not the device 100 is in a state in which a “correct” portable medium is inserted.
  • the flow of the portable medium insertion / discharge determination process is the same as that shown in FIG. Correctly, if the portable medium 120 is inserted into the device and is in the (ejected) state! /, If it is determined that the state of the insertion state has changed to the discharged state, S805B Transition. In addition, if it is determined that the correct portable medium 120 is inserted in the device, there is no change in state, so the program execution is continued using the first permission information selected in S805A. .
  • a program execution end determination is made (S807A). Specific cases where the program ends may be because the program has finished executing until the end of processing, or has been stopped by the user. When program execution continues Returns to S805A and continues processing.
  • the portable medium 120 When it is determined in S804 that the “correct” portable medium 120 has been inserted into the device 100 and is in a state that is in a proper state, or in S806A, the portable medium 120 is determined to be in a discharged state.
  • the permission setting unit 108 switches to the second permission information and sets the permission (S805B).
  • the detection unit 109 performs the process described above (timing 2).
  • the configuration of the second embodiment is the same as that of the first embodiment.
  • Examples of the program include, but are not limited to, an application program such as a game that can be played by receiving user input.
  • the first permission information allows the program to use, for example, the following two function items.
  • Permission item 1 Permits reading and writing of data to the long-term storage device (storage) of the device (eg, data related to score information when a game is played).
  • the program can be operated on an optical disc playback device (or an optical disc recording / playback device having a recording function) provided with a program execution environment (that is, provided with the program execution device of the present embodiment). it can.
  • the program If the program operates based on the first permission information, it uses the function shown in permission item 1 to record the high score of the game and register the name of the user who played the game. It can be performed. In addition, by using the function shown in permission item 2, new data related to the game, such as data on additional characters appearing in the game and data on additional stages of the game, can be accessed by accessing the URL of the server site. Can be used to play a game.
  • the game application program includes a description that specifies data read / write processing to the long-term storage device (storage) of the device, and u at the server site.
  • the program execution unit 107 executes the program by invalidating these processes based on the second permission information.
  • FIG. 10 is a configuration diagram of the program execution device 100 according to the third embodiment.
  • the program execution device 100 (hereinafter simply referred to as “device 100”) includes a mechanism that allows the portable medium 120 to be attached and detached.
  • FIG. 10 shows a case where the program of the portable medium 120 adds one permission information, that is, only the first permission information.
  • a program 121 is recorded on the portable medium 120.
  • the portable media here include optical discs, memory cards, silicon devices, and other various media that can record data.
  • a storage device such as a memory card is equipped with a dedicated terminal, and the portable medium can be attached to or detached from the terminal by directly inserting or removing the portable medium.
  • Other portable media, such as optical discs can be attached to and removed from portable devices by including a disc loading mechanism using trays and an optical disc reader (pickup). is there.
  • the device 100 is connected to a device 130 that supplies additional program information (hereinafter, referred to as the device 130), and has a mechanism that can acquire data stored in the device 130.
  • the device 130 is a Sano device that is communicatively connected to the device 100.
  • the device 130 has the ability to record data and the device 100 can read data such as programs recorded in the device 130, the type of device 130, the form of connection, and the form of data communication It can be anything.
  • the device 130 may be an optical disc, a memory card, a silicon device, or any other portable medium that can record data.
  • the additional program information 131 is recorded in the device 130.
  • the additional program information 131 holds information indicating association with the program 121 or the program 102, for example, having program ID information of the program 121.
  • additional programs The information 131 has second permission information added to the program 121.
  • the additional program information 131 may hold data for updating and adding the function of the program 121.
  • This data may include new or updated programs, including some or all of program 121.
  • media data such as images, metadata recording information and documents, and other types of data used when the program 121 is executed on the device 100 may be included.
  • the additional program information 131 includes a new program that can be replaced with a part of the program 121.
  • the additional program information 131 is written to the main memory (not shown) of the program execution unit 107 together with the corresponding program (program 121 or program 102), so that the function can be updated and the added program can be executed. .
  • the corresponding program is not necessarily required to be written in the main memory (not shown) in the program execution unit 107. It is only necessary to selectively write the part that is assumed to be.
  • the program 121 is written in the JAVA (registered trademark) execution format and the program execution unit 107 is realized by a J AVA (registered trademark) virtual machine will be described as an example.
  • the program 121 may be in any other format as long as it can be operated by the program execution unit 107 described later.
  • the program here may be a .NET (dot net) (registered trademark) execution format
  • the program execution unit 107 may be a .NET (dot net) (registered trademark) virtual machine.
  • the program may be model-dependent native code
  • the program execution unit 107 may be a processor and main memory (main memory) included in the device.
  • JAR and a recording format are defined!
  • JAR and a recording format are defined!
  • the program is recorded on the portable medium 120 in the JAR format.
  • the additional program information 1 31 includes a new program in which the program 121 is updated to improve performance.
  • additional program information is recorded in the device 130 in the same JAR format.
  • the program 121 recorded on the portable medium 120 is added with a program ID, which is a program identification symbol, and permission information 123.
  • the additional program information 131 recorded in the device 130 is added with an additional program information ID, which is an identification symbol of the additional program information, and permission information 133.
  • Fig. 3 shows an example of the permission information in the table format
  • Fig. 4 shows an example of the permission information described in the XML language format. Since these are the same as those described in the above embodiment, the description thereof is omitted.
  • the device 100 includes a program storage unit 101, a reading unit 105, an installation unit 104, a selection unit 106, a program execution unit 107, a permission setting unit 108, and a device resource 110.
  • the program storage unit 101 the program recorded on the portable medium 120 and the additional program information recorded on the device 130 are copied and recorded by the installation unit 104.
  • the program storage unit 101 can be realized by a long-term storage device such as a hard disk or a non-volatile memory that retains the recorded contents even when the power of the device is turned off.
  • the program 121 recorded on the portable medium 120 and the permission information 123 added thereto are copied to the program storage unit 101 of the device 100. Further, the additional program information 131 recorded in the device 130 and the permission information 133 added thereto are copied to the program storage unit 101 of the device 100.
  • the program execution unit 107 executes the program 1 21.
  • the program 107 also executes the additional program information 131.
  • Program power When provided by SJAVA®, program execution itself ⁇ ⁇ ⁇ ⁇ ⁇ A This can be realized by using a VA (registered trademark) virtual machine.
  • the installation unit 104 installs the program 121 and permission information 123A of the portable medium 120. That is, the storage medium ID of the portable medium 120, the program 121, its program ID, and the first permission information 123A are read, copied to the program storage unit 101, and entered in an entry of the extended installation information table 117 described later. Enter the file name of the copied program in.
  • the installation unit 104 installs the additional program information 131 including the second permission information 133B. That is, the device ID, which is information for identifying the device 130, the additional program information 131, the additional program information ID, and the second permission information 133B given to the program 121 are read, and the program storage unit 101 is read.
  • the device ID, etc., from which the additional program information that was copied is copied to the entry of the extended installation information table 117, which will be described later, is described in association with the file name, etc. of the program 121.
  • the reading unit 105 reads the storage medium ID of the portable medium 120, the program 121, its program ID, and the first permission information 123 A, and transmits them to the selection unit 106. Further, the reading unit 105 refers to the program storage unit 101 and confirms whether the additional program information 131 associated with the program 121 exists and the second permission information 103B is recorded. If recorded, the second permission information is received and transmitted to the selection unit 106.
  • the selection unit 106 makes an inquiry to the user of the device regarding the following two, and selects one of them.
  • Selection 1 The ability to execute the program 102 installed in the program storage unit 101 or the ability to execute the program 121 recorded in the portable medium 120.
  • Selection 2 The ability to execute using additional program information 116.
  • the selection unit 106 uses a display device (not shown) and a keyboard or mouse (not shown).
  • the selection unit 106 is an embodiment that does not explicitly ask the user. It may be.
  • the device 100 may predefine which one to select by default.
  • the embodiment may be provided with another means for switching which one to select by omitting the process of inquiring the user which one to select.
  • the selection unit 106 is realized as an API (application programming 'interface) that can be called from a program for switching the selection.
  • selection 1 the operation when the former is selected is described.
  • the selection unit 106 writes the program 102 installed in the program storage unit 101 into the main memory (not shown) of the program execution unit 107.
  • the selection unit 106 reads the program ID of the program from the extended installation information table 117, which will be described later, and notifies the permission setting unit 108 together with information on the selection result of (Selection 2).
  • selection 2 specifies that execution is to be performed using the additional program information 116
  • the selection unit 106 also adds the additional program information 116 to the main memory of the program execution unit 107 ( Write to (not shown).
  • the program 102 selectively selects the portion that is required by the program execution unit 107 that does not necessarily require all information to be written to the main memory (not shown). It only has to be written.
  • selection unit 106 does not write additional program information 116 into program execution unit 107.
  • selection 1 the operation when the latter is selected is described.
  • the selection unit 106 instructs the reading unit 105 to read from the portable medium 120.
  • the program 121 recorded on the portable medium 120 is received from the reading unit 105 and written to the main memory (not shown) of the program execution unit 107.
  • the selection unit 106 is a program 121 program. The ID is read out and notified to the permission setting unit 108 together with the information of the selection result of (Selection 2).
  • selection 2 specifies that execution is to be performed using the additional program information 116
  • the selection unit 106 also adds the additional program information 116 to the main memory of the program execution unit 107 ( Write to (not shown).
  • the program 121 selectively selects the part that is required by the program execution unit 107 that does not necessarily require all information to be written to the main memory (not shown). It only has to be written.
  • selection unit 106 If it is not specified in (Selection 2) that execution is performed using additional program information 116, selection unit 106 does not write additional program information 116 into program execution unit 107.
  • the program execution unit 107 analyzes permission information added to the program and appropriately controls (controls) the execution of the program.
  • JAVA registered trademark
  • virtual machines have a security manager and an access controller.
  • the JAVA (registered trademark) virtual machine analyzes the permission information attached to the JAVA (registered trademark) program, The program is loaded into the virtual machine using this mechanism. By taking this procedure, the secure manager and access controller appropriately control the execution of the program so that the behavior when the program is executed follows the permission range indicated in the permission information.
  • the details of this mechanism are shown in Non-Patent Document 1.
  • the permission setting unit 108 is realized by a JAVA (registered trademark) virtual machine, and sets the permission of a program executed by the program execution unit 107.
  • the permission setting unit 108 receives from the selection unit 106 the program ID of the program to be executed and information on the selection result of (selection 2) performed by the selection unit 106.
  • the permission setting unit 108 sets the second permission information included in the additional program information 116 when it is selected in (selection 2) that execution is performed using the additional program information 116. To do. If not, i.e. (selection 2), add If it is selected that execution is not performed using the program information 116, the first permission information added to the program to be executed is set.
  • the device resource 110 is realized as a function of various devices included in the device 100 and a function of accessing data stored in the device 100, which can be accessed by the program execution unit 107 executing the program.
  • the program execution unit 107 is realized by a JAVA (registered trademark) virtual machine
  • access to the device resource 110 is achieved by providing various JAVA (registered trademark) libraries that are called JAVA (registered trademark) program power. Realize.
  • the device resource 110 has a communication function 111, an input / output function 112, and a storage access function 113, but may of course be other.
  • the permission information stored in the program storage unit 101 may be tamper-resistant so that it cannot be stolen or altered by any means other than the device of the present invention from the viewpoint of security. Hope ⁇ .
  • FIG. 12 is a diagram showing a flow of processing for program installation.
  • the installation of the program is executed by the installation unit 104 when the portable medium 120 is inserted into the device 101 and an installation instruction is received from the user. For example, it can be realized by asking the user who uses the device 100 whether or not to install the program in the device 100 and obtaining the answer result.
  • the program storage unit 101 holds information on the free capacity of the long-term storage device in the device, and has enough capacity to store the program. If this is the case, it is possible to adopt an implementation form such as automatically performing replication processing.
  • the installation unit 104 copies the program 121 recorded on the portable medium 120 inserted into the device 100 to the program storage unit 101 (S1201).
  • the program storage unit 101 has information on the usable capacity of the long-term storage device of the device. For example, if there is a problem in executing the replication process, such as when there is insufficient free space on the long-term storage device, the installation is terminated as impossible. [0135] If the record on the portable medium 120 is rewritable, the original program record is deleted from the portable medium 120 (the program is moved) at the same time as the program is copied. A little.
  • the extended installation information table 117 is referenced to check whether an entry corresponding to the program 121 already exists.
  • the case where the entry already exists means that the additional program information associated with the program 121 is installed and installed first.
  • S1203 newly creates installation information, which is management information related to the copied program, and adds it as an entry.
  • the installation information created here includes the file name of the program, the first permission information of the program, the program ID, the portable medium ID (optional in this embodiment), and the like. Details of each information will be described later in the explanation of the extended installation information table 117.
  • step S1204 installation information, which is management information related to the copied program, is added to a corresponding entry that already exists.
  • FIG. 13 is a diagram showing a flow of processing for installing additional program information.
  • Installation of the additional program information is executed by the installation unit 104 when the device 100 and the device 130 are connected and an installation instruction is received from the user. For example, it can be realized by inquiring a user who uses the device 100 as to whether or not the user can install the additional program information in the device 100 and obtaining a response result.
  • the installation unit 104 holds information on the free capacity of the long-term storage device of the program storage unit 101, and has enough capacity to store the program. If this is the case, it is possible to adopt an implementation form such as automatically performing replication processing.
  • the installation unit 104 copies the additional program information 131 recorded in the device 130 connected to the device 100 to the program storage unit 101 (S1301).
  • the installation unit 104 holds information on the usable capacity of the long-term storage device of the device. is doing. For example, if there is a problem in performing the replication process, such as when there is insufficient free space in the long-term storage device, the installation is terminated as impossible.
  • the extended installation information table 117 is referred to, and it is confirmed whether or not an entry corresponding to the program 121 associated with the additional program information 131 is already present.
  • the case where the entry already exists means that the program 121 is installed first.
  • S1303 newly creates installation information, which is management information related to additional program information, and adds it as an entry.
  • the installation information created here includes additional program information, second permission information for the program, additional program information ID, device ID, and so on. Details of each information will be described later in the explanation of the extended installation information table 117.
  • S1304 adds installation information, which is management information related to additional program information, to a corresponding entry that already exists.
  • FIG. 1 An example of the extended installation information table 117 is shown in FIG.
  • the extended installation information table 117 includes items of program 1171, first permission information 1172, second nomination information 1173, program ID 1174, portable medium ID 1175, additional program information 1176, additional program information ID 1177, and device ID 1178. A column is provided.
  • the entry in the program column 1171 describes information for specifying the target program. For example, the file name in the file system in the program storage unit 101 is described.
  • Information for specifying the permission information corresponding to the program is described in the entry of each item column of the first permission information and the second permission information. For example, the file name of permission information in the file system in the program storage unit 101 is described.
  • the permission file" proglB.prf in the second permission information 11 73 " “Is appended with identification information“ addition ”and is used when a program is executed using the additional program information 116.
  • identification information for identifying the program 121 on the portable medium 120 is recorded.
  • This program ID information is stored when the program is installed in the program storage unit 101 from the portable medium 120, and the additional program information 131 is stored as associated program information.
  • the additional program information 131 may be recorded when the program storage unit 101 is installed.
  • identification information for identifying the portable medium 120 that is the copy source is recorded.
  • the serial number that each portable medium 120 has is recorded here.
  • the portable medium ID field may not exist in the present embodiment.
  • the entry in the additional program information column 1176 describes information for specifying the target additional program information. For example, the file name in the file system of the program storage unit 101 is described.
  • Additional program information ID column 1177 Information for identifying additional program information is recorded in the entry of the additional program information ID column 1177.
  • the additional program information ID field may not exist depending on the embodiment.
  • identification information for identifying the device 130 that is the copy source is recorded.
  • the location information for identifying the device in data communication such as the serial number, IP address, or URL that each device 130 has can be used as the identification information.
  • the device ID column may not exist depending on the embodiment.
  • the selection unit 106 makes an inquiry to the user as to whether or not to use the additional program information to start the program (S1401).
  • a program installed in the program storage unit 101 or a program recorded in the portable medium 120 is used.
  • An inquiry is made to the user as to whether to execute the program (S1405). Using these results, program startup processing is performed.
  • the permission setting unit 108 sets second permission information as permission information for executing the program (S1402). Further, the selection unit 106 reads the additional program information from the program storage unit and writes it to the main memory of the program execution unit.
  • the additional program information 116 includes another program, and that other program is replaced with part or all of program 121 or program 102, program 121 or program 102 that occurs later In writing to the main memory (S1406 or S1407), it may be sufficient to write only part of the information of the program 121 or the program 102 that does not need to write all of these information.
  • the selection unit 106 has a function of comparing file names and a function of detecting a time stamp of the file.
  • the selection unit 106 compares all the file names included in the JAR file of the additional program information 116 with all the file names included in the JAR file of the program 121 (program 102), and detects a file having the same name. If so, compare the time stamps of those files. As a result, it is possible to implement such that only a file that seems to be a newer file is written to the main memory of the program execution unit 107, and a file determined to be old is not written to the main memory.
  • S1405 the user is inquired which program to be executed, the program 121 installed in the program storage unit 101 or the program 102 recorded in the portable medium 120.
  • the configuration of the fourth embodiment is the same as that of the third embodiment.
  • Examples of the program include, but are not limited to, an application program such as a game that can be played by receiving user input.
  • the program recorded on the portable medium 120 holds only the first permission information 123A. This permission information has the following two function items.
  • Permission item 1 Permission to read and write data to the long-term storage device (storage) of the device (for example, data related to score information when a game is played).
  • the first permission information prohibits the use of the function of (Permission item 1) and permits the use of (Permission item 2).
  • This program can be run on an optical disc playback device with a program execution environment.
  • the program is not installed in the program storage unit 101 of the optical disk playback device, and the program is started directly from the portable medium.
  • additional program information is provided from Sanoku installed by the creator of the game application that can be connected to the optical disk playback device.
  • the installation unit 104 also acquires additional program information for the server power and installs it in the program storage unit 101.
  • the additional program information shall include the updated version of the above program and second permission information.
  • the additional program information includes the updated version of the above program
  • the updated version of the program and the program recorded on the original portable medium may have the same files and information. Conceivable.
  • a comparison between the two and selective writing may be used.
  • the additional program information and the program recorded on the portable medium do not require all data to be written to the program execution unit. If it is determined that it is not necessary, do not write partly.
  • the program function is permitted within the range specified in the second permission information.
  • the program recorded on the recording medium and Sanoku provided via the network The added additional program information data can be used to operate a new program under the new permission information.
  • the present invention can be used as an access protection technique in access protection in security by appropriately controlling the operation of a program.
  • the creator of the program (content) can be applied as a copyright management and copyrighted material distribution management technology that provides services in an appropriate range according to the user's program acquisition route.

Abstract

  可搬媒体に記録されたサービスプログラムが、直接実行されたり、長期記憶装置に一旦インストールしてから実行されたりする。機器に対するリソースアクセス管理の観点等から、可搬媒体が挿入されていない状態で、無制限にプログラムが実行されるのを防止するプログラム実行機器を提供する。   プログラムにリソースアクセス権限を示すパーミッション情報を付加し、実行されるプログラムの取得経路に応じて、異なるアクセス権限を示す第1のパーミッション情報と第2のパーミッション情報とを適用して、プログラムを実行する。   

Description

明 細 書
プログラム実行機器およびそのプログラム実行方法
技術分野
[0001] 本発明は、プログラムを実行する機器におけるパーミッション (リソースに対するァク セス権限あるいは実行権限)を管理するプログラム実行機器に関する。
背景技術
[0002] 近年、出荷後の家電機器に対して、プログラムを後から追加し、そのプログラムを動 作させることによって機器に機能を追加する、という仕組みが普及しつつある。
家電機器上でプログラムを動作させるプログラム実行系の代表的な技術としては、 J AVA (登録商標)や、ドット NET (登録商標)などがある。
[0003] これらの技術は仮想マシンの仕組みを備え、ネットワーク家電の CPUなど、ハード ウェアに依存せずに同一のプログラムを動作させることが可能なことから、サービスの 実施のための共通プラットフォームとなることが期待されている。
機器に追加されるプログラムには、そのプログラムに許可される動作を示したパーミ ッシヨン情報が付随される場合が多い。パーミッション情報を適切に設定することによ つて、例えば追加されたプログラムが、機器に存在するユーザの個人情報を改竄'破 壊する、あるいはネットワーク機能を利用して勝手に機器上のデータを外部に流出す る、といった勝手な振る舞いを行う危険性を未然に防止することができる。例え «JA VA (登録商標)では、プログラムのアクセス権限を適切にコントロールするために、セ キユリティマネージャやアクセスコントローラと 、つた仕組みが用意されて 、る。この仕 組みは非特許文献 1に記載されて 、る。
[0004] 機器に追加するためのプログラムの流通の方法として代表的なものは、ネットワーク を通じてこれを行なう方法である。例えば携帯電話などのモパイル機器にぉ 、ては、 無線通信によって機器にプログラムを後から配信し、これを実行する、というサービス が既に実現されている。
これ以外にも、可搬性の記録 (または記憶)媒体 (以下、単に「可搬媒体」という)を 通じてプログラムを流通する、という方法力 近年クローズアップされつつある。ここで の可搬媒体とは、光ディスクや、シリコンデバイス、メモリカード、その他データを記録 可能で可搬可能なさまざまな媒体を含む。
[0005] この場合、家電機器は可搬媒体を着脱することができる機構を備える。着脱の形態 は、可搬媒体の種類によって様々である。以降の説明では、可搬媒体が機器に装着 されて、可搬媒体に記録されたデータを機器が読み取ることができる状態になってい ることを、可搬媒体が機器に「挿入された」状態、あるいは機器に可搬媒体を「挿入し た」状態と呼ぶことにする。それ以外の状態を可搬媒体が機器から「排出された」状 態、あるいは機器が可搬媒体を「排出した」状態と呼ぶことにする。
[0006] 家電機器は、挿入された状態の可搬媒体から、プログラムを直接読み込んで実行 する、あるいは可搬媒体に記録されたプログラムを一旦機器が具備する独自の記憶 装置に複製した後に実行する、などの方法を選択して、そのプログラムを実行するこ とがでさる。
可搬媒体の着脱機構を備えた機器の中には、プログラムの動作と、可搬媒体の着 脱の状態が何らかの形で関連付けされたものがある。従来例としては、例えば特許文 献 1に示されている。
[0007] また、機器がプログラムのデータを可搬媒体から機器に複製する際に、単純なデー タコピー以外の何らかの処理を行う技術が例えば特許文献 2に開示されている。 可搬媒体の着脱機構を備えた機器にぉ ヽては、可搬媒体に記録されたプログラム を実行する形態として、 2種類のものが考えられる。
1つは、機器の持つプログラム実行系が、可搬媒体に記録されたプログラムを直接 読み取り実行する方式である。この場合、可搬媒体が、機器に挿入された状態である ことが不可欠の条件である。
[0008] もう 1つは、可搬媒体に記録されたプログラムが、ハードディスクなどー且機器内の 記憶装置に複製 (インストール)された後、機器の持つプログラム実行系が、この複製 されたデータを読み取り実行する方式である。この場合は、プログラムの実行時に、 可搬媒体自体は必ずしも機器に挿入された状態でなくとも構わな ヽ。
後者の方式は、プログラムを動作させる際に、可搬媒体が機器に挿入された状態 になっていることが必須にはならないため、機器のユーザにとっては利用の際の自由 度が大きく増す。
[0009] しかしその一方で、後者の方式は、可搬媒体を保持するユーザが一且可搬媒体上 のプログラムを機器内の記憶装置に複製してしまえば、自由にその可搬媒体の 2次 流通(例えば他のユーザに可搬媒体を譲渡 ·売却するなど)を可能にするのを許す 方式でもある。そのため、可搬媒体の作成者や提供者の立場から見た場合、この方 式によりプログラムの実行を許すことは好ましくな 、ケースも多 、。
[0010] 特許文献 1には、機器に当該プログラムが記録された可搬媒体が挿入されている 状況にある場合のみ、記憶装置に複製されたプログラムの実行を許可し、それ以外 の場合にはプログラムの実行を禁止する、という方式が提示されている。この方式の 場合、プログラムを動作させるためには常に可搬媒体の機器への挿入が必要となる ため、可搬媒体の作成者や提供者が意図しない、可搬媒体の 2次流通などをユーザ が行なうのを防ぐことはできる。
[0011] し力しながら、プログラムを動作させる際に常に可搬媒体の挿入を求めるという方式 は、新たに以下のような問題を生じさせるものである。
( 1)可搬媒体の破損などが発生した場合、プログラムを実行させることが不可能にな つてしまう。
(2)同一のユーザが保持する 2つ以上の機器で、同時にプログラムを動作させること ができなくなる。
(3)可搬媒体の 2次流通などを考えない、正当な利用方法に従ってプログラムの実 行を行なわせて 、るユーザにとっても、プログラムを実行させるたびごとに「ユーザが 手元に可搬媒体を保持していることを証明するために」可搬媒体の挿入が必要となり 、プログラムの利用の際の利便性を損ねている。
[0012] なお、機器がプログラムを可搬媒体から機器に複製する際に、最適化などを適用し てプログラムの高速化を図った例は存在するものの、従来の技術では、プログラム (ァ プリとも呼ぶ)に許可されるパーミッション情報というものは、実行されるプログラムの 記録位置等によって変化することはなぐほぼ一つのものに定められており、これが 変更されることは、考えられて!/、な!、 (特許文献 2)。
特許文献 1:特開 2004— 46801号公報 特許文献 2:特表 2002— 511615号公報
非特許文献 1: jAVA (登録商標) Security」 Scott Oaks著、 O, Reilly発行、 May 2001、 ISBNO— 596— 00157— 6
発明の開示
発明が解決しょうとする課題
[0013] 本発明は、可搬媒体で提供されるプログラムを実行させる際、そのプログラムの取 得経路に応じてパーミッション情報を設定することのできるプログラム実行機器を提 供することを目的とする。
課題を解決するための手段
[0014] 上記課題を解決するために本発明は、 プログラムの実行時におけるリソースへの アクセス権限を示すパーミッション情報が付加されたプログラムを取得して実行する プログラム実行機器であって、前記プログラムの取得経路に応じて、前記パーミツショ ン情報に含まれる第 1のパーミッション情報又は第 1のパーミッション情報と異なる第 2 のパーミッション情報を設定するパーミッション情報設定手段と、前記パーミッション 情報設定手段で設定された第 1又は第 2のパーミッション情報に従い、前記プロダラ ムを実行する実行手段とを備えることとして 、る。
発明の効果
[0015] 上述のような構成によって、プログラムの取得経路に応じて、第 1のパーミッション情 報と、それと異なる第 2のパーミッション情報が設定されるので、その利用形態に応じ たパーミッション情報をプログラムに適用して動作させることができる。
また、前記プログラムを記録した可搬性記録媒体を装着する装着手段と、装着され た前記可搬性記録媒体に記録された前記プログラムと前記パーミッション情報とを複 製して記憶するプログラム記憶手段とを更に備え、前記パーミッション情報設定手段 は、前記プログラムの取得経路が前記装着手段に装着された可搬性記録媒体から 前記プログラムを読み込むとき、前記第 1のパーミッション情報を設定する第 1設定部 と、前記プログラム記憶手段から前記プログラムを読み込むとき、前記第 2のパーミツ シヨン情報を設定する第 2設定部とを有することとしている。 [0016] このような構成により、可搬性記録媒体に記録されたプログラムが直接実行される 場合と、一旦プログラム記録用のプログラム記憶手段に複製されたプログラムが実行 される場合とによって、異なるパーミッション情報をプログラムに適用し動作させ、ユー ザにサービスを提供することができる。
例えば、同一のプログラムを動作させる場合であっても、可搬性記録媒体を機器に 装着して利用しているユーザには、機器の保持するローカルリソースをフルに利用し て動作するプログラムを提供し、可搬性記録媒体を機器に装着して利用していない ユーザには、一部の機能 (例えば、機器外へのネットワークアクセス機能)を使用不 能にした状態で動作するプログラムを提供する、などのように、プログラムの取得経路 に応じて適切なパーミッション情報を設定することができる。本発明を用いることで、 従来に存在していた仕組みよりもさらに柔軟性の高いサービスの形態を、ユーザに 提供することが可能になる。
[0017] また、前記可搬性記録媒体に記録されたパーミッション情報には、第 1のパーミツ シヨン情報と第 2のパーミッション情報とが含まれており、前記記憶手段には、前記プ ログラムとともに第 1のパーミッション情報と第 2のパーミッション情報とが記憶されてお り、前記第 1設定部は、前記可搬性記録媒体に記録された第 1のパーミッション情報 を設定し、前記第 2設定部は、前記プログラム記憶手段に記録された第 2のパーミツ シヨン情報を設定することとして 、る。
[0018] このような構成により、 2種類のパーミッション情報が、可搬性記録媒体に記録され たプログラムに付加されているので、そのまま利用することができる。
また、前記可搬性記録媒体に記録されたパーミッション情報には、第 1のパーミツシ ヨン情報が含まれており、第 1のパーミッション情報を変換ルールに従い第 2のパーミ ッシヨン情報に変換する変換手段を更に備えることとしている。
[0019] このような構成により、可搬性記録媒体に記録されたプログラムに付加されているパ 一ミッション情報をそのまま第 1のパーミッション情報として利用でき、また第 1のパーミ ッシヨン情報を変換して第 2パーミッション情報として利用することができる。
また、前記装着手段に装着された可搬性記録媒体を検出する検出手段を更に備 え、前記パーミッション情報設定手段は、前記検出手段が可搬性記録媒体を検出し ているときは、前記取得経路に拘らず、第 1のパーミッション情報を設定することとして いる。
[0020] このような構成によって、可搬性記録媒体が装着されている場合には、プログラム 記憶手段力もプログラムを読み込んでプログラムを実行するときにも、そのプログラム の取得経路に拘らず、第 1のパーミッション情報に従いプログラムを実行させることが できる。
また、前記プログラムに関連付けられた追加プログラム情報を取得する取得手段を 更に備え、前記追加プログラム情報は、前記プログラムの機能の追加または更新を するための追加プログラムと第 2のパーミッション情報とを含み、前記パーミッション情 報設定手段は、取得経路に前記取得手段を介するとき、第 2のパーミッション情報を 設定することとしている。
[0021] このような構成によって、可搬性記録媒体に記録されたプログラムに関連づけられ た追加プログラム情報が取得手段によって取得され、追加プログラムが実行されると きは、追加プログラム情報に含まれる第 2のパーミッション情報に従い、プログラムを 実行させることができる。
また、前記プログラムを記録した可搬性記録媒体を装着する装着手段と、装着され た前記可搬性記録媒体に記録された前記プログラムと前記パーミッション情報とを複 製して記憶するプログラム記憶手段とを更に備え、前記取得手段は、外部のサーバ 力 前記追加プログラム情報を通信回線を介してダウンロードするダウンロード部と、 ダウンロードした追加プログラム情報を前記プログラム記憶手段に追加記憶させる追 加部とを有することとして 、る。
[0022] このような構成によって、プログラム著作者が用意した追加プログラムをユーザーは 容易に取得し、禾 IJ用することができる。
また、本発明は、プログラムの実行時におけるリソースへのアクセス権限を示すパー ミッション情報が付加されたプログラムを取得して実行するプログラム実行機器のプロ グラム実行方法であって、前記プログラムの取得経路に応じて、前記パーミッション情 報に含まれる第 1のパーミッション情報又は第 1のパーミッション情報と異なる第 2の パーミッション情報を設定するパーミッション情報設定ステップと、前記パーミッション 情報設定ステップで設定された第 1又は第 2のパーミッション情報に従い、前記プロ グラムを実行する実行ステップとを有することとしている。
[0023] このような方法により、プログラムが実行される場合にプログラムの取得経路に応じ て、異なるパーミッション情報をプログラムに適用し、動作させることができる。 図面の簡単な説明
[0024] [図 1]本発明に係るプログラム実行機器の実施の形態 1の構成図である。
[図 2]上記実施の形態の変形例の構成図である。
[図 3]上記実施の形態のパーミッション情報の一例を示す図である。
[図 4]上記実施の形態のパーミッション情報の一例を示す図である。
[図 5]上記実施の形態のプログラムのインストール処理、および実行までの処理の流 れを示す図である。
[図 6]上記実施の形態のプログラム蓄積部のパーミッション変更ポリシーの一例を示 す図である。
[図 7]上記実施の形態のプログラム蓄積部のインストール情報テーブルの一例を示す 図である。
[図 8]上記実施の形態のプログラム蓄積部に記録されたプログラムが起動される場合 の処理の流れを示す図である。
[図 9]上記実施の形態の可搬性記憶媒体の検出 (挿入'排出)の処理の流れを示す 図である。
[図 10]本発明に係るプログラム実行機器の実施の形態 3の構成図である。
[図 11]上記実施の形態のプログラム蓄積部の拡張インストール情報テーブルの一例 を示す図である。
[図 12]上記実施の形態のプログラムのインストール処理の流れを示す図である。
[図 13]上記実施の形態の追加プログラム情報のインストール処理の流れを示す図で ある。
[図 14]上記実施の形態のプログラムの実行までの処理の流れを示す図である。 符号の説明 100 プログラム実行機器
101 プログラム蓄積部
102 プログラム (プログラム蓄積部内)
103A第 1のパーミッション情報 (プログラム蓄積部内)
103B第 2のパーミッション情報 (プログラム蓄積部内)
104 インストール部
105 読込部
106 選択部
107 プログラム実行部
108 パーミッション設定部
109 検出部
110 機器リソース
114 インストール情報テーブル
115 パーミッション変換部
117 拡張インストール情報テーブル
120 可搬媒体
121 プログラム (可搬媒体上)
123 パーミッション情報 (可搬媒体上)
123A第 1のパーミッション情報 (可搬媒体上)
123B第 2のパーミッション情報 (可搬媒体上)
130 追加プログラム情報を供給する機器
131 追加プログラム情報
133 パーミッション情報(追加プログラム情報内)
133B第 2のパーミッション情報(追加プログラム情報内)
301 パーミッション情報テーブル
401 XML形式パーミッション情報 発明を実施するための最良の形態 [0026] 本発明に係るプログラム実行機器は、可搬媒体を装着する装着部を有し、記録され たプログラムを読み取り実行する機器であって、そのためのプログラム実行部を備え る。また、本発明の機器は、可搬媒体に記録されたプログラムを複製し、蓄積するプ ログラム蓄積部を備える。
このプログラム実行部は、以下の 2種類の利用形態 (プログラムの取得経路)でプロ グラムの実行に対応する。
(実行方法 A)可搬媒体に記録されたプログラムのデータだけを用いて、これを直接 読み取り実行する。
(実行方法 B)プログラム蓄積部に記録されたプログラムのデータを読み取り実行する
[0027] ここでプログラムのデータとは、プログラムの実行形式のことを指す。例え «JAVA( 登録商標)プログラムで言えば、 JAVA (登録商標)クラスファイルや、そのアーカイブ 形式である JARファイルのことを指す。
実行方法 Aと実行方法 Bとの違いについてさらに詳細に述べる。
実行方法 Bで指すところのプログラム蓄積部が有する記憶装置 (記憶手段)は、ハ ードディスクや不揮発性のメモリなど、機器の電源を切断してもその記録内容が保持 される長期記憶装置(NON— VOLATILE STORAGE SYSTEM)である。揮 発性の RAM (ランダム ·アクセス 'メモリ)など、電力の供給が途切れることで記録内 容が消えてしまう短期記憶装置(VOLATILE STORAGE SYSTEM)は、プロ グラム蓄積部が有する記憶装置として対象に入らない。
[0028] 実行方法 Aでプログラムが実行される場合は、可搬媒体に記録されたプログラムが 、直接機器の RAMなどの短期記憶装置に読み込まれて実行される方式が殆どであ る力 上述の通り、この場合の短期記憶装置はプログラム蓄積部を意味していない。 従って実行方法 Bとは明確に区別される。
また近年では、可搬媒体に記録されたプログラムであっても、そのプログラムの機能 を更新 ·追加するプログラムやデータを、ネットワーク力もダウンロードするなどしてプ ログラムを実行機器内に取得できる場合がある。このプログラムやデータのことを、追 加プログラム情報と呼ぶ。 [0029] 追加プログラム情報が長期記憶装置に格納され、プログラムの実行の際にこのデ ータが用いられる場合は、実行方法 Bに該当するものとする。
実行方法 Aとは長期記憶装置に格納されたプログラムのデータを一切使用せずに 、可搬
媒体に記録されたプログラムのデータだけを用いて、実行が行なわれる方法である。 以下、「プログラム蓄積部」と記述したものは、上述した通り、ハードディスクゃ不揮 発性メモリなど、長期記憶装置によってデータの記録が実現されるもののことを意味 する。
[0030] 可搬媒体に記録されたプログラムには、そのプログラムに許可される利用の範囲を 記載したパーミッション情報が付加されている。
プログラム実行部は、プログラムを実行する際に、そのプログラムに付加されたパー ミッション情報を読み取り、プログラム実行中の動作に反映させる。この際、プログラム 実行部は、利用形態の種類によって異なるパーミッション情報を使用してプログラム を実行する。すなわち、実行方法 Aによりプログラムを実行する場合には、第 1のパー ミッション情報を用いてプログラムを実行し、実行方法 Bによりプログラムを実行する場 合には、第 2のパーミッション情報を用いてプログラムを実行する。
[0031] 本発明は、プログラムの取得経路に応じて異なるパーミッション情報を準備するに あたり、以下の 3種類の仕組みを想定している。
(a)可搬媒体に記録されたプログラムには、実行方法 Aと実行方法 Bとのそれぞれに 対応した、 2つのパーミッション情報を付カ卩して 、る。
(b)機器は、可搬媒体に記録されたプログラムを実行方法 Bで実行するためにプログ ラムを複製した場合に、プログラムに付加された第 1のパーミッション情報を書き換え
、第 2のパーミッション情報を生成する。
[0032] ここで 、う可搬媒体に記録されたプログラムの複製とは可搬媒体に記録されたプロ グラムを実行するときのパーミッション情報とプログラム蓄積部に蓄積されたプロダラ ムを実行するときのパーミッション情報とが実質的に同一のパーミッション情報であれ ば、可搬媒体に含まれるプログラムによる実行と可搬媒体力 プログラム蓄積部に蓄 積されたプログラムによる実行とが同一の機能を実現するように可搬媒体に含まれる プログラムをプログラム蓄積部へと蓄積する動作である。
[0033] この場合において、可搬媒体に記録されたプログラムの一部をプログラム蓄積部へ 蓄積したときに上述のパーミッション情報の同一性が保証されるのであれば一部のプ ログラムの蓄積も複製と 、うことにする。
この複製の具体例としては可搬媒体のプログラムに含まれるファイルとの同一のファ ィルをプログラム蓄積部に蓄積するとか、可搬媒体に含まれるプログラムのデータを 圧縮したものをプログラム蓄積部に蓄積する(ただしこの場合はプログラム蓄積部に 蓄積されたプログラムを実行するときに圧縮したファイルを元に戻した後実行するよう にする必要がある)、または可搬媒体に含まれる圧縮されたプログラムのデータを展 開したものをプログラム蓄積部に蓄積する等がある。
(c)機器は、可搬媒体に記録されたプログラムに関連付けられたプログラム情報を、 ダウンロードによって取得し、その追加プログラム情報の中に含まれる第 2のパーミツ シヨン情報を取得する。
[0034] 下記のいずれか仕組みを使用することで、プログラムの取得経路に応じ異なるパー ミッション情報を使用してのプログラムの実行が可能となる。
さらに、本発明の機器は、実行方法 Bによりプログラムを実行する場合に、プロダラ ムが記録された可搬媒体が機器に挿入されているかどうかを区別する。
(実行方法 B— 1)可搬媒体が機器に挿入されている状態で、プログラム蓄積部に記 録されたプログラムのデータを読み取り実行する。
(実行方法 B— 2)可搬媒体が機器に挿入されていない状態で、プログラム蓄積部に 記録されたプログラムのデータを読み取り実行する。
[0035] 本発明の機器は、これらの利用形態も区別し、これに応じ異なるパーミッション情報 を使用してプログラムを実行する。
(実施の形態 1)
図 1は、本発明に係るプログラム実行機器 100実施の形態 1の構成図である。図 2 は、実施の形態 1の変形例の構成図であり、同一の構成要素には、同一の参照符号 を付している。
[0036] プログラム実行機器 100 (以下、単に「機器 100」という)は、可搬媒体 120の着脱が 可能な装着機構 (図示せず)を備える。図 1は、可搬媒体 120にはプログラムは 2つの パーミッション情報、つまり第 1のパーミッション情報と、第 2のパーミッション情報とを 付加している場合を示し、また、図 2は、可搬媒体 120のプログラムがパーミッション 情報をひとつ、つまり第 1のパーミッション情報だけを付加している場合を示している
[0037] なお、図 1と図 2とのプログラム及びパーミッション情報は、異なるものであるが、それ ぞれには説明の便宜上、同じ番号を付している。
可搬媒体 120にはプログラム 121が記録されている。プログラム等の可搬媒体 120 に記録されたデータを機器 100が読み取ることができれば、可搬媒体 120の種類お よび、可搬媒体 120の機器に対する挿入'排出 (着脱)の装着機構は何であっても良 い。
[0038] ここでの可搬媒体とは光ディスクや、メモリカード、シリコンデバイス、その他データ を記録可能なさまざまな物体を含む。例えばメモリカードなどの記憶デバイスは、専 用の端子を機器が備え、その端子に可搬媒体を直接差し込んだり抜き取ったりする ことで、機器と可搬媒体の着脱を実現する。その他の光ディスクなどの可搬媒体は、 トレィ等を用いたディスクローデイング機構、および光ディスク読み取り装置 (ピックァ ップ)等を備えることで、機器と可搬媒体の着脱を実現して ヽるものもある。
[0039] JAVA (登録商標)実行形式でプログラム 121が書かれ、プログラム実行部 107が J AVA (登録商標)仮想マシンで実現されている場合を例に説明を行なう。もちろんプ ログラム 121は他の形式であっても、後述のプログラム実行部 107によって動作可能 なものであれば何でも良い。例えばここでのプログラムがドット NET (登録商標)の実 行形式であり、プログラム実行部 107がドット NET (登録商標)仮想マシンであっても よい。あるいはプログラムは機種依存のネイティブコードであって、プログラム実行部 107が、機器が備えるプロセッサと主メモリ(主記憶)であってもよい。
[0040] JAVA (登録商標)プログラムとそれに伴うメタ情報等を記録したファイルを単一のフ アイルで記録するための形式として JARと 、う記録形式が規定されて!、る。ここでは 実施の例として、この JAR形式で可搬媒体 120上にプログラムが記録されて 、るもの とする。 可搬媒体 120に記録されるプログラム 121は複数であつてもよいが、説明の便宜上 一つだけ記録されて 、るものとする。
[0041] 可搬媒体 120に記録されるプログラム 121には、プログラムの識別記号であるプロ グラム IDとパーミッション情報 123とが付加されている。
ここで、パーミッション情報と、それにより規定される、プログラムに許可される動作 について詳しく説明する。
パーミッション情報とは、プログラムを動作させる機器における、そのプログラムに許 可される挙動の範囲、つまり機器リソースに対するアクセス実行権限を示した情報の ことである。
[0042] 個々の機器リソース毎のパーミッションを記述したものを、パーミッション項目と呼び 、一つ以上のパーミッション項目が、テーブル形式または言語形式で記述され、パー ミッションファイルと呼ぶファイルに格納される。
図 1と図 2とに示す第 1のパーミッション情報 123A、あるいは、第 2のパーミッション 情報 123B、あるいはプログラム蓄積部 101の第 1のパーミッション情報 103A、第 2 のパーミッション情報 103Bは、いずれもがそれぞれ一つ以上のパーミッションフアイ ルで構成される。
[0043] パーミッション項目の内容は、プログラムを実行する機器がどのような機能を有して いるかに依存する。例えば、 DVD (デジタル 'バーサタイル'ディスク)や BD (ブルー レイ'ディスク)に代表される、高密度の記録媒体を再生する装置の場合、具体的な パーミッション項目として以下のものが考えられる。
(パーミッション項目例 1)プログラムが、機器が有する長期記憶装置 (ストレージ)に アクセスして、リードやライトを行なっても良いか。
[0044] (パーミッション項目例 2)プログラムが、機器が有する特定のファイルをアクセスして 、リードやライトを行なっても良いか。
(パーミッション項目例 3)プログラムが、機器が有する特定の情報をアクセスして、リ ードゃライトを行なっても良いか。ここでの特定の情報とは、例えば、時計の時刻、録 画予約情報、チャンネル設定、機器のユーザの名前など個人情報、機器の使用履 歴などの各種の設定を!、う。 [0045] (パーミッション項目例 4)プログラムが、他のコンテンツ (例えば、可搬媒体 120に記 録された映像など)をアクセスして、リードやライトを行なっても良いか。
(パーミッション項目例 5)プログラムが、機器が有するネットワーク機能を使用して通 信を行なっても良いか。
(パーミッション項目例 6)プログラム力 特定のプロトコルを使用してもよいか。
[0046] (パーミッション項目例 7)プログラムが、ある特定の通信相手 (例えば URLで指定さ れるサイト)と通信を行なっても良いか。
(パーミッション項目例 8)プログラム力 特定の実行処理を行なっても良いか。例え ばスレッド操作、シリアライズ、デシリアライズ、リフレクションなどである。
(パーミッション項目例 9)プログラムが、機器が有する出力装置を使用して、なんら かの出力を行なってもよいか。出力資源とは、例えば、ディスプレイ、特定のウィンドウ 、音源、 LEDランプ、バイブレータなどをいう。
[0047] (パーミッション項目例 10)プログラムが、機器が有する入力資源力 の入力を受け 付けてもよいか。入力資源とは、例えば、電源スィッチ、各種スィッチ、チューナー、リ モコン、ジョイスティック、タツチパネノレなどをいう。
(パーミッション項目例 11)プログラムが、他のプログラムと通信を行なってもよ 、か。
[0048] (パーミッション項目例 12)プログラムが、他のプログラムの実行を制御してもよ!/、か 。例えば実行を開始する、一時中断する、終了するなどである。
(パーミッション項目例 13)プログラムが使用するデータや、プログラムによって生成 されたデータ力 他のプログラムにアクセスされ、リードやライトが行なわれても良いか
[0049] (パーミッション項目例 14)プログラムが使用するデータや、プログラムによって生成 されたデータが、機器の外に取り出され、エクスポートされてもよいか。例えば可搬媒 体 120に記録されて持ち出される、通信によって送信されるなどである。
(パーミッション項目例 15)プログラムが、追加プログラム情報を利用しても良 、かど うか。すなわち、可搬媒体 120以外の媒体を通じて (例えばネットワークを通じたダウ ンロードによって)取得された、プログラムの機能を更新'追加するためのプログラム やデータを使用してもよいかどうかなどである。 [0050] 図 3は、パーミッション情報の一例をテーブル形式で示した図であり、この図をもとに パーミッション情報で指定される情報の種類の実例について述べる。
パーミッション情報テーブル 301のパーミッション項目で指定する細目には、リソー スの種類とパラメータとの 2つがあり、リソースの種類 311はパーミッションで許可され る挙動(アクセスする機器リソース)の種類を、パラメータ 312は当該リソースに関する 許可の範囲を示す。それぞれのパーミッション項目のエントリは、示した符号に対応し て、以下のようなパーミッションを示している。
(301A)機器に存在するファイル全般、または特定のファイルへの参照 ·更新の許可 を示している。
(301B)機器や、機器が有する各種のプロパティに対する参照 ·更新の許可を示して いる。
(301C)ネットワーク機能 (ネットワークソケット、ポート番号の利用、特定の通信プロト コルの利用、特定の通信先とのアクセスなど)の使用の許可を示している。
(301D)プログラム実行における特定の動作 (スレッド操作、シリアライズ、デシリアラ ィズ、リフレクションなど)の使用許可を示している。
(301E)機器の有する出力資源 (ディスプレイ、特定のウィンドウ、音源、 LEDランプ 、バイブレータなど)の使用許可を示している。
(301F)機器の有する入力資源 (電源スィッチ、各種スィッチ、チューナー、リモコン
、ジョイスティック、タツチパネル等)の使用許可を示している。
(301G)プログラム力 他のプログラムと通信を行なってよいかどうか、の許可を示し ている。
(301H)プログラムが使用するデータや、プログラムによって生成されるデータ力 他 の機器にエクスポートされてもょ 、か否かの許可を示して 、る。
(3011)プログラム力 追加プログラム情報を利用しても良いか否かの許可を示して いる。
[0051] パーミッション情報には、プログラムが実行される際に、これらの使用が許可される か否か、また許可される場合にはその制限 (どこまでの動作が許可されるか)の情報 が記録される。パーミッション情報で示される許可の種類は、上記に示したものであつ ても、もちろん他のものであってもよい。
パーミッション情報の記録形式は、プログラム実行系がプログラムを実行する際に解 読できる形式であれば何でも良い。例えば、 JAVA (登録商標)プログラムのパーミツ シヨンを記録するための形式として、 "JAVA (登録商標). POLICY"ファイルというも のが設定されていてもよい。また、同様の情報が記述されていれば他の形式であって ちょい。
[0052] 図 4は、 XML言語形式にてパーミッション情報を記述した一例を示す。
図 4において、 XML形式パーミッション情報 401のうち、例えば機器リソースの 1 種であるプロパティのユーザ名" user name"411は、リード(Read)もライト(Write)も 不可(False)とされている。
次に、再び図 1と図 2とを参照して、機器 100の構成各部について説明する。
[0053] 本実施の形態の機器 100は、プログラム蓄積部 101、読込部 105、インストール部 104、選択部 106、プログラム実行部 107、パーミッション設定部 108、検出部 109、 機器リソース 110から構成される。なお、変形例では、パーミッション変換部 115を更 に備えている。
プログラム蓄積部 101は、可搬媒体 120に記録されたプログラムをインストール部 1 04により複製し記録されている。このプログラム蓄積部 101は、ハードディスクゃ不揮 発性のメモリなど、機器の電源を切断してもその記録内容が保持される長期記憶装 置によって実現することができる。
図 1に示した構成では、可搬媒体 120に記録されたプログラム 121、およびこれに 付加されたパーミッション情報 123は全て、機器のプログラム蓄積部 101に複製され る。
[0054] 図 2に示した構成においては、可搬媒体 120に記録されたプログラム 121は、プロ グラム蓄積部 101にインストール部 104によってそのまま複製される。可搬媒体 120 に記録されたパーミッション情報 123は、第 1のパーミッション情報 123Aをプログラム 蓄積部 101にインストール部 104によってそのまま複製される。可搬媒体 120からプ ログラム蓄積部 101に記録される過程において、もしくは、プログラム蓄積部 101に 蓄積された状態力もプログラム実行部 107によって使用される過程において、第 1の パーミッション情報 123Aがパーミッション変換部 115によって変換され、第 2のパーミ ッシヨン情報 103Bとしてプログラム蓄積部 101に記録される。
[0055] プログラム実行部 107はプログラム(121または 102)を実行する。プログラムが JAV A (登録商標)によって提供される場合、プログラムの実行自体〖 AVA (登録商標) 仮想マシンを使用することによって実現することができる。
インストール部 104は、可搬媒体 120のプログラム 121とパーミッション情報 123A をインストールする。そして、インストールした内容を管理するため、可搬媒体 120の 記憶媒体 IDと、プログラム 121のプログラム ID、および第 1のパーミッション情報 123 Aのファイル名とを読み込み、後述のインストール情報テーブル 114に記録する。
[0056] さらに、図 1に示すように、第 2のパーミッション情報 123Bがあれば、それもインスト ールし、図 2に示すように、第 2のパーミッション情報 123Bがなければ、パーミッション 変換部 115に第 1のパーミッション情報 123Aを伝達して、第 2のパーミッション情報 を変換 '生成するように指示する。そして、パーミッション変換部 115から、生成された 第 2のパーミッション情報を受け取り、プログラム蓄積部 101にインストールする。
[0057] 読込部 105は、可搬媒体 120の記憶媒体 IDと、プログラム 121とそのプログラム ID 、および第 1のパーミッション情報 123Aとを読み込み、さらに、図 1に示すように、第 2 のパーミッション情報 123Bがあればそれも読み込み、選択部 106に伝達する。 また、図 2に示すように第 2のパーミッション情報 123Bがなければ、パーミッション変 換部 115に第 1のパーミッション情報 123Aを伝達して、第 2のパーミッション情報を 変換 '生成するように指示する。そして、パーミッション変換部 115から、生成された第 2のパーミッション情報 103Bを受け取り、選択部 106に伝達する。
[0058] 選択部 106は、プログラム蓄積部 101にインストールされたプログラム 102、または 可搬媒体 120に記録されたプログラム 121のいずれのプログラムを実行するかをュ 一ザに問い合わせ、前者の場合、プログラム蓄積部 101にインストールされたプログ ラム 102を読み出し、プログラム実行部 107の主メモリ(不図示)に書き込む。
同時に、プログラム蓄積部 101から、当該プログラムの第 1と第 2のパーミッション情 報を読み出し、また後述のインストール情報テーブル 114から、可搬媒体 120の記憶 媒体 IDとプログラム IDとを読み出し、それらをパーミッション設定部 108に通知する。 [0059] また選択部 106は、後者の場合、読込部 105に可搬媒体 120からの読込を指示す る。そして、可搬媒体 120に記録されたプログラムを読込部 105から受け取り、主メモ リに書き込む。
同様に、可搬媒体 120の記憶媒体 IDと、主メモリに書き込んだプログラムのプログ ラム IDと第 1と第 2のパーミッション情報とを読込部 105から受け取り、パーミッション 設定部 108に伝達する。
[0060] ここで、記憶媒体 IDは、当該プログラムがプログラム蓄積部 101にあるときは、イン ストール情報テーブル 114の記憶媒体 ID欄 715のエントリから、また可搬媒体 120に あるときは読込部 105から得る。
なお、選択部 106は、問い合わせのとき、不図示の表示装置と、キーボードまたは マウス (不図示)とを使用する。なお、明示的にユーザに問い合わせを示さない場合 のデフォルトでの選択が定義されていても良い。すなわち、機器に予め設定を行なつ ておくことによって、いずれの選択をするかのユーザへの問い合わせを省略する実 施形態であっても良い。
[0061] プログラム実行部 107は、プログラムに付加されたパーミッション情報を解析し、プロ グラムの実行を適切に制御(コントロール)する。このための仕組みとして、 JAVA (登 録商標)仮想マシンには、セキュリティマネージャとアクセスコントローラという機構が 用意されている。
JAVA (登録商標)仮想マシンは、 JAVA (登録商標)プログラムに付加されたパーミ ッシヨン情報を解析し、
Figure imgf000020_0001
、う仕組みを用いてプログラムを仮想マシン にロードする。この手続きをとることで、セキュアマネージャとアクセスコントローラは、 プログラムを実行させる際の挙動がパーミッション情報に示された許可範囲を守るよう に、プログラムの実行を適切にコントロールする。この仕組みの詳細に関しては非特 許文献 1に示されている。
[0062] パーミッション設定部 108は、 JAVA (登録商標)仮想マシンにて実現され、プロダラ ム実行部 107により実行されるプログラムのパーミッション情報の設定を行う。パーミツ シヨン設定部 108は、実行されるプログラムを記録した可搬媒体 120の記憶媒体 IDと 、実行されるプログラムのプログラム IDと、第 1および第 2のパーミッション情報とを選 択部 106から受けとり、実行されるプログラムに対して第 1のパーミッション情報または 第 2のパーミッション情報のいずれか適当なパーミッション情報をプログラム実行部 1 08の主メモリ(不図示)に設定する。
[0063] パーミッション設定部 108は、実行されるプログラムが可搬媒体 120から読み出され たときには、第 1のパーミッション情報の設定を行う。また、実行されるプログラムがプ ログラム蓄積部 101から読み出されたときであっても、実行されるプログラムが記録さ れた可搬媒体 120が挿入されているときは、第 1パーミッション情報の設定を行う。そ れ以外のときは第 2パーミッション情報の設定を行う。
[0064] パーミッション設定部 108は、実行されるプログラムが記録された可搬媒体 120が 挿入されている力否かを知るため、検出部 109に対して、可搬媒体 120の記憶媒体 I Dとプログラム IDとを伝達し、装着機構 (不図示)に可搬媒体 120が挿入されている 力どうかの判定をおこなうよう指示する。
検出部 109による可搬媒体 120の挿入、排出の状態の判定結果をもとに、挿入、 排出の状態変化があれば、パーミッション設定部 108は、それぞれ第 1のパーミツショ ン情報、第 2のパーミッション情報に設定変更する。
[0065] 検出部 109は、パーミッション設定部 108から記憶媒体 IDとプログラム IDとを受け 取り、機器に可搬媒体 120が挿入されているとき、受け取った記憶媒体 ID、プロダラ ム IDが、挿入された可搬媒体 120の記憶媒体 ID、及び記録されたプログラムのプロ グラム IDとそれぞれ一致するかどうかを判定し、一致するときはパーミッション設定部 108に、挿入状態である旨を通知する。また、一致しないときは、挿入されていない( 排出)旨を同じくパーミッション設定部 108に通知する。
[0066] 検出部 109は、可搬媒体 120の認識装置、および可搬媒体 120からのデータ読み 取りの仕^ aみと、これをアクセスするソフトウェアプログラムによって実現することがで きる。
機器リソース 110は、プログラム実行部 107がプログラムを実行することでアクセス が可能な、機器が有する各種のデバイスの機能、機器内に格納されたデータへのァ クセスの機能等として実現される。プログラム実行部 107が JAVA (登録商標)仮想マ シンにて実現される場合、機器リソース 110へのアクセスは、 JAVA (登録商標)プロ グラム力 呼び出される各種の JAVA (登録商標)ライブラリを備えることによって実現 できる
機器リソース 110には、通信機能 111、入出力機能 112、ストレージアクセス機能 1 13があるが、もちろん他のものであっても良い。
[0067] パーミッション変換部 115は、インストール部 104または選択部 106からの指示によ り、可搬媒体 120のプログラム 123に付加されて記録されて 、るパーミッション情報が 第 1のパーミッション情報だけのとき、それを変換して第 2のパーミッション情報を生成 し、プログラム蓄積部 101に記録し、インストール情報テーブル 114の当該プログラム の第 2のパーミッション情報欄 713のエントリにファイル名を記録する。
[0068] パーミッション変換部 115は、例えば、パーミッション情報 123を変更するためのル ール (パーミッション変更ポリシー)の定義と、それに従って、入力されたパーミツショ ン情報を変更し、新たなパーミッション情報を生成するソフトウェアプログラムによって 実現することができる。パーミッション変換部 115の詳細については、後に説明する。 なお、プログラム蓄積部 101に蓄積されるパーミッション情報は、セキュリティ上の観 点から、本発明の装置以外の手段によって盗難や改変がされないような、耐タンパ性 を保持して!/ヽることが望ま ヽ。
[0069] 次に、本実施の形態における動作について説明する。
図 5は、インストールの処理、およびプログラムの起動の処理の流れをそれぞれ示 す図である。
先ず、インストールの動作について図 5 (a)を参照して説明する。
インストールは、可搬媒体 120が機器 101に挿入され、ユーザからインストールの指 示があつたとき、インストール部 104によって実行される。例えば機器 100を使用する ユーザに、プログラムを機器 100にインストールするか否かの問い合わせを行ない、 その回答結果を得ることによって実現できる。もしくは、ユーザに問いあわせを行なう 以外の実現方法としては、インストール部 104が機器内の長期記憶装置の空き容量 の情報を有しており、プログラムを蓄積可能なだけの容量を保持していれば、自動的 に複製の処理を行なうことにする、などの実現形態をとつても良い。
[0070] インストール部 104は、機器 100に挿入された可搬媒体 120に記録されたプロダラ ム 121を、プログラム蓄積部 101へ複製する(S504)。
プログラム蓄積部 101は、機器の持つ長期記憶装置の使用可能な容量の情報を 保持している。例えば、長期記憶装置の空き容量が不足しているなど、複製処理の 遂行に問題が発生した場合には、インストール不可として終了する。
[0071] なお、可搬媒体 120の記録が書き換え可能な場合には、プログラムの複製処理を 行なうと同時に可搬媒体 120から元のプログラムの記録を消去する(プログラムを移 動する)ようにしてちょい。
S505では、複製対象のプログラムに付加されたパーミッション情報を、プログラム 蓄積部 101に蓄積する際に、変更を加える力否かをインストール部 103は判定する。
[0072] この判定は、図 1のように記録媒体に記録されたプログラムに、直接実行された時に 使用される第 1のパーミッション情報以外に、ー且機器内にプログラム力 Sインストール された後で実行される時に使用される第 2のパーミッション情報が付加されている場 合には、否と判定し S506に移行する。一方、記録媒体に記録されたプログラムが図 2のような場合、機器内にプログラムが複製された後で実行される時のための第 2の パーミッション情報を、パーミッション変換部 115によって新たに生成する必要がある 。この生成処理のタイミングについては、以下の 2つのケースでの実現が考えられる。 (ケース 1)プログラムが、可搬媒体 120からプログラム蓄積部 101に複製される過程 において生成する。
(ケース 2)プログラム蓄積部 101に記録されたプログラム力 プログラム実行部 107に よって実行される時点において生成する。このときは、第 1のパーミッション情報がプ ログラム蓄積部 101に必要となる。
[0073] どちらのケースでもよいが、本実施の形態では、ケース 1を選択し、 S507に移行す る。
なお、実施の形態の変形例で、ケース 2を選択しているとき、この時点ではパーミツ シヨン変換部 115による変換処理は行なわれず、 S506に移行する。
S506では、可搬媒体 120に記録されたプログラムのパーミッション情報を、プロ グラム蓄積部 101へ複製する処理が行なわれる。
[0074] プログラム蓄積部 101は、機器の持つ長期記憶装置の使用可能な容量の情報を 保持している。例えば、長期記憶装置の空き容量が不足しているなど、複製処理の 遂行に問題が発生した場合には、 S506を取りやめ、プログラムの起動は、可搬媒体 120に記録さ
れたプログラムを、プログラム実行部 107によって直接起動することにする(S503 を行なう)ことにしてもよい。
[0075] S507では、インストール部 104力 パーミッション変換部 115に指示して、可
搬媒体 120に記録されたプログラムのパーミッション情報を変換し、新たに第 2のパ ミッション情報を生成させる。そして、生成された第 2のパーミッション情報をパーミツ シヨン変換部 115から受け取り、プログラム蓄積部 101に記録するとともに、インスト一 ル情報テーブル 114の第 2のパーミッション情報欄 713にその ID又はファイル名を記 載する。
[0076] パーミッション変換部 115は、例えば、変更前のパーミッション情報を読み込んで、 特定のルールによって書き換えられたパーミッション情報を出力するソフトウェアプロ グラムとして実装することができる。
図 6は、パーミッション変換部 115による変換の一例を示す図である。図 6 (a)は変 更前のパーミッション情報、すなわち可搬媒体 120に記録されたプログラムに付加さ れたパーミッション情報の例である。この図では XML形式にて情報を実現した例で ある。
[0077] この例では、パーミッション変更ポリシーによって定義されるルールの例として以下 の 4つを定義する。
(1)機器に存在するファイル全般に対するデフォルトのアクセス権として、 "read"権 限のみを許可し、 "write"権限を許可しな!、ものとする。
(2)機器が有する" user name"プロパティに対するアクセス権として、 "read"権限 のみを許可し、 "write"権限を許可しな!、ものとする。
(3)ネットワーク機能について、 "http : ZZterminalmaker. com"という URLへの アクセスに対して、 "connect"権限を許可する。
(4)上記 3つのルール以外のパーミッション情報に関しては、何ら変更を加えない。 [0078] パーミッション変換部 115は、図 6 (a)に示すパーミッション情報を読み込んで、上 述のルールに従い、新たなパーミッション情報を生成する。図 6 (b)は、 S507により 生成される新たなパーミッション情報の例である。
この処理において、変更後の第 2のパーミッション情報がプログラム蓄積部 101に 記録される。
[0079] プログラムおよびパーミッション情報力 プログラム蓄積部 101に複製された後に、 S508の処理が行なわれる。 S508では、インストール部 104は、複製されたプロダラ ムに関する管理情報を作成する。この情報のことを本実施の形態ではインストール情 報と呼ぶことにする。
インストール情報の一例を図 7に示す。図 7においてインストール情報は、テーブル 形式でインストール情報テーブル 701に記録される。プログラムがプログラム蓄積部 1 01に複製されると、インストール情報のテーブルには、そのプログラムが新たなェント リとして追カロされる。
[0080] インストール情報テーブル 701は、プログラム 711、第 1のパーミッション情報 712、 第 2のパーミッション情報 713、プログラム ID714、可搬媒体 ID715の各項目欄から 構成されている。
プログラム欄 711には、対象となるプログラムを特定するための情報が記載される。 例えば、プログラム蓄積部 101内のファイルシステムにおけるファイル名が記載される
[0081] 第 1のパーミッション情報と第 2のパーミッション情報との各項目欄 712、 713には、 プログラムに対応したパーミッション情報を特定するための情報が記載される。例え ば、プログラム蓄積部 101内のファイルシステムにおけるパーミッションファイル名が 記載される。
第 1のパーミッション情報欄 712には、可搬媒体力ものプログラムを取得して実行す るとき、プログラム蓄積部 101にインストールされたプログラムを取得し、その際可搬 媒体が装着した状態で実行するときに使用されるパーミッション情報のファイル名が 記載される。また、第 2のパーミッション情報欄 713には、プログラム蓄積部 101にィ ンストールされたプログラムを取得して可搬媒体を排出した状態で実行するときに使 用されるパーミッション情報のファイル名が記載される。
[0082] 1つのプログラムに対して、パーミッション情報は第 1と第 2の 2つ(2種類)が存在す る。
第 1のパーミッション情報欄 712および第 2のパーミッション情報欄 713のエントリに は、パーミッション情報を識別するパーミッションファイル名(それぞれ複数指定可)が 記載される。
[0083] 即ち、可搬媒体 120が挿入された状態の実行で使用される第 1のパーミッション情 報 712の" proglA.prT、 "withdisk"という識別情報と可搬媒体 120が挿入されてい ない状態での実行で使用される第 2のパーミッション情報欄 713、 "proglA.prT、 "no disk"と 、う識別情報とが記載されて 、る。
プログラム ID欄 715には、複製元の可搬媒体 120に記載されたプログラムを識別 するための識別情報が記録される。例えば可搬媒体 120でのプログラムを識別する ファイル名力ここに記録される。プログラム IDの情報の使われ方は後述する力 実現 形態によっては存在して 、なくともよ 、。
[0084] 可搬媒体 ID欄 715には、複製元となった可搬媒体 120を識別するための識別情 報が記録される。例えば可搬媒体 120が個々に保持するシリアルナンバーがここに は記録される。可搬媒体 IDの情報の使われ方は後述するが、実現形態によっては 存在していなくともよい。
次に、プログラムの起動の動作にっ ヽて図 5 (b)を参照して述べる。
[0085] 選択部 106は、プログラム蓄積部 101にインストールされたプログラムまたは可搬媒 体 120に記録されたプログラムのいずれのプログラムを実行するかをユーザに問い 合わせ (S510)、前者の場合は、プログラム蓄積部 101にインストールされたプロダラ ム 102を、選択部 106が主メモリに書き込み、パーミッション設定部 108が第 2のパー ミッション情報 103Bを主メモリに設定をした後、プログラム実行部 107が当該プロダラ ムを起動する(S511)。
[0086] また、後者の場合は、可搬媒体 120に記録されたプログラムを、読込部 105を介し 選択部 106が主メモリに書き込み、パーミッション設定部 108が第 1のパーミツショ ン情報 123Aを主メモリに設定をした後、プログラム実行部 107が当該プログラムを起 動する(S512)。
この際に、どのパーミッション情報が選択されるかという情報は、可搬媒体 120に記 録されていてもよいし、また機器側が適切なルールによって (例えば、可搬媒体 120 のデータの並びで先に記録されて 、るものを選択する、など)決定付けても良!、。
[0087] プログラム蓄積部 101に記録されたプログラムが起動される場合の処理 (S511) の詳細を、図 8に示す。
プログラム蓄積部 101に記録されたプログラム 102が実行される場合、本実施の形 態では、プログラムの複製元となった可搬媒体が機器に挿入された状態である力否 かを判定し、それをもとに前回の判定時力 挿入'排出の状態変化があつたか否かを 検出する。判定のタイミングについては、以下の 2種類の判定処理が考えられる。 (タイミング 1)プログラムが起動した直後に、可搬媒体 120の挿入の有無を判定する
(タイミング 2)プログラムの実行中に、可搬媒体 120の挿入の有無を定期的に判定す る。
[0088] これらの 2種類の判定処理は、どちらか片方だけが行なわれても良いし、または両 方とも行なわれても良 、。図 8の処理の流れでは両方の判定処理を行なう場合を想 定して説明する。
まず、プログラム蓄積部 101に記録されたプログラムの実行力、プログラム実行部 1 07によって開始される。ここで、プログラム実行部 107が JAVA (登録商標)仮想マシ ンによって実現される場合には、プログラムの実行を開始するための仮想マシンの初 期化が行なわれる(S801)。
[0089] 上記 (タイミング 1)で述べた、プログラム起動直後における可搬媒体 120の挿入の 有無を判定する(S804)。
この判定は、検出部 109により行われる。
検出部 109は、単純に何らかの可搬媒体 120の挿入状態を判定するのみならず、 可搬媒体 120の種類を判別して、起動するプログラムに応じて「正しい」可搬媒体 12 0が挿入されているか否かを判定する。この可搬媒体 120の挿入'排出の判定の処 理の流れを図 9に示し、次に説明する。 [0090] 先ず、単純に何らかの可搬媒体 120が機器 100に挿入されている力否かを判断す る(S901)。可搬媒体 120の挿入が確認される場合には、 S902に、可搬媒体 120が 機器 100に挿入されて ヽな 、場合には、 S907に移行する。
プログラム実行部 107にて起動が指示されたプログラムの可搬媒体 120の IDを取 得する。これは前述した、プログラム蓄積部 101のインストール情報テーブル 114の 記憶媒体 ID欄 715を参照することによって取得することができる(S902)。
[0091] 機器に挿入された可搬媒体 120の記録内容を読み取り可搬媒体 120の IDを取得 し、 S902で取得した起動対象のプログラムが持つ可搬媒体 120IDとの同一性を確 認
する(S903)。具体的な可搬媒体 120IDとしては、例えば可搬媒体 120が個々 に保持するシリアルナンバーなどを用いて同一性の確認ができる。もちろん他の、プ ログラム蓄積部 101に記録されたプログラムの複製元の可搬媒体 120と、機器に挿 入された可搬媒体 120との同一性が確認できる情報があれば、それを用いても構わ ない。
[0092] 同一性が確認できた場合には S904に、確認できな力つた場合には S907に移行 する。
プログラム実行部 107にて起動が指示されたプログラムのプログラム IDを、検出部 1 09はパーミッション設定部 108から取得する(S904)。
機器 100に挿入された可搬媒体 120の記録内容を読み取り、記録されたプロダラ ムの IDを取得し、 S904で取得した起動対象のプログラムが持つプログラム IDとの同 一性を確認する(S905)。具体的なプログラム IDとしては、例えば可搬媒体でのプロ グラムを識別するファイル名などを用いて同一性確認ができる。もちろんプログラム I Dに限らず、プログラム蓄積部 101に記録されたプログラムと、機器に挿入された可 搬媒体 120に記録されたプログラムとの同一性が確認できる情報があれば、それを 用いても構わない。
[0093] 同一性が確認できた場合には S904に、確認できな力つた場合には S907に移行 する。
処理が、 S906に到達した場合は、正しい可搬媒体 120が機器に挿入された状態 に
あると判定する。また、処理が、 S907に到達した場合は、正しい可搬媒体 120が機 器に挿入されていない (排出された)状態にあると判定する。
[0094] 本実施の形態では、可搬媒体 IDとプログラム IDの 2種類の情報を用いて判定を行 なったが、どちらかの情報のみを使うことにしてもよい。また、 2種類の情報を使う場合 でも、どちらかの情報さえ合致していれば、正しい可搬媒体が機器に挿入されている ちのと半 IJ定することにしてちょい。
再び図 8に戻り、 S804では、以上に述べた検出部 109による、「正しい」可搬媒 体 120が機器 100に挿入された状態にあるかどうかの判定を行なう。挿入された状態 にあると判定される場合には S805Aに、そうでない場合には S805Bに移行する。
[0095] 「正しい」可搬媒体 120が機器 100に挿入された状態にあると判定される場合、また は S806Bで正しい可搬媒体 120が機器に挿入された状態にあるという判定がされた 場合、パーミッション設定部 108は、第 1のパーミッション情報、例えば図 7で示したィ ンストール情報テーブル 114では、 "withdisk"と 、う識別情報で識別される第 1のパ 一ミッション情報のファイル (複数可)の設定を行い、プログラム実行部 107によって、 プログラムの実行が行なわれる (S805A)。
[0096] プログラム実行中における可搬媒体 120が排出状態力否か判定する(S806A)。
パーミッション設定部 108は、プログラム実行部 107からの指示をうけ、検出部 109に 、機器 100が「正 、」可搬媒体が挿入されて 、る状態にあるかどうかを問 、合わせ る。可搬媒体の挿入'排出判定の処理の流れは、図 9にて示したものと同様である。 正し 、可搬媒体 120が機器に挿入されて 、な 、 (排出された)状態にあると!/、う判 定がされた場合、挿入状態力も排出状態に状態変化が起きたため、 S805Bに移行 する。また、正しい可搬媒体 120が機器に挿入された状態にあるという判断が下され た場合、状態変化はないので、 S805Aで選択された第 1パーミッション情報を使用し たままでプログラムの実行を続行する。
[0097] プログラムの実行の終了判定が行なわれる (S807A)。プログラムが終了する具体 的なケースとしては、プログラムが処理の終わりまで実行を終えた、ユーザにより実行 を停止させられた、などの理由が考えられる。プログラムの実行が継続される場合に は、 S805Aに戻って処理を続行する。
S804で「正 、」可搬媒体 120が機器 100に挿入されて ヽな 、状態にあると判 定された場合、または S806Aでプログラム実行中における可搬媒体 120が排出状 態と判定された場合、パーミッション設定部 108は、第 2のパーミッション情報に切り替 えてパーミッション設定を行う(S805B)。
[0098] S806Aのときと同様に、検出部 109により上記(タイミング 2)で述べた、プロ
グラム実行中における可搬媒体 120の挿入の有無を判定する(S806B)。正 ヽ可 搬媒体 120が機器 100に挿入された状態にあるという判定がされた場合、 S805A に移行する。
正しい可搬媒体 120が機器に挿入されていない状態にあるという判断が下された 場合、 S805Bで選択された第 2のパーミッション情報を使用してのプログラムの実行 を続行する。
[0099] S807Aと同様に、プログラムの実行の終了判定が行なわれる(S807B)。プロダラ ムの実行が継続される場合には、 S805Bに戻って処理を続行する。
(実施の形態 2)
実施の形態 2の構成は実施の形態 1と同様である。
本実施の形態のプログラムを説明する。
[0100] プログラムは、例えばユーザの入力を受け付けて遊ぶことができるゲーム等のァプ リケーシヨンプログラムといったものがあるがこれに限定されるものではない。
第 1のパーミッション情報では、プログラムに、例えば以下の 2つの機能項目を使用 することを許可して 、るものとする。
(パーミッション項目 1)機器が有する長期記憶装置 (ストレージ)へのデータ (例え ばゲームを行ったときの得点情報に関するデータなど)のリード許可およびライト許可 である。
[0101] (パーミッション項目 2)ゲームアプリケーションの作成者が運営する、サーバサイト の URLへのネットワークアクセス機能である。
また、第 2のパーミッション情報では、実行方法 Bにより実行するプログラムに、上記 2つのパーミッション項目を使用することを禁止しているものとする。 プログラムは、プログラム実行環境を備えた(つまり本実施の形態のプログラム実行 装置を備えた)、光ディスク再生機器 (または記録機能を備えた光ディスク記録再生 機器であってもよ ヽ)で動作させることができる。
[0102] プログラムは、第 1のパーミッション情報に基づいて動作する場合は、パーミッション 項目 1で示された機能を用いることで、ゲームのハイスコアの記録、および、ゲームを 遊んだユーザの名前の登録を行うことができる。また、パーミッション項目 2で示され た機能を用いることで、サーバサイトの URLにアクセスし、ゲームに登場する追加キ ャラクタ一のデータや、ゲームの追加ステージのデータなど、ゲームに関連する新た なデータを取得し、そのデータを用いてゲームを遊ぶことができる。
[0103] プログラムが、第 2のパーミッション情報に基づいて動作する場合は、パーミッション 項目例 1で示された機能を用いることはできな 、ため、ゲームのハイスコアの記録や、 ゲームを遊んだユーザの名前の登録を行わない。同様にして、パーミッション項目例
2で示された機能を用いることはできな 、ため、ゲームに関連する新たなデータをネ ットワークを通じて取得することはできな 、。
[0104] この場合、ゲームアプリケーションのプログラムは、機器が有する長期記憶装置 (ス トレージ)へのデータのリード ·ライト処理を指定する記述、および、サーバサイトの u
RLへのネットワークアクセス処理を指定する記述を有して 、るが、プログラム実行部 1 07は、第 2のパーミッション情報に基づき、これらの処理を無効にしてプログラムの実 行を行う。
[0105] 処理を無効にされた場合、その処理内容は実現されないまま、プログラムに記述さ れた後続の処理の実行が進められる。例えばゲームアプリケーションのプログラムが J AVA (登録商標)で記述されており、プログラム実行部 107が JAVA (登録商標)仮 想マシンで実現されて ヽる場合、 JAVA (登録商標)仮想マシンは、プログラムに記述 された長期記憶装置 (ストレージ)へのデータのリード'ライト処理を実現しない。同じ く、サーバサイトの URLへのネットワークアクセス処理を実現しない。代わりに JAVA ( 登録商標)仮想マシンは、記述の示す処理が無効にされたことを示す例外発生情報 (エタセプシヨン)を発行する。その後、後続して記述されたプログラムの実行が進めら れる。 (実施の形態 3)
図 10は、実施の形態 3のプログラム実行機器 100の構成図である
[0106] プログラム実行機器 100 (以下、単に「機器 100」という)は、可搬媒体 120の着脱が 可能な機構を備える。
図 10は、可搬媒体 120のプログラムがパーミッション情報をひとつ、つまり第 1のパ 一ミッション情報だけを付加する場合を示している。
図 10のプログラム及び第 1のパーミッション情報には、説明の便宜上、図 1と図 2で 示したプログラム及び第 1のパーミッション情報と同じ番号を付している。
[0107] 可搬媒体 120にはプログラム 121が記録されている。プログラム等の可搬媒体 120 に記録されたデータを機器 100が読み取ることができれば、可搬媒体 120の種類お よび、可搬媒体 120の機器に対する挿入'排出 (着脱)の形態は何であっても良い。 ここでの可搬媒体とは光ディスクや、メモリカード、シリコンデバイス、その他データ を記録可能なさまざまな媒体を含む。例えばメモリカードなどの記憶デバイスは、専 用の端子を機器が備え、その端子に可搬媒体を直接差し込んだり抜き取ったりする ことで、機器と可搬媒体の着脱を実現する。その他の光ディスクなどの可搬媒体は、 トレィ等を用いたディスクローデイング機構、および光ディスク読み取り装置 (ピックァ ップ)等を備えることで、機器と可搬媒体の着脱を実現して ヽるものもある。
[0108] さらに、機器 100は、追加プログラム情報を供給する機器 130 (以下、機器 130と示 す)と接続し、機器 130に格納されたデータを取得することが可能な機構を備えてい る。機器 130は、機器 100と通信接続されるサーノ機器である。その他、機器 130が データを記録する能力を有し、機器 130に記録されたプログラム等のデータを機器 1 00が読み取ることができれば、機器 130の種類および、接続の形態、データを通信 する形態は何であってもよい。機器 130は、光ディスクや、メモリカード、シリコンデバ イス、その他データを記録可能なさまざまな可搬媒体であってもよ 、。
[0109] 機器 130には追加プログラム情報 131が記録されている。追加プログラム情報 131 は、例えばプログラム 121のプログラム ID情報を有しているなど、プログラム 121ある いはプログラム 102との関連付けを示す情報を保持している。さらに、追加プログラム 情報 131は、プログラム 121に付加される第 2のパーミッション情報を有している。
[0110] 追加プログラム情報 131はこれ以外にも、プログラム 121が有する機能を更新 '追 加するためのデータを保持していて良い。このデータは、プログラム 121の一部もしく は全てを更新した新し 、プログラムを含んで 、ても良 、。あるいはプログラム 121が 機器 100上で実行される際に使用される、画像などのメディアデータや、情報や文書 等を記録したメタデータや、その他の種類のデータを含んで ヽても良 、。
[0111] 本実施の形態では、追加プログラム情報 131は、プログラム 121の一部に置き換え られる新し ヽプログラムを有して ヽるものとする。対応するプログラム(プログラム 121 あるいはプログラム 102)と共に、追加プログラム情報 131がプログラム実行部 107の 持つ主メモリ(不図示)に書き込まれることで、機能が更新 '追加されたプログラムが実 行できるものとする。このとき、対応するプログラムの一部は追加プログラム情報に置 き換えられるものであるため、対応するプログラムは必ずしも全ての部分が主メモリ( 不図示)に書き込まれる必要はなぐプログラム実行部 107で必要であるとされた部 分が選択的に書き込まれればよい。
[0112] JAVA (登録商標)実行形式でプログラム 121が書かれ、プログラム実行部 107が J AVA (登録商標)仮想マシンで実現されている場合を例に説明を行なう。もちろんプ ログラム 121は他の形式であっても、後述のプログラム実行部 107によって動作可能 なものであれば何でも良い。例えばここでのプログラムが. NET (ドットネット)(登録商 標)の実行形式であり、プログラム実行部 107が. NET (ドットネット)(登録商標)仮想 マシンであってもよ 、。あるいはプログラムは機種依存のネイティブコードであって、 プログラム実行部 107が、機器が有するプロセッサと主メモリ(主記憶)であってもよい
[0113] JAVA (登録商標)プログラムとそれに伴うメタ情報等を記録したファイルを単一のフ アイルで記録するための形式として JARと 、う記録形式が規定されて!、る。ここでは 実施の形態として、この JAR形式で可搬媒体 120上にプログラムが記録されて 、るも のとする。
可搬媒体 120に記録されるプログラム 121は複数であつてもよいが、説明の便宜上 一つだけ記録されて 、るものとする。 [01 14] また、追加プログラム情報 1 31は、プログラム 121を更新し性能を高めた新しいプロ グラムを含んでいるものとする。ここでは実施の例として、同じく JAR形式で機器 130 に追加プログラム情報が記録されているものとする。
可搬媒体 120に記録されるプログラム 121には、プログラムの識別記号であるプロ グラム IDとパーミッション情報 123とが付加されている。
[01 15] また、機器 130に記録される追加プログラム情報 131には、追加プログラム情報の 識別記号である追加プログラム情報 IDと、パーミッション情報 133とが付加されて ヽ る。
パーミッション情報と、それにより規定される、プログラムに許可される動作について は、上述の実施の形態で述べたものと同じであるため説明は省略する。パーミツショ ン情報の一例をテーブル形式で示したものが図 3であり、 XML言語形式にてパーミ ッシヨン情報を記述した例を示したものが図 4である。これらに関しても、上述の実施 の形態で述べたものと同じであるため説明は省略する。
[01 16] 図 10を参照して、機器 100の構成各部について説明する。
本実施の形態の機器 100は、プログラム蓄積部 101、読込部 105、インストール部 104、選択部 106、プログラム実行部 107、パーミッション設定部 108、機器リソース 1 10から構成される。
プログラム蓄積部 101は、可搬媒体 120に記録されたプログラム、および、機器 13 0に記録された追加プログラム情報をインストール部 104により複製し記録されている 。このプログラム蓄積部 101は、ハードディスクや不揮発性のメモリなど、機器の電源 を切断してもその記録内容が保持される長期記憶装置で実現することができる。
[01 17] 図 10に示した構成では、可搬媒体 120に記録されたプログラム 121、およびこれに 付加されたパーミッション情報 123は、機器 100のプログラム蓄積部 101に複製され る。また、機器 130に記録された追加プログラム情報 131、およびこれに付加された パーミッション情報 133は、機器 100のプログラム蓄積部 101に複製される。
プログラム実行部 107はプログラム 1 21を実行する。また、追加プログラム情報 131 にプログラムが含まれる場合、プログラム 107は追加プログラム情報 131も実行する。 プログラム力 SJAVA (登録商標)によって提供される場合、プログラムの実行自体〖 A VA (登録商標)仮想マシンを使用することによって実現することができる。
[0118] インストール部 104は、可搬媒体 120のプログラム 121とパーミッション情報 123A をインストールする。つまり、可搬媒体 120の記憶媒体 IDと、プログラム 121とそのプ ログラム ID、および第 1のパーミッション情報 123Aとを読み込み、プログラム蓄積部 1 01に複製し、後述の拡張インストール情報テーブル 117のエントリにに複製したプロ グラムのファイル名等を記載する。
[0119] また、インストール部 104は、プログラム 121に関連付けられた、機器 130の追加プ ログラム情報 131の存在が確認されれば、第 2のパーミッション情報 133Bを含む追 加プログラム情報 131をインストールする。つまり、機器 130を識別するための情報で ある機器 IDと、追加プログラム情報 131と、その追加プログラム情報 ID、およびプロ グラム 121に与えられる第 2のパーミッション情報 133Bとを読み込み、プログラム蓄 積部 101に複製し、後述の拡張インストール情報テーブル 117のエントリに複製した 追加プログラム情報の取得元の機器 ID等をプログラム 121のファイル名等に関連付 けて記載する。
[0120] 読込部 105は、可搬媒体 120の記憶媒体 IDと、プログラム 121とそのプログラム ID 、および第 1のパーミッション情報 123Aとを読み込み、選択部 106に伝達する。 また、読込部 105は、プログラム蓄積部 101を参照し、プログラム 121に関連付けら れた追加プログラム情報 131が存在し、第 2のパーミッション情報 103Bが記録されて いるかどうかを確認する。記録されていれば、第 2のパーミッション情報を受け取り、 選択部 106に伝達する。
[0121] 選択部 106は、以下の 2つに関して、機器のユーザに問い合わせを行ない、いず れかを選択する。
(選択 1)プログラム蓄積部 101にインストールされたプログラム 102を実行する力、ま たは可搬媒体 120に記録されたプログラム 121を実行する力。
(選択 2)追加プログラム情報 116を使用して実行を行なうか否力。
[0122] 選択部 106は、問い合わせのとき、不図示の表示装置と、キーボードまたはマウス( 不図示)とを使用する。
なお、この選択部 106は、明示的にユーザに問い合わせを行なわない実施形態に なっていてもよい。機器 100には、デフォルトでどちらを選択するかが予め定義されて いてもよい。いずれの選択を選ぶかユーザに問い合わせる処理を省略して、どちらを 選択するかを切り替える別の手段を備える実施形態であってもよい。
[0123] ユーザへの問い合わせを行なわずに選択の切り替えを行う手段の実現例としては 、例えば、プログラム実行部 107で実行されるプログラムに切り替えを行わせるという 方法がある。すなわち、選択部 106は、選択の切り替えを行うための、プログラムから 呼び出すことのできる API (アプリケーション ·プログラミング 'インタフェース)として実 現される、という実施形態が考えられる。
[0124]
まず (選択 1)に関して、前者が選択された場合の動作について述べる。この場合、 プログラム蓄積部 101にインストールされたプログラム 102を、選択部 106がプロダラ ム実行部 107の主メモリ(不図示)に書き込む。同時に、選択部 106は、後述の拡張 インストール情報テーブル 117から、当該プログラムのプログラム IDを読み出し、それ らを (選択 2)の選択結果の情報とともに、パーミッション設定部 108に通知する。
[0125] このとき、(選択 2)によって、追加プログラム情報 116を使用して実行を行なうことが 指定されて ヽた場合、選択部 106は追加プログラム情報 116もまたプログラム実行部 107の主メモリ(不図示)に書き込む。先の追加プログラム情報 131の説明で述べた 通り、プログラム 102は、必ずしも全ての情報が主メモリ(不図示)に書き込まれる必要 はなぐプログラム実行部 107で必要であるとされた部分が選択的に書き込まれれば よい。
[0126] (選択 2)によって、追加プログラム情報 116を使用して実行を行なうことが指定され ていない場合は、選択部 106は追加プログラム情報 116をプログラム実行部 107に 書き込むことはしない。 次に (選択 1)に関して、後者が選択された場合の動作について述べる。この場合、 選択部 106は、読込部 105に可搬媒体 120からの読込を指示する。そして、可搬媒 体 120に記録されたプログラム 121を読込部 105から受け取り、プログラム実行部 10 7の主メモリ(不図示)に書き込む。同時に、選択部 106はプログラム 121のプログラム IDを読み出し、それらを (選択 2)の選択結果の情報とともに、パーミッション設定部 1 08に通知する。
[0127] このとき、(選択 2)によって、追加プログラム情報 116を使用して実行を行なうことが 指定されて ヽた場合、選択部 106は追加プログラム情報 116もまたプログラム実行部 107の主メモリ(不図示)に書き込む。先の追加プログラム情報 131の説明で述べた 通り、プログラム 121は、必ずしも全ての情報が主メモリ(不図示)に書き込まれる必要 はなぐプログラム実行部 107で必要であるとされた部分が選択的に書き込まれれば よい。
[0128] (選択 2)によって、追加プログラム情報 116を使用して実行を行なうことが指定され ていない場合は、選択部 106は追加プログラム情報 116をプログラム実行部 107に 書き込むことはしない。
プログラム実行部 107は、プログラムに付加されたパーミッション情報を解析し、プロ グラムの実行を適切に制御(コントロール)する。このための仕組みとして、 JAVA (登 録商標)仮想マシンには、セキュリティマネージャとアクセスコントローラという機構が 用意されている。
[0129] JAVA (登録商標)仮想マシンは、 JAVA (登録商標)プログラムに付随したパーミツ シヨン情報を解析し、
Figure imgf000037_0001
、う仕組みを用いてプログラムを仮想マシンに ロードする。この手続きをとることで、セキュアマネージャとアクセスコントローラは、プ ログラムを実行させる際の挙動がパーミッション情報に示された許可範囲を守るように 、プログラムの実行を適切にコントロールする。この仕組みの詳細に関しては非特許 文献 1に示されている。
[0130] パーミッション設定部 108は、 JAVA (登録商標)仮想マシンにて実現され、プロダラ ム実行部 107により実行されるプログラムのパーミッションの設定を行う。パーミツショ ン設定部 108は、実行されるプログラムのプログラム IDと、上記選択部 106で行なわ れた (選択 2)の選択結果の情報とを選択部 106から受けとる。
パーミッション設定部 108は、(選択 2)にて、追加プログラム情報 116を使用して実 行が行なわれると選択された場合には、追加プログラム情報 116に含まれる第 2のパ 一ミッション情報の設定を行なう。そうではない場合、すなわち(選択 2)にて、追加プ ログラム情報 116を使用して実行が行なわれな ヽと選択された場合には、実行される プログラムに付加された第 1のパーミッション情報の設定を行なう。
[0131] 機器リソース 110は、プログラム実行部 107がプログラムを実行することでアクセス が可能な、機器 100が有する各種のデバイスの機能、機器 100に格納されたデータ へのアクセスの機能等として実現される。プログラム実行部 107が JAVA (登録商標) 仮想マシンにて実現される場合、機器リソース 110へのアクセスは、 JAVA (登録商 標)プログラム力 呼び出される各種の JAVA (登録商標)ライブラリを備えることによ つて実現でさる。
[0132] 機器リソース 110には、通信機能 111、入出力機能 112、ストレージアクセス機能 1 13があるが、もちろん他のものであっても良い。
なお、プログラム蓄積部 101に蓄積されるパーミッション情報は、セキュリティ上の観 点から、本発明の装置以外の手段によって盗難や改変がされないような、耐タンパ性 を保持して!/ヽることが望ま ヽ。
[0133] 次に、本実施の形態における動作について説明する。
図 12は、プログラムのインストールの処理の流れを示す図である。
プログラムのインストールは、可搬媒体 120が機器 101に挿入され、ユーザからイン ストールの指示があつたとき、インストール部 104によって実行される。例えば機器 10 0を使用するユーザに、プログラムを機器 100にインストールするか否かの問い合わ せを行ない、その回答結果を得ることによって実現できる。もしくは、ユーザに問いあ わせを行なう以外の実現方法としては、プログラム蓄積部 101が機器内の長期記憶 装置の空き容量の情報を保持しており、プログラムを蓄積可能なだけの容量を保持 していれば、自動的に複製の処理を行なうことにする、などの実現形態をとつても良 い。
[0134] インストール部 104は、機器 100に挿入された可搬媒体 120に記録されたプロダラ ム 121を、プログラム蓄積部 101へ複製する(S1201)。
プログラム蓄積部 101は、機器の持つ長期記憶装置の使用可能な容量の情報を 有している。例えば、長期記憶装置の空き容量が不足しているなど、複製処理の遂 行に問題が発生した場合には、インストール不可として終了する。 [0135] なお、可搬媒体 120の記録が書き換え可能な場合には、プログラムの複製処理を 行なうと同時に可搬媒体 120から元のプログラムの記録を消去する(プログラムを移 動する)ようにしてちょい。
S1202では、拡張インストール情報テーブル 117を参照し、プログラム 121に対応 するエントリが既に存在しているかどうかを確認する。ここで、既にエントリが存在して いる場合というのは、すなわちプログラム 121に関連付けられた追加プログラム情報 が先にインストールされて 、る状態のことを指して 、る。
[0136] S1202でエントリが存在していないと確認された場合は、 S1203の処理を行なう。
S1203は、複製されたプログラムに関する管理情報であるインストール情報を新たに 作成し、エントリとして追加する。ここで作成されるインストール情報は、プログラムのフ アイル名、当該プログラムの第 1のパーミッション情報、プログラム ID、可搬媒体 ID ( 本実施の形態では任意)等である。それぞれの情報の詳細につ!、ては拡張インスト ール情報テーブル 117の説明にて後述する。
[0137] S1202でエントリが既に存在すると確認された場合には、 S1204の処理を行なう。
S1204は、複製されたプログラムに関する管理情報であるインストール情報を、既に 存在する対応するエントリに追記する。
図 13は、追加プログラム情報のインストールの処理の流れを示す図である。
追加プログラム情報のインストールは、機器 100と機器 130が接続され、ユーザから インストールの指示があつたとき、インストール部 104によって実行される。例えば機 器 100を使用するユーザに、追加プログラム情報を機器 100にインストールする力否 かの問い合わせを行ない、その回答結果を得ることによって実現できる。もしくは、ュ 一ザに問いあわせを行う以外の実現方法としては、インストール部 104がプログラム 蓄積部 101の長期記憶装置の空き容量の情報を保持しており、プログラムを蓄積可 能なだけの容量を保持していれば、自動的に複製の処理を行なうことにする、などの 実現形態をとつても良い。
[0138] インストール部 104は、機器 100と接続された機器 130に記録された追加プロダラ ム情報 131を、プログラム蓄積部 101へ複製する(S1301)。
インストール部 104は、機器の持つ長期記憶装置の使用可能な容量の情報を保持 している。例えば、長期記憶装置の空き容量が不足しているなど、複製処理の遂行 に問題が発生した場合には、インストール不可として終了する。
[0139] S1302では、拡張インストール情報テーブル 117を参照し、追加プログラム情報 13 1に関連付けられたプログラム 121に対応するエントリが既に存在しているかどうかを 確認する。ここで、既にエントリが存在している場合というのは、すなわちプログラム 1 21が先にインストールされて 、る状態のことを指して 、る。
S 1302でエントリが存在して!/、な!/、と確認された場合は、 S 1303の処理を行なう。 S1303は、追加プログラム情報に関する管理情報であるインストール情報を新た〖こ 作成し、エントリとして追加する。ここで作成されるインストール情報は、追加プロダラ ム情報、当該プログラムの第 2のパーミッション情報、追加プログラム情報 ID、機器 ID 等である。それぞれの情報の詳細につ!、ては拡張インストール情報テーブル 117の 説明にて後述する。
[0140] S1302でエントリが既に存在すると確認された場合には、 S1304の処理を行なう。
S1304は、追加プログラム情報に関する管理情報であるインストール情報を、既に存 在する対応するエントリに追記する。
拡張インストール情報テーブル 117の一例を図 11に示す。
拡張インストール情報テーブル 117には、プログラム 1171、第 1のパーミッション情 報 1172、第 2のノ ーミッション情報 1173、プログラム ID1174、可搬媒体 ID1175、 追加プログラム情報 1176、追加プログラム情報 ID1177、機器 ID1178の各項目欄 が設けられている。
[0141] プログラム欄 1171のエントリには、対象となるプログラムを特定するための情報が 記載される。例えば、プログラム蓄積部 101内のファイルシステムにおけるファイル名 が記載される。
第 1のパーミッション情報と第 2のパーミッション情報の各項目欄のエントリには、プロ グラムに対応したパーミッション情報を特定するための情報が記載される。例えば、プ ログラム蓄積部 101内のファイルシステムにおけるパーミッション情報のファイル名が 記載される。
[0142] 例えば、第 1のパーミッション情報 1172のパーミッションファィル" 1"0§1八. 'は、 " diskonly"と 、う識別情報を付加されており、追加プログラム情報 116を使用せずに プログラムを実行する場合に使用される。また、例えば、第 2のパーミッション情報 11 73のパーミッションファイル" proglB.prf"は、 "addition"という識別情報を付カ卩され ており、追加プログラム情報 116を使用してプログラムを実行する場合に使用される。
[0143] プログラム ID欄 1174のエントリには、可搬媒体 120上でプログラム 121を識別する ための識別情報が記録される。このプログラム IDの情報は、可搬媒体 120からプログ ラム蓄積部 101にプログラム力インストールされる際に記録される場合と、追加プログ ラム情報 131が関連付けられたプログラムの情報として保持して 、て、追加プロダラ ム情報 131がプログラム蓄積部 101にインストールされる際に記録される場合とがあ る。
[0144] 可搬媒体 ID欄 1175のエントリには、複製元となった可搬媒体 120を識別するため の識別情報が記録される。例えば可搬媒体 120が個々に有するシリアルナンバーが ここ〖こ記録される。可搬媒体 ID欄は、本実施の形態においては存在していなくともよ い。
追加プログラム情報欄 1176のエントリには、対象となる追加プログラム情報を特定 するための情報が記載される。例えば、プログラム蓄積部 101のファイルシステムに おけるファイル名が記載される。
[0145] 追加プログラム情報 ID欄 1177のエントリには、追加プログラム情報を識別するため の情報が記録される。追加プログラム情報 ID欄は、実施の形態によっては存在して いなくともよい。
機器 ID欄 1178のエントリには、複製元となった機器 130を識別するための識別情 報が記録される。例えば機器 130が個々に有するシリアルナンバー、 IPアドレスや U RLなど、データ通信にお 、て機器を特定するための位置情報などが識別情報として 使用できる。機器 ID欄は、実施の形態によっては存在していなくともよい。
[0146] 次に、プログラムの起動の動作について、図 14を参照して述べる。
選択部 106は、追加プログラム情報を使用してプログラムを起動する力否かをユー ザに対して問い合わせを行なう(S1401)。また、プログラム蓄積部 101にインスト一 ルされたプログラムまたは可搬媒体 120に記録されたプログラムのいずれのプロダラ ムを実行するかをユーザに対して問い合わせを行なう(S1405)。これらの結果を用 いて、プログラムの起動の処理は行なわれる。
[0147] パーミッション設定部 108は、 S1401で、追加プログラム情報を使用してプログラム を起動すると選択された場合、プログラムを実行させる際のパーミッション情報として 、第 2のパーミッション情報を設定する(S1402)。さらに、選択部 106は、プログラム 蓄積部の追加プログラム情報を読み出し、プログラム実行部の主メモリに書き込む。
[0148] ここで、追加プログラム情報 116を使用して、機能の追カ卩 ·更新が行なわれたプログ ラム 121またはプログラム 102を起動するための実現形態について記載する。
プログラム実行部 107が JAVA (登録商標)仮想マシンにて実現されている場合、 追加プログラム情報 116に相当する JAR形式のファイルと、プログラム 121またはプロ グラム 102に相当する JAR形式のファイルとが、 JAVA (登録商標)仮想マシンに書き 込まれることによって、機能の追加'更新が行なわれたプログラムを動作させることが できる。
[0149] 追加プログラム情報 116が別のプログラムを含んでおり、その別のプログラムが、プ ログラム 121またはプログラム 102の一部または全てに置き換えられる場合には、後 に発生する、プログラム 121またはプログラム 102の主メモリへの書き込み(S1406又 は S1407)において、これら全ての情報を書き込む必要はなぐプログラム 121また はプログラム 102の持つ一部の情報を書き込むだけで充分である場合もある。
[0150] この、置き換えられるファイルの検出を行なうために、選択部 106は、ファイル名を 比較する機能と、ファイルのタイムスタンプを検出する機能を備える。
選択部 106は、追加プログラム情報 116の JARファイル中に含まれる全てのフアイ ル名と、プログラム 121 (プログラム 102)の JARファイル中に含まれる全てのファイル 名の比較を行ない、同名のファイルを検出した場合には、それらのファイルのタイムス タンプの比較を行なう。その結果、より新しいファイルと思われるものだけをプログラム 実行部 107の主メモリに書き込むことにし、古いと判断されたファイルは主メモリに書 き込まない、という実装にすることができる。
[0151] また、プログラムと追加プログラム情報の主メモリへの書き込みのための正しい順序 関係が規定されている場合がある。そのような場合のために、 S1403は S1406の後 に行なわれる実現形態になって ヽても良 ヽ。
S1405では、プログラム蓄積部 101にインストールされたプログラム 121または可搬 媒体 120に記録されたプログラム 102のいずれのプログラムを実行するかをユーザに 問い合わせる。
[0152] 前者が選択された場合には、プログラム蓄積部 101にインストールされたプログラム 121の一部もしくは全ての情報がプログラム実行部 107の主メモリに書き込まれ、プ ログラムが起動される(S 1406)。
後者が選択された場合には、可搬媒体 120に記録されたプログラム 102の一部もし くは全ての情報がプログラム実行部 107の主メモリに書き込まれ、プログラムが起動さ れる(S 1407)。
[0153] 以上がプログラム起動の際に行なわれる処理の流れである。
(実施の形態 4)
実施の形態 4の構成は、実施の形態 3と同様である。
本実施の形態のプログラムを説明する。
プログラムは、例えばユーザの入力を受け付けて遊ぶことができるゲーム等のァプ リケーシヨンプログラムといったものがあるがこれに限定されるものではない。可搬媒 体 120に記録されたプログラムは、第 1のパーミッション情報 123Aのみを保持する。 このパーミッション情報は、以下の 2つの機能項目が設定されている。
[0154] (パーミッション項目 1)機器が有する長期記憶装置 (ストレージ)へのデータ (例え ばゲームを行ったときの得点情報に関するデータなど)へのリード許可およびライト許 可である。
(パーミッション項目 2)ゲームアプリケーションの作成者が運営するサーバの URL へのネットワークアクセス機能である。
[0155] 第 1のパーミッション情報は、(パーミッション項目 1)の機能の使用を禁止し、(パー ミッション項目 2)の使用を許可しているものとする。本プログラムはプログラム実行環 境を備えた、光ディスク再生機器上で動作させることができる。ここでは、プログラムは 光ディスク再生機器のプログラム蓄積部 101にインストールされず、可搬媒体から直 接プログラムの起動がされるものとする。 [0156] 一方、光ディスク再生機器と接続可能な、ゲームアプリケーションの作成者が設置 するサーノくからは、追加プログラム情報が提供される。インストール部 104は、サーバ 力も追加プログラム情報を取得し、プログラム蓄積部 101にインストールする。
追加プログラム情報には、上記プログラムの更新版、および、第 2のパーミッション 情報が含まれるものとする。
[0157] また、第 2のパーミッション情報では、上記 2つのパーミッション項目の両方について 、使用が許可されているものとする。
追加プログラム情報を使用して起動することが選択されなかった場合には、可搬媒 体に記録されたプログラムのみがプログラム実行部に書き込まれる。この場合、プログ ラムの機能には第 1のパーミッション情報に定められた範囲で許可が与えられる。す なわち、(パーミッション項目 1)で定められた、機器が保持する長期記憶装置 (ストレ ージ)へのデータへのリード'ライトの動作を行うことができない。この場合、可搬媒体 に記録されたプログラムとデータのみが用いられて、ネットワーク力も何ら情報を得て Vヽな 、のと同じ状態でプログラムを動作させて 、ることになる。
[0158] 追加プログラム情報を使用して起動することが選択された場合には、プログラム蓄 積部 101にインストールされた追加プログラム情報、および、可搬媒体に記録された プログラムがプログラム実行部に書き込まれる。
追加プログラム情報には、上記プログラムの更新版が含まれるため、ここでプロダラ ムの更新版と、元の可搬媒体に記録されたプログラムとが、同一のファイルや情報を 有している場合が考えられる。ここでは両者の比較を行い、選択的に書き込みを行う 処理にしても良 、。すなわち追加プログラム情報と可搬媒体に記録されたプログラム とで、両方の全てのデータをプログラム実行部に書き込ませる必要はなぐ更新版の プログラムが有するファイルと重複して 、るファイルなど、プログラムの実行に不要で あると判断される部分は、部分的に書き込みを行わな 、ようにしても良 、。
[0159] この場合、プログラムの機能には第 2のパーミッション情報に定められた範囲で許可 が与えられる。すなわち、(パーミッション項目 1)で定められた、機器が有する長期記 憶装置 (ストレージ)へのデータへのリード'ライトの動作を行うことができるようになる。 この場合、記録媒体に記録されたプログラムと、ネットワークを通じてサーノくから提供 された追加プログラム情報のデータが用いられて、新たなプログラムを新たなパーミツ シヨン情報の元で動作させることができるようになる。
産業上の利用可能性
本発明は、プログラムの動作を適切にコントロールすることにより、セキュリティにお けるアクセス保護'アクセス管理技術として利用することが可能である。プログラム (コ ンテンッ)の作成者が、ユーザのプログラムの取得経路に応じて適切な範囲のサービ スを提供する著作権管理、著作物配信管理技術として応用することができる。

Claims

請求の範囲
[1] プログラムの実行時におけるリソースへのアクセス権限を示すパーミッション情報が 付加されたプログラムを取得して実行するプログラム実行機器であって、
前記プログラムの取得経路に応じて、前記パーミッション情報に含まれる第 1のパー ミッション情報又は第 1のパーミッション情報と異なる第 2のパーミッション情報を設定 するパーミッション情報設定手段と、
前記パーミッション情報設定手段で設定された第 1又は第 2のパーミッション情報に 従 、、前記プログラムを実行する実行手段とを備えることを特徴とするプログラム実行 機器。
[2] 前記プログラムを記録した可搬性記録媒体を装着する装着手段と、
装着された前記可搬性記録媒体に記録された前記プログラムと前記パーミッション 情報とを複製して記憶するプログラム記憶手段とを更に備え、
前記パーミッション情報設定手段は、
前記プログラムの取得経路が前記装着手段に装着された可搬性記録媒体から前 記プログラムを読み込むとき、前記第 1のパーミッション情報を設定する第 1設定部と 前記プログラム記憶手段から前記プログラムを読み込むとき、前記第 2のパーミツシ ヨン情報を設定する第 2設定部とを有することを特徴とする請求項 1記載のプログラム 実行機器。
[3] 前記可搬性記録媒体に記録されたパーミッション情報には、第 1のパーミッション情 報と第 2のパーミッション情報とが含まれており、
前記記憶手段には、前記プログラムとともに第 1のパーミッション情報と第 2のパーミ ッシヨン情報とが記憶されており、
前記第 1設定部は、前記可搬性記録媒体に記録された第 1のパーミッション情報を 設定し、
前記第 2設定部は、前記プログラム記憶手段に記録された第 2のパーミッション情 報を設定することを特徴とする請求項 2記載のプログラム実行機器。
[4] 前記可搬性記録媒体に記録されたパーミッション情報には、第 1のパーミッション情 報が含まれており、
第 1のパーミッション情報を変換ルールに従い第 2のパーミッション情報に変換する 変換手段を更に備えることを特徴とする請求項 2記載のプログラム実行機器。
[5] 前記装着手段に装着された可搬性記録媒体を検出する検出手段を更に備え、 前記パーミッション情報設定手段は、前記検出手段が可搬性記録媒体を検出して いるときは、前記取得経路に拘らず、第 1のパーミッション情報を設定することを特徴 とする請求項 2記載のプログラム実行機器。
[6] 前記プログラムに関連付けられた追加プログラム情報を取得する取得手段を更に 備え、
前記追加プログラム情報は、前記プログラムの機能の追加または更新をするための 追加プログラムと第 2のパーミッション情報とを含み、
前記パーミッション情報設定手段は、取得経路に前記取得手段を介するとき、第 2 のパーミッション情報を設定することを特徴とする請求項 1記載のプログラム実行機器
前記プログラムを記録した可搬性記録媒体を装着する装着手段と、
装着された前記可搬性記録媒体に記録された前記プログラムと前記パーミッション 情報とを複製して記憶するプログラム記憶手段とを更に備え、
前記取得手段は、
外部のサーノ から前記追加プログラム情報を通信回線を介してダウンロードするダ ゥンロード部と、
ダウンロードした追加プログラム情報を前記プログラム記憶手段に追加記憶させる 追加部とを有することを特徴とする請求項 6記載のプログラム実行機器。 プログラムの実行時におけるリソースへのアクセス権限を示すパーミッション情報が 付加されたプログラムを取得して実行するプログラム実行機器のプログラム実行方法 であって、
前記プログラムの取得経路に応じて、前記パーミッション情報に含まれる第 1のパー ミッション情報又は第 1のパーミッション情報と異なる第 2のパーミッション情報を設定 するパーミッション情報設定ステップと、
前記パーミッション情報設定ステップで設定された第 1又は第 2のパーミッション情 報に従 、、前記プログラムを実行する実行ステップとを有することを特徴とするプログ ラム実行機器のプログラム実行方法。
PCT/JP2005/011792 2004-06-30 2005-06-28 プログラム実行機器およびそのプログラム実行方法 WO2006003875A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/571,098 US7823197B2 (en) 2004-06-30 2005-06-28 Program execution device and program execution method
JP2006528683A JP4682139B2 (ja) 2004-06-30 2005-06-28 プログラム実行機器およびそのプログラム実行方法
EP05755805A EP1783581A4 (en) 2004-06-30 2005-06-28 PROVISION OF EXECUTION OF A PROGRAM AND METHOD OF EXECUTION

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004-194889 2004-06-30
JP2004194889 2004-06-30
JP2004314664 2004-10-28
JP2004-314664 2004-10-28

Publications (1)

Publication Number Publication Date
WO2006003875A1 true WO2006003875A1 (ja) 2006-01-12

Family

ID=35782683

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/011792 WO2006003875A1 (ja) 2004-06-30 2005-06-28 プログラム実行機器およびそのプログラム実行方法

Country Status (5)

Country Link
US (1) US7823197B2 (ja)
EP (1) EP1783581A4 (ja)
JP (1) JP4682139B2 (ja)
CN (1) CN100580611C (ja)
WO (1) WO2006003875A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012033049A (ja) * 2010-07-30 2012-02-16 Japan Digital Laboratory Co Ltd プログラムおよびライセンス管理用の記憶媒体、サーバおよびコンピュータシステム
JP2012532392A (ja) * 2009-07-06 2012-12-13 ジェムアルト エスアー 受信側の印章によりリモートコードの安全を保証する方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100465982C (zh) * 2004-07-16 2009-03-04 松下电器产业株式会社 应用执行装置及应用执行装置的应用执行方法
CN101853355B (zh) 2005-02-14 2013-04-24 松下电器产业株式会社 集成电路
US20090238545A1 (en) * 2005-11-22 2009-09-24 Matsushita Electric Industrial Co., Ltd. Reproducing device and program
JP2008293378A (ja) * 2007-05-25 2008-12-04 Panasonic Corp プログラム書き換え装置
JP5249920B2 (ja) * 2007-07-05 2013-07-31 パナソニック株式会社 データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路
EP2259204A1 (en) 2008-03-28 2010-12-08 Panasonic Corporation Software updating apparatus, software updating system, invalidation method, and invalidation program
WO2009118800A1 (ja) * 2008-03-28 2009-10-01 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、改ざん検証方法、及び改ざん検証プログラム
JP5515904B2 (ja) * 2010-03-17 2014-06-11 株式会社リコー 情報処理システム、管理装置、情報処理装置、インストール処理方法、プログラム及び記憶媒体
US20130061316A1 (en) * 2011-09-06 2013-03-07 Microsoft Corporation Capability Access Management for Processes
US9773102B2 (en) 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
US8959577B2 (en) 2012-04-13 2015-02-17 Cisco Technology, Inc. Automatic curation and modification of virtualized computer programs
US10356204B2 (en) * 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9449187B2 (en) * 2014-08-11 2016-09-20 Document Dynamics, Llc Environment-aware security tokens
US10387368B2 (en) * 2015-10-23 2019-08-20 International Business Machines Corporation Ideal age vector based file retention in a software testing system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0853279A2 (en) 1997-01-09 1998-07-15 Sun Microsystems, Inc. Method and apparatus for controlling software access to system resources
WO2001099030A2 (en) 2000-06-21 2001-12-27 Microsoft Corporation Evidence-based security policy manager
US20020174224A1 (en) 1997-12-11 2002-11-21 Scheifler Robert W. Stack-based access control
US6526513B1 (en) * 1999-08-03 2003-02-25 International Business Machines Corporation Architecture for dynamic permissions in java
WO2003083646A1 (fr) * 2002-04-03 2003-10-09 Ntt Docomo, Inc. Procede et systeme de distribution, et terminal

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634012A (en) 1994-11-23 1997-05-27 Xerox Corporation System for controlling the distribution and use of digital works having a fee reporting mechanism
JP2000503154A (ja) * 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US6202121B1 (en) 1998-04-15 2001-03-13 Microsoft Corporation System and method for improved program launch time
JP2001092721A (ja) * 1999-09-17 2001-04-06 Fujitsu Ltd コンテンツ利用制御装置、コンテンツ利用制御システムおよびコンテンツ利用制御プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001117769A (ja) * 1999-10-20 2001-04-27 Matsushita Electric Ind Co Ltd プログラム実行装置
JP2001312374A (ja) * 2000-04-28 2001-11-09 Fujitsu Ltd 記憶装置及びアクセス制御方法
US7185364B2 (en) 2001-03-21 2007-02-27 Oracle International Corporation Access system interface
US20030046578A1 (en) * 2001-09-05 2003-03-06 International Business Machines Incorporation Apparatus and method for providing access rights information in metadata of a file
JP2003271458A (ja) * 2002-03-12 2003-09-26 Tdk Corp コンテンツ配信システムおよび、これに用いるコンピュータプログラム、記録媒体、端末装置、およびサーバ
US20030231343A1 (en) * 2002-05-08 2003-12-18 Ayako Kobayashi Image forming apparatus, program adding method, and a recording medium
JP4037315B2 (ja) 2002-05-08 2008-01-23 株式会社リコー 画像形成装置およびプログラム停止方法
CN1685430A (zh) 2002-09-30 2005-10-19 皇家飞利浦电子股份有限公司 具有多个耦合元件的记录载体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0853279A2 (en) 1997-01-09 1998-07-15 Sun Microsystems, Inc. Method and apparatus for controlling software access to system resources
US20020174224A1 (en) 1997-12-11 2002-11-21 Scheifler Robert W. Stack-based access control
US6526513B1 (en) * 1999-08-03 2003-02-25 International Business Machines Corporation Architecture for dynamic permissions in java
WO2001099030A2 (en) 2000-06-21 2001-12-27 Microsoft Corporation Evidence-based security policy manager
WO2003083646A1 (fr) * 2002-04-03 2003-10-09 Ntt Docomo, Inc. Procede et systeme de distribution, et terminal

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAVID FLANAGAN, JAVA QUICK REFERENCE 3RD EDITION, KABUSHIKI KAISHA ORAIRI JAPAN, 20 December 2000 (2000-12-20), pages 230 - 242, XP002998249 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012532392A (ja) * 2009-07-06 2012-12-13 ジェムアルト エスアー 受信側の印章によりリモートコードの安全を保証する方法
JP2012033049A (ja) * 2010-07-30 2012-02-16 Japan Digital Laboratory Co Ltd プログラムおよびライセンス管理用の記憶媒体、サーバおよびコンピュータシステム

Also Published As

Publication number Publication date
CN100580611C (zh) 2010-01-13
JPWO2006003875A1 (ja) 2008-04-17
EP1783581A1 (en) 2007-05-09
US20080047000A1 (en) 2008-02-21
JP4682139B2 (ja) 2011-05-11
EP1783581A4 (en) 2010-08-25
US7823197B2 (en) 2010-10-26
CN1977229A (zh) 2007-06-06

Similar Documents

Publication Publication Date Title
JP4682139B2 (ja) プログラム実行機器およびそのプログラム実行方法
JP4958671B2 (ja) ライセンス管理装置、ライセンス管理方法、及びコンピュータプログラム
JP4459215B2 (ja) ゲーム装置および情報処理装置
US9854131B2 (en) Image forming apparatus with personal setting synchronization and method for controlling same
JP5094709B2 (ja) 近隣メディアの凝集および同期
EP2249254A2 (en) Storage device having direct user access
JP4633735B2 (ja) 情報処理装置、集積回路、データ転送制御方法、データ転送制御用プログラム、プログラム記録媒体、プログラム伝送媒体、及びデータ記録媒体
JP4671198B2 (ja) 情報処理装置
US20060253620A1 (en) Data structure of flash memory having system area with variable size in which data can be updated, USB memory device having the flash memory, and method of controlling the system area
US20080114693A1 (en) Method for allowing content protected by a first DRM system to be accessed by a second DRM system
JP2008071304A (ja) 情報処理装置、ダウンロード方法、ダウンロード中断方法、ダウンロード再開方法及びプログラム
US11298613B2 (en) Information processing device, data acquisition method, and program
JP2022538081A (ja) 画面共有処理方法、装置、機器及び記憶媒体
US20080114692A1 (en) System for allowing content protected by a first DRM system to be accessed by a second DRM system
TW201025050A (en) Device and method for filtering a file system
JP2005228293A (ja) 情報処理装置、およびプログラム
US20050246286A1 (en) License creation apparatus, license creation method, and computer program
US8161383B2 (en) Information processing apparatus and information processing method
US20070025197A1 (en) Information-processing apparatus, recording medium and information-processing method
JP2009163760A (ja) 情報処理装置とその方法及びプログラム
CN107667343B (zh) 用于加载按需加载资源的系统和方法
JP2008041120A (ja) 情報処理装置及び情報処理方法
JP7160762B2 (ja) 情報処理装置およびコンテンツ情報表示方法
WO2006077490A1 (en) Protection method and system against copying of data in files transmitted by streaming
WO2008069887A2 (en) Method and system for allowing content protected by a first drm system to be accessed by a second drm system

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 BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA 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 IS IT LT LU MC NL PL 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: 2006528683

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11571098

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200580021972.8

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 2005755805

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005755805

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11571098

Country of ref document: US