Optimized secure media playback control

A media player manages and controls rights to playback of media content by the media player, which stores, during a registration process in which the media player need not be connected to an external computing system, information used by the media player to control playback. A minimal amount of the media player's memory is used to store the information used to control playback.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to managing rights to playback of media content by a player, and more particularly to a system, method and apparatus for managing the rights to playback of media content on a standalone player, such as a player that is currently not connected to a media control server, based on playback control information stored in memory of the player.

2. Description of the Related Art

With an increasing popularity of electronic distribution of media content for playback by a consumer electronic device, such as a digital versatile disc (DVD) player or an audio player, there is an increased need to be able to protect the electronically-distributed media content from unauthorized use.

Some conventional approaches for protecting digitally-distributed content on a player require that the player be networked to a server which provides the media content, contain a secure internal clock, and/or be configured with a significant amount of dedicated memory. These approaches are cumbersome and/or add additional expense to the manufacture of the player.

More particularly, a server may be used to download a key directly to the player so that the player is able to decrypt encrypted media content before playing the content. However, the player is typically mobile such as a handheld player or is in a location where there is no easy access to a network connection (i.e., phone line or ethernet connection). Accordingly, requiring the player to be connected to a server is at the very least cumbersome and may even be prohibitive.

Consideration must also be given to the cost of manufacturing a player. Typically, players are mass produced embedded systems, which are not uniquely identifiable without additional expense, making it difficult to restrict playback to a particular player. In addition, in order to maintain a competitiveness, a manufacturer is reluctant to add extra components to the player thereby increasing the cost of manufacturing the players.

Thus, manufacturers are reluctant to add memory and/or a secure clock, for example, since such an addition would increase the manufacturing costs. A conventional approach which uses a clock to determine an expiration of digital rights is undesirable, since the clock would add to the cost of manufacturing the player. Similarly, since each non-volatile memory module included in a player adds to the cost of the player, a manufacturer is reluctant to increase the amount of memory used in the player.

The conventional approaches are therefore cumbersome to use and/or are prohibitive, or they may even require modifications to the players that would increase manufacturing costs.

SUMMARY OF THE INVENTION

The present invention addresses difficulties and drawbacks of managing rights for use in playback of media content by a player by providing a system, method and/or apparatus for configuring the player to store an encryption key and an identifier associated with the encryption key, and using an encryption key stored in the player's memory and identified using an identifier stored with encrypted media content to decrypt the content.

More particularly, using information provided by the player, a user obtains configuration information which is in turn input to the player. The configuration information can be input to the player using a removable storage media inserted in the player. A portion of the configuration information, including an encryption key and an associated identifier, is stored in the player's memory.

Thereafter, an identifier stored with the media content is accessed and used by the player to retrieve the stored encryption key. The encryption key is used by the player to decrypt encrypted media content.

Advantageously, using playback control according to the present invention, there is no requirement for the player to be connected to a network. In addition, no specialized components are needed in the player.

According to the present invention, a method is defined for configuring a media player to manage rights to playback of media content, the media player randomly-generating and pre-storing a stored guard. The method comprises providing registration information including the stored guard, the registration information for use in generating configuration information, receiving the configuration information, which includes a guard, an encryption key and an associated identifier identifying the encryption key, and storing the encryption key and the associated identifier in memory of the player in a case that the received guard is determined to match the stored guard.

In another aspect of the invention, a method is defined of managing rights to playback of media content by a media player which stores an encryption key and an identifier associated with the encryption key. The method comprising receiving media content and an identifier stored with the media content, retrieving from memory of the player an encryption key having an associated identifier matching the received identifier, and decrypting the media content using the retrieved encryption key.

According to another aspect of the invention, a method is defined for configuring a media player which randomly-generates and pre-stores a stored guard, a configured media player managing rights to playback of media content by the media player. The method comprising providing registration information for use in generating configuration information, the registration information including the stored guard, receiving the configuration information which includes a guard, an encryption key and an associated identifier identifying the encryption key, the encryption key and the associated identifier are stored in the media player's memory in a case that the received guard matches the stored guard, and retrieving from the player's memory an encryption key for use in decrypting the media content, the retrieved encryption key having an associated identifier determined to match an identifier stored with the media content.

This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiment there of in connection with the attached drawings.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1is a system-level overview illustrating components for use in controlling rights to playback of media content according to one or more embodiments of the present invention.

The example ofFIG. 1illustrates a system used to download media using a service, such as an on-demand service, provided by server101via network102(e.g., the Internet). A user accesses the on-demand service to download media content, such as a movie, using computer103. The downloaded media content is stored on disc104(e.g., DVD or CD) for playback on DVD player105. Although not shown, DVD player106is connected to television105for playback of the content stored on disc104.

It should be apparent that the present invention is not limited to playback of movies downloaded from an on-demand service. Another type of media for which playback can be controlled is audio data. For example, the present invention can be used to control playback of music, or music videos. Any type of removable storage may be used with the present invention. Examples of removable storage media include, but is not limited to, DVD, CD, medium capacity removable disk storage system, memory stick, etc.

Computer103is likely located in the home of a media content requester, but need not be. Computer103includes drive110, which is capable of reading from and writing to disc104. In addition, computer103includes a keyboard111, display112and mouse113. Also included with computer103, but not shown, is fixed disk drive, in which are stored application programs, data files, and device drivers for controlling peripheral devices attached to computer103, a floppy disk drive for use in reading data from and writing data to floppy disks inserted therein. Data and/or applications may also be accessed from a CD-ROM via a CD-ROM drive (not shown) of computer103, or over network102.

The requester uses computer103to access server101to configure player105and to retrieve media content via server101. In the example ofFIG. 1, player105is not connected to network102, or to any other network for that matter. Configuration information and media content is transferred between player105and computer103via a removable storage medium such as disc104. Disc104is received by player105via drive107, which reads disc104. Drive107may also be configured to write data to disc104.

Although not shown inFIG. 1, media player105can be connected to network102or be connected to computer103(e.g., via a home network). In addition, information may be transferred by the requester. For example, as is discussed in more detail below, media player105outputs registration information which is displayed by television106. The requester then inputs the displayed registration information into computer103(e.g, in an input field of a web page from server101) for transfer to server101. If media player105is connected to a network, the registration information can be transferred directly from player105to computer103or server101.

Media player105includes control panel108and/or a receiver107, which receives signals from a remote control device (not shown), to receive input from requester. Media player105can display information on television106, or it can include an integrated display (not shown) for displaying information.

FIG. 2is a diagram of an internal architecture of a media player, such as player105, for use in conjunction with the present invention.

Player105includes a processor201, random access memory (RAM)202, read-only memory (ROM)203, digital signal processor204, coder/decoder205, which are interconnected via bus222. ROM203stores process steps for generating registration information, configuring player105and managing information stored by player105in RAM202to control playback. In addition, player105includes interfaces206to209for interfacing with television206, drive107, control panel108and receiver109. Optionally, network interface210may be used to connect player105to a network, such as a home network and/or network102.

FIG. 3is a diagram of an internal architecture of a computing system, such as computer103or server101, for use in conjunction with the present invention.

The computing system shown inFIG. 3executes a browser-enabled operating system, such as Microsoft Windows® XP. Shown inFIG. 3are CPU320, which is preferably a microprocessor such as a Pentium-type microprocessor, interfaced to computer bus322. Also interfaced to computer bus322are printer interface325, to allow the computing system to communicate with a printing device, modem interface326to enable communications between the computing system and its internal modem, display interface327for interfacing with a display, keyboard interface328for interfacing with a keyboard, mouse interface329for interfacing with a mouse, and a network interface330for communicating with external devices via a network.

Read only memory (ROM)331stores invariant computer-executable process steps for basic system functions such as basic I/O, start up, or reception of keystrokes from the keyboard.

Main random access memory (RAM)332provides CPU320with memory storage which can be accessed quickly. In this regard, computer-executable process steps (or program module or program code) are transferred from the hard disk306over computer bus322to RAM332and executed there from by CPU320.

Also shown inFIG. 3is disk306which, as described above, includes a windowing operating system, with browser, and application programs, which may include word processing, spreadsheet, graphics, and the like. Disk306further includes data files and device drivers such as those shown.

While other computing systems and internal architectures may be used with the present invention,FIGS. 1 to 3provide an exemplary representations which can be used to control playback of media content according to embodiments of the present invention.

FIG. 4is a diagram illustrating information flow for use in controlling rights to playback of media content according to one or more embodiments of the invention. While information output by media player105can flow directly from media player105to server101, it need not. As discussed above, information (e.g., registration information401) can be output by media player105for display by television106. The requester reads the displayed registration information and enters it in a input field of a web page displayed by computer103, which then transmits the input to server101via network102. The web page may be displayed during a registration process undertaken by the requester to use the service provided by server101, in which the requester might provide information (e.g., requester's name, address, payment information, password, etc.) in addition to the registration information provided by media player105.

As an alternative to having the requester input the registration information, media player105may output the registration information directly to computer103or server101via a data connection (e.g., wired or wireless network connection, serial connection, etc.). If media player105outputs the information to computer103, it is forwarded to server101by computer103. The data connection may also be used to transfer information from server101and/or computer103to media player105.

Information that is to be input to media player105may be written to a storage medium by computer103or server101, and the information is retrieved by media player105once the storage medium is inserted in a drive of media player107. Media player105could also receive input via a direct connection with computer103and/or server101

Briefly, registration and configuration information is used to configure media player105for playback use by a requester of a service (e.g., a video on demand service) of server105. A configured media player105manages and controls playback of media content by media player105using information stored in memory of media player105and control information associated with the media content.

More particularly, registration information401is generated by media player105for input to server101. Registration information401is preferably an alphanumeric character string, which is short (e.g., eight characters) in length, since a short character string facilitates transfer by the requester from the display of television106to computer103.

FIG. 6illustrates a flow diagram of process steps performed by media player105to generate registration information401according to one or more embodiments of the present invention. At step S602, a determination is made whether a registration request has been received. For example, the requester can use control panel108or a remote control to invoke one or more menus of the media player105to request media player105to generate the registration information. If a request is received by the media player105, processing continues at step S604to obtain a randomly-generated guard value, which is preferably generated by an event such as when a requester selects a menu item. For example, the guard value may be generated in response to a requester's menu selection selecting a registration operation, or it may be generated sometime prior to such a request being received by media player105.

While the guard value may be of any length, a length of 3 bytes (or 24 bits) is preferably used. According to a preferred embodiment, the configuration and control information stored by media player105is shown inFIG. 5. It is preferable to use as little of RAM202of media player105as possible. As shown inFIG. 5, the configuration and control information stored by media player105in RAM202for a given requester uses a total of 48 bytes.

At step S606, media player105initializes registration information401with the generated guard value, a model number associated with the player and an identifier of a master key that is to be used by server101to encrypt configuration information402. Preferably, the resulting registration information401is 40 bits in length (i.e., 24-bit guard, 12-bit model number, and 4-bit master key identifier). At step S607, the bits in registration information401are scrambled. The registration information is encoded using an encoding scheme, such as base-32 encoding, to encode the 40-bit value into an 8-bit alphanumeric character string at step S608. At step S610, the encoded value of registration information401is output by media player105.

Registration information401output by media player105is used by server101to generate configuration information402.FIG. 7illustrates a flow diagram of process steps to generate configuration information using registration information output by a media player according to one or more embodiments of the present invention.

At step S702, a determination is made, by server101, whether registration information401has been received. If it has been received, processing continues at step S704, to decode and unscramble the registration information401. The guard value and model number information are retrieved from registration information401at step S706. At step S708, a determination is made whether or not media player105is one of a set of media players authorized for use with the system based on the received model number. If not, processing continues at step S710to process the registration failure.

If the model number retrieved from registration information401is determined to be valid, processing continues at step S712to store the guard in the server's101memory. At step S714, an identifier and key for the requester are obtained and, at step S716, they are encrypted using the master key identified by the registration information. At step S718, the encrypted identifier and key are output as configuration information402by server101. For example, the configuration information402may be stored on disc104, by server101, downloaded to computer103for storage on disc104, or transmitted via a data transfer connection between media player105and computer103or server101.

Configuration information402is used by media player105to configure the player for use by the requester to playback media content.FIG. 8illustrates a flow diagram of process steps to configure media player105based on received configuration information according to one or more embodiments of the present invention. At step S802, if media player105determines that it has received configuration information402, processing continues at step S804to decrypt configuration information402using the master key associated with the identifier sent with registration information401. At step S806, the received guard is retrieved from configuration information402.

At step S808, the received guard is compared to the guard stored in memory202of media player105. If the received guard and the stored guard are determined to not match, a configuration failure is processed at step S810. If the guards are determined to match, processing continues at step S812to retrieve the identifier and key from configuration information402. At step S814, the retrieved identifier and key are stored in memory202of media player105. Referring toFIG. 5, the requester's key is 16 bytes (or 128 bits) in length and the identifier is 5 bytes (or 40 bits).

Referring toFIG. 4, media content and control information (MCCI)403, is output by server101in response to a request for media content by the requester. For example, a requester can access the media content service on server101using one or more web pages displayed at computer103. It should be apparent that MCCI403may be sent with configuration information402, or separately.

FIG. 9illustrates a flow diagram of process steps to respond to a media content request according to one or more embodiments of the present invention. At step S902, a determination is made that a request for media content was received by server101. At step S904, processing continues and obtains an identifier and key associated with the requester of media content.

The media content request can be a request to purchase the media or a request to rent the media for a certain number of “playbacks”. In the latter case, the number of times the media is played by the requester can be limited by the media player105according to the present invention. As is described in more detail below, playback is limited based on a count of the number of times the media content is “played”, and based on a serial number associated with the count. Different criteria may be used to define a single play. One example of a criteria used herein to define a playback is each time the media content is decrypted. With this criteria, a single play may involve multiple actual plays.

Referring toFIG. 5, media player105has allocated in memory202a number of slots (e.g., eight), which are used to store serial number and count information for controlling limited-play media content. The serial number is stored in a slot (e.g., slot number “0”) designated by the slot number received in the control information received by media player105in MCCI403. The counter associated with the serial number in the designated slot is initialized to zero, and is updated/incremented with each playback of the corresponding title by media player105.

Referring again toFIG. 9, at step S906, a determination is made whether the number of play times is limited. If so, processing continues at step S916(ofFIG. 9B), in which the number of authorized play times is set in the control information. This number can be determined during the request made by the requester, for example.

At step S918, a determination is made whether a slot is available in media player105. This determination can be made by server101based on information as to the total number of slots maintained by media player105and the media content currently authorized for limited play by the requester. If it is determined that the number authorized does not exceed the number of the media player's105slots, processing continues at step S920to identify the number of an available slot.

If it is determined that the authorized number exceeds the number of media player's105slots, processing continues at step S922to prompt the requester to select one of the media content titles to be removed from playback. At step S924, the slot number associated with the selected media content is identified.

From either of steps S920and S924, processing continues to identify a serial number for the media content. The serial number is determined from a value that is initialized for the requester at registration/configuration time. The value is incremented each time the requester requests media content. At step S926, the value is incremented, and at step S928the slot number, serial number and number of authorized plays for the requested media content are stored in the control information. Processing continues at step S908(ofFIG. 9A).

Whether or not the number of plays is limited for the media content, the requester's identifier is added to the control information at step S908, and processing continues at step S910. Using the requester's key, all, or at least some portion, of the media content is encrypted at step S910. The control information is encrypted at step S912using a master key. At step S914, the encrypted MCCI403is output by server101.

FIG. 10illustrates a flow diagram of process steps to receive requested media content by the media player according to one or more embodiments of the present invention.

At step S1002, if media player105determines that it has received MCCI403, processing continues at step S1004. The control information from MCCI403is decrypted using a master key at step S1004. At step S1006, a determination is made whether the identifier retrieved from the decrypted control information of MCCI403matches the requester's identifier stored in media player105during configuration. If not, processing continues at step S1008to process the playback failure. If the identifiers are determined to match, processing continues at step S1010.

At step S1010, a determination is made whether the media content has a limited number of plays. If so, processing continues at step S1022(ofFIG. 10B). At step S1022, the slot number and serial number received in the control information of MCCI403are retrieved. At step S1024, the serial number stored in the slot in memory of media player105designated by the received slot number is also retrieved. At step S1026, a determination is made whether the received serial number is greater than the stored serial number. If so, it is assumed that MCCI403contains new media content, and the received serial number is written S1028into memory202of media player105for the slot identified by the received slot number. In addition, the slot's counter is initialized to zero to indicate that the media content has not yet been played by media player105. Processing continues at step S1032.

If it is determined, at step S1026, that the received serial number is less than or equal to the stored serial number, processing continues at step S1030to determine whether the serial number is a valid serial number. If it is determined that the received serial number is less than the stored serial number, it is assumed that the media content is no longer authorized for playback by media player105, and processing continues at step S1034to process the playback failure. If the received serial number and stored serial number are determined to match, processing continues at step S1032.

At step S1032, a determination is made whether the maximum authorized number of plays has been exceeded by comparing the stored counter value and the number of plays authorized by the received control information. If the stored counter value exceeds the authorized number of plays, processing continues at step S1034to process the playback failure. If it is determined that the authorized number of playbacks is not exceeded, processing continues at step S1038to increment the stored counter in memory202of media player105, and processing continues at step S1012(ofFIG. 10A).

Whether or not the number of plays is limited for the media content, the requester's key is retrieved at step S1012, and processing continues at step S1014to decrypt the encrypted media content portion of MCCI403using the requester's key.

According to the present invention, multiple media players105can be configured for a given requester such that media content requested by the requester may be played on each media player105. To illustrate, each media player105provides registration information401and is configured using configuration information402generated using the registration information401provided by the media player105. Thus, a requester is able to playback media content using different media players105.

In addition, a media player105can be configured for use by multiple requesters, with the media player105storing configuration and control information, as shown inFIG. 5, for each requester. Media player105provides registration information401for each requester and is configured using the configuration information402generated from the registration information401.

In this regard, the invention has been described with respect to particular illustrative embodiments. However, it is to be understood that the invention is not limited to the above-described embodiments and that various changes and modifications may be made by those of ordinary skill in the art without departing from the spirit and the scope of the invention.