1. Field
This disclosure generally relates to the field of broadcasting data. More particularly, the disclosure relates to security for the data being broadcasted.
2. General Background
Developments have been made in the area of broadcasting digital content to handheld devices. For instance, the Digital Video Broadcast Handheld (“DVB-H”) standard has been effective in allowing handheld devices to receive digital content, e.g., a television show. A handheld device configured for DVB-H receives data in bursts so that the amount of time the handheld device has to be on is optimized. As a result, batteries suffice to provide power for the handheld device to operate.
Although DVB-H provides support for protocols that protect the content, e.g., the Secure Real-Time Transport Protocol (“SRTP”) and the Internet Protocol Encapsulating Security Payload (“IPSec/ESP”), DVB-H does not provide a security mechanism for protecting the keys that are utilized in the content protection. In other words, DVB-H lacks an infrastructure for providing secure generation and synchronization of the encryption and the service keys. DVB-H defines a mechanism to deliver encrypted traffic keys to handsets via a messaging protocol, but does not define how traffic keys are synchronized between the encryption subsystem and the key message generation subsystem, or how the traffic key encryption keys, i.e., the service keys, are to be generated or synchronized between the key message generating subsystem and the key distribution subsystem
In one aspect of the disclosure, a method is provided. The method receives a set of data. Further, the method receives a traffic key. In addition, the method determines a traffic protection group for the set of data. The method also encrypts the set of data according to the traffic key to generate an encrypted set of data. Finally, the method provides the encrypted set of data through a network to a device.
In another aspect of the disclosure, a method is provided. The method generates a traffic key. Further, the method encrypts the traffic key with an authorization encryption key. In addition, the method provides the encrypted traffic key in a keystream message through a network to a device.
In yet another aspect of the disclosure, a method is provided. The method generates a service key for a set of data. Further, the method receives a request for the service key. In addition, the method provides the service key so that a traffic key is generated for a traffic protection group for the set of data.
The above-mentioned features of the present disclosure will become more apparent with reference to the following description taken in conjunction with the accompanying drawings wherein like reference numerals denote like elements and in which:
A method and apparatus are disclosed, which provide a digital rights management (“DRM”) engine. The DRM engine may be utilized in a variety of different environments, e.g., mobile broadcast applications that utilize the DVB-H standard or other standards, to provide security for data that is utilized. The DRM engine provides an effective security mechanism for protecting the generation and synchronization of traffic keys and traffic key encryption keys.
Channel C 110 is an overlapping channel between the service X 102 and the service Y 104. Accordingly, both the service provider for the service X 102 and the service provider for the service Y 104 offer the same Channel C 110. The DRM engine allows a subscriber of one service, e.g., the service X 102, to access the protected content of the overlapping Channel C 110 without learning the security mechanism employed by the service Y 104 to protect that same content.
The DRM engine utilizes a unique keystream, which is an entitlement control, for each of the traffic protection groups to encrypt the media flows within the traffic protection group. A unique keystream message (“KSM”) is generated for each of the traffic protection groups and services. As a result, encrypted TKs may be delivered to receiving devices, e.g., mobile devices, utilizing KSMs. For instance, a unique KSM may be generated for the traffic protection group α 202 for the service X 102. Accordingly, the KSM Xα208 may be utilized to deliver TKs that are unique service keys provided by the service provider of the service X 102. Further, a unique KSM may be generated for the traffic protection group α 202 for the service Y 104. The KSM Yα210 may be utilized to deliver TKs that are unique service keys provided by the service provider of the service Y 104. As a result, different KSMs are utilized to provide access to media flows on the same Channel C 110. A first device subscribed to the service X 102 listens to the KSM Xα208 while a second device subscribed to the service Y 104 listens to the KSM Yα210. Both devices are able to derive the same TKs for the traffic protection group α 202 and thus access the content for Channel C 110. In addition, KSM Xβ212 and KSM Yβ may be generated for the traffic protection group β 204. Further, KSM Xγ216 and KSM Yγ218 may be generated for the traffic protection group γ 206.
The real-time non-native content may have to be transcoded. Accordingly, the real-time native content may be sent to an audio/visual (“A/V”) transcoder 314 to be transcoded. Within the A/V transcoder 314, an A/V decoder 316 may decode the real-time non-native content and an A/V encoder 318 may encode the real-time non-native content. The real-time streams, i.e., the real-time non-native and real-time native streams, are sent to the DRM Engine 302 for protection en route to authorized user devices 320 via a broadcast network 322.
The non-real time non-native content may also have to be transcoded. Accordingly, the non-real time non-native content may be sent to a transcoder 324 to be transcoded. Within the transcoder 324, a decoder may decode the non-real time non-native content and an encoder 326 may encode the non-real time non-native content. The non-real time streams, i.e., the non-real time native and non-real time non-native streams are stored in a storage medium 330 that is accessible through a Content Delivery Server 332. Accordingly, the non-real time streams may be accessed for subsequent play or retrieval. In one embodiment, the storage medium 330 is integrated within the Content Delivery Server 332. In another embodiment, the storage medium 330 is distinct from the Content Delivery Server 332, but may be accessed by the Content Delivery Server 332, e.g., through a network connection.
In an alternative embodiment, the non-real time streams may be pre-encrypted prior to storage in the storage medium 330. Accordingly, a pre-encryptor may be provided to receive and pre-encrypt the transcoded non-real time native stream and/or the non-real time non-native stream. The pre-encryptor may then send the pre-encrypted stream to the storage medium 330 for storage.
Further, metadata such as service description data and program guide data is sent from the one or more content provider networks 304 to an Electronic Service Guide Generator (“ESGG”) 334 to facilitate service, channel discovery, and selection by the users at the authorized user devices 320. The metadata may be sent from the ESGG 334 to a program scheduler 340. Accordingly, the program scheduler 340 utilizes the DRM engine 302 to access the media flows and associate the metadata with the corresponding media flow. Further, the program scheduler 340 provides the metadata and content to a presentation server 342 that may provide the content to the user device 320 through the interactive network 336.
Accordingly, the DRM engine 302 provides various functions for facilitating the secure delivery of media flows to the authorized user devices 320. The DRM engine 302 provides real-time encryption of media flows. Further, the DRM engine 302 generates and stores service-level, program-level, and traffic-level keys. In addition, the DRM engine 302 provides for the delivery of TKs and access/usage rules to the user devices 320 through KSMs. The DRM engine 302 also interfaces to entitlement management systems 338 which forward service and program keys to authorized user devices 320.
In addition, the entitlement management system 338 may interact with an audit application 344, a subscriber management system 346, and an e-commerce system 348. The e-commerce system 348 may then interact with the user device 320 through the interactive network 336.
The DRM engine 302 also has a Key Distribution Center (“KDC”) 408. The KDC 408 may provide a ticketing authentication mechanism for secure transactions between the components of the DRM engine 302 and external applications running an IP Rights Management (“IPRM”) Applications Programming Interface (“API”). Further, a key store (“KS”) 410 is a repository for service keys, program keys, and related access/usage rules. The KS 410 may also provide service and program key generation.
In one embodiment, the components of the DRM engine 302 may interact with one or more IPRM agents to facilitate key generation and exchange. A service key generator (“SKG”) is an IPRM agent that communicates with the KS 410 to request the generation of service keys. The SKG may be co-hosted with the ECMG 404. In addition, a service key retriever (“SKR”) is an IPRM agent that communicates with the KS 410 to retrieve service keys. Further, the SKR may be utilized in the ECMG 404 to obtain service keys for KSM generation. The SKR may also be utilized in an Entitlement Management System (“EMS”) 338, which may be a Rights Issuer (“RI”), to facilitate delivery of service keys to authorized user devices 320, e.g., “subscription” terminals, via the interactive network 336, e.g., a cellular network. A program key generator (“PKG”) may communicate with the KS 410 to request the generation of program keys. Further, the PKG may be utilized with applications for the scheduling of program events. A program key retriever (“PKR”) may communicate with the KS 410 to retrieve program keys. The PKR may be utilized in the ECMG 404 to obtain program keys for Key Stream Message generation. Further, the PKR may be utilized in the EMS 338 to facilitate delivery of program keys to “pay-per-view” terminals via the interactive network 336.
In one embodiment, the components may interact with each other through a control network 412. Further, the RTE 406 may receive the unencrypted streams from a media network 414 for media data processing. Metadata for the unencrypted streams may be sent to the program scheduler and guide generator 340.
Further, a program key (“PK”) is a key that may be utilized to protect pay-per-view programming. The PK is securely delivered to pay-per-view terminals via the interactive network 336. In another embodiment, for channels that support subscriptions and pay-per-view, the PK may be utilized for user devices 320 such as subscription-based terminals via a broadcast entitlement control message (“ECM”), which may be encrypted by a service key (“SK”). A PK typically spans a program event lasting from several minutes to several hours.
In addition, an SK may be utilized to protect TKs broadcasted for subscription-based services or protect program keys delivered to subscription-only terminals. Accordingly, the service key acts as a subscription key. SKs are provided to authorize “connected” user devices 320 via the interactive network 336 as Rights Objects. SKs may update infrequently (e.g., days to months), typically commensurate with a subscription billing cycle.
The user device 320 registers with a Rights Issuer, e.g., the EMS 338, to obtain a Rights Object (“RO”) containing encrypted service and/or program keys and related entitlement information. The End User Device's 320 DRM Agent 502 decrypts this information to reveal the SK and/or PK. If the rights of the user device 320 match the rules, the DRM Agent 502 then sends the SK and/or PK to an ECM Agent 504 of the user device 320 to expose the TK encrypted in ECMs, i.e., KSMs, delivered via the broadcast network 322. Accordingly, a decryptor 506 of the user device 320 may then utilized the TK to decrypt the content so that a user device 320 has access to the content.
The following key stream message modes are supported where E{X}(data) denotes data encrypted under key X. For a subscription only mode, the KSM key material may be E{SK}(TK). Further, for a pay-per-view only mode, the KSM key material may be E{PK}(TK). In addition, for a subscription and pay-per-view mode, the KSM key material may be E{PK}(TK) and E{SK}(PK). In the hybrid mode, i.e., the subscription and pay-per-view mode, user devices 320 such as subscription terminals first utilize the SK to reveal the PK which is then utilized to derive the clear TK. Pay-per-view terminals do not need to utilize the SK to reveal the PK. The pay-per-view terminals may utilize the PK to derive the clear TK. At this point, the terminal may utilize the TK to decrypt the content if permitted, according the access/usage rules conveyed in the KSM.
In one embodiment, the KS 410 is the primary facility for service and program key generation and storage. In this model, an IPRM agent, such as SKG, of the entity labeled “A” 602 is responsible for requesting the generation of service keys. Further, Entity “B” 604 may retrieve service keys for delivery to user devices 320 such as subscriber terminals via the interactive network 336. Entity “C” 606, having an IPRM agent operating as a PKG requests the generation of program keys per program events and supplies associated program access/usage criteria to the KS 410 for storage and subsequent retrieval by other applications. In addition, entity “D” 608, having an IPRM agent such as PKR may request program keys for delivery to pay-per-view terminals via the interactive network 336. For mobile broadcast applications, these elements may correspond to components of a Content Delivery Server 332. For example, entities B 604 and D 608 may be Open Mobile Alliance (“OMA”) Rights Issuers while entity C 606 may be an ESGG 334, as seen in
In addition to supplying ECMs, the ECMG 404 also supports traffic key creation and storage. Depending on the configured mode (per channel), the ECMG 404 retrieves SKs and/or PKs from the KS 410 for the generation of KSMs delivered to terminals via the broadcast network 322. Based on each channel's traffic crypto period, the RTE 406 periodically requests the generation of traffic keys by the ECMG 404 for encryption and authentication of each channel's media flows.
The architecture 900 includes executables and a link library. The ESB Daemon component 902 is one of the executables and is involved in the execution of the IPRM security protocol. Further, a KDC/KS executable 904 is utilized with the authentication and the key store services. The link library has an IPRM Agent 906, which is a software layer. The IPRM Agent 906 provides access to IPRM functionality for the applications. The SKG 702 sends key request messages to ask the KDC/KS executable 904 to generate and store service keys from the KS 410. The ECMG 404 and a rights issuer (“RI”), which is a component of the Entitlement Management System 338 shown in
The following code may be utilized for the implementation of the architecture 900:
Applications may call IPRM_GetKey whenever the applications would like, without concern about the key lifetime, because the validity of keys is maintained by the IPRM Agent 1124 automatically. Accordingly, the IPRM Agent 1124 returns a local, in-memory data structure, and, therefore, the processing overhead is not too cumbersome.
The following code may be utilized in an implementation to allow the ECMG 404 to utilize the IPRM Agent 1124 to acquire the service and traffic keys:
In one embodiment, the architecture 900 provides tools to provision applications utilizing the architecture 900. The tool generates a configuration file as a result, and the configuration file may be utilized by ESB Daemon when the ESB Daemon starts up. Provisioning needs to run only once per application entity, e.g. once for the RTE 406 and once for the ECMG 406.
It should be understood that DRM engine module 1740 may be implemented as one or more physical devices that are coupled to the processor 1710 through a communication channel. Alternatively, the DRM engine module 1740 may be represented by one or more software applications (or even a combination of software and hardware, e.g., using application specific integrated circuits (ASIC)), where the software is loaded from a storage medium, (e.g., a magnetic or optical drive or diskette) and operated by the processor in the memory 1720 of the computer. As such, the DRM engine module 1740 (including associated data structures) of the present invention may be stored on a computer readable medium, e.g., RAM memory, magnetic or optical drive or diskette and the like.
It is understood that the DRM engine 302 described herein may also be applied in other types of systems. Those skilled in the art will appreciate that the various adaptations and modifications of the embodiments of this method and apparatus may be configured without departing from the scope and spirit of the present method and system. Therefore, it is to be understood that, within the scope of the appended claims, the present method and apparatus may be practiced other than as specifically described herein.