Patent Publication Number: US-2005138407-A1

Title: Method and apparatus to manage digital rights

Description:
FIELD OF THE INVENTION  
      This invention relates to digital rights management. In particular, the invention relates to a method and apparatus for handling a digital rights protected object.  
     BACKGROUND  
      Digital content such as software, music, games, images, etc., can be easily shared in a manner that violates any digital rights, such as copyright, associated with the content. For example, content can be shared over the Internet in violation of copyright, or content can be copied onto a compact disc (CD) or digital versatile disc (DVD) in violation of copyright.  
      In order to control unauthorized use of digital content, some content providers have included digital rights information in the form of headers associated with the content.  
      The content and the headers may be downloaded to a device such as a mobile telephone and stored therein. Each time an application or content player attempts to use the content, the digital rights in the headers are checked for restrictions on the use, and only if no restrictions exist, is the use of the content allowed.  
      One problem with the above approach to digital rights management is that the content and the headers are bundled together and may not be unbundled. This restriction on unbundling may be inconvenient in the case of a complex object that has multiple content components that a user wishes to use separately. An example of such a complex object may include a multi-media message (MMS) greeting card such as a birthday card. The birthday card may have a graphic component, a sound component, and a text component. The user receiving the greeting card may wish to unbundle the card so that the graphic component could be used as a screen saver or as wallpaper and the sound object may be played independently of the greeting card. However, the user will be prevented from unbundling or separating out the components because of the restriction on unbundling.  
      Another problem with existing digital rights management techniques is that they do not allow multiple copies of a digital rights protected object to be made. This is because when the protected object is copied, the bundled digital rights are also copied, thus making it possible to use each copy of the protected object independently of the other copies. This could lead to a violation of the digital rights associated with the object. For example, the object may be protected by a ten use license. By making multiple copies, each copy will have a separate ten use license, in effect permitting use of the object in excess of ten uses.  
     SUMMARY OF THE INVENTION  
      In one embodiment, the invention provides a method for handling a digital rights protected object. In the method a digital rights protected object is received. Thereafter, digital rights information associated with the object is separated from content associated with the object. The digital rights information is stored in a digital rights information repository, whereas the content is stored in a content repository. A digital rights handle is created to link the digital rights information to the content and a digital rights management module is provided, which can be queried by an application to determine if a digital rights restriction exists for content that prevents usage of the content.  
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       FIG. 1  shows an example of a complex digital rights protected object;  
       FIGS. 2A, 2B , and  2 C show examples of rights objects;  
       FIG. 3  shows a high level block diagram of a device in accordance with one embodiment of the invention;  
       FIG. 4  shows a flowchart of operations performed by the device of  FIG. 3  when handling a digital rights protected object in accordance with one embodiment of the invention;  
       FIG. 5  shows a memory organization for the device of  FIG. 3 , in accordance with one embodiment of the invention; and  
       FIGS. 6 and 7  show flowcharts of operations performed by the device of  FIG. 3  when handling digital rights protected objects in accordance with one embodiment of the invention.  
    
    
     DETAILED DESCRIPTION OF THE DRAWINGS  
      In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the invention. It will be apparent, however, to one skilled in the art that the invention can be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.  
      Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not other embodiments.  
      Referring now to  FIG. 1  of the drawings, there is shown an example of a complex digital rights protected object  100 . As will be seen, the object  100  includes multiple content components in the form of a graphic component  102 , a text component  104 , and a sound component  106  that together define, e.g., an electronic greeting card. The object  100  has associated therewith, digital rights information in the form of a header  108 . By way of example, the digital rights information may include a “play parameter” that controls a number of times or duration for which a content object may be played; a “display” parameter that controls the number of times/duration for which an image may be displayed; an “execute” parameter that controls the number of times/duration for which an application may be executed; a “print” parameter that controls the number of times/duration for which content may be printed; a “forward” parameter that controls whether an object may be forwarded to another user/device; a “store” parameter that controls where an object may be stored; and a “peripheral” parameter that controls whether an object may be forwarded to a peripheral device.  
      Further, the digital rights information may include restrictions or constraints on the usage of the associated object. These restrictions may include a “count” restriction that controls the numbers of times an object may be used; a “date-time” restriction that defines a start and an end date when an object can be used; and an “interval” restriction that controls the total time for which an object may be used from the time that the object is downloaded. For example, if the interval description is set for three months and the object was downloaded on 1 Jan. 2004, the object can be validly used until 31 Mar. 2004. In another embodiment, the interval restriction may define the total time for which an object may be used, from the date when the object was first used. For example, if the interval restriction is set to three months and the object was downloaded on 1 Jan. 2004, and was first used on 1 Feb. 2004, the object may be validly used until 30 Apr. 2004. In another embodiment, the interval restriction defines the total cumulative time for which an object may be used. For example, if the interval restriction is set to three months and the object was first downloaded on 1 Jan. 2004, the object may be used for, say, ten hours on 1 January, five hours on 16 January, two hours on 8 March, eight hours on 14 April, and so on, until the cumulative time during which the object was used equals three months.  
      In one embodiment, the digital rights information may take form of 0 to N rights object. Each rights object may specify copyright attributes and constraints associated with content. Examples of rights objects include the rights object  200  shown in  FIG. 2A  of the drawings that places play constraints on an associated object; the rights object  202  shown in  FIG. 2B  of the drawings that places a play constraint on an associated protected object; and the rights object  204  shown in  FIG. 2C  that places a play and a print restriction on an associated protected object.  
       FIG. 3  shows a high-level block diagram of a device  300  that may be used to handle the digital rights protected object  100 , in accordance with one embodiment of the invention. As will be seen, the device  300  includes a microprocessor  302 , which is coupled to a memory  304  via a communications path  306  which may include a bus. The device also includes an input mechanism  308  and an output mechanism  310 . According to different embodiments, the input mechanism  308  may comprise a keypad, e.g., if the device  300  is in the form of a mobile telephone, or a keyboard, e.g., if the device  300  is in the form of a general purpose computer. The output mechanism  310  may comprise a display screen and peripheral devices such as a printer. Also coupled to the processor  302  is a communications module  312  which includes circuitry to enable the device  300  to communicate with other devices over a network, e.g., a local area network (LAN) or a wide area network such as the Internet. The communications module  312  may include circuitry to enable communications over a wired medium as well as circuitry to enable communications over a wireless medium. The memory  304  represents various memory technologies such as random access memory (RAM) devices, read only memory (ROM) devices, cache memory devices, etc. The memory devices that make up the memory module  304  may, in some embodiments, reside physically within other components of the device  300 , e.g., within the processor  302 .  
      As will be understood by one skilled in the art, the memory  304  includes software components to enable operation of the device  304 . Thus, for example, the memory  304  includes an operating system  304 A, which provides an interface to the components of the device  300  to various application programs/software that run on the device  300 . In accordance with one embodiment of the invention, the software includes a digital rights management (DRM) handler  304 B and a rights manager  304 C.  
       FIG. 4  of the drawings shows flowcharts of operations performed by the device  300 , in accordance with one embodiment of the invention, when handling a digital rights protected object. At block  400 , the device  300  receives a digital rights protected object such as the object  100  of  FIG. 1  of the drawings, via the communications module  312 . The protected object is sent to the DRM handler  304 B, which determines if the object is protected. If the object is not protected, then at block  404  the DRM handler  304 B returns control to the communications module  312 , indicating that the object is not protected. If at block  402 , the DRM handler  304 B determines that the object is protected then control passes to block  406 , where the DRM handler  304 B parses the object and separates the digital rights information associated with the object from content associated with the object. For example, if the object were the object  100  shown in  FIG. 1  of the drawings, then at block  406 , the DRM handler  304 B extracts the digital rights information from the header associated with the object  100 . At block  408 , the DRM handler  304 B calls the rights manager  304 C to register the object with the rights manager  304 C. The rights manager  304 C registers the object and returns a DRM handle for the object, as will be explained with reference to  FIG. 6  of the drawings. The DRM handle is an internal representation of digital rights information associated with the object. In one embodiment, the DRM handle comprises a 32-byte integer value, wherein bits  0  to  7  contain bits to represent digital rights information, for example, a particular copyright solution, bits  8  to  15  contain a name of the DRM algorithm used to protect the object; and bits  16  to  31  contain an object identifier or id to uniquely identify the object. In other embodiments the DRM handler may simply be a unique number. At block  410 , the DRM handler  304 B returns the DRM handle and the content associated with the object to the communications module  312 . In some embodiments, the DRM handler  304 B may encrypt the content before returning the content to the communications module  312 , so that the content can only be accessed by a trusted application.  
      The DRM handle for the object serves as a link between the digital rights associated with the object and the actual content associated with the object. Through the mechanism of the DRM handle, it is possible to separately store the content and the digital rights information, as will be explained in greater detail below. Further, through the mechanism of the DRM handle, it is possible to allow multiple copies of the object to be stored at different locations within the memory  304  while at the same time accounting for each use of the object in accordance with the digital rights information associated with the object, as will be explained in greater detail below.  
       FIG. 5  of the drawings shows a memory organization for the memory module  304 , in accordance with one embodiment of the invention that has relevance in the case where device  300  comprises a mobile telephone. Referring to  FIG. 5 , it will be seen that the memory module  304  is partitioned into memory areas comprising a file store  500 , a cache  502 , a general memory area  504 , a message store  506 , and a rights store  508 . Each of the memory areas  500  to  506  may be used to store actual content associated with an object and a DRM handle (or object id) associated with the content. For example, in one embodiment, the message store  502  may be used to store a DRM handle (or object id) for the object  100  as well as the actual content for the object  100 . In this example, the cache  502  may be used to store only the graphic component  106  of the object  100  and the DRM handle (or object id). The memory  504  may be used to store only the text component of the object and the DRM handle (or object id), and the file store  500  may be used to store only the sound component of the object and the DRM handle (or object id). The rights store  508  is used to store digital rights information associated with the object and includes an entry for the DRM handle (or object id) of the object. The entry includes metadata that describes the digital rights associated with the object and the digital rights associated with each of rights users  1  to N. Since the rights are organized per user, multiple users of the device  300  can independently use an object without consuming the rights of another user for the same object.  
      The rights manager  304 C is responsible for storing and managing constraints/restrictions associated with content. The constraint/restrictions are stored in the rights store  508  along with the metadata and cannot be accessed by any other application.  
       FIG. 6  shows a flowchart of operations performed by the rights manager  304 C in accordance with one embodiment of the invention. Referring to  FIG. 6 , at block  600  the rights manager  304 C receives an object/rights registration request from the DRM handler  304 B. At block  602 , the rights manager  304 C determines if the object has already been registered. If the object has already been registered then at block  604 , the rights manager retrieves the DRM handle (or object id) associated with the object, otherwise at block  606 , the rights manager generates a DRM handle for the object. At block  608 , the rights manager  304 C stores the rights information and metadata for the object in the right store  508 . At block  610 , the rights manager  304 C returns the DRM handle to the DRM handler  304 B.  
      Referring now to  FIG. 7  of the drawings, there is shown a flowchart of operations performed when the media player  304 D is invoked in order to play a protected object. Referring to  FIG. 7 , at block  700 , the media player  304 D receives a request to use or “play” a protected object. At block  702 , the media player  304 D retrieves the DRM handle associated with the protected object. At block  704 , the media player  304 D calls the rights manager  304 C to determine if the object can be played without a violation of any digital rights associated with the object. The rights manager  304 C checks the rights associated with the object in the rights store and determines if use of the object by the media player is permitted in terms of any digital rights restrictions that may exist for the object. If, at block  706 , information from the rights manager  304  indicates that the object may not be played without a violation of a restriction then at block  708  the media player alerts the user of this condition. If, however, at block  706  the information from the rights manager  304 C indicates that the media player may use the object without any violation of any rights associated with the object, then at block  710 , a transaction identifier or id associated with the request to play the object is created by the rights manager  304 C. At block  712  the rights manager  304 C to returns decrypted content to the for the media player  304 D for playing. At  712 , the media player  304 D determines if the object was successfully played. At  714 , if the object was successfully played, then a call is made to the rights manager  304 C to end the transaction, otherwise at block  716 , a call is made to the rights manager  304 C to roll back the transaction. The ability to roll back a transaction if an object was not successfully played or used ensures that the rights of a user are consumed if the object was not successfully played.  
      In some cases, content distribution may follow a separate delivery model in which content and the rights associated with the content are delivered separately to a device. Usually, the content is delivered to the device in encrypted form, thus preventing any hackers from freely accessing the content. The constraints or digital rights associated with the content are delivered to the device, e.g., over a push channel, together with a key to decrypt the content. The techniques described herein are equally applicable to content distributed using the separate delivery model. In this case, the digital rights manager  304 C associates the same digital rights handle with content that is received by separate delivery and the digital rights corresponding to the content, which is received, e.g., over a push channel.  
      Although the present invention has been described with reference to specific exemplary embodiments, it will be evident that the various modification and changes can be made to these embodiments without departing from the broader spirit of the invention as set forth in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than in a restrictive sense.  
      In general, the routines executed to implement the embodiments of the invention, may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects of the invention. Moreover, while the invention has been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments of the invention are capable of being distributed as a program product in a variety of forms, and that the invention applies equally regardless of the particular type of signal bearing media (computer-readable media) used to actually effect the distribution. Examples of signal bearing media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.), among others, and transmission type media such as digital and analog communication links.