Distributed Digital Rights Management (DRM) Protection

Various implementations include distributing DRM processing between a DRM key protection system and multiple receiving devices. To that end, a method includes receiving a first encrypted content key associated with a first receiving device, and receiving a second encrypted content key associated with a second receiving device. The method includes processing the first encrypted content key to generate a first decrypted content key, and processing the second encrypted content key to generate a second decrypted content key. The method includes generating a first protected content key based on the first decrypted content key, and generating a second protected content key based on the second decrypted content key. The method includes providing the first protected content key to the first receiving device, and providing the second protected content key to the second receiving device.

TECHNICAL FIELD

The present disclosure relates to digital rights management (DRM) processing, and in particular, DRM protection.

BACKGROUND

Digital rights management (DRM) systems generate encrypted content keys, which are used to protect DRM media content delivered to client systems. In various situations, a receiving device receives an encrypted content key, and processes (e.g., decrypts) the encrypted content key. The receiving device uses the decrypted content key in order to decrypt DRM media content. A DRM system often services multiple receiving devices. However, performing DRM processing at each of the multiple receiving devices introduces various networking challenges.

DETAILED DESCRIPTION

Overview

Disclosed herein are various embodiments of distributed DRM protection for multiple receiving devices. Namely, various embodiments include a DRM key protection system generating protected content keys, and providing the protected content keys to the multiple receiving devices. To that end, the DRM key protection system decrypts encrypted content keys from a DRM license system, protects the decrypted content keys, and provides the protected content keys to the multiple receiving devices. In turn, a receiving device may use a corresponding protected content key to decrypt DRM media content (e.g., multimedia content). The distributed nature of the DRM key protection system and the receiving devices enables greater network efficiency and reliability. For example, performing key decryption at the DRM key protection system rather than at the receiving devices reduces resource utilization by the receiving devices, and may increase network efficiency.

In some embodiments, the DRM key protection system receives the encrypted content keys after (e.g., in response to) performing hardware binding. For example, an identifier is bound to hardware of the DRM key protection system, such as a hardware identifier that identifies the DRM key protection system or identifies a hardware characteristic (e.g., hardware type) of the DRM key protection system. In some embodiments, the identifier is a trusted identifier (e.g., not compromised) associated with the DRM key protection system.

In some embodiments, the DRM key protection system receives encrypted content keys while the DRM key protection system has an active secure communication session with the DRM license system. In some embodiments, establishing the secure communication session may be accomplished via a hardware binding process. To that end, the DRM key protection system may transmit, to the DRM license system, a trusted identifier that is associated with the DRM key protection system. In turn the DRM license system validates the trusted identifier, and sends back an indication of the validation. Thus, in contrast to other systems in which hardware binding occurs on a per receiving device basis, various embodiments disclosed herein include performing hardware binding between the DRM license system and the DRM key protection system, independent of the number of receiving devices.

In accordance with some embodiments, a method is performed at a DRM key protection system including one or more processors, a non-transitory memory, and a network interface. The method includes receiving, from a DRM license system, a plurality of encrypted content keys respectively associated with a plurality of receiving devices. The plurality of encrypted content keys includes a first encrypted content key that is associated with a first receiving device of the plurality of receiving devices. The plurality of encrypted content keys also includes a second encrypted content key that is associated with a second receiving device of the plurality of receiving devices. The method includes processing the first encrypted content key to generate a first decrypted content key, and processing the second encrypted content key to generate a second decrypted content key. The method includes generating a first protected content key based on the first decrypted content key, and generating a second protected content key based on the second decrypted content key. The method includes providing the first protected content key to the first receiving device, and providing the second protected content key to the second receiving device.

In accordance with some embodiments, a DRM key protection system includes one or more processors, a non-transitory memory, and a network interface. The one or more programs are stored in the non-transitory memory and configured to be executed by the one or more processors and the one or more programs include instructions for performing or causing performance of the operations of any of the methods described herein. In accordance with some embodiments, a non-transitory computer readable storage medium has stored therein instructions which when executed by one or more processors of a network device, cause the network device to perform or cause performance of the operations of any of the methods described herein. In accordance with some embodiments, a network device includes means for performing or causing performance of the operations of any of the methods described herein. In accordance with some embodiments, an information processing apparatus, for use in a network device, includes means for performing or causing performance of the operations of any of the methods described herein.

