Patent Publication Number: US-7590856-B2

Title: System for managing license for protecting content, server for issuing license for protecting content, and terminal for using content protected by license

Description:
BACKGROUND OF THE INVENTION 
   The present invention relates to a technique for protecting copyrighted content by use of a license, and more particularly to an apparatus and a system for managing temporary licenses for content between a server and terminals. 
   Services have been proposed for delivering content such as movies and music through communication means such as the Internet and satellite broadcasting. Data handled by such a system is digitized and therefore is easy to duplicate, making it important to protect the copyrighted content. One proposed method for such protection is to encrypt the content before distributing it. For example, the content is encrypted through the public key cryptosystem, and at the same time, a decryption key is created for use to decrypt the encrypted content. Since the encrypted content cannot be reproduced without the corresponding decryption key, the decryption key and its use conditions may be managed as a pair, or a license, to prevent unauthorized use of the content and thereby protect the right of the content author, etc. 
   Japanese Patent Laid-open No. 2002-288448 discloses a system for reproducing content at a plurality of terminals owned by users, wherein after a license managed by the server is transmitted to a terminal, if the terminal has finished using the license, the license is deleted from the terminal or it is returned to the server so that the license can be transmitted to another terminal. 
   In content delivery service using the above copyright protection technique, it is important to employ a method capable of securely managing the delivered content licenses at the terminals. 
   In the above prior art technique, content data is encrypted, and a decryption key for decrypting the data and the use conditions of the key (hereinafter collectively referred to as a license) are used to protect the copyright. In this system, the license use conditions transmitted from the server to terminals are the same as those managed or held by the server, making it impossible to change the use conditions for each terminal. For example, a license including a “consumptive type” use condition whose value is updated at a terminal, such as the maximum allowable number of content reproduction operations, cannot be transmitted to a plurality of terminals at the same time. 
   Further, once transmitted to a terminal, a license must be returned to the server before transmitting it to another terminal, making it necessary that the server and the terminal (an apparatus or a memory device storing the license) communicate with each other when the license is returned. This means that the server must be aware of at which terminal the user has stored the license, which is inconvenient. 
   Still further, since each license transmitted to a terminal is managed by only attaching a flag to the corresponding license managed by the server, it is impossible to support the case where the use conditions vary at different terminals. 
   SUMMARY OF THE INVENTION 
   An object of the present invention is to provide a license management system, a server, and a terminal for returning a license offline (that is, without any communications between the server and the terminal). 
   Another object of the present invention is to provide a license management system, a server, and a terminal capable of selecting a method for returning a license based on the type of terminal. 
   Still another object of the present invention is to provide a license management system, a server, and a terminal capable of restoring license data when the data has been damaged due to a terminal failure, etc. 
   To accomplish the above objects, a license management system of the present invention comprises: means (e.g., a license table) for managing a first license purchased by a user; communication means for transmitting/receiving data through a communication network such as a public network (an optical circuit, a CATV network, a telephone line) or a private communication network or a home network; means for performing authentication processing for a terminal; means for encrypting/decrypting communications with the terminal; means (e.g., an issued temporary license information table) for storing information on issued second licenses (e.g., temporary licenses); means for returning a second license; and means, when the second license has been returned, for deleting the information on the second license stored in the means for storing information on issued second licenses. 
   Further in the above license management system, each second license includes return mode information, and the terminal includes means for selecting a return mode and requesting the selected return mode to be established. 
   Still further, a server in the above license management system includes means for automatically returning or retrieving a second license. 
   Still further, the server in the above license management system further includes means for inhibiting the terminal from returning a second license. 
   Still further in the above license management system, the above means for storing information on issued licenses includes means for storing issued second licenses and means for restoring a second license issued from the means for storing second licenses to a terminal. 
   The present invention can return a license offline (that is, without any communications between the server and the terminal), making it possible to reduce the burden on content users. 
   The present invention can select a method for returning a license based on the type of terminal, thereby enhancing the usability for content users. 
   The present invention can restore license data when it has been damaged due to a terminal failure, etc., reducing the loss suffered by the content user. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a diagram showing a configuration of a license distribution system according to an embodiment of the present invention. 
       FIGS. 2A to 2D  illustrate generation of a temporary license in the license distribution system of the embodiment. 
       FIG. 3  is the first part of a flowchart showing an example of creation of a temporary license according to the embodiment. 
       FIG. 4  is the second part of the above flowchart. 
       FIG. 5  is a diagram showing an issued temporary license information table according to the embodiment. 
       FIGS. 6A to 6C  illustrate return of a temporary license in the license distribution system of the embodiment. 
       FIG. 7  is a flowchart showing an example of return processing of a temporary license according to the embodiment. 
       FIG. 8  is a flowchart showing an example of automatic return processing of a temporary license according to the embodiment. 
       FIG. 9  is a diagram showing another issued temporary license information table according to the embodiment. 
       FIG. 10  is a flowchart showing another example of automatic return processing of a temporary license according to the embodiment. 
       FIG. 11  is a flowchart showing another example of return processing of a temporary license according to the embodiment. 
       FIGS. 12A and 12B  are diagrams illustrating a terminal return flag and a requested terminal return flag for terminals, respectively, according to the embodiment. 
       FIG. 13  is a diagram illustrating a return flag of a license for terminals according to the embodiment. 
       FIGS. 14A and 14B  illustrate an example of setting processing of a return inhibit flag according to the embodiment. 
       FIGS. 15A and 15B  illustrate an example of setting processing of an automatic return flag according to the embodiment. 
       FIG. 16  is a diagram showing still another issued temporary license information table according to the embodiment. 
       FIG. 17  is a diagram showing another configuration of the license distribution system according to the embodiment. 
       FIG. 18  is a flowchart showing still another example of automatic return processing of a temporary license according the embodiment. 
       FIG. 19  is a diagram showing input temporary license acquisition request information according to the embodiment. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS OF THE INVENTION 
     FIG. 1  is a diagram showing a configuration of a license management system to which a license management method according to an embodiment of the present invention can be applied. 
   Referring to  FIG. 1 , reference numeral  1  denotes a license server; numeral  11  denotes a license table for storing licenses that can be used by users; numeral  12  references a terminal ID information table for storing IDs identifying terminals and information on their users; and numeral  13  denotes an issued temporary license information table for storing issuance information on temporary licenses generated from the license table  11 . A communication control section  20  is connected to a wired or wireless public communication network or to a private communication network for communicating with terminals, such as the exemplary terminal  2 . An encryption/decryption control section  21  performs encryption/description processing on a temporary license when exchanging it with a terminal  2 . An authentication control section  22  determines a user ID, based on a terminal ID identifying a terminal to perform authentication processing. An issuance control section  23  issues a temporary license based on a license stored in the license table  11 . A return control section  24  updates a license stored in the license table  11 , when a temporary license has been returned from a terminal  2 . A communication network  3 , such as a wired or wireless public communication network or private communication network, connects the server  1  to a terminal  2 . 
   In the terminal  2 , communication control section  30  connects to the network  3  for communicating with the license server  1 . A license module  31  obtains, returns, and manages a temporary license. An encryption/decryption section  32  is provided for decrypting encrypted content, by use of a content key included in a temporary license. A content reproduction section  33  reproduces decrypted content. A temporary license table  34  stores temporary licenses. A terminal An ID  35  identifies each terminal  2 . A terminal application  34  controls the terminal  2 . Encrypted content  37  may be locally stored. The license table  11 , the terminal ID information table  12 , the issued temporary license information table  13 , the temporary license table  34 , and the encrypted content  37  are stored in a rewritable storage device. The terminal IDs  35 , on the other hand, are stored in a non-rewritable storage device. 
   First of all, the terminal  2  accesses the license server  1  through the communication network  3  to obtain a temporary license which includes a content key necessary to reproduce encrypted content. Since this access might be intercepted by a third party on the communication network  3 , the server  1  and the terminal  2  must apply encryption to maintain a secure communication. It should be noted, however, that encryption is not required if there is no possibility of interception by a third party, for example, if the communication network is a private line. Through the encrypted secure communication, the license module  31  in the terminal  2  transmits a session initiation command which includes a terminal ID  35  identifying the terminal  2 . 
   In the license server  1 , the encryption/decryption control section  21  decrypts the encrypted session initiation command received by the communication control section  20  from the terminal  2 . The command analyzing section  25  analyzes the command, obtaining the terminal ID  35 . Then, the authentication control section  22  checks whether the terminal ID  35  is registered, and obtains the user ID from the information stored in the terminal ID information table  12 . The authentication control section  22  checks whether the obtained terminal ID  35  and user ID have been revoked, as necessary. If a valid terminal and a valid user have been identified at this step, a secure session is established between the license server  1  and the license module  31  in the terminal  2 . 
   Then, the terminal  2  requests a necessary temporary license by specifying an originating license stored in the license table. At that time, the terminal  2  also specifies the required use conditions for the requested temporary license (for example, the expiration date/time, the maximum allowable number of content reproduction operations, and the reproduction time) and transmits a temporary license acquisition command to the license server  1  after encrypting it. In the license server  1 , the encryption/decryption control section  21  decrypts the encrypted temporary license acquisition command received through the communication control section  20 , and then the command analyzing section  25  transmits the decrypted temporary license acquisition command to the issuance control section  23 . From the temporary license acquisition command, the issuance control section  23  identifies the originating license and obtains the use conditions for the temporary license, such as the requested expiration date/time and the requested maximum allowable number of content reproduction operations, and checks whether or not the values of these use conditions exceed the values of their corresponding use conditions of the originating license stored in the license table  11 . If not, the issuance control section  23  creates the temporary license. At that time, the values of the “consumptive type” use conditions of the originating license, such as the maximum allowable number of content reproduction operations, stored in license table  11  are reduced by the values of their corresponding “consumptive type” use conditions of the temporary license. Furthermore, the maximum allowable number of simultaneous issues of the originating license is decremented by 1. For example, when a sublicense or a temporary license with its maximum allowable number of content reproduction operations set to 3 has been created from a license whose license ID is LID 1  in the license table  11 , the maximum allowable number of content reproduction operations of the originating license is reduced from 10 to 7 and the maximum allowable number of simultaneous issues is decremented from 1 to 0. The maximum allowable number of simultaneous issues of a license is the number of temporary licenses that can be issued from the license at the same time. That is, when the maximum allowable number of simultaneous issues of a license has been reduced to 0, no more temporary license can be issued. Therefore, it is preferable to inhibit further issuance (creation) of a temporary license in this state. Thus, in the case where the maximum allowable number of simultaneous issues of a license is 0, copying of the license, namely, creation of a temporary license from it is inhibited. When the temporary license is transmitted to the terminal  2 , information on the issued temporary license is stored in the issued temporary license information table  13 . The temporary license is transmitted to the terminal  2  through the communication control section  20  as a response to the temporary license acquisition command after it is encrypted by the encryption/decryption control section  21 . The license table  11  contains at least one of three use conditions: the expiration date/time, the maximum allowable number of content reproduction operations, and the maximum allowable number of simultaneous issues. The initial maximum allowable number of simultaneous issues and the return flag may be omitted from the license table  11 . 
   In the terminal  2 , the license module  31  receives the encrypted temporary license through the communication control section  30  as a response to the temporary license acquisition command. The encrypted temporary license is decrypted and then stored in the temporary license table  34 . If users can directly access the temporary license, the temporary license is encrypted before it is stored. 
   Then, when a reproduction command has been entered through an input device such as a remote controller or a mouse, the terminal application  36  instructs the encryption/decryption section  32  to issue a reproduction permission request to the license module  31 . In response, the license module  31  obtains the requested temporary license from the temporary license table  34  and transmits the content key and the use conditions to the encryption/decryption section  32  which then decrypts the encrypted content  37  by use of the obtained content key. The decrypted content is reproduced by the content reproducing section  33 , and the reproduced content is output. When the value of one of the use conditions has been exceeded, the encryption/decryption section  32  stops further decryption of the content and abandons the content key. 
   When a stop command has been entered through an input device such as a remote controller or a mouse, the terminal application  36  instructs the encryption/decryption section  32  to stop decrypting the content. Then, the encryption/decryption section  32  abandons the content key and stops further decryption of the content, while the content reproducing section  33  stops the reproduction of the content. The content reproducing section  33  notifies the license module  31  of the actual use conditions such as the number of content reproduction operations actually performed, putting an end to the use of the content key. If the values of the given consumptive type use conditions of the temporary license have not been reached, the license module  31  subtracts the values of the actual consumptive type use conditions from them, and the resulting values are assigned to the temporary license as updated consumptive type use conditions. 
   If the temporary license is no longer needed, the terminal application  36  checks the return flag included in the temporary license by use of the license module  31  to determine whether the temporary license is to be returned. If the temporary license is to be returned, the terminal application  36  returns the temporary license to the license server  1  as a temporary license return command after encrypting it. At that time, if the secure session is no longer established, the terminal  2  first transmits a session initiation request command. If the return flag included in the temporary license indicates “return inhibited”, the terminal  2  does not return the temporary license to the license server  1 . 
   In the license server  1 , the encryption/decryption control section  21  decrypts the temporary license return command received through the communication control section  20 . Then, the command analyzing section  25  transmits the temporary license return command to the return control section  24 . The return control section  24  identifies the originating license from the temporary license, and if there are “consumptive type” use conditions, such as the maximum allowable number of content reproduction operations, set for the temporary license, the return control section  24  adds the values of these use conditions to the values of the corresponding use conditions of the originating license. Furthermore, the maximum allowable number of simultaneous issues of the originating license is incremented by 1. If the maximum allowable number of simultaneous issues of the originating license is currently set at 0 and as a result, copying of the license is inhibited, it is preferable to remove this inhibition (inhibition of issuance, or creation, of temporary licenses). Further, the issued temporary license information table  13  is checked for the corresponding record or the record of the temporary license. If there is the corresponding record, it is deleted from the table. 
   Since the issued temporary license information table  13  stores information on the issued temporary licenses, this table may be checked regularly. Then, if there is a temporary license whose terminal expiration date/time has passed, its originating license is identified based on the license ID, and the maximum allowable number of simultaneous issues of the originating license in the license table  11  is incremented by 1. In this case, since the temporary license has not been returned, it is assumed that the values of the “consumptive type” use conditions set for the temporary license have been all reached and therefore the values of the use conditions of the originating license other than the maximum allowable number of simultaneous issues are not changed. 
   Thus, acquisition and return of temporary licenses are controlled such that temporary licenses whose expiration date/time has passed are automatically returned if their return flags are set at a value indicating automatic return. With this arrangement, the license server can carry out return processing on a temporary license issued to even a portable terminal, which is not always connected to the communication network. This enables users at other terminals to use the returned temporary licenses, which is convenient. Further, consider that a user has forgotten to return a temporary license and turned off the terminal. Even in such a case, the temporary license is conveniently automatically returned when its expiration date/time has passed, making it unnecessary for the user to take the trouble to turn on the terminal and return the temporary license. 
   A description will below be made of an example of creation of a temporary license with reference to  FIGS. 2A to 2D ,  3 , and  4 . Referring to  FIG. 2A , reference numeral  50  denotes a license stored in the license table of the license server before a temporary license is issued;  51  denotes temporary license acquisition request information included in a temporary license acquisition command;  52  denotes a license stored in the license table of the license server after the temporary license is issued; and  53  denotes the temporary license obtained by the terminal.  FIGS. 3 and 4  together are a flowchart showing creation of a temporary license. 
   First of all, the issuance control section  23  analyzes the temporary license acquisition request information  51  included in a temporary license acquisition command transmitted from a terminal and searches the license table  11  for the record of the license whose license ID is LID  5 , which is indicated by the temporary license acquisition request information  51 , at step S 001 . If the record has been found, the issuance control section  23  checks whether the use conditions requested by the terminal can be set. If, on the other hand, the record has not been found, the processing ends without creating any temporary license. 
   Steps S 002  to S 005  set a terminal expiration date/time  534 . Specifically, at step S 002 , the issuance control section  23  checks whether or not the requested terminal expiration date/time  516  included in the temporary license acquisition request information  51  exceeds the expiration date/time  504  of the license  50  set before the requested temporary license is issued. If not, the requested terminal expiration date/time  516  is set as the terminal expiration date/time  534  at step S 003 . If, on the other hand, the requested terminal expiration date/time  516  exceeds the expiration date/time  504 , the expiration-date/time reject flag  513  is checked at step S 004 . The expiration-date/time reject flag  513  is set to “1” to indicate that issuance of a temporary license is to be rejected when the requested terminal expiration date/time  516  cannot be set for it. If the expiration-date/time reject flag  513  is set at “0”, the expiration date/time  504  of the license  50  set before the requested temporary license is issued is set as the terminal expiration date/time  534  at step S 005  since the requested terminal expiration date/time  516  cannot be set, indicating that a temporary license is to be issued. Accordingly, in the example of  FIGS. 2A to 2D , since the requested terminal expiration date/time  516  (set at “12/2/2002, 7:00”) exceeds the expiration date/time  504  (set at “12/1/2002, 23:59”) and the expiration-date/time reject flag is set at “0”, the terminal expiration date/time is set to “12/1/2002, 23:59” at step S 005  in  FIG. 3 . 
   The maximum allowable number of terminal content reproduction operations  535  is a “consumptive type” use condition since it is decremented each time the content is reproduced. Steps S 006  to S 009  set the maximum allowable number of terminal content reproduction operations  535 . Specifically, at step S 006 , the issuance control section  23  checks whether or not the requested maximum allowable number of terminal content reproduction operations  517  included in the temporary license acquisition request information  51  is larger than the maximum allowable number of content reproduction operations  505  of the license  50  set before the requested temporary license is issued. If not, the requested maximum allowable number of terminal content reproduction operations  517  is set as the maximum allowable number of terminal content reproduction operations  535  and the maximum allowable number of content reproduction operations  505  is reduced by the maximum allowable number of terminal content reproduction operations  535  at step S 007 . If the requested maximum allowable number of terminal content reproduction operations  517  is larger than the maximum allowable number of content reproduction operations  505 , the number-of-reproduction-operations reject flag  514  is checked at step S 008 . The number-of-reproduction-operations reject flag  514  is set to “1” to indicate that issuance of a temporary license is to be rejected when the requested maximum allowable number of terminal content reproduction operations  517  cannot be set for it. If the number-of-reproduction-operations reject flag  514  is set at “0”, the maximum allowable number of content reproduction operation  505  of the license  50  set before the requested temporary license is issued is set as the maximum allowable number of terminal content reproduction operations  535  of the temporary license at step S 009  since the requested maximum allowable number of terminal content reproduction operations  517  cannot be set for it and the maximum allowable number of content reproduction operations  505  is reduced by the maximum allowable number of terminal content reproduction operations  535 , indicating that the temporary license is to be issued. Accordingly, in the example of  FIGS. 2A to 2D , since the requested maximum allowable number of terminal content reproduction operations  517  set at 3 is not larger than the maximum allowable number of content reproduction operations  505  set at 5, the maximum allowable number of terminal content reproduction operations  535  is set to 3 and the maximum allowable number of content reproduction operations  525  of the license  52  is to 2. The maximum allowable number of content reproduction operations  525  of the license  52  set after the temporary license is issued corresponds to the maximum allowable number of content reproduction operations  505  of the license  50  set before the temporary license is issued. 
   A terminal return flag  536  indicates either “automatic return” or “return required”. Steps S 010  to S 013  set the terminal return flag  536 . Specifically, at step S 010 , the value of the requested terminal return flag  518  included in the temporary license acquisition request information  51  is compared with the value of the return flag  507  of the license  50  set before the requested temporary license is issued. If they coincide with each other, the terminal return flag  536  is set to the value of the requested terminal return flag  518  at step S 011 . If, on the other hand, they do not coincide, the return-flag reject flag  515  is checked at step S 012 . The return-flag reject flag  515  is set to “1” to indicate that issuance of a temporary license is to be rejected when the terminal return flag  536  cannot be set to the value of the requested terminal return flag  518 . If the return-flag reject flag  515  is set at “0”, the terminal return flag  536  of the temporary license is set to the value of the return flag  507  of the license  50  set before the temporary license is issued at step S 013  since the terminal return flag  536  of the temporary license cannot be set to the value of the requested terminal return flag  518 , indicating that the temporary license is to be issued. Accordingly, in the example of  FIGS. 2A to 2D  since the value “automatic return” of the requested terminal return flag  518  coincides with the value “automatic return” of the return flag  507 , the terminal return flag  536  is set to “automatic return” at step S 011 . 
   At step S 017 , the issuance control section  23  checks the maximum allowable number of simultaneous issues of the originating license. If the maximum allowable number of simultaneous issues of the license is already set at 0, the processing ends without issuing any temporary license since no more temporary licenses can be issued. If the maximum allowable number of simultaneous issues is larger than 0, the maximum allowable number of simultaneous issues  526  of the license  52  is set to a value obtained as a result of decrementing the maximum allowable number of simultaneous issues  506  of the license  50  by 1 at step S 016 . In the example of  FIGS. 2A to 2D , since the maximum allowable number of simultaneous issues  506  of the license  50  is set at 2, the maximum allowable number of simultaneous issues  526  of the license  52  is set to 1. 
   At step S 014 , the license ID  531 , the content ID  533 , and the content key  537  of the temporary license to be issued  53  are set to the values of the license ID  501 , the content ID  503 , and the content key  508 , respectively, of the license  50  set before the temporary license is issued. 
   At step S 015 , the temporary license ID  532  is set such that it is unique among the temporary licenses issued from the same license. This arrangement allows uniquely identifying any temporary license by use of the license ID  531  and the sublicense ID or temporary license ID  532 . 
   Thus, the use conditions of a temporary license can be set such that the values of these use conditions do not exceed the values of their corresponding use conditions of the originating license managed by the license server  1 , making it possible to issue a number of temporary licenses equal to the maximum allowable number of simultaneous issues of the originating license at most and thereby simultaneously reproduce the same content at a plurality of terminals. 
   A description will below be made of an example of the issued temporary license information table with reference to  FIG. 5 . The issuance control section  23  of the license server  1  creates a temporary license as described above and stores the following information in the issued temporary license information table  13  before transmitting the temporary license to the terminal. Specifically, the issuance control section  23  stores a license ID  1301  and a sublicense ID  1302  in the issued temporary license information table  13  to identify the temporary license. The license ID  1301  is also used to identify the originating license stored in the license table. Furthermore, a terminal expiration date/time  1303  is stored in the table to indicate the time at which the temporary license is automatically returned when the terminal return flag is set at “automatic return”. In addition, a terminal ID  1305  is also stored to identify the terminal to which the temporary license is to be issued. The terminal ID is included in the session initiation command. These pieces of information are stored in the issued temporary license information table  13 , and each record is deleted when its corresponding temporary license has been returned from the terminal or automatic return has been carried out. With this arrangement, each record in the issued temporary license information table  13  can be analyzed by the license server  1  to determine to which terminal each temporary license has been issued. 
   A description will below be made of an example of return of a temporary license with reference to  FIGS. 6A to 6C  and  7 . Referring to  FIGS. 6A to 6C , reference numeral  70  denotes a license stored in the license table of the license server before a temporary license is returned;  71  denotes the temporary license included in a temporary license return command; and  72  denotes a license stored in the license table of the license server after the temporary license is returned. Specifically, in the above example, the temporary license shown in  FIGS. 2A to 2D  was used to reproduce content twice at a terminal and returned to the license server.  FIG. 7  is a flowchart showing an example of updating of a license when a temporary license has been returned. 
   First of all, the return control section  24  analyzes the temporary license  71  included in a temporary license return command transmitted from a terminal and searches the license table  11  for the record of the license whose license ID is LID  5 , which is indicated by the temporary license  71 , at step S 101 . If the record has been found, the return control section  24  continues the return processing. If, on the other hand, the record has not been found, the processing proceeds to step S 104  without performing any return processing since no originating license has been found. 
   Step S 102  performs return processing on the maximum allowable number of content reproduction operations  705 . Specifically, the maximum allowable number of terminal content reproduction operations  715  of the returned temporary license  71  is added to the maximum allowable number of content reproduction operations  705  of the license  70  set before the temporary license is returned to obtain the maximum allowable number of content reproduction operations  725  of the license  72  set after the temporary license is returned, at step S 102 . Accordingly, in the example of  FIG. 6 , since the maximum allowable number of terminal content reproduction operations  715  is 1 and the maximum allowable number of content reproduction operations  705  is 2, the maximum allowable number of content reproduction operations  725  of the license  72  set after the temporary license is returned is set to 3. Thus, in the above processing, the values of the updated use conditions, or the values of the given use conditions minus the values of the actual use conditions, of the temporary license are added to the values of the use conditions of the originating license. With this arrangement, the user can return the remaining portion of what is permitted by the temporary license to the license server and use it afterward, instead of discarding it. The above example employs only one “consumptive type” terminal use condition, namely, the maximum allowable number of content reproduction operations. However, the maximum allowable reproduction time length, which is the length of time for which content can be reproduced at a terminal, may be set as another “consumptive type” terminal use condition. In such a case, the value of this use condition is also updated when the temporary license is returned. 
   Step S 103  performs return processing on the maximum allowable number of simultaneous issues  706 . Specifically, the maximum allowable number of simultaneous issues  706  of the license  70  set before the temporary license is returned is incremented by 1 to obtain the maximum allowable number of simultaneous issues  726  of the license  72  set after the temporary license is returned, at step S 103 . This arrangement increases the number of temporary licenses which can be issued, making it possible to obtain a temporary license at another terminal. In the example of  FIGS. 6A to 6C , since the maximum allowable number of simultaneous issues  706  is 1, the maximum allowable number of simultaneous issues  726  of the license  72  set after the temporary license is returned is set to 2. 
   After the above license return processing, the issued temporary license information table  13  is searched for the record whose license ID and temporary license ID coincide with the license ID  711  and the temporary license ID  712  of the returned temporary license, respectively, and the found record is deleted at step S 104 . 
   A description will below be made of an example of automatic return of a temporary license with reference to  FIG. 8 .  FIG. 8  is a flowchart showing an example of automatic return processing. The return control section  24  periodically performs the following steps to carry out automatic return. First of all, the return control section  24  searches the issued temporary license information table  13  for any record whose terminal return flag is set to “automatic return” and whose terminal expiration date/time has passed at step S 201 . If no such record has been found, the processing ends since there is no temporary license to be automatically returned. If such a record has been found, the return control section  24  searches the license table  11  for the originating license based on the license ID entry in the found record at step S 202 . If the originating license has not been found, since no return processing can be possibly carried out, the processing proceeds to step S 204  at which the record found at step S 201  is deleted before the processing returns to step S 201 . 
   If, on the other hand, the originating license has been found, the maximum allowable number of simultaneous issues of the license is incremented by 1 at step S 203 . In the case of automatic return processing, since the values of the actual “consumptive type” use conditions at the terminal are not known, the maximum allowable number of content reproduction operations is not updated, assuming that the values of all the given “consumptive type” use conditions have been reached. After that, the record in the issued temporary license information table  13  found at step S 201  is deleted at S 204 . This completes automatic return processing on one temporary license. However, there may be other temporary licenses to be subjected to return processing in the issued temporary license information table  13 . Therefore, the processing returns to step S 201  to see if there exists any record whose terminal return flag is set to “automatic return” and whose terminal expiration date/time has passed, again. The above processing is repeated until no such record has been found. 
   This arrangement allows the server to carry out return processing on a temporary license even when the temporary license return command has not been transmitted from the terminal, enabling a user at another terminal to obtain a temporary license to reproduce content. Since the expiration date/time of the returned temporary license has already passed, the terminal holding the temporary license cannot use it to reproduce the content. Therefore, no problem arises when the content is reproduced at another terminal. 
   However, the above automatic return method cannot update the “consumptive type” use conditions of the originating license, such as the maximum allowable number of content reproduction operations, even when the values of the given “consumptive type” use conditions of the temporary license have not been reached. This means that the user has lost the remaining portion of what is permitted by the temporary license. A description will be made of another example of automatic return of a temporary license which solves the above problem with reference to  FIGS. 9 ,  10 , and  11 .  FIG. 9  is a diagram in which an automatic return completion flag is added to the issued temporary license information table shown in  FIG. 5 .  FIG. 10  is a flowchart showing another example of automatic return processing.  FIG. 11  is a flowchart showing another example of return processing. 
   The automatic return completion flag  1306  in  FIG. 9  indicates whether automatic return processing has been performed. It is set to “0” to indicate that no automatic return processing has been performed, while it is set to “1” to indicate that automatic return processing has been already performed. The automatic return completion flag  1306  is initially set to “0” when the record is generated, that is, when the temporary license is issued. 
   First of all, the issued temporary license information table  13  is searched for any record whose terminal return flag  1304  is set to “automatic return”, whose automatic return completion flag  1306  is set to “0”, and whose terminal expiration date/time has passed at step S 301 . If no such record has been found, the processing ends since there is no temporary license to be automatically returned. If, on the other hand, such a record has been found, the license table  11  is searched for the originating license based on the license ID entry in the found record at step S 302 . If the originating license has not been found, since no return processing can be possibly carried out, the processing proceeds to step S 304  at which the automatic return completion flag  1306  is set to “1” to indicate that the current processing has been completed. Then, the processing returns to step S 301 . If, on the other hand, the originating license has been found, it is determined whether the maximum allowable number of simultaneous issues of the originating license is equal to or larger than the initial maximum allowable number of simultaneous issues of the original license which was set when the temporary license was purchased, at step S 305 . If yes, since the maximum allowable number of simultaneous issues of the original license does not exceed the initial maximum allowable number of simultaneous issues of the original license, the processing proceeds to step S 304  at which the automatic return completion flag  1306  is set to “1”, to indicate that the current processing has been completed, and the processing returns to S 301 . If no, the processing proceeds to the next step. At step S 303 , the maximum allowable number of simultaneous issues of the originating license is incremented by 1. In the case of automatic return processing, since the values of the actual “consumptive type” use conditions at the terminal are not known, the maximum allowable number of content reproduction operations is not updated, assuming that the values of all the given “consumptive type” use conditions have been reached. After that, the automatic return completion flag  1306  is set to “1” at step S 304 . This completes automatic return processing on one temporary license. However, there may be other temporary licenses to be subjected to automatic return processing in the issued temporary license information table  13 . Therefore, the processing returns to step S 301  to see if there exists any other record whose terminal return flag  1304  is set to “automatic return”, whose automatic return completion flag  1306  is set to “0”, and whose terminal expiration date/time has passed. The above processing is repeated until no such record has been found. This processing is different from the processing shown in  FIG. 8  in only two respects: the search conditions at step S 301  include the condition that the target records must have their automatic return completion flag  1306  set to “0”; and step S 304  sets the automatic return completion flag  1306  to “1” instead of deleting a record in the issued temporary license information table  13 . The terminal return flag  1304  is used to indicate whether the server is to automatically return the temporary license, whether the temporary license is to be returned from the terminal to the server, and whether return of the temporary license is to be inhibited. 
     FIG. 11  shows return processing performed using a temporary license return command sent from a terminal. First of all, the return control section  24  analyzes the temporary license included in a temporary license return command transmitted from a terminal and searches the license table  11  for the record which includes the license ID of the originating license at step S 401 . If the record has been found, the return control section  24  continues the return processing. If, on the other hand, the record has not been found, the processing proceeds to step S 405  without performing any processing since no originating license has been found. If the record of the originating license has been found, the maximum allowable number of terminal content reproduction operations of the returned temporary license is added to the maximum allowable number of content reproduction operations of the originating license set before the temporary license is returned, at step S 402 . 
   After that, the automatic return completion flag in the temporary license record in the issued temporary license information table whose license ID and temporary license ID coincide with those of the returned temporary license is checked at step S 403 . If the automatic return completion flag is set at “1”, the processing proceeds to step S 405  without updating the maximum allowable number of simultaneous issues of the originating license since the temporary license has already been automatically returned. 
   If, on the other hand, the automatic return completion flag is set at “0”, since no automatic return processing has been carried out, it is determined whether the maximum allowable number of simultaneous issues of the originating license is equal to or larger than the initial maximum allowable number of simultaneous issues of the originating license which was set when the temporary license was purchased, at step  406 . If yes, since the maximum allowable number of simultaneous issues of the originating license does not exceed the initial maximum allowable number of simultaneous issues of the originating license, the processing proceeds to step S 405  without performing any return processing. If no, the processing proceeds to the next step. At step S 404 , the maximum allowable number of simultaneous issues of the originating license is incremented by 1. Then, the present temporary license record in the issued temporary license information table is deleted at step S 405 , and the processing ends. 
   Thus, when the terminal expiration date/time of a temporary license has passed, the maximum allowable number of simultaneous issues of the originating license is incremented by 1 through automatic return, enabling the user at another terminal to obtain a temporary license to reproduce content. Further, the automatic return completion flag of a temporary license is set to “1” after the automatic return processing has been carried out, preventing further automatic return of the temporary license. Still further, even a temporary license which has been already automatically returned can be returned again by use of a temporary license return command in order to update the consumptive type” use conditions of the originating license, such as the maximum allowable number of content reproduction operations, and thereby prevent the user from losing the remaining portion of what is permitted by the temporary license, enhancing the usability for users. 
   A description will below be made of another terminal return flag and another return flag with reference to  FIGS. 12A ,  12 B and  13 . Referring to  FIGS. 12A and 12B , reference numeral  65  denotes a terminal return flag included in a temporary license;  66  a return inhibit flag which is a component of the terminal return flag  65 ;  67  an automatic return flag which is another component of the terminal return flag  65 ;  80  a terminal return request flag included in a temporary license acquisition request information;  81  a return inhibit request flag which is a component of the terminal return request flag  80 ; and  82  an automatic return request flag which is another component of the terminal return request flag  80 . Referring to  FIG. 13 , reference numeral  60  denotes a return flag included in a license;  61  a return inhibit setting flag which is a component of the return flag  60 ; and  62  an automatic return setting flag which is another component of the return flag  60 . 
   The return inhibit flag  66  is set to 1 to indicate that the terminal is not to return the temporary license, while it is set to 0 to indicate that the terminal is to return the obtained temporary license. The automatic return flag  67  is set to 1 to indicate that the license server is to return the temporary license automatically, while it is set to 0 to indicate that no automatic return is to be carried out. 
   Further, the return inhibit setting flag  61  is set to “return inhibited” to indicate that the return inhibit flag  66  of the temporary license to be issued is to be set to 1, while it is set to “return required” to indicate that the return inhibit flag  66  is to be set to 0. Furthermore, the return inhibit setting flag  61  is set to “both acceptable” to indicate that the return inhibit flag  66  is to be set to the value of the return inhibit request flag  81  included in the temporary license acquisition request information. The automatic return setting flag  62  is set to “automatic return permitted” to indicate that the automatic return flag  67  of the temporary license to be issued is to be set to 1, while it is set to “automatic return not permitted” to indicate that the automatic return flag  67  is to be set to 0. Furthermore, the automatic return setting flag  62  is set to “both acceptable” to indicate that the automatic return flag  67  is to be set to the value of the automatic return request flag  82  included in the temporary license acquisition request information. 
   A description will below be made of setting of a return flag with reference to  FIGS. 14A ,  14 B,  15 A and  15 B.  FIGS. 14A and 14B  are flowcharts showing setting of a return inhibit flag, while  FIGS. 15A and 15B  are flowcharts showing setting of an automatic return flag. 
   A description will below be made of setting of a return inhibit flag with reference to  FIGS. 14A and 14B . First of all, at step S 501 , it is determined whether one of the following three conditions is met: the return inhibit setting flag is set at “both acceptable”; the return inhibit request flag is set at 0 and the return inhibit setting flag is set at “return required”; and the return inhibit request flag is set at 1 and the return inhibit setting flag is set at “return inhibited”. If one of the conditions is met, the return inhibit flag is set to the value of the return inhibit request flag at step S 502 , and the processing ends. If, on the other hand, none of the conditions is met, it is determined whether the return-flag reject flag included in the temporary license acquisition request information is set at 0 at step S 503 . If the return-flag reject flag is set at 0, the temporary license can be issued even though the return inhibit flag cannot be set to the value of the return inhibit request flag. Therefore, the return inhibit flag is set to the NOT of the value of the return inhibit request flag at step S 504 , and the processing ends. If, on the other hand, the return-flag reject flag is set at 1, the temporary license cannot be issued when the return inhibit flag cannot be set to the value of the return inhibit request flag. Therefore, the processing ends without setting any value to the return inhibit flag. 
   A description will be made of setting of an automatic return flag with reference to  FIGS. 15A and 15B . First of all, at step S 601 , it is determined whether one of the following three conditions is met: the automatic return setting flag is set at “both acceptable”; the automatic return request flag is set at 0 and the automatic return setting flag is set at “automatic return not permitted”; and the automatic return request flag is set at 1 and the automatic return setting flag is set at “automatic return permitted”. If one of the conditions is met, the automatic return flag is set to the value of the automatic return request flag at step S 602 , and the processing ends. If, on the other hand, none of the conditions is met, it is determined whether the return-flag reject flag included in the temporary license acquisition request information is set at 0 at step S 603 . If the return-flag reject flag is set at 0, the temporary license can be issued even though the automatic return flag cannot be set to the value of the automatic return request flag. Therefore, the automatic return flag is set to the NOT of the value of the automatic return request flag at step S 604 , and the processing ends. If, on the other hand, the return-flag reject flag is set at 1, the temporary license cannot be issued when the automatic return flag cannot be set to the value of the automatic return request flag. Therefore, the processing ends without setting any value to the automatic return flag. 
   Thus, the license server can set the return flag included in the temporary license to different values as requested by the terminal, making it possible to make various settings for return of a temporary license. 
   A description will below be made of generation of temporary license acquisition request information with reference to  FIG. 19 . Referring to  FIG. 19 , reference numeral  90  denotes an expiration date/time request indication box;  94  an expiration date/time forward button;  95  an expiration date/time back button;  91  a number-of-reproduction-operations request indication box;  96  a number-of-reproduction-operations increase button;  97  a number-of-reproduction-operations decrease button;  92  an automatic return request indication box;  98  an automatic return request check box;  93  a return inhibit request indication box;  99  a return inhibit request check box; and  100  an OK button. 
   To request a temporary license, temporary license acquisition request information is generated as follows: The user selects a license ID identifying a license and a content ID and enters information on the temporary license to be requested on the temporary license request information input screen as shown in  FIG. 19 . The terminal expiration date/time to be requested is set by pressing the expiration date/time forward button  94  or the expiration date/time back button  95  through an input device such as a remote controller or a mouse. Likewise, the maximum allowable number of content reproduction operations to be requested is set by pressing the number-of-reproduction-operations increase button  96  or the number-of-reproduction-operations decrease button  97  through an input device such as a remote controller or a mouse. In the case of a portable terminal such as a PDA, the automatic return request check box  98  may be selected through an input device such as a remote controller or a mouse to request automatic return. If the user needs to inhibit the return, the user selects the return inhibit request check box  99  through an input device such as a remote controller or a mouse. The user then checks the values in the expiration date/time request indication box  90 , the number-of-reproduction-operations request indication box  91 , the automatic return request indication box  92 , the automatic return request check box  98 , the return inhibit request indication box  93 , and the return inhibit request check box  99  on the screen, and if there is no problem, the user presses the OK button  100  through an input device to accept the input temporary license acquisition request information. In this example, the user enters a value for each request item. However, some request items may have their values predetermined and fixed, eliminating the need for user input; for example, the maximum allowable number of content reproduction operations to be requested may be always set to 1. The example of  FIG. 19  is arranged such that the user does not enter any values for the expiration-date/time reject flag, the number-of-reproduction-operations reject flag, and the return-flag reject flag. These flags are all preset to 0, instead, and a temporary license is requested whose expiration date/time is set such that it does not exceed the expiration date/time of the originating license. However, it goes without saying that the user may enter these values. These settings may be established for each terminal beforehand. For example, in the case of portable terminals such as PDAs, the automatic return request flag may be always set such that these terminals request automatic return since they are not always connected to the communication network. Further, for fixed terminals such as STBs, the flag may be always set such that they do not request any automatic return. 
   A description will below be made of automatic backup.  FIG. 16  is a diagram showing an issued temporary license information table configured for automatic backup. In  FIG. 16 , reference numeral  1307  denotes an issued temporary license field. The issued temporary license information table of  FIG. 16  is different from that of  FIG. 9  in that it does not have such fields as license ID, temporary license ID, expiration date/time, and terminal return flag, but has the issued temporary license field  1307  instead. Since each temporary license includes all of the above information such as the license ID, the temporary license ID, the terminal expiration date/time, and the terminal return flag, it is needed only to store the issued temporary license  1307 . As described above, each record in the issued temporary license information table is stored there when its temporary license is issued, and deleted when the temporary license has been returned from the terminal or automatically returned. Therefore, these records may be used as backups of the temporary licenses. That is, when data of a temporary license at a terminal has been damaged, the backup data may be used to restore the temporary license. Since each terminal is operated by users, the temporary license data might be damaged due to unexpected power failure, unplugging, etc., leading to a complaint. In such a case, the provider may use the above restore method as an effective way of solving the problem. 
   The restore processing steps are described below with reference to  FIG. 17 . Referring to  FIG. 17 , reference numeral  26  denotes a restore control section, and  14  denotes a restore limit table for storing the terminal ID of each terminal and the remaining number of restore operations which can be performed at the terminal in order to limit the number of restore operations performed at each terminal. 
   When the terminal  2  has detected damage to data of a temporary license stored in the temporary license table  34 , the terminal can request the license server  1  to execute restore operation. Whether to make such a request may be determined by the user. The following procedure is used to request a restore operation. First of all, a session initiation command is used to establish a secure session. After authentication of the terminal using its terminal ID, the license module  13  in the terminal  2  transmits a restore request command through the communication control section  30 . The command analyzing section in the license server  1  analyzes the restore request command and sends it to the restore control section  26 . In response, the restore control section  26  searches the issued temporary license information table  13  for the records of the issued temporary licenses to be restored based on the terminal ID included in the transmitted session initiation command. All temporary licenses whose terminal ID coincides with the transmitted terminal ID are grouped together. From the restore limit table, the restore control section  26  reads out the remaining number of restore operations set for the terminal ID to see if it is larger than 0. If it is equal to 0, it is determined that no further restore operation can be executed, and therefore the restore control section  26  transmits a response to the restore request command which indicates that no further restore operation can be executed due to a restore limit. If the remaining number of restore operations is larger than 0, it is decremented by 1, and the restore control section  26  transmits data of the above grouped temporary licenses, whose terminal ID coincides with the transmitted terminal ID, to the terminal  2  as a response. Thus, use of a restore limit makes it possible to prevent execution of an unlimited number of restore operations. For example, when the provider has received a complaint from a user, the provider may set the remaining number of restore operations for the terminal to 1 in the restore limit table so that the user can perform restore operation. 
   A description will below be made of still another example of automatic return of a temporary license with reference to  FIG. 18 .  FIG. 18  is a flowchart illustrating automatic return of a temporary license using a return inhibit flag. 
   First of all, the issued temporary license information table  13  is searched for any record whose automatic return flag in its terminal return flag in its issued temporary license  1307  is set at “automatic return”, whose automatic return completion flag  1306  is set at 0, and whose terminal expiration date/time in its issued temporary license  1307  has passed at step S 701 . If no such record has been found, the processing proceeds to step S 705  since there is no temporary license to be automatically returned. If, on the other hand, such a record has been found, the license table  11  is searched for the originating license based on the license ID entry in the issued temporary license in the found record at step S 702 . If the originating license has not been found, since no return processing can be possibly carried out, the processing proceeds to step S 704  at which the automatic return completion flag  1306  is set to 1 to indicate that the current processing has been completed. Then, the processing returns to step S 701 . If, on the other hand, the originating license has been found, it is determined whether the maximum allowable number of simultaneous issues of the originating license is equal to or larger than the initial maximum allowable number of simultaneous issues of the originating license which was set when the temporary license was purchased, at step S 707 . If yes, since the maximum allowable number of simultaneous issues of the originating license does not exceed the initial maximum allowable number of simultaneous issues of the originating license, the processing proceeds to step S 704  without performing any return processing. At step S 704 , the automatic return completion flag  1306  is set to 1 to indicate that the current processing has been completed, and the processing returns to step S 701 . If no, the processing proceeds to the next step. At step S 703 , the maximum allowable number of simultaneous issues of the originating license is incremented by 1. In the case of automatic return processing, since the values of the actual “consumptive” type use conditions at the terminal are not known, the maximum allowable number of content reproduction operations is not updated, assuming that the values of all the given “consumptive type” use conditions have been reached. After that, the automatic return completion flag  1306  is set to 1 at step S 704 . This completes automatic return processing on one temporary license. However, there may be other temporary licenses to be subjected to automatic return processing in the issued temporary license information table  13 . Therefore, the processing returns to step S 701  to see if there exists any other record whose automatic return flag is set at “automatic return”, whose automatic return completion flag  1306  is set at 0, and whose terminal expiration date/time has passed. The above processing is repeated until no such record has been found at step S 701 . After the entire automatic return processing has been completed, the processing proceeds to step S 705 . At step S 705 , a search is made for any record whose return inhibit flag in its return flag within its issued temporary license is set at 1 and whose expiration date/time has passed. If no such record has been found, the entire processing ends. If, on the other hand, such a record has been found, the found record is deleted at step S 706 , and the processing returns to step S 705 . This processing prevent the number of temporary licenses whose return inhibit flag is set at 1 from gradually increasing since they are not returned and therefore not deleted from the issued temporary license information table  13 . That is, it is possible to delete temporary licenses whose return is inhibited and which can no longer be used since their expiration date/time has passed. 
   As described above, the present invention provides a license management system which enables a plurality terminals to share licenses managed by a license server connected to them through a communications network. 
   Further, the present invention also can provide a license management system which enables a license server to perform automatic return processing on a temporary license which has been transmitted to a terminal and whose expiration date/time has passed, allowing the user to use copyrighted content more conveniently. 
   Still further, according to the present invention, a temporary license can be backed up when it is issued, making it possible to restore the temporary license when its data has been damaged at the terminal. With this arrangement, user complaints can be handled more easily. 
   Still further, according to the present invention, the number of restore operations which can be executed on content can be restricted, making it possible to protect copyrighted content.