The present invention relates to license management apparatuses, license management methods, and computer programs. More particularly, the invention relates to a license management apparatus, a license management method, and a computer program in which license providing conditions are changed according to the content or license usage or purchase status of clients so as to implement the usage of content and the provision of licenses under different conditions for the clients.
These days, various types of software data, for example, audio data such as music, image data such as movies, game programs, and various application programs (hereinafter referred to as “content”) are distributed via networks, for example, the Internet, or via recording media, for example, DVDs and CDs. The distributed content is played back and used by PCs (personal computers), playback devices, for example, CD players and DVD players, or game machines owned by users.
Generally, for many items of content, for example, music data and image data, creators or sellers of the content hold the distribution right of the content. Accordingly, in order to play back or use normal content other than free distribution content, it is necessary to obtain an authorized content usage right. For a CD, for example, a CD can be played back with a player by paying a price equivalent to the CD.
When receiving content via a network, for example, the Internet, by using a PC or a communication terminal, the user has to pay a content provider for the usage of content, for example, by inputting user information such as a user's credit number, and under this condition, the provider provides the content to the user.
Even if the user pays for, for example, content, however, he/she can record (copy) the content of a CD on another recording medium, or read the content from the CD as digital data and store it as a computer file of a PC. If such processing, so-called “ripping”, is allowed, unauthorized copy data is widespread.
Ripping performed in a PC is to copy data as digital data, and the quality of the original data can be maintained. If ripping data is written into, for example, another CD-R, a content CD having exactly the same quality as that of the original CD is created. Ripping data can also be recorded as compressed data, for example, MP3 data, or can be transmitted via a network.
As described above, the circumstance in which content provided with a copyright is illegally copied, tampered with, or distributed after being delivered to a user is not desirable in terms of copyright protection.
As a copyright protection technique for preventing such a circumstance, information recording media provided with a copy control function (for example, CDs having a copy prevention function) have been invented. As the copy prevention function, the copy control technique developed by Midbar Technology Ltd. and the copy control technique developed by Macrovision Corporation are available.
The structure of the copy control techniques is, for example, as follows. A pseudo signal is input into the first track of a CD, and when the CD is set in a CD-ROM drive, the PC cannot recognize the CD as a music CD, thereby preventing the PC from playing back the CD by using a CD player program. A normal CD player, which cannot execute ripping processing, can play back only the content data by ignoring the pseudo signal.
Thus, when playing back an information recording medium, for example, a CD, on which copy-controlled content is recorded, data cannot be played back in a PC although it can be played back with a playback-dedicated CD player, as stated above. This is effective in eliminating unauthorized processing, for example, copying and ripping. It is, however, inconvenient for authorized users who do not intend to perform unauthorized copying or ripping.
Accordingly, the following structure has been proposed. Content used in machines, such as PCs, or content distributed via a network is subjected to encryption processing without providing a copy control function, and is distributed to authorized users only under the condition that the users pay for the right (license) of using the content. In this structure, a user obtains, for example, encrypted content and also purchases usage right data so as to obtain a key (content key) for decrypting the encrypted content based on key data extracted from the usage right data, thereby making it possible to use the content.
In known license distribution processing, however, the conditions for providing licenses are fixed. For example, even when a license for the right of using a certain item of content was obtained in the past, the user must pay the same fee as paid before for the same content if he/she wishes to obtain a license again. Accordingly, depending on the content usage status, obtaining a usage right of content distributed via a network or stored in an information recording medium by a license sometimes becomes more expensive than purchasing an information recording medium, for example, a CD, storing the content.
In view of the above-described problems, it is an object of the present invention to provide a license management apparatus, a license management method, and a computer program in which license providing conditions are changed according to the content or license usage or purchase status of clients so as to implement the usage of content and the provision of licenses under different conditions for the clients.
A first aspect of the present invention is a license management apparatus for setting a condition for providing a license as a content usage right, including: a disk table in which data indicating content usage statuses of clients is stored; an album price master table in which information concerning license providing conditions according to the content usage statuses is stored; and license providing condition determining means for obtaining information concerning a content usage of a client from the disk table based on identification data accompanying a license obtaining request received from the client, and for obtaining information concerning a license providing condition from the album price master table based on the content usage information so as to determine the license providing condition for the client based on the information concerning the license providing condition.
In one mode of the license management apparatus of the present invention, the license obtaining request received from the client is a request to obtain a license corresponding to a usage right of content stored in an information recording medium, and the identification data accompanying the license obtaining request is a combination of a media ID, stored in the information recording medium, as an identifier unique to the information recording medium and a product ID as an identifier set for each product corresponding to a group of a plurality of information recording media, and the disk table stores the content usage status data corresponding to the media ID and the product ID.
In one mode of the license management apparatus of the present invention, the information concerning the license providing conditions is information concerning license providing prices, and the album price master table stores the information concerning the license providing prices according to the content usage statuses.
In one mode of the license management apparatus of the present invention, the information concerning the license providing conditions is information concerning license providing prices, the content usage status is the number of purchases as the number of purchases obtained for the content, the disk table stores data indicating the number of content purchases as the content usage status data corresponding to the media ID and the product ID, the album price master table stores the information concerning the license providing prices according to the number of content purchases, and the license providing condition determining means determines the different license providing prices according to the number of content purchases by the client.
In one mode of the license management apparatus of the present invention, the license management apparatus further includes web-page generating/providing means for generating a web page containing the information concerning the license providing condition determined by the license providing condition determining means and content information, and for providing the web page for the client.
In one mode of the license management apparatus of the present invention, a license provided by the license management apparatus is a usage right of encrypted content contained in a content file owned by a client, the content file includes content data (Enc(Kc, Content)) encrypted with a content key [Kc], content key data (Enc (Kroot, Kc)) encrypted with a root key [Kroot], and an enabling key block (EKB) used for obtaining the root key [Kroot] by performing decryption processing using a device node key (DNK) stored in service data as license data, and the license provided by the license management apparatus contains the service data storing the device node key (DNK) therein.
In one mode of the license management apparatus of the present invention, the license management apparatus verifies a MAC as tampering verification data added to the identification data accompanying the license obtaining request received from the client, and issues a license on the condition that the identification data is not tampered with.
A second aspect of the present invention is a license management method for setting a condition for providing a license as a content usage right, including: an identification data receiving step of receiving identification data accompanying a license obtaining request from a client; a content usage information obtaining step of obtaining information indicating a content usage of the client from a disk table in which data indicating content usage statuses of clients is stored; a license providing condition information obtaining step of obtaining, based on the content usage information, information indicating a license providing condition from an album price master table in which information indicating license providing conditions according to the content usage status is stored; and a license providing condition determining step of determining the license providing condition for the client based on the obtained information concerning the license providing condition.
In one mode of the license management method of the present invention, the license obtaining request received from the client is a request to obtain a license corresponding to a usage right of content stored in an information recording medium, and the identification data accompanying the license obtaining request is a combination of a media ID, stored in the information recording medium, as an identifier unique to the information recording medium and a product ID as an identifier set for each product corresponding to a group of a plurality of information recording media, and the content usage information obtaining step obtains the content usage status data from the disk table based on the media ID and the product ID.
In one mode of the license management method of the present invention, the information concerning the license providing conditions is information concerning license providing prices, and the license providing condition information obtaining step obtains the information concerning the license providing price according to the content usage status from the album price master table.
In one mode of the license management method of the present invention, the information concerning the license providing conditions is information concerning license providing prices, the content usage status is the number of purchases as the number of purchases obtained for the content, the content usage information obtaining step obtains data indicating the number of content purchases as the content usage status data from the disk table based on the media ID and the product ID, the license providing condition information obtaining step obtains the information concerning the license providing price according to the number of content purchases from the album price master table, and the license providing condition determining step determines the different license providing prices according to the number of content purchases by the client.
In one mode of the license management method of the present invention, the license management method further includes a web-page generating/providing step of generating a web page containing the information concerning the license providing condition determined in the license providing condition determining step and content information, and of providing the web page for the client.
In one mode of the license management method of the present invention, the license is a usage right of encrypted content contained in a content file owned by a client, the content file includes content data (Enc(Kc, Content)) encrypted with a content key [Kc], content key data (Enc (Kroot, Kc)) encrypted with a root key [Kroot], and an enabling key block (EKB) used for obtaining the root key [Kroot] by performing decryption processing using a device node key (DNK) stored in service data as license data, and the license management method further includes a step of generating the service data storing the device node key (DNK) therein and of providing the service data for the client.
In one mode of the license management method of the present invention, the license management method further includes a step of verifying a MAC as tampering verification data added to the identification data accompanying the license obtaining request received from the client, and license is issued on the condition that the identification data is not tampered with.
A third aspect of the present invention is a computer program in which a processing program for executing license management processing for setting a condition for providing a license as a content usage right is indicated. The computer program includes: an identification data receiving step of receiving identification data accompanying a license obtaining request from a client; a content usage information obtaining step of obtaining information indicating a content usage of the client from a disk table in which data indicating content usage statuses of clients is stored; a license providing condition information obtaining step of obtaining, based on the content usage information, information indicating a license providing condition from an album price master table in which information indicating license providing conditions according to the content usage status is stored; and a license providing condition determining step of determining the license providing condition for the client based on the obtained information concerning the license providing condition.
According to the configuration of the present invention, a condition for providing a license as a content usage right for a client is dynamically set based on client's content usage status data. Thus, flexible services can be provided, for example, a license providing fee can be decreased or a license can be provided free for clients having a large number of content usages.
According to the configuration of the present invention, for providing a license for a usage right of the content stored in an information recording medium, globally unique data indicating a combination of a media ID, stored in the information recording medium, as the identifier unique to the information recording medium and a product ID as the identifier set for each product corresponding to a group of a plurality of information recording media is received from a client. Based on such ID data, the content usage status data is checked. Thus, licenses can be provided under the reliable management of the content usage.
According to the configuration of the present invention, a license provided by the license management apparatus is a usage right of encrypted content contained in a content file owned by a user. Service data storing a device node key (DNK) required for processing an enabling key block (EKB) is provided as license information. Thus, a strict management of the content usage associated with services can be implemented.
The computer program of the present invention is a computer program that can be provided to, for example, a general-purpose computer system which can execute various program codes, in a computer-readable storage medium, a communication medium, for example, a CD, a FD, or an MO, or via a communication medium, for example, a network. By providing the program in a computer-readable format, processing in accordance with the program can be implemented on a computer system.
Further object, features, and advantages of the present invention will become apparent according to a detailed description of the present invention through a preferred embodiment and the accompanying drawings. A system in this specification is a logical unit consisting of a plurality of devices, and it is not essential that the devices be disposed in the same casing.
1. Content recording configuration of information recording medium
2. System configuration
3. Tree structure as key distribution configuration
4. Key distribution using EKB
5. EKB format
6. Tree category classification
7. License purchase and content playback processing
[1. Content Recording Configuration of Information Recording Medium]
The content recording configuration of an information recording medium according to the present invention is described below with reference to
A copyright-protection content data recording area, i.e., a first data recording field (first session) 11 as a content recording field provided with a copy, rippling preventing function is set in the inner periphery (A) of the disk information recording medium 10. A second data recording field (second session) 12 recording encrypted content thereon is set at the outer periphery (B) of the information recording medium 10.
More specifically, the information recording medium 10 includes the first data storage area (first session) 11 set as a content storage area subjected to copy prevention processing, and the second data storage area (second session) 12 set as a content storage area which is not subjected to copy prevention processing. The second data storage area 12 stores an encrypted content file including encrypted content and encrypted key data which is generated by encrypting key data for decrypting the encrypted content and which can be decrypted only in licensed devices.
One session is a unit area formed of a lead-in area indicating a data start area (for example, mute data), a content storage area, and a lead-out area indicating a data end area. The information recording medium 10 shown in
The recorded content in the first data recording field 11 is recorded as content subjected to copy prevention processing. For example, a pseudo signal is recorded on the first track, and when the information recording medium 10 is set in a CD-ROM drive of a PC, the PC cannot recognize the CD as a music CD, thereby preventing the PC from playing back the CD by using a music CD playback program. In this case, various copy protection functions, for example, the copy control technique developed by Midbar Technology Ltd. and the copy control technique developed by Macrovision Corporation, can be employed.
Ripping or copying processing, for example, in which the information recording medium 10 is set in a CD drive of a PC, and the content recorded on the first data recording field 11 is read as digital data and is stored in another recording medium or converted into compressed data, for example, MP3 data, can be prevented for the content recorded on the first data recording field 11.
The content recorded on the first data recording field 11 can be played back in a playback device (player) having a playback-dedicated function, for example, a normal CD player. That is, a playback-dedicated CD player without a copy or ripping processing program is able to play back the content data by ignoring a pseudo signal recorded on the first track.
The content recorded on the second data recording field 12 is encrypted content. This encrypted content can be played back by being decrypted. Key data for decrypting the content can be obtained by receiving a content usage right (license). More specifically, as described below, the content can be decrypted by executing a process including decryption of an enabling key block (EKB) by using key data distributed in a key-distribution tree configuration.
Accordingly, the content recorded on the second data recording field 12 can be used only by the users having an authorized license. Even in a PC that cannot play back the content recorded on the first data recording field 11, the content recorded on the second data recording field 12 can be played back and used by receiving an authorized license.
A PID (Postscribed-ID) recording area 13 is provided in part of the area of the second data recording field 12. The PID includes a media ID provided as an identifier (ID) unique to each disk as a predetermined disk group unit, for example, a title unit, an album unit, a category unit, or a manufacturing lot unit, and version information of the ID. A MAC (message authentication code) as a data tampering-verification code is added to the PID.
An example of the data configuration of the PID is shown in
The message authentication code (MAC) is generated as data tampering-verification data. Although various techniques are available for generating a MAC value and verifying data, a technique for generating a MAC value using DES encryption processing is shown in
The example of the technique for generating a MAC value using DES encryption processing shown in
The MAC value is different if the source data is changed. The MAC generated based on the data (message) to be verified is compared with the recorded MAC, and if the two MAC values coincide with each other, it can be proved that the data (message) to be verified has not been changed or tampered with.
An example of the directory configuration of a data file stored in the second data recording field 12 is shown in
In the definition file [MQDISC.INI], the product ID set as the identifier in a predetermined disk group unit, for example, a title unit, an album unit, a category unit, or a manufacturing lot unit is stored. Information concerning the URL of a PID verification server, which is set as a verification server for verifying data sent from a user when obtaining a license for the right of playing back and using the encrypted content stored in the second data recording field 12 is also stored.
The media ID defined in the above-described PID is set as the ID unique to each disk for one product ID, and, basically, data as a combination of a product ID and a media ID is globally unique ID data.
The encrypted content file [MQT file] includes data obtained by encrypting content with a content key Kc [Enc(Kc, Content)]. Enc(A, B) indicates that B is encrypted with A.
The encrypted content file [MQT file] includes header information containing an enabling key block (EKB). The enabling key block (EKB) is encrypted data that can be decrypted by using a device node key (DNK) distributed to authorized devices. The user is able to decrypt the enabling key block (EKB) by acquiring a license as an authorized content usage right. Then, by using the content key Kc obtained by decrypting the EKB, the user is able to decrypt the encrypted content data [Enc(Kc, Content)] so as to play back and use the content. Details of such processing are given below.
It is necessary to obtain a license to play back the encrypted content recorded on the second data recording area. For obtaining the license, an information processing apparatus, for example, a PC, reads the product ID and the PID (see
[2. System Configuration]
A description is now given, with reference to
A client 50 using the content purchases an information recording medium 80, for example, a CD, from a disk manufacturing/providing entity. As described with reference to
The client wishes to use the encrypted content recorded on the second data recording field 12 of the information recording medium 10 shown in
Accordingly, a description is mainly given of processing when the client who wishes to play back and use the encrypted content recorded on the second data recording field of the information recording medium obtains a license and uses the content.
The client 50 shown in
The client application 52 is an application used for processing an execution file (see
The client 50 is connected to a shop server 72, a PID verification server 73, and a license server 74 via a communication network, for example, the Internet. The shop server 72 serves as an intermediary when the client 50 purchases a content usage right (license) for playing back and use the encrypted content recorded on the second data recording field of the information recording medium 80. The shop server 72 provides content information indicating, for example, a license fee, for the client 50 via the browser 51, and also accepts a purchase request from the client 50. The shop server 72 also performs accounting processing for a purchased license if necessary.
The PID verification server 73 performs PID verification as a pre-procedure for obtaining a license by the client 50. The license server 74 provides content usage-right information concerning the content used by the client for the client 50 when the integrity of the client 50 is verified by the PID verification server 73.
A management system 75 is connected to the disk manufacturing/providing entity 71, the shop server 72, the PID verification server 73, and the license server 74. The management system 75 shares, with the disk manufacturing/providing entity 71, PID information recorded on a content storage disk manufactured by the disk manufacturing/providing entity 71. In license issuing processing, this PID information is sent from the client to the PID verification server 73, and verification processing is performed in the PID verification server 73.
The management system 75 also issues a transaction ID (TID), which serves as permission information in response to a license request from the client 50. The management system 75 also gives permission to the license server 74 to issue usage right data as content usage-right information. Details of such processing are given below.
In a database 77, data that is permitted to be accessed within an access right set in each of the disk manufacturing entity 71, the shop server 72, the PID verification server 73, the license server 74, and the management system 75 is stored. The database 77 stores, for example, an album master table, a transaction table, a disk table, an album-price master table, and a track table. Details of the configurations of the tables and processing using the tables are given below.
In
The client 50 performs a series of processing accompanied by PID verification, for example, the sending of a PID and a product ID to the PID verification server 73, and license obtaining processing by being connected to the license server 74 under the control of the client application 52. The client 50 views information provided by the shop server 72 and performs accounting processing by starting the browser 51 under the control of the client application 52.
Although only one client and only one server of each of the servers are shown in
Content usage-right information is provided to the client 50 from the license server 74. The client application 52 of the client 50 then verifies the usage right information, and, when the client 50 is found to possess a usage right, the client application 52 decrypts the encrypted content.
The client 50 possesses key data, for example, an enabling key block (EKB) and a device node key (DNK), as key information which enables the use of content based on a content usage right. The enabling key block (EKB) and the device node key (DNK) are key data for obtaining an encrypted key required for enabling only user devices having an authorized content usage right to decrypt and use the encrypted content. EKB and DNK are described below.
The license server 74 generates usage right information based on predetermined content usage conditions and provides the information for the client 50. The license server 74 also generates service data based on the device node key (DNK) and the enabling key block (EKB) provided by the management system 75, and provides the service data for the client 50. The service data includes an enabling key block (EKB) having a service device node key (SDNK) required for decrypting encrypted content.
As the content usage conditions, restrictions on the usage period, the number of copies, and the number of portable media (PM) that can use the content at the same time (the number of so-called “checkouts”) can be set. The portable media (PM) are recording media, for example, flash memory, small HDs, optical discs, magneto-optical disks, and MDs (Mini Disks), which can be used in a portable device.
A description is given below, with reference to
A CPU (central processing unit) 101 executes various types of processing according to various programs stored in a ROM (read only memory) 102 or programs stored in a storage unit 108 and loaded to a RAM (random access memory) 103. A timer 100 performs timing and supplies clock information to the CPU 101.
The ROM (read only memory) 102 stores programs used by the CPU 101, computation parameters, fixed data, etc. The RAM (random access memory) 103 stores programs used by the CPU 101 and parameters that are suitably varied according to the execution of the CPU 101. These elements are connected to each other by a bus 111, for example, a CPU bus.
An encryption/decryption unit 104 performs encryption processing of communication data or content, and encryption processing using, for example, DES (Data Encryption Standard) encryption algorithms, MAC generation, and verification processing by using a device node key (DNK) and an enabling key block (EKB). The encryption/decryption unit 104 also performs various types of encryption processing such as authentication and session-key sharing processing when sending and receiving communication data, for example, license information, to and from another connection device.
A codec 105 performs data encoding and decoding according to various formats, for example, ATRAC (Adaptive Transform Acoustic Coding)3, MPEG, and JPEG. Data to be processed is input from a removable storage medium 121 via the bus 111, an input/output interface 112, and a drive 110, or from a communication unit 109. The processed data is stored in the removable storage medium 121 or is output via the communication unit 109 if necessary.
The input/output interface 112 is connected to an input unit 106, for example, a keyboard or a mouse, an output unit 107, for example, a CRT or LCD display and a speaker, the storage unit 108, for example, a hard disk, and the communication unit 109 formed of, for example, a modem or a terminal adapter, and data is sent and received via a communication network, for example, the Internet.
[3. Tree Structure as Key Distribution Configuration]
A description is now given of a device and key management configuration formed by a tree system, which is one mode of broadcast encryption techniques that enable only clients having an authorized content usage right to use content.
Numbers 0 through 15 indicated at the bottom of
When being manufactured or shipped, or later than that, each of the devices 0 through 15 stores in a memory a key set (device node key (DNK)) consisting of node keys assigned to the nodes positioned from the leaf of each device to the root and a leaf key of each leaf. K0000 through K111 indicated at the bottommost level of
In the tree structure shown in
The devices in the tree structure shown in
In the system in which various devices and applications coexist, the portion surrounded by the broken line shown in
The node keys and leaf keys may be centrally managed by a certain management system having a key management center function, or may be managed for each group by message data distribution means, for example, a provider or a billing agent, which send and receive data to and from each group. In case of a leakage of the keys, the node keys and leaf keys are renewed by, for example, a management system, a provider, or a billing agent having a key management center function.
In this tree structure, as shown in
If, for example, at a certain time t, the keys K0011, K001, K00, K0, and KR owned by the device 3 are decrypted and disclosed by an attacker (hacker), it is necessary to disconnect the device 3 from the system in order to protect data thereafter received by the system (the group of the devices 0, 1, 2, and 3). Accordingly, the node keys K001, K00, K0, and KR must be renewed by new keys K(t)001, K(t)00, K(t)0, and K(t)R, respectively, and the renewed keys must be reported to the devices 0, 1, and 2. K(t)aaa is a renewed key Kaaa at generation t.
Renewed-key distribution processing is described below. Keys are renewed by supplying a table formed of block data, which is referred to as an “enabling key block (EKB)”, shown in
The enabling key block (EKB) shown in
As shown in
If only the node key K00 needs to be renewed without the need to renew the node keys K(t)0 and K(t)R at the upper levels of the tree structure shown in
The EKB shown in
That is, the devices 0, 1, and 2 decrypt the above ciphertext by using K(t)00 obtained by EKB processing, and then obtains a key at time t, for example, the content key K(t)con for decrypting the content.
[4. Key Distribution Using EKB]
As shown in
[5. EKB Format]
A data portion 206 stores data generated by, for example, encrypting a node key to be renewed. Encrypted keys corresponding to renewed node keys, such as those shown in
A tag portion 207 is a tag indicating the positional relationship between encrypted node keys and leaf keys stored in the data portion. The allocation rule of these tags is described below with reference to
The tags are set for indicating at which level data Enc(Kxxx, Kyyy) is positioned in the tree structure. Key data Enc(Kxxx, Kyyy) and other key data stored in the data portion is a list of mere encrypted key data, and thus, the tags serve the function of determining the positions of encrypted keys stored as data in the tree structure. Instead of using the above-described tags, node indexes associated with encrypted data, such as the configuration described with reference to
However, data formed by using indexes becomes redundant, increasing the amount of data, which is not desirable in performing distribution via a network. In contrast, by using the above-described tags as index data indicating the key positions, the positions of the keys can be determined with a small amount of data.
The EKB format is further described by referring back to
[6. Tree Category Classification]
A description is now given of the configuration in which the renewing of keys and the distribution of encrypted keys and data are efficiently performed by classifying a hierarchical tree structure defining node keys according to the categories of the devices.
Nodes positioned from the topmost level to the M-th level are set as category nodes 304 by way of example. That is, each node at the M-th level is a device setting node of a specific category. By using one node at the M-th level as an origin, nodes and leaves at (M+1)-th and lower levels are nodes and leaves associated with the devices included in that category.
For example, a category [Memory Stick (registered)] is set in one node 305 at the M-th level shown in
The level lower than the M-th level by a few levels can be set as a sub category node 306. For example, at the level lower than the level of the category [Memory Stick] node 305 by two levels, a node for [playback-dedicated device] is set as a sub category node included in the category for the devices using Memory Stick. A node 307 for a telephone with a music playback function included in the category of the playback-dedicated device is set under the node 306 for the playback-dedicated device, which serves as a sub category node. A [PHS] node 308 and a [cellular telephone] node 309 included in the category of the telephone with a music playback function can be set at a level lower than the node 307.
The categories and sub categories may be set, not only by the device types, but also by nodes uniquely managed by a manufacturer, a content provider, or a billing agent, i.e., by a certain unit, for example, a processing unit, an allocation unit, or a service provision unit (hereinafter collectively referred to as “entities”). If, for example, one category node is set as an origin node dedicated for the game machine XYZ sold by a game machine manufacturer, the game machine manufacturer can sell the game machine XYZ by storing node keys and leaf keys at levels lower than the origin node in the game machine XYZ. Thereafter, to distribute or renew the encrypted content and various keys, an enabling key block (EKB) formed by the node keys and leaf keys lower than the origin node key is generated and distributed. Accordingly, the distributed data can be used only by the devices linked to the origin node.
As described above, by using one node as an origin node and by setting nodes linked to the origin node as related nodes of a category or a sub category defined in the origin node, a manufacturer or a content provider managing the origin node of a category level or a sub category level uniquely generates an enabling key block (EKB) having the origin node, and distributes the enabling key block (EKB) to the devices belonging to the origin node. Thus, key renewal can be performed without influencing devices of another category which do not belong to the origin node.
For example, key management is performed in a tree structure system, as shown in
More specifically, keys assigned to nodes at 24 levels lower than the node of the T system are applied to service providers, which serve as management entities, for example, shop servers or license servers, or to services provided by the service providers. In this example, 224 (about 16 mega) service providers or services can be defined. Further, by lower 32 levels, 232 (about 4 giga) users (or user devices) can be defined. Keys assigned to the nodes on the paths from the nodes at the 32 levels to the node of the T system form a DNK (device node key), and the IDs assigned to the leaves at the bottommost level are set as leaf IDs.
For example, a content key used for encrypting content is encrypted with a root key KR′, and a renewed node key at a higher level is encrypted by using a renewed node key at a level immediately lower than the previous level, and is located in an EKB. In the EKB, a renewed node key at the second level from the bottommost level is encrypted by a node key or a leaf key at the bottommost level, and is located in the EKB.
By using one key in the DNK indicated in service data, a user device decrypts a renewed node key at a level immediately higher than the level of the user device in the EKB, which is distributed together with content data. Then, by using the decrypted key, the user device decrypts a renewed node key at a level higher than the previous level in the EKB. By sequentially performing the above-described processing, the user device is able to obtain the renewal root key KR′.
By the category classification of a tree, as stated above, one node can be used as an origin node, and nodes linked to the origin node can be set as related nodes of a category or a sub category defined in the origin node. Then, a manufacturer or a content provider managing the origin node of a category level or a sub category level uniquely generates an enabling key block (EKB) having the origin node, and distributes the enabling key block (EKB) to the devices belonging to the origin node.
A description is further given of the content distribution and usage modes employing an EKB distribution system based on a plurality of categories by performing the device management using the above-described tree structure.
Two categories are described below with reference to
Both the hardware EKB[EKB(H)] and the service EKB[EKB(S)] can be decrypted by possessing a device node key (DNK) provided for authorized devices, i.e., keys corresponding to the nodes on the paths from the leaf to the T system node.
[7. License Purchase and Content Playback Processing]
A description is now given of license obtaining processing performed by a client required for using (playing back) the content (encrypted content) recorded on the second data recording field 12 of the information recording medium (disk) 10 shown in
At the client side, in order to play back the content recorded on the second data recording field 12 of the information recording medium (disk) 10 shown in
The client application of the information processing apparatus, for example, a PC, reads various items of information such as a PID (see
The client application then sends the obtained PID and product ID to the PID verification server based on the obtained PID verification server URL (step (3)).
Upon receiving the PID and the product ID from the client, the PID verification server executes MAC verification processing to verify whether the received ID is not tampered with (step (4)). The MAC verification processing is performed, for example, as follows. A MAC is generated as described with reference to
A key required for generating a MAC is obtained from an album master table by the PID verification server. An example of the configuration of the album master table is shown in
The PID verification server obtains the PID key as the MAC verification key from the album master table shown in
When the generated MAC value coincides with that added to the received PID, the PID verification server determines that the PID data is not tampered with, and sends the PID and the product ID to the management system (step (5)). Upon receiving the PID and the product ID from the PID verification server, the management system generates a transaction ID (TID) as ID data for a series of processing sequences (transactions) based on, for example, random numbers (step (6)).
The management system generates a transaction table entry in which the product ID, the PID, the license price, and the content-usage price information are associated with the generated transaction ID, and stores the entry in the table (step (7)). An example of the configuration of the transaction table is shown in
The content usage price for the content may be fixed as the license price. However, it may be varied according to the number of content usages, i.e., the number of license purchases.
As described above, a combination of the product ID and the PID (media ID) is globally unique ID data. Accordingly, a disk table in which a combination of the product ID and the PID (media ID) and the number of purchases, i.e., the number of license issues based on a content usage request from the client, are associated with each other, for example, the disk table shown in
The disk table and the album price master table shown in
For example, when the product ID and the PID (media ID) provided from the client are the first entry [P-1, PID1-001] shown in
The updating of the disk table and the setting of the price may be performed by the management system of the license management apparatus. Alternatively, it may be performed by one of the shop server, the PID verification server, and the license server. More specifically, the server obtains content usage information of the client based on ID data in response to a license obtaining request received from the client. The server then obtains license providing condition information from the album price master table based on the content usage information, and determines the license providing condition for the client based on the obtained license providing condition information. In the server or the management system, a processing program for determining the license providing condition is stored in a storage unit, and a controller, for example, a CPU, functions as license-providing-condition determining means.
There are various modes for setting prices. For example, the price may be set to be lower as the number of purchases for the same content becomes increased, and for a predetermined number of purchases, for example, three or more purchases, the price may be set to be free.
Not only the mode in which the price is changed according to the number of purchases, but also various modes in which services can be changed are possible. For example, various services according to the number of purchases can be provided. When, for example, a period-restricted license is set, the setting period may be set to be longer according to the number of purchases. Alternatively, free content may be provided according to the number of purchases.
The price information in the entries of the transaction table (
The processing continued from the sequence diagram shown in
The client application starts the browser based on the received URL (step (10)) so as to display the license purchase page provided by the shop server, and then sends the transaction ID (TID) to the shop server (step (11)).
The shop server obtains the product ID, the PID (media ID), and the price information from the transaction table (see
A series of processing performed by the license management apparatus from when a PID and a product ID are received from the client to when a purchase page is sent to the client is described below with reference to the flowchart of
In step S101, based on the product ID received from the client, the corresponding PID key is obtained from the album master table (see
In step S103, it is determined whether the calculated MAC value is equal to the MAC value stored in the received PID. If not, it is determined that the received PID is tampered with, and the process proceeds to step S108 in which an error message is sent to the client. The processing is then terminated.
If it is found that the calculated MAC is equal to the MAC stored in the PID, it is determined that the received PID is not tampered with. Then, in step S104, based on the [product ID and PID (media ID)] received from the client, the data indicating the number of purchases is obtained from the disk table (see
Subsequently, in step S106, a TID is generated, and an entry for the product ID, the PID (media ID), and the price associated with the TID is set in the transaction table (see
Then, in step S107, content information is obtained from the album master and the track table, and the price information is obtained from the transaction table. Then, a purchase page having the price and content information is generated and is sent to the client together with the TID. The processing of each step shown in
The license providing processing continued from the processing sequence shown in
An example of the configuration of the purchase page to be provided for the browser of the client is shown in
The client displays a purchase page, such as that shown in
Upon receiving the billing information, the shop server performs billing processing based on the received information (step (17)). More specifically, the shop server connects to a billing agent, for example, a banking agency providing on-line billing services, and checks whether the credit card number provided by the client is valid and authorized, and whether the balance on a user's account is sufficient for performing billing. The shop server then withdraws money equivalent to the purchase fee from the designated account in the billing agent or performs account transfer processing. The shop server then receives a billing completion message from the billing agent.
Upon completion of the billing processing, the shop server generates a start file for starting a content usage (playback processing) program by the client application, and sends the start file to the client application via the browser of the client.
An example of the start file is described below with reference to
The client application starts an application according to the start file received from the shop server (step (19)).
As the application start processing performed by the client application, it is first determined whether service data associated with the service ID set in the start file (see
The service data is data received from a license server when the client wishes to receive various services, for example, a content usage service. For example, the service data allows the client to receive a service usage right for a service package provided by a specific service provider.
As shown in
The registration processing corresponds to processing steps (20) and (21) shown in
After performing the registration processing, the client then obtains usage right information as a license for the content to be used (played back) from the license server.
An example of the data configuration of the usage right information is shown in
In content 572, i.e., in the content recorded on the second recording field 12 of the information recording medium 10 shown in
A sequence for obtaining usage right information performed as the license obtaining processing is now described with reference to the sequence diagram of
The client sends a request to obtain usage right information for the content to be played back or used to the license server (step (22)). This request contains the usage-right information ID (UID) contained in the start file (see
Upon receiving a request to obtain the usage right information, the license server requests the management system to perform order check processing (step (23)). This request contains the usage-right information ID (UID) and the transaction ID (TID). Upon receiving the order check request, the management server sends response information indicating usage conditions in response to the usage-right information ID (UID) as an order check response to the license server (step (24)).
Upon receiving the response information, the license server generates usage right information indicating the content usage conditions, and issues the information to the client (step (25)). The content usage conditions are information indicating permission for various types of processing, for example, the number of content playback operations, the period, restrictions on copies, and restrictions on checkouts for external devices.
After receiving the usage right information, the client is able to use the content previously received from the content server based on the usage conditions recorded on the usage right information. In response to a content playback request (step (26)) by designating the content ID (CID) and the usage-right information ID from the user, the client application plays back the content according to the usage conditions (step (27)).
A basic process for the content playback processing is described below with reference to
The content (Enc(Kc, Content)) included in the content file 584 is encrypted with the content key Kc, and the content key Kc is a key obtained from the root key Kroot that can be acquired from the EKB.
The client 583 obtains the device node key (DNK) from the service data received from the license server, and decrypts the EKB of the content file based on the obtained DNK, thereby obtaining the root key Kroot. By using the obtained root key Kroot, the client 583 decrypts the Enc(Kroot, Kc) so as to obtain the content key Kc. By using the obtained content key Kc, the client 583 decrypts the encrypted content Enc(Kc, Content) so as to play back the content.
Details of the content playback processing in association with the service data and the usage right information are given below with reference to
Service data 601 and usage right information 603 shown in
The encrypted content file 60.2 is a file containing the service EKB [EKB(S)] storing the root key Kroot set based on a service category tree, data E(Kroot, CID+Kc) generated by encrypting the content ID (CID) and the content key (Kc) used for encrypting and decrypting the content by using the root key Kroot, and data E(Kc, Content) generated by encrypting the content with the content key Kc.
The usage right information 603 is data storing the leaf ID and the content usage-right condition information. The content usage-right condition information includes various usage conditions set for the content, for example, the usage period, the number of usages, and copy restrictions. Upon receiving the usage right information 603, the user device stores the usage right information as security information for the content or as the content index data in an AV index file set for the playback device (for example, a PC).
For a user device, for example, a PC, having large-capacity storage means and a high performance processor, the usage right information can be stored as the security information for the content. In this case, it is preferable that the user device performs processing when using the content by referring to all the items of usage right information. In contrast, for a user device, for example, a portable device (PD), having a low performance processor without having large-capacity storage means, usage right information 403 consisting of selected items of information can be stored in an AV index file as the content index data, and performs processing when using the content by referring to the usage condition information stored in the AV index file.
In step S701 of
Then, in step S702, the user device decrypts the encrypted data E(Kroot′, SDNK) in the service data 601 by using the root key Kroot′ extracted from the EKB(H), thereby obtaining the device node key (SDNK) used for processing (decrypting) the service EKB[EKB(S)].
Then, in step S703, the user device processes (decrypts) the service EKB[EKB(S)] stored in the encrypted content file 602 by using the device node key (SDNK) extracted from the service data, thereby obtaining the root key Kroot set based on the service category tree stored in the service EKB[EKB(S)].
In step S704, the user device then decrypts the encrypted data E(Kroot, CID+Kc) stored in the encrypted content file 602 by using the root key Kroot extracted from the service EKB[EKB(S)], thereby obtaining the content ID (CID) and the content key (Kc).
Subsequently, in step S705, the user device performs matching (verification) on the content ID (CID) extracted from the encrypted content file 602 and the content ID stored in the usage right information. If the use of the content is verified as a result of matching processing, in step S706, the user device decrypts the encrypted content E(Kc, Content) stored in the encrypted content file 602 by using the content key (Kc) extracted from the encrypted content file 602.
As described above, a hardware EKB[EKB(H)] as an EKB based on a category tree formed for hardware, which serves as content usage devices, and a service EKB[EKB(S)] as an EKB based on a category tree set for content usage services are individually provided for the users, and only the users having an authorized DNK for each EKB is allowed to use the service.
The DNK for decrypting the service EKB[EKB(S)], i.e., the SDNK, can be provided as the service data 601 for the content. The SDNK is encrypted by using the root key Kroot′ which is set based on the hardware category tree that can be obtained only by the devices having an authorized hardware DNK, i.e, the HDNK. Accordingly, only the user devices having an authorized HDNK can obtain the SDNK to use the service.
In the use of the content, matching is performed on the content identifier (CID) obtained from the encrypted content file 602 and the CID obtained from the usage right information. Accordingly, obtaining the usage right information 603 and extracting the CID information from the usage right information 603 can be an essential condition for a content playback process. Thus, the content can be used according to the usage conditions.
The present invention has been described in detail with reference to what is presently considered to be the preferred embodiment. It is apparent, however, that modifications and alternatives may be made by those who skilled in the art without departing from the spirit and scope of the present invention. That is, the present invention has been disclosed by way of examples only, and is not restricted to the embodiment. In order to understand the gist of the present invention, the claims recited at the beginning of the specification should be considered.
The above-described series of processing disclosed in the specification may be executed by hardware, software, or a combination of hardware and software. If software is used, a program having the processing sequences recorded thereon may be installed into a memory of a computer integrated into dedicated hardware, or may be installed into a general-purpose computer which can execute various types of processing. Then, the program can be executed.
The program may be prerecorded on, for example, a hard disk or a ROM (read only memory) as a storage medium. Alternatively, the program may be temporarily or permanently stored (recorded) in a removable recording medium, for example, a flexible disk, a CD-ROM (compact disc read only memory), a MO (magneto optical) disk, a DVD (digital versatile disc), a magnetic disk, or a semiconductor memory. Such a removable recording medium can be provided as so-called “package software”.
The program may be installed from the above-described removable recording medium to a computer. Alternatively, the program may be wirelessly transferred from a download site to a computer, or may be transferred to the computer by wired means via a network, for example, a LAN (local area network) or the Internet. Then, the computer can receive the program transferred as described above, and installs it into a storage medium, for example, a built-in hard disk.
Various types of processing disclosed in the specification may be executed in chronological order as disclosed in the specification. Alternatively, they may be executed concurrently or individually according to the performance of a device executing the processing or according to the necessity.
Industrial Applicability
As described above, according to the configuration of the present invention, a condition for providing a license as a content usage right for a client is dynamically set based on client's content usage status data. Thus, flexible services can be provided, for example, a license providing fee can be decreased or a license can be provided free for clients having a large number of content usages.
According to the configuration of the present invention, for providing a license for a usage right of the content stored in an information recording medium, globally unique data indicating a combination of a media ID, stored in the information recording medium, as the identifier unique to the information recording medium and a product ID as the identifier set for each product corresponding to a group of a plurality of information recording media is received from a client. Based on such ID data, the content usage status data is checked. Thus, licenses can be provided under the reliable management of the content usage.
According to the configuration of the present invention, a license provided by the license management apparatus is a usage right of encrypted content contained in a content file owned by a user. Service data storing a device node key (DNK) required for processing an enabling key block (EKB) is provided as license information. Thus, a strict management of the content usage associated with services can be implemented.
Number | Date | Country | Kind |
---|---|---|---|
2002-265418 | Nov 2002 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP03/11617 | 9/11/2003 | WO |