Certain DRM architectures include multiple receiving devices, with each receiving device performing DRM processing (e.g., decrypting) of a corresponding encrypted content key. However, performing the DRM processing at each of the multiple receiving devices introduces various networking challenges, such as issues with network efficiency and network reliability (e.g., lack of redundancy). Moreover, DRM-specific issues may exist, such as the need to perform a separate hardware binding process for each of the multiple receiving devices.

By contrast, various embodiments described below provide more efficient DRM protection techniques.

Example Embodiments

FIGS.1A-1Eare block diagrams of examples of distributed DRM protection environments in accordance with some embodiments.

As illustrated inFIG.1A, a first distributed DRM protection environment100aincludes a network101, a DRM license system102, a DRM key protection system104, a plurality of receiving devices106-1-106-N, a plurality of client systems108-1-108-N, and a content server110. As will be described below, the DRM key protection system104enables distribution of a plurality of protected content keys to the plurality of receiving devices106-1-106-N. Each of the plurality of receiving devices106-1-106-N uses a corresponding protected content key to decrypt DRM media content, thereby enabling the DRM media content to be viewable on a display (e.g., after decoding and rendering).

The DRM license system102generates a plurality of encrypted content keys respectively associated with the plurality of receiving devices106-1-106-N. Moreover, the DRM license system102provides the plurality of encrypted content keys to the DRM key protection system104for processing at the DRM key protection system104(described below). To that end, in some embodiments, the DRM license system102includes multiple key server modules (KSMs). For example, each of the KSMs generates one set of keys based on one type of seed. In some embodiments, the DRM license system102includes one or more storages for subscriber data (e.g., keys and/or entitlements, etc.) associated with users of the plurality of client systems108-1-108-N.

In some embodiments, the DRM license system102generates an encrypted content key associated with a receiving device, based on an input parameter. For example, in response to successful authentication of a user of a client system (e.g., by an authenticator150of a first client system108-1inFIG.1E), the client system obtains an input parameter, such as a key ID, content resolution, etc. included in encryption metadata. The encryption metadata may be included in a playlist (e.g., as a key tag value). The encryption metadata may be included in fragments, packets, and/or blocks of encrypted DRM media content delivered to the receiving device. The encryption metadata may alternatively be included in other data transfer means as will be appreciated by one ordinarily skilled in the art. The client system provides the input parameter to the receiving device, which, in turn, provides the input parameter to the DRM key protection system104. For example, with reference toFIG.1E, the first client system108-1includes a DRM controller152that sends an input parameter to the first receiving device106-1. The DRM key protection system104provides the input parameter to the DRM license system102, which uses the input parameter to generate the encrypted content key.

The DRM key protection system104processes the plurality of encrypted content keys, and provides the processed plurality of encrypted content keys to the plurality of receiving devices106-1-106-N. For example, the DRM key protection system104decrypts an encrypted content key, protects the decrypted content key, and provides the protected content key to a receiving device. The protected content key enables the receiving device to decrypt DRM media content from a content server110(described below). In some embodiments, protection of a decrypted content key is based on a key ladder, which is associated with a corresponding receiving device.

The DRM key protection system104is separate from (e.g., not collocated with) each of the plurality of receiving devices106-1-106-N. To that end, in some embodiments, the DRM key protection system104includes a network interface that enables communication with each of the plurality of receiving devices106-1-106-N. Communication between the DRM key protection system104and a receiving device may proceed over a secure channel or an insecure channel (e.g., HTTP, WebRTC, etc.). In some embodiments, the DRM key protection system104resides at a network edge, away from the receiving devices106-1-106-N each residing nearer to a respective client system. The DRM key protection system104operates within a secure processing environment, such as a trusted execution environment (TEE).

Based on a protected content key, a receiving device may decrypt DRM media content from the content server110, in order to generate decrypted DRM media content. Moreover, the receiving device may process (e.g., decode and render) the decrypted DRM media content, and provide the processed decrypted DRM media content to a client system for display on a display of the client system.

Each of the plurality of receiving devices106-1-106-N is associated with a corresponding one of the plurality of client systems108-1-108-N. In some embodiments, a client system is integrated in a receiving device. For example, a receiving device corresponds to a mobile device (e.g., a smartphone), and a client system corresponds to an application running on the mobile device. In some embodiments, the client system is not integrated in a receiving device. For example, a receiving device corresponds to a television, and the client system is included in an adapter that interfaces with the television, such as a dongle that plugs into the television.

The content server110stores various DRM media content and delivers the DRM media content to the plurality of receiving devices106-1-106-N via the network101. The DRM media content may correspond to any type of multimedia data (e.g., video data, audio data). For example, the DRM media content includes a plurality of video frames, such as adaptive bitrate (ABR) video frames. The network101may correspond to a personal area network (PAN), wired local area network (LAN), wireless local area network (WLAN), wireless wide area networks (WWAN), etc. In some embodiments, the network101corresponds to a content delivery network (CDN).

In some embodiments, the content server110encodes DRM media content according to one or more protocols supported by a corresponding client system. For example, the one or more protocols include H.265, H.264 with a fragmented MPEG-4 (fMP4) data structure, MPEG-2, MPEG-1, Advanced Audio Coding (AAC), MP3, AC-3, etc.

In some embodiments, the content server110assembles the encoded DRM media content in preparation for the delivery to a client system. Moreover, the content server110may generate playlist(s) and/or metadata for encrypted DRM media content item prior to the delivery. For example, for a client system that consumes the media content items through a web browser, the content server110assembles the encoded DRM media content according to various streaming solutions, e.g., HTTP Live Streaming (HLS) or HTTP Smooth Streaming (HSS), etc., and generates encrypted DRM media content using a plurality of sets of keys from the DRM license system102.

As illustrated inFIG.1B, a second distributed DRM protection environment100bincludes the network101, the DRM license system102, the DRM key protection system104, the first receiving device106-1, the second receiving device106-1, the first client system108-1, the second client system108-2, and the content server110.

The content server110provides, via the network101, first DRM media content124-1to the first receiving device106-1. Moreover, the content server110provides, via the network101, second DRM media content124-2to the second receiving device106-2. Each of the first DRM media content124-1and the second DRM media content124-2is encrypted according to DRM protocols. The DRM key protection system104coordinates with the DRM license system102to provide respective protected content keys to enable decryption of respective DRM media content.

Namely, the DRM license system102generates a first encrypted content key120-1associated with the first receiving device106-1, and generates a second encrypted content key120-2associated with the second receiving device106-2. The DRM key protection system104receives, from the DRM license system102, the first encrypted content key120-1and the second encrypted content key120-2.

In some embodiments, the DRM key protection system104receives the first encrypted content key120-1and the second encrypted content key120-2while a secure communication session is active between the DRM key protection system104and the DRM license system102. For example, with reference toFIG.1C, the DRM key protection system104may include a secure communication session generator130that generates the secure communication session. In some embodiments, the secure communication session generator130establishes a secure communication session by performing a (one-to-one) hardware binding between the DRM key protection system104and the DRM license system102.

In some embodiments, the DRM key protection system104receives the first encrypted content key120-1and the second encrypted content key120-2after performing hardware binding. For example, an identifier is bound to hardware of the DRM key protection104system, such as a hardware identifier that identifies the DRM key protection system104or identifies a hardware characteristic (e.g., hardware type) of the DRM key protection system104. In some embodiments, the identifier is a trusted identifier (e.g., not compromised) associated with the DRM key protection system104.

The DRM key protection system104prepares the first encrypted content key120-1and the second encrypted content key120-2for delivery to the first receiving device106-1and the second receiving device106-2, respectively. Preparing an encrypted content key includes processing (e.g., decrypting) the encrypted content key, and protecting the processed content key to generate a protected content key. For example, with reference toFIG.1C, the DRM key protection system104may include a key decrypter132and a key protector134that together prepare an encrypted content key. Referring back toFIG.1B, the key decrypter132decrypts the first encrypted content key120-1to generate a first decrypted content key, and the key protector134protects the first decrypted content key to generate a first protected content key122-1. Moreover, the key decrypter132decrypts the second encrypted content key120-2to generate a second decrypted content key, and the key protector134protects the second decrypted content key to generate a second protected content key122-2.

In some embodiments, referring toFIG.1C, protecting a decrypted content key includes using a key ladder135. For example, protecting the first decrypted content key is based on a first ladder key that is associated with the first receiving device106-1, and protecting the second decrypted content key is based on a second ladder key that is associated with the second receiving device106-2. A key ladder may be a generic cryptographic construction, and may include chaining keyed cryptographic operations such that each one of those operations gets its key from the output of a previous operation. The final level of the key ladder typically outputs its result out of the key ladder for general use, e.g., for decrypting the encrypted content, and the intermediate levels generate varying levels of intermediate key ladder keys, e.g., as provided by different entities and/or is project specific.

Referring back toFIG.1B, the DRM key protection system104provides the first protected content key122-1to the first receiving device106-1, and provides the second protected content key122-2to the second receiving device106-2.

The first protected content key122-1enables the first receiving device106-1to decrypt the first DRM media content124-1. For example, with reference toFIGS.1B and1D, the first receiving device106-1includes a DRM media content decrypter140that decrypts the first DRM media content124-1using the first protected content key122-1, in order to generate first decrypted DRM media content126-1. The first receiving device106-1may provide the first decrypted DRM media content126-1to the first client system108-1, for display on a display154of the first client system108-1(illustrated inFIG.1E). In some embodiments, the first client system108-1prepares (e.g., decodes and renders) the first decrypted DRM media content126-1for display on its display154.

The second protected content key122-2enables the second receiving device106-2to decrypt the second DRM media content124-2. For example, with reference toFIG.1B, the second receiving device106-2decrypts the second DRM media content124-2using the second protected content key122-2, in order to generate second decrypted DRM media content126-2. The second receiving device106-2may provide the second decrypted DRM media content126-2to the second client system108-2, for display on a display of second client system108-2. In some embodiments, the second client system108-2prepares (e.g., decodes and renders) the second decrypted DRM media content126-2for display on its display.

In some embodiments, a receiving device prepares decrypted DRM media content for display on a display of a corresponding client system. For example, with reference toFIG.1D, the first receiving device106-1may include a DRM media content decoder142that decodes the first decrypted DRM media content, and may include a DRM media content renderer144that renders the decoded DRM media content. Continuing with this example, the first receiving device106-1provides the rendered DRM media content to the first client system108-1, for direct display (e.g., with minimal or no processing) on the display154. Thus, in some embodiments, rather than having a client system decode/render decrypted DRM media content, a receiving device may decode/render the decrypted DRM media content.

One of ordinary skill in the art will appreciate that the second receiving device106-2may also include one or more of a DRM media content decrypter, a DRM media content decoder, and a DRM media content renderer, with respective functionalities similar to those of the first receiving device106-1described with reference toFIG.1D.

FIG.2is a timeline representation200of a method of generating a protected content key, and providing the protected content key in accordance with some embodiments. Although the description of the timeline representation200includes the DRM key protection system104providing a first protected content key218to the first receiving device106-1, one of ordinary skill in the art will appreciate that the DRM key protection system104may generate additional protected content keys, and provide them to respective receiving devices.

As illustrated inFIG.2, a current time indicator202indicates the passage of time, starting at an initial time T0.

At a first time T1, as represented by block204, the DRM key protection system104receives an indication of user authentication of a user of the first client system108-1. For example, with reference toFIG.1E, the authenticator150of the first client system108-1authenticates the identity of a user (e.g., whether the user has subscribed to a service in order to login to an application), and accordingly provides an authentication indicator to the DRM key protection system104.

At a second time T2, as represented by block206, the DRM key protection system104initiates a hardware binding with the DRM license system102. In some embodiments, performing the hardware binding establishes a secure communication system between the DRM key protection system104and the DRM license system102. The hardware binding process is represented by blocks208-212.

In some embodiments, rather than performing hardware binding via a secure communication system (as described with reference to block206), the binding is to hardware of the DRM key protection system104. For example, an identifier is bound to hardware of the DRM key protection system104, such as a hardware identifier that identifies the DRM key protection system104or identifies a hardware characteristic (e.g., hardware type) of the DRM key protection system104. In some embodiments, the identifier is a trusted identifier (e.g., not compromised) associated with the DRM key protection system104.

At a third time T3, as represented by block208, the DRM key protection system104generates a license request. The license request may include a trusted identifier. The trusted identifier is associated with (e.g., identifies) the DRM key protection system104, which is in contrast to other DRM architectures in which a trusted identifier may be associated with a receiving device.

At a fourth time T4, the DRM key protection system104provides a license request210to the DRM license system102. In response to receiving the license request210, the DRM license system102validates the identity of the DRM key protection system104, which may include determining that the DRM key protection system104is a known and trusted system.

At a fifth time T5, in response to validating the identity of the DRM key protection system104, the DRM license system102provides a license212to the DRM key protection system104. In some embodiments, the license212includes a first encrypted content key, which may be bound by the trusted identifier. In some embodiments, the DRM license system102further provides, to the DRM key protection system104, a validation indicator that indicates validation of the trusted identifier.

At a sixth time T6, as represented by block214, the DRM key protection system104decrypts the first encrypted content key, to generate a first decrypted content key.

At a seventh time T7, as represented by block216, the DRM key protection system104protects the first decrypted content key, to generate a first protected content key218. For example, the DRM key protection system104protects the first decrypted content key based on a first ladder key that is associated with the first receiving device106-1. At an eighth time T8, the DRM key protection system104provides the first protected content key218to the first receiving device106-1.

The first protected content key218enables the first receiving device106-1to decrypt DRM media content (e.g., the first DRM media content124-1described with reference toFIG.1B). To that end, in some embodiments, the first receiving device106-1clears the first protected content key218to generate a first cleared key, as represented by block220(at a ninth time T9). For example, the first receiving device106-1clears the first protected content key218based on the first ladder key.

At a tenth time T10, as represented by block222, the first receiving device106-1may process first DRM media content to generate first processed DRM media content224. For example, processing the first DRM media content may include decrypting the first DRM media content based on the first cleared key. As another example, processing the first DRM media content may further include decoding or rendering the decrypted first DRM media content.

At an eleventh time T11, the first receiving device106-1provides the first processed DRM media content224to the first client system108-1. At a twelfth time T12, as represented by block226, the first client system108-1displays the first processed DRM media content224on a display of the first client system108-1.

FIG.3is an example of a flow diagram of a method300of distributing protected content keys to respective receiving devices in accordance with some embodiments. In some embodiments, the method300or portions thereof is performed by a DRM key protection system, such as the DRM key protection system104described with reference toFIGS.1A-1C and2. In some embodiments, the DRM key protection system key protection system operates within a secure processing environment, such as a trusted execution environment (TEE). In some embodiments, the method300or portions thereof is performed by a controller that is integrated in a network device. In some embodiments, the method300or portions thereof is performed by an apparatus with one or more processors, a non-transitory memory, and a network interface.

As represented by block302, in some embodiments, the method300includes establishing a secure communication session with a DRM license system. For example, with reference toFIG.1A, the DRM key protection system104establishes a secure communication session with the DRM license system102. As represented by block304, in some embodiments, establishing the secure communication session includes performing a hardware binding between the DRM key protection system104and the DRM license system102, such as is described with reference to blocks206-212ofFIG.2. Thus, in contrast to other DRM architectures in which hardware binding occurs on a per receiving device basis, the method300may include performing hardware binding between the DRM license system and the DRM key protection system, independent of the number of receiving devices. Accordingly, the method300may provide DRM protection with less utilization of network resources. In some embodiments, the DRM key protection system establishes a secure communication session by transmitting a trusted identifier to the DRM license system, and receiving back from the DRM license system a validation indicator that indicates validation of the trusted identifier.

