JPWO2007007805A1 - Verification method, verification program, recording medium, information processing apparatus, integrated circuit - Google Patents
Verification method, verification program, recording medium, information processing apparatus, integrated circuit Download PDFInfo
- Publication number
- JPWO2007007805A1 JPWO2007007805A1 JP2007524688A JP2007524688A JPWO2007007805A1 JP WO2007007805 A1 JPWO2007007805 A1 JP WO2007007805A1 JP 2007524688 A JP2007524688 A JP 2007524688A JP 2007524688 A JP2007524688 A JP 2007524688A JP WO2007007805 A1 JPWO2007007805 A1 JP WO2007007805A1
- Authority
- JP
- Japan
- Prior art keywords
- verification
- information
- virtual machine
- processing apparatus
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
仮想マシンは、インタフェース等、実装に必要な情報が公開されているため、誰でも仮想マシンを実装することができる。そのため、仮想マシンを不正に実装することで、その上で稼動するプログラムに正規の動作ではなく、不正な動作をさせることが可能となる。プログラムが、仮想マシンの特定のメモリ情報と、プログラム自身が持つ検証用情報を検証ルールに基づいて比較することで、自身を稼動させる仮想マシンが正規に実装されたものであることを検証して、不正な仮想マシンを排除する。Since information necessary for mounting, such as an interface, is disclosed to the virtual machine, anyone can mount the virtual machine. Therefore, by improperly mounting a virtual machine, it is possible to cause a program running on the virtual machine to perform an illegal operation instead of a normal operation. The program compares the specific memory information of the virtual machine with the verification information that the program itself has, based on the verification rules, and verifies that the virtual machine that operates itself is properly implemented. , Eliminate rogue virtual machines.
Description
本発明は、プログラムの実行に仮想マシンを用いる機器に関連し、特に、仮想マシンが実装されるプラットフォームの正当性を判断し、該プラットフォームが不正な場合に、排除する技術に関する。 The present invention relates to a device that uses a virtual machine for program execution, and more particularly, to a technique for determining the legitimacy of a platform on which a virtual machine is mounted and eliminating the platform when the platform is illegal.
近年、プログラムをOSやCPU等のプラットフォームに依存させずに稼動させるため、仮想マシンが利用されている。一般的に、仮想マシンはソフトウェア実装されており、インタフェース等、実装に必要な情報が公開されているため、誰でも仮想マシンを実装することができる。 In recent years, virtual machines have been used to run programs without depending on platforms such as OS and CPU. Generally, a virtual machine is implemented by software, and information necessary for implementation such as an interface is disclosed, so anyone can implement a virtual machine.
そのため、仮想マシンを不正に実装することで、その上で稼動するプログラムに正規の動作ではなく、不正な動作をさせることが可能となる。そのプログラムが、例えば、映画等のコンテンツの著作権を保護するプログラムである場合、不正にコンテンツを再生されることにつながる。
本発明は、上記の問題点に鑑み、プログラムが、自身を稼動させる仮想マシンが正規に実装されたものであることを検証できる情報処理方法を提供することを目的とする。Therefore, by improperly mounting a virtual machine, it is possible to cause a program running on the virtual machine to perform an illegal operation instead of a normal operation. When the program is a program that protects the copyright of content such as a movie, for example, the content is illegally reproduced.
In view of the above problems, an object of the present invention is to provide an information processing method by which a program can verify that a virtual machine that operates itself is normally installed.
上記課題を解決するために、本発明では、内部に含んだ仮想マシンによりコンテンツの再生に係る処理を実行する情報処理装置において用いられる検証方法であって、前記コンテンツと共に記録媒体に記録されている検証プログラムを読み出す読出ステップと、前記検証プログラムを前記仮想マシンが実行することにより、前記仮想マシンを含む前記情報処理装置の正当性を検証する検証ステップとを含むことを特徴とする検証方法を提供する。 In order to solve the above problems, the present invention is a verification method used in an information processing apparatus for executing processing related to content reproduction by a virtual machine included therein, and is recorded on a recording medium together with the content A verification method comprising: a reading step of reading a verification program; and a verification step of verifying the validity of the information processing apparatus including the virtual machine by executing the verification program by the virtual machine. To do.
上述の検証方法を用いることにより、検証プログラムが、自身を稼働させる仮想マシンが正規に実装されたものであるか否かを検証することができる。
また、前記検証ステップは、前記検証プログラムが、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを、前記検証プログラムが判断する判断ステップとを含むこととしてもよい。By using the verification method described above, the verification program can verify whether or not the virtual machine that operates itself is properly implemented.
The verification step is based on the acquisition step in which the verification program acquires, as verification information, a value held at a predetermined memory address of the information processing apparatus, and the verification information acquired by the acquisition step. Thus, the verification program may determine whether the information processing apparatus is valid.
上述の検証方法では、所定のメモリアドレスに保持されている値を用いて情報処理装置の検証を行う。
したがって、検証を行うための値が保持されているメモリアドレスを知らないと、仮想マシンを実装することができない。そのため、メモリアドレスを知らない不正な第三者が不正な仮想マシンを実装するのを困難にすることができる。In the verification method described above, the information processing apparatus is verified using a value held at a predetermined memory address.
Therefore, a virtual machine cannot be implemented without knowing the memory address that holds the value for verification. This makes it difficult for an unauthorized third party who does not know the memory address to mount 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 related to reproduction of the content. The verification method further includes the information processing as a result of the verification. When the device is illegal, it may include a suppression step for suppressing execution of the processing procedure related to the reproduction of the content.
As a result, it is possible to prevent content reproduction from being executed in an unauthorized virtual machine.
また、前記コンテンツは、所定の復元処理によって復元できるよう変形されており、前記コンテンツの再生に係る処理手順は、変形されている前記コンテンツを、前記復元処理により復元する手順を含み、前記抑制ステップは、前記復元処理の実行を抑制することとしてもよい。
これにより、例えばコンテンツが著作権保護等を目的として変形されている場合に、不正な仮想マシンではコンテンツの復元処理が実行されないようにすることができる。Further, the content is modified so that it can be restored by a predetermined restoration process, and the processing procedure relating to the reproduction of the content includes a procedure for restoring the transformed content by the restoration process, and the suppressing step May suppress the execution of the restoration process.
Thereby, for example, when the content is deformed for the purpose of copyright protection or the like, it is possible to prevent the content restoration processing from being executed in an unauthorized virtual machine.
また、前記検証情報とは、タイミングによって変化する情報であることとしてもよい。
上述の検証方法によると、検証情報としてタイミングによって変化する情報を用いるため、不正解析者が検証情報を保持するメモリアドレスを特定できた場合であっても、正当な検証情報の値を特定することが難しくなる。
したがって、不正な第三者が、検証プログラムによる検証を通過することのできる実行環境を不正に実装することが困難になる。The verification information may be information that changes according to timing.
According to the verification method described above, information that changes depending on the timing is used as verification information, so that even if a fraudulent analyst can identify the memory address that holds the verification information, the value of valid verification information must be specified. Becomes difficult.
Therefore, it becomes difficult to illegally implement an execution environment in which an unauthorized third party can pass verification by the verification program.
また、前記検証情報とは、前記再生を行うコンテンツに関する情報であることとしてもよい。
上述の検証方法によると、検証プログラムは、再生されるコンテンツに関する情報に基づいて、情報処理装置の正当性を検証する。
これにより、検証プログラムは、再生されるコンテンツが、当該検証プログラムと共に用いられるべきコンテンツであるか否かを検証することができる。The verification information may be information related to the content to be reproduced.
According to the verification method described above, the verification program verifies the legitimacy of the information processing apparatus based on the information regarding the content to be reproduced.
Thereby, the verification program can verify whether or not the content to be reproduced is content to be used with the verification program.
したがって、上述の検証方法は、例えば、不正な第三者が、正当な検証プログラムを複製し、他のコンテンツの再生時に、複製した検証プログラムを読み込ませることによって当該他のコンテンツについての検証を通過させるような不正についても防止することができる。
また、前記検証情報とは、前記仮想マシンを含む実行環境に依存する情報であることとしてもよい。Therefore, the above-described verification method allows, for example, an unauthorized third party to copy a valid verification program and pass the verification of the other content by reading the copied verification program when reproducing the other content. It is also possible to prevent fraud that causes
The verification information may be information depending on an execution environment including the virtual machine.
これにより、検証プログラムは、当該検証プログラムを実行する実行環境が、正当な検証情報を知らない不正な第三者が実装した実行環境であるか否かを検証することができる。
また、前記記録媒体には、さらに、検証値と、検証ルールとが対応づけて記録されており、前記判断ステップは、前記取得ステップにより取得された前記検証情報と、前記記録媒体に記録された前記検証値とを、前記検証値に対応づけられている前記検証ルールに基づいて比較する比較ステップを含み、前記判断ステップは、前記比較の結果、前記検証ルールを満たす場合に、前記情報処理装置が正当であると判断することとしてもよい。Thereby, 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.
Further, a verification value and a verification rule are recorded in association with each other on the recording medium, and the determination step is recorded on the recording medium and the verification information acquired by the acquisition step. The information processing apparatus includes a comparison step of comparing the verification value with the verification rule associated with the verification value, and the determination step satisfies the verification rule as a result of the comparison May be determined to be valid.
これにより、検証値と検証ルールを知らない不正な第三者が、不正な仮想マシンを実装するのを困難にすることができる。
また、前記取得ステップは、検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととしてもよい。This makes it difficult for an unauthorized third party who does not know the verification value and the verification rule to mount an unauthorized virtual machine.
The obtaining step includes a requesting step for requesting a value held at the predetermined memory address at a verification timing, and the verification method further includes the predetermined step in response to the request by the requesting step. A return step of reading the value held at the memory address of the received information and returning the read value to the verification program as the verification information, wherein the acquisition of the acquisition step includes the return of the response to the request It is acquisition of verification information, and the comparison step may perform the comparison using the verification information acquired by the reply.
また、前記記録媒体には、さらに、複数の前記検証値が、検証のタイミングと対応づけて記録されており、前記比較ステップは、前記検証のタイミングにおいて前記取得した検証情報と、前記検証のタイミングに対応づけられている前記検証値および前記検証ルールを用いて前記比較を行い、前記判断ステップは、前記検証のタイミングになる度に、前記比較ステップを繰り返し実行させる繰り返しステップと、前記繰り返しの結果、前記検証情報と前記検証値とが所定回数以上前記検証ルールを満たさない場合に、前記情報処理装置が不正であると決定する決定ステップとを含むこととしてもよい。 Further, a plurality of the verification values are recorded in the recording medium in association with the verification timing, and the comparison step includes the verification information acquired at the verification timing and the verification timing. The comparison is performed using the verification value and the verification rule that are associated with each other, and the determination step includes a repetition step of repeatedly executing the comparison step every time the verification timing is reached, and a result of the repetition And a determination step of determining that the information processing apparatus is illegal when the verification information and the verification value do not satisfy the verification rule a predetermined number of times or more.
上述の検証方法では、所定回数以上検証ルールを満たさない場合に、情報処理装置が不正であると決定するので、検証の精度を向上させることができる。
また、前記記録媒体には、複数の前記検証値の各々が、前記仮想マシンを一意に識別する識別情報と対応づけられて記録されており、前記比較ステップは、前記情報処理装置に含まれる仮想マシンの識別情報と対応する検証値を用いて前記比較を行うこととしてもよい。In the verification method described above, when the verification rule is not satisfied a predetermined number of times or more, the information processing apparatus is determined to be illegal, so that the verification accuracy can be improved.
In addition, each of the plurality of verification values is recorded in the recording medium in association with identification information that uniquely identifies the virtual machine, and the comparison step includes virtual information included in the information processing apparatus. The comparison may be performed using a verification value corresponding to the identification information of the machine.
これにより、仮想マシンごとに異なる検証値を用いて検証を行うことができる。
また、前記記録媒体には、さらに、検証のタイミングと検証ルールとが対応づけられて記録されており、前記情報処理装置は、さらに、所定のタイミングにおいて前記所定のメモリアドレスに保持されている値を比較用情報として格納している格納手段を備え、前記取得ステップは、前記検証のタイミングにおいて前記所定のメモリアドレスに保持されている値を、前記検証情報として前記取得し、前記判断ステップは、前記検証のタイミングにおいて取得した前記検証情報と、前記格納手段に格納されている比較用情報とを前記検証ルールに基づいて比較する比較ステップを含み、前記判断ステップは、前記比較の結果に基づいて、前記情報処理装置が正当であるか否かの前記判断を行うこととしてもよい。As a result, verification can be performed using different verification values for each virtual machine.
The recording medium further records a verification timing and a verification rule in association with each other, and the information processing apparatus further stores a value held at the predetermined memory address at a predetermined timing. Is stored as comparison information, and the acquisition step acquires the value held at the predetermined memory address at the verification timing as the verification information, and the determination step includes: A comparison step of comparing the verification information acquired at the verification timing with the comparison information stored in the storage unit based on the verification rule, and the determination step is based on the result of the comparison The determination as to whether the information processing apparatus is valid may be made.
また、前記取得ステップは、前記検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととしてもよい。 Further, the obtaining step includes a requesting step for requesting a value held at the predetermined memory address at the timing of the verification, and the verification method further includes the requesting step according to the request by the requesting step. A reply step of reading a value held at a predetermined memory address and returning the read value to the verification program as the verification information, wherein the acquisition of the acquisition step is the reply to the request The verification information may be acquired, and the comparison step may perform the comparison using the verification information acquired by the reply.
また、前記情報処理装置は、さらに、乱数を生成する乱数生成部を備え、前記検証方法は、さらに、前記検証のタイミングになるごとに、前記乱数生成部に乱数を生成させ、生成された乱数を、前記所定のアドレスに保持させる乱数保持ステップを含み、前記取得ステップは、前記検証のタイミングにおいて、前記乱数保持ステップにより前記保持された前記乱数を読み出すことで前記検証情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報と、前記比較用情報とが異なる場合に、前記情報処理装置が正当であると判断することとしてもよい。 Further, the information processing apparatus further includes a random number generation unit that generates a random number, and the verification method further causes the random number generation unit to generate a random number every time the verification timing comes. Including the random number holding step of holding the verification information at the predetermined address, and the acquiring step performs the acquisition of the verification information by reading the random number held by the random number holding step at the verification timing, The determination step may determine that the information processing apparatus is valid when the verification information is different from the comparison information as a result of the comparison.
これにより、情報処理装置の正当性の検証に乱数を用いるという実装を知らない不正な第三者が、不正な仮想マシンを実装するのを困難にすることができる。
また、前記乱数生成部は、前記仮想マシンを含む実行環境に依存する情報に基づいて、前記生成を行うこととしてもよい。
これにより、実行環境が異なる場合に、乱数生成部が各実行環境で同じ乱数を生成する可能性が低くなる。This makes it difficult for an unauthorized third party who does not know the implementation of using a random number to verify the validity of the information processing apparatus to implement an unauthorized virtual machine.
The random number generation unit may perform the generation based on information depending on an execution environment including the virtual machine.
This reduces the possibility that the random number generation unit generates the same random number in each execution environment when the execution environments are different.
また、前記情報処理装置は、さらに、時刻を計時して前記所定のメモリアドレスに書き込む計時部を備え、前記格納手段は、所定のタイミングにおいて前記所定のメモリアドレスに書き込まれている前記時刻を比較用情報として格納しており、前記取得ステップは、前記検証のタイミングにおいて、前記所定のメモリアドレスに書き込まれている前記時刻を読み出すことで前記検証情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報に示される時刻が、前記比較用情報に示される時刻よりも増加している場合に、前記情報処理装置が正当であると判断することとしてもよい。 Further, the information processing apparatus further includes a time measuring unit that measures time and writes the time to the predetermined memory address, and the storage unit compares the time written to the predetermined memory address at a predetermined timing. The acquisition step performs the acquisition of the verification information by reading the time written in the predetermined memory address at the timing of the verification, and the determination step includes: As a result of the comparison, when the time indicated in the verification information is increased from the time indicated in the comparison information, the information processing apparatus may determine that the information processing apparatus is valid.
これにより、情報処理装置の正当性の検証に時刻を用いるという実装を知らない不正な第三者が、不正な仮想マシンを実装するのを困難にすることができる。
また、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置であって、前記記録媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、前記情報処理装置は、前記記録媒体から前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備えることとしてもよい。Thereby, it is possible to make it difficult for an unauthorized third party who does not know the implementation to use time to verify the validity of the information processing apparatus to implement an unauthorized virtual machine.
An information processing apparatus that executes processing related to reproduction of content recorded on a recording medium and includes a virtual machine therein, wherein the recording medium is executed on the virtual machine, A verification program for verifying the validity of the information processing apparatus is recorded, and the information processing apparatus reads the verification program from the recording medium and a verification timing at a predetermined memory address of the information processing apparatus. Receiving means for receiving a value request held in the verification program from the verification program, and reply means for reading the value held in the predetermined memory address and returning the read value to the verification program when the request is received It is good also as providing.
また、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置に搭載される集積回路であって、前記記録媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、前記集積回路は、前記記録媒体から前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備えることとしてもよい。 Further, the integrated circuit is mounted on an information processing apparatus that executes a process related to reproduction of content recorded on a recording medium and includes a virtual machine, and the recording medium is executed on the virtual machine. As a result, a verification program for verifying the validity of the information processing apparatus is recorded, and the integrated circuit reads out the verification program from the recording medium, and a predetermined memory address of the information processing apparatus Receiving means for receiving a request for a value held at the timing of verification from the verification program; reading the value held at the predetermined memory address when receiving the request; and reading the read value into the verification program It is good also as providing the reply means which replies to.
また、コンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の正当性を検証する検証プログラムを記録している記録媒体であって、前記検証プログラムは、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含むこととしてもよい。 Further, the recording medium stores a verification program for executing processing related to content reproduction and verifying the validity of the information processing apparatus including the virtual machine, and the verification program is stored in the information processing apparatus. An acquisition step of acquiring a value held at a predetermined memory address as verification information, and a determination of whether or not the information processing apparatus is valid based on the verification information acquired by the acquisition step It is good also as including a step.
また、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の正当性を検証する処理を、前記情報処理装置に実行させる検証プログラムであって、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含むこととしてもよい。 Further, a verification program for executing processing related to reproduction of content recorded in a recording medium and causing the information processing device to execute processing for verifying the validity of the information processing device including a virtual machine therein, Based on the acquisition step of acquiring, as verification information, a value held at a predetermined memory address of the information processing device, and whether or not the information processing device is valid based on the verification information acquired by the acquisition step And a determination step for determining whether or not.
以上、説明したように、本発明によれば、プログラムにより、自身を稼動させる仮想マシンが正規に実装されたものであることを検証できる情報処理方法を提供できるという効果を有する。 As described above, according to the present invention, there is an effect that it is possible to provide an information processing method capable of verifying that a virtual machine that operates itself is normally mounted by a program.
101、801、1201 情報処理装置
102、802、1202 記録媒体
111 ディスク読込部
112 ユーザ操作受付部
113 仮想マシン実行部
114 情報保持部
115 仮想マシン実行コード
117 検証値テーブル識別情報
118 作業情報保持部
121 仮想マシンコード
1151 検証値取得モジュール
1154 仮想マシンコード実行モジュール
1121 仮想マシン検証モジュール
1122 検証情報モジュール
1123 コード依存処理モジュール
400 仮想マシン毎の検証ルールテーブル
401 アドレス
402 検証タイミング
403 検証値
404 検証ルール
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 秘密情報計算用割り込み管理情報101, 801, 1201
以下、発明を実施するための最良の形態を、図面を参照しながら説明する。
(実施の形態1)
図1を使って、本発明の一実施形態に係る記録媒体、及び情報処理装置について説明する。
記録媒体102には、仮想マシン上で動作するプログラムである、仮想マシンコード121が記録されている。記録媒体102の一実装例としては、BD(Blu−ray Disc)であるが、それに限るものではない。さらに、仮想マシンコード121は、仮想マシン検証モジュール1121、検証情報保持モジュール1122、コード依存処理モジュール1123から構成される。各モジュールの詳細は後述する。The best mode for carrying out the invention will be described below with reference to the drawings.
(Embodiment 1)
A recording medium and an information processing apparatus according to an embodiment of the present invention will be described with reference to FIG.
The recording medium 102 stores a virtual machine code 121 that is a program that operates on the virtual machine. An example of implementation of the recording medium 102 is a BD (Blu-ray Disc), but is not limited thereto. Further, the virtual machine code 121 includes a virtual machine verification module 1121, a verification
情報処理装置101は、仮想マシンを使って、仮想マシンコード121を実行する装置であり、図1に示すように、ディスク読込部111、ユーザ操作受付部112、仮想マシン実行部113、情報保持部114、作業情報保持部118から構成される。仮想マシンとは、CPUやOS等のプラットフォームに依存せずに、プログラムを動作させるために、仮想マシンコード121として実装されたプログラムを、プラットフォーム用のネイティブコードに変換して実行するソフトウェアである。具体的には、例えば仮想マシンはJava(登録商標)仮想マシンであり、仮想マシンコード121はJava(登録商標)バイトコードであるが、これに限るものではない。 The information processing apparatus 101 is an apparatus that executes a virtual machine code 121 using a virtual machine. As illustrated 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. The virtual machine is software that converts a program implemented as the virtual machine code 121 into a native code for the platform and executes it in order to operate the program without depending on a platform such as a CPU or OS. Specifically, for example, the virtual machine is a Java (registered trademark) virtual machine, and the virtual machine code 121 is a Java (registered trademark) byte code, but is not limited thereto.
情報処理装置101の一実装例としては、CPU、ワークメモリ、フラッシュメモリ、BDドライブ、リモートコントローラとから構成されるコンピュータシステムであり、ディスク読込部111はBD(Blu−ray Disc)ドライブであり、情報保持部114はフラッシュメモリであり、ユーザ操作受付部112はリモートコントローラであり、作業情報保持部118はワークメモリであり、仮想マシン実行部113は、CPUとワークメモリを用いて動作するソフトウェアで構成する方法が挙げられるが、他にも、ハードウェアでの実装など、ソフトウェアによる構成に限定されるものではない。その他の実装形態についても、これに限定されるものではない。 As an implementation example of the information processing apparatus 101, a computer system including a CPU, work memory, flash memory, BD drive, and remote controller, the disk 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, and the virtual machine execution unit 113 is software that operates using a CPU and a work memory. Although there is a configuration method, the configuration is not limited to software configuration such as hardware implementation. Other implementations are not limited to this.
また、情報保持部114には、仮想マシン実行コード115と、仮想マシン識別情報117が保持されている。仮想マシン実行コード115は、ソフトウェアであり、検証値取得モジュール1151、仮想マシンコード実行モジュール1154から構成される。各モジュールの詳細は後述する。
仮想マシン識別情報117は、仮想マシンを識別するための情報であり、例えば、「情報処理装置メーカID+情報処理装置のモデル番号+仮想マシンのバージョン番号」などで構成される8バイトのデータであるが、仮想マシンを一意に特定できる情報であれば、これに限るものではない。The information holding unit 114 holds a virtual machine execution code 115 and virtual
The virtual
ここで、検証情報の作成について説明する。正規の仮想マシン実行コード115の提供者は、図4に示すような仮想マシン毎に固有の検証ルールテーブルと仮想マシン識別情報117を仮想マシン管理機関に提出する。なお、上記検証ルールテーブルは仮想マシンが搭載されている再生装置毎の検証ルールテーブル、識別情報であっても良い。仮想マシン管理機関は、仮想マシンコードの実装者に対し、正規の仮想マシンの検証ルールテーブルと仮想マシン識別情報117を提供する。仮想マシンコードの実装者は、これを基に検証情報を作成する。図4は仮想マシン毎(再生装置毎)に固有の検証ルールテーブルであり、例えば、検証に使用するアドレス401と、いつ検証するかを示す検証タイミング402と、その時にアドレス401がどのような値をとっているかを示す検証値403と、その値がどのような状態であれば検証が成功なのかを示す検証ルール404などで構成される。アドレス401は図4にあるように、特定のアドレスや、特定のアドレスの範囲を表す。検証ルールテーブルは図4のようなテーブル構成に限定されるものではない。 Here, creation of verification information will be described. The provider of the regular virtual machine execution code 115 submits a verification rule table and virtual
なお、本実施の形態では、記録媒体102として、BDを想定し、そこに記録された仮想マシンコード121をディスク読込部111にて情報処理装置101に取り込んでいるが、それに限るものではなく、例えば、ディスク読込部111をインターネット接続部に置き換え、仮想マシンコード121をインターネット経由で情報処理装置101に取り込む等、他の方法で仮想マシンコード121を情報処理装置101に取り込んでもよい。 In the present embodiment, a BD is assumed as the recording medium 102, and the virtual machine code 121 recorded therein is taken into the information processing apparatus 101 by the disk reading unit 111. However, the present invention is not limited to this. For example, the virtual machine code 121 may be imported into the information processing apparatus 101 by other methods such as replacing the disk reading unit 111 with the Internet connection unit and capturing the virtual machine code 121 into the information processing apparatus 101 via the Internet.
以上で、本発明の一実施形態に係る記録媒体、及び情報処理装置についての説明を終わる。
(仮想マシンコードの実行)
次に、図2を使って、情報処理装置101での仮想マシンコードの実行について説明する。This completes the description of the recording medium and the information processing apparatus according to the embodiment of the present invention.
(Virtual machine code execution)
Next, execution of virtual machine code in the information processing apparatus 101 will be described with reference to FIG.
まず、情報処理装置101はユーザ操作受付部112を通じて、記録媒体102上の仮想マシンコード121を実行するよう指示を受けることで処理が開始される。
仮想マシンコード121の実行が指示されると、仮想マシン実行部113は、情報保持部114から、仮想マシン実行コード115をロードし、仮想マシンを起動する(S201)。First, the information processing apparatus 101 starts processing upon receiving an instruction to execute the virtual machine code 121 on the recording medium 102 through the user operation receiving unit 112.
When the execution of the virtual machine code 121 is instructed, the virtual machine execution unit 113 loads the virtual machine execution code 115 from the information holding unit 114 and starts the virtual machine (S201).
次に、ディスク読込部111を通じて記録媒体102から、仮想マシンコード121を読み出し、仮想マシン実行部113が仮想マシン上で仮想マシンコード121を起動する(S202)。
仮想マシン上で起動された仮想マシンコード121は、仮想マシン検証モジュール1121、及び検証情報保持モジュール1122を用いて、自身を実行している仮想マシンを含む実行環境の正当性の検証タイミング402かどうかチェックを行う(S203)。Next, 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 (S202).
Whether the virtual machine code 121 started on the virtual machine is the
そして、検証タイミング402だった場合、仮想マシンを含む実行環境の正当性の検証を行う(S204)。この処理の詳細については、後述する。
S204の検証結果を判定し(S205)、NGの場合、NGの回数が規定回数になったかどうか確認する(S208)。ここで、NGが規定回数以上である場合、仮想マシンコード121は自身の実行を終了するように実装されているため、その実行を終了する。If it is the
The verification result of S204 is determined (S205), and in the case of NG, it is confirmed whether the number of NG has reached the specified number (S208). Here, when NG is equal to or greater than the specified number of times, the virtual machine code 121 is mounted so as to end its own execution, and therefore ends its execution.
S208でNGが規定回数に達していない場合は、S203からやり直す。規定回数は1回でもよいし、複数回でもよく、複数にすれば検証の精度を向上させる効果が得られる。
S205で検証結果がOKの場合、仮想マシンコード121中のコード依存処理モジュール1123で定義されたコード依存処理を実行する(S206)。コード依存処理モジュール1123には、仮想マシンコード121毎に異なる処理が定義されており、例えば、記録媒体102に別途記録された映画等のコンテンツ122の著作権保護処理として、コンテンツ122の復号処理を行うが、これに限るものではない。If NG has not reached the specified number in S208, the process starts again from S203. The prescribed number of times may be one time or a plurality of times, and the effect of improving the accuracy of verification can be obtained by using a plurality of times.
If the verification result is OK in S205, the code dependency processing defined by the code dependency processing module 1123 in the virtual machine code 121 is executed (S206). The code-dependent processing module 1123 defines different processes for each virtual machine code 121. For example, as a copyright protection process for the content 122 such as a movie recorded separately on the recording medium 102, a decryption process for the content 122 is performed. Yes, but not limited to this.
コード依存処理が終了した時点で、仮想マシンコード121の実行を終了する(S207)。
以上で、情報処理装置101での仮想マシンコード121の実行についての説明を終わる。
(仮想マシンを含む実行環境の正当性検証)
仮想マシンを含む実行環境の正当性検証処理の詳細について説明する。この処理は、仮想マシンコード121によって、自身を実行する仮想マシンを含む実行環境が正規のものかどうかを検証する処理である。When the code-dependent processing is finished, the execution of the virtual machine code 121 is finished (S207).
This is the end of the description of the execution of the virtual machine code 121 in the information processing apparatus 101.
(Verification of execution environment including virtual machines)
Details of the validity verification processing of the execution environment including the virtual machine will be described. This process is a process for verifying whether or not the execution environment including the virtual machine that executes the virtual machine code 121 is genuine.
仮想マシン実行コード115は、インタフェースや処理内容等の実装に必要な情報が公開されているため、誰でも実装することができる。このため、正規の仮想マシン実行コード115でなければ、仮想マシンコード121の実行時に不正な動作を行い、仮想マシンコード121の処理が正しく行われなくなる可能性がある。仮想マシンコード121が、例えば、記録媒体102に別途記録されている映画等のコンテンツ122の著作権を保護するプログラムである場合には、不正にコンテンツ122を再生され、著作権を保護できなくなるため、仮想マシンを含む実行環境の検証処理が必要になる。 The virtual machine execution code 115 can be implemented by anyone because information necessary for the implementation such as the interface and processing contents is disclosed. For this reason, if it is not the regular virtual machine execution code 115, 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. For example, if the virtual machine code 121 is a program that protects the copyright of the content 122 such as a movie that is separately recorded on the recording medium 102, the content 122 is illegally reproduced and the copyright cannot be protected. The execution environment including the virtual machine needs to be verified.
仮想マシンコード121を構成するモジュールについて説明する。仮想マシン検証モジュール1121は、自身を実行する仮想マシンを含む実行環境が正規のものかどうかを検証するモジュールであり、検証情報保持モジュール1122は、仮想マシンを含む実行環境の正当性を検証するための情報である。具体的には、仮想マシンから仮想マシン識別情報117と検証する値を取得し、その値が検証情報保持モジュール1122で保持する検証ルールと合致するかどうかで、仮想マシンを含む実行環境の正当性を検証する。これにより、異なる再生装置にプレーヤモデル番号、メーカ名等を含むデータをコピーしたエミュレータを作成し、例えばコンピュータ上で仮想マシン及び該エミュレータを搭載したとしても、図4の仮想マシン毎の検証ルールテーブル400に合致するようにエミュレータを作成するのは困難であり、検証ルールを満たさないものとなるため、かかる不当なエミュレータ上における再生を阻止することができる。検証処理の詳細については、後述する。 The modules constituting the virtual machine code 121 will be described. The virtual machine verification module 1121 is a module that verifies whether the execution environment including the virtual machine that executes the virtual machine is legitimate. The verification
図5は検証情報保持モジュール1122が保持する検証ルールテーブル500の一例である。検証情報保持モジュール1122が保持する検証ルールテーブル500は、図4で提供された仮想マシン毎の検証ルールテーブル400の一部または全部と、仮想マシン識別情報117の対応を示している。検証情報保持モジュール1122が保持する検証ルールテーブル500で使用する検証ルールは、仮想マシンコード121作成者が検証ルールテーブル400から自由に選択して利用することができ、仮想マシンコード121毎に独自の検証を行うことが可能となる。 FIG. 5 shows an example of the verification rule table 500 held by the verification
次に、仮想マシン実行コード115を構成するモジュールについて説明する。
検証値取得モジュール1151は、仮想マシンコード121中の仮想マシン検証モジュール1121が指定したアドレスを、作業情報保持部118から検索し、そのアドレスに保持されている値を取得するモジュールである。
仮想マシンコード実行モジュール1154は、仮想マシンコード121中のコード依存処理モジュール1123で定義される処理をプラットフォームに依存するネイティブコードに変換しながら、実行するモジュールである。Next, modules constituting the virtual machine execution code 115 will be described.
The verification
The virtual machine code execution module 1154 is a module that executes the process defined by the code dependency processing module 1123 in the virtual machine code 121 while converting it into native code that depends on the platform.
続いて、図3を使って、仮想マシンを含む実行環境の正当性検証処理フローについて説明する。
最初に、図2のS202で仮想マシンコード121を起動すると、仮想マシン検証モジュール1121は、情報保持部114の仮想マシン識別情報117と検証情報保持モジュール1122が保持する検証ルールテーブル500とを比較して、利用する検証タイミング402を検出しておく。例えば、仮想マシン識別情報117が0x0011ff0000011001であったとして、以下の説明を行う。次にS203で、検出された検証タイミングになったときに、以下の検証処理を行う。Subsequently, the validity verification processing flow of the execution environment including the virtual machine will be described with reference to FIG.
First, when the virtual machine code 121 is activated in S202 of FIG. 2, the virtual machine verification module 1121 compares the virtual
まず、仮想マシンコード121は、検証タイミング402に対応するアドレス401を指定して、仮想マシンに検証情報の要求を行う(S301)。例えば、メニュー1を表示した場合に、アドレス0x00ff0001を指定して、検証情報の要求を行う。
仮想マシンは、作業情報保持部118上の指定されたアドレス0x00ff0001に保持されている値を取得し(S302)、その値を検証情報として仮想マシンコード121に返信する(S303)。First, the virtual machine code 121 specifies an
The virtual machine acquires the value held at the designated address 0x00ff0001 on the work information holding unit 118 (S302), and returns the value as verification information to the virtual machine code 121 (S303).
仮想マシンコード121は、返信された検証情報を取得し(S304)、検証情報と検証値403を検証ルール404に基づいて検証し、その結果を図2のS205に渡す。今の例では、検証情報が0xedと同値であれば検証結果はOKであり、それ以外であればNGである。
以上で、仮想マシンを含む実行環境の正当性検証処理の説明を終わる。The virtual machine code 121 acquires the returned verification information (S304), verifies the verification information and the
This is the end of the description of the validity verification processing of the execution environment including the virtual machine.
なお、正規の仮想マシンが指定されたアドレスの情報を取得することができれば、アドレス402は、物理/論理アドレス、実/仮想アドレスを問わない。また仮想マシンは指定されたアドレスをそのまま使用するのではなく、アドレスマップ情報をもとに作業情報保持部118に適したアドレスに変換してから、検証情報を取得するようにしてもよい。アドレスマップ情報は作業情報保持部118の該当領域を示すようにできればよく、静的なだけではなく動的に変化しても対応を管理するように構成すればよい。 It should be noted that the
また、本実施の形態では、検証値のデータ長として、1バイトのデータ長を用いているが、これに限るものではない。
また、作業情報保持部118は全ての領域を、検証値取得モジュール1151で参照できるようにする必要はなく、一部の領域は参照を不可能にするように実装することができ、仮想マシンを含む実装環境の不正な解析に対する耐性を向上させることが可能となる。In this embodiment, a data length of 1 byte is used as the data length of the verification value. However, the present invention is not limited to this.
In addition, the work information holding unit 118 does not need to be able to refer to all areas by the verification
(検証ルールの例)
本実施の形態では、作業情報保持部118上の値を取得して、それを検証情報としていたが、検証情報として用いる値や、検証ルールについて以下に説明する。ただし、これらに限ったものではなく、作業情報保持部118上に展開される値であればいかなる値も検証情報の候補である。(Example of validation rule)
In the present embodiment, a value on the work information holding unit 118 is acquired and used as verification information. Values used as verification information and verification rules will be described below. However, the values are not limited to these, and any value that is developed on the work information holding unit 118 is a candidate for verification information.
(1)コンテンツに関する情報
例えば図5の検証情報保持モジュール1122が保持する検証ルールテーブル500では、初期動画再生時にアドレス0x00110044〜0x001100ffのデータの中にコンテンツ122のインデックスファイルのタイムスタンプと同じ値が入っていれば検証OKとなる。このように正規の仮想マシンを含む実行環境ではコンテンツに関連する情報をあるタイミングで作業情報保持部118上の特定の領域に格納するようにすることで、実際に仮想マシンコード121実行時に、その特定の領域に規定の情報が存在するかどうかを検証することで、正当性の評価を行うようにできる。なお、アドレスは範囲指定ではなく、1つのアドレスでもよい。アドレス、検証タイミングとも仮想マシンを含む実行環境に依存する。(1) Information related to content For example, in the verification rule table 500 held by the verification
上記以外にコンテンツに関連する情報としては、インデックスファイルやナビゲーションファイル、その他記録媒体102に格納されているファイルのファイルサイズやタイムスタンプが利用できる。また、記録媒体102に格納されているプレイリストやプレイアイテムの数、コンテンツハッシュテーブルの一部または全部の値、あるボタンをクリックした際の音情報の一部または全部のデータ、インデックステーブルのハッシュ値の一部または全部、などコンテンツに関連する情報であればいかなる情報も利用可能である。 In addition to the information described above, the file size and time stamp of an index file, a navigation file, and other files stored in the recording medium 102 can be used as information related to the content. Also, the number of playlists and play items stored in the recording medium 102, some or all values of the content hash table, some or all data of sound information when a certain button is clicked, hash of the index table Any information can be used as long as it is information related to the content, such as part or all of the value.
(2)仮想マシンを含む実行環境に依存する情報
例えば図6のように情報処理装置101にさらに乱数生成部601を追加し、仮想マシンコード121の指示で乱数生成部601を動作させるように実装する。そして、図5の検証情報保持モジュール1122が保持する検証ルールテーブル500のように、ディスク挿入時に仮想マシンを含む実行環境に乱数を生成させ、アドレス0x00aa0010に格納させ、仮想マシンコード121はその値を保持する。その後、再生開始時やユーザ操作時に同一アドレスに、再度乱数を生成・格納させ、仮想マシンコード121は新たに生成した乱数を取得して、先に保持していた乱数と比較して値が変更されていれば検証OKとする。不正な仮想マシンが、乱数生成機能がない場合や、どこに乱数を書き込むのかを分かっていない場合には、検証OKにはならない。なお、乱数のシードにはアドレスや仮想マシン識別情報117など仮想マシンを含む実行環境毎に異なる値にすれば、同じ乱数を生成する可能性が低くなる。(2) Information Dependent on Execution Environment Including Virtual Machine For example, as shown in FIG. 6, a random number generation unit 601 is further added to the information processing apparatus 101 and the random number generation unit 601 is operated in accordance with an instruction from the virtual machine code 121 To do. Then, as in the verification rule table 500 held by the verification
また、仮想マシンは実装状態によって使用するメモリなどのリソースが異なる。ここで例えば、仮想マシンコード121実行中の作業情報保持部118の空き領域が特定の値の範囲に収まっていれば検証OKとすることもできる。この場合不正な仮想マシンが動作する環境でにおいて、使用しているメモリサイズが違えば、検証OKにはならない。
上記以外に仮想マシンを含む実行環境に依存する情報としては、ハッシュ計算値(例えば、仮想マシンコードの直前の戻り値を使用するなど)、コンテンツに関する情報だが情報処理装置101毎に表示する内容が違う情報(例えば、メニューのボタンの数、再生できる音声や映像の違いなど)、などの情報が利用できる。In addition, virtual machines have different resources such as memory used depending on the mounting state. Here, for example, if the vacant area of the work information holding unit 118 during execution of the virtual machine code 121 is within a specific value range, the verification may be OK. In this case, if the memory size being used is different in an environment where an unauthorized virtual machine operates, verification is not OK.
Other than the above, the information depending on the execution environment including the virtual machine includes a hash calculation value (for example, using a return value immediately before the virtual machine code), information related to the content, but information displayed for each information processing apparatus 101. Different information (for example, the number of menu buttons, the difference in sound and video that can be played back, etc.) can be used.
このように仮想マシンを含む実行環境に固有の機能や実装状態、その他の情報に依存するあらゆる値を検証に利用することが可能である。
(3)時間やタイミングに依存する情報
例えば図7のように情報処理装置101にさらに計時部701を追加する。計時部701は現在時刻を計時し、作業情報保持部118の特定の領域に書き込むように実装する。そして、図5の検証情報保持モジュール1122が保持する検証テーブルルール500のように、仮想マシンコード121は、ディスク挿入時に0x00eee002から現在時刻を取得して、保持し、次にクリップファイル切り替わり時に同一アドレスから現在時刻を取得して、前回保持した時刻と比較し、増加していれば検証OKとする。この場合、単に値が変更されているだけではなく、必ず増加しているという検証ルールが設定されているため、この実装を知っていないと、不正な実行環境を作成することはできない。In this way, it is possible to use all values depending on functions, mounting states, and other information unique to the execution environment including the virtual machine for verification.
(3) Information Dependent on Time and Timing For example, a timer 701 is added to the information processing apparatus 101 as shown in FIG. The clocking unit 701 is mounted so as to clock the current time and write it in a specific area of the work information holding unit 118. Then, as in the
また、あるタイトルを再生中には早送り禁止になっている場合があり、そのタイトルを再生しているタイミングでは、作業情報保持部118の特定の領域に早送り禁止の情報を保持する。この場合、該当のタイトル再生時に、その特定の領域にある現在の状態をチェックして、早送り禁止を示す情報であれば検証OKとする。
上記以外に時間やタイミングに依存する情報としては、情報処理装置101に関するシステムパラメータや動作パラメータなど、また、現在再生しているチャプタ番号、現在再生しているストリームに含まれる時間情報(例えば、ATS、PTS、PCRなど)、などの情報が利用できる。Further, there is a case where fast-forwarding is prohibited during playback of a certain title. At the timing when the title is played back, information on prohibiting fast-forwarding is held in a specific area of the work information holding unit 118. In this case, when the corresponding title is reproduced, the current state in the specific area is checked, and if it is information indicating that fast-forwarding is prohibited, the verification is OK.
In addition to the above, information depending on time and timing includes system parameters and operation parameters related to the information processing apparatus 101, chapter number currently being played back, time information included in the stream being played back (for example, ATS) , PTS, PCR, etc.) can be used.
このように時間やタイミングで変化する情報であれば、いかなる情報も検証に利用することが可能である。ただし、時間やタイミングで変化するデータであっても、コンテンツ情報自身(暗号状態、復号状態、デコードの前後を問わない)等のように、非常に転送レートが高い情報を対象とすると、所定タイミングのあるアドレスに基づくメモリ内の情報は正当な機器においても正確に予測する事は困難であるため、プレーヤの製造者自身が実質的に予測できる情報を用いることが望ましい。特に、時間やタイミングで変化するデータであって複数回メモリの確認を行いその変化値を確認するルール等の場合には、設定タイミングと確認タイミングをより厳密に同じタイミングで情報を確認することが必要であるが、正確なタイミングで検証ということは現実は難しいため、あまり転送レートが高い情報を用いないか、又は、検証ルール404において正当な機器と判断される検証ルール404を緩くする事が望ましい。 Any information that changes with time or timing can be used for verification. However, even if the data changes with time and timing, if information with a very high transfer rate is targeted, such as content information itself (regardless of encryption state, decryption state, and before and after decoding), the predetermined timing Since it is difficult to accurately predict information in a memory based on a certain address even with a legitimate device, it is desirable to use information that can be substantially predicted by the player manufacturer. In particular, in the case of a rule that checks the memory multiple times and checks the change value for data that changes with time and timing, it is possible to check the information at the exact same timing as the setting timing and the checking timing. Although it is necessary to verify at an accurate timing, it is difficult in reality, so information that has a high transfer rate is not used, or the
検証情報保持モジュール1122が保持する検証ルールテーブル500は上記で説明した情報をどのように組み合わせてもよく、仮想マシンを含む実行環境ごとに固有の検証ルールテーブル500が作成できる。
(実施の形態2)
図8は本発明の実施の形態2における記憶媒体と情報処理装置のシステムモデルを示す図である。The verification rule table 500 held by the verification
(Embodiment 2)
FIG. 8 is a diagram showing a system model of the storage medium and the information processing apparatus in
図8に示すように記憶媒体802には、再生順序やユーザ操作時の挙動を規定しているコマンドプログラム811と、クリップファイルの属性やタイムサーチマップ、プレイリスト、プレイアイテムなどを記述しているクリップファイル関連情報812、映像や音声などのコンテンツを含むクリップファイル813、仮想マシンを含む実行環境の正当性を検証するための検証用コード814、コンテンツの復元処理を行う際に使用する秘密情報用コード815、復元処理を行う際に秘密情報と組み合わせて実際の復元情報を生成するための復元情報ファイル816が含まれる。 As shown in FIG. 8, the
情報処理装置801には、コマンドプログラム811を処理するコマンド処理部822と、ユーザ入力を受け付けてユーザ操作制御部823に送り、また、コンテンツ中の再生タイトルの管理を行うモジュール管理部824と、ユーザ操作に対応する機能を再生制御部827から呼び出して制御するユーザ操作制御部823と、装置状態や処理中の変数を保持するレジスタ826と、クリップファイル関連情報812のプレイリストやプレイアイテムの処理、また、コマンド処理部822やユーザ操作制御部823からの機能の呼び出しの処理を行い、プレゼンテーション処理部831を制御する再生制御部827と、検証用コード814を実行して、仮想マシンを含む実行環境の正当性を検証する検証処理部829と、コンテンツの復元処理に使用する秘密情報を秘密情報用コード815から算出する秘密情報計算部830と、コンテンツの再生や表示を制御するプレゼンテーション処理部831と、復元情報ファイル816と秘密情報をもとに復元情報を生成し、コンテンツの復元をプレゼンテーションエンジンに通知する復元処理部832とを含む。コマンド処理部822とユーザ操作制御部823を含めて動作モジュール821と呼び、レジスタ826と再生制御部827を含めて再生制御処理部825と呼び、また検証処理部829と秘密情報計算部830を含めて仮想マシン828と呼ぶこととする。上記構成は一例であり、情報処理装置801の具体例としてはBDドライブを含む処理装置であり、ハードウェアでの実装やソフトウェアによる構成に限定されるものではない。以下、図8、図9および図10の処理フローを用いてその動作を説明する。 The information processing apparatus 801 includes a
図9は情報処理装置101での検証処理とコンテンツの復元処理の動作を示す図である。
まず、検証処理部829は仮想マシン828が保持している仮想マシン識別情報903を取得し(S1001)、検証用コード814のうち、仮想マシン識別情報903に対応する一部または全部のコードを読み込んで割り込み管理情報904を取得し、保持する(S1002)。割り込み管理情報904は例えばタイトル毎などの再生箇所に応じて、検証用コード814の実行開始場所(PC:プログラムカウンター)を決定するための情報であり、実行開始場所と再生箇所の組み合わせが記述されている。なお、仮想マシン識別情報903は仮想マシンを識別するための情報であり、例えば、「情報処理装置メーカID+情報処理装置のモデル番号+仮想マシンのバージョン番号」などで構成されるデータであるが、仮想マシンを一意に特定できる情報であれば、これに限るものではない。また、仮想マシン識別情報903に署名を付与してその正当性をチェックするようにしてもよい。FIG. 9 is a diagram illustrating operations of verification processing and content restoration processing in the information processing apparatus 101.
First, the
次に、モジュール管理部824は、今から再生するタイトル番号を含めて、検証処理部829に検証処理の開始を指示する(S1003)。
検証処理部829は、指示に含まれるタイトル番号をもとに、割り込み管理情報904から該当のPCを取得し、検証用コード814を取得したPCから実行する(S1004)。Next, the
Based on the title number included in the instruction, the
次に、実行された検証用コード814は、検証する際に参照するメモリ領域を含む検証情報メモリ902を参照して、仮想マシンを含む実行環境の検証を行う(S1005)。なお、検証方法の詳細については実施の形態1で示した検証方法を利用することが可能であるため、ここでの詳細な説明は割愛する。
検証結果がOKであれば、そのまま処理を続行する(S1006)。NGの場合には、規定回数に達していなければそのまま処理を続行するが、NGの規定回数に達していれば(S1007)、コンテンツや秘密情報用コード815の一部または全部、またはその他の処理データを保持するメモリ901上の特定箇所のデータを書き換えることにより(S1008)、情報処理装置101が正常に動作しないようにできる。具体的には、再生中に秘密情報計算部830が復元処理に必要な秘密情報用コード815もしくは秘密情報をメモリ901上に保持しているので、その一部または全部を書き換えることにより、復元処理を正常に動作できないようにして、正常な再生をできないようにするという効果が得られる。復元処理については後述する。また、再生中のタイトルの一部もメモリ901上に保持するようにできるので、NGの場合にメモリ901上のタイトルの一部または全部を書き換えることで、不正な仮想マシンを含む実行環境では正常に再生できなくするという効果が得られる。なお、書き換える情報は上記に限らず、上記以外の情報を書き換えても同様の効果が得られる。Next, 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 (S1005). Note that since the verification method described in
If the verification result is OK, the processing is continued as it is (S1006). In the case of NG, if the prescribed number of times has not been reached, the process is continued, but if the prescribed number of NG has been reached (S1007), part or all of the content and
なお、検証結果がNGの場合にメモリ901上の情報を書き換えるとしたが、これに限らず、モジュール管理部824にNGを通知し、モジュール管理部824からの指示で、再生を停止するようにしてもよい。また秘密情報計算部830にNGを通知して秘密情報の算出を停止するようにしてもよく、これに限らず、正常に再生できないようにできれば、その他の構成要素にNGを通知してもよい。 Although the information on the
またS1003の検証処理開始指示は再生タイトルが切り替わる度に発生するものであり、ユーザ操作などによりタイトルが変更になった場合など不定期に発生する。ただし、早送りやまき戻しなどの特殊再生時には、1つの検証処理が終了する前に検証情報メモリ902の内容が変更される恐れがあるため、検証処理開始指示を行わないようにしてもよい。また、現在検証処理を実行している(S1005〜S1007を繰り返している)最中に、別のタイトル番号を含む検証処理開始指示があった場合には、現在の検証処理を終了して、新たなタイトル番号に対応する検証用コード814の実行を行う(S1004からやり直す)。 Further, the verification processing start instruction in S1003 is generated every time the reproduction title is switched, and is generated irregularly, for example, when the title is changed by a user operation or the like. However, at the time of special reproduction such as fast-forwarding or rewinding, the contents of the verification information memory 902 may be changed before one verification process is completed, so that the verification process start instruction may not be issued. If there is a verification process start instruction including another title number during the current verification process (S1005 to S1007 is repeated), the current verification process is terminated and a new The verification code 814 corresponding to the correct title number is executed (re-executed from S1004).
また、S1004の検証用コード814の実行は、S1003の検証開始指示で受け取ったタイトル番号によっては実行しないようにできる。具体的には、検証用コード814生成側で、割り込み管理情報904に、検証用コード814の実行が必要ではないタイトル番号を含めないようにするか、特定のPCを設定して、そのPCの時には実行を行わないように規定するという方法がある。 Further, the execution of the verification code 814 in S1004 may not be executed depending on the title number received in the verification start instruction in S1003. Specifically, the verification code 814 generation side does not include a title number that does not require execution of the verification code 814 in the interrupt management information 904, or a specific PC is set, and the PC's Sometimes there is a way to specify not to execute.
また、検証情報メモリ902とメモリ901は物理的には同一のメモリ上で領域が異なるものとしてもよい。またそれぞれ、参照禁止や書換禁止領域を設定することも可能であり、誤動作防止や不正な解析に対する耐性が高まる効果が得られる。
(復元処理)
上記の復元処理とは以下のような方法がある。Further, the verification information memory 902 and the
(Restore process)
The restoration process includes the following methods.
図8、図9に示すように、まず、秘密情報計算部830は秘密情報用コード815を読み込み、秘密情報計算用割り込み管理情報905を取得し、保持する。秘密情報計算用割り込み管理情報905は、例えば、プレイアイテム番号ごとに、秘密情報用コード815の実行開始位置(秘密情報用PC:プログラムカウンター)を決定するための情報であり、プレイアイテム番号と秘密情報用PCの対応が記述されている。 As shown in FIGS. 8 and 9, first, the secret information calculation unit 830 reads the
復元処理部832は復元情報ファイル816の一部または全部を読み込んで保持する。
再生制御部827は現在どのプレイアイテムのどの位置を再生しているかを管理しており、あるプレイアイテムを再生すると、例えば10秒ごとにそのプレイアイテム番号と何番目の期間かを示す期間情報を秘密情報計算部830に通知する。なお、何番目の期間ではなく、何秒目かを通知しても良い。また、通知のタイミングは10秒ではなく、毎秒や、プレイアイテム切り替わり毎など、定期的または不定期的に通知するようにしてもよい。また、その通知のタイミング情報は秘密情報用コード815に含めて、再生制御部827が秘密情報用コード815からタイミング情報を取得しても良い。The
The
次に秘密情報計算部830は、通知されたプレイアイテム番号をもとに秘密情報計算用割り込み管理情報905から秘密情報用PCを取得し、該当する箇所から秘密情報用コード815を実行する。
実行された秘密情報用コード815は期間情報をもとに、その期間に適切な秘密情報を算出して、復元処理部832に通知する。Next, the secret information calculation unit 830 acquires the secret information PC from the secret information calculation interrupt management information 905 based on the notified play item number, and executes the
The executed
復元処理部832は、復元情報ファイルから再生箇所に適した復元情報を取得し、秘密情報を使用してXOR(Exclusive OR:排他的論理和演算)計算などで復号し、復号した復元情報をプレゼンテーション処理部831に通知する。
プレゼンテーション処理部831は、復元情報に含まれる復元位置のデータと、復元情報に含まれる復元データをXOR計算して上書きする。復元位置は、クリップファイルの先頭からのパケット数や、パケットに付与されている読み出し時間情報、再生時間情報など、復元する位置を一意に特定できる情報であれば良い。The
The presentation processing unit 831 performs XOR calculation on the restoration position data included in the restoration information and the restoration data included in the restoration information, and overwrites them. The restoration position may be information that can uniquely identify the restoration position, such as the number of packets from the beginning of the clip file, read time information, and reproduction time information attached to the packets.
以上により変形されたコンテンツを復元することが可能となり、正常に再生することができる。そこで、例えば上記の検証処理でNGだった場合には秘密情報計算部830が使用しているメモリ901上の領域の一部または全部を書き換えることで、正しい秘密情報を取得できないようにして、正常な再生をできないようにすることが可能となる。なお、書き換えるのは秘密情報用コード815や秘密情報の一部または全部など秘密情報の算出に必要なデータ領域であればよい。 The modified content can be restored as described above, and can be normally played back. Thus, for example, if the verification process is NG, the secret information calculation unit 830 rewrites part or all of the area on the
なお、プレイアイテム番号を使用したが、タイトル番号、プレイリスト番号、プレイアイテム番号およびそれらの組み合わせなど現在再生している位置が一意に特定できれば、いかなる情報を使用することも可能である。
また、プレゼンテーション処理部831が復元位置のデータと復元データのXOR計算をして上書きするとしたが、復元処理部832が復元情報を通知せずに、メモリ901上に保持されているクリップファイルを直接参照して、XOR計算および上書きを行うようにしてもよい。Although the play item number is used, any information can be used as long as the currently reproduced position such as the title number, play list number, play item number, and combinations thereof can be uniquely identified.
In addition, the presentation processing unit 831 performs an XOR calculation between the restoration position data and the restoration data and overwrites it. However, the
なお、復元情報ファイル816が復元情報を含むとしたが、図11に示すように、クリップファイル1113のストリーム内に復元情報を多重することも可能である。具体的には、復元情報をPMTや独自パケットに格納して、映像や音声などのストリームに多重する。この場合、復元処理部1132は再生中のストリームから復元情報を含むパケットを取得し、復元情報を得ることができる。その他の構成は図8と同様である。 Although the
復元情報には、復元情報を含むパケットからの相対パケット数およびそのパケットの何バイト目のデータを復元するかを示す復元位置と、復元位置のデータとXOR計算するための復元データが含まれている。復元処理部1132は、秘密情報計算部830から通知された秘密情報を使用してXOR計算などで復元情報を復号し、復号した復元情報をもとに復元位置のデータと復元データをXOR計算して、その結果を復元位置に上書きすることで、変形されたコンテンツを復元することが可能となる。 The restoration information includes the relative number of packets from the packet including the restoration information, the restoration position indicating which byte data of the packet is restored, the restoration position data, and the restoration data for XOR calculation. Yes. The restoration processing unit 1132 uses the secret information notified from the secret information calculation unit 830 to decode the restoration information by XOR calculation or the like, and performs XOR calculation of the restoration position data and the restoration data based on the decoded restoration information. Thus, the modified content can be restored by overwriting the result in the restoration position.
このように復元情報をファイルではなく、クリップファイルのストリームに多重して復元処理を行うことも可能であるが、秘密情報計算部830は同様の処理を行えばよい。
なお、復元処理部1132は復号後の復元情報をプレゼンテーション処理部1131に通知してもよく、その場合、プレゼンテーション処理部1131が復元情報をもとに復元位置のデータと復元データをXOR計算して、復元位置のデータに上書きすれば復元処理が可能である。As described above, it is possible to perform the restoration process by multiplexing the restoration information on the clip file stream instead of the file, but the secret information calculation unit 830 may perform the same process.
Note that the restoration processing unit 1132 may notify the presentation processing unit 1131 of the decoded restoration information. In this case, the presentation processing unit 1131 performs XOR calculation on the restoration position data and the restoration data based on the restoration information. If the data at the restoration position is overwritten, the restoration process can be performed.
また、復元処理や、復元情報の復号にXORを使用したが、これに限らずAES(Advanced Encryption Standard)やDES(Data Encryption Standard)など、どのような演算を使用しても良い。
なお、図12は上記図8および図11で示した検証処理と復元処理の構成を一般化した構成であり、仮想マシン1228および復元処理部1232以外の構成要素は、一般的なディスク再生のシステムモデルである。つまり、本願の検証処理と復元処理を実現する実装は、一般的なディスク再生のシステムモデルをほとんど変更する必要なく実装することが可能であるという特徴がある。In addition, although XOR is used for restoration processing and restoration information decoding, the present invention is not limited to this, and any calculation such as AES (Advanced Encryption Standard) and DES (Data Encryption Standard) may be used.
FIG. 12 is a generalized configuration of the verification process and the restoration process shown in FIGS. 8 and 11, and the components other than the virtual machine 1228 and the
なお、本実施の形態では、検証処理部832が検証用コード814を直接読み込み、秘密情報計算部830が秘密情報用コード815を直接読み込むような記述をしたが、これに限らず、その他の構成要素を経由して取得しても良い。また、検証用コード814や秘密情報用コード815はコマンドプログラム811や、クリップファイル関連情報812など記憶媒体802上の他の情報に含まれるように記述してもよい。 In the present embodiment, the description has been made such that the
また、復元情報や、割り込み情報などの各通知は図示していない一般演算用のレジスタ経由や、メモリ901経由などで通知することが可能であるが、この限りではない。
また、割り込み管理情報904は、検証用コード814から取得するとしたが、別ファイルとしたり、記憶媒体802上のその他の情報に記述しても良い。また、秘密情報計算用割り込み管理情報905も同様に、別ファイルとしたり、記憶媒体802上のその他の情報に記述しても良い。In addition, each notification such as restoration information and interrupt information can be notified via a general calculation register (not shown) or via the
Although the interrupt management information 904 is acquired from the verification code 814, it may be a separate file or described in other information on the
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の情報処理装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、情報処理装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。(Other variations)
Although the present invention has been described based on the above embodiment, it is needless to say that the present invention is not limited to the above embodiment. The following cases are also included in the present invention.
(1) The information processing apparatus is specifically a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like. A computer program is stored in the RAM or hard disk unit. The information processing apparatus achieves its functions by the microprocessor operating according to the computer program. Here, the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
(2)上記の情報処理装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。 (2) A part or all of the constituent elements constituting the information processing apparatus may be configured by a single system LSI (Large Scale Integration). The system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, a computer system including a microprocessor, ROM, RAM, and the like. . A computer program is stored in the RAM. The system LSI achieves its functions by the microprocessor operating according to the computer program.
また、この場合、LSI製造者と情報処理装置製造者は異なる場合がある。このとき、LSI製造者は、例えば乱数生成機能や計時機能など検証に使用できる機能を実装して提供することで、情報処理装置製造者は製造する装置に合った検証ルールや検証用アドレスを規定することができる。よってLSI製造者はLSIごとに検証ルールを規定・管理するコストを削減でき、情報処理装置製造者は製造する装置のバージョンごとに自由に検証ルールを規定できるという効果が得られる。 In this case, the LSI manufacturer and the information processing device manufacturer may be different. At this time, for example, the LSI manufacturer provides and implements functions that can be used for verification, such as a random number generation function and a clocking function, so that the information processing apparatus manufacturer defines verification rules and verification addresses suitable for the device to be manufactured. can do. Therefore, the LSI manufacturer can reduce the cost for defining and managing the verification rule for each LSI, and the information processing apparatus manufacturer can freely define the verification rule for each version of the device to be manufactured.
(3)上記の情報処理装置を構成する構成要素の一部または全部は、情報処理装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。 (3) Part or all of the constituent elements constituting the information processing apparatus may be configured as an IC card that can be attached to and detached from the information processing apparatus or a single module. 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 super multifunctional LSI described above. The IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。(4) The present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of the computer program.
The present invention also provides a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc). ), Recorded in a semiconductor memory or the like. The digital signal may be recorded on these recording media.
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワータ、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。In the present invention, the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
The present invention may be a computer system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program.
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
(6)本発明は、内部に含んだ仮想マシンによりコンテンツの再生に係る処理を実行する情報処理装置において用いられる検証方法であって、前記コンテンツと共に記録媒体に記録されている検証プログラムを読み出す読出ステップと、前記検証プログラムを前記仮想マシンが実行することにより、前記仮想マシンを含む前記情報処理装置の正当性を検証する検証ステップとを含むことを特徴とする。In addition, the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like, and executed by another independent computer system. It is good.
(5) The above embodiment and the above modifications may be combined.
(6) The present invention is a verification method used in an information processing apparatus for executing processing related to content reproduction by a virtual machine included therein, and reads out a verification program recorded on a recording medium together with the content And a verification step of verifying the validity of the information processing apparatus including the virtual machine by executing the verification program by the virtual machine.
ここで、「読出ステップ」は、(実施の形態1)において説明した図2のS202の処理と対応する。
また、「検証ステップ」は、(実施の形態1)において説明した図2のS204の処理と対応する。
(7)また、変形例(6)において、前記検証ステップは、前記検証プログラムが、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを、前記検証プログラムが判断する判断ステップとを含むこととしてもよい。Here, the “reading step” corresponds to the process of S202 of FIG. 2 described in the first embodiment.
The “verification step” corresponds to the process of S204 in FIG. 2 described in the first embodiment.
(7) In Modification (6), the verification step includes an acquisition step in which the verification program acquires, as verification information, a value held at a predetermined memory address of the information processing apparatus, and the acquisition A determination step in which the verification program determines whether or not the information processing apparatus is valid based on the verification information acquired in the step.
ここで、「取得ステップ」は、(実施の形態1)において説明した図3のS301、S304の処理と対応する。
また、「判断ステップ」は、例えば、(実施の形態1)の、(仮想マシンを含む実行環境の正当性検証)の記載の、「仮想マシンコード121は、返信された検証情報を取得し(S304)、検証情報と検証値403を検証ルール404に基づいて検証し、その結果を図2のS205に渡す。今の例では、検証情報が0xedと同値であれば検証結果はOKであり、それ以外であればNGである。」と記載されている処理と対応する。Here, the “acquisition step” corresponds to the processing of S301 and S304 of FIG. 3 described in (Embodiment 1).
In addition, the “determination step” includes, for example, “virtual machine code 121 obtains the returned verification information (in the first embodiment) described in (Validity verification of execution environment including virtual machine) ( S304), the verification information and the
(8)また、変形例(7)において、前記記録媒体は、さらに、前記仮想マシン上で実行され、前記コンテンツの再生に係る処理手順を含む再生関連プログラムを記録しており、前記検証方法は、さらに、検証の結果、前記情報処理装置が不正である場合、前記コンテンツの再生に係る処理手順の実行を抑制する抑制ステップを含むこととしてもよい。
ここで、「前記仮想マシン上で実行され、前記コンテンツの再生に係る処理手順を含む再生関連プログラム」とは、(実施の形態2)において図8を用いて説明した、コマンドプログラム811、クリップファイル関連情報812、クリップファイル813、検証用コード814、秘密情報用コード815、復元情報ファイル816と対応している。(8) In Modification (7), the recording medium further records a reproduction-related program that is executed on the virtual machine and includes a processing procedure related to reproduction of the content, and the verification method includes Further, when the information processing apparatus is illegal as a result of verification, a suppression step of suppressing execution of a processing procedure related to reproduction of the content may be included.
Here, “a reproduction-related program executed on the virtual machine and including a processing procedure related to the reproduction of the content” refers to the command program 811 and the clip file described in FIG. 8 in (Embodiment 2). Corresponding to
また、「抑制ステップ」は、(実施の形態2)において説明した図10のS1006がNGの場合、およびS1008の処理と対応する。
(9)また、変形例(8)において、前記コンテンツは、所定の復元処理によって復元できるよう変形されており、前記コンテンツの再生に係る処理手順は、変形されている前記コンテンツを、前記復元処理により復元する手順を含み、前記抑制ステップは、前記復元処理の実行を抑制することとしてもよい。Further, the “suppression step” corresponds to the case where S1006 of FIG. 10 described in (Embodiment 2) is NG and the processing of S1008.
(9) Further, in the modification (8), the content is modified so that it can be restored by a predetermined restoration process, and the processing procedure relating to the reproduction of the content includes the transformed content as the restoration process. The suppression step may include suppressing the execution of the restoration process.
ここで、「所定の復元処理」および「変形されている前記コンテンツを、前記復元処理により復元する手順」とは、(実施の形態2)の(復元処理)にて説明した処理と対応する。例えば、秘密情報用コード815、復元処理部832、プレゼンテーション処理部831が行う処理と対応する。
また、「前記抑制ステップは、前記復元処理の実行を抑止する」とは、上述の(復元処理)における、「以上により変形されたコンテンツを復元することが可能となり、正常に再生することができる。そこで、例えば上記の検出処理でNGだった場合には秘密情報計算部830が使用しているメモリ901上の領域の一部または全部を書き換えることで、正しい秘密情報を取得できないようにして、正常な再生をできないようにすることが可能となる。」などと記載されている処理と対応する。Here, “predetermined restoration processing” and “procedure for restoring the deformed content by the restoration processing” correspond to the processing described in (restoration processing) of (Embodiment 2). For example, this corresponds to the processing performed by the
Further, “the suppression step suppresses the execution of the restoration process” means that “the content modified as described above can be restored and reproduced normally in the above (restoration process)”. Therefore, for example, if the above detection process is NG, rewriting part or all of the area on the
(10)また、変形例(7)において、前記検証情報とは、タイミングによって変化する情報であることとしてもよい。
ここで、「タイミングによって変化する情報」とは、特に、(実施の形態1)の(検証ルールの例)の(3)時間やタイミングに依存する情報、における、「このように時間やタイミングで変化する情報であれば、いかなる情報も検証に利用することが可能である。」との記載と対応する。(10) In Modification (7), the verification information may be information that changes according to timing.
Here, the “information that changes depending on the timing” refers to “the time and timing in this way” in (3) information that depends on time and timing in (Example of verification rule) in (Embodiment 1). Any information that changes can be used for verification. "
(11)また、変形例(7)において、前記検証情報とは、前記再生を行うコンテンツに関する情報であることとしてもよい。
ここで、「前記再生を行うコンテンツに関する情報」とは、特に、(実施の形態1)の(検証ルールの例)の(1)コンテンツに関する情報、にて説明した記載と対応する。
(12)また、変形例(7)において、前記検証情報とは、前記仮想マシンを含む実行環境に依存する情報であることとしてもよい。(11) In Modification (7), the verification information may be information related to the content to be reproduced.
Here, “the information related to the content to be played” particularly corresponds to the description described in (1) Information related to content in (Example of verification rule) in (Embodiment 1).
(12) In Modification (7), the verification information may be information depending on an execution environment including the virtual machine.
ここで、「前記仮想マシンを含む実行環境に依存する情報」とは、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報、にて説明した記載と対応する。
(13)また、変形例(7)において、前記記録媒体には、さらに、検証値と、検証ルールとが対応づけて記録されており、前記判断ステップは、前記取得ステップにより取得された前記検証情報と、前記記録媒体に記録された前記検証値とを、前記検証値に対応づけられている前記検証ルールに基づいて比較する比較ステップを含み、前記判断ステップは、前記比較の結果、前記検証ルールを満たす場合に、前記情報処理装置が正当であると判断することとしてもよい。Here, “information dependent on an execution environment including the virtual machine” is described in (2) Information dependent on an execution environment including a virtual machine in (Example of verification rule) in (Embodiment 1). Corresponds to the description.
(13) In Modification (7), a verification value and a verification rule are further recorded in association with each other on the recording medium, and the determination step includes the verification acquired in the acquisition step. A comparison step of comparing information and the verification value recorded on the recording medium based on the verification rule associated with the verification value, and the determination step includes the verification as a result of the comparison When the rule is satisfied, it may be determined that the information processing apparatus is valid.
ここで、「検証値」とは、(実施の形態1)において図5を用いて説明した検証値403と対応する。
また、「検証ルール」とは、検証ルール404と対応する。
また、「比較ステップ」および「判断ステップ」は、(実施の形態1)において説明した、(仮想マシンを含む実行環境の正当性検証)の記載の、「仮想マシンコード121は、返信された検証情報を取得し(S304)、検証情報と検証値403を検証ルール404に基づいて検証し、その結果を図2のS205に渡す。今の例では、検証情報が0xedと同値であれば検証結果はOKであり、それ以外であればNGである。」と記載されている処理と対応する。Here, the “verification value” corresponds to the
The “verification rule” corresponds to the
The “comparison step” and the “judgment step” are described in (Embodiment 1) described in (Validity verification of execution environment including virtual machine). Information is acquired (S304), the verification information and the
(14)また、変形例(13)において、前記取得ステップは、検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととしてもよい。 (14) In Modification (13), the obtaining step includes a requesting step for requesting a value held at the predetermined memory address at the timing of verification, and the verification method further includes the request In response to the request by the step, the step of reading the value held in the predetermined memory address, and returning the read value as the verification information to the verification program, the acquisition of the acquisition step, The verification information returned in response to the request may be acquired, and the comparison step may perform the comparison using the verification information acquired by the response.
ここで、「要求ステップ」は、(実施の形態1)において説明した図3のS301と対応する。
また、「返信ステップ」は、(実施の形態1)において説明した図3のS303と対応する。
(15)また、変形例(13)において、前記記録媒体には、さらに、複数の前記検証値が、検証のタイミングと対応づけて記録されており、前記比較ステップは、前記検証のタイミングにおいて前記取得した検証情報と、前記検証のタイミングに対応づけられている前記検証値および前記検証ルールを用いて前記比較を行い、前記判断ステップは、前記検証のタイミングになる度に、前記比較ステップを繰り返し実行させる繰り返しステップと、前記繰り返しの結果、前記検証情報と前記検証値とが所定回数以上前記検証ルールを満たさない場合に、前記情報処理装置が不正であると決定する決定ステップとを含むこととしてもよい。Here, 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.
(15) In Modification (13), the recording medium further includes a plurality of verification values recorded in association with the verification timing, and the comparison step includes the verification timing at the verification timing. The comparison is performed using the obtained verification information, the verification value associated with the verification timing and the verification rule, and the determination step is repeated each time the verification timing comes A repetition step to be executed, and a determination step of determining that the information processing apparatus is illegal when the verification information and the verification value do not satisfy the verification rule more than a predetermined number of times as a result of the repetition. Also good.
ここで、「検証のタイミング」は、(実施の形態1)において説明した図5の検証タイミング402と対応する。
また、「繰り返しステップ」は、特に、(実施の形態1)において説明したS203、S204、S205、S207がNO、S208がNOの場合の処理と対応する。
また、「決定ステップ」は、S208がYESの場合の処理と対応する。Here, “verification timing” corresponds to the
Further, the “repetition step” particularly corresponds to the processing when S203, S204, S205, and S207 are NO and S208 is NO described in (Embodiment 1).
Further, the “determination step” corresponds to the processing in the case where S208 is YES.
(16)また、変形例(13)において、前記記録媒体には、複数の前記検証値の各々が、前記仮想マシンを一意に識別する識別情報と対応づけられて記録されており、前記比較ステップは、前記情報処理装置に含まれる仮想マシンの識別情報と対応する検証値を用いて前記比較を行うこととしてもよい。
ここで、「識別情報」は、(実施の形態1)において説明した図5の仮想マシン識別情報117と対応している。(16) In Modification (13), 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 The comparison may be performed using a verification value corresponding to identification information of a virtual machine included in the information processing apparatus.
Here, the “identification information” corresponds to the virtual
(17)また、変形例(7)において、前記記録媒体には、さらに、検証のタイミングと検証ルールとが対応づけられて記録されており、前記情報処理装置は、さらに、所定のタイミングにおいて前記所定のメモリアドレスに保持されている値を比較用情報として格納している格納手段を備え、前記取得ステップは、前記検証のタイミングにおいて前記所定のメモリアドレスに保持されている値を、前記検証情報として前記取得し、前記判断ステップは、前記検証のタイミングにおいて取得した前記検証情報と、前記格納手段に格納されている比較用情報とを前記検証ルールに基づいて比較する比較ステップを含み、前記判断ステップは、前記比較の結果に基づいて、前記情報処理装置が正当であるか否かの前記判断を行うこととしてもよい。 (17) In Modification (7), a verification timing and a verification rule are further recorded in association with each other on the recording medium, and the information processing apparatus further performs the processing at a predetermined timing. Storage means for storing, as comparison information, a value held at a predetermined memory address, wherein the obtaining step uses the value held at the predetermined memory address at the verification timing as the verification information; And 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 unit based on the verification rule. The step may perform the determination as to whether the information processing apparatus is valid based on the result of the comparison.
(18)また、変形例(17)において、前記取得ステップは、前記検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととしてもよい。 (18) In Modification (17), the obtaining step includes a requesting step for requesting a value held at the predetermined memory address at the verification timing, and the verification method further includes: In response to the request from the request step, the method includes a reply step of reading a value held at the predetermined memory address and returning the read value to the verification program as the verification information. The verification information returned in response to the request may be acquired, and the comparison step may perform the comparison using the verification information acquired by the response.
ここで、「格納手段」は、例えば、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報、における、「そして、図5の検証情報保持モジュール1122が保持する検証ルールテーブル500のように、ディスク挿入時に仮想マシンを含む実行環境に乱数を生成させ、アドレス0x00aa0010に格納させ、」との記載に対応する。 Here, the “storage means” is, for example, “and the verification information holding of FIG. 5 in (2) Information dependent on the execution environment including the virtual machine in (Example of verification rule) in (Embodiment 1). Like the verification rule table 500 held by the
また、「取得ステップ」「比較ステップ」「判断ステップ」は、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報、における、「その後、再生開始時やユーザ操作時に同一アドレスに、再度乱数を生成・格納させ、仮想マシンコード121は新たに生成した乱数を取得して、先に保持していた乱数と比較して値が変更されていれば検証OKとする。」との記載に基づく。 In addition, the “acquisition step”, “comparison step”, and “determination step” are “replay after that” in (2) information dependent on the execution environment including the virtual machine in (example of verification rule) in (embodiment 1). The random number is generated and stored again at the same address at the start or at the time of user operation, and the virtual machine code 121 acquires the newly generated random number and the value is changed compared to the previously held random number. Based on the description of “Verification OK”.
また、「要求ステップ」は、(実施の形態1)において説明した図3のS301と対応する。
また、「返信ステップ」は、(実施の形態1)において説明した図3のS303と対応する。
(19)また、変形例(17)において、前記情報処理装置は、さらに、乱数を生成する乱数生成部を備え、前記検証方法は、さらに、前記検証のタイミングになるごとに、前記乱数生成部に乱数を生成させ、生成された乱数を、前記所定のアドレスに保持させる乱数保持ステップを含み、前記取得ステップは、前記検証のタイミングにおいて、前記乱数保持ステップにより前記保持された前記乱数を読み出すことで前記検証情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報と、前記比較用情報とが異なる場合に、前記情報処理装置が正当であると判断することとしてもよい。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.
(19) Further, in Modification (17), the information processing apparatus further includes a random number generation unit that generates a random number, and the verification method further includes the random number generation unit at each verification timing. Generating a random number, and holding the generated random number at the predetermined address, and the obtaining step reads out the random number held by the random number holding step at the verification timing The verification information may be acquired, and the determining step may determine that the information processing apparatus is valid when the verification information is different from the comparison information as a result of the comparison. .
ここで、「乱数生成部」は、(実施の形態1)において説明した図6の乱数生成部601と対応する。
また、「乱数保持ステップ」および「判断ステップ」は、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報における、「そして、図5の検証情報保持モジュール1122が保持する検証ルールテーブル500のように、ディスク挿入時に仮想マシンを含む実行環境に乱数を生成させ、アドレス0x00aa0010に格納させ、」「その後、再生開始時やユーザ操作時に同一アドレスに、再度乱数を生成・格納させ、仮想マシンコード121は新たに生成した乱数を取得して、先に保持していた乱数と比較して値が変更されていれば検証OKとする。」との記載と対応する。Here, the “random number generation unit” corresponds to the random number generation unit 601 in FIG. 6 described in (Embodiment 1).
Further, the “random number holding step” and the “judgment step” are “and the verification in FIG. As in the verification rule table 500 held by the
(20)また、変形例(19)において、前記乱数生成部は、前記仮想マシンを含む実行環境に依存する情報に基づいて、前記生成を行うこととしてもよい。
ここで、「乱数生成部」は、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報、における、「なお、乱数のシードにはアドレスや仮想マシン識別情報117など仮想マシンを含む実行環境毎に異なる値にすれば、同じ乱数を生成する可能性が低くなる。」などの記載に対応する。(20) In addition, in Modification (19), the random number generation unit may perform the generation based on information that depends on an execution environment including the virtual machine.
Here, the “random number generation unit” is the “random number seed” in (2) information dependent on the execution environment including the virtual machine in (Example of verification rule) in (Embodiment 1). If different values are set for each execution environment including virtual machines, such as the virtual
(21)また、変形例(17)において、前記情報処理装置は、さらに、時刻を計時して前記所定のメモリアドレスに書き込む計時部を備え、前記格納手段は、所定のタイミングにおいて前記所定のメモリアドレスに書き込まれている前記時刻を比較用情報として格納しており、前記取得ステップは、前記検証のタイミングにおいて、前記所定のメモリアドレスに書き込まれている前記時刻を読み出すことで前記検証情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報に示される時刻が、前記比較用情報に示される時刻よりも増加している場合に、前記情報処理装置が正当であると判断することとしてもよい。 (21) In Modification (17), the information processing apparatus further includes a time measuring unit that measures time and writes the time to the predetermined memory address, and the storage unit stores the predetermined memory at a predetermined timing. The time written in the address is stored as comparison information, and the obtaining step reads the time written in the predetermined memory address at the verification timing to read the time in the verification information. The determination step determines that the information processing apparatus is valid when the time indicated in the verification information is greater than the time indicated in the comparison information as a result of the comparison. It is good to do.
ここで、「計時部」は、(実施の形態1)において説明した図7の計時部701と対応する。
また、「格納手段」「取得ステップ」「判断ステップ」は、(実施の形態1)の(検証ルールの例)の(3)時間やタイミングに依存する情報、における、「そして、図5の検証情報保持モジュール1122が保持する検証テーブルルール500のように、仮想マシンコード121は、ディスク挿入時に0x00eee002から現在時刻を取得して、保持し、次にクリップファイル切り替わり時に同一アドレスから現在時刻を取得して、前回保持した時刻と比較し、増加していれば検証OKとする。」などの記載に対応する。Here, the “timer” corresponds to the timer 701 in FIG. 7 described in the first embodiment.
The “storage means”, “acquisition step”, and “determination step” are “and verification in FIG. Like the
(22)また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置であって、前記記録媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、前記情報処理装置は、前記記録媒体から前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備える情報処理装置でもある。 (22) Further, the present invention is an information processing apparatus that executes processing related to reproduction of content recorded in a recording medium and includes a virtual machine therein, the recording medium including the virtual machine on the virtual machine When executed, a verification program for verifying the validity of the information processing apparatus is recorded. The information processing apparatus includes a reading unit that reads the verification program from the recording medium; Accepting means for accepting a request for a value held at the timing of verification from the verification program to the memory address, and receiving the request, reads the value held at the predetermined memory address, and reads the read value to the memory address It is also an information processing apparatus including reply means for replying to the verification program.
また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置に搭載される集積回路であって、前記記録媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、前記集積回路は、前記記録媒体から前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備える集積回路でもある。 The present invention also provides an integrated circuit that is mounted on an information processing apparatus that executes processing related to reproduction of content recorded on a recording medium and includes a virtual machine. A verification program for verifying the validity of the information processing apparatus is recorded by being executed on the machine, and the integrated circuit reads out the verification program from the recording medium; and A receiving means for receiving a request for a value held at a predetermined memory address at the timing of verification from the verification program; and when receiving the request, the value held at the predetermined memory address is read and the read value It is also an integrated circuit provided with a reply means for sending back to the verification program.
ここで、「検証プログラム」は、図1に示す仮想マシン検証モジュール1121と対応する。
また、「読出手段」は、図1に示すディスク読込部111と対応する。
また、「受付手段」および「返信手段」は、仮想マシン実行部113が、仮想マシン実行コード115に含まれる命令コードを読み出し、解読し、実行することにより実現される。Here, the “verification program” corresponds to the virtual machine verification module 1121 shown in FIG.
The “reading unit” corresponds to the disk reading unit 111 shown in FIG.
Further, the “accepting unit” and the “reply unit” are realized by the virtual machine execution unit 113 reading, decoding, and executing an instruction code included in the virtual machine execution code 115.
また、本発明は、コンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の正当性を検証する検証プログラムを記録している記録媒体であって、前記検証プログラムは、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含む記録媒体でもある。 Further, the present invention is a recording medium that records a verification program that executes processing related to content reproduction and verifies the validity of an information processing device that includes a virtual machine. An acquisition step of acquiring a value held at a predetermined memory address of the information processing device as verification information, and whether or not the information processing device is valid based on the verification information acquired by the acquisition step It is also a recording medium that includes a determination step for determining.
また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の正当性を検証する処理を、前記情報処理装置に実行させる検証プログラムであって、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含む検証プログラムでもある。 The present invention also provides a verification program for executing processing related to reproduction of content recorded on a recording medium and causing the information processing device to execute processing for verifying the validity of the information processing device including a virtual machine. The information processing device is validated based on an acquisition step of acquiring, as verification information, a value held at a predetermined memory address of the information processing device, and the verification information acquired by the acquisition step. It is also a verification program including a determination step for determining whether or not.
ここで、「取得ステップ」は、(実施の形態1)において説明した図3のS301、S304の処理と対応する。
また、「判断ステップ」は、例えば、(実施の形態1)の、(仮想マシンを含む実行環境の正当性検証)の記載の、「仮想マシンコード121は、返信された検証情報を取得し(S304)、検証情報と検証値403を検証ルール404に基づいて検証し、その結果を図2のS205に渡す。今の例では、検証情報が0xedと同値であれば検証結果はOKであり、それ以外であればNGである。」と記載されている処理と対応する。Here, the “acquisition step” corresponds to the processing of S301 and S304 of FIG. 3 described in (Embodiment 1).
In addition, the “determination step” includes, for example, “virtual machine code 121 obtains the returned verification information (in the first embodiment) described in (Validity verification of execution environment including virtual machine) ( S304), the verification information and the
(23)また、本発明は、以下のような構成であってもよい。
(23−1)本発明は、仮想マシンを使って仮想マシンコードを実行する情報処理方法であって、仮想マシンコードが仮想マシンを含む実行環境の正当性を検証するステップと、検証の結果、前記仮想マシンを含む実行環境が不正であると判定した場合、前記仮想マシンコードの処理を停止するステップと、を含むことを特徴とする。(23) Further, the present invention may be configured as follows.
(23-1) The present invention is an information processing method for executing virtual machine code using a virtual machine, the step of verifying the validity of an execution environment in which the virtual machine code includes a virtual machine, And a step of stopping the processing of the virtual machine code when it is determined that the execution environment including the virtual machine is illegal.
(23−2)上記の変形例(23−1)の情報処理方法において、前記検証ステップはさらに、前記仮想マシンコードが、前記仮想マシンを含む実行環境が保持する情報の取得を要求するステップと、前記仮想マシンが、前記情報を前記仮想マシンコードに提供するステップと、前記仮想マシンコードが、前記情報と、前記仮想マシンコードが保持する検証情報を比較し、前記仮想マシンコードで規定したルールに基づいて正当性を検証するステップと、を含むこととしてもよい。 (23-2) In the information processing method according to the modification (23-1), the verification step further includes a step in which the virtual machine code requests acquisition of information held by an execution environment including the virtual machine; The virtual machine code providing the information to the virtual machine code, the virtual machine code comparing the information with the verification information held by the virtual machine code, and a rule defined by the virtual machine code And verifying legitimacy based on.
(23−3)また、上記の変形例(23−2)において、前記情報は、前記仮想マシンを含む実行環境で処理するコンテンツに関する情報であることとしてもよい。
(23−4)また、上記の変形例(23−2)において、前記情報は、前記仮想マシンを含む実行環境に依存する情報であることとしてもよい。
(23−5)また、上記の変形例(23−2)において、前記情報は、前記仮想マシンを含む実行環境やコンテンツの状態により動的に変化する情報であることとしてもよい。(23-3) Further, in the above modification (23-2), the information may be information related to content processed in an execution environment including the virtual machine.
(23-4) In the above modification (23-2), the information may be information depending on an execution environment including the virtual machine.
(23-5) In the above modification (23-2), the information may be information that dynamically changes depending on the execution environment including the virtual machine and the state of the content.
(23−6)また、本発明は、上記の変形例(23−1)〜(23−5)のいずれかに記載された情報処理方法に含まれるステップをコンピュータに実行させることを特徴とするプログラムでもある。
(23−7)また、本発明は、上記の変形例(23−1)〜(23−5)のいずれかに記載された情報処理方法に含まれるステップをコンピュータに実行させることを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体でもある。(23-6) Moreover, the present invention causes 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 program.
(23-7) Moreover, the present invention causes 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 on which the program is recorded.
本発明にかかる情報処理方法は、仮想マシンを使い、プラットフォームに依存しないプログラムを実行する情報処理装置に利用可能であり、著作権保護用プログラムなど、仮想マシン上で動作するプログラムにセキュリティを要求される場合に有用である。 The information processing method according to the present invention can be used in an information processing apparatus that uses a virtual machine and executes a platform-independent program, and security is required for a program that runs on the virtual machine, such as a copyright protection program. This is useful when
本発明は、プログラムの実行に仮想マシンを用いる機器に関連し、特に、仮想マシンが実装されるプラットフォームの正当性を判断し、該プラットフォームが不正な場合に、排除する技術に関する。 The present invention relates to a device that uses a virtual machine for program execution, and more particularly, to a technique for determining the legitimacy of a platform on which a virtual machine is mounted and eliminating the platform when the platform is illegal.
近年、プログラムをOSやCPU等のプラットフォームに依存させずに稼動させるため、仮想マシンが利用されている。一般的に、仮想マシンはソフトウェア実装されており、インタフェース等、実装に必要な情報が公開されているため、誰でも仮想マシンを実装することができる。 In recent years, virtual machines have been used to run programs without depending on platforms such as OS and CPU. Generally, a virtual machine is implemented by software, and information necessary for implementation such as an interface is disclosed, so anyone can implement a virtual machine.
そのため、仮想マシンを不正に実装することで、その上で稼動するプログラムに正規の動作ではなく、不正な動作をさせることが可能となる。そのプログラムが、例えば、映画等のコンテンツの著作権を保護するプログラムである場合、不正にコンテンツを再生されることにつながる。
本発明は、上記の問題点に鑑み、プログラムが、自身を稼動させる仮想マシンが正規に実装されたものであることを検証できる情報処理方法を提供することを目的とする。
Therefore, by improperly mounting a virtual machine, it is possible to cause a program running on the virtual machine to perform an illegal operation instead of a normal operation. When the program is a program that protects the copyright of content such as a movie, for example, the content is illegally reproduced.
In view of the above problems, an object of the present invention is to provide an information processing method by which a program can verify that a virtual machine that operates itself is normally installed.
上記課題を解決するために、本発明では、内部に含んだ仮想マシンによりコンテンツの再生に係る処理を実行する情報処理装置において用いられる検証方法であって、前記コンテンツと共に記録媒体に記録されている検証プログラムを読み出す読出ステップと、前記検証プログラムを前記仮想マシンが実行することにより、前記仮想マシンを含む前記情報処理装置の正当性を検証する検証ステップとを含むことを特徴とする検証方法を提供する。 In order to solve the above problems, the present invention is a verification method used in an information processing apparatus for executing processing related to content reproduction by a virtual machine included therein, and is recorded on a recording medium together with the content A verification method comprising: a reading step of reading a verification program; and a verification step of verifying the validity of the information processing apparatus including the virtual machine by executing the verification program by the virtual machine. To do.
上述の検証方法を用いることにより、検証プログラムが、自身を稼働させる仮想マシンが正規に実装されたものであるか否かを検証することができる。
また、前記検証ステップは、前記検証プログラムが、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを、前記検証プログラムが判断する判断ステップとを含むこととしてもよい。
By using the verification method described above, the verification program can verify whether or not the virtual machine that operates itself is properly implemented.
The verification step is based on the acquisition step in which the verification program acquires, as verification information, a value held at a predetermined memory address of the information processing apparatus, and the verification information acquired by the acquisition step. Thus, the verification program may determine whether the information processing apparatus is valid.
上述の検証方法では、所定のメモリアドレスに保持されている値を用いて情報処理装置の検証を行う。
したがって、検証を行うための値が保持されているメモリアドレスを知らないと、仮想マシンを実装することができない。そのため、メモリアドレスを知らない不正な第三者が不正な仮想マシンを実装するのを困難にすることができる。
In the verification method described above, the information processing apparatus is verified using a value held at a predetermined memory address.
Therefore, a virtual machine cannot be implemented without knowing the memory address that holds the value for verification. This makes it difficult for an unauthorized third party who does not know the memory address to mount 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 related to reproduction of the content. The verification method further includes the information processing as a result of the verification. When the device is illegal, it may include a suppression step for suppressing execution of the processing procedure related to the reproduction of the content.
As a result, it is possible to prevent content reproduction from being executed in an unauthorized virtual machine.
また、前記コンテンツは、所定の復元処理によって復元できるよう変形されており、前記コンテンツの再生に係る処理手順は、変形されている前記コンテンツを、前記復元処理により復元する手順を含み、前記抑制ステップは、前記復元処理の実行を抑制することとしてもよい。
これにより、例えばコンテンツが著作権保護等を目的として変形されている場合に、不正な仮想マシンではコンテンツの復元処理が実行されないようにすることができる。
Further, the content is modified so that it can be restored by a predetermined restoration process, and the processing procedure relating to the reproduction of the content includes a procedure for restoring the transformed content by the restoration process, and the suppressing step May suppress the execution of the restoration process.
Thereby, for example, when the content is deformed for the purpose of copyright protection or the like, it is possible to prevent the content restoration processing from being executed in an unauthorized virtual machine.
また、前記検証情報とは、タイミングによって変化する情報であることとしてもよい。
上述の検証方法によると、検証情報としてタイミングによって変化する情報を用いるため、不正解析者が検証情報を保持するメモリアドレスを特定できた場合であっても、正当な検証情報の値を特定することが難しくなる。
したがって、不正な第三者が、検証プログラムによる検証を通過することのできる実行環境を不正に実装することが困難になる。
The verification information may be information that changes according to timing.
According to the verification method described above, information that changes depending on the timing is used as verification information, so that even if a fraudulent analyst can identify the memory address that holds the verification information, the value of valid verification information must be specified. Becomes difficult.
Therefore, it becomes difficult to illegally implement an execution environment in which an unauthorized third party can pass verification by the verification program.
また、前記検証情報とは、前記再生を行うコンテンツに関する情報であることとしてもよい。
上述の検証方法によると、検証プログラムは、再生されるコンテンツに関する情報に基づいて、情報処理装置の正当性を検証する。
これにより、検証プログラムは、再生されるコンテンツが、当該検証プログラムと共に用いられるべきコンテンツであるか否かを検証することができる。
The verification information may be information related to the content to be reproduced.
According to the verification method described above, the verification program verifies the legitimacy of the information processing apparatus based on the information regarding the content to be reproduced.
Thereby, the verification program can verify whether or not the content to be reproduced is content to be used with the verification program.
したがって、上述の検証方法は、例えば、不正な第三者が、正当な検証プログラムを複製し、他のコンテンツの再生時に、複製した検証プログラムを読み込ませることによって当該他のコンテンツについての検証を通過させるような不正についても防止することができる。
また、前記検証情報とは、前記仮想マシンを含む実行環境に依存する情報であることとしてもよい。
Therefore, the above-described verification method allows, for example, an unauthorized third party to copy a valid verification program and pass the verification of the other content by reading the copied verification program when reproducing the other content. It is also possible to prevent fraud that causes
The verification information may be information depending on an execution environment including the virtual machine.
これにより、検証プログラムは、当該検証プログラムを実行する実行環境が、正当な検証情報を知らない不正な第三者が実装した実行環境であるか否かを検証することができる。
また、前記記録媒体には、さらに、検証値と、検証ルールとが対応づけて記録されており、前記判断ステップは、前記取得ステップにより取得された前記検証情報と、前記記録媒体に記録された前記検証値とを、前記検証値に対応づけられている前記検証ルールに基づいて比較する比較ステップを含み、前記判断ステップは、前記比較の結果、前記検証ルールを満たす場合に、前記情報処理装置が正当であると判断することとしてもよい。
Thereby, 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.
Further, a verification value and a verification rule are recorded in association with each other on the recording medium, and the determination step is recorded on the recording medium and the verification information acquired by the acquisition step. The information processing apparatus includes a comparison step of comparing the verification value with the verification rule associated with the verification value, and the determination step satisfies the verification rule as a result of the comparison May be determined to be valid.
これにより、検証値と検証ルールを知らない不正な第三者が、不正な仮想マシンを実装するのを困難にすることができる。
また、前記取得ステップは、検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととしてもよい。
This makes it difficult for an unauthorized third party who does not know the verification value and the verification rule to mount an unauthorized virtual machine.
The obtaining step includes a requesting step for requesting a value held at the predetermined memory address at a verification timing, and the verification method further includes the predetermined step in response to the request by the requesting step. A return step of reading the value held at the memory address of the received information and returning the read value to the verification program as the verification information, wherein the acquisition of the acquisition step includes the return of the response to the request It is acquisition of verification information, and the comparison step may perform the comparison using the verification information acquired by the reply.
また、前記記録媒体には、さらに、複数の前記検証値が、検証のタイミングと対応づけて記録されており、前記比較ステップは、前記検証のタイミングにおいて前記取得した検証情報と、前記検証のタイミングに対応づけられている前記検証値および前記検証ルールを用いて前記比較を行い、前記判断ステップは、前記検証のタイミングになる度に、前記比較ステップを繰り返し実行させる繰り返しステップと、前記繰り返しの結果、前記検証情報と前記検証値とが所定回数以上前記検証ルールを満たさない場合に、前記情報処理装置が不正であると決定する決定ステップとを含むこととしてもよい。 Further, a plurality of the verification values are recorded in the recording medium in association with the verification timing, and the comparison step includes the verification information acquired at the verification timing and the verification timing. The comparison is performed using the verification value and the verification rule that are associated with each other, and the determination step includes a repetition step of repeatedly executing the comparison step every time the verification timing is reached, and a result of the repetition And a determination step of determining that the information processing apparatus is illegal when the verification information and the verification value do not satisfy the verification rule a predetermined number of times or more.
上述の検証方法では、所定回数以上検証ルールを満たさない場合に、情報処理装置が不正であると決定するので、検証の精度を向上させることができる。
また、前記記録媒体には、複数の前記検証値の各々が、前記仮想マシンを一意に識別する識別情報と対応づけられて記録されており、前記比較ステップは、前記情報処理装置に含まれる仮想マシンの識別情報と対応する検証値を用いて前記比較を行うこととしてもよい。
In the verification method described above, when the verification rule is not satisfied a predetermined number of times or more, the information processing apparatus is determined to be illegal, so that the verification accuracy can be improved.
In addition, each of the plurality of verification values is recorded in the recording medium in association with identification information that uniquely identifies the virtual machine, and the comparison step includes virtual information included in the information processing apparatus. The comparison may be performed using a verification value corresponding to the identification information of the machine.
これにより、仮想マシンごとに異なる検証値を用いて検証を行うことができる。
また、前記記録媒体には、さらに、検証のタイミングと検証ルールとが対応づけられて記録されており、前記情報処理装置は、さらに、所定のタイミングにおいて前記所定のメモリアドレスに保持されている値を比較用情報として格納している格納手段を備え、前記取得ステップは、前記検証のタイミングにおいて前記所定のメモリアドレスに保持されている値を、前記検証情報として前記取得し、前記判断ステップは、前記検証のタイミングにおいて取得した前記検証情報と、前記格納手段に格納されている比較用情報とを前記検証ルールに基づいて比較する比較ステップを含み、前記判断ステップは、前記比較の結果に基づいて、前記情報処理装置が正当であるか否かの前記判断を行うこととしてもよい。
As a result, verification can be performed using different verification values for each virtual machine.
The recording medium further records a verification timing and a verification rule in association with each other, and the information processing apparatus further stores a value held at the predetermined memory address at a predetermined timing. Is stored as comparison information, and the acquisition step acquires the value held at the predetermined memory address at the verification timing as the verification information, and the determination step includes: A comparison step of comparing the verification information acquired at the verification timing with the comparison information stored in the storage unit based on the verification rule, and the determination step is based on the result of the comparison The determination as to whether the information processing apparatus is valid may be made.
また、前記取得ステップは、前記検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととしてもよい。 Further, the obtaining step includes a requesting step for requesting a value held at the predetermined memory address at the timing of the verification, and the verification method further includes the requesting step according to the request by the requesting step. A reply step of reading a value held at a predetermined memory address and returning the read value to the verification program as the verification information, wherein the acquisition of the acquisition step is the reply to the request The verification information may be acquired, and the comparison step may perform the comparison using the verification information acquired by the reply.
また、前記情報処理装置は、さらに、乱数を生成する乱数生成部を備え、前記検証方法は、さらに、前記検証のタイミングになるごとに、前記乱数生成部に乱数を生成させ、生成された乱数を、前記所定のアドレスに保持させる乱数保持ステップを含み、前記取得ステップは、前記検証のタイミングにおいて、前記乱数保持ステップにより前記保持された前記乱数を読み出すことで前記検証情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報と、前記比較用情報とが異なる場合に、前記情報処理装置が正当であると判断することとしてもよい。 Further, the information processing apparatus further includes a random number generation unit that generates a random number, and the verification method further causes the random number generation unit to generate a random number every time the verification timing comes. Including the random number holding step of holding the verification information at the predetermined address, and the acquiring step performs the acquisition of the verification information by reading the random number held by the random number holding step at the verification timing, The determination step may determine that the information processing apparatus is valid when the verification information is different from the comparison information as a result of the comparison.
これにより、情報処理装置の正当性の検証に乱数を用いるという実装を知らない不正な第三者が、不正な仮想マシンを実装するのを困難にすることができる。
また、前記乱数生成部は、前記仮想マシンを含む実行環境に依存する情報に基づいて、前記生成を行うこととしてもよい。
これにより、実行環境が異なる場合に、乱数生成部が各実行環境で同じ乱数を生成する可能性が低くなる。
This makes it difficult for an unauthorized third party who does not know the implementation of using a random number to verify the validity of the information processing apparatus to implement an unauthorized virtual machine.
The random number generation unit may perform the generation based on information depending on an execution environment including the virtual machine.
This reduces the possibility that the random number generation unit generates the same random number in each execution environment when the execution environments are different.
また、前記情報処理装置は、さらに、時刻を計時して前記所定のメモリアドレスに書き込む計時部を備え、前記格納手段は、所定のタイミングにおいて前記所定のメモリアドレスに書き込まれている前記時刻を比較用情報として格納しており、前記取得ステップは、前記検証のタイミングにおいて、前記所定のメモリアドレスに書き込まれている前記時刻を読み出すことで前記検証情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報に示される時刻が、前記比較用情報に示される時刻よりも増加している場合に、前記情報処理装置が正当であると判断することとしてもよい。 Further, the information processing apparatus further includes a time measuring unit that measures time and writes the time to the predetermined memory address, and the storage unit compares the time written to the predetermined memory address at a predetermined timing. The acquisition step performs the acquisition of the verification information by reading the time written in the predetermined memory address at the timing of the verification, and the determination step includes: As a result of the comparison, when the time indicated in the verification information is increased from the time indicated in the comparison information, the information processing apparatus may determine that the information processing apparatus is valid.
これにより、情報処理装置の正当性の検証に時刻を用いるという実装を知らない不正な第三者が、不正な仮想マシンを実装するのを困難にすることができる。
また、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置であって、前記記録媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、前記情報処理装置は、前記記録媒体から前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備えることとしてもよい。
Thereby, it is possible to make it difficult for an unauthorized third party who does not know the implementation to use time to verify the validity of the information processing apparatus to implement an unauthorized virtual machine.
An information processing apparatus that executes processing related to reproduction of content recorded on a recording medium and includes a virtual machine therein, wherein the recording medium is executed on the virtual machine, A verification program for verifying the validity of the information processing apparatus is recorded, and the information processing apparatus reads the verification program from the recording medium and a verification timing at a predetermined memory address of the information processing apparatus. Receiving means for receiving a value request held in the verification program from the verification program, and reply means for reading the value held in the predetermined memory address and returning the read value to the verification program when the request is received It is good also as providing.
また、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置に搭載される集積回路であって、前記記録媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、前記集積回路は、前記記録媒体から前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備えることとしてもよい。 Further, the integrated circuit is mounted on an information processing apparatus that executes a process related to reproduction of content recorded on a recording medium and includes a virtual machine, and the recording medium is executed on the virtual machine. As a result, a verification program for verifying the validity of the information processing apparatus is recorded, and the integrated circuit reads out the verification program from the recording medium, and a predetermined memory address of the information processing apparatus Receiving means for receiving a request for a value held at the timing of verification from the verification program; reading the value held at the predetermined memory address when receiving the request; and reading the read value into the verification program It is good also as providing the reply means which replies to.
また、コンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の正当性を検証する検証プログラムを記録している記録媒体であって、前記検証プログラムは、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含むこととしてもよい。 Further, the recording medium stores a verification program for executing processing related to content reproduction and verifying the validity of the information processing apparatus including the virtual machine, and the verification program is stored in the information processing apparatus. An acquisition step of acquiring a value held at a predetermined memory address as verification information, and a determination of whether or not the information processing apparatus is valid based on the verification information acquired by the acquisition step It is good also as including a step.
また、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の正当性を検証する処理を、前記情報処理装置に実行させる検証プログラムであって、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含むこととしてもよい。 Further, a verification program for executing processing related to reproduction of content recorded in a recording medium and causing the information processing device to execute processing for verifying the validity of the information processing device including a virtual machine therein, Based on the acquisition step of acquiring, as verification information, a value held at a predetermined memory address of the information processing device, and whether or not the information processing device is valid based on the verification information acquired by the acquisition step And a determination step for determining whether or not.
以上、説明したように、本発明によれば、プログラムにより、自身を稼動させる仮想マシンが正規に実装されたものであることを検証できる情報処理方法を提供できるという効果を有する。
As described above, according to the present invention, there is an effect that it is possible to provide an information processing method capable of verifying that a virtual machine that operates itself is normally mounted by a program.
以下、発明を実施するための最良の形態を、図面を参照しながら説明する。
(実施の形態1)
図1を使って、本発明の一実施形態に係る記録媒体、及び情報処理装置について説明する。
記録媒体102には、仮想マシン上で動作するプログラムである、仮想マシンコード121が記録されている。記録媒体102の一実装例としては、BD(Blu−ray Disc)であるが、それに限るものではない。さらに、仮想マシンコード121は、仮想マシン検証モジュール1121、検証情報保持モジュール1122、コード依存処理モジュール1123から構成される。各モジュールの詳細は後述する。
The best mode for carrying out the invention will be described below with reference to the drawings.
(Embodiment 1)
A recording medium and an information processing apparatus according to an embodiment of the present invention will be described with reference to FIG.
The recording medium 102 stores a virtual machine code 121 that is a program that operates on the virtual machine. An example of implementation of the recording medium 102 is a BD (Blu-ray Disc), but is not limited thereto. Further, the virtual machine code 121 includes a virtual machine verification module 1121, a verification
情報処理装置101は、仮想マシンを使って、仮想マシンコード121を実行する装置であり、図1に示すように、ディスク読込部111、ユーザ操作受付部112、仮想マシン実行部113、情報保持部114、作業情報保持部118から構成される。仮想マシンとは、CPUやOS等のプラットフォームに依存せずに、プログラムを動作させるために、仮想マシンコード121として実装されたプログラムを、プラットフォーム用のネイティブコードに変換して実行するソフトウェアである。具体的には、例えば仮想マシンはJava(登録商標)仮想マシンであり、仮想マシンコード121はJava(登録商標)バイトコードであるが、これに限るものではない。 The information processing apparatus 101 is an apparatus that executes a virtual machine code 121 using a virtual machine. As illustrated 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. The virtual machine is software that converts a program implemented as the virtual machine code 121 into a native code for the platform and executes it in order to operate the program without depending on a platform such as a CPU or OS. Specifically, for example, the virtual machine is a Java (registered trademark) virtual machine, and the virtual machine code 121 is a Java (registered trademark) byte code, but is not limited thereto.
情報処理装置101の一実装例としては、CPU、ワークメモリ、フラッシュメモリ、BDドライブ、リモートコントローラとから構成されるコンピュータシステムであり、ディスク読込部111はBD(Blu−ray Disc)ドライブであり、情報保持部114はフラッシュメモリであり、ユーザ操作受付部112はリモートコントローラであり、作業情報保持部118はワークメモリであり、仮想マシン実行部113は、CPUとワークメモリを用いて動作するソフトウェアで構成する方法が挙げられるが、他にも、ハードウェアでの実装など、ソフトウェアによる構成に限定されるものではない。その他の実装形態についても、これに限定されるものではない。 As an implementation example of the information processing apparatus 101, a computer system including a CPU, work memory, flash memory, BD drive, and remote controller, the disk 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, and the virtual machine execution unit 113 is software that operates using a CPU and a work memory. Although there is a configuration method, the configuration is not limited to software configuration such as hardware implementation. Other implementations are not limited to this.
また、情報保持部114には、仮想マシン実行コード115と、仮想マシン識別情報117が保持されている。仮想マシン実行コード115は、ソフトウェアであり、検証値取得モジュール1151、仮想マシンコード実行モジュール1154から構成される。各モジュールの詳細は後述する。
仮想マシン識別情報117は、仮想マシンを識別するための情報であり、例えば、「情報処理装置メーカID+情報処理装置のモデル番号+仮想マシンのバージョン番号」などで構成される8バイトのデータであるが、仮想マシンを一意に特定できる情報であれば、これに限るものではない。
The information holding unit 114 holds a virtual machine execution code 115 and virtual
The virtual
ここで、検証情報の作成について説明する。正規の仮想マシン実行コード115の提供者は、図4に示すような仮想マシン毎に固有の検証ルールテーブルと仮想マシン識別情報117を仮想マシン管理機関に提出する。なお、上記検証ルールテーブルは仮想マシンが搭載されている再生装置毎の検証ルールテーブル、識別情報であっても良い。仮想マシン管理機関は、仮想マシンコードの実装者に対し、正規の仮想マシンの検証ルールテーブルと仮想マシン識別情報117を提供する。仮想マシンコードの実装者は、これを基に検証情報を作成する。図4は仮想マシン毎(再生装置毎)に固有の検証ルールテーブルであり、例えば、検証に使用するアドレス401と、いつ検証するかを示す検証タイミング402と、その時にアドレス401がどのような値をとっているかを示す検証値403と、その値がどのような状態であれば検証が成功なのかを示す検証ルール404などで構成される。アドレス401は図4にあるように、特定のアドレスや、特定のアドレスの範囲を表す。検証ルールテーブルは図4のようなテーブル構成に限定されるものではない。
Here, creation of verification information will be described. The provider of the regular virtual machine execution code 115 submits a verification rule table and virtual
なお、本実施の形態では、記録媒体102として、BDを想定し、そこに記録された仮想マシンコード121をディスク読込部111にて情報処理装置101に取り込んでいるが、それに限るものではなく、例えば、ディスク読込部111をインターネット接続部に置き換え、仮想マシンコード121をインターネット経由で情報処理装置101に取り込む等、他の方法で仮想マシンコード121を情報処理装置101に取り込んでもよい。 In the present embodiment, a BD is assumed as the recording medium 102, and the virtual machine code 121 recorded therein is taken into the information processing apparatus 101 by the disk reading unit 111. However, the present invention is not limited to this. For example, the virtual machine code 121 may be imported into the information processing apparatus 101 by other methods such as replacing the disk reading unit 111 with the Internet connection unit and capturing the virtual machine code 121 into the information processing apparatus 101 via the Internet.
以上で、本発明の一実施形態に係る記録媒体、及び情報処理装置についての説明を終わる。
(仮想マシンコードの実行)
次に、図2を使って、情報処理装置101での仮想マシンコードの実行について説明する。
This completes the description of the recording medium and the information processing apparatus according to the embodiment of the present invention.
(Virtual machine code execution)
Next, execution of virtual machine code in the information processing apparatus 101 will be described with reference to FIG.
まず、情報処理装置101はユーザ操作受付部112を通じて、記録媒体102上の仮想マシンコード121を実行するよう指示を受けることで処理が開始される。
仮想マシンコード121の実行が指示されると、仮想マシン実行部113は、情報保持部114から、仮想マシン実行コード115をロードし、仮想マシンを起動する(S201)。
First, the information processing apparatus 101 starts processing upon receiving an instruction to execute the virtual machine code 121 on the recording medium 102 through the user operation receiving unit 112.
When the execution of the virtual machine code 121 is instructed, the virtual machine execution unit 113 loads the virtual machine execution code 115 from the information holding unit 114 and starts the virtual machine (S201).
次に、ディスク読込部111を通じて記録媒体102から、仮想マシンコード121を読み出し、仮想マシン実行部113が仮想マシン上で仮想マシンコード121を起動する(S202)。
仮想マシン上で起動された仮想マシンコード121は、仮想マシン検証モジュール1121、及び検証情報保持モジュール1122を用いて、自身を実行している仮想マシンを含む実行環境の正当性の検証タイミング402かどうかチェックを行う(S203)。
Next, 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 (S202).
Whether the virtual machine code 121 started on the virtual machine is the
そして、検証タイミング402だった場合、仮想マシンを含む実行環境の正当性の検証を行う(S204)。この処理の詳細については、後述する。
S204の検証結果を判定し(S205)、NGの場合、NGの回数が規定回数になったかどうか確認する(S208)。ここで、NGが規定回数以上である場合、仮想マシンコード121は自身の実行を終了するように実装されているため、その実行を終了する。
If it is the
The verification result of S204 is determined (S205), and in the case of NG, it is confirmed whether the number of NG has reached the specified number (S208). Here, when NG is equal to or greater than the specified number of times, the virtual machine code 121 is mounted so as to end its own execution, and therefore ends its execution.
S208でNGが規定回数に達していない場合は、S203からやり直す。規定回数は1回でもよいし、複数回でもよく、複数にすれば検証の精度を向上させる効果が得られる。
S205で検証結果がOKの場合、仮想マシンコード121中のコード依存処理モジュール1123で定義されたコード依存処理を実行する(S206)。コード依存処理モジュール1123には、仮想マシンコード121毎に異なる処理が定義されており、例えば、記録媒体102に別途記録された映画等のコンテンツ122の著作権保護処理として、コンテンツ122の復号処理を行うが、これに限るものではない。
If NG has not reached the specified number in S208, the process starts again from S203. The prescribed number of times may be one time or a plurality of times, and the effect of improving the accuracy of verification can be obtained by using a plurality of times.
If the verification result is OK in S205, the code dependency processing defined by the code dependency processing module 1123 in the virtual machine code 121 is executed (S206). The code-dependent processing module 1123 defines different processes for each virtual machine code 121. For example, as a copyright protection process for the content 122 such as a movie recorded separately on the recording medium 102, a decryption process for the content 122 is performed. Yes, but not limited to this.
コード依存処理が終了した時点で、仮想マシンコード121の実行を終了する(S207)。
以上で、情報処理装置101での仮想マシンコード121の実行についての説明を終わる。
(仮想マシンを含む実行環境の正当性検証)
仮想マシンを含む実行環境の正当性検証処理の詳細について説明する。この処理は、仮想マシンコード121によって、自身を実行する仮想マシンを含む実行環境が正規のものかどうかを検証する処理である。
When the code-dependent processing is finished, the execution of the virtual machine code 121 is finished (S207).
This is the end of the description of the execution of the virtual machine code 121 in the information processing apparatus 101.
(Verification of execution environment including virtual machines)
Details of the validity verification processing of the execution environment including the virtual machine will be described. This process is a process for verifying whether or not the execution environment including the virtual machine that executes the virtual machine code 121 is genuine.
仮想マシン実行コード115は、インタフェースや処理内容等の実装に必要な情報が公開されているため、誰でも実装することができる。このため、正規の仮想マシン実行コード115でなければ、仮想マシンコード121の実行時に不正な動作を行い、仮想マシンコード121の処理が正しく行われなくなる可能性がある。仮想マシンコード121が、例えば、記録媒体102に別途記録されている映画等のコンテンツ122の著作権を保護するプログラムである場合には、不正にコンテンツ122を再生され、著作権を保護できなくなるため、仮想マシンを含む実行環境の検証処理が必要になる。 The virtual machine execution code 115 can be implemented by anyone because information necessary for the implementation such as the interface and processing contents is disclosed. For this reason, if it is not the regular virtual machine execution code 115, 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. For example, if the virtual machine code 121 is a program that protects the copyright of the content 122 such as a movie that is separately recorded on the recording medium 102, the content 122 is illegally reproduced and the copyright cannot be protected. The execution environment including the virtual machine needs to be verified.
仮想マシンコード121を構成するモジュールについて説明する。仮想マシン検証モジュール1121は、自身を実行する仮想マシンを含む実行環境が正規のものかどうかを検証するモジュールであり、検証情報保持モジュール1122は、仮想マシンを含む実行環境の正当性を検証するための情報である。具体的には、仮想マシンから仮想マシン識別情報117と検証する値を取得し、その値が検証情報保持モジュール1122で保持する検証ルールと合致するかどうかで、仮想マシンを含む実行環境の正当性を検証する。これにより、異なる再生装置にプレーヤモデル番号、メーカ名等を含むデータをコピーしたエミュレータを作成し、例えばコンピュータ上で仮想マシン及び該エミュレータを搭載したとしても、図4の仮想マシン毎の検証ルールテーブル400に合致するようにエミュレータを作成するのは困難であり、検証ルールを満たさないものとなるため、かかる不当なエミュレータ上における再生を阻止することができる。検証処理の詳細については、後述する。
The modules constituting the virtual machine code 121 will be described. The virtual machine verification module 1121 is a module that verifies whether the execution environment including the virtual machine that executes the virtual machine is legitimate. The verification
図5は検証情報保持モジュール1122が保持する検証ルールテーブル500の一例である。検証情報保持モジュール1122が保持する検証ルールテーブル500は、図4で提供された仮想マシン毎の検証ルールテーブル400の一部または全部と、仮想マシン識別情報117の対応を示している。検証情報保持モジュール1122が保持する検証ルールテーブル500で使用する検証ルールは、仮想マシンコード121作成者が検証ルールテーブル400から自由に選択して利用することができ、仮想マシンコード121毎に独自の検証を行うことが可能となる。
FIG. 5 shows an example of the verification rule table 500 held by the verification
次に、仮想マシン実行コード115を構成するモジュールについて説明する。
検証値取得モジュール1151は、仮想マシンコード121中の仮想マシン検証モジュール1121が指定したアドレスを、作業情報保持部118から検索し、そのアドレスに保持されている値を取得するモジュールである。
仮想マシンコード実行モジュール1154は、仮想マシンコード121中のコード依存処理モジュール1123で定義される処理をプラットフォームに依存するネイティブコードに変換しながら、実行するモジュールである。
Next, modules constituting the virtual machine execution code 115 will be described.
The verification
The virtual machine code execution module 1154 is a module that executes the process defined by the code dependency processing module 1123 in the virtual machine code 121 while converting it into native code that depends on the platform.
続いて、図3を使って、仮想マシンを含む実行環境の正当性検証処理フローについて説明する。
最初に、図2のS202で仮想マシンコード121を起動すると、仮想マシン検証モジュール1121は、情報保持部114の仮想マシン識別情報117と検証情報保持モジュール1122が保持する検証ルールテーブル500とを比較して、利用する検証タイミング402を検出しておく。例えば、仮想マシン識別情報117が0x0011ff0000011001であったとして、以下の説明を行う。次にS203で、検出された検証タイミングになったときに、以下の検証処理を行う。
Subsequently, the validity verification processing flow of the execution environment including the virtual machine will be described with reference to FIG.
First, when the virtual machine code 121 is activated in S202 of FIG. 2, the virtual machine verification module 1121 compares the virtual
まず、仮想マシンコード121は、検証タイミング402に対応するアドレス401を指定して、仮想マシンに検証情報の要求を行う(S301)。例えば、メニュー1を表示した場合に、アドレス0x00ff0001を指定して、検証情報の要求を行う。
仮想マシンは、作業情報保持部118上の指定されたアドレス0x00ff0001に保持されている値を取得し(S302)、その値を検証情報として仮想マシンコード121に返信する(S303)。
First, the virtual machine code 121 specifies an
The virtual machine acquires the value held at the designated address 0x00ff0001 on the work information holding unit 118 (S302), and returns the value as verification information to the virtual machine code 121 (S303).
仮想マシンコード121は、返信された検証情報を取得し(S304)、検証情報と検証値403を検証ルール404に基づいて検証し、その結果を図2のS205に渡す。今の例では、検証情報が0xedと同値であれば検証結果はOKであり、それ以外であればNGである。
以上で、仮想マシンを含む実行環境の正当性検証処理の説明を終わる。
The virtual machine code 121 acquires the returned verification information (S304), verifies the verification information and the
This is the end of the description of the validity verification processing of the execution environment including the virtual machine.
なお、正規の仮想マシンが指定されたアドレスの情報を取得することができれば、アドレス402は、物理/論理アドレス、実/仮想アドレスを問わない。また仮想マシンは指定されたアドレスをそのまま使用するのではなく、アドレスマップ情報をもとに作業情報保持部118に適したアドレスに変換してから、検証情報を取得するようにしてもよい。アドレスマップ情報は作業情報保持部118の該当領域を示すようにできればよく、静的なだけではなく動的に変化しても対応を管理するように構成すればよい。
It should be noted that the
また、本実施の形態では、検証値のデータ長として、1バイトのデータ長を用いているが、これに限るものではない。
また、作業情報保持部118は全ての領域を、検証値取得モジュール1151で参照できるようにする必要はなく、一部の領域は参照を不可能にするように実装することができ、仮想マシンを含む実装環境の不正な解析に対する耐性を向上させることが可能となる。
In this embodiment, a data length of 1 byte is used as the data length of the verification value. However, the present invention is not limited to this.
In addition, the work information holding unit 118 does not need to be able to refer to all areas by the verification
(検証ルールの例)
本実施の形態では、作業情報保持部118上の値を取得して、それを検証情報としていたが、検証情報として用いる値や、検証ルールについて以下に説明する。ただし、これらに限ったものではなく、作業情報保持部118上に展開される値であればいかなる値も検証情報の候補である。
(Example of validation rule)
In the present embodiment, a value on the work information holding unit 118 is acquired and used as verification information. Values used as verification information and verification rules will be described below. However, the values are not limited to these, and any value that is developed on the work information holding unit 118 is a candidate for verification information.
(1)コンテンツに関する情報
例えば図5の検証情報保持モジュール1122が保持する検証ルールテーブル500では、初期動画再生時にアドレス0x00110044〜0x001100ffのデータの中にコンテンツ122のインデックスファイルのタイムスタンプと同じ値が入っていれば検証OKとなる。このように正規の仮想マシンを含む実行環境ではコンテンツに関連する情報をあるタイミングで作業情報保持部118上の特定の領域に格納するようにすることで、実際に仮想マシンコード121実行時に、その特定の領域に規定の情報が存在するかどうかを検証することで、正当性の評価を行うようにできる。なお、アドレスは範囲指定ではなく、1つのアドレスでもよい。アドレス、検証タイミングとも仮想マシンを含む実行環境に依存する。
(1) Information related to content For example, in the verification rule table 500 held by the verification
上記以外にコンテンツに関連する情報としては、インデックスファイルやナビゲーションファイル、その他記録媒体102に格納されているファイルのファイルサイズやタイムスタンプが利用できる。また、記録媒体102に格納されているプレイリストやプレイアイテムの数、コンテンツハッシュテーブルの一部または全部の値、あるボタンをクリックした際の音情報の一部または全部のデータ、インデックステーブルのハッシュ値の一部または全部、などコンテンツに関連する情報であればいかなる情報も利用可能である。 In addition to the information described above, the file size and time stamp of an index file, a navigation file, and other files stored in the recording medium 102 can be used as information related to the content. Also, the number of playlists and play items stored in the recording medium 102, some or all values of the content hash table, some or all data of sound information when a certain button is clicked, hash of the index table Any information can be used as long as it is information related to the content, such as part or all of the value.
(2)仮想マシンを含む実行環境に依存する情報
例えば図6のように情報処理装置101にさらに乱数生成部601を追加し、仮想マシンコード121の指示で乱数生成部601を動作させるように実装する。そして、図5の検証情報保持モジュール1122が保持する検証ルールテーブル500のように、ディスク挿入時に仮想マシンを含む実行環境に乱数を生成させ、アドレス0x00aa0010に格納させ、仮想マシンコード121はその値を保持する。その後、再生開始時やユーザ操作時に同一アドレスに、再度乱数を生成・格納させ、仮想マシンコード121は新たに生成した乱数を取得して、先に保持していた乱数と比較して値が変更されていれば検証OKとする。不正な仮想マシンが、乱数生成機能がない場合や、どこに乱数を書き込むのかを分かっていない場合には、検証OKにはならない。なお、乱数のシードにはアドレスや仮想マシン識別情報117など仮想マシンを含む実行環境毎に異なる値にすれば、同じ乱数を生成する可能性が低くなる。
(2) Information Dependent on Execution Environment Including Virtual Machine For example, as shown in FIG. 6, a random number generation unit 601 is further added to the information processing apparatus 101 and the random number generation unit 601 is operated in accordance with an instruction from the virtual machine code 121 To do. Then, as in the verification rule table 500 held by the verification
また、仮想マシンは実装状態によって使用するメモリなどのリソースが異なる。ここで例えば、仮想マシンコード121実行中の作業情報保持部118の空き領域が特定の値の範囲に収まっていれば検証OKとすることもできる。この場合不正な仮想マシンが動作する環境でにおいて、使用しているメモリサイズが違えば、検証OKにはならない。
上記以外に仮想マシンを含む実行環境に依存する情報としては、ハッシュ計算値(例えば、仮想マシンコードの直前の戻り値を使用するなど)、コンテンツに関する情報だが情報処理装置101毎に表示する内容が違う情報(例えば、メニューのボタンの数、再生できる音声や映像の違いなど)、などの情報が利用できる。
In addition, virtual machines have different resources such as memory used depending on the mounting state. Here, for example, if the vacant area of the work information holding unit 118 during execution of the virtual machine code 121 is within a specific value range, the verification may be OK. In this case, if the memory size being used is different in an environment where an unauthorized virtual machine operates, verification is not OK.
Other than the above, the information depending on the execution environment including the virtual machine includes a hash calculation value (for example, using a return value immediately before the virtual machine code), information related to the content, but information displayed for each information processing apparatus 101. Different information (for example, the number of menu buttons, the difference in sound and video that can be played back, etc.) can be used.
このように仮想マシンを含む実行環境に固有の機能や実装状態、その他の情報に依存するあらゆる値を検証に利用することが可能である。
(3)時間やタイミングに依存する情報
例えば図7のように情報処理装置101にさらに計時部701を追加する。計時部701は現在時刻を計時し、作業情報保持部118の特定の領域に書き込むように実装する。そして、図5の検証情報保持モジュール1122が保持する検証テーブルルール500のように、仮想マシンコード121は、ディスク挿入時に0x00eee002から現在時刻を取得して、保持し、次にクリップファイル切り替わり時に同一アドレスから現在時刻を取得して、前回保持した時刻と比較し、増加していれば検証OKとする。この場合、単に値が変更されているだけではなく、必ず増加しているという検証ルールが設定されているため、この実装を知っていないと、不正な実行環境を作成することはできない。
In this way, it is possible to use all values depending on functions, mounting states, and other information unique to the execution environment including the virtual machine for verification.
(3) Information Dependent on Time and Timing For example, a timer 701 is added to the information processing apparatus 101 as shown in FIG. The clocking unit 701 is mounted so as to clock the current time and write it in a specific area of the work information holding unit 118. Then, as in the
また、あるタイトルを再生中には早送り禁止になっている場合があり、そのタイトルを再生しているタイミングでは、作業情報保持部118の特定の領域に早送り禁止の情報を保持する。この場合、該当のタイトル再生時に、その特定の領域にある現在の状態をチェックして、早送り禁止を示す情報であれば検証OKとする。
上記以外に時間やタイミングに依存する情報としては、情報処理装置101に関するシステムパラメータや動作パラメータなど、また、現在再生しているチャプタ番号、現在再生しているストリームに含まれる時間情報(例えば、ATS、PTS、PCRなど)、などの情報が利用できる。
Further, there is a case where fast-forwarding is prohibited during playback of a certain title. At the timing when the title is played back, information on prohibiting fast-forwarding is held in a specific area of the work information holding unit 118. In this case, when the corresponding title is reproduced, the current state in the specific area is checked, and if it is information indicating that fast-forwarding is prohibited, the verification is OK.
In addition to the above, information depending on time and timing includes system parameters and operation parameters related to the information processing apparatus 101, chapter number currently being played back, time information included in the stream being played back (for example, ATS) , PTS, PCR, etc.) can be used.
このように時間やタイミングで変化する情報であれば、いかなる情報も検証に利用することが可能である。ただし、時間やタイミングで変化するデータであっても、コンテンツ情報自身(暗号状態、復号状態、デコードの前後を問わない)等のように、非常に転送レートが高い情報を対象とすると、所定タイミングのあるアドレスに基づくメモリ内の情報は正当な機器においても正確に予測する事は困難であるため、プレーヤの製造者自身が実質的に予測できる情報を用いることが望ましい。特に、時間やタイミングで変化するデータであって複数回メモリの確認を行いその変化値を確認するルール等の場合には、設定タイミングと確認タイミングをより厳密に同じタイミングで情報を確認することが必要であるが、正確なタイミングで検証ということは現実は難しいため、あまり転送レートが高い情報を用いないか、又は、検証ルール404において正当な機器と判断される検証ルール404を緩くする事が望ましい。
Any information that changes with time or timing can be used for verification. However, even if the data changes with time and timing, if information with a very high transfer rate is targeted, such as content information itself (regardless of encryption state, decryption state, and before and after decoding), the predetermined timing Since it is difficult to accurately predict information in a memory based on a certain address even with a legitimate device, it is desirable to use information that can be substantially predicted by the player manufacturer. In particular, in the case of a rule that checks the memory multiple times and checks the change value for data that changes with time and timing, it is possible to check the information at the exact same timing as the setting timing and the checking timing. Although it is necessary to verify at an accurate timing, it is difficult in reality, so information that has a high transfer rate is not used, or the
検証情報保持モジュール1122が保持する検証ルールテーブル500は上記で説明した情報をどのように組み合わせてもよく、仮想マシンを含む実行環境ごとに固有の検証ルールテーブル500が作成できる。
(実施の形態2)
図8は本発明の実施の形態2における記憶媒体と情報処理装置のシステムモデルを示す図である。
The verification rule table 500 held by the verification
(Embodiment 2)
FIG. 8 is a diagram showing a system model of the storage medium and the information processing apparatus in
図8に示すように記憶媒体802には、再生順序やユーザ操作時の挙動を規定しているコマンドプログラム811と、クリップファイルの属性やタイムサーチマップ、プレイリスト、プレイアイテムなどを記述しているクリップファイル関連情報812、映像や音声などのコンテンツを含むクリップファイル813、仮想マシンを含む実行環境の正当性を検証するための検証用コード814、コンテンツの復元処理を行う際に使用する秘密情報用コード815、復元処理を行う際に秘密情報と組み合わせて実際の復元情報を生成するための復元情報ファイル816が含まれる。
As shown in FIG. 8, the
情報処理装置801には、コマンドプログラム811を処理するコマンド処理部822と、ユーザ入力を受け付けてユーザ操作制御部823に送り、また、コンテンツ中の再生タイトルの管理を行うモジュール管理部824と、ユーザ操作に対応する機能を再生制御部827から呼び出して制御するユーザ操作制御部823と、装置状態や処理中の変数を保持するレジスタ826と、クリップファイル関連情報812のプレイリストやプレイアイテムの処理、また、コマンド処理部822やユーザ操作制御部823からの機能の呼び出しの処理を行い、プレゼンテーション処理部831を制御する再生制御部827と、検証用コード814を実行して、仮想マシンを含む実行環境の正当性を検証する検証処理部829と、コンテンツの復元処理に使用する秘密情報を秘密情報用コード815から算出する秘密情報計算部830と、コンテンツの再生や表示を制御するプレゼンテーション処理部831と、復元情報ファイル816と秘密情報をもとに復元情報を生成し、コンテンツの復元をプレゼンテーションエンジンに通知する復元処理部832とを含む。コマンド処理部822とユーザ操作制御部823を含めて動作モジュール821と呼び、レジスタ826と再生制御部827を含めて再生制御処理部825と呼び、また検証処理部829と秘密情報計算部830を含めて仮想マシン828と呼ぶこととする。上記構成は一例であり、情報処理装置801の具体例としてはBDドライブを含む処理装置であり、ハードウェアでの実装やソフトウェアによる構成に限定されるものではない。以下、図8、図9および図10の処理フローを用いてその動作を説明する。
The information processing apparatus 801 includes a
図9は情報処理装置101での検証処理とコンテンツの復元処理の動作を示す図である。
まず、検証処理部829は仮想マシン828が保持している仮想マシン識別情報903を取得し(S1001)、検証用コード814のうち、仮想マシン識別情報903に対応する一部または全部のコードを読み込んで割り込み管理情報904を取得し、保持する(S1002)。割り込み管理情報904は例えばタイトル毎などの再生箇所に応じて、検証用コード814の実行開始場所(PC:プログラムカウンター)を決定するための情報であり、実行開始場所と再生箇所の組み合わせが記述されている。なお、仮想マシン識別情報903は仮想マシンを識別するための情報であり、例えば、「情報処理装置メーカID+情報処理装置のモデル番号+仮想マシンのバージョン番号」などで構成されるデータであるが、仮想マシンを一意に特定できる情報であれば、これに限るものではない。また、仮想マシン識別情報903に署名を付与してその正当性をチェックするようにしてもよい。
FIG. 9 is a diagram illustrating operations of verification processing and content restoration processing in the information processing apparatus 101.
First, the
次に、モジュール管理部824は、今から再生するタイトル番号を含めて、検証処理部829に検証処理の開始を指示する(S1003)。
検証処理部829は、指示に含まれるタイトル番号をもとに、割り込み管理情報904から該当のPCを取得し、検証用コード814を取得したPCから実行する(S1004)。
Next, the
Based on the title number included in the instruction, the
次に、実行された検証用コード814は、検証する際に参照するメモリ領域を含む検証情報メモリ902を参照して、仮想マシンを含む実行環境の検証を行う(S1005)。なお、検証方法の詳細については実施の形態1で示した検証方法を利用することが可能であるため、ここでの詳細な説明は割愛する。
検証結果がOKであれば、そのまま処理を続行する(S1006)。NGの場合には、規定回数に達していなければそのまま処理を続行するが、NGの規定回数に達していれば(S1007)、コンテンツや秘密情報用コード815の一部または全部、またはその他の処理データを保持するメモリ901上の特定箇所のデータを書き換えることにより(S1008)、情報処理装置101が正常に動作しないようにできる。具体的には、再生中に秘密情報計算部830が復元処理に必要な秘密情報用コード815もしくは秘密情報をメモリ901上に保持しているので、その一部または全部を書き換えることにより、復元処理を正常に動作できないようにして、正常な再生をできないようにするという効果が得られる。復元処理については後述する。また、再生中のタイトルの一部もメモリ901上に保持するようにできるので、NGの場合にメモリ901上のタイトルの一部または全部を書き換えることで、不正な仮想マシンを含む実行環境では正常に再生できなくするという効果が得られる。なお、書き換える情報は上記に限らず、上記以外の情報を書き換えても同様の効果が得られる。
Next, 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 (S1005). Note that since the verification method described in
If the verification result is OK, the processing is continued as it is (S1006). In the case of NG, if the prescribed number of times has not been reached, the process is continued, but if the prescribed number of NG has been reached (S1007), part or all of the content and
なお、検証結果がNGの場合にメモリ901上の情報を書き換えるとしたが、これに限らず、モジュール管理部824にNGを通知し、モジュール管理部824からの指示で、再生を停止するようにしてもよい。また秘密情報計算部830にNGを通知して秘密情報の算出を停止するようにしてもよく、これに限らず、正常に再生できないようにできれば、その他の構成要素にNGを通知してもよい。
Although the information on the
またS1003の検証処理開始指示は再生タイトルが切り替わる度に発生するものであり、ユーザ操作などによりタイトルが変更になった場合など不定期に発生する。ただし、早送りやまき戻しなどの特殊再生時には、1つの検証処理が終了する前に検証情報メモリ902の内容が変更される恐れがあるため、検証処理開始指示を行わないようにしてもよい。また、現在検証処理を実行している(S1005〜S1007を繰り返している)最中に、別のタイトル番号を含む検証処理開始指示があった場合には、現在の検証処理を終了して、新たなタイトル番号に対応する検証用コード814の実行を行う(S1004からやり直す)。 Further, the verification processing start instruction in S1003 is generated every time the reproduction title is switched, and is generated irregularly, for example, when the title is changed by a user operation or the like. However, at the time of special reproduction such as fast-forwarding or rewinding, the contents of the verification information memory 902 may be changed before one verification process is completed, so that the verification process start instruction may not be issued. If there is a verification process start instruction including another title number during the current verification process (S1005 to S1007 is repeated), the current verification process is terminated and a new The verification code 814 corresponding to the correct title number is executed (re-executed from S1004).
また、S1004の検証用コード814の実行は、S1003の検証開始指示で受け取ったタイトル番号によっては実行しないようにできる。具体的には、検証用コード814生成側で、割り込み管理情報904に、検証用コード814の実行が必要ではないタイトル番号を含めないようにするか、特定のPCを設定して、そのPCの時には実行を行わないように規定するという方法がある。 Further, the execution of the verification code 814 in S1004 may not be executed depending on the title number received in the verification start instruction in S1003. Specifically, the verification code 814 generation side does not include a title number that does not require execution of the verification code 814 in the interrupt management information 904, or a specific PC is set, and the PC's Sometimes there is a way to specify not to execute.
また、検証情報メモリ902とメモリ901は物理的には同一のメモリ上で領域が異なるものとしてもよい。またそれぞれ、参照禁止や書換禁止領域を設定することも可能であり、誤動作防止や不正な解析に対する耐性が高まる効果が得られる。
(復元処理)
上記の復元処理とは以下のような方法がある。
Further, the verification information memory 902 and the
(Restore process)
The restoration process includes the following methods.
図8、図9に示すように、まず、秘密情報計算部830は秘密情報用コード815を読み込み、秘密情報計算用割り込み管理情報905を取得し、保持する。秘密情報計算用割り込み管理情報905は、例えば、プレイアイテム番号ごとに、秘密情報用コード815の実行開始位置(秘密情報用PC:プログラムカウンター)を決定するための情報であり、プレイアイテム番号と秘密情報用PCの対応が記述されている。
As shown in FIGS. 8 and 9, first, the secret information calculation unit 830 reads the
復元処理部832は復元情報ファイル816の一部または全部を読み込んで保持する。
再生制御部827は現在どのプレイアイテムのどの位置を再生しているかを管理しており、あるプレイアイテムを再生すると、例えば10秒ごとにそのプレイアイテム番号と何番目の期間かを示す期間情報を秘密情報計算部830に通知する。なお、何番目の期間ではなく、何秒目かを通知しても良い。また、通知のタイミングは10秒ではなく、毎秒や、プレイアイテム切り替わり毎など、定期的または不定期的に通知するようにしてもよい。また、その通知のタイミング情報は秘密情報用コード815に含めて、再生制御部827が秘密情報用コード815からタイミング情報を取得しても良い。
The
The
次に秘密情報計算部830は、通知されたプレイアイテム番号をもとに秘密情報計算用割り込み管理情報905から秘密情報用PCを取得し、該当する箇所から秘密情報用コード815を実行する。
実行された秘密情報用コード815は期間情報をもとに、その期間に適切な秘密情報を算出して、復元処理部832に通知する。
Next, the secret information calculation unit 830 acquires the secret information PC from the secret information calculation interrupt management information 905 based on the notified play item number, and executes the
The executed
復元処理部832は、復元情報ファイルから再生箇所に適した復元情報を取得し、秘密情報を使用してXOR(Exclusive OR:排他的論理和演算)計算などで復号し、復号した復元情報をプレゼンテーション処理部831に通知する。
プレゼンテーション処理部831は、復元情報に含まれる復元位置のデータと、復元情報に含まれる復元データをXOR計算して上書きする。復元位置は、クリップファイルの先頭からのパケット数や、パケットに付与されている読み出し時間情報、再生時間情報など、復元する位置を一意に特定できる情報であれば良い。
The
The presentation processing unit 831 performs XOR calculation on the restoration position data included in the restoration information and the restoration data included in the restoration information, and overwrites them. The restoration position may be information that can uniquely specify the restoration position, such as the number of packets from the top of the clip file, read time information, and reproduction time information attached to the packets.
以上により変形されたコンテンツを復元することが可能となり、正常に再生することができる。そこで、例えば上記の検証処理でNGだった場合には秘密情報計算部830が使用しているメモリ901上の領域の一部または全部を書き換えることで、正しい秘密情報を取得できないようにして、正常な再生をできないようにすることが可能となる。なお、書き換えるのは秘密情報用コード815や秘密情報の一部または全部など秘密情報の算出に必要なデータ領域であればよい。
The modified content can be restored as described above, and can be normally played back. Thus, for example, if the verification process is NG, the secret information calculation unit 830 rewrites part or all of the area on the
なお、プレイアイテム番号を使用したが、タイトル番号、プレイリスト番号、プレイアイテム番号およびそれらの組み合わせなど現在再生している位置が一意に特定できれば、いかなる情報を使用することも可能である。
また、プレゼンテーション処理部831が復元位置のデータと復元データのXOR計算をして上書きするとしたが、復元処理部832が復元情報を通知せずに、メモリ901上に保持されているクリップファイルを直接参照して、XOR計算および上書きを行うようにしてもよい。
Although the play item number is used, any information can be used as long as the currently reproduced position such as the title number, play list number, play item number, and combinations thereof can be uniquely identified.
In addition, the presentation processing unit 831 performs an XOR calculation between the restoration position data and the restoration data and overwrites it. However, the
なお、復元情報ファイル816が復元情報を含むとしたが、図11に示すように、クリップファイル1113のストリーム内に復元情報を多重することも可能である。具体的には、復元情報をPMTや独自パケットに格納して、映像や音声などのストリームに多重する。この場合、復元処理部1132は再生中のストリームから復元情報を含むパケットを取得し、復元情報を得ることができる。その他の構成は図8と同様である。
Although the
復元情報には、復元情報を含むパケットからの相対パケット数およびそのパケットの何バイト目のデータを復元するかを示す復元位置と、復元位置のデータとXOR計算するための復元データが含まれている。復元処理部1132は、秘密情報計算部830から通知された秘密情報を使用してXOR計算などで復元情報を復号し、復号した復元情報をもとに復元位置のデータと復元データをXOR計算して、その結果を復元位置に上書きすることで、変形されたコンテンツを復元することが可能となる。 The restoration information includes the relative number of packets from the packet including the restoration information, the restoration position indicating which byte data of the packet is restored, the restoration position data, and the restoration data for XOR calculation. Yes. The restoration processing unit 1132 uses the secret information notified from the secret information calculation unit 830 to decode the restoration information by XOR calculation or the like, and performs XOR calculation of the restoration position data and the restoration data based on the decoded restoration information. Thus, the modified content can be restored by overwriting the result in the restoration position.
このように復元情報をファイルではなく、クリップファイルのストリームに多重して復元処理を行うことも可能であるが、秘密情報計算部830は同様の処理を行えばよい。
なお、復元処理部1132は復号後の復元情報をプレゼンテーション処理部1131に通知してもよく、その場合、プレゼンテーション処理部1131が復元情報をもとに復元位置のデータと復元データをXOR計算して、復元位置のデータに上書きすれば復元処理が可能である。
As described above, it is possible to perform the restoration process by multiplexing the restoration information on the clip file stream instead of the file, but the secret information calculation unit 830 may perform the same process.
Note that the restoration processing unit 1132 may notify the presentation processing unit 1131 of the decoded restoration information. In this case, the presentation processing unit 1131 performs XOR calculation on the restoration position data and the restoration data based on the restoration information. If the data at the restoration position is overwritten, the restoration process can be performed.
また、復元処理や、復元情報の復号にXORを使用したが、これに限らずAES(Advanced Encryption Standard)やDES(Data Encryption Standard)など、どのような演算を使用しても良い。
なお、図12は上記図8および図11で示した検証処理と復元処理の構成を一般化した構成であり、仮想マシン1228および復元処理部1232以外の構成要素は、一般的なディスク再生のシステムモデルである。つまり、本願の検証処理と復元処理を実現する実装は、一般的なディスク再生のシステムモデルをほとんど変更する必要なく実装することが可能であるという特徴がある。
In addition, although XOR is used for restoration processing and restoration information decoding, the present invention is not limited to this, and any calculation such as AES (Advanced Encryption Standard) and DES (Data Encryption Standard) may be used.
FIG. 12 is a generalized configuration of the verification process and the restoration process shown in FIGS. 8 and 11, and the components other than the virtual machine 1228 and the
なお、本実施の形態では、検証処理部832が検証用コード814を直接読み込み、秘密情報計算部830が秘密情報用コード815を直接読み込むような記述をしたが、これに限らず、その他の構成要素を経由して取得しても良い。また、検証用コード814や秘密情報用コード815はコマンドプログラム811や、クリップファイル関連情報812など記憶媒体802上の他の情報に含まれるように記述してもよい。
In the present embodiment, the description has been made such that the
また、復元情報や、割り込み情報などの各通知は図示していない一般演算用のレジスタ経由や、メモリ901経由などで通知することが可能であるが、この限りではない。
また、割り込み管理情報904は、検証用コード814から取得するとしたが、別ファイルとしたり、記憶媒体802上のその他の情報に記述しても良い。また、秘密情報計算用割り込み管理情報905も同様に、別ファイルとしたり、記憶媒体802上のその他の情報に記述しても良い。
In addition, each notification such as restoration information and interrupt information can be notified via a general calculation register (not shown) or via the
Although the interrupt management information 904 is acquired from the verification code 814, it may be a separate file or described in other information on the
(その他変形例)
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
(1)上記の情報処理装置は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記RAMまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、情報処理装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
(Other variations)
Although the present invention has been described based on the above embodiment, it is needless to say that the present invention is not limited to the above embodiment. The following cases are also included in the present invention.
(1) The information processing apparatus is specifically a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like. A computer program is stored in the RAM or hard disk unit. The information processing apparatus achieves its functions by the microprocessor operating according to the computer program. Here, the computer program is configured by combining a plurality of instruction codes indicating instructions for the computer in order to achieve a predetermined function.
(2)上記の情報処理装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。 (2) A part or all of the constituent elements constituting the information processing apparatus may be configured by a single system LSI (Large Scale Integration). The system LSI is an ultra-multifunctional LSI manufactured by integrating a plurality of components on a single chip, and specifically, a computer system including a microprocessor, ROM, RAM, and the like. . A computer program is stored in the RAM. The system LSI achieves its functions by the microprocessor operating according to the computer program.
また、この場合、LSI製造者と情報処理装置製造者は異なる場合がある。このとき、LSI製造者は、例えば乱数生成機能や計時機能など検証に使用できる機能を実装して提供することで、情報処理装置製造者は製造する装置に合った検証ルールや検証用アドレスを規定することができる。よってLSI製造者はLSIごとに検証ルールを規定・管理するコストを削減でき、情報処理装置製造者は製造する装置のバージョンごとに自由に検証ルールを規定できるという効果が得られる。 In this case, the LSI manufacturer and the information processing device manufacturer may be different. At this time, for example, the LSI manufacturer provides and implements functions that can be used for verification, such as a random number generation function and a clocking function, so that the information processing apparatus manufacturer defines verification rules and verification addresses suitable for the device to be manufactured. can do. Therefore, the LSI manufacturer can reduce the cost for defining and managing the verification rule for each LSI, and the information processing apparatus manufacturer can freely define the verification rule for each version of the device to be manufactured.
(3)上記の情報処理装置を構成する構成要素の一部または全部は、情報処理装置に脱着可能なICカードまたは単体のモジュールから構成されているとしてもよい。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。 (3) Part or all of the constituent elements constituting the information processing apparatus may be configured as an IC card that can be attached to and detached from the information processing apparatus or a single module. 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 super multifunctional LSI described above. The IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
(4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
(4) The present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or may be a digital signal composed of the computer program.
The present invention also provides a computer-readable recording medium such as a flexible disk, hard disk, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, BD (Blu-ray Disc). ), Recorded in a semiconductor memory or the like. The digital signal may be recorded on these recording media.
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
In the present invention, the computer program or the digital signal may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like.
The present invention may be a computer system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program.
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
(6)本発明は、内部に含んだ仮想マシンによりコンテンツの再生に係る処理を実行する情報処理装置において用いられる検証方法であって、前記コンテンツと共に記録媒体に記録されている検証プログラムを読み出す読出ステップと、前記検証プログラムを前記仮想マシンが実行することにより、前記仮想マシンを含む前記情報処理装置の正当性を検証する検証ステップとを含むことを特徴とする。
In addition, the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like, and executed by another independent computer system. It is good.
(5) The above embodiment and the above modifications may be combined.
(6) The present invention is a verification method used in an information processing apparatus for executing processing related to content reproduction by a virtual machine included therein, and reads out a verification program recorded on a recording medium together with the content And a verification step of verifying the validity of the information processing apparatus including the virtual machine by executing the verification program by the virtual machine.
ここで、「読出ステップ」は、(実施の形態1)において説明した図2のS202の処理と対応する。
また、「検証ステップ」は、(実施の形態1)において説明した図2のS204の処理と対応する。
(7)また、変形例(6)において、前記検証ステップは、前記検証プログラムが、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを、前記検証プログラムが判断する判断ステップとを含むこととしてもよい。
Here, the “reading step” corresponds to the process of S202 of FIG. 2 described in the first embodiment.
The “verification step” corresponds to the process of S204 in FIG. 2 described in the first embodiment.
(7) In Modification (6), the verification step includes an acquisition step in which the verification program acquires, as verification information, a value held at a predetermined memory address of the information processing apparatus, and the acquisition A determination step in which the verification program determines whether or not the information processing apparatus is valid based on the verification information acquired in the step.
ここで、「取得ステップ」は、(実施の形態1)において説明した図3のS301、S304の処理と対応する。
また、「判断ステップ」は、例えば、(実施の形態1)の、(仮想マシンを含む実行環境の正当性検証)の記載の、「仮想マシンコード121は、返信された検証情報を取得し(S304)、検証情報と検証値403を検証ルール404に基づいて検証し、その結果を図2のS205に渡す。今の例では、検証情報が0xedと同値であれば検証結果はOKであり、それ以外であればNGである。」と記載されている処理と対応する。
Here, the “acquisition step” corresponds to the processing of S301 and S304 of FIG. 3 described in (Embodiment 1).
In addition, the “determination step” includes, for example, “virtual machine code 121 obtains the returned verification information (in the first embodiment) described in (Validity verification of execution environment including virtual machine) ( S304), the verification information and the
(8)また、変形例(7)において、前記記録媒体は、さらに、前記仮想マシン上で実行され、前記コンテンツの再生に係る処理手順を含む再生関連プログラムを記録しており、前記検証方法は、さらに、検証の結果、前記情報処理装置が不正である場合、前記コンテンツの再生に係る処理手順の実行を抑制する抑制ステップを含むこととしてもよい。
ここで、「前記仮想マシン上で実行され、前記コンテンツの再生に係る処理手順を含む再生関連プログラム」とは、(実施の形態2)において図8を用いて説明した、コマンドプログラム811、クリップファイル関連情報812、クリップファイル813、検証用コード814、秘密情報用コード815、復元情報ファイル816と対応している。
(8) In Modification (7), the recording medium further records a reproduction-related program that is executed on the virtual machine and includes a processing procedure related to reproduction of the content, and the verification method includes Further, when the information processing apparatus is illegal as a result of verification, a suppression step of suppressing execution of a processing procedure related to reproduction of the content may be included.
Here, “a reproduction-related program executed on the virtual machine and including a processing procedure related to the reproduction of the content” refers to the command program 811 and the clip file described in FIG. 8 in (Embodiment 2). Corresponding to
また、「抑制ステップ」は、(実施の形態2)において説明した図10のS1006がNGの場合、およびS1008の処理と対応する。
(9)また、変形例(8)において、前記コンテンツは、所定の復元処理によって復元できるよう変形されており、前記コンテンツの再生に係る処理手順は、変形されている前記コンテンツを、前記復元処理により復元する手順を含み、前記抑制ステップは、前記復元処理の実行を抑制することとしてもよい。
Further, the “suppression step” corresponds to the case where S1006 of FIG. 10 described in (Embodiment 2) is NG and the processing of S1008.
(9) Further, in the modification (8), the content is modified so that it can be restored by a predetermined restoration process, and the processing procedure relating to the reproduction of the content includes the transformed content as the restoration process. The suppression step may include suppressing the execution of the restoration process.
ここで、「所定の復元処理」および「変形されている前記コンテンツを、前記復元処理により復元する手順」とは、(実施の形態2)の(復元処理)にて説明した処理と対応する。例えば、秘密情報用コード815、復元処理部832、プレゼンテーション処理部831が行う処理と対応する。
また、「前記抑制ステップは、前記復元処理の実行を抑止する」とは、上述の(復元処理)における、「以上により変形されたコンテンツを復元することが可能となり、正常に再生することができる。そこで、例えば上記の検出処理でNGだった場合には秘密情報計算部830が使用しているメモリ901上の領域の一部または全部を書き換えることで、正しい秘密情報を取得できないようにして、正常な再生をできないようにすることが可能となる。」などと記載されている処理と対応する。
Here, “predetermined restoration processing” and “procedure for restoring the deformed content by the restoration processing” correspond to the processing described in (restoration processing) of (Embodiment 2). For example, this corresponds to the processing performed by the
Further, “the suppression step suppresses the execution of the restoration process” means that “the content modified as described above can be restored and reproduced normally in the above (restoration process)”. Therefore, for example, if the above detection process is NG, rewriting part or all of the area on the
(10)また、変形例(7)において、前記検証情報とは、タイミングによって変化する情報であることとしてもよい。
ここで、「タイミングによって変化する情報」とは、特に、(実施の形態1)の(検証ルールの例)の(3)時間やタイミングに依存する情報、における、「このように時間やタイミングで変化する情報であれば、いかなる情報も検証に利用することが可能である。」との記載と対応する。
(10) In Modification (7), the verification information may be information that changes according to timing.
Here, the “information that changes depending on the timing” refers to “the time and timing in this way” in (3) information that depends on time and timing in (Example of verification rule) in (Embodiment 1). Any information that changes can be used for verification. "
(11)また、変形例(7)において、前記検証情報とは、前記再生を行うコンテンツに関する情報であることとしてもよい。
ここで、「前記再生を行うコンテンツに関する情報」とは、特に、(実施の形態1)の(検証ルールの例)の(1)コンテンツに関する情報、にて説明した記載と対応する。
(12)また、変形例(7)において、前記検証情報とは、前記仮想マシンを含む実行環境に依存する情報であることとしてもよい。
(11) In Modification (7), the verification information may be information related to the content to be reproduced.
Here, “the information related to the content to be played” particularly corresponds to the description described in (1) Information related to content in (Example of verification rule) in (Embodiment 1).
(12) In Modification (7), the verification information may be information depending on an execution environment including the virtual machine.
ここで、「前記仮想マシンを含む実行環境に依存する情報」とは、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報、にて説明した記載と対応する。
(13)また、変形例(7)において、前記記録媒体には、さらに、検証値と、検証ルールとが対応づけて記録されており、前記判断ステップは、前記取得ステップにより取得された前記検証情報と、前記記録媒体に記録された前記検証値とを、前記検証値に対応づけられている前記検証ルールに基づいて比較する比較ステップを含み、前記判断ステップは、前記比較の結果、前記検証ルールを満たす場合に、前記情報処理装置が正当であると判断することとしてもよい。
Here, “information dependent on an execution environment including the virtual machine” is described in (2) Information dependent on an execution environment including a virtual machine in (Example of verification rule) in (Embodiment 1). Corresponds to the description.
(13) In Modification (7), a verification value and a verification rule are further recorded in association with each other on the recording medium, and the determination step includes the verification acquired in the acquisition step. A comparison step of comparing information and the verification value recorded on the recording medium based on the verification rule associated with the verification value, and the determination step includes the verification as a result of the comparison When the rule is satisfied, it may be determined that the information processing apparatus is valid.
ここで、「検証値」とは、(実施の形態1)において図5を用いて説明した検証値403と対応する。
また、「検証ルール」とは、検証ルール404と対応する。
また、「比較ステップ」および「判断ステップ」は、(実施の形態1)において説明した、(仮想マシンを含む実行環境の正当性検証)の記載の、「仮想マシンコード121は、返信された検証情報を取得し(S304)、検証情報と検証値403を検証ルール404に基づいて検証し、その結果を図2のS205に渡す。今の例では、検証情報が0xedと同値であれば検証結果はOKであり、それ以外であればNGである。」と記載されている処理と対応する。
Here, the “verification value” corresponds to the
The “verification rule” corresponds to the
The “comparison step” and the “judgment step” are described in (Embodiment 1) described in (Validity verification of execution environment including virtual machine). Information is acquired (S304), the verification information and the
(14)また、変形例(13)において、前記取得ステップは、検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととしてもよい。 (14) In Modification (13), the obtaining step includes a requesting step for requesting a value held at the predetermined memory address at the timing of verification, and the verification method further includes the request In response to the request by the step, the step of reading the value held in the predetermined memory address, and returning the read value as the verification information to the verification program, the acquisition of the acquisition step, The verification information returned in response to the request may be acquired, and the comparison step may perform the comparison using the verification information acquired by the response.
ここで、「要求ステップ」は、(実施の形態1)において説明した図3のS301と対応する。
また、「返信ステップ」は、(実施の形態1)において説明した図3のS303と対応する。
(15)また、変形例(13)において、前記記録媒体には、さらに、複数の前記検証値が、検証のタイミングと対応づけて記録されており、前記比較ステップは、前記検証のタイミングにおいて前記取得した検証情報と、前記検証のタイミングに対応づけられている前記検証値および前記検証ルールを用いて前記比較を行い、前記判断ステップは、前記検証のタイミングになる度に、前記比較ステップを繰り返し実行させる繰り返しステップと、前記繰り返しの結果、前記検証情報と前記検証値とが所定回数以上前記検証ルールを満たさない場合に、前記情報処理装置が不正であると決定する決定ステップとを含むこととしてもよい。
Here, 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.
(15) In Modification (13), the recording medium further includes a plurality of verification values recorded in association with the verification timing, and the comparison step includes the verification timing at the verification timing. The comparison is performed using the obtained verification information, the verification value associated with the verification timing and the verification rule, and the determination step is repeated each time the verification timing comes A repetition step to be executed, and a determination step of determining that the information processing apparatus is illegal when the verification information and the verification value do not satisfy the verification rule more than a predetermined number of times as a result of the repetition. Also good.
ここで、「検証のタイミング」は、(実施の形態1)において説明した図5の検証タイミング402と対応する。
また、「繰り返しステップ」は、特に、(実施の形態1)において説明したS203、S204、S205、S207がNO、S208がNOの場合の処理と対応する。
また、「決定ステップ」は、S208がYESの場合の処理と対応する。
Here, “verification timing” corresponds to the
Further, the “repetition step” particularly corresponds to the processing when S203, S204, S205, and S207 are NO and S208 is NO described in (Embodiment 1).
Further, the “determination step” corresponds to the processing in the case where S208 is YES.
(16)また、変形例(13)において、前記記録媒体には、複数の前記検証値の各々が、前記仮想マシンを一意に識別する識別情報と対応づけられて記録されており、前記比較ステップは、前記情報処理装置に含まれる仮想マシンの識別情報と対応する検証値を用いて前記比較を行うこととしてもよい。
ここで、「識別情報」は、(実施の形態1)において説明した図5の仮想マシン識別情報117と対応している。
(16) In Modification (13), 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 The comparison may be performed using a verification value corresponding to identification information of a virtual machine included in the information processing apparatus.
Here, the “identification information” corresponds to the virtual
(17)また、変形例(7)において、前記記録媒体には、さらに、検証のタイミングと検証ルールとが対応づけられて記録されており、前記情報処理装置は、さらに、所定のタイミングにおいて前記所定のメモリアドレスに保持されている値を比較用情報として格納している格納手段を備え、前記取得ステップは、前記検証のタイミングにおいて前記所定のメモリアドレスに保持されている値を、前記検証情報として前記取得し、前記判断ステップは、前記検証のタイミングにおいて取得した前記検証情報と、前記格納手段に格納されている比較用情報とを前記検証ルールに基づいて比較する比較ステップを含み、前記判断ステップは、前記比較の結果に基づいて、前記情報処理装置が正当であるか否かの前記判断を行うこととしてもよい。 (17) In Modification (7), a verification timing and a verification rule are further recorded in association with each other on the recording medium, and the information processing apparatus further performs the processing at a predetermined timing. Storage means for storing, as comparison information, a value held at a predetermined memory address, wherein the obtaining step uses the value held at the predetermined memory address at the verification timing as the verification information; And 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 unit based on the verification rule. The step may perform the determination as to whether or not the information processing apparatus is valid based on the comparison result.
(18)また、変形例(17)において、前記取得ステップは、前記検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、前記検証方法は、さらに、前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、前記比較ステップは、前記返信により取得した前記検証情報を用いて前記比較を行うこととしてもよい。 (18) In Modification (17), the obtaining step includes a requesting step for requesting a value held at the predetermined memory address at the verification timing, and the verification method further includes: In response to the request from the request step, the method includes a reply step of reading a value held at the predetermined memory address and returning the read value to the verification program as the verification information. The verification information returned in response to the request may be acquired, and the comparison step may perform the comparison using the verification information acquired by the response.
ここで、「格納手段」は、例えば、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報、における、「そして、図5の検証情報保持モジュール1122が保持する検証ルールテーブル500のように、ディスク挿入時に仮想マシンを含む実行環境に乱数を生成させ、アドレス0x00aa0010に格納させ、」との記載に対応する。
Here, the “storage means” is, for example, “and the verification information holding of FIG. 5 in (2) Information dependent on the execution environment including the virtual machine in (Example of verification rule) in (Embodiment 1). Like the verification rule table 500 held by the
また、「取得ステップ」「比較ステップ」「判断ステップ」は、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報、における、「その後、再生開始時やユーザ操作時に同一アドレスに、再度乱数を生成・格納させ、仮想マシンコード121は新たに生成した乱数を取得して、先に保持していた乱数と比較して値が変更されていれば検証OKとする。」との記載に基づく。 In addition, the “acquisition step”, “comparison step”, and “determination step” are “replay after that” in (2) information dependent on the execution environment including the virtual machine in (example of verification rule) in (embodiment 1) The random number is generated and stored again at the same address at the start or at the time of user operation, and the virtual machine code 121 acquires the newly generated random number and the value is changed compared to the previously held random number. Based on the description of “Verification OK”.
また、「要求ステップ」は、(実施の形態1)において説明した図3のS301と対応する。
また、「返信ステップ」は、(実施の形態1)において説明した図3のS303と対応する。
(19)また、変形例(17)において、前記情報処理装置は、さらに、乱数を生成する乱数生成部を備え、前記検証方法は、さらに、前記検証のタイミングになるごとに、前記乱数生成部に乱数を生成させ、生成された乱数を、前記所定のアドレスに保持させる乱数保持ステップを含み、前記取得ステップは、前記検証のタイミングにおいて、前記乱数保持ステップにより前記保持された前記乱数を読み出すことで前記検証情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報と、前記比較用情報とが異なる場合に、前記情報処理装置が正当であると判断することとしてもよい。
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.
(19) Further, in Modification (17), the information processing apparatus further includes a random number generation unit that generates a random number, and the verification method further includes the random number generation unit at each verification timing. Generating a random number, and holding the generated random number at the predetermined address, and the obtaining step reads out the random number held by the random number holding step at the verification timing The verification information may be acquired, and the determining step may determine that the information processing apparatus is valid when the verification information is different from the comparison information as a result of the comparison. .
ここで、「乱数生成部」は、(実施の形態1)において説明した図6の乱数生成部601と対応する。
また、「乱数保持ステップ」および「判断ステップ」は、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報における、「そして、図5の検証情報保持モジュール1122が保持する検証ルールテーブル500のように、ディスク挿入時に仮想マシンを含む実行環境に乱数を生成させ、アドレス0x00aa0010に格納させ、」「その後、再生開始時やユーザ操作時に同一アドレスに、再度乱数を生成・格納させ、仮想マシンコード121は新たに生成した乱数を取得して、先に保持していた乱数と比較して値が変更されていれば検証OKとする。」との記載と対応する。
Here, the “random number generation unit” corresponds to the random number generation unit 601 in FIG. 6 described in (Embodiment 1).
Further, the “random number holding step” and the “judgment step” are “and the verification in FIG. As in the verification rule table 500 held by the
(20)また、変形例(19)において、前記乱数生成部は、前記仮想マシンを含む実行環境に依存する情報に基づいて、前記生成を行うこととしてもよい。
ここで、「乱数生成部」は、(実施の形態1)の(検証ルールの例)の(2)仮想マシンを含む実行環境に依存する情報、における、「なお、乱数のシードにはアドレスや仮想マシン識別情報117など仮想マシンを含む実行環境毎に異なる値にすれば、同じ乱数を生成する可能性が低くなる。」などの記載に対応する。
(20) In addition, in Modification (19), the random number generation unit may perform the generation based on information that depends on an execution environment including the virtual machine.
Here, the “random number generation unit” is the “random number seed” in (2) information dependent on the execution environment including the virtual machine in (Example of verification rule) in (Embodiment 1). If different values are set for each execution environment including virtual machines, such as the virtual
(21)また、変形例(17)において、前記情報処理装置は、さらに、時刻を計時して前記所定のメモリアドレスに書き込む計時部を備え、前記格納手段は、所定のタイミングにおいて前記所定のメモリアドレスに書き込まれている前記時刻を比較用情報として格納しており、前記取得ステップは、前記検証のタイミングにおいて、前記所定のメモリアドレスに書き込まれている前記時刻を読み出すことで前記検証情報の前記取得を行い、前記判断ステップは、前記比較の結果、前記検証情報に示される時刻が、前記比較用情報に示される時刻よりも増加している場合に、前記情報処理装置が正当であると判断することとしてもよい。 (21) In Modification (17), the information processing apparatus further includes a time measuring unit that measures time and writes the time to the predetermined memory address, and the storage unit stores the predetermined memory at a predetermined timing. The time written in the address is stored as comparison information, and the obtaining step reads the time written in the predetermined memory address at the verification timing to read the time in the verification information. The determination step determines that the information processing apparatus is valid when the time indicated in the verification information is greater than the time indicated in the comparison information as a result of the comparison. It is good to do.
ここで、「計時部」は、(実施の形態1)において説明した図7の計時部701と対応する。
また、「格納手段」「取得ステップ」「判断ステップ」は、(実施の形態1)の(検証ルールの例)の(3)時間やタイミングに依存する情報、における、「そして、図5の検証情報保持モジュール1122が保持する検証テーブルルール500のように、仮想マシンコード121は、ディスク挿入時に0x00eee002から現在時刻を取得して、保持し、次にクリップファイル切り替わり時に同一アドレスから現在時刻を取得して、前回保持した時刻と比較し、増加していれば検証OKとする。」などの記載に対応する。
Here, the “timer” corresponds to the timer 701 in FIG. 7 described in the first embodiment.
The “storage means”, “acquisition step”, and “determination step” are “and verification in FIG. Like the
(22)また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置であって、前記記録媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、前記情報処理装置は、前記記録媒体から前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備える情報処理装置でもある。 (22) Further, the present invention is an information processing apparatus that executes processing related to reproduction of content recorded in a recording medium and includes a virtual machine therein, the recording medium including the virtual machine on the virtual machine When executed, a verification program for verifying the validity of the information processing apparatus is recorded. The information processing apparatus includes a reading unit that reads the verification program from the recording medium; Accepting means for accepting a request for a value held at the timing of verification from the verification program to the memory address, and receiving the request, reads the value held at the predetermined memory address, and reads the read value to the memory address It is also an information processing apparatus including reply means for replying to the verification program.
また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置に搭載される集積回路であって、前記記録媒体には、前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、前記集積回路は、前記記録媒体から前記検証プログラムを読み出す読出手段と、前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備える集積回路でもある。 The present invention also provides an integrated circuit that is mounted on an information processing apparatus that executes processing related to reproduction of content recorded on a recording medium and includes a virtual machine. A verification program for verifying the validity of the information processing apparatus is recorded by being executed on the machine, and the integrated circuit reads out the verification program from the recording medium; and A receiving means for receiving a request for a value held at a predetermined memory address at the timing of verification from the verification program; and when receiving the request, the value held at the predetermined memory address is read and the read value It is also an integrated circuit provided with a reply means for returning the above to the verification program.
ここで、「検証プログラム」は、図1に示す仮想マシン検証モジュール1121と対応する。
また、「読出手段」は、図1に示すディスク読込部111と対応する。
また、「受付手段」および「返信手段」は、仮想マシン実行部113が、仮想マシン実行コード115に含まれる命令コードを読み出し、解読し、実行することにより実現される。
Here, the “verification program” corresponds to the virtual machine verification module 1121 shown in FIG.
The “reading unit” corresponds to the disk reading unit 111 shown in FIG.
Further, the “accepting unit” and the “reply unit” are realized by the virtual machine execution unit 113 reading, decoding, and executing an instruction code included in the virtual machine execution code 115.
また、本発明は、コンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の正当性を検証する検証プログラムを記録している記録媒体であって、前記検証プログラムは、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含む記録媒体でもある。 Further, the present invention is a recording medium that records a verification program that executes processing related to content reproduction and verifies the validity of an information processing device that includes a virtual machine. An acquisition step of acquiring a value held at a predetermined memory address of the information processing device as verification information, and whether or not the information processing device is valid based on the verification information acquired by the acquisition step It is also a recording medium that includes a determination step for determining.
また、本発明は、記録媒体に記録されているコンテンツの再生に係る処理を実行し、仮想マシンを内部に含む情報処理装置の正当性を検証する処理を、前記情報処理装置に実行させる検証プログラムであって、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含む検証プログラムでもある。 The present invention also provides a verification program for executing processing related to reproduction of content recorded on a recording medium and causing the information processing device to execute processing for verifying the validity of the information processing device including a virtual machine. The information processing device is validated based on an acquisition step of acquiring, as verification information, a value held at a predetermined memory address of the information processing device, and the verification information acquired by the acquisition step. It is also a verification program including a determination step for determining whether or not.
ここで、「取得ステップ」は、(実施の形態1)において説明した図3のS301、S304の処理と対応する。
また、「判断ステップ」は、例えば、(実施の形態1)の、(仮想マシンを含む実行環境の正当性検証)の記載の、「仮想マシンコード121は、返信された検証情報を取得し(S304)、検証情報と検証値403を検証ルール404に基づいて検証し、その結果を図2のS205に渡す。今の例では、検証情報が0xedと同値であれば検証結果はOKであり、それ以外であればNGである。」と記載されている処理と対応する。
Here, the “acquisition step” corresponds to the processing of S301 and S304 of FIG. 3 described in (Embodiment 1).
In addition, the “determination step” includes, for example, “virtual machine code 121 obtains the returned verification information (in the first embodiment) described in (Validity verification of execution environment including virtual machine) ( S304), the verification information and the
(23)また、本発明は、以下のような構成であってもよい。
(23−1)本発明は、仮想マシンを使って仮想マシンコードを実行する情報処理方法であって、仮想マシンコードが仮想マシンを含む実行環境の正当性を検証するステップと、検証の結果、前記仮想マシンを含む実行環境が不正であると判定した場合、前記仮想マシンコードの処理を停止するステップと、を含むことを特徴とする。
(23) Further, the present invention may be configured as follows.
(23-1) The present invention is an information processing method for executing virtual machine code using a virtual machine, the step of verifying the validity of an execution environment in which the virtual machine code includes a virtual machine, And a step of stopping the processing of the virtual machine code when it is determined that the execution environment including the virtual machine is illegal.
(23−2)上記の変形例(23−1)の情報処理方法において、前記検証ステップはさらに、前記仮想マシンコードが、前記仮想マシンを含む実行環境が保持する情報の取得を要求するステップと、前記仮想マシンが、前記情報を前記仮想マシンコードに提供するステップと、前記仮想マシンコードが、前記情報と、前記仮想マシンコードが保持する検証情報を比較し、前記仮想マシンコードで規定したルールに基づいて正当性を検証するステップと、を含むこととしてもよい。 (23-2) In the information processing method according to the modification (23-1), the verification step further includes a step in which the virtual machine code requests acquisition of information held by an execution environment including the virtual machine; The virtual machine code providing the information to the virtual machine code, the virtual machine code comparing the information with the verification information held by the virtual machine code, and a rule defined by the virtual machine code And verifying legitimacy based on.
(23−3)また、上記の変形例(23−2)において、前記情報は、前記仮想マシンを含む実行環境で処理するコンテンツに関する情報であることとしてもよい。
(23−4)また、上記の変形例(23−2)において、前記情報は、前記仮想マシンを含む実行環境に依存する情報であることとしてもよい。
(23−5)また、上記の変形例(23−2)において、前記情報は、前記仮想マシンを含む実行環境やコンテンツの状態により動的に変化する情報であることとしてもよい。
(23-3) Further, in the above modification (23-2), the information may be information related to content processed in an execution environment including the virtual machine.
(23-4) In the above modification (23-2), the information may be information depending on an execution environment including the virtual machine.
(23-5) In the above modification (23-2), the information may be information that dynamically changes depending on the execution environment including the virtual machine and the state of the content.
(23−6)また、本発明は、上記の変形例(23−1)〜(23−5)のいずれかに記載された情報処理方法に含まれるステップをコンピュータに実行させることを特徴とするプログラムでもある。
(23−7)また、本発明は、上記の変形例(23−1)〜(23−5)のいずれかに記載された情報処理方法に含まれるステップをコンピュータに実行させることを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体でもある。
(23-6) Moreover, the present invention causes 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 program.
(23-7) Moreover, the present invention causes 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 on which the program is recorded.
本発明にかかる情報処理方法は、仮想マシンを使い、プラットフォームに依存しないプログラムを実行する情報処理装置に利用可能であり、著作権保護用プログラムなど、仮想マシン上で動作するプログラムにセキュリティを要求される場合に有用である。 The information processing method according to the present invention can be used in an information processing apparatus that uses a virtual machine and executes a platform-independent program, and security is required for a program that runs on the virtual machine, such as a copyright protection program. This is useful when
101、801、1201 情報処理装置
102、802、1202 記録媒体
111 ディスク読込部
112 ユーザ操作受付部
113 仮想マシン実行部
114 情報保持部
115 仮想マシン実行コード
117 検証値テーブル識別情報
118 作業情報保持部
121 仮想マシンコード
1151 検証値取得モジュール
1154 仮想マシンコード実行モジュール
1121 仮想マシン検証モジュール
1122 検証情報モジュール
1123 コード依存処理モジュール
400 仮想マシン毎の検証ルールテーブル
401 アドレス
402 検証タイミング
403 検証値
404 検証ルール
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 秘密情報計算用割り込み管理情報
101, 801, 1201
Claims (20)
前記コンテンツと共に記録媒体に記録されている検証プログラムを読み出す読出ステップと、
前記検証プログラムを前記仮想マシンが実行することにより、前記仮想マシンを含む前記情報処理装置の正当性を検証する検証ステップと
を含むことを特徴とする検証方法。A verification method used in an information processing apparatus for executing processing related to content reproduction by a virtual machine included therein,
A reading step of reading a verification program recorded on a recording medium together with the content;
And a verification step of verifying the validity of the information processing apparatus including the virtual machine by executing the verification program by the virtual machine.
前記検証プログラムが、前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、
前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを、前記検証プログラムが判断する判断ステップとを含む
ことを特徴とする請求項1記載の検証方法。The verification step includes
An acquisition step in which the verification program acquires, as verification information, a value held at a predetermined memory address of the information processing apparatus;
The verification method according to claim 1, further comprising a determination step in which the verification program determines whether or not the information processing apparatus is valid based on the verification information acquired in the acquisition step. .
前記検証方法は、さらに、検証の結果、前記情報処理装置が不正である場合、前記コンテンツの再生に係る処理手順の実行を抑制する抑制ステップを含む
ことを特徴とする請求項2記載の検証方法。The recording medium further records a reproduction-related program that is executed on the virtual machine and includes a processing procedure related to reproduction of the content,
The verification method according to claim 2, further comprising a suppression step of suppressing execution of a processing procedure related to reproduction of the content when the information processing apparatus is illegal as a result of verification. .
前記コンテンツの再生に係る処理手順は、変形されている前記コンテンツを、前記復元処理により復元する手順を含み、
前記抑制ステップは、前記復元処理の実行を抑制する
ことを特徴とする請求項3記載の検証方法。The content is transformed so that it can be restored by a predetermined restoration process,
The processing procedure relating to the reproduction of the content includes a procedure of restoring the transformed content by the restoration processing,
The verification method according to claim 3, wherein the suppressing step suppresses execution of the restoration process.
ことを特徴とする請求項2に記載の検証方法。The verification method according to claim 2, wherein the verification information is information that changes according to timing.
ことを特徴とする請求項2に記載の検証方法。The verification method according to claim 2, wherein the verification information is information related to the content to be played back.
ことを特徴とする請求項2に記載の検証方法。The verification method according to claim 2, wherein the verification information is information that depends on an execution environment including the virtual machine.
前記判断ステップは、
前記取得ステップにより取得された前記検証情報と、前記記録媒体に記録された前記検証値とを、前記検証値に対応づけられている前記検証ルールに基づいて比較する比較ステップを含み、
前記判断ステップは、前記比較の結果、前記検証ルールを満たす場合に、前記情報処理装置が正当であると判断する
ことを特徴とする請求項2記載の検証方法。In the recording medium, a verification value and a verification rule are further recorded in association with each other,
The determination step includes
A comparison step of comparing the verification information acquired by the acquisition step with the verification value recorded on the recording medium based on the verification rule associated with the verification value;
The verification method according to claim 2, wherein the determination step determines that the information processing apparatus is valid when the verification rule satisfies the verification rule.
検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、
前記検証方法は、さらに、
前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、
前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、
前記比較ステップは、
前記返信により取得した前記検証情報を用いて前記比較を行う
ことを特徴とする請求項8に記載の検証方法。The obtaining step includes
A request step for requesting a value held at the predetermined memory address at a timing of verification;
The verification method further includes:
In response to the request by the request step, the method includes a step of reading a value held at the predetermined memory address and returning the read value to the verification program as the verification information,
The acquisition of the acquisition step is to acquire the returned verification information in response to the request;
The comparison step includes
The verification method according to claim 8, wherein the comparison is performed using the verification information acquired by the reply.
複数の前記検証値が、検証のタイミングと対応づけて記録されており、
前記比較ステップは、
前記検証のタイミングにおいて前記取得した検証情報と、前記検証のタイミングに対応づけられている前記検証値および前記検証ルールを用いて前記比較を行い、
前記判断ステップは、
前記検証のタイミングになる度に、前記比較ステップを繰り返し実行させる繰り返しステップと、
前記繰り返しの結果、前記検証情報と前記検証値とが所定回数以上前記検証ルールを満たさない場合に、前記情報処理装置が不正であると決定する決定ステップとを含む
ことを特徴とする請求項8に記載の検証方法。The recording medium further includes
A plurality of the verification values are recorded in association with the timing of verification,
The comparison step includes
Performing the comparison using the verification information acquired at the verification timing, the verification value and the verification rule associated with the verification timing,
The determination step includes
A repetitive step of repeatedly executing the comparison step each time when the timing of verification is reached;
9. The determination step of determining that the information processing apparatus is invalid when the verification information and the verification value do not satisfy the verification rule a predetermined number of times or more as a result of the repetition. Verification method described in 1.
複数の前記検証値の各々が、前記仮想マシンを一意に識別する識別情報と対応づけられて記録されており、
前記比較ステップは、前記情報処理装置に含まれる仮想マシンの識別情報と対応する検証値を用いて前記比較を行う
ことを特徴とする請求項8に記載の検証方法。The recording medium includes
Each of the plurality of verification values is recorded in association with identification information that uniquely identifies the virtual machine,
9. The verification method according to claim 8, wherein the comparison step performs the comparison using a verification value corresponding to identification information of a virtual machine included in the information processing apparatus.
前記情報処理装置は、さらに、
所定のタイミングにおいて前記所定のメモリアドレスに保持されている値を比較用情報として格納している格納手段を備え、
前記取得ステップは、
前記検証のタイミングにおいて前記所定のメモリアドレスに保持されている値を、前記検証情報として前記取得し、
前記判断ステップは、
前記検証のタイミングにおいて取得した前記検証情報と、前記格納手段に格納されている比較用情報とを前記検証ルールに基づいて比較する比較ステップを含み、
前記判断ステップは、前記比較の結果に基づいて、前記情報処理装置が正当であるか否かの前記判断を行う
ことを特徴とする請求項2に記載の検証方法。The recording medium further records the timing of verification and the verification rule in association with each other,
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;
The obtaining step includes
The value held at the predetermined memory address at the verification timing is acquired as the verification information,
The determination step includes
A comparison step of comparing the verification information acquired at the verification timing with the comparison information stored in the storage unit based on the verification rule;
The verification method according to claim 2, wherein the determination step performs the determination as to whether the information processing apparatus is valid based on a result of the comparison.
前記検証のタイミングにおいて、前記所定のメモリアドレスに保持されている値を要求する要求ステップを含み、
前記検証方法は、さらに、
前記要求ステップによる前記要求に応じて、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証情報として前記検証プログラムに返信する返信ステップを含み、
前記取得ステップの前記取得とは、前記要求に対して前記返信された前記検証情報を取得することであり、
前記比較ステップは、
前記返信により取得した前記検証情報を用いて前記比較を行う
ことを特徴とする請求項12記載の検証方法。The obtaining step includes
A request step for requesting a value held in the predetermined memory address at the timing of the verification;
The verification method further includes:
In response to the request by the request step, the method includes a step of reading a value held at the predetermined memory address and returning the read value to the verification program as the verification information,
The acquisition of the acquisition step is to acquire the returned verification information in response to the request;
The comparison step includes
The verification method according to claim 12, wherein the comparison is performed using the verification information acquired by the reply.
乱数を生成する乱数生成部を備え、
前記検証方法は、さらに、
前記検証のタイミングになるごとに、前記乱数生成部に乱数を生成させ、生成された乱数を、前記所定のアドレスに保持させる乱数保持ステップを含み、
前記取得ステップは、
前記検証のタイミングにおいて、前記乱数保持ステップにより前記保持された前記乱数を読み出すことで前記検証情報の前記取得を行い、
前記判断ステップは、前記比較の結果、前記検証情報と、前記比較用情報とが異なる場合に、前記情報処理装置が正当であると判断する
ことを特徴とする請求項12に記載の検証方法。The information processing apparatus further includes:
A random number generator for generating random numbers,
The verification method further includes:
A random number holding step for causing the random number generation unit to generate a random number and holding the generated random number at the predetermined address each time the verification is performed;
The obtaining step includes
In the verification timing, the verification information is obtained by reading the random number held in the random number holding step.
13. The verification method according to claim 12, wherein the determination step determines that the information processing apparatus is valid when the verification information is different from the comparison information as a result of the comparison.
前記仮想マシンを含む実行環境に依存する情報に基づいて、前記生成を行う
ことを特徴とする請求項14に記載の検証方法。The random number generator
The verification method according to claim 14, wherein the generation is performed based on information dependent on an execution environment including the virtual machine.
時刻を計時して前記所定のメモリアドレスに書き込む計時部を備え、
前記格納手段は、
所定のタイミングにおいて前記所定のメモリアドレスに書き込まれている前記時刻を比較用情報として格納しており、
前記取得ステップは、
前記検証のタイミングにおいて、前記所定のメモリアドレスに書き込まれている前記時刻を読み出すことで前記検証情報の前記取得を行い、
前記判断ステップは、前記比較の結果、前記検証情報に示される時刻が、前記比較用情報に示される時刻よりも増加している場合に、前記情報処理装置が正当であると判断する
ことを特徴とする請求項12に記載の検証方法。The information processing apparatus further includes:
A time measuring unit for measuring time and writing to the predetermined memory address;
The storage means includes
The time written in the predetermined memory address at a predetermined timing is stored as comparison information,
The obtaining step includes
In the verification timing, the verification information is obtained by reading the time written in the predetermined memory address;
The determination step determines that the information processing apparatus is valid when the time indicated in the verification information is greater than the time indicated in the comparison information as a result of the comparison. The verification method according to claim 12.
前記記録媒体には、
前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、
前記情報処理装置は、
前記記録媒体から前記検証プログラムを読み出す読出手段と、
前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、
前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備える
ことを特徴とする情報処理装置。An information processing apparatus that executes processing related to reproduction of content recorded in a recording medium and includes a virtual machine inside,
The recording medium includes
A verification program for verifying the validity of the information processing apparatus is recorded by being executed on the virtual machine,
The information processing apparatus includes:
Reading means for reading the verification program from the recording medium;
Receiving means for receiving a request for a value held at a predetermined memory address of the information processing apparatus at a verification timing from the verification program;
An information processing apparatus comprising: a reply unit that, when receiving the request, reads a value held at the predetermined memory address and returns the read value to the verification program.
前記記録媒体には、
前記仮想マシン上で実行されることにより、前記情報処理装置の正当性を検証する検証プログラムが記録されており、
前記集積回路は、
前記記録媒体から前記検証プログラムを読み出す読出手段と、
前記情報処理装置の所定のメモリアドレスに、検証のタイミングにおいて保持されている値の要求を前記検証プログラムから受け付ける受付手段と、
前記要求を受け付けると、前記所定のメモリアドレスに保持されている値を読み出し、読み出した値を前記検証プログラムに返信する返信手段とを備える
ことを特徴とする集積回路。An integrated circuit that executes processing related to reproduction of content recorded in a recording medium and is mounted on an information processing apparatus including a virtual machine,
The recording medium includes
A verification program for verifying the validity of the information processing apparatus is recorded by being executed on the virtual machine,
The integrated circuit comprises:
Reading means for reading the verification program from the recording medium;
Receiving means for receiving a request for a value held at a predetermined memory address of the information processing apparatus at a verification timing from the verification program;
An integrated circuit comprising: a reply unit that, when receiving the request, reads a value held at the predetermined memory address and returns the read value to the verification program.
前記検証プログラムは、
前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、
前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含む
ことを特徴とする記録媒体。A recording medium that records a verification program that executes processing related to content reproduction and verifies the validity of an information processing apparatus including a virtual machine,
The verification program includes:
An acquisition step of acquiring a value held at a predetermined memory address of the information processing apparatus as verification information;
And a determination step of determining whether or not the information processing apparatus is valid based on the verification information acquired in the acquisition step.
前記情報処理装置の所定のメモリアドレスに保持されている値を、検証情報として取得する取得ステップと、
前記取得ステップにより取得された前記検証情報に基づいて、前記情報処理装置が正当であるか否かを判断する判断ステップとを含む
ことを特徴とする検証プログラム。A verification program for executing processing related to reproduction of content recorded on a recording medium and causing the information processing device to execute processing for verifying the validity of the information processing device including a virtual machine therein,
An acquisition step of acquiring a value held at a predetermined memory address of the information processing apparatus as verification information;
And a determination step of determining whether or not the information processing apparatus is valid based on the verification information acquired in the acquisition step.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US69893105P | 2005-07-14 | 2005-07-14 | |
US60/698,931 | 2005-07-14 | ||
PCT/JP2006/313898 WO2007007805A1 (en) | 2005-07-14 | 2006-07-12 | Verification method, verification program, recording medium, information processor, and integrated circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007007805A1 true JPWO2007007805A1 (en) | 2009-01-29 |
JP4889638B2 JP4889638B2 (en) | 2012-03-07 |
Family
ID=37637195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007524688A Expired - Fee Related JP4889638B2 (en) | 2005-07-14 | 2006-07-12 | Verification method, verification program, recording medium, information processing apparatus, integrated circuit |
Country Status (5)
Country | Link |
---|---|
US (1) | US8281362B2 (en) |
JP (1) | JP4889638B2 (en) |
CN (1) | CN100589112C (en) |
BR (1) | BRPI0612995A2 (en) |
WO (1) | WO2007007805A1 (en) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BRPI0613956A2 (en) * | 2005-06-28 | 2011-02-22 | Matsushita Electric Ind Co Ltd | verification method, information processing device, recording medium, verification system, certification program and verification program |
EP1746594B1 (en) * | 2005-07-19 | 2012-05-16 | Samsung Electronics Co., Ltd. | Method and apparatus for efficiently descrambling transformed part of content |
JP4655951B2 (en) | 2006-02-06 | 2011-03-23 | ソニー株式会社 | Information processing apparatus, information recording medium manufacturing apparatus, information recording medium and method, and computer program |
US20080244753A1 (en) * | 2007-03-30 | 2008-10-02 | Motorola, Inc. | Instruction Transform for the Prevention and Propagation of Unauthorized Code Injection |
GB0721429D0 (en) | 2007-10-31 | 2007-12-12 | Icera Inc | Processing signals in a wireless communications environment |
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 |
US8954897B2 (en) | 2008-08-28 | 2015-02-10 | Microsoft Corporation | Protecting a virtual guest machine from attacks by an infected host |
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 |
US9495190B2 (en) * | 2009-08-24 | 2016-11-15 | Microsoft Technology Licensing, Llc | Entropy pools for virtual machines |
KR100945476B1 (en) | 2009-09-10 | 2010-03-05 | 주식회사 파수닷컴 | Apparatus and method for digital rights management using virtualization technique |
KR20130050696A (en) * | 2011-11-08 | 2013-05-16 | 삼성전자주식회사 | Memory system |
CN102663290A (en) * | 2012-03-23 | 2012-09-12 | 中国科学院软件研究所 | Method of digital right management based on virtual machine |
JP5953867B2 (en) * | 2012-03-26 | 2016-07-20 | 富士ゼロックス株式会社 | Program and program protection device |
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 |
US10715433B2 (en) * | 2017-03-31 | 2020-07-14 | Mitsubishi Electric Corporation | Information processing apparatus and information processing method |
FR3065553B1 (en) * | 2017-04-20 | 2019-04-26 | Idemia Identity And Security | METHOD OF EXECUTING A PROGRAM TO BE INTERPRETED BY A VIRTUAL MACHINE PROTECTED AGAINST FAULT INJECTION ATTACKS |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526041B1 (en) | 1998-09-14 | 2003-02-25 | Siemens Information & Communication Networks, Inc. | Apparatus and method for music-on-hold delivery on a communication system |
US6883163B1 (en) * | 2000-04-28 | 2005-04-19 | Sun Microsystems, Inc. | Populating resource-constrained devices with content verified using API definitions |
JP2002251326A (en) * | 2001-02-22 | 2002-09-06 | Hitachi Ltd | Tamper-proof computer system |
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 (en) | 2001-03-12 | 2004-09-15 | 株式会社三洋物産 | Control device |
US7987510B2 (en) * | 2001-03-28 | 2011-07-26 | Rovi Solutions Corporation | Self-protecting digital content |
JP4390405B2 (en) * | 2001-05-31 | 2009-12-24 | 富士通株式会社 | Computer system, service layer, policy cache function unit, and policy management device |
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 (en) * | 2002-03-04 | 2006-03-29 | 株式会社東芝 | COMMUNICATION SYSTEM, RADIO COMMUNICATION TERMINAL, AND RADIO COMMUNICATION DEVICE |
CN1464688A (en) | 2002-06-25 | 2003-12-31 | 赖育成 | Network resource management system |
JP2004179877A (en) * | 2002-11-26 | 2004-06-24 | Sony Corp | Information processing apparatus, information processing method, and computer program |
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 (en) * | 2003-04-03 | 2008-06-04 | シャープ株式会社 | Data transmission device, data reception device, data communication system, and data communication management server |
US20040225880A1 (en) * | 2003-05-07 | 2004-11-11 | Authenture, Inc. | Strong authentication systems built on combinations of "what user knows" authentication factors |
EP1644802B1 (en) | 2003-06-27 | 2016-11-23 | 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 (en) * | 2003-11-06 | 2011-03-16 | ソニー株式会社 | Information processing apparatus, information recording medium, information processing method, and computer program |
JP2005182712A (en) | 2003-12-24 | 2005-07-07 | Meidensha Corp | Data processing method between computers |
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 |
US7788663B2 (en) * | 2004-06-08 | 2010-08-31 | Covia Labs, Inc. | Method and system for device recruitment interoperability and assembling unified interoperating device constellation |
US20050283502A1 (en) * | 2004-06-18 | 2005-12-22 | Ami Heitner | Methods and systems for reconciling data |
JP4626221B2 (en) * | 2004-06-24 | 2011-02-02 | ソニー株式会社 | Information processing apparatus, information recording medium, information processing method, and computer program |
JP4727342B2 (en) * | 2004-09-15 | 2011-07-20 | ソニー株式会社 | Image processing apparatus, image processing method, image processing program, and program storage medium |
JP4376233B2 (en) * | 2005-02-04 | 2009-12-02 | 株式会社エヌ・ティ・ティ・ドコモ | Client apparatus, device verification apparatus, and verification method |
JP4671720B2 (en) * | 2005-03-11 | 2011-04-20 | 株式会社日立製作所 | Storage system and data migration method |
JP4654806B2 (en) * | 2005-07-15 | 2011-03-23 | ソニー株式会社 | Information processing apparatus, information recording medium manufacturing apparatus, information recording medium and method, and computer program |
-
2006
- 2006-07-12 US US11/662,603 patent/US8281362B2/en active Active
- 2006-07-12 WO PCT/JP2006/313898 patent/WO2007007805A1/en active Application Filing
- 2006-07-12 BR BRPI0612995-1A patent/BRPI0612995A2/en not_active Application Discontinuation
- 2006-07-12 CN CN200680025766A patent/CN100589112C/en active Active
- 2006-07-12 JP JP2007524688A patent/JP4889638B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN100589112C (en) | 2010-02-10 |
US8281362B2 (en) | 2012-10-02 |
WO2007007805A1 (en) | 2007-01-18 |
BRPI0612995A2 (en) | 2010-12-14 |
US20080046680A1 (en) | 2008-02-21 |
JP4889638B2 (en) | 2012-03-07 |
CN101223535A (en) | 2008-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4889638B2 (en) | Verification method, verification program, recording medium, information processing apparatus, integrated circuit | |
JP4891902B2 (en) | Electronic device, update server device, key update device | |
JP4083200B2 (en) | Verification method, information processing apparatus, recording medium, verification system, certification program, and verification program | |
JP5192556B2 (en) | Reprogrammable security to regulate piracy and enable interactive content | |
CN101231622B (en) | Data storage method and equipment base on flash memory, as well as data fetch method and apparatu | |
JP5034921B2 (en) | Information processing apparatus, disk, information processing method, and program | |
JP4816012B2 (en) | Information processing apparatus, software installation method, and optical disc | |
EP1367581A2 (en) | Information recording/reading apparatus and method | |
KR20060081338A (en) | Protection method for shared content, method and apparatus for reproducing a data recorded in recording medium using a local storage | |
JP2003173215A (en) | Information processor, program loading method, recording medium, program updating method and circuit element | |
TWI360810B (en) | Information processing apparatus, information reco | |
JP2010102579A (en) | Information processor and computer program | |
US9129139B2 (en) | Solid state memory and method for protecting digital contents by interrupting copying or accessing and proceeding only upon user verification or authentication | |
EP2756443A1 (en) | Security mechanism for developmental operating systems | |
JP3712366B2 (en) | Information processing system, executable module generation method, and storage medium | |
KR101405915B1 (en) | Method for writing data by encryption and reading the data thereof | |
JP2008257279A (en) | Integrity enhancement method for file system | |
JP2007249333A (en) | Installation method, installation control program, and storage medium | |
JP4597651B2 (en) | Information processing unit, method and program for controlling ripping of data in media | |
US20090310455A1 (en) | Optical Disc Reproducing Apparatus, In-Vehicle Optical Disc Reproducing Apparatus, In-Vehicle Optical Disc Reproducing System, and Optical Disc Reproducing Method | |
US8856949B2 (en) | Systems and methods for detecting authorized players | |
KR20080012724A (en) | Recording medium, method and apparatus for reproducing data, and method and apparatus for recording data | |
JP4591755B2 (en) | Installation program, storage medium, content reproduction apparatus, and tamper resistant module update method | |
JP2008311961A (en) | Reproduction apparatus and decoding method | |
JP2004005562A (en) | Computer program, computer program preparing method, medium having the computer program recorded therein, and device for executing the computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110823 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111012 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111115 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111213 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4889638 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141222 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |