Abstract:
A method comprises receiving a first device ID request from user for registration of a first user device; generating a first unique identification number for the first user device; generating a first unique identification object based on a first DRM protocol, the first unique identification object including the first unique identification number; associating the user with the first user device, the first unique identification number and the first DRM protocol; receiving a second device ID request from user for registration of a second user device; generating a second unique identification number for the second user device; generating a second unique identification object based on a second DRM protocol, the second unique identification object including the second unique identification number, wherein the first DRM protocol and the second DRM protocol are incompatible; and associating the user with the second user device, the second unique identification number and the second DRM protocol.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates generally to digital rights management (“DRM”). More particularly, the present invention relates to techniques for managing devices implementing various DRM protocols. 
         [0003]    2. Background Art 
         [0004]    A DRM protocol is a term that refers to any technological technique for controlling access to copyrighted content. The content can be, for example, a digital image, a video recording, or a music file. A DRM protocol is implemented in either software or hardware and generally includes components that are part of the application or electronic device using the content. Thus, a DRM protocol can be implemented by a DRM module that resides in the application or in the electronic device using the content. 
         [0005]    For example, a DRM protocol used by a content provider might involve encrypting the content requested by a consumer and transmitting the encrypted content to an electronic device belonging to the consumer. Once the electronic device attempts to use or access the encrypted content, a DRM module implementing the DRM protocol may request a license from a predetermined license server. In response to this request, the license server can generate a license (also referred to as a “rights object”), which specifies the allowable uses of the content and which includes the decryption key for decrypting the encrypted content. The allowable uses for the content can be specified by the content provider and stored on the license server. The rights object can then be transmitted to the electronic device, thereby allowing the DRM module to decrypt the encrypted content and to permit the electronic device to use the content in accordance with the allowable uses specified by the rights object. 
         [0006]    Thus, it is critical for the license server to properly identify the electronic device prior to transmitting the rights object in order to prevent unknown or unauthorized electronic devices from using the content. Today, a single user may use a number of different electronic devices to access the license server. As such, a more flexible licensing approach is needed that allows the user to conveniently share the content among her various electronic devices. However, since various electronic devices can implement various DRM protocols, conventional license servers configured for one DRM protocol cannot properly identify electronic devices implementing various other DRM protocols. 
       SUMMARY OF THE INVENTION 
       [0007]    There are provided methods and systems for identifying a device implementing a DRM protocol, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims. 
         [0008]    In one aspect, there is provided a method for use by a system for digital rights management (“DRM”) of a plurality user devices. The method comprises receiving a user ID associated with a user for accessing the system; receiving a first device ID request from the user for registration of a first user device; generating a first unique identification number for the first user device; generating a first unique identification object based on a first DRM protocol, the first unique identification object including the first unique identification number; associating the user with the first user device, the first unique identification number and the first DRM protocol; receiving the user ID associated with the user for accessing the system; receiving a second device ID request from the user for registration of a second user device; generating a second unique identification number for the second user device; generating a second unique identification object based on a second DRM protocol, the second unique identification object including the second unique identification number, wherein the first DRM protocol and the second DRM protocol are incompatible; and associating the user with the second user device, the second unique identification number and the second DRM protocol. 
         [0009]    In a further aspect, the method further comprises transmitting the unique identification object to the first user device. In an additional aspect, the method also comprises receiving the unique identification object from the first user device; receiving a first result of a function applied to the unique identification number; unlocking the unique identification object; applying the function to a content of the unique identification object to obtain a second result; comparing the first result with the second result; and approving access to the first user device if the comparing matches the first result with the second result. In one aspect, the first DRM protocol may be an Open Mobile Alliance Digital Rights Management (“OMADRM”) protocol and the second DRM protocol may be a Windows Media Digital Rights Management (“WMDRM”) protocol. 
         [0010]    In yet another aspect, the first unique identification object is encrypted with a unique identification encryption key, and wherein unlocking the unique identification object includes using the unique identification encryption key. In one aspect, the method further comprises receiving a DRM license object request from the first user device; verifying the first user device; and transmitting a DRM license object to the first user device for unlocking the first unique identification object, where the first unique identification object is encrypted with a unique identification encryption key, and wherein DRM license object includes the unique identification encryption key, and where prior to receiving the DRM license object request, the method may comprise transmitting the unique identification object to the first user device; transmitting a rendezvous code to the first user device; and receiving the rendezvous code from the first user device, where the verifying includes confirming the rendezvous code. 
         [0011]    Other features and advantages of the present invention will become more readily apparent to those of ordinary skill in the art after reviewing the following detailed description and accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0012]    The features and advantages of the present invention will become more readily apparent to those ordinarily skilled in the art after reviewing the following detailed description and accompanying drawings, wherein: 
           [0013]      FIG. 1  illustrates a block diagram of a system for identifying a device implementing a DRM protocol, in accordance with one embodiment of the invention; 
           [0014]      FIG. 2  illustrates a flowchart for performing a method for configuring a device implementing a DRM protocol, in accordance with one embodiment of the invention; and 
           [0015]      FIG. 3  illustrates a flowchart for performing a method for validating a device implementing a DRM protocol, in accordance with one embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0016]    Although the invention is described with respect to specific embodiments, the principles of the invention, as defined by the claims appended herein, can obviously be applied beyond the specifically described embodiments of the invention described herein. Moreover, in the description of the present invention, certain details have been left out in order to not obscure the inventive aspects of the invention. The details left out are within the knowledge of a person of ordinary skill in the art. The drawings in the present application and their accompanying detailed description are directed to merely example embodiments of the invention. To maintain brevity, other embodiments of the invention which use the principles of the present invention are not specifically described in the present application and are not specifically illustrated by the present drawings. It should be borne in mind that, unless noted otherwise, like or corresponding elements among the figures may be indicated by like or corresponding reference numerals. 
         [0017]      FIG. 1  illustrates a block diagram of rights server  100  for identifying user device  116  implementing a DRM protocol and authorizing the use of digital content protected by a DRM protocol. Rights server  100  includes controller  102 , receiver  104 , transmitter  106 , and unique identification database  110  (hereinafter “UID database  110 ”). Optionally, in one embodiment, rights server  100  also includes unique identification generator  108  (hereinafter “UID generator  108 ”). The unique identification can be, for example, a number or an alphanumeric string. As described below, such a unique identification can be advantageously used by rights server  100  to identify and authenticate user device  116 . Moreover, by determining the unique identification of each user device  116  communicating with rights server  100 , the user devices belonging to the same consumer or user can be advantageously determined. As such, more flexible licenses can be generated for the content, which can enable a consumer to conveniently share the content among her various devices to improve consumer experience. 
         [0018]    As shown in  FIG. 1 , controller  102  in rights server  100  is coupled to receiver  104 , transmitter  106 , UID generator  108  and UID database  110 . Controller  102  can be, for example, a microprocessor or a central processing unit (“CPU”). In one embodiment, receiver  104  and transmitter  106  can be implemented using a network interface, such as a Wi-Fi interface, a Bluetooth interface, an Ethernet interface, or any other type of network communication interface. As also shown in  FIG. 1 , rights server  100  is in communication with user device  116  over a packet network, such as the Internet. 
         [0019]    User device  116  in  FIG. 1  includes controller  118 , transmitter  120 , receiver  122 , DRM module  124 , and memory  126 . Controller  118  can be a CPU, and transmitter  120  and receiver  122  can be implemented using a network interface, such as a Wi-Fi interface, a Bluetooth interface, an Ethernet interface, or any other type of network communication interface. User device  116  can be, for example, an electronic device, such as a personal computer, a personal digital assistant (“PDA”), an MP3 player, or a cellular telephone. Accordingly, user device  116  can be configured to receive and display various types of content, such as text, images, videos, or music. 
         [0020]    As shown in  FIG. 1 , rights server  100  is also in communication with native DRM server  130  over a packet network, such as the Internet. Native DRM server  130  includes controller  131 , transmitter  133 , receiver  132 , and unique identification rights objects generator  135  (hereinafter “UID rights object generator  135 ”), which includes UID encryption key database  136 . Optionally, in one embodiment, native DRM server  130  also includes unique identification generator  134  (hereinafter “UID generator  134 ”). Controller  131  can be a CPU, and transmitter  133  and receiver  132  can be implemented using a network interface, such as a Wi-Fi interface, a Bluetooth interface, an Ethernet interface, or any other type of network communication interface. 
         [0000]    In one embodiment, the content is protected by a content provider using a DRM protocol, such as Open Mobile Alliance Digital Rights Management (“OMADRM”) or Windows Media Digital Rights Management (“WMDRM”). 
         [0021]    To display a protected content, user device  116  may be required to separately acquire a license from rights server  100 . In one embodiment, the license can specify the allowable uses for the content and can include an encryption key for decrypting the content. DRM module  124  in user device  116  is configured to implement a DRM protocol for acquiring a license and for rendering the protected content to allow device  116  to use the content. DRM module  124  can be implemented, for example, in software or in hardware. In one embodiment, DRM module  124  can be configured to request a license when user device  116  initially attempts to use the content. For example, DRM module  124  can be configured to transmit a communication to rights server  100 , such as license request, when user device  116  initially attempts to use the protected content. As shown in  FIG. 1 , rights server  100  can receive the license request at receiver  104 . 
         [0022]    Turning to  FIG. 2 , configuration method  200  for configuring user device  116  is described in conjunction with  FIG. 1 , in accordance with one embodiment of the invention. As shown in  FIG. 2 , configuration method  200  starts at step  202 , where user device  116  accesses rights server  100  using a user ID. Next, at step  204 , transmitter  120  of user device  116  transmits a device ID request for association with user device  116  to receiver  104  of rights server  100 . In one embodiment, the device ID request includes a native DRM ID parameter indicative of the DRM protocol utilized by user device  116 . In response, at step  206 , rights server  100  generates an ID object, and transmitter  106  of rights server  100  transmits the ID object to receiver  132  of native DRM server  130 . The ID object can be, for example, an extensible markup language (“XML”) document. Optionally, at step  206 , UID generator  108  of rights server  100  may also generate a unique ID number, and transmitter  106  may transmit the unique ID number to native DRM server  130  for user device  116 . 
         [0023]    Next, at step  208 , controller  131  of native DRM server  130  utilizes the ID object to generate an ID object based on native DRM or the DRM supported by user device  116 , and further generate a rendezvous code for later use by user device  116 , as explained below. If native DRM server  130  does not receive a unique ID number from rights server  100  at step  206 , controller  131  of native DRM server  130  also generates a unique ID number, and transmitter  133  may transmit the unique ID number to rights server  100 . The ID object based on native DRM may include the unique ID number, which transmitter  133  transmits to rights server  100 . At step  210 , controller  102  of rights server  100  may store the unique ID received from native DRM server  130  in UID database  110  and associate user device  116  with the unique ID and the DRM protocol type of user device  116  in UID database  110 . For example, as shown in  FIG. 1 , for the first user device, user and/or user ID is associated with the first user device (or Device_ 1 ) and the first DRM protocol type (or DRM 1 ), and for the second user device, user and/or user ID is associated with the second user device (or Device_ 2 ) and the second DRM protocol type (or DRM 2 ). Therefore, unlike the conventional systems, an embodiment of the present invention provides a system, where multiple non-compatible DRMs can be supported, and even more, multiple non-compatible DRMs can be used by a single user using a number of different user devices. For example, a user may have two user devices each using a different DRM protocol family, which are incompatible, and rights server  100  of the present invention provides UID database  110  to associate the user with two different user devices, where each device utilizes a different DRM protocol. 
         [0024]    Continuing with step  212 , transmitter  106  of rights server  100  transmits the ID object for the native DRM and the rendezvous code to user device  116 . Next, at step  214 , controller  118  of user device  116  generates a native DRM license object request including the rendezvous code, which transmitter  120  of user device  100  transmits directly to native DRM server  130 , or indirectly, such as through rights server  100  to native DRM server  130 . Upon receipt of native DRM license object request including the rendezvous code by native DRM server  130  at step  216 , controller  131  of native DRM server  130  checks the rendezvous code to determine validity, and if valid, controller  131  of native DRM server  130  generates a license rights object, and transmitter  133  transmits the license rights object to user device  116  directly or indirectly. The license rights object provides a key needed for unlocking or decrypting the ID object for native DRM. At step  218 , receiver  122  of user device  116  receives the license rights object and stores the license rights object in memory  126  for unlocking the ID object for native DRM. 
         [0025]      FIG. 3  illustrates validation method  300  for validating user device  116 , which is described in conjunction with  FIG. 1 , in accordance with one embodiment of the invention. At step  302 , controller  118  of user device  116  generates a license use request, and transmitter  120  of user device  116  transmits the license use request to rights server  100 . Upon receipt of the license use request by receiver  104  of rights server  100 , at step  304 , controller  102  of rights server  100  generates a nonce challenge, and transmitter  106  of rights server  100  transmits the nonce challenge to user device  116 . Upon receipt of the nonce challenge by receiver  122  of user device  116 , at step  306 , controller  118  of user device  116  unlocks the ID object for native DRM using the license rights object to access the contents of the ID object for native DRM. Next, controller  118  of user device  116  calculates a pre-determined function, such as a hash function, based on the nonce challenge and the contents of the ID object for native DRM to generate a user device function result. For example, in one embodiment, the nonce challenge may be XORed with the contents of the ID object for native DRM. Further, at step  306 , transmitter  120  of user device  116  transmits the ID object for native DRM and user device function result to rights server  100 . 
         [0026]    At step  308 , upon receipt of the ID object for native DRM and user device function result by receiver  104  of rights server  100 , transmitter  106  of rights server  100  transmits the ID object for native DRM to native DRM server  130 . At step  310 , upon receipt of the ID object for native DRM by receiver  132  of native DRM server  130 , controller  131  of native DRM server  130  unlocks the ID object for native DRM using the license rights object to access the contents of the ID object for native DRM, and transmitter  133  of native DRM server  130  transmits the contents of the ID object for native DRM to rights server  100 . 
         [0027]    At step  312 , upon receipt of the contents of the ID object for native DRM by receiver  102  of rights server  100 , controller  102  of rights server  100  calculates the pre-determined function, such as a hash function, based on the nonce challenge and the contents of the ID object for native DRM to generate a rights server function result. For example, in one embodiment, the nonce challenge may be XORed with the contents of the ID object for native DRM. Further, at step  314 , controller  102  of rights server  100  compares the user device function result and the rights server function result to validate access by user device  116 . At step  316 , if the user device function result is the same as the rights server function result, access by user device  116  is granted, and conversely, if the user device function result does not match the rights server function result, access by user device  116  is denied. 
         [0028]    From the above description of the invention it is manifest that various techniques can be used for implementing the concepts of the present invention without departing from its scope. Moreover, while the invention has been described with specific reference to certain embodiments, a person of ordinary skill in the art would recognize that changes can be made in form and detail without departing from the spirit and the scope of the invention. For example, it is contemplated that the circuitry disclosed herein can be implemented in software, or vice versa. The described embodiments are to be considered in all respects as illustrative and not restrictive. It should also be understood that the invention is not limited to the particular embodiments described herein, but is capable of many rearrangements, modifications, and substitutions without departing from the scope of the invention.