In some embodiments, rather than performing hardware binding via a secure communication system (as described with reference to block304), the binding is to hardware of the DRM key protection system104. For example, an identifier is bound to hardware of the DRM key protection system104, such as a hardware identifier that identifies the DRM key protection system104or identifies a hardware characteristic (e.g., hardware type) of the DRM key protection system104. In some embodiments, the identifier is a trusted identifier (e.g., not compromised) associated with the DRM key protection system104.

As represented by block306, the method300includes receiving, from a DRM license system, a plurality of encrypted content keys respectively associated with a plurality of receiving devices. In some embodiments, receiving the plurality of encrypted content keys occurs while the DRM key protection system has an active secure communication session with the DRM license system.

As represented by block308, the plurality of encrypted content keys includes a first encrypted content key that is associated with a first receiving device of the plurality of receiving devices. For example, the first encrypted content key corresponds to the first encrypted content key120-1illustrated inFIG.1B. As represented by block310, the plurality of encrypted content keys includes a second encrypted content key that is associated with a second receiving device of the plurality of receiving devices. For example, the second encrypted content key corresponds to the second encrypted content key120-2illustrated inFIG.1B.

As represented by block312, the method300includes processing the first encrypted content key to generate a first decrypted content key, and processing the second encrypted content key to generate a second decrypted content key. For example, with reference toFIG.1B, the DRM key protection system104processes the first encrypted content key120-1to generate a first decrypted content key, and processes the second encrypted content key120-2to generate a second decrypted content key.

As represented by block314, the method300includes generating a first protected content key based on the first decrypted content key. Continuing with the previous example, the DRM key protection system104generates the first protected content key122-1based on the first decrypted content key. As represented by block316, in some embodiments, generating the first protected content key is based on a first key ladder associated with the first receiving device.

As represented by block318, the method300includes generating a second protected content key based on the second decrypted content key. Continuing with the previous example, the DRM key protection system104generates the second protected content key122-2based on the second decrypted content key. As represented by block320, in some embodiments, generating the second protected content key is based on a second key ladder associated with the second receiving device.

As represented by block322, the method300includes providing the first protected content key to the first receiving device, and providing the second protected content key to the second receiving device.

In some embodiments, the method300includes, at the first receiving device, obtaining first DRM media content, clearing the first protected key in order to generate a first cleared key, decrypting the first DRM media content using the first cleared key, in order to generate first decrypted DRM media content, and preparing the decrypted first DRM media content for playback on a display of a first client system. For example, with reference toFIG.1B, the first receiving device106-1obtains the first DRM media content124-1. Continuing with this example, the first receiving device106-1clears the first protected content key122-1, and uses the cleared key to decrypt the first DRM media content124-1. Moreover, the first receiving device106-1may prepare (e.g., decode and render) the decrypted first DRM media content124-1to make the resulting content viewable on a display of the first client system108-1.

In some embodiments, the method300includes, at the second receiving device, obtaining second DRM media content, clearing the second protected key, in order to generate a second cleared key, decrypting the second DRM media content using the second cleared key, in order to generate second decrypted DRM media content, and preparing the decrypted second DRM media content for playback on a display of a second client system. For example, with reference toFIG.1B, the second receiving device106-2obtains the second DRM media content124-2. Continuing with this example, the second receiving device106-2clears the second protected content key122-2, and uses the cleared key to decrypt the second DRM media content124-2. Moreover, the second receiving device106-2may prepare (e.g., decode and render) the decrypted second DRM media content124-2to make the resulting content viewable on a display of the second client system108-2.

The disclosure is not intended to be limited to the embodiments shown herein. Various modifications to the embodiments described in this disclosure may be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of this disclosure. The teachings of the invention provided herein can be applied to other methods and systems, and are not limited to the methods and systems described above, and elements and acts of the various embodiments described above can be combined to provide further embodiments. Accordingly, the novel methods and systems described herein may be implemented in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the disclosure. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the disclosure.