WO2007007805A1 - 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路 - Google Patents

検証方法、検証プログラム、記録媒体、情報処理装置、集積回路 Download PDF

Info

Publication number
WO2007007805A1
WO2007007805A1 PCT/JP2006/313898 JP2006313898W WO2007007805A1 WO 2007007805 A1 WO2007007805 A1 WO 2007007805A1 JP 2006313898 W JP2006313898 W JP 2006313898W WO 2007007805 A1 WO2007007805 A1 WO 2007007805A1
Authority
WO
WIPO (PCT)
Prior art keywords
verification
information
virtual machine
processing apparatus
information processing
Prior art date
Application number
PCT/JP2006/313898
Other languages
English (en)
French (fr)
Inventor
Minehisa Nagata
Senichi Onoda
Toshihisa Nakano
Masaya Yamamoto
Kaoru Murase
Masayuki Kozuka
Tateo Oishi
Yoshikazu Takashima
Takashi Yamanishi
Yoshitomo Osawa
Jun Yonemitsu
Katsumi Muramatsu
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Sony Corporation
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., Sony Corporation filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to BRPI0612995-1A priority Critical patent/BRPI0612995A2/pt
Priority to JP2007524688A priority patent/JP4889638B2/ja
Priority to US11/662,603 priority patent/US8281362B2/en
Publication of WO2007007805A1 publication Critical patent/WO2007007805A1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Definitions

  • Verification method Verification method, verification program, recording medium, information processing apparatus, integrated circuit technology
  • the present invention relates to an apparatus that uses a virtual machine to execute a program, and more particularly to a technology that determines the legitimacy of a platform on which the virtual machine is implemented and excludes the platform if the platform is illegal.
  • Virtual machines are being used. Generally, virtual machines are software-implemented, and interfaces and other information necessary for implementation are publicly available, and anyone can implement virtual machines.
  • An object of the present invention is, in view of the above problems, to provide an information processing method by which a program can verify that a virtual machine for operating itself is properly implemented.
  • a verification method used for an information processing apparatus that executes processing related to reproduction of content by a virtual machine included in the inside, together with the content.
  • a reading step of reading a verification program recorded in a recording medium, and a verification step of verifying the legitimacy of the information processing apparatus including the virtual machine by the virtual machine executing the verification program. Provide a verification method characterized by [0005] By using the above-described verification method, it is possible to verify whether or not the virtual machine that operates the verification program itself is properly implemented.
  • an acquisition step in which the verification program acquires, as verification information, a value held in a predetermined memory address of the information processing apparatus, and the verification information acquired in the acquisition step.
  • a determination step of determining whether the information processing apparatus is valid or not based on the verification program.
  • the information processing apparatus is verified using a value stored in a predetermined memory address.
  • a virtual machine can not be implemented without knowing the memory address that holds the value for verification. This can make it difficult for an unauthorized third party who does not know the memory address to implement an unauthorized virtual machine.
  • the recording medium further records a reproduction related program that is executed on the virtual machine and includes a processing procedure relating to reproduction of the content
  • the verification method further includes verification results
  • a suppressing step may be included to suppress execution of a processing procedure relating to reproduction of the content.
  • the content is deformed so as to be able to be restored by a predetermined restoration process
  • a processing procedure relating to reproduction of the content includes a procedure for restoring the content being deformed by the restoration process.
  • the suppressing step may suppress the execution of the restoration process.
  • the verification information may be information that changes with timing!
  • the information which changes with timing is used as verification information, even if the fraudulent analyst can specify the memory address holding the verification information. It becomes difficult to identify the value of valid verification information.
  • the verification information is assumed to be information relating to the content to be reproduced.
  • the verification program verifies the legitimacy of the information processing apparatus based on the information on the content to be reproduced.
  • the verification program can verify whether the content to be reproduced is the content to be used with the verification program.
  • the above-described verification method is performed, for example, by the unauthorized third party duplicating the valid verification program and reading the duplicate verification program when reproducing the other content. It is also possible to prevent the fraud that passes the verification of the company.
  • the verification information may be information depending on an execution environment including the virtual machine.
  • the verification program can verify whether the execution environment for executing the verification program is an execution environment implemented by an unauthorized third party who does not know the valid verification information.
  • a verification value and an inspection SE / rail are further recorded in association with each other, and in the determination step, the verification information acquired in the acquisition step and the recording on the recording medium Comparing the determined verification value with the verification value based on the verification iE / rail, wherein the determining step determines the verification SE / rail as a result of the comparison. If satisfied, it may be determined that the information processing apparatus is valid.
  • the acquisition step includes a request step of requesting a value held in the predetermined memory address at the timing of verification
  • the verification method further includes And a response step of reading the value held in the predetermined memory address according to the request by the request step, and returning the read value as the verification information to the verification program, and the acquisition of the acquisition step Receiving the verification information returned in response to the request, and the comparing step may perform the comparison using the verification information acquired by the reply.
  • a plurality of the verification values are further recorded on the recording medium in correspondence with the timing of the verification, and the comparison step includes the verification information acquired at the timing of the verification; Correspond to the timing of the verification!
  • the comparison is performed using the verification value and the verification SE / rail, and the determination step repeatedly executes the comparison step every time the verification timing comes, and the result of the repetition
  • the information processing apparatus may determine that the information processing apparatus is illegitimate if the verification information and the verification value satisfy the prosody IE / rail a predetermined number of times or more.
  • each of the plurality of verification values is recorded in the recording medium in association with identification information for uniquely identifying the virtual machine, and the comparison step is included in the information processing apparatus.
  • the comparison may be performed using the identification information of the virtual machine and the corresponding verification value.
  • verification can be performed using different verification values for each virtual machine.
  • verification timing and inspection SE / rail are further correlated and recorded, and the information processing apparatus is further held at the predetermined memory address at predetermined timing.
  • Storage means for storing the value as comparison information the acquisition step acquiring, as the verification information, the value held at the predetermined memory address at the timing of the verification,
  • the determination step includes a comparison step of comparing the verification information acquired at the timing of the verification with the comparison information stored in the storage means based on the inspection SE / rail.
  • the determining step determines whether the information processing apparatus is valid based on a result of the comparison; Let's make the above judgment.
  • the obtaining step includes a request step of requesting a value held in the predetermined memory address at the timing of the verification
  • the verification method further includes the steps of: And a response step of reading a value stored in the predetermined memory address according to a request and returning the read value as the verification information to the verification program, and the acquisition of the acquisition step includes It is to acquire the verification information sent back in response to the request, and the comparison step may perform the comparison using the verification information acquired by the reply.
  • the information processing apparatus further includes a random number generation unit that generates a random number
  • the verification method further causes the random number generation unit to generate a random number every time the verification timing comes.
  • the random number holding step for holding the predetermined random number at the predetermined address, and the acquisition step acquires the verification information by reading the random number held by the random number holding step at the timing of the verification.
  • the determining step may determine that the information processing apparatus is valid if the verification information and the comparison information are different as a result of the comparison.
  • the random number generation unit may perform the generation based on information depending on an execution environment including the virtual machine.
  • the information processing apparatus further includes a clocking unit that clocks time and writes the clock to the predetermined memory address, and the storage unit is written to the predetermined memory address at a predetermined timing.
  • the acquisition step is stored as comparison information, and the acquisition step reads the time when V is written to the predetermined memory address at the timing of the verification and the acquisition of the verification information is performed.
  • the determination step it is determined that the information processing apparatus is valid if the time indicated in the verification information is greater than the time indicated in the comparison information as a result of the comparison. Decide to judge May be
  • the present invention is an information processing apparatus that executes processing relating to reproduction of content recorded in a recording medium and includes a virtual machine inside, wherein the recording medium is executed on the virtual machine.
  • a verification program for verifying the legitimacy of the information processing apparatus is recorded, and the information processing apparatus includes reading means for reading the verification program from the recording medium, and a predetermined memory address of the information processing apparatus.
  • Accepting means for accepting the request of the verification value to be held at the timing of verification V, and the value stored in the predetermined memory address is read out when the request is received.
  • a reply unit for returning the value to the verification program.
  • the present invention is an integrated circuit mounted on an information processing apparatus including a virtual machine and executing processing relating to reproduction of content recorded on the recording medium, the recording medium comprising: A verification program for verifying the legitimacy of the information processing apparatus is recorded by being executed on the virtual machine, and the integrated circuit reads the verification program from the recording medium; When the request for the verification program is also received at a predetermined memory address of the processing device at the timing of verification, the request for the verification program is received. When the request is received, the request is held at the predetermined memory address. There may be provided response means for reading out a value and returning the read out value to the verification program.
  • a recording medium that records a verification program that executes processing relating to content reproduction and verifies the legitimacy of an information processing apparatus including a virtual machine. Whether the information processing apparatus is valid based on an acquisition step of acquiring a value held at a predetermined memory address of the information processing apparatus as verification information, and the verification information acquired in the acquisition step And a determination step of determining whether or not to be included.
  • the processing relating to the reproduction of the content recorded on the recording medium is executed, and the processing of verifying the legitimacy of the information processing device including the virtual machine inside is performed in the information processing device.
  • a verification program for causing the information processing apparatus to execute the process the acquisition step of acquiring, as verification information, a value held in a predetermined memory address of the information processing apparatus, and the verification information acquired in the acquisition step. And a determination step of determining whether the information processing apparatus is valid.
  • FIG. 1 is a diagram showing a configuration of a recording medium and an information processing apparatus in Embodiment 1.
  • FIG. 2 A diagram showing a flow of virtual machine code execution processing in the first embodiment.
  • FIG. 3 A diagram showing a flow of validity verification processing of an execution environment including a virtual machine according to the first embodiment.
  • FIG. 5 Example of inspection SE / rail table structure possessed by virtual machine code in the first embodiment
  • FIG. 6 A diagram showing another example of the configuration of the recording medium and the information processing apparatus in the first embodiment
  • FIG. 7 A diagram showing another example of the configuration of the recording medium and the information processing apparatus in Embodiment 1.
  • FIG. 8 A diagram showing a system model of a storage medium and an information processing apparatus in Embodiment 2.
  • FIG. 9 A diagram showing operations of verification processing and restoration processing in the second embodiment.
  • FIG. 10 A diagram showing a flow of validity verification processing of an execution environment including a virtual machine in the second embodiment.
  • FIG. 11 A diagram showing another example of the storage medium and the system model of the information processing device in the second embodiment.
  • FIG. 12 A diagram showing a general system model of a storage medium and an information processing apparatus in a second embodiment. Explanation of sign
  • virtual machine code 121 which is a program operating on a virtual machine, is recorded.
  • the recording medium 102 is a BD (Blu-ray Disc), but is not limited thereto.
  • the virtual machine code 121 includes a virtual machine verification module 1121, a verification information holding module 1122, and a code dependent processing module 1123. Details of each module will be described later.
  • the information processing apparatus 101 is an apparatus that executes a virtual machine code 121 using a virtual machine, and as shown in FIG. 1, a disk reading unit 111, a user operation reception unit 112, a virtual machine execution unit 113, An information holding unit 114 and a work information holding unit 118 are provided.
  • a virtual machine is software that converts a program implemented as virtual machine code 121 into native code for a platform and executes the program in order to operate the program without depending on the platform such as CPU or OS.
  • a virtual machine av ava a (registered trademark) virtual machine and a virtual machine code 121 «Ja Va (registered trademark) byte code but it is not limited thereto.
  • An implementation example of the information processing apparatus 101 includes a CPU, a work memory, a flash memory, and a BD.
  • the disc reading unit 111 is a BD (Blu-ray Disc) drive
  • the information holding unit 114 is a flash memory
  • the user operation receiving unit 112 is a remote controller.
  • the work information holding unit 118 is a work memory
  • the virtual machine execution unit 113 is a method that can be configured with software that operates using a CPU and a work memory. It is not limited to the configuration by software. The other implementations are not limited to this.
  • the information holding unit 114 holds a virtual machine execution code 115 and virtual machine identification information 117.
  • the virtual machine execution code 115 is software, and includes a verification value acquisition module 1151 and a virtual machine code execution module 1154. Details of each module will be described later.
  • the virtual machine identification information 117 is information for identifying a virtual machine, and is, for example, 8-byte data configured by “information processor manufacturer ID + information processor model number + virtual machine version number”. However, as long as the information can uniquely identify the virtual machine, it is not limited to this.
  • the provider of the legitimate virtual machine execution code 115 submits a virtual iE / rail table and virtual machine identification information 117 unique to each virtual machine to the virtual machine management organization as shown in FIG.
  • the inspection iE / rail table may be an inspection SE / rail table or identification information for each playback device on which a virtual machine is mounted.
  • the virtual machine management organization provides the implementer of virtual machine code with a virtual machine inspection SE / rail table and virtual machine identification information 117.
  • the implementer of virtual machine code creates verification information based on this.
  • Fig. 4 shows an inspection SE / rail table specific to each virtual machine (each reproduction device).
  • an address 401 used for verification, a verification timing 402 indicating when to verify, and an address 401 at that time Take a similar value!
  • a verification value 403 indicating whether or not the value is a verification SE / rail 404 indicating what kind of state the verification is successful.
  • the address 401 represents a specific address or a specific range of addresses, as shown in FIG.
  • the inspection SE / rail table is not limited to the table configuration shown in Fig. 4.
  • a BD is assumed as the recording medium 102, and the virtual machine code 121 recorded there is taken into the information processing apparatus 101 by the disc reading unit 111, but the invention is limited thereto.
  • the virtual machine code 121 may be taken into the information processing apparatus 101 by another method. Good.
  • the information processing apparatus 101 starts processing by receiving an instruction to execute the virtual machine code 121 on the recording medium 102 through the user operation receiving unit 112.
  • the virtual machine execution unit 113 loads the virtual machine execution code 115 from the information holding unit 114, and activates the virtual machine (S201).
  • the virtual machine code 121 is read from the recording medium 102 through the disk reading unit 111, and the virtual machine execution unit 113 activates the virtual machine code 121 on the virtual machine (see FIG.
  • the virtual machine code 121 activated on the virtual machine uses the virtual machine verification module 1 121 and the verification information storage module 1122 to verify the legitimacy of the execution environment including the virtual machine that is executing itself. Whether or not it is checked (S203).
  • the verification result of S204 is determined (S205), and in the case of NG, it is checked whether the number of times of NG has become a prescribed number of times (S208).
  • NG is equal to or more than the specified number of times, the virtual machine code 121 is implemented so as to end its own execution, so the execution is ended.
  • S203 is reworked.
  • the specified number of times may be one or more than one, which has the effect of improving the verification accuracy.
  • the code dependent processing defined in the code dependent processing module 1123 in the virtual machine code 121 is executed (S206).
  • the code dependent processing module 1123 defines different processing for each virtual machine code 121. For example, decryption of the content 122 is performed as copyright protection processing of the content 122 such as a movie recorded separately on the recording medium 102. Although processing is performed, it does not restrict to this.
  • This process is a process of verifying, by the virtual machine code 121, whether the execution environment including the virtual machine executing itself is legitimate.
  • the virtual machine execution code 115 can be implemented by anyone as information necessary for implementation such as interface and processing content is disclosed. For this reason, if the virtual machine execution code 115 is not legitimate, an illegal operation may be performed when the virtual machine code 121 is executed, and the processing of the virtual machine code 121 may not be performed correctly. If the virtual machine code 121 is a program for protecting the copyright of the content 122 such as a movie, which is separately recorded on the recording medium 102, for example, the content 122 is illegally reproduced and the copyright can not be protected. Therefore, verification of the execution environment including the virtual machine is required.
  • the modules constituting the virtual machine code 121 will be described.
  • the virtual machine verification module 1121 is a module for verifying whether the execution environment including the virtual machine executing itself is normal or not, and the verification information holding module 1122 verifies the legitimacy of the execution environment including the virtual machine. It is information for. Specifically, the virtual machine is executed including the virtual machine depending on whether the virtual machine identification information 117 and the value to be verified are acquired, and the value matches the inspection SE / rail held in the verification information holding module 112. Verify the legitimacy of the environment.
  • an emulator is created in which data including the player model number, manufacturer name and the like are copied to different reproduction devices, and, for example, a virtual machine and a virtual machine Even if the emulator is installed, it is difficult to create an emulator to match the SE / rail table 400 for each virtual machine shown in FIG. It is possible to prevent reproduction on an invalid emulator. Details of the verification process will be described later.
  • FIG. 5 shows an example of the inspection SE / rail table 500 held by the verification information holding module 1122.
  • the verification iE / rail table 500 held by the verification information holding module 1122 shows the correspondence between the virtual machine identification information 117 and part or all of the verification iE / rail table 400 for each virtual machine provided in FIG. .
  • the SE / Rail table used by the SE / Rail table 500 held by the verification information holding module 1122 can be freely selected and used from the SE / Rail table 400 by the virtual machine code 121 creator. Unique verification can be performed for each machine code 121.
  • the verification value acquisition module 1151 searches the work information storage unit 118 for the address specified by the virtual machine verification module 1121 in the virtual machine code 121, and acquires the value stored in the address! It is.
  • the virtual machine code execution module 1154 is a module that executes while converting the processing defined by the code dependent processing module 1123 in the virtual machine code 121 into platform dependent native code.
  • the virtual machine verification module 1121 checks the virtual machine identification information 117 of the information holding unit 114 and the verification information holding module 1122 holds the SE / rail table. Comparing with 500, the verification timing 402 to be used is detected. The following explanation is given on the assumption that the virtual machine is U. Blue Report 117 power SOxOOl lffOOOOOl lOOl.
  • the detected verification timing is reached, the following verification processing is performed.
  • the virtual machine code 121 designates the address 401 corresponding to the verification timing 402, and makes a request for verification information to the virtual machine (S301). For example, when Menu 1 is displayed In this case, the address OxOOff 0001 is specified to request verification information.
  • the virtual machine acquires the value held at the designated address OxOOff 0001 on the work information holding unit 118 (S302), and returns the value as verification information to the virtual machine code 121 (S303).
  • the virtual machine code 121 acquires the returned verification information (S 304), verifies the verification information and the verification value 403 based on the verdict rail 404, and passes the result to S 205 in FIG.
  • the verification information is equivalent to Oxed
  • the verification result is OK, otherwise it is NG.
  • the address 402 may be either a physical Z logical address or a real Z virtual address, as long as the information of the specified address can be acquired.
  • the virtual machine may convert the address into the address suitable for the work information storage unit 118 based on the address map information instead of using the designated address as it is, and then acquire the verification information.
  • the address map information may be configured not only to be static but also to manage the correspondence even if it changes dynamically, as long as it can indicate the corresponding area of the work information holding unit 118.
  • the data length of the verification value is a data length of 1 byte.
  • the present invention is not limited to this.
  • the work information holding unit 118 can be implemented so that all areas can be referred to by the verification value acquisition module 1151 so that reference can not be made to some areas, including virtual machines. It is possible to improve the resistance to improper analysis of the implementation environment.
  • the value in the work information holding unit 118 is acquired and used as verification information.
  • a value used as verification information and inspection SE / rail will be described below.
  • any value that can be expanded on the work information holding unit 118 without being limited to these is also a candidate for verification information.
  • the inspection iE / rail table 500 held by the verification information holding module 1122 of FIG. 5 At the time of initial video playback, if the same value as the timestamp of the index file 122 is included in the data 0x00110044 to 0 ⁇ 001 OOOff, the verification is OK.
  • the virtual machine code 121 is actually executed. It is possible to evaluate the legitimacy by verifying whether the prescribed information exists in a specific area.
  • the address may be a single address other than the range designation. Both address and verification timing depend on the execution environment including virtual machines.
  • the file size and time stamp of an index file, navigation file, and other files stored in the recording medium 102 can be used.
  • the number of playlists and play items stored in the recording medium 102, the values of part or all of the content hash table, data of part or all of sound information when a certain button is touched, the index table If it is information related to the content, such as part or all of the hash value of, then the corresponding information is also available.
  • a random number generation unit 601 is further added to the information processing apparatus 101, and the random number generation unit 601 is implemented to operate according to an instruction of the virtual machine code 121. Then, as in the test iE / rail table 500 held by the verification information holding module 1122 in FIG. 5, the random number is generated in the execution environment including the virtual machine at the time of disk insertion and is stored in the address OxOOaaOOlO, and the virtual machine code 121 is Hold that value. After that, the random number is generated again and stored at the same address at the time of playback start or user operation, and the virtual machine code 121 acquires the newly generated random number, holds it first, and compares it with the random number. If the value is changed, verification is OK.
  • virtual machines differ in resources such as memory used depending on the implementation state.
  • resources such as memory used depending on the implementation state.
  • verification OK may be made.
  • the memory size used is different in an environment where an invalid virtual machine operates, verification does not become OK.
  • hash calculation values for example, using a return value immediately before the virtual machine code, etc.
  • information related to content but contents to be displayed for each information processing apparatus 101
  • Information such as different information (for example, the number of buttons on the menu, differences in audio and video that can be played, etc.) can be used.
  • a clock unit 701 is added to the information processing apparatus 101.
  • the clock unit 701 counts the current time, and is implemented to write in a specific area of the work information holding unit 118.
  • the virtual machine code 121 acquires the current time from 0x00eee 002 when inserting the disk, and holds it, as in the verification table rule 500 held by the verification information holding module 1122 in FIG. Address power Acquire the current time, compare with the time held last time, and if it is increased, verify as OK. In this case, the value is simply changed, and not only increased but always, because the inspection SE / rail is set, if you do not know this implementation, create an incorrect execution environment You can not do it.
  • fast-forwarding prohibition information is held in a specific area of the work information holding unit 118.
  • the current state in the specific area is checked, and if it is information indicating that fast-forwarding is prohibited, verification OK is assumed.
  • information dependent on time and timing includes system parameters and operation parameters related to the information processing apparatus 101, a currently reproduced chapter number, time information included in the currently reproduced stream (for example, Information such as ATS, PTS, PCR etc. can be used.
  • the SE / rail table 500 held by the verification information holding module 1122 is a unique SE / rail table 500 for each execution environment including a virtual machine that can combine the information described above in any way. It can be created.
  • FIG. 8 is a diagram showing a system model of a storage medium and an information processing apparatus according to a second embodiment of the present invention.
  • a command program 811 defining the reproduction order and the behavior at the time of user operation, attributes of clip files, time search map, playlists, play items, etc. are described.
  • a secret information code 815, and a restoration information file 816 for generating actual restoration information in combination with the secret information at the time of restoration processing are included.
  • the information processing apparatus 801 includes a command processing unit 822 that processes a command program 811 and a user management unit 806 that receives user input and sends it to the user operation control unit 823 and that also manages the playback title in the content. 824 and a user operation control unit 823 that calls and controls a function corresponding to user operation from the playback control unit 827, a register 826 that holds an apparatus state and a variable being processed, a playlist of clip file related information 812 play Processing of the item and processing of the function processing from the command processing unit 822 or the user operation control unit 823 to execute the reproduction control unit 827 for controlling the presentation processing unit 831 and the verification code 814
  • the verification processing unit 829 verifies the legitimacy of the execution environment including a secret information calculation unit 830 that calculates secret information used for content restoration processing from the secret information code 815, and a pre that controls reproduction and display of the content.
  • a restoration processing unit 832 for generating restoration information based on the restoration information file 816 and the secret information, and notifying the presentation engine of the restoration of the content.
  • a command processing unit 822 and a user operation control unit 823 are called an operation module 821
  • a register 826 and a reproduction control unit 827 are called a reproduction control processing unit 825
  • a verification processing unit 829 and a secret information calculation unit 830 It is called a virtual machine 828 including it.
  • the above configuration is an example, and a specific example of the information processing device 801 is a processing device including a BD drive, and is not limited to hardware implementation or software configuration. The operation will be described below using the processing flows of FIG. 8, FIG. 9 and FIG.
  • FIG. 9 is a diagram showing operations of verification processing and content restoration processing in the information processing apparatus 101.
  • the verification processing unit 829 acquires the virtual machine identification information 903 held by the virtual machine 828 (S1001), and of the verification code 814, a part or all of the codes corresponding to the virtual machine identification information 903.
  • the interrupt management information 904 is read and acquired and held (S 1002).
  • the interrupt management information 904 is information for determining the execution start location (PC: program counter) of the verification code 814 according to the playback location such as for each title, and a combination of the execution start location and the playback location is described. ing.
  • the virtual machine identification information 903 is information for identifying a virtual machine, and is, for example, data composed of “information processing apparatus hardware ID + information processing apparatus model number + virtual machine version number”. A force is not limited to this as long as it can uniquely identify a virtual machine. Also, a signature is added to the virtual machine identification information 903 to check its legitimacy.
  • the module management unit 824 instructs the verification processing unit 829 to start verification processing, including the title number to be reproduced from now (S 1003).
  • the verification processing unit 829 acquires the corresponding PC from the interrupt management information 904 based on the title number included in the instruction, and also executes the PC corresponding to the verification code 814 (S 1004).
  • the executed verification code 814 verifies the execution environment including the virtual machine with reference to the verification information memory 902 including the memory area to be referred to at the time of verification (S 1005).
  • the detailed description here is omitted.
  • the processing is continued (S 1006).
  • the number of times reaches the specified number, if not, the number of times specified for the power to continue the process is reached (S1007), part or all of the content or secret information code 815, or
  • the information processing apparatus 101 can be prevented from operating normally by rewriting data of a specific part on the memory 901 that holds other processing data (S1008).
  • the secret information calculation unit 830 holds the secret information code 815 or secret information necessary for restoration processing in the memory 901 during reproduction, restoration is performed by rewriting a part or all of the information. If the process can not operate normally, and the normal regeneration can not be performed, the effect can be obtained.
  • the restoration process will be described later.
  • the verification result is NG
  • the information in the memory 901 is rewritten.
  • the module management unit 824 is notified of the NG, and the reproduction from the module management unit 824 is stopped by an instruction from the module management unit 824. Let me do it.
  • the present invention is not limited to this, and if it is possible to prevent normal reproduction, notify NG to other components. May be
  • the verification processing start instruction in S 1003 is generated each time the playback title is switched, and occurs irregularly, for example, when the title is changed by a user operation or the like. However, during special playback such as fast-forwarding and rewinding, the contents of the verification information memory 902 may be changed before one verification process is completed, so the verification process start instruction is not issued. You may do so. If a verification process start instruction including another title number is issued while the verification process is currently being executed (S1005 to S1007 is repeated), the current verification process is ended. Execute the verification code 814 corresponding to the new title number (redo from S 1004).
  • the verification code 814 in S1004 can be prevented from being executed depending on the title number received in the verification start instruction in S1003. Specifically, on the verification code 814 generation side, the interrupt management information 904 does not include a title number that does not require execution of the verification code 814. A specific PC is set, and the specific PC is set. There is a way to specify not to execute at the time of PC.
  • verification information memory 902 and the memory 901 may be physically different on the same memory area.
  • the above-mentioned restoration process has the following method.
  • the secret information calculation unit 830 reads the secret information code 815, acquires the secret information calculation interrupt management information 905, and holds it.
  • the secret information calculation interrupt management information 905 is, for example, information for determining the execution start position (PC for secret information: program counter) of the secret information code 815 for each play item number, and the play item number and the secret The correspondence of information PC is described.
  • the restoration processing unit 832 reads and holds a part or all of the restoration information file 816.
  • the reproduction control unit 827 manages which position of which play item is currently reproduced, and reproduces a certain play item Then, for example, every 10 seconds, the secret information calculation unit 830 is notified of the play item number and period information indicating what number period it is. It should be noted that the second period may be notified in the second period. Also, the notification timing may be periodically or irregularly, not every 10 seconds, but every second, every play item change, etc. Further, the timing information of the notification may be included in the secret information code 815, and the reproduction control unit 827 may obtain the timing information from the secret information code 815.
  • the secret information calculation unit 830 obtains a secret information PC from the secret information calculation interrupt management information 905 based on the notified play item number, and uses the secret information code 815 from the corresponding part. Run.
  • the executed code for secret information 815 calculates the secret information appropriate for the period based on the period information, and notifies the restoration processing unit 832 of it.
  • the restoration processing unit 832 obtains restoration information suitable for the restoration information file power reproduction location, decrypts it by XOR (Exclusive OR: exclusive OR operation) calculation using the secret information, etc. The information is notified to the presentation processing unit 831.
  • XOR Exclusive OR: exclusive OR operation
  • the presentation processing unit 831 XOR-calculates the data of the restoration position included in the restoration information and the restoration data included in the restoration information, and overwrites the result.
  • the restoration position may be any information that can uniquely identify the position to be restored, such as the number of packets at the head of the clip file, readout time information attached to the packet, reproduction time information, and the like.
  • any information can be used as long as the current playback position can be uniquely identified, such as the title number, play list number, play item number, and combinations thereof, which use the play item number. It is.
  • the presentation processing unit 831 XOR-calculates the data at the restoration position and the restoration data and overwrites it.
  • the force restoration processing unit 832 does not notify restoration information, and holds the clip file stored in the memory 901. Direct reference may be made to perform XOR calculation and overwrite.
  • the restoration information file 816 contains restoration information.
  • the restoration information is stored in PMT or a unique packet, and multiplexed to a stream such as video or audio. Ru.
  • the restoration processing unit 1132 can also acquire a packet including restoration information as to the stream power during reproduction and obtain restoration information.
  • the other configuration is the same as in FIG.
  • the restoration information includes the relative number of packets from the packet including the restoration information, the restoration position indicating which byte of data of the packet is to be restored, and the restoration data for XOR calculation with the data of the restoration position.
  • the restoration processing unit 1132 decrypts the restoration information by XOR calculation or the like using the secret information notified from the secret information calculation unit 830, and XOR-calculates the restoration position data and the restoration data based on the decoded restoration information. Then, it is possible to restore the transformed content by overwriting the result on the restoration position.
  • the secret information calculation unit 830 may perform the same process.
  • the restoration processing unit 1132 notifies the presentation processing unit 1131 of restoration information after decryption, the presentation processing unit 1131 XOR-calculates the restoration position data and the restoration data based on the restoration information. By overwriting the data at the restoration position, restoration processing is possible.
  • XOR is used for restoration processing and decoding of restoration information
  • the present invention is not limited to this, and any operation may be used for Advanced Encryption Standard (AES) and Data Encryption Standard (DES). Good.
  • AES Advanced Encryption Standard
  • DES Data Encryption Standard
  • FIG. 12 shows a general configuration of the verification processing and restoration processing shown in FIG. 8 and FIG. 11 described above, and the components other than the virtual machine 1228 and the restoration processing unit 1232 are for general disk reproduction. It is a system model.
  • the implementation that implements the verification process and restoration process of the present invention is characterized in that it can be implemented with almost no need to change the general disk playback system model.
  • the verification processing unit 832 directly reads the verification code 814 and the secret information calculation unit 830 directly reads the secret information code 815
  • the present invention is not limited to this. It may be acquired via other components. Also, the verification code 814 and the secret information code 815 may be described so as to be included in the command program 811 and other information on the storage medium 802 such as the clip file related information 812.
  • each notification such as restoration information and interrupt information is not shown in the diagram for general operation. Force that can be notified via the register, via the memory 901, etc. Not limited to this Also, although the interrupt management information 904 is obtained from the verification code 814, it is assumed that it is a separate file, or on the storage medium 802. It may be described in other information. Similarly, the interrupt management information 905 for secret information calculation may be a separate file or may be described in other information on the storage medium 802.
  • the above information processing apparatus is specifically a computer system including a microprocessor, ROM, RAM, node disk unit, display unit, keyboard, mouse and the like.
  • a computer program is stored in the RAM or the hard disk unit.
  • the information processing apparatus achieves its functions by operating in accordance with the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions to the computer in order to achieve a predetermined function.
  • the system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on one chip, and more specifically, a computer system including a microprocessor, ROM, RAM, etc. is there. A computer program is stored in the RAM. Microprocessor Power The system LSI achieves its functions by operating according to the computer program.
  • the LSI manufacturer and the information processing apparatus manufacturer may be different.
  • the LSI manufacturer mounts and provides a function that can be used for verification, such as a random number generation function and a clocking function, for example, so that the information processing apparatus manufacturer can check the SE rail and verification address suitable for the apparatus to be manufactured. It can be defined. Therefore, LSI manufacturers test tE / rail for each LSI It is possible to reduce the cost of management and to obtain the effect that the information processing device manufacturer can freely define the inspection SE / rail for each version of the device to be manufactured.
  • a part or all of the components constituting the above-described information processing apparatus may be configured as an IC card or a single module power detachable from the information processing apparatus.
  • the IC card or the module is a computer system including a microprocessor, a ROM, a RAM, and the like.
  • the IC card or the module may include the above-described ultra-multifunctional LSI. Microprocessor Power By operating according to the computer program, the IC card or the module achieves its function. This IC card or this module may be tamper resistant.
  • the present invention may be the method shown above.
  • the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal that also has the computer program power.
  • the present invention is also directed to a computer-readable recording medium that can read the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu- (ray disc), semiconductor memory, etc. Moreover, even if it is the said digital signal currently recorded on these recording media,.
  • a computer-readable recording medium that can read the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu- (ray disc), semiconductor memory, etc.
  • the computer program or the digital signal may be transmitted via a telecommunications line, a wireless or wired communication line, a network represented by the Internet, data broadcasting, and the like.
  • the present invention may be a computer system provided with a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program.
  • the present invention is a verification method used in an information processing apparatus that executes processing related to reproduction of content by a virtual machine contained in the inside, the verification program being recorded on a recording medium along with the content. It is characterized by including a reading step for reading out and a verification step of verifying the legitimacy of the information processing apparatus including the virtual machine by the virtual machine executing the verification program.
  • the “reading step” corresponds to the process of S 202 of FIG. 2 described in (Embodiment 1).
  • the “verification step” corresponds to the process of S 204 in FIG. 2 described in (Embodiment 1).
  • the verification step includes an acquisition step of acquiring, as verification information, a value stored in a predetermined memory address of the information processing apparatus by the verification program.
  • the information processing apparatus may include a determination step of determining whether the information processing apparatus is valid or not based on the verification information acquired in the acquisition step.
  • the “acquisition step” corresponds to the processing of S301 and S304 in FIG. 3 described in (Embodiment 1).
  • the determination step includes, for example, “the virtual machine code 121 acquires the returned verification information (described in (verification of the execution environment including the virtual machine) of (the first embodiment) S304) verify the verification information and verification value 403 based on the verification iE / rail 404, and pass the result to S205 in Fig. 2.
  • the verification information is equivalent to Oxed
  • the verification result is OK Yes, otherwise it corresponds to the process described as “NG.”
  • the recording medium is further executed on the virtual machine, and records a reproduction related program including a processing procedure relating to the reproduction of the content.
  • the verification method may further include a suppression step of suppressing execution of the processing procedure relating to the reproduction of the content, if the information processing apparatus is incorrect as a result of the verification.
  • a processing procedure relating to reproduction of the content executed on the virtual is the command program 811, the clip file related information 812, the clip file 813, the verification code 814, the secret information code 815 described with reference to FIG. 8 in (Embodiment 2). It corresponds to the restoration information file 816.
  • the “suppression step” corresponds to the case where S1006 in FIG. 10 described in (Embodiment 2) is NG, and the process of S 1008.
  • the content is deformed so as to be able to be restored by a predetermined restoration process, and a processing procedure relating to reproduction of the content is the deformation of the content.
  • a step of restoring, and the suppressing step may suppress the execution of the restoring process.
  • the “predetermined restoration process” and the “procedure for restoring the deformed content by the restoration process” are the processes described in (restoration process) of (the second embodiment). And correspond. For example, this corresponds to the processing performed by the secret information code 815, the restoration processing unit 832, and the presentation processing unit 831.
  • the execution of the restoration process is suppressed means that the content transformed by the above can be restored in the above-mentioned (restoration process), and can be reproduced normally. Therefore, for example, if NG in the above detection processing, the secret information calculation unit 830 rewrites a part or all of the area on the memory 901 used, so that correct secret information can not be obtained, This makes it possible to prevent normal reproduction. ”And the like.
  • the verification information may be information that changes with timing.
  • information that changes with timing is, in particular, “information that depends on time or timing in (Example of SE) / (example of rail) of (Embodiment 1)”. If the information changes at the timing, any information can be used for verification. ”
  • the verification information refers to a report related to the content to be reproduced.
  • the “information related to the content to be reproduced” particularly refers to (information of (Embodiment 1)). This corresponds to the description described in (1) Information related to content) of the inspection tE / rail example).
  • the verification information may be information depending on an execution environment including the virtual machine.
  • the information depending on the execution environment including the virtual machine means the “information according to the first embodiment”.
  • the verification value and the inspection SE / rail are further recorded in association with the recording medium, and the determination step is obtained by the acquisition step. Including the comparing step of comparing the verified information and the verified value recorded on the recording medium based on the inspection SE / rail correlated with the verified value, and determining In the step, the information processor may be determined to be valid when the check SE / rail is satisfied as a result of the comparison.
  • the “verification value” corresponds to the verification value 403 described using (FIG. 5) in (Embodiment 1).
  • SE / SE corresponds to SE / 404.
  • “comparison step” and “decision step” are described in “(Verification of validity of execution environment including virtual machine)” described in (Embodiment 1).
  • Information is acquired (S 304), verification information and verification value 403 are verified based on SE / rail 404, and the result is passed to S 205 in Fig. 2.
  • verification information is equivalent to Oxed. If there is, the verification result is OK, otherwise it corresponds to the processing described as “NG”.
  • the acquisition step includes a request step of requesting a value held in the predetermined memory address at the timing of verification
  • the verification method includes the steps of And a response step of reading out the value held in the predetermined memory address according to the request by the request step, and returning the read value as the verification information to the verification program
  • the acquisition step The acquisition of is to acquire the verification information returned in response to the request, and the comparison step performs the comparison using the verification information acquired by the reply. A little.
  • the “request step” corresponds to S301 of FIG. 3 described in (Embodiment 1).
  • the “reply step” corresponds to S303 in FIG. 3 described in (Embodiment 1).
  • the recording medium is further recorded in association with a plurality of timings of verification of the verification value and force, and the comparing step is performed at the timing of the verification;
  • the comparison is performed using the acquired verification information and the verification value and the inspection SE / rail in correspondence with the timing of the verification, and the determination step corresponds to the timing of the verification.
  • the step of repeatedly performing the comparison step, and as a result of the repetition the verification information and the verification value do not satisfy the inspection SE / rail more than a predetermined number of times! And a decision step of deciding that the information processing apparatus is illegal.
  • timing of verification corresponds to the verification timing 402 of FIG. 5 described in (Embodiment 1).
  • the “repeating step” particularly corresponds to the processing in the case of S203, S204, S205, S207 force, and S208 force described in (Embodiment 1).
  • the “determination step” corresponds to the processing when S208 is YES.
  • each of the plurality of verification values is recorded in the recording medium in association with identification information uniquely identifying the virtual machine
  • the comparing step may be to perform the comparison using identification information of a virtual machine included in the information processing apparatus and a verification value corresponding thereto.
  • the “identification information” corresponds to the virtual machine identification information 117 of FIG. 5 described in (Embodiment 1).
  • the timing of verification and the verification IE / rail are further associated with each other and recorded in the recording medium, and the information processing apparatus further includes Storage means for storing, as comparison information, a value held at the predetermined memory address at a predetermined timing, and the acquisition step is performed at the timing of the verification.
  • the value stored in the predetermined memory address is acquired as the verification information
  • the determination step is stored in the storage unit with the verification information acquired at the timing of the verification.
  • the comparing step of comparing the information with the prosody IE / rail, and the determining step determines whether the information processor is valid or not based on a result of the comparison. It is good to do.
  • the acquisition step includes a request step of requesting a value stored in the predetermined memory address at a timing of the verification, V
  • the verification method further includes, in response to the request by the request step, reading a value held in the predetermined memory address, and returning a read value as the verification information to the verification program.
  • the acquisition of the acquiring step includes acquiring the verification information returned in response to the request, and the comparison step performs the comparison using the verification information acquired by the reply. It may be taken.
  • the “storage means” is, for example, “and” in (2) the information depending on the execution environment including the virtual machine in (example of inspection SE / rail) in (Embodiment 1).
  • the SE / rail table 500 held by the verification information holding module 1122 in Fig. 5 when the disk is inserted, a random number is generated in the execution environment including the virtual machine and stored in the address OxOOaaOOlO. " It corresponds.
  • “acquisition step”, “comparison step”, and “determination step” are the information depending on the execution environment including (2) virtual machine of (example of inspection i / le) of (Embodiment 1).
  • virtual machine code 121 acquires a newly generated random number, and holds it in advance. Based on the description, “If the value has been changed, the verification is OK”.
  • the “request step” corresponds to S301 in FIG. 3 described in the first embodiment.
  • the “reply step” corresponds to S303 in FIG. 3 described in the first embodiment.
  • the information processing apparatus further generates a random number.
  • the random number holding step further includes a random number generation unit, and the verification method causes the random number generation unit to generate a random number and to hold the generated random number in the predetermined address each time the timing of the verification comes.
  • the acquisition step performs the acquisition of the verification information by reading the random number held by the random number holding step at the timing of the verification, and the determination step determines the verification as a result of the comparison. If the information and the comparison information are different, it may be determined that the information processing apparatus is valid.
  • the “random number generation unit” corresponds to the random number generation unit 601 of FIG. 6 described in (Embodiment 1).
  • the “random number holding step” and the “determination step” refer to “and” in the information depending on the execution environment including (2) virtual machine of (example of inspection i / rail) of (the first embodiment).
  • the random number is generated in the execution environment including the virtual machine at the time of disk insertion as in the verification iE / rail table 500 held by the verification information holding module 112 of 5, and stored in the address OxOOaaOOlO,
  • the random number is generated again at the same address at the time of user operation, and the virtual machine code 121 acquires a newly generated random number and holds it in advance, and the value is changed as compared with the previously stored random number.
  • the virtual machine code 121 acquires a newly generated random number and holds it in advance, and the value is changed as compared with the previously stored random number.
  • the random number generation unit may perform the generation based on information depending on an execution environment including the virtual machine.
  • the “random number generation unit” refers to “the random number seed for the information depending on the execution environment including (2) virtual machine of (example of inspection SE / rail) of (the first embodiment). If the value is different for each execution environment including virtual machines such as address and virtual machine identification information 117, the possibility of generating the same random number is reduced.
  • the information processing apparatus further includes a clocking unit that clocks time and writes the data to the predetermined memory address, and the storage unit is arranged at a predetermined timing.
  • the time stored in the predetermined memory address is stored as comparison information, and the obtaining step is performed by writing the predetermined memory address at the timing of the verification.
  • the acquisition of the verification information is performed by reading the time, and the determination step determines the time indicated by the verification information as a result of the comparison. Force When the time is greater than the time indicated in the comparison information, the information processing apparatus may be determined to be valid.
  • clocking unit corresponds to the clocking unit 701 in FIG. 7 described in (Embodiment 1).
  • “storage means”, “acquisition step” and “judgment step” refer to “and the figure in (3) information depending on time and timing of (example of inspection SE / rail) of (Embodiment 1).
  • the virtual machine code 121 acquires the current time from 0x00eee 002 when inserting a disk, and holds it, as in the case of the verification table rule 500 held by the verification information holding module 1122 of No. "The current time is acquired, compared with the time held last time, and if it has increased, the verification is OK.”
  • the present invention is an information processing apparatus that executes processing relating to reproduction of content recorded in a recording medium and includes a virtual machine in its inside, wherein the recording medium includes the virtual machine.
  • a verification program for verifying the legitimacy of the information processing apparatus is recorded by being executed on a machine, and the information processing apparatus reads the verification program from the recording medium, and the information processing apparatus
  • the request for the verification program is also received at the timing of verification
  • the request for the verification value is also received at the predetermined memory address of the device.
  • the request is held at the predetermined memory address.
  • It is also an information processing apparatus comprising: response means for reading a value and returning the read value to the verification program.
  • the present invention is an integrated circuit mounted on an information processing apparatus including a virtual machine, which executes processing relating to reproduction of content recorded on a recording medium, and the recording medium includes A verification program for verifying the legitimacy of the information processing apparatus is recorded by being executed on the virtual machine, and the integrated circuit reads out the verification program from the recording medium, and the information.
  • a predetermined memory address of the processing apparatus is held at the timing of the verification, a reception unit for receiving a request for a value from the verification program, and when the request is received, the memory is held at the predetermined memory address.
  • the present invention is also an integrated circuit comprising: a reply means for reading out a value to be read and returning the read out value to the verification program.
  • the “verification program” corresponds to the virtual machine verification module 1121 shown in FIG.
  • the "reading means” corresponds to the disc reading unit 111 shown in FIG.
  • the “accepting means” and the “replying means” are realized by the virtual machine execution unit 113 reading, decoding and executing the instruction code included in the virtual machine execution code 115.
  • the present invention is a recording medium storing a verification program for executing processing concerning reproduction of content and verifying the correctness of an information processing apparatus including a virtual machine inside, the verification program
  • the information processing apparatus is valid based on an acquisition step of acquiring a value held in a predetermined memory address of the information processing apparatus as verification information, and the verification information acquired by the acquisition step. It is also a recording medium including a determination step of determining whether or not it is.
  • the present invention relates to the information processing apparatus, which executes processing relating to reproduction of content recorded in a recording medium, and verifies the legitimacy of an information processing apparatus including a virtual machine therein.
  • a verification program to be executed the acquisition step of acquiring, as verification information, a value held in a predetermined memory address of the information processing apparatus, and the verification information acquired in the acquisition step. It is also a verification program including a determination step of determining whether the information processing apparatus is valid.
  • the “acquisition step” corresponds to the processing of S301 and S304 in FIG. 3 described in (Embodiment 1).
  • the determination step includes, for example, “the virtual machine code 121 acquires the returned verification information (described in (verification of the execution environment including the virtual machine) of (the first embodiment) S304) verify the verification information and verification value 403 based on the verification iE / rail 404, and pass the result to S205 in Fig. 2.
  • the verification information is equivalent to Oxed
  • the verification result is OK Yes, otherwise it corresponds to the process described as “NG.”
  • the present invention may have the following configuration.
  • the present invention is an information processing method for executing virtual machine code using a virtual machine, wherein the virtual machine code verifies the correctness of the execution environment including the virtual machine. And a step of stopping processing of the virtual machine code when it is determined that the execution environment including the virtual machine is invalid as a result of the verification.
  • the verification step is further performed, and the virtual machine code acquires information held by an execution environment including the virtual machine. Requesting the virtual machine, the virtual machine providing the information to the virtual machine code, and the virtual machine code comparing the information with verification information held by the virtual machine code And b. Verifying the legitimacy based on the rules defined in the code.
  • the information may be information on content to be processed in an execution environment including the virtual machine.
  • the information may be information depending on an execution environment including the virtual machine.
  • the information may be information dynamically changing according to the execution environment including the virtual machine or the state of content.
  • the present invention causes a computer to execute the steps included in the information processing method described in any one of the above-described modified examples (23-1) to (23-5). It is a feature program.
  • the present invention is characterized by causing a computer to execute the steps included in the information processing method described in any of the above-described modified examples (23-1) to (23-5). It is also a computer readable recording medium in which a program is recorded.
  • the information processing method according to the present invention can be used for an information processing apparatus that executes a platform-independent program using a virtual machine, and a program that operates on a virtual machine, such as a copyright protection program. It is useful when security is required for

Abstract

仮想マシンは、インタフェース等、実装に必要な情報が公開されているため、誰でも仮想マシンを実装することができる。そのため、仮想マシンを不正に実装することで、その上で稼動するプログラムに正規の動作ではなく、不正な動作をさせることが可能となる。プログラムが、仮想マシンの特定のメモリ情報と、プログラム自身が持つ検証用情報を検証ルールに基づいて比較することで、自身を稼動させる仮想マシンが正規に実装されたものであることを検証して、不正な仮想マシンを排除する。

Description

明 細 書
検証方法、検証プログラム、記録媒体、情報処理装置、集積回路 技術分野
[0001] 本発明は、プログラムの実行に仮想マシンを用いる機器に関連し、特に、仮想マシ ンが実装されるプラットフォームの正当性を判断し、該プラットフォームが不正な場合 に、排除する技術に関する。
背景技術
[0002] 近年、プログラムを OSや CPU等のプラットフォームに依存させずに稼動させるため
、仮想マシンが利用されている。一般的に、仮想マシンはソフトウェア実装されており 、インタフェース等、実装に必要な情報が公開されているため、誰でも仮想マシンを 実装することができる。
発明の開示
発明が解決しょうとする課題
[0003] そのため、仮想マシンを不正に実装することで、その上で稼動するプログラムに正 規の動作ではなぐ不正な動作をさせることが可能となる。そのプログラムが、例えば 、映画等のコンテンツの著作権を保護するプログラムである場合、不正にコンテンツ を再生されることにつながる。
本発明は、上記の問題点に鑑み、プログラムが、自身を稼動させる仮想マシンが正 規に実装されたものであることを検証できる情報処理方法を提供することを目的とす る。
課題を解決するための手段
[0004] 上記課題を解決するために、本発明では、内部に含んだ仮想マシンによりコンテン ッの再生に係る処理を実行する情報処理装置にお 、て用いられる検証方法であつ て、前記コンテンツと共に記録媒体に記録されている検証プログラムを読み出す読出 ステップと、前記検証プログラムを前記仮想マシンが実行することにより、前記仮想マ シンを含む前記情報処理装置の正当性を検証する検証ステップとを含むことを特徴 とする検証方法を提供する。 [0005] 上述の検証方法を用いることにより、検証プログラム力 自身を稼働させる仮想マシ ンが正規に実装されたものであるカゝ否かを検証することができる。
また、前記検証ステップは、前記検証プログラムが、前記情報処理装置の所定のメ モリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取 得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当で あるカゝ否かを、前記検証プログラムが判断する判断ステップとを含むこととしてもょ ヽ
[0006] 上述の検証方法では、所定のメモリアドレスに保持されて 、る値を用いて情報処理 装置の検証を行う。
したがって、検証を行うための値が保持されているメモリアドレスを知らないと、仮想 マシンを実装することができない。そのため、メモリアドレスを知らない不正な第三者 が不正な仮想マシンを実装するのを困難にすることができる。
[0007] また、前記記録媒体は、さらに、前記仮想マシン上で実行され、前記コンテンツの 再生に係る処理手順を含む再生関連プログラムを記録しており、前記検証方法は、 さらに、検証の結果、前記情報処理装置が不正である場合、前記コンテンツの再生 に係る処理手順の実行を抑制する抑制ステップを含むこととしてもよい。
これにより、不正な仮想マシンではコンテンツの再生が実行されないようにすること ができる。
[0008] また、前記コンテンツは、所定の復元処理によって復元できるよう変形されており、 前記コンテンツの再生に係る処理手順は、変形されている前記コンテンツを、前記復 元処理により復元する手順を含み、前記抑制ステップは、前記復元処理の実行を抑 制することとしてもよい。
これにより、例えばコンテンツが著作権保護等を目的として変形されている場合に、 不正な仮想マシンではコンテンツの復元処理が実行されな 、ようにすることができる
[0009] また、前記検証情報とは、タイミングによって変化する情報であることとしてもよ!、。
上述の検証方法によると、検証情報としてタイミングによって変化する情報を用いる ため、不正解析者が検証情報を保持するメモリアドレスを特定できた場合であっても 、正当な検証情報の値を特定することが難しくなる。
したがって、不正な第三者が、検証プログラムによる検証を通過することのできる実 行環境を不正に実装することが困難になる。
[0010] また、前記検証情報とは、前記再生を行うコンテンツに関する情報であることとして ちょい。
上述の検証方法によると、検証プログラムは、再生されるコンテンツに関する情報に 基づいて、情報処理装置の正当性を検証する。
これにより、検証プログラムは、再生されるコンテンツが、当該検証プログラムと共に 用いられるべきコンテンツである力否かを検証することができる。
[0011] したがって、上述の検証方法は、例えば、不正な第三者が、正当な検証プログラム を複製し、他のコンテンツの再生時に、複製した検証プログラムを読み込ませることに よって当該他のコンテンツについての検証を通過させるような不正についても防止す ることがでさる。
また、前記検証情報とは、前記仮想マシンを含む実行環境に依存する情報である こととしてちよい。
[0012] これにより、検証プログラムは、当該検証プログラムを実行する実行環境が、正当な 検証情報を知らない不正な第三者が実装した実行環境である力否かを検証すること ができる。
また、前記記録媒体には、さらに、検証値と、検 SE/レールとが対応づけて記録され ており、前記判断ステップは、前記取得ステップにより取得された前記検証情報と、 前記記録媒体に記録された前記検証値とを、前記検証値に対応づけられて ヽる前 記検iE/レールに基づいて比較する比較ステップを含み、前記判断ステップは、前記 比較の結果、前記検 SE/レールを満たす場合に、前記情報処理装置が正当であると 判断することとしてもよい。
[0013] これにより、検証値と検iE/レールを知らな!/、不正な第三者が、不正な仮想マシンを 実装するのを困難にすることができる。
また、前記取得ステップは、検証のタイミングにおいて、前記所定のメモリアドレスに 保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要 求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を 読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信 ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信さ れた前記検証情報を取得することであり、前記比較ステップは、前記返信により取得 した前記検証情報を用いて前記比較を行うこととしてもょ 、。
[0014] また、前記記録媒体には、さらに、複数の前記検証値が、検証のタイミングと対応づ けて記録されており、前記比較ステップは、前記検証のタイミングにおいて前記取得 した検証情報と、前記検証のタイミングに対応づけられて!、る前記検証値および前記 検 SE/レールを用いて前記比較を行い、前記判断ステップは、前記検証のタイミング になる度に、前記比較ステップを繰り返し実行させる繰り返しステップと、前記繰り返 しの結果、前記検証情報と前記検証値とが所定回数以上前記検言 IE/レールを満たさ な ヽ場合に、前記情報処理装置が不正であると決定する決定ステップとを含むことと してちよい。
[0015] 上述の検証方法では、所定回数以上検 SE/レールを満たさな 、場合に、情報処理 装置が不正であると決定するので、検証の精度を向上させることができる。
また、前記記録媒体には、複数の前記検証値の各々が、前記仮想マシンを一意に 識別する識別情報と対応づけられて記録されており、前記比較ステップは、前記情 報処理装置に含まれる仮想マシンの識別情報と対応する検証値を用いて前記比較 を行うこととしてもよい。
[0016] これにより、仮想マシンごとに異なる検証値を用いて検証を行うことができる。
また、前記記録媒体には、さらに、検証のタイミングと検 SE/レールとが対応づけられ て記録されており、前記情報処理装置は、さらに、所定のタイミングにおいて前記所 定のメモリアドレスに保持されて 、る値を比較用情報として格納して 、る格納手段を 備え、前記取得ステップは、前記検証のタイミングにおいて前記所定のメモリアドレス に保持されている値を、前記検証情報として前記取得し、前記判断ステップは、前記 検証のタイミングにお 、て取得した前記検証情報と、前記格納手段に格納されて 、 る比較用情報とを前記検 SE/レールに基づ 、て比較する比較ステップを含み、前記判 断ステップは、前記比較の結果に基づいて、前記情報処理装置が正当であるか否か の前記判断を行うこととしてもょ 、。
[0017] また、前記取得ステップは、前記検証のタイミングにお 、て、前記所定のメモリアド レスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、 前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されて V、る値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信 する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前 記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信に より取得した前記検証情報を用いて前記比較を行うこととしてもょ 、。
[0018] また、前記情報処理装置は、さらに、乱数を生成する乱数生成部を備え、前記検証 方法は、さらに、前記検証のタイミングになるごとに、前記乱数生成部に乱数を生成 させ、生成された乱数を、前記所定のアドレスに保持させる乱数保持ステップを含み 、前記取得ステップは、前記検証のタイミングにおいて、前記乱数保持ステップにより 前記保持された前記乱数を読み出すことで前記検証情報の前記取得を行!ヽ、前記 判断ステップは、前記比較の結果、前記検証情報と、前記比較用情報とが異なる場 合に、前記情報処理装置が正当であると判断することとしてもよい。
[0019] これにより、情報処理装置の正当性の検証に乱数を用いるという実装を知らない不 正な第三者が、不正な仮想マシンを実装するのを困難にすることができる。
また、前記乱数生成部は、前記仮想マシンを含む実行環境に依存する情報に基づ いて、前記生成を行うこととしてもよい。
これにより、実行環境が異なる場合に、乱数生成部が各実行環境で同じ乱数を生 成する可能性が低くなる。
[0020] また、前記情報処理装置は、さらに、時刻を計時して前記所定のメモリアドレスに書 き込む計時部を備え、前記格納手段は、所定のタイミングにおいて前記所定のメモリ アドレスに書き込まれて 、る前記時刻を比較用情報として格納しており、前記取得ス テツプは、前記検証のタイミングにおいて、前記所定のメモリアドレスに書き込まれて Vヽる前記時刻を読み出すことで前記検証情報の前記取得を行!ヽ、前記判断ステップ は、前記比較の結果、前記検証情報に示される時刻が、前記比較用情報に示される 時刻よりも増加している場合に、前記情報処理装置が正当であると判断することとし てもよい。
[0021] これにより、情報処理装置の正当性の検証に時刻を用いるという実装を知らない不 正な第三者が、不正な仮想マシンを実装するのを困難にすることができる。
また、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシ ンを内部に含む情報処理装置であって、前記記録媒体には、前記仮想マシン上で 実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録 されており、前記情報処理装置は、前記記録媒体から前記検証プログラムを読み出 す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにお V、て保持されて 、る値の要求を前記検証プログラム力 受け付ける受付手段と、前 記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読 み出した値を前記検証プログラムに返信する返信手段とを備えることとしてもよい。
[0022] また、記録媒体に記録されて!、るコンテンツの再生に係る処理を実行し、仮想マシ ンを内部に含む情報処理装置に搭載される集積回路であって、前記記録媒体には 、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する 検証プログラムが記録されており、前記集積回路は、前記記録媒体から前記検証プ ログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証 のタイミングにお 、て保持されて!、る値の要求を前記検証プログラム力も受け付ける 受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている 値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備えるこ ととしてもよ 、。
[0023] また、コンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装 置の正当性を検証する検証プログラムを記録して 、る記録媒体であって、前記検証 プログラムは、前記情報処理装置の所定のメモリアドレスに保持されている値を、検 証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証 情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップと を含むこととしてもよい。
[0024] また、記録媒体に記録されて!、るコンテンツの再生に係る処理を実行し、仮想マシ ンを内部に含む情報処理装置の正当性を検証する処理を、前記情報処理装置に実 行させる検証プログラムであって、前記情報処理装置の所定のメモリアドレスに保持 されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取 得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断 する判断ステップとを含むこととしてもょ ヽ。
発明の効果
[0025] 以上、説明したように、本発明によれば、プログラムにより、自身を稼動させる仮想 マシンが正規に実装されたものであることを検証できる情報処理方法を提供できると いう効果を有する。
図面の簡単な説明
[0026] [図 1]実施の形態 1における記録媒体及び情報処理装置の構成を示す図
[図 2]実施の形態 1における仮想マシンコード実行処理のフローを示す図
[図 3]実施の形態 1における仮想マシンを含む実行環境の正当性検証処理のフロー を示す図
[図 4]実施の形態 1における検 SE/レールのデータ構造例
[図 5]実施の形態 1における仮想マシンコードが持つ検 SE/レールテーブル構造例 [図 6]実施の形態 1における記録媒体及び情報処理装置の構成のその他の例を示 す図
[図 7]実施の形態 1における記録媒体及び情報処理装置の構成をその他の例を示す 図
[図 8]実施の形態 2における記憶媒体および情報処理装置のシステムモデルを示す 図
[図 9]実施の形態 2における検証処理と復元処理の動作を示す図
[図 10]実施の形態 2における仮想マシンを含む実行環境の正当性検証処理のフロ 一を示す図
[図 11]実施の形態 2における記憶媒体および情報処理装置のシステムモデルのその 他の例を示す図
[図 12]実施の形態 2における記憶媒体および情報処理装置の一般ィ匕したシステムモ デルを示す図 符号の説明
101、 801、 1201 情報処理装置
102、 802、 1202 記録媒体
111 ディスク読込部
112 ユーザ操作受付部
113 仮想マシン実行部
114 情報保持部
115 仮想マシン実行コード
117 検証値テーブル識別情報
118 作業情報保持部
121 仮想マシンコード
1151 検証値取得モジュール
1154 仮想マシンコード実行モジュール
1121 仮想マシン検証モジュール
1122 検証情報モジュール
1123 コード依存処理モジュール
400 仮想マシン毎の検iE/レールテーブル
401 アドレス
402 検証タイミング
403 検証値
404 ¾ ¾E7レーノレ
500 検証情報保持モジュール 1122が保持する検証ルールテーブル
813、 1113、 1213 クリップファイル
814 検証用コード
815 秘密情報用コード
816 復元情報ファイル
824、 1224 モジュール管理部
827、 1227 再生制御部 829、 1229 検証処理部
830、 1230 秘密情報計算部
831、 1131、 1231 プレゼンテーション処理部
832、 1132、 1232 復元処理部
901 メモリ
902 検証情報メモリ
903 仮想マシン識別情報
904 割り込み管理情報
905 秘密情報計算用割り込み管理情報
発明を実施するための最良の形態
[0028] 以下、発明を実施するための最良の形態を、図面を参照しながら説明する。
(実施の形態 1)
図 1を使って、本発明の一実施形態に係る記録媒体、及び情報処理装置について 説明する。
記録媒体 102には、仮想マシン上で動作するプログラムである、仮想マシンコード 1 21が記録されている。記録媒体 102の一実装例としては、 BD (Blu— ray Disc)で あるが、それに限るものではない。さらに、仮想マシンコード 121は、仮想マシン検証 モジュール 1121、検証情報保持モジュール 1122、コード依存処理モジュール 112 3から構成される。各モジュールの詳細は後述する。
[0029] 情報処理装置 101は、仮想マシンを使って、仮想マシンコード 121を実行する装置 であり、図 1に示すように、ディスク読込部 111、ユーザ操作受付部 112、仮想マシン 実行部 113、情報保持部 114、作業情報保持部 118から構成される。仮想マシンと は、 CPUや OS等のプラットフォームに依存せずに、プログラムを動作させるために、 仮想マシンコード 121として実装されたプログラムを、プラットフォーム用のネイティブ コードに変換して実行するソフトウェアである。具体的には、例えば仮想マシン ίお av a (登録商標)仮想マシンであり、仮想マシンコード 121«JaVa (登録商標)バイトコ一 ドであるが、これに限るものではない。
[0030] 情報処理装置 101の一実装例としては、 CPU,ワークメモリ、フラッシュメモリ、 BD ドライブ、リモートコントローラとから構成されるコンピュータシステムであり、ディスク読 込部 111は BD (Blu— ray Disc)ドライブであり、情報保持部 114はフラッシュメモリ であり、ユーザ操作受付部 112はリモートコントローラであり、作業情報保持部 118は ワークメモリであり、仮想マシン実行部 113は、 CPUとワークメモリを用いて動作する ソフトウェアで構成する方法が挙げられる力 他にも、ハードウェアでの実装など、ソフ トウエアによる構成に限定されるものではない。その他の実装形態についても、これに 限定されるものではない。
[0031] また、情報保持部 114には、仮想マシン実行コード 115と、仮想マシン識別情報 11 7が保持されている。仮想マシン実行コード 115は、ソフトウェアであり、検証値取得 モジュール 1151、仮想マシンコード実行モジュール 1154から構成される。各モジュ ールの詳細は後述する。
仮想マシン識別情報 117は、仮想マシンを識別するための情報であり、例えば、「 情報処理装置メーカ ID +情報処理装置のモデル番号 +仮想マシンのバージョン番 号」などで構成される 8バイトのデータであるが、仮想マシンを一意に特定できる情報 であれば、これに限るものではない。
[0032] ここで、検証情報の作成にっ 、て説明する。正規の仮想マシン実行コード 115の提 供者は、図 4に示すような仮想マシン毎に固有の検iE/レールテーブルと仮想マシン 識別情報 117を仮想マシン管理機関に提出する。なお、上記検iE/レールテーブル は仮想マシンが搭載されて 、る再生装置毎の検 SE/レールテーブル、識別情報であ つても良い。仮想マシン管理機関は、仮想マシンコードの実装者に対し、正規の仮想 マシンの検 SE/レールテーブルと仮想マシン識別情報 117を提供する。仮想マシンコ ードの実装者は、これを基に検証情報を作成する。図 4は仮想マシン毎 (再生装置毎 )に固有の検 SE/レールテーブルであり、例えば、検証に使用するアドレス 401と、い つ検証するかを示す検証タイミング 402と、その時にアドレス 401がどのような値をと つて!/、るかを示す検証値 403と、その値がどのような状態であれば検証が成功なの かを示す検 SE/レール 404などで構成される。アドレス 401は図 4にあるように、特定の アドレスや、特定のアドレスの範囲を表す。検 SE/レールテーブルは図 4のようなテー ブル構成に限定されるものではな 、。 [0033] なお、本実施の形態では、記録媒体 102として、 BDを想定し、そこに記録された仮 想マシンコード 121をディスク読込部 111にて情報処理装置 101に取り込んでいるが 、それに限るものではなぐ例えば、ディスク読込部 111をインターネット接続部に置 き換え、仮想マシンコード 121をインターネット経由で情報処理装置 101に取り込む 等、他の方法で仮想マシンコード 121を情報処理装置 101に取り込んでもよい。
[0034] 以上で、本発明の一実施形態に係る記録媒体、及び情報処理装置についての説 明を終わる。
(仮想マシンコードの実行)
次に、図 2を使って、情報処理装置 101での仮想マシンコードの実行について説明 する。
[0035] まず、情報処理装置 101はユーザ操作受付部 112を通じて、記録媒体 102上の仮 想マシンコード 121を実行するよう指示を受けることで処理が開始される。
仮想マシンコード 121の実行が指示されると、仮想マシン実行部 113は、情報保持 部 114から、仮想マシン実行コード 115をロードし、仮想マシンを起動する(S201)。
[0036] 次に、ディスク読込部 111を通じて記録媒体 102から、仮想マシンコード 121を読 み出し、仮想マシン実行部 113が仮想マシン上で仮想マシンコード 121を起動する(
S202)。
仮想マシン上で起動された仮想マシンコード 121は、仮想マシン検証モジュール 1 121、及び検証情報保持モジュール 1122を用いて、自身を実行している仮想マシ ンを含む実行環境の正当性の検証タイミング 402かどうかチェックを行う(S203)。
[0037] そして、検証タイミング 402だった場合、仮想マシンを含む実行環境の正当性の検 証を行う(S204)。この処理の詳細については、後述する。
S204の検証結果を判定し(S205)、 NGの場合、 NGの回数が規定回数になった 力どうか確認する(S208)。ここで、 NGが規定回数以上である場合、仮想マシンコー ド 121は自身の実行を終了するように実装されているため、その実行を終了する。
[0038] S208で NGが規定回数に達していない場合は、 S203力らやり直す。規定回数は 1 回でもよいし、複数回でもよぐ複数にすれば検証の精度を向上させる効果が得られ る。 S205で検証結果が OKの場合、仮想マシンコード 121中のコード依存処理モジュ ール 1123で定義されたコード依存処理を実行する(S206)。コード依存処理モジュ ール 1123には、仮想マシンコード 121毎に異なる処理が定義されており、例えば、 記録媒体 102に別途記録された映画等のコンテンツ 122の著作権保護処理として、 コンテンツ 122の復号処理を行うが、これに限るものではない。
[0039] コード依存処理が終了した時点で、仮想マシンコード 121の実行を終了する(S20 7)。
以上で、情報処理装置 101での仮想マシンコード 121の実行についての説明を終 わる。
(仮想マシンを含む実行環境の正当性検証)
仮想マシンを含む実行環境の正当性検証処理の詳細にっ ヽて説明する。この処 理は、仮想マシンコード 121によって、自身を実行する仮想マシンを含む実行環境 が正規のものかどうかを検証する処理である。
[0040] 仮想マシン実行コード 115は、インタフェースや処理内容等の実装に必要な情報 が公開されているため、誰でも実装することができる。このため、正規の仮想マシン実 行コード 115でなければ、仮想マシンコード 121の実行時に不正な動作を行い、仮 想マシンコード 121の処理が正しく行われなくなる可能性がある。仮想マシンコード 1 21が、例えば、記録媒体 102に別途記録されている映画等のコンテンツ 122の著作 権を保護するプログラムである場合には、不正にコンテンツ 122を再生され、著作権 を保護できなくなるため、仮想マシンを含む実行環境の検証処理が必要になる。
[0041] 仮想マシンコード 121を構成するモジュールについて説明する。仮想マシン検証モ ジュール 1121は、自身を実行する仮想マシンを含む実行環境が正規のものかどうか を検証するモジュールであり、検証情報保持モジュール 1122は、仮想マシンを含む 実行環境の正当性を検証するための情報である。具体的には、仮想マシンカゝら仮想 マシン識別情報 117と検証する値を取得し、その値が検証情報保持モジュール 112 2で保持する検 SE/レールと合致するかどうかで、仮想マシンを含む実行環境の正当 性を検証する。これにより、異なる再生装置にプレーヤモデル番号、メーカ名等を含 むデータをコピーしたエミュレータを作成し、例えばコンピュータ上で仮想マシン及び 該エミュレータを搭載したとしても、図 4の仮想マシン毎の検 SE/レールテーブル 400 に合致するようにエミュレータを作成するのは困難であり、検 SEレールを満たさないも のとなるため、力かる不当なエミュレータ上における再生を阻止することができる。検 証処理の詳細については、後述する。
[0042] 図 5は検証情報保持モジュール 1122が保持する検 SE/レールテーブル 500の一例 である。検証情報保持モジュール 1122が保持する検iE/レールテーブル 500は、図 4で提供された仮想マシン毎の検iE/レールテーブル 400の一部または全部と、仮想 マシン識別情報 117の対応を示している。検証情報保持モジュール 1122が保持す る検 SE/レールテーブル 500で使用する検 SE/レールは、仮想マシンコード 121作成者 が検 SE/レールテーブル 400から自由に選択して利用することができ、仮想マシンコ ード 121毎に独自の検証を行うことが可能となる。
[0043] 次に、仮想マシン実行コード 115を構成するモジュールについて説明する。
検証値取得モジュール 1151は、仮想マシンコード 121中の仮想マシン検証モジュ ール 1121が指定したアドレスを、作業情報保持部 118から検索し、そのアドレスに保 持されて!、る値を取得するモジュールである。
仮想マシンコ一ド実行モジュール 1154は、仮想マシンコード 121中のコード依存 処理モジュール 1123で定義される処理をプラットフォームに依存するネイティブコー ドに変換しながら、実行するモジュールである。
[0044] 続いて、図 3を使って、仮想マシンを含む実行環境の正当性検証処理フローにつ いて説明する。
最初に、図 2の S202で仮想マシンコード 121を起動すると、仮想マシン検証モジュ ール 1121は、情報保持部 114の仮想マシン識別情報 117と検証情報保持モジユー ル 1122が保持する検 SE/レールテーブル 500とを比較して、利用する検証タイミング 402を検出しておく。 f列えば、仮想マシン識另 U†青報 117力 SOxOOl lffOOOOOl lOOl であったとして、以下の説明を行う。次に S203で、検出された検証タイミングになつ たときに、以下の検証処理を行う。
[0045] まず、仮想マシンコード 121は、検証タイミング 402に対応するアドレス 401を指定 して、仮想マシンに検証情報の要求を行う(S301)。例えば、メニュー 1を表示した場 合に、アドレス OxOOff 0001を指定して、検証情報の要求を行う。
仮想マシンは、作業情報保持部 118上の指定されたアドレス OxOOff 0001に保持 されている値を取得し (S302)、その値を検証情報として仮想マシンコード 121に返 信する(S303)。
[0046] 仮想マシンコード 121は、返信された検証情報を取得し (S304)、検証情報と検証 値 403を検言 レール 404に基づいて検証し、その結果を図 2の S205に渡す。今の 例では、検証情報が Oxedと同値であれば検証結果は OKであり、それ以外であれば NGである。
以上で、仮想マシンを含む実行環境の正当性検証処理の説明を終わる。
[0047] なお、正規の仮想マシンが指定されたアドレスの情報を取得することができれば、 アドレス 402は、物理 Z論理アドレス、実 Z仮想アドレスを問わない。また仮想マシン は指定されたアドレスをそのまま使用するのではなぐアドレスマップ情報をもとに作 業情報保持部 118に適したアドレスに変換してから、検証情報を取得するようにして もよい。アドレスマップ情報は作業情報保持部 118の該当領域を示すようにできれば よぐ静的なだけではなく動的に変化しても対応を管理するように構成すればよい。
[0048] また、本実施の形態では、検証値のデータ長として、 1バイトのデータ長を用いて!/ヽ る力 これに限るものではない。
また、作業情報保持部 118は全ての領域を、検証値取得モジュール 1151で参照 できるようにする必要はなぐ一部の領域は参照を不可能にするように実装することが でき、仮想マシンを含む実装環境の不正な解析に対する耐性を向上させることが可 能となる。
[0049] (検 SE/レールの例)
本実施の形態では、作業情報保持部 118上の値を取得して、それを検証情報とし ていたが、検証情報として用いる値や、検 SE/レールについて以下に説明する。ただ し、これらに限ったものではなぐ作業情報保持部 118上に展開される値であればい 力なる値も検証情報の候補である。
[0050] (1)コンテンツに関する情報
例えば図 5の検証情報保持モジュール 1122が保持する検iE/レールテーブル 500 で ίま、初期動画再生時【こ ド、レス 0x00110044〜0χ001 lOOffのデータの中にコン テンッ 122のインデックスファイルのタイムスタンプと同じ値が入っていれば検証 OK となる。このように正規の仮想マシンを含む実行環境ではコンテンツに関連する情報 をあるタイミングで作業情報保持部 118上の特定の領域に格納するようにすることで 、実際に仮想マシンコード 121実行時に、その特定の領域に規定の情報が存在する 力どうかを検証することで、正当性の評価を行うようにできる。なお、アドレスは範囲指 定ではなぐ 1つのアドレスでもよい。アドレス、検証タイミングとも仮想マシンを含む実 行環境に依存する。
[0051] 上記以外にコンテンツに関連する情報としては、インデックスファイルやナビゲーシ ヨンファイル、その他記録媒体 102に格納されて!、るファイルのファイルサイズやタイ ムスタンプが利用できる。また、記録媒体 102に格納されているプレイリストやプレイ アイテムの数、コンテンツハッシュテーブルの一部または全部の値、あるボタンをタリ ックした際の音情報の一部または全部のデータ、インデックステーブルのハッシュ値 の一部または全部、などコンテンツに関連する情報であれば 、かなる情報も利用可 能である。
[0052] (2)仮想マシンを含む実行環境に依存する情報
例えば図 6のように情報処理装置 101にさらに乱数生成部 601を追加し、仮想マシ ンコード 121の指示で乱数生成部 601を動作させるように実装する。そして、図 5の 検証情報保持モジュール 1122が保持する検iE/レールテーブル 500のように、デイス ク挿入時に仮想マシンを含む実行環境に乱数を生成させ、アドレス OxOOaaOOlOに 格納させ、仮想マシンコード 121はその値を保持する。その後、再生開始時やユー ザ操作時に同一アドレスに、再度乱数を生成 ·格納させ、仮想マシンコード 121は新 たに生成した乱数を取得して、先に保持して 、た乱数と比較して値が変更されて ヽ れば検証 OKとする。不正な仮想マシンが、乱数生成機能がない場合や、どこに乱 数を書き込むのかを分力つていない場合には、検証 OKにはならない。なお、乱数の シードにはアドレスや仮想マシン識別情報 117など仮想マシンを含む実行環境毎に 異なる値にすれば、同じ乱数を生成する可能性が低くなる。
[0053] また、仮想マシンは実装状態によって使用するメモリなどのリソースが異なる。ここで 例えば、仮想マシンコード 121実行中の作業情報保持部 118の空き領域が特定の 値の範囲に収まって ヽれば検証 OKとすることもできる。この場合不正な仮想マシン が動作する環境でにおいて、使用しているメモリサイズが違えば、検証 OKにはなら ない。
上記以外に仮想マシンを含む実行環境に依存する情報としては、ハッシュ計算値 ( 例えば、仮想マシンコードの直前の戻り値を使用するなど)、コンテンツに関する情報 だが情報処理装置 101毎に表示する内容が違う情報 (例えば、メニューのボタンの 数、再生できる音声や映像の違いなど)、などの情報が利用できる。
[0054] このように仮想マシンを含む実行環境に固有の機能や実装状態、その他の情報に 依存するあらゆる値を検証に利用することが可能である。
(3)時間やタイミングに依存する情報
例えば図 7のように情報処理装置 101にさらに計時部 701を追加する。計時部 701 は現在時刻を計時し、作業情報保持部 118の特定の領域に書き込むように実装する 。そして、図 5の検証情報保持モジュール 1122が保持する検証テーブルルール 50 0のように、仮想マシンコード 121は、ディスク挿入時に 0x00eee002から現在時刻を 取得して、保持し、次にクリップファイル切り替わり時に同一アドレス力 現在時刻を 取得して、前回保持した時刻と比較し、増加していれば検証 OKとする。この場合、単 に値が変更されて 、るだけではなく、必ず増加して 、ると 、ぅ検 SE/レールが設定され ているため、この実装を知っていないと、不正な実行環境を作成することはできない。
[0055] また、あるタイトルを再生中には早送り禁止になっている場合があり、そのタイトルを 再生しているタイミングでは、作業情報保持部 118の特定の領域に早送り禁止の情 報を保持する。この場合、該当のタイトル再生時に、その特定の領域にある現在の状 態をチェックして、早送り禁止を示す情報であれば検証 OKとする。
上記以外に時間やタイミングに依存する情報としては、情報処理装置 101に関する システムパラメータや動作パラメータなど、また、現在再生しているチヤプタ番号、現 在再生しているストリームに含まれる時間情報 (例えば、 ATS、 PTS、 PCRなど)、な どの情報が利用できる。
[0056] このように時間やタイミングで変化する情報であれば、 、かなる情報も検証に利用 することが可能である。ただし、時間やタイミングで変化するデータであっても、コンテ ンッ情報自身 (暗号状態、復号状態、デコードの前後を問わない)等のように、非常 に転送レートが高 、情報を対象とすると、所定タイミングのあるアドレスに基づくメモリ 内の情報は正当な機器においても正確に予測する事は困難であるため、プレーヤの 製造者自身が実質的に予測できる情報を用いることが望ましい。特に、時間ゃタイミ ングで変化するデータであって複数回メモリの確認を行いその変化値を確認するル ール等の場合には、設定タイミングと確認タイミングをより厳密に同じタイミングで情報 を確認することが必要である力 正確なタイミングで検証と 、うことは現実は難 、た め、あまり転送レートが高い情報を用いないか、又は、検 SE/レール 404において正当 な機器と判断される検 SE/レール 404を緩くする事が望ましい。
[0057] 検証情報保持モジュール 1122が保持する検 SE/レールテーブル 500は上記で説 明した情報をどのように組み合わせてもよぐ仮想マシンを含む実行環境ごとに固有 の検 SE/レールテーブル 500が作成できる。
(実施の形態 2)
図 8は本発明の実施の形態 2における記憶媒体と情報処理装置のシステムモデル を示す図である。
[0058] 図 8に示すように記憶媒体 802には、再生順序やユーザ操作時の挙動を規定して いるコマンドプログラム 811と、クリップファイルの属性やタイムサーチマップ、プレイリ スト、プレイアイテムなどを記述しているクリップファイル関連情報 812、映像や音声な どのコンテンツを含むクリップファイル 813、仮想マシンを含む実行環境の正当性を 検証するための検証用コード 814、コンテンツの復元処理を行う際に使用する秘密 情報用コード 815、復元処理を行う際に秘密情報と組み合わせて実際の復元情報を 生成するための復元情報ファイル 816が含まれる。
[0059] 情報処理装置 801には、コマンドプログラム 811を処理するコマンド処理部 822と、 ユーザ入力を受け付けてユーザ操作制御部 823に送り、また、コンテンツ中の再生タ ィトルの管理を行うモジュール管理部 824と、ユーザ操作に対応する機能を再生制 御部 827から呼び出して制御するユーザ操作制御部 823と、装置状態や処理中の 変数を保持するレジスタ 826と、クリップファイル関連情報 812のプレイリストやプレイ アイテムの処理、また、コマンド処理部 822やユーザ操作制御部 823からの機能の 呼び出しの処理を行い、プレゼンテーション処理部 831を制御する再生制御部 827 と、検証用コード 814を実行して、仮想マシンを含む実行環境の正当性を検証する 検証処理部 829と、コンテンツの復元処理に使用する秘密情報を秘密情報用コード 815から算出する秘密情報計算部 830と、コンテンツの再生や表示を制御するプレ ゼンテーシヨン処理部 831と、復元情報ファイル 816と秘密情報をもとに復元情報を 生成し、コンテンツの復元をプレゼンテーションエンジンに通知する復元処理部 832 とを含む。コマンド処理部 822とユーザ操作制御部 823を含めて動作モジュール 82 1と呼び、レジスタ 826と再生制御部 827を含めて再生制御処理部 825と呼び、また 検証処理部 829と秘密情報計算部 830を含めて仮想マシン 828と呼ぶこととする。 上記構成は一例であり、情報処理装置 801の具体例としては BDドライブを含む処理 装置であり、ハードウェアでの実装やソフトウェアによる構成に限定されるものではな い。以下、図 8、図 9および図 10の処理フローを用いてその動作を説明する。
[0060] 図 9は情報処理装置 101での検証処理とコンテンッの復元処理の動作を示す図で ある。
まず、検証処理部 829は仮想マシン 828が保持して 、る仮想マシン識別情報 903 を取得し (S1001)、検証用コード 814のうち、仮想マシン識別情報 903に対応する 一部または全部のコードを読み込んで割り込み管理情報 904を取得し、保持する(S 1002)。割り込み管理情報 904は例えばタイトル毎などの再生箇所に応じて、検証 用コード 814の実行開始場所 (PC:プログラムカウンター)を決定するための情報で あり、実行開始場所と再生箇所の組み合わせが記述されている。なお、仮想マシン 識別情報 903は仮想マシンを識別するための情報であり、例えば、「情報処理装置メ 一力 ID +情報処理装置のモデル番号 +仮想マシンのバージョン番号」などで構成さ れるデータである力 仮想マシンを一意に特定できる情報であれば、これに限るもの ではない。また、仮想マシン識別情報 903に署名を付与してその正当性をチェックす るようにしてちょい。
[0061] 次に、モジュール管理部 824は、今から再生するタイトル番号を含めて、検証処理 部 829に検証処理の開始を指示する(S1003)。 検証処理部 829は、指示に含まれるタイトル番号をもとに、割り込み管理情報 904 力も該当の PCを取得し、検証用コード 814を取得した PC力も実行する(S1004)。
[0062] 次に、実行された検証用コード 814は、検証する際に参照するメモリ領域を含む検 証情報メモリ 902を参照して、仮想マシンを含む実行環境の検証を行う(S1005)。 なお、検証方法の詳細にっ 、ては実施の形態 1で示した検証方法を利用することが 可能であるため、ここでの詳細な説明は割愛する。
検証結果が OKであれば、そのまま処理を続行する(S 1006)。 NGの場合には、規 定回数に達して 、なければそのまま処理を続行する力 NGの規定回数に達して ヽ れば (S1007)、コンテンツや秘密情報用コード 815の一部または全部、またはその 他の処理データを保持するメモリ 901上の特定箇所のデータを書き換えることにより( S1008)、情報処理装置 101が正常に動作しないようにできる。具体的には、再生中 に秘密情報計算部 830が復元処理に必要な秘密情報用コード 815もしくは秘密情 報をメモリ 901上に保持しているので、その一部または全部を書き換えることにより、 復元処理を正常に動作できな 、ようにして、正常な再生をできな 、ようにすると 、う効 果が得られる。復元処理については後述する。また、再生中のタイトルの一部もメモリ 901上に保持するようにできるので、 NGの場合にメモリ 901上のタイトルの一部また は全部を書き換えることで、不正な仮想マシンを含む実行環境では正常に再生でき なくするという効果が得られる。なお、書き換える情報は上記に限らず、上記以外の 情報を書き換えても同様の効果が得られる。
[0063] なお、検証結果が NGの場合にメモリ 901上の情報を書き換えるとした力 これに限 らず、モジュール管理部 824に NGを通知し、モジュール管理部 824からの指示で、 再生を停止するようにしてもょ ヽ。また秘密情報計算部 830に NGを通知して秘密情 報の算出を停止するようにしてもよぐこれに限らず、正常に再生できないようにでき れば、その他の構成要素に NGを通知してもよい。
[0064] また S 1003の検証処理開始指示は再生タイトルが切り替わる度に発生するもので あり、ユーザ操作などによりタイトルが変更になった場合など不定期に発生する。ただ し、早送りやまき戻しなどの特殊再生時には、 1つの検証処理が終了する前に検証 情報メモリ 902の内容が変更される恐れがあるため、検証処理開始指示を行わない ようにしてもよい。また、現在検証処理を実行している(S1005〜S 1007を繰り返して いる)最中に、別のタイトル番号を含む検証処理開始指示があった場合には、現在の 検証処理を終了して、新たなタイトル番号に対応する検証用コード 814の実行を行う (S 1004からやり直す)。
[0065] また、 S1004の検証用コード 814の実行は、 S1003の検証開始指示で受け取った タイトル番号によっては実行しないようにできる。具体的には、検証用コード 814生成 側で、割り込み管理情報 904に、検証用コード 814の実行が必要ではないタイトル番 号を含めないようにするカゝ、特定の PCを設定して、その PCの時には実行を行わない ように規定すると 、う方法がある。
[0066] また、検証情報メモリ 902とメモリ 901は物理的には同一のメモリ上で領域が異なる ものとしてもよい。またそれぞれ、参照禁止ゃ書換禁止領域を設定することも可能で あり、誤動作防止や不正な解析に対する耐性が高まる効果が得られる。
(復元処理)
上記の復元処理とは以下のような方法がある。
[0067] 図 8、図 9に示すように、まず、秘密情報計算部 830は秘密情報用コード 815を読 み込み、秘密情報計算用割り込み管理情報 905を取得し、保持する。秘密情報計算 用割り込み管理情報 905は、例えば、プレイアイテム番号ごとに、秘密情報用コード 815の実行開始位置 (秘密情報用 PC :プログラムカウンター)を決定するための情報 であり、プレイアイテム番号と秘密情報用 PCの対応が記述されて 、る。
[0068] 復元処理部 832は復元情報ファイル 816の一部または全部を読み込んで保持する 再生制御部 827は現在どのプレイアイテムのどの位置を再生しているかを管理して おり、あるプレイアイテムを再生すると、例えば 10秒ごとにそのプレイアイテム番号と 何番目の期間かを示す期間情報を秘密情報計算部 830に通知する。なお、何番目 の期間ではなぐ何秒目かを通知しても良い。また、通知のタイミングは 10秒ではなく 、毎秒や、プレイアイテム切り替わり毎など、定期的または不定期的に通知するように してもよい。また、その通知のタイミング情報は秘密情報用コード 815に含めて、再生 制御部 827が秘密情報用コード 815からタイミング情報を取得しても良い。 [0069] 次に秘密情報計算部 830は、通知されたプレイアイテム番号をもとに秘密情報計 算用割り込み管理情報 905から秘密情報用 PCを取得し、該当する箇所から秘密情 報用コード 815を実行する。
実行された秘密情報用コード 815は期間情報をもとに、その期間に適切な秘密情 報を算出して、復元処理部 832に通知する。
[0070] 復元処理部 832は、復元情報ファイル力 再生箇所に適した復元情報を取得し、 秘密情報を使用して XOR (Exclusive OR:排他的論理和演算)計算などで復号し 、復号した復元情報をプレゼンテーション処理部 831に通知する。
プレゼンテーション処理部 831は、復元情報に含まれる復元位置のデータと、復元 情報に含まれる復元データを XOR計算して上書きする。復元位置は、クリップフアイ ルの先頭力 のパケット数や、パケットに付与されている読み出し時間情報、再生時 間情報など、復元する位置を一意に特定できる情報であれば良 、。
[0071] 以上により変形されたコンテンツを復元することが可能となり、正常に再生すること ができる。そこで、例えば上記の検証処理で NGだった場合には秘密情報計算部 83 0が使用しているメモリ 901上の領域の一部または全部を書き換えることで、正しい秘 密情報を取得できな 、ようにして、正常な再生をできな 、ようにすることが可能となる 。なお、書き換えるのは秘密情報用コード 815や秘密情報の一部または全部など秘 密情報の算出に必要なデータ領域であればよ 、。
[0072] なお、プレイアイテム番号を使用した力 タイトル番号、プレイリスト番号、プレイアイ テム番号およびそれらの組み合わせなど現在再生している位置が一意に特定できれ ば、いかなる情報を使用することも可能である。
また、プレゼンテーション処理部 831が復元位置のデータと復元データの XOR計 算をして上書きするとした力 復元処理部 832が復元情報を通知せずに、メモリ 901 上に保持されて 、るクリップファイルを直接参照して、 XOR計算および上書きを行う ようにしてもよい。
[0073] なお、復元情報ファイル 816が復元情報を含むとした力 図 11に示すように、クリツ プファイル 1113のストリーム内に復元情報を多重することも可能である。具体的には 、復元情報を PMTや独自パケットに格納して、映像や音声などのストリームに多重す る。この場合、復元処理部 1132は再生中のストリーム力も復元情報を含むパケットを 取得し、復元情報を得ることができる。その他の構成は図 8と同様である。
[0074] 復元情報には、復元情報を含むパケットからの相対パケット数およびそのパケットの 何バイト目のデータを復元するかを示す復元位置と、復元位置のデータと XOR計算 するための復元データが含まれている。復元処理部 1132は、秘密情報計算部 830 から通知された秘密情報を使用して XOR計算などで復元情報を復号し、復号した復 元情報をもとに復元位置のデータと復元データを XOR計算して、その結果を復元位 置に上書きすることで、変形されたコンテンツを復元することが可能となる。
[0075] このように復元情報をファイルではなぐクリップファイルのストリームに多重して復元 処理を行うことも可能であるが、秘密情報計算部 830は同様の処理を行えばょ 、。 なお、復元処理部 1132は復号後の復元情報をプレゼンテーション処理部 1131に 通知してもよぐその場合、プレゼンテーション処理部 1131が復元情報をもとに復元 位置のデータと復元データを XOR計算して、復元位置のデータに上書きすれば復 元処理が可能である。
[0076] また、復元処理や、復元情報の復号に XORを使用したが、これに限らず AES (Ad vanced Encryption Standard)や DES (Data Encryption Standard)なと、 どのような演算を使用しても良 、。
なお、図 12は上記図 8および図 11で示した検証処理と復元処理の構成を一般ィ匕 した構成であり、仮想マシン 1228および復元処理部 1232以外の構成要素は、一般 的なディスク再生のシステムモデルである。つまり、本願の検証処理と復元処理を実 現する実装は、一般的なディスク再生のシステムモデルをほとんど変更する必要なく 実装することが可能であると 、う特徴がある。
[0077] なお、本実施の形態では、検証処理部 832が検証用コード 814を直接読み込み、 秘密情報計算部 830が秘密情報用コード 815を直接読み込むような記述をしたが、 これに限らず、その他の構成要素を経由して取得しても良い。また、検証用コード 81 4や秘密情報用コード 815はコマンドプログラム 811や、クリップファイル関連情報 81 2など記憶媒体 802上の他の情報に含まれるように記述してもよい。
[0078] また、復元情報や、割り込み情報などの各通知は図示していない一般演算用のレ ジスタ経由や、メモリ 901経由などで通知することが可能である力 この限りではない また、割り込み管理情報 904は、検証用コード 814から取得するとしたが、別フアイ ルとしたり、記憶媒体 802上のその他の情報に記述しても良い。また、秘密情報計算 用割り込み管理情報 905も同様に、別ファイルとしたり、記憶媒体 802上のその他の 情報に記述しても良い。
[0079] (その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきた力 本発明は、上記の実 施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる
(1)上記の情報処理装置は、具体的には、マイクロプロセッサ、 ROM、 RAM,ノヽ ードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコ ンピュータシステムである。前記 RAMまたはハードディスクユニットには、コンビユー タプログラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプロダラ ムにしたがって動作することにより、情報処理装置は、その機能を達成する。ここでコ ンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を 示す命令コードが複数個組み合わされて構成されたものである。
[0080] (2)上記の情報処理装置を構成する構成要素の一部または全部は、 1個のシステ ム LSI (Large Scale Integration:大規模集積回路)から構成されているとしても よい。システム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機 能 LSIであり、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成され るコンピュータシステムである。前記 RAMには、コンピュータプログラムが記憶されて いる。前記マイクロプロセッサ力 前記コンピュータプログラムにしたがって動作するこ とにより、システム LSIは、その機能を達成する。
[0081] また、この場合、 LSI製造者と情報処理装置製造者は異なる場合がある。このとき、 LSI製造者は、例えば乱数生成機能や計時機能など検証に使用できる機能を実装 して提供することで、情報処理装置製造者は製造する装置に合った検 SEレールや 検証用アドレスを規定することができる。よって LSI製造者は LSIごとに検 tE/レールを 規定'管理するコストを削減でき、情報処理装置製造者は製造する装置のバージョン ごとに自由に検 SE/レールを規定できるという効果が得られる。
[0082] (3)上記の情報処理装置を構成する構成要素の一部または全部は、情報処理装 置に脱着可能な ICカードまたは単体のモジュール力も構成されているとしてもよい。 前記 ICカードまたは前記モジュールは、マイクロプロセッサ、 ROM、 RAMなどから 構成されるコンピュータシステムである。前記 ICカードまたは前記モジュールは、上 記の超多機能 LSIを含むとしてもよい。マイクロプロセッサ力 コンピュータプログラム にしたがって動作することにより、前記 ICカードまたは前記モジュールは、その機能 を達成する。この ICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい
[0083] (4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンビユー タ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD— R OM、 MO、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半導体 メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前 記デジタル信号であるとしてもよ 、。
[0084] また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信 回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放 送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、 前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは 、前記コンピュータプログラムにしたがって動作するとしてもよい。
[0085] また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送する ことにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経 由して移送すること〖こより、独立した他のコンピュータシステムにより実施するとしても よい。 (5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
(6)本発明は、内部に含んだ仮想マシンによりコンテンツの再生に係る処理を実行 する情報処理装置において用いられる検証方法であって、前記コンテンツと共に記 録媒体に記録されて 、る検証プログラムを読み出す読出ステップと、前記検証プログ ラムを前記仮想マシンが実行することにより、前記仮想マシンを含む前記情報処理 装置の正当性を検証する検証ステップとを含むことを特徴とする。
[0086] ここで、「読出ステップ」は、(実施の形態 1)において説明した図 2の S202の処理と 対応する。
また、「検証ステップ」は、(実施の形態 1)において説明した図 2の S204の処理と対 応する。
(7)また、変形例(6)において、前記検証ステップは、前記検証プログラムが、前記 情報処理装置の所定のメモリアドレスに保持されて ヽる値を、検証情報として取得す る取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前 記情報処理装置が正当である力否かを、前記検証プログラムが判断する判断ステツ プとを含むこととしてもよい。
[0087] ここで、「取得ステップ」は、(実施の形態 1)において説明した図 3の S301、 S304 の処理と対応する。
また、「判断ステップ」は、例えば、(実施の形態 1)の、(仮想マシンを含む実行環境 の正当性検証)の記載の、「仮想マシンコード 121は、返信された検証情報を取得し (S304)、検証情報と検証値 403を検iE/レール 404に基づいて検証し、その結果を 図 2の S205に渡す。今の例では、検証情報が Oxedと同値であれば検証結果は OK であり、それ以外であれば NGである。」と記載されている処理と対応する。
[0088] (8)また、変形例(7)にお 、て、前記記録媒体は、さらに、前記仮想マシン上で実 行され、前記コンテンツの再生に係る処理手順を含む再生関連プログラムを記録し ており、前記検証方法は、さらに、検証の結果、前記情報処理装置が不正である場 合、前記コンテンツの再生に係る処理手順の実行を抑制する抑制ステップを含むこと としてちよい。
ここで、「前記仮想マシン上で実行され、前記コンテンツの再生に係る処理手順を 含む再生関連プログラム」とは、(実施の形態 2)において図 8を用いて説明した、コマ ンドプログラム 811、クリップファイル関連情報 812、クリップファイル 813、検証用コー ド 814、秘密情報用コード 815、復元情報ファイル 816と対応している。
[0089] また、「抑制ステップ」は、(実施の形態 2)において説明した図 10の S1006が NG の場合、および S 1008の処理と対応する。
(9)また、変形例(8)において、前記コンテンツは、所定の復元処理によって復元 できるよう変形されており、前記コンテンツの再生に係る処理手順は、変形されている 前記コンテンツを、前記復元処理により復元する手順を含み、前記抑制ステップは、 前記復元処理の実行を抑制することとしてもょ ヽ。
[0090] ここで、「所定の復元処理」および「変形されている前記コンテンツを、前記復元処 理により復元する手順」とは、(実施の形態 2)の (復元処理)にて説明した処理と対応 する。例えば、秘密情報用コード 815、復元処理部 832、プレゼンテーション処理部 831が行う処理と対応する。
また、「前記抑制ステップは、前記復元処理の実行を抑止する」とは、上述の (復元 処理)における、「以上により変形されたコンテンツを復元することが可能となり、正常 に再生することができる。そこで、例えば上記の検出処理で NGだった場合には秘密 情報計算部 830が使用しているメモリ 901上の領域の一部または全部を書き換える ことで、正しい秘密情報を取得できないようにして、正常な再生をできないようにする ことが可能となる。」などと記載されて ヽる処理と対応する。
[0091] (10)また、変形例(7)にお 、て、前記検証情報とは、タイミングによって変化する情 報であることとしてもよい。
ここで、「タイミングによって変化する情報」とは、特に、(実施の形態 1)の(検 SE/レー ルの例)の(3)時間やタイミングに依存する情報、における、「このように時間ゃタイミ ングで変化する情報であれば、いかなる情報も検証に利用することが可能である。」と の記載と対応する。
[0092] (11)また、変形例(7)において、前記検証情報とは、前記再生を行うコンテンツに 関する†青報であることとしてちょ 、。
ここで、「前記再生を行うコンテンツに関する情報」とは、特に、(実施の形態 1)の( 検 tE/レールの例)の(1)コンテンツに関する情報、にて説明した記載と対応する。
(12)また、変形例(7)において、前記検証情報とは、前記仮想マシンを含む実行 環境に依存する情報であることとしてもょ 、。
[0093] ここで、「前記仮想マシンを含む実行環境に依存する情報」とは、(実施の形態 1)の
(検 SE/レールの例)の(2)仮想マシンを含む実行環境に依存する情報、にて説明し た記載と対応する。
(13)また、変形例(7)において、前記記録媒体には、さらに、検証値と、検 SE/レー ルとが対応づけて記録されており、前記判断ステップは、前記取得ステップにより取 得された前記検証情報と、前記記録媒体に記録された前記検証値とを、前記検証値 に対応づけられて ヽる前記検 SE/レールに基づ ヽて比較する比較ステップを含み、前 記判断ステップは、前記比較の結果、前記検 SE/レールを満たす場合に、前記情報 処理装置が正当であると判断することとしてもよい。
[0094] ここで、「検証値」とは、(実施の形態 1)にお 、て図 5を用いて説明した検証値 403 と対応する。
また、「検 SE/レール」とは、検 SE/レール 404と対応する。
また、「比較ステップ」および「判断ステップ」は、(実施の形態 1)において説明した 、(仮想マシンを含む実行環境の正当性検証)の記載の、「仮想マシンコード 121は、 返信された検証情報を取得し (S 304)、検証情報と検証値 403を検 SE/レール 404に 基づいて検証し、その結果を図 2の S 205に渡す。今の例では、検証情報が Oxedと 同値であれば検証結果は OKであり、それ以外であれば NGである。」と記載されてい る処理と対応する。
[0095] (14)また、変形例(13)において、前記取得ステップは、検証のタイミングにおいて 、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前 記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモ リアドレスに保持されて ヽる値を読み出し、読み出した値を前記検証情報として前記 検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、 前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ス テツプは、前記返信により取得した前記検証情報を用いて前記比較を行うこととして ちょい。
[0096] ここで、「要求ステップ」は、(実施の形態 1)において説明した図 3の S301と対応す る。
また、「返信ステップ」は、(実施の形態 1)において説明した図 3の S303と対応する
(15)また、変形例(13)において、前記記録媒体には、さらに、複数の前記検証値 力 検証のタイミングと対応づけて記録されており、前記比較ステップは、前記検証の タイミングにお 、て前記取得した検証情報と、前記検証のタイミングに対応づけられ て 、る前記検証値および前記検 SE/レールを用いて前記比較を行!ヽ、前記判断ステ ップは、前記検証のタイミングになる度に、前記比較ステップを繰り返し実行させる繰 り返しステップと、前記繰り返しの結果、前記検証情報と前記検証値とが所定回数以 上前記検 SE/レールを満たさな!/、場合に、前記情報処理装置が不正であると決定す る決定ステップとを含むこととしてもょ ヽ。
[0097] ここで、「検証のタイミング」は、(実施の形態 1)にお 、て説明した図 5の検証タイミン グ 402と対応する。
また、「繰り返しステップ」は、特に、(実施の形態 1)において説明した S203、 S204 、 S205、 S207力ΝΟ、 S208力ΝΟの場合の処理と対応する。
また、「決定ステップ」は、 S208が YESの場合の処理と対応する。
[0098] (16)また、変形例(13)において、前記記録媒体には、複数の前記検証値の各々 力 前記仮想マシンを一意に識別する識別情報と対応づけられて記録されており、 前記比較ステップは、前記情報処理装置に含まれる仮想マシンの識別情報と対応す る検証値を用いて前記比較を行うこととしてもょ 、。
ここで、「識別情報」は、(実施の形態 1)において説明した図 5の仮想マシン識別情 報 117と対応している。
[0099] (17)また、変形例(7)において、前記記録媒体には、さらに、検証のタイミングと検 言 IE/レールとが対応づけられて記録されており、前記情報処理装置は、さらに、所定の タイミングにおいて前記所定のメモリアドレスに保持されている値を比較用情報として 格納している格納手段を備え、前記取得ステップは、前記検証のタイミングにおいて 前記所定のメモリアドレスに保持されて 、る値を、前記検証情報として前記取得し、 前記判断ステップは、前記検証のタイミングにおいて取得した前記検証情報と、前記 格納手段に格納されて 、る比較用情報とを前記検言 IE/レールに基づ 、て比較する比 較ステップを含み、前記判断ステップは、前記比較の結果に基づいて、前記情報処 理装置が正当である力否かの前記判断を行うこととしてもよい。
[0100] (18)また、変形例(17)において、前記取得ステップは、前記検証のタイミングにお V、て、前記所定のメモリアドレスに保持されて 、る値を要求する要求ステップを含み、 前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメ モリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前 記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは 、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較 ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととし てもよい。
[0101] ここで、「格納手段」は、例えば、(実施の形態 1)の (検 SE/レールの例)の(2)仮想マ シンを含む実行環境に依存する情報、における、「そして、図 5の検証情報保持モジ ユール 1122が保持する検 SE/レールテーブル 500のように、ディスク挿入時に仮想マ シンを含む実行環境に乱数を生成させ、アドレス OxOOaaOOlOに格納させ、」との記 載に対応する。
[0102] また、「取得ステップ」「比較ステップ」「判断ステップ」は、(実施の形態 1)の (検iE/レ ールの例)の(2)仮想マシンを含む実行環境に依存する情報、における、「その後、 再生開始時やユーザ操作時に同一アドレスに、再度乱数を生成 ·格納させ、仮想マ シンコード 121は新たに生成した乱数を取得して、先に保持して 、た乱数と比較して 値が変更されていれば検証 OKとする。」との記載に基づく。
[0103] また、「要求ステップ」は、(実施の形態 1)において説明した図 3の S301と対応する また、「返信ステップ」は、(実施の形態 1)において説明した図 3の S303と対応する (19)また、変形例(17)において、前記情報処理装置は、さらに、乱数を生成する 乱数生成部を備え、前記検証方法は、さらに、前記検証のタイミングになるごとに、前 記乱数生成部に乱数を生成させ、生成された乱数を、前記所定のアドレスに保持さ せる乱数保持ステップを含み、前記取得ステップは、前記検証のタイミングにおいて 、前記乱数保持ステップにより前記保持された前記乱数を読み出すことで前記検証 情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報と、 前記比較用情報とが異なる場合に、前記情報処理装置が正当であると判断すること としてちよい。
[0104] ここで、「乱数生成部」は、(実施の形態 1)において説明した図 6の乱数生成部 601 と対応する。
また、「乱数保持ステップ」および「判断ステップ」は、(実施の形態 1)の (検iE/レー ルの例)の(2)仮想マシンを含む実行環境に依存する情報における、「そして、図 5の 検証情報保持モジュール 1122が保持する検iE/レールテーブル 500のように、デイス ク挿入時に仮想マシンを含む実行環境に乱数を生成させ、アドレス OxOOaaOOlOに 格納させ、」「その後、再生開始時やユーザ操作時に同一アドレスに、再度乱数を生 成'格納させ、仮想マシンコード 121は新たに生成した乱数を取得して、先に保持し て 、た乱数と比較して値が変更されて 、れば検証 OKとする。」との記載と対応する。
[0105] (20)また、変形例(19)において、前記乱数生成部は、前記仮想マシンを含む実 行環境に依存する情報に基づいて、前記生成を行うこととしてもよい。
ここで、「乱数生成部」は、(実施の形態 1)の(検 SE/レールの例)の(2)仮想マシンを 含む実行環境に依存する情報、における、「なお、乱数のシードにはアドレスや仮想 マシン識別情報 117など仮想マシンを含む実行環境毎に異なる値にすれば、同じ乱 数を生成する可能性が低くなる。」などの記載に対応する。
[0106] (21)また、変形例(17)において、前記情報処理装置は、さらに、時刻を計時して 前記所定のメモリアドレスに書き込む計時部を備え、前記格納手段は、所定のタイミ ングにお 、て前記所定のメモリアドレスに書き込まれて 、る前記時刻を比較用情報と して格納しており、前記取得ステップは、前記検証のタイミングにおいて、前記所定 のメモリアドレスに書き込まれている前記時刻を読み出すことで前記検証情報の前記 取得を行い、前記判断ステップは、前記比較の結果、前記検証情報に示される時刻 力 前記比較用情報に示される時刻よりも増加している場合に、前記情報処理装置 が正当であると判断することとしてもよい。
[0107] ここで、「計時部」は、(実施の形態 1)において説明した図 7の計時部 701と対応す る。
また、「格納手段」「取得ステップ」「判断ステップ」は、(実施の形態 1)の (検 SE/レー ルの例)の(3)時間やタイミングに依存する情報、における、「そして、図 5の検証情 報保持モジュール 1122が保持する検証テーブルルール 500のように、仮想マシンコ ード 121は、ディスク挿入時に 0x00eee002から現在時刻を取得して、保持し、次に クリップファイル切り替わり時に同一アドレスカゝら現在時刻を取得して、前回保持した 時刻と比較し、増加していれば検証 OKとする。」などの記載に対応する。
[0108] (22)また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を 実行し、仮想マシンを内部に含む情報処理装置であって、前記記録媒体には、前記 仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証 プログラムが記録されており、前記情報処理装置は、前記記録媒体から前記検証プ ログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証 のタイミングにお 、て保持されて!、る値の要求を前記検証プログラム力も受け付ける 受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている 値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備える 情報処理装置でもある。
[0109] また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を実行し 、仮想マシンを内部に含む情報処理装置に搭載される集積回路であって、前記記録 媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性 を検証する検証プログラムが記録されており、前記集積回路は、前記記録媒体から 前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアド レスに、検証のタイミングにお 、て保持されて!、る値の要求を前記検証プログラムか ら受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保 持されて!ヽる値を読み出し、読み出した値を前記検証プログラムに返信する返信手 段とを備える集積回路でもある。 [0110] ここで、「検証プログラム」は、図 1に示す仮想マシン検証モジュール 1121と対応す る。
また、「読出手段」は、図 1に示すディスク読込部 111と対応する。
また、「受付手段」および「返信手段」は、仮想マシン実行部 113が、仮想マシン実 行コード 115に含まれる命令コードを読み出し、解読し、実行することにより実現され る。
[0111] また、本発明は、コンテンツの再生に係る処理を実行し、仮想マシンを内部に含む 情報処理装置の正当性を検証する検証プログラムを記録している記録媒体であって 、前記検証プログラムは、前記情報処理装置の所定のメモリアドレスに保持されてい る値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された 前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断 ステップとを含む記録媒体でもある。
[0112] また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を実行し 、仮想マシンを内部に含む情報処理装置の正当性を検証する処理を、前記情報処 理装置に実行させる検証プログラムであって、前記情報処理装置の所定のメモリアド レスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステツ プにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否 かを判断する判断ステップとを含む検証プログラムでもある。
[0113] ここで、「取得ステップ」は、(実施の形態 1)において説明した図 3の S301、 S304 の処理と対応する。
また、「判断ステップ」は、例えば、(実施の形態 1)の、(仮想マシンを含む実行環境 の正当性検証)の記載の、「仮想マシンコード 121は、返信された検証情報を取得し (S304)、検証情報と検証値 403を検iE/レール 404に基づいて検証し、その結果を 図 2の S205に渡す。今の例では、検証情報が Oxedと同値であれば検証結果は OK であり、それ以外であれば NGである。」と記載されている処理と対応する。
[0114] (23)また、本発明は、以下のような構成であってもよい。
(23— 1)本発明は、仮想マシンを使って仮想マシンコードを実行する情報処理 方法であって、仮想マシンコードが仮想マシンを含む実行環境の正当性を検証する ステップと、検証の結果、前記仮想マシンを含む実行環境が不正であると判定した場 合、前記仮想マシンコードの処理を停止するステップと、を含むことを特徴とする。
[0115] (23- 2)上記の変形例(23— 1)の情報処理方法において、前記検証ステップは さら〖こ、前記仮想マシンコードが、前記仮想マシンを含む実行環境が保持する情報 の取得を要求するステップと、前記仮想マシンが、前記情報を前記仮想マシンコード に提供するステップと、前記仮想マシンコードが、前記情報と、前記仮想マシンコード が保持する検証情報を比較し、前記仮想マシンコードで規定したルールに基づ 、て 正当性を検証するステップと、を含むこととしてもよい。
[0116] (23— 3)また、上記の変形例(23— 2)において、前記情報は、前記仮想マシン を含む実行環境で処理するコンテンツに関する情報であることとしてもよい。
(23— 4)また、上記の変形例(23— 2)において、前記情報は、前記仮想マシン を含む実行環境に依存する情報であることとしてもよい。
(23— 5)また、上記の変形例(23— 2)において、前記情報は、前記仮想マシン を含む実行環境やコンテンツの状態により動的に変化する情報であることとしてもよ い。
[0117] (23— 6)また、本発明は、上記の変形例(23— 1)〜(23— 5)のいずれかに記載 された情報処理方法に含まれるステップをコンピュータに実行させることを特徴とする プログラムでちある。
(23— 7)また、本発明は、上記の変形例(23— 1)〜(23— 5)のいずれかに記載 された情報処理方法に含まれるステップをコンピュータに実行させることを特徴とする プログラムを記録したコンピュータ読み取り可能な記録媒体でもある。 産業上の利用可能性
[0118] 本発明にかかる情報処理方法は、仮想マシンを使い、プラットフォームに依存しな いプログラムを実行する情報処理装置に利用可能であり、著作権保護用プログラム など、仮想マシン上で動作するプログラムにセキュリティを要求される場合に有用で ある。

Claims

請求の範囲
[1] 内部に含んだ仮想マシンによりコンテンツの再生に係る処理を実行する情報処理 装置において用いられる検証方法であって、
前記コンテンツと共に記録媒体に記録されている検証プログラムを読み出す読出ス テツプと、
前記検証プログラムを前記仮想マシンが実行することにより、前記仮想マシンを含 む前記情報処理装置の正当性を検証する検証ステップと
を含むことを特徴とする検証方法。
[2] 前記検証ステップは、
前記検証プログラムが、前記情報処理装置の所定のメモリアドレスに保持されて ヽ る値を、検証情報として取得する取得ステップと、
前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置 が正当である力否かを、前記検証プログラムが判断する判断ステップとを含む ことを特徴とする請求項 1記載の検証方法。
[3] 前記記録媒体は、さらに、前記仮想マシン上で実行され、前記コンテンツの再生に 係る処理手順を含む再生関連プログラムを記録しており、
前記検証方法は、さらに、検証の結果、前記情報処理装置が不正である場合、前 記コンテンツの再生に係る処理手順の実行を抑制する抑制ステップを含む ことを特徴とする請求項 2記載の検証方法。
[4] 前記コンテンツは、所定の復元処理によって復元できるよう変形されており、
前記コンテンツの再生に係る処理手順は、変形されている前記コンテンツを、前記 復元処理により復元する手順を含み、
前記抑制ステップは、前記復元処理の実行を抑制する
ことを特徴とする請求項 3記載の検証方法。
[5] 前記検証情報とは、タイミングによって変化する情報である
ことを特徴とする請求項 2に記載の検証方法。
[6] 前記検証情報とは、前記再生を行うコンテンツに関する情報である
ことを特徴とする請求項 2に記載の検証方法。
[7] 前記検証情報とは、前記仮想マシンを含む実行環境に依存する情報である ことを特徴とする請求項 2に記載の検証方法。
[8] 前記記録媒体には、さらに、検証値と、検 SE/レールとが対応づけて記録されており 前記判断ステップは、
前記取得ステップにより取得された前記検証情報と、前記記録媒体に記録された 前記検証値とを、前記検証値に対応づけられて 、る前記検iE/レールに基づ ヽて比 較する比較ステップを含み、
前記判断ステップは、前記比較の結果、前記検 SE/レールを満たす場合に、前記情 報処理装置が正当であると判断する
ことを特徴とする請求項 2記載の検証方法。
[9] 前記取得ステップは、
検証のタイミングにお 、て、前記所定のメモリアドレスに保持されて 、る値を要求す る要求ステップを含み、
前記検証方法は、さらに、
前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されて V、る値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信 する返信ステップを含み、
前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情 報を取得することであり、
前記比較ステップは、
前記返信により取得した前記検証情報を用いて前記比較を行う
ことを特徴とする請求項 8に記載の検証方法。
[10] 前記記録媒体には、さらに、
複数の前記検証値が、検証のタイミングと対応づけて記録されており、 前記比較ステップは、
前記検証のタイミングにお 、て前記取得した検証情報と、前記検証のタイミングに 対応づけられて 、る前記検証値および前記検 SE/レールを用いて前記比較を行 ヽ、 前記判断ステップは、
前記検証のタイミングになる度に、前記比較ステップを繰り返し実行させる繰り返し ステップと、
前記繰り返しの結果、前記検証情報と前記検証値とが所定回数以上前記検iE/レ ールを満たさな 、場合に、前記情報処理装置が不正であると決定する決定ステップ とを含む
ことを特徴とする請求項 8に記載の検証方法。
[11] 前記記録媒体には、
複数の前記検証値の各々が、前記仮想マシンを一意に識別する識別情報と対応 づけられて記録されており、
前記比較ステップは、前記情報処理装置に含まれる仮想マシンの識別情報と対応 する検証値を用いて前記比較を行う
ことを特徴とする請求項 8に記載の検証方法。
[12] 前記記録媒体には、さらに、検証のタイミングと検 SE/レールとが対応づけられて記 録されており、
前記情報処理装置は、さらに、
所定のタイミングにおいて前記所定のメモリアドレスに保持されている値を比較用情 報として格納して ヽる格納手段を備え、
前記取得ステップは、
前記検証のタイミングにお 、て前記所定のメモリアドレスに保持されて 、る値を、前 記検証情報として前記取得し、
前記判断ステップは、
前記検証のタイミングにお 、て取得した前記検証情報と、前記格納手段に格納さ れて 、る比較用情報とを前記検言 IE/レールに基づ 、て比較する比較ステップを含み、 前記判断ステップは、前記比較の結果に基づいて、前記情報処理装置が正当であ るか否かの前記判断を行う
ことを特徴とする請求項 2に記載の検証方法。
[13] 前記取得ステップは、 前記検証のタイミングにお 、て、前記所定のメモリアドレスに保持されて 、る値を要 求する要求ステップを含み、
前記検証方法は、さらに、
前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されて V、る値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信 する返信ステップを含み、
前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情 報を取得することであり、
前記比較ステップは、
前記返信により取得した前記検証情報を用いて前記比較を行う
ことを特徴とする請求項 12記載の検証方法。
[14] 前記情報処理装置は、さらに、
乱数を生成する乱数生成部を備え、
前記検証方法は、さらに、
前記検証のタイミングになるごとに、前記乱数生成部に乱数を生成させ、生成され た乱数を、前記所定のアドレスに保持させる乱数保持ステップを含み、
前記取得ステップは、
前記検証のタイミングにお 、て、前記乱数保持ステップにより前記保持された前記 乱数を読み出すことで前記検証情報の前記取得を行い、
前記判断ステップは、前記比較の結果、前記検証情報と、前記比較用情報とが異 なる場合に、前記情報処理装置が正当であると判断する
ことを特徴とする請求項 12に記載の検証方法。
[15] 前記乱数生成部は、
前記仮想マシンを含む実行環境に依存する情報に基づ!、て、前記生成を行う ことを特徴とする請求項 14に記載の検証方法。
[16] 前記情報処理装置は、さらに、
時刻を計時して前記所定のメモリアドレスに書き込む計時部を備え、
前記格納手段は、 所定のタイミングにおいて前記所定のメモリアドレスに書き込まれている前記時刻を 比較用情報として格納しており、
前記取得ステップは、
前記検証のタイミングにお 、て、前記所定のメモリアドレスに書き込まれて 、る前記 時刻を読み出すことで前記検証情報の前記取得を行い、
前記判断ステップは、前記比較の結果、前記検証情報に示される時刻が、前記比 較用情報に示される時刻よりも増カロしている場合に、前記情報処理装置が正当であ ると判断する
ことを特徴とする請求項 12に記載の検証方法。
[17] 記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内 部に含む情報処理装置であって、
前記記録媒体には、
前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する 検証プログラムが記録されており、
前記情報処理装置は、
前記記録媒体から前記検証プログラムを読み出す読出手段と、
前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されて いる値の要求を前記検証プログラム力 受け付ける受付手段と、
前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し 、読み出した値を前記検証プログラムに返信する返信手段とを備える
ことを特徴とする情報処理装置。
[18] 記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内 部に含む情報処理装置に搭載される集積回路であって、
前記記録媒体には、
前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する 検証プログラムが記録されており、
前記集積回路は、
前記記録媒体から前記検証プログラムを読み出す読出手段と、 前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されて いる値の要求を前記検証プログラム力 受け付ける受付手段と、
前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し 、読み出した値を前記検証プログラムに返信する返信手段とを備える
ことを特徴とする集積回路。
[19] コンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の 正当性を検証する検証プログラムを記録している記録媒体であって、
前記検証プログラムは、
前記情報処理装置の所定のメモリアドレスに保持されて 、る値を、検証情報として 取得する取得ステップと、
前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置 が正当であるカゝ否かを判断する判断ステップとを含む
ことを特徴とする記録媒体。
[20] 記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内 部に含む情報処理装置の正当性を検証する処理を、前記情報処理装置に実行させ る検証プログラムであって、
前記情報処理装置の所定のメモリアドレスに保持されて 、る値を、検証情報として 取得する取得ステップと、
前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置 が正当であるカゝ否かを判断する判断ステップとを含む
ことを特徴とする検証プログラム。
PCT/JP2006/313898 2005-07-14 2006-07-12 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路 WO2007007805A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
BRPI0612995-1A BRPI0612995A2 (pt) 2005-07-14 2006-07-12 mÉtodo de verificaÇço, dispositivo de processamento de informaÇço, circuito integrado implementado em um dispositivo de processamento de informaÇço, meio de armazenamento e programa de verificaÇço
JP2007524688A JP4889638B2 (ja) 2005-07-14 2006-07-12 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路
US11/662,603 US8281362B2 (en) 2005-07-14 2006-07-12 Verification method, verification program, recording medium, information processor, and integrated circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69893105P 2005-07-14 2005-07-14
US60/698,931 2005-07-14

Publications (1)

Publication Number Publication Date
WO2007007805A1 true WO2007007805A1 (ja) 2007-01-18

Family

ID=37637195

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/313898 WO2007007805A1 (ja) 2005-07-14 2006-07-12 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路

Country Status (5)

Country Link
US (1) US8281362B2 (ja)
JP (1) JP4889638B2 (ja)
CN (1) CN100589112C (ja)
BR (1) BRPI0612995A2 (ja)
WO (1) WO2007007805A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007026648A (ja) * 2005-07-19 2007-02-01 Samsung Electronics Co Ltd コンテンツの変形部分を効率的に校正する方法及びその装置
JP2007208897A (ja) * 2006-02-06 2007-08-16 Sony Corp 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
JP2012510650A (ja) * 2008-08-28 2012-05-10 マイクロソフト コーポレーション 感染したホストによる攻撃からの仮想ゲストマシンの保護
JP2013502664A (ja) * 2009-09-10 2013-01-24 ファソー.コム カンパニー リミテッド 仮想化技術を利用したデジタル著作権管理装置及び方法
JP2013502665A (ja) * 2009-08-24 2013-01-24 マイクロソフト コーポレーション 仮想マシン用エントロピー・プール
US10003378B2 (en) 2007-10-31 2018-06-19 Icera, Inc. Processing signals in a wireless communications environment

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0613956A2 (pt) * 2005-06-28 2011-02-22 Matsushita Electric Ind Co Ltd método de verificação, dispositivo de processamento de informação, meio de gravação, sistema de verificação, programa de certificação e programa de verificação
US20080244753A1 (en) * 2007-03-30 2008-10-02 Motorola, Inc. Instruction Transform for the Prevention and Propagation of Unauthorized Code Injection
US8675868B1 (en) * 2008-07-01 2014-03-18 Maxim Integrated Products, Inc. Encrypting an address-dependent value along with code to prevent execution or use of moved code
US8966082B2 (en) * 2009-02-10 2015-02-24 Novell, Inc. Virtual machine address management
US8595361B2 (en) * 2009-02-10 2013-11-26 Novell, Inc. Virtual machine software license management
KR20130050696A (ko) * 2011-11-08 2013-05-16 삼성전자주식회사 메모리 시스템
CN102663290A (zh) * 2012-03-23 2012-09-12 中国科学院软件研究所 一种基于虚拟机的数字版权保护方法
JP5953867B2 (ja) * 2012-03-26 2016-07-20 富士ゼロックス株式会社 プログラム、及びプログラム保護装置
US10331883B2 (en) * 2016-09-28 2019-06-25 International Business Machines Corporation Malicious code avoidance using transparent containers
US10666443B2 (en) * 2016-10-18 2020-05-26 Red Hat, Inc. Continued verification and monitoring of application code in containerized execution environment
JP6333498B1 (ja) * 2017-03-31 2018-05-30 三菱電機株式会社 情報処理装置および情報処理方法
FR3065553B1 (fr) * 2017-04-20 2019-04-26 Idemia Identity And Security Procede d'execution d'un programme destine a etre interprete par une machine virtuelle protege contre des attaques par injection de faute

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000295354A (ja) * 1998-09-14 2000-10-20 Siemens Inf & Commun Networks Inc 保留システム
JP2005182712A (ja) * 2003-12-24 2005-07-07 Meidensha Corp コンピュータ間のデータ処理方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6883163B1 (en) * 2000-04-28 2005-04-19 Sun Microsystems, Inc. Populating resource-constrained devices with content verified using API definitions
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
US7308717B2 (en) * 2001-02-23 2007-12-11 International Business Machines Corporation System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment
JP3565174B2 (ja) 2001-03-12 2004-09-15 株式会社三洋物産 制御装置
US7987510B2 (en) * 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
JP4390405B2 (ja) * 2001-05-31 2009-12-24 富士通株式会社 コンピュータシステム、サービス層、ポリシーキャッシュ機能部およびポリシー管理装置
GB2376764B (en) * 2001-06-19 2004-12-29 Hewlett Packard Co Multiple trusted computing environments
US7562232B2 (en) * 2001-12-12 2009-07-14 Patrick Zuili System and method for providing manageability to security information for secured items
US20030126590A1 (en) * 2001-12-28 2003-07-03 Michael Burrows System and method for dynamic data-type checking
US7719980B2 (en) * 2002-02-19 2010-05-18 Broadcom Corporation Method and apparatus for flexible frame processing and classification engine
JP3761505B2 (ja) * 2002-03-04 2006-03-29 株式会社東芝 通信システム、無線通信端末及び無線通信装置
CN1464688A (zh) 2002-06-25 2003-12-31 赖育成 一种网络资源管理系统
JP2004179877A (ja) * 2002-11-26 2004-06-24 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8121955B2 (en) * 2003-01-16 2012-02-21 Oracle America, Inc. Signing program data payload sequence in program loading
US8695019B2 (en) * 2003-02-14 2014-04-08 Actividentity (Australia) Pty Ltd System and method for delivering external data to a process running on a virtual machine
JP4093899B2 (ja) * 2003-04-03 2008-06-04 シャープ株式会社 データ送信装置及びデータ受信装置及びデータ通信システム及びデータ通信管理用サーバ
US20040225880A1 (en) * 2003-05-07 2004-11-11 Authenture, Inc. Strong authentication systems built on combinations of "what user knows" authentication factors
CA2530441C (en) 2003-06-27 2009-08-25 Disney Enterprises, Inc. Dual virtual machine and trusted platform module architecture for next generation media players
US7469346B2 (en) * 2003-06-27 2008-12-23 Disney Enterprises, Inc. Dual virtual machine architecture for media devices
US20050049886A1 (en) * 2003-08-28 2005-03-03 Sbc Knowledge Ventures, L.P. System and method for managing digital rights and content assets
JP4649865B2 (ja) * 2003-11-06 2011-03-16 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US7370233B1 (en) * 2004-05-21 2008-05-06 Symantec Corporation Verification of desired end-state using a virtual machine environment
WO2005121950A2 (en) * 2004-06-08 2005-12-22 Dartdevices Corporation Architecture apparatus and method for seamless universal device interoperability platform
US20050283502A1 (en) * 2004-06-18 2005-12-22 Ami Heitner Methods and systems for reconciling data
JP4626221B2 (ja) * 2004-06-24 2011-02-02 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4727342B2 (ja) * 2004-09-15 2011-07-20 ソニー株式会社 画像処理装置、画像処理方法、画像処理プログラム及びプログラム格納媒体
JP4376233B2 (ja) * 2005-02-04 2009-12-02 株式会社エヌ・ティ・ティ・ドコモ クライアント装置、デバイス検証装置及び検証方法
JP4671720B2 (ja) * 2005-03-11 2011-04-20 株式会社日立製作所 ストレージシステム及びデータ移動方法
JP4654806B2 (ja) * 2005-07-15 2011-03-23 ソニー株式会社 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000295354A (ja) * 1998-09-14 2000-10-20 Siemens Inf & Commun Networks Inc 保留システム
JP2005182712A (ja) * 2003-12-24 2005-07-07 Meidensha Corp コンピュータ間のデータ処理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HARUKI H, KAWAGUCHI N, INAGAKI Y.: "Tamper-resistant Hardware o Mochiita Mobile Agent Hogo Shubo", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, SHADAN HOJIN INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 44, no. 6, 15 June 2003 (2003-06-15), pages 1613 - 1624, XP003007301 *
HASEGAWA M, AMANO N, NIKI A.: "Fusei na Kogeki ni Taisho suru, Mobile Agent no Security Kiko", SHADAN HOJIN INFORMATION PROCESSING SOCIETY OF JAPAN, DAI 63 KAI (HEISEI 13 NEN KOKI) ZENKOKU TAIKAI KOEN RONBUNSHU, no. 3, 26 September 2001 (2001-09-26), pages 3-549 - 3-550, XP003007300 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007026648A (ja) * 2005-07-19 2007-02-01 Samsung Electronics Co Ltd コンテンツの変形部分を効率的に校正する方法及びその装置
JP2007208897A (ja) * 2006-02-06 2007-08-16 Sony Corp 情報処理装置、情報記録媒体製造装置、情報記録媒体、および方法、並びにコンピュータ・プログラム
US8185732B2 (en) 2006-02-06 2012-05-22 Sony Corporation Selecting and executing a content code corresponding to an information processing apparatus based on apparatus check information at the time of processing using the content code
US8578508B2 (en) 2006-02-06 2013-11-05 Sony Corporation Information recording medium manufacturing system, apparatus, and method for recording in an information recording medium contents and contents code files
US8671283B2 (en) 2006-02-06 2014-03-11 Sony Corporation Checking of apparatus certificates and apply codes associated with apparatus identifiers found in apparatus certificates
US10003378B2 (en) 2007-10-31 2018-06-19 Icera, Inc. Processing signals in a wireless communications environment
JP2012510650A (ja) * 2008-08-28 2012-05-10 マイクロソフト コーポレーション 感染したホストによる攻撃からの仮想ゲストマシンの保護
US8954897B2 (en) 2008-08-28 2015-02-10 Microsoft Corporation Protecting a virtual guest machine from attacks by an infected host
JP2013502665A (ja) * 2009-08-24 2013-01-24 マイクロソフト コーポレーション 仮想マシン用エントロピー・プール
US9495190B2 (en) 2009-08-24 2016-11-15 Microsoft Technology Licensing, Llc Entropy pools for virtual machines
JP2013502664A (ja) * 2009-09-10 2013-01-24 ファソー.コム カンパニー リミテッド 仮想化技術を利用したデジタル著作権管理装置及び方法
US8955150B2 (en) 2009-09-10 2015-02-10 Fasoo.Com Co. Ltd. Apparatus and method for managing digital rights using virtualization technique

Also Published As

Publication number Publication date
JPWO2007007805A1 (ja) 2009-01-29
US8281362B2 (en) 2012-10-02
CN101223535A (zh) 2008-07-16
CN100589112C (zh) 2010-02-10
JP4889638B2 (ja) 2012-03-07
US20080046680A1 (en) 2008-02-21
BRPI0612995A2 (pt) 2010-12-14

Similar Documents

Publication Publication Date Title
JP4889638B2 (ja) 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路
JP4083200B2 (ja) 検証方法、情報処理装置、記録媒体、検証システム、証明プログラム及び検証プログラム
JP4891902B2 (ja) 電子機器、更新サーバ装置、鍵更新装置
CN101231622B (zh) 基于闪存的数据存储方法和设备、及数据读取方法和设备
CA2622922C (en) Apparatus and method for monitoring and controlling access to data on a computer readable medium
EP1847995A1 (en) Recording device, replay device, integrated circuit, and control program
EP1367581A2 (en) Information recording/reading apparatus and method
JP5034921B2 (ja) 情報処理装置、ディスク、および情報処理方法、並びにプログラム
JP2003228284A (ja) データ保存装置、データ保存方法、データ検証装置、データアクセス許可装置、プログラム、記録媒体
US9129139B2 (en) Solid state memory and method for protecting digital contents by interrupting copying or accessing and proceeding only upon user verification or authentication
US8984658B2 (en) Copyright protection data processing system and reproduction device
JP3712366B2 (ja) 情報処理システム、実行可能モジュール生成方法および記憶媒体
JP4276293B2 (ja) 著作権保護データ処理システム、及び再生装置
JP2002344441A (ja) ディジタルデータ暗号システム、ディジタルデータ再生装置、ディジタルデータ暗号方法、ディジタルデータ再生方法およびそれらの方法をコンピュータに実行させるプログラム
JP4807289B2 (ja) 情報処理装置及びファイル処理方法並びにプログラム
CN106611108B (zh) 一种光盘版权保护方法
JP2007249333A (ja) インストール方法、インストール制御プログラム、及び記憶媒体
US20090310455A1 (en) Optical Disc Reproducing Apparatus, In-Vehicle Optical Disc Reproducing Apparatus, In-Vehicle Optical Disc Reproducing System, and Optical Disc Reproducing Method
JP4597651B2 (ja) メディア内のデータのリッピングを制御するための情報処理ユニット、方法及びプログラム
JP2006054919A (ja) データアクセス許可装置
KR20080014881A (ko) 기록 매체, 데이터 재생 장치, 데이터 재생 방법, 데이터저장 장치, 그리고 데이터저장 방법
JP4591755B2 (ja) インストールプログラム、記憶媒体、コンテンツ再生装置及び耐タンパモジュール更新方法
KR20080012724A (ko) 기록매체, 데이터 기록방법 및 기록장치와 데이터 재생방법및 재생장치
JP2005128637A (ja) ドライブ検査方法、及びドライブ検査プログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680025766.9

Country of ref document: CN

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

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2007524688

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 5081/KOLNP/2007

Country of ref document: IN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06768162

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: PI0612995

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20080114