Systems and Methods for Secure Playback of Encrypted Elementary Bitstreams
20210329347 ยท 2021-10-21
Assignee
Inventors
- Francis Yee-Dug Chan (San Diego, CA, US)
- Kourosh Soroushian (San Diego, CA, US)
- Andrew Jeffrey Wood (San Diego, CA, US)
Cpc classification
H04L63/0428
ELECTRICITY
H04N7/1675
ELECTRICITY
H04N21/4302
ELECTRICITY
International classification
H04N21/235
ELECTRICITY
H04N21/236
ELECTRICITY
H04N21/43
ELECTRICITY
H04N21/434
ELECTRICITY
Abstract
Systems and methods for providing multimedia content from one process or component to another process or component over an unsecured connection are provided. One embodiment includes obtaining the cryptographic information, extracting the at least partially encrypted video data from the container file to create an elementary bitstream, enciphering the cryptographic information, inserting the cryptographic information in the elementary bitstream, providing the elementary bitstream to a video decoder, extracting the cryptographic information from the elementary bitstream at the video decoder, deciphering the cryptographic information, decrypting the elementary bitstream with the cryptographic information and decoding the elementary bitstream for rendering on a display device using the video decoder.
Claims
1. A playback device for playing back encrypted video, the playback device comprising: a set of one or more processors; and a memory containing a playback application for causing the set of one or more processors to perform steps of: parsing at least a portion of a container file to identify: cryptographic material for a partially encrypted frame; offset and length information for an encrypted portion of the partially encrypted frame; and the partially encrypted frame; providing the cryptographic material, the offset and length information, and the partially encrypted frame to a video decoder; locating the encrypted portion of the partially encrypted frame with the offset and length information using the video decoder; providing the cryptographic material from the video decoder to a digital rights management component to obtain a decrypted encoded frame, where the digital rights management component provides the cryptographic material to a cipher and decrypts the encrypted portion of the partially encrypted frame based upon an output of the cipher; and decoding the decrypted encoded frame for rendering on a display device using the video decoder.
2. The playback device of claim 1, wherein the step of providing the cryptographic material, the offset and length information, and the partially encrypted frame to the video decoder comprises an unsecured transfer of the cryptographic material, the offset and length information, and the partially encrypted frame to the video decoder.
3. The playback device of claim 2, wherein the step of providing the cryptographic material from the video decoder to the digital rights management component comprises trustworthy communications between the digital rights management component and the video decoder.
4. The playback device of claim 1, wherein the output of the cipher is a frame key for the partially encrypted frame.
5. The playback device of claim 4, wherein the cipher is configured to unwrap the frame key for the partially encrypted frame using the cryptographic material and a decryption key.
6. The playback device of claim 5, wherein the cipher comprises an Advanced Encryption System (AES) cipher configured by the decryption key.
7. The playback device of claim 6, wherein the AES cipher is configured in Electronic Codebook (ECB) mode.
8. The playback device of claim 6, wherein the AES cipher is configured using chaining.
9. The playback device of claim 6, wherein the AES cipher is configured using a feedback loop.
10. The playback device of claim 5, wherein the digital rights management component further comprises a predictable number sequence generator.
11. The playback device of claim 10, wherein the predictable number sequence generator is configured to monotonically increment a number.
12. The playback device of claim 5, wherein the encryption key is one of a plurality of layers of encryption keys required to unwrap the frame key for the partially encrypted frame.
13. The playback device of claim 12, wherein the plurality of layers of encryption keys restrict playback to a particular user.
14. The playback device of claim 1, wherein the encrypted portion of the partially encrypted frame comprises a frame header.
15. The playback device of claim 1, wherein an unencrypted portion of the partially encrypted frame comprises a frame header.
16. The playback device of claim 1, wherein the playback application is further for causing the set of one or more processors to stream the container file.
17. The playback device of claim 1, wherein the playback application is further for causing the set of one or more processors to perform the step of combining the cryptographic material, the offset and length information, and the partially encrypted frame, wherein providing the cryptographic material, the offset and length information, and the partially encrypted frame to the video decoder further comprises providing the combined cryptographic material, offset and length information, and partially encrypted frame to the video decoder.
18. The playback device of claim 17, wherein the step of providing the combined cryptographic material, offset and length information, and the partially encrypted frame to the video decoder comprises an unsecured transfer of the combined cryptographic material, offset and length information, and partially encrypted frame to the video decoder.
19. The playback device of claim 18, wherein the step of providing the cryptographic material from the video decoder to the digital rights management component comprises trustworthy communications between the digital rights management component and the video decoder.
20. The playback device of claim 17, wherein the step of parsing the at least a portion of the container file comprises buffering the cryptographic material, and the offset and length information.
21. The playback device of claim 20, wherein the step of combining the cryptographic material, the offset and length information, and the partially encrypted frame comprises attaching the buffered cryptographic material, and the offset and length information to the partially encrypted frame.
22. A playback device for playing back encrypted video, the playback device comprising: a set of one or more processors; and a memory containing a playback application and a multimedia framework comprising a video decoder and a digital rights management component; wherein the playback application is capable of causing the set of one or more processors to perform steps of: parsing at least a portion of a container file to identify: cryptographic material for a partially encrypted frame; offset and length information for an encrypted portion of the partially encrypted frame; and the partially encrypted frame; providing the cryptographic material, the offset and length information, and the partially encrypted frame to the multimedia framework; wherein the multimedia framework is capable of causing the set of one or more processors to perform the steps of: locating the encrypted portion of the partially encrypted frame with the offset and length information; producing a decrypted encoded frame by communicating with the digital rights management component to: unwrap a frame key for the partially encrypted frame from the cryptographic material using a cipher; and utilize the frame key for the partially encrypted frame to decrypt the encrypted portion of the partially encrypted frame; decoding the decrypted encoded frame to produce a decoded frame; and displaying the decoded frame on a display device.
23. The playback device of claim 22, wherein the step of providing the cryptographic material, the offset and length information, and the partially encrypted frame to the multimedia framework comprises an unsecured transfer of the cryptographic material, the offset and length information, and the partially encrypted frame to the multimedia framework.
24. The playback device of claim 23, wherein the step of communicating with the digital rights management component comprises trustworthy communications between the digital rights management component and the multimedia framework.
25. The playback device of claim 22, wherein the cipher is configured to unwrap the frame key for the partially encrypted frame using the cryptographic material and a decryption key.
26. The playback device of claim 25, wherein the cipher comprises an Advanced Encryption System (AES) cipher configured by the decryption key.
27. The playback device of claim 26, wherein the AES cipher is configured in Electronic Codebook (ECB) mode.
28. The playback device of claim 26, wherein the AES cipher is configured using chaining.
29. The playback device of claim 26, wherein the AES cipher is configured using a feedback loop.
30. The playback device of claim 25, wherein the digital rights management component further comprises a predictable number sequence generator.
31. The playback device of claim 30, wherein the predictable number sequence generator is configured to monotonically increment a number.
32. The playback device of claim 25, wherein the encryption key is one of a plurality of layers of encryption keys required to unwrap the frame key for the partially encrypted frame.
33. The playback device of claim 32, wherein the plurality of layers of encryption keys restrict playback to a particular user.
34. The playback device of claim 22, wherein the encrypted portion of the partially encrypted frame comprises a frame header.
35. The playback device of claim 22, wherein an unencrypted portion of the partially encrypted frame comprises a frame header.
36. The playback device of claim 22, wherein the playback application is further for causing the set of one or more processors to stream the container file.
37. The playback device of claim 22, wherein the playback application is further for causing the set of one or more processors to perform the step of combining the cryptographic material, the offset and length information, and the partially encrypted frame, wherein providing the cryptographic material, the offset and length information, and the partially encrypted frame to the multimedia framework further comprises providing the combined cryptographic material, offset and length information, and partially encrypted frame to the multimedia framework.
38. The playback device of claim 37, wherein the step of providing the combined cryptographic material, offset and length information, and partially encrypted frame to the multimedia framework comprises an unsecured transfer of the combined cryptographic material, offset and length information, and partially encrypted frame to the multimedia framework.
39. The playback device of claim 38, wherein the step of communicating with the digital rights management component comprises trustworthy communications between the digital rights management component and the multimedia framework.
40. The playback device of claim 37, wherein the step of parsing the at least a portion of the container file comprises buffering the cryptographic material, and the offset and length information.
41. The playback device of claim 40, wherein the step of combining the cryptographic material, the offset and length information, and the partially encrypted frame comprises attaching the buffered cryptographic material, and the offset and length information to the partially encrypted frame.
42. A playback device for playing back encrypted video, the playback device comprising: a set of one or more processors; and a memory containing: a playback application comprising a demultiplexer; and a multimedia framework comprising a video decoder and a digital rights management component, where the digital rights management component comprises a cipher and a predictable number sequence generator; wherein the playback application is capable of causing the set of one or more processors to perform steps of: parsing at least a portion of a container file using the demultiplexer to identify: cryptographic material for a partially encrypted frame; offset and length information for an encrypted portion of the partially encrypted frame; and the partially encrypted frame; providing the cryptographic material, the offset and length information, and the partially encrypted frame from the demultiplexer to the multimedia framework via an unsecured transfer; wherein the multimedia framework is capable of causing the set of one or more processors to perform the steps of: configuring the cipher using a decryption key and initializing the predictable number sequence generator to increment a number monotonically; locating the encrypted portion of the partially encrypted frame with the offset and length information; producing a decrypted encoded frame by communicating with the digital rights management component to: unwrap a frame key for the partially encrypted frame from the cryptographic material using the cipher and the predictable number sequence generator; and utilize the frame key for the partially encrypted frame to decrypt the encrypted portion of the partially encrypted frame; decoding the decrypted encoded frame to produce a decoded frame; and displaying the decoded frame on a display device.
43. The playback device of claim 42, wherein the digital rights management component is capable of unwrapping the frame key for the partially encrypted frame using the cipher without communication back to the demultiplexer once the cryptographic material is received by the digital rights management component.
44. The playback device of claim 43, wherein the cipher is an Advanced Encryption Standard (AES) compliant cipher that produces an AES key.
45. The playback device of claim 43, wherein the step of communicating with the digital rights management component comprises trustworthy communications between the digital rights management component and the multimedia framework.
46. The playback device of claim 43, wherein the encryption key is one of a plurality of layers of encryption keys required to unwrap the frame key for the partially encrypted frame.
47. The playback device of claim 46, wherein the plurality of layers of encryption keys restrict playback to a particular user.
48. The playback device of claim 42, wherein the encrypted portion of the partially encrypted frame comprises a frame header.
49. The playback device of claim 42, wherein an unencrypted portion of the partially encrypted frame comprises a frame header.
50. The playback device of claim 42, wherein the playback application is further for causing the set of one or more processors to stream the container file.
51. The playback device of claim 42, wherein the playback application is further for causing the set of one or more processors to perform the step of combining the cryptographic material, the offset and length information, and the partially encrypted frame, wherein providing the cryptographic material, the offset and length information, and the partially encrypted frame to the multimedia framework further comprises providing the combined cryptographic material, offset and length information, and partially encrypted frame to the multimedia framework.
52. The playback device of claim 51, wherein the step of parsing the at least a portion of the container file comprises buffering the cryptographic material, and the offset and length information.
53. The playback device of claim 52, wherein the step of combining the cryptographic material, the offset and length information, and the partially encrypted frame comprises attaching the buffered cryptographic material, and the offset and length information to the partially encrypted frame.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
DETAILED DESCRIPTION
[0048] Systems and methods for providing multimedia content from one process or component to another process or component over an unsecured connection are provided. In several embodiments, the transmission occurs between a demultiplexer and a decoder over an unsecured connection where traditionally such connections are secured. In many embodiments, the transmission occurs on a bi-directional communication path. Embodiments of the present invention do not secure the transmission but rather secure the data being transmitted via the unsecured connection. The transmitted data in a number of embodiments includes an encrypted multimedia bitstream and associated cryptographic material in the bitstream for transmission to a decoder for decryption. In various embodiments, a bi-directional communication path between a demultiplexer and the decoder is not used. Additionally, by allowing the decryption to occur on the decoder the bitstream is protected even if the connection is compromised and an unauthorized component or process intercepts the bitstream.
[0049] In various embodiments, frame keys are used to decrypt the bitstream. For example, in the manner described in U.S. Pat. No. 7,295,673 to Grab et al. the disclosure of which is incorporated by reference herein in its entirety. In several embodiments, the frame keys are protected by a cryptographic wrap algorithm that uses a separate series of newly generated keys. The wrapped frame keys are inserted into the encrypted bit stream for deciphering and decoding by the decoder. The cryptographic information in various embodiments includes information to decrypt a video frame or a portion of the video frame. In various embodiments, a time indicator in the form of a frame sequence is also utilized to ensure connection between the demultiplexer and decoder is not being intercepted or spied upon.
[0050] The cryptographic information inserted into the elementary bitstream can take any of a variety of forms. In many embodiments, the cryptographic information includes a frame key and/or a reference to a block of encrypted video data. In several embodiments, the cryptographic information contains an index to a frame key or a separate reference to both a frame key and an encrypted block. A number of embodiments provide for first inserting a table of possible keys and still further embodiments provide for sending multiple keys where different keys are used to encrypt different portions of the video.
[0051] Turning now to the drawings,
[0052] The demultiplexer parses the multimedia container file and transmits portions or chunks of data, e.g., video or audio, to a decoder. However, prior to transmitting the video data, the demultiplexer incorporates or attaches cryptographic material to the video data.
[0053]
[0054] Referring now to
[0055] The connection between the demultiplexer and the decoder is typically secured. However, in the illustrated embodiment, the connection is not secured. Typically, the multimedia file is authorized and decrypted in a demultiplexer and then transmitted downstream unencrypted to the decoder via an inter-communication data channel. This however can present a security problem due to the high value of the unencrypted but still encoded bitstream that can be captured during transmission. This bitstream is considered high-value since the encoded data can be easily multiplexed back into a container for unprotected and unauthorized views and/or distribution with no loss in the quality of the data. In the illustrated embodiment, the video provided to the decoder 20 by the demultiplexer 10 is at least partially encrypted and the decoder 20 communicates with a downstream digital rights management component 25 that deciphers the cryptographic material. Utilizing the deciphered cryptographic material, the digital rights management component is able to access the encryption data and thereby decrypt and decode the video data for playback.
[0056] The general processes of the demultiplexer and the decoder are now described. In
[0057] In
[0058] To further elaborate on the demultiplexer and decoder processes and the bitstream transport system, a more detailed representation of the demultiplexer's and decoder's associated digital rights manager along with the associated processes are illustrated in the remaining figures.
[0059] Referring to
[0060] The payload builder 18 provides discrete units of cryptographic material in the bitstream delimited by an identifier. On the decoder, the payload parser 28 utilizes the identifiers to extract the discrete units, which are then processed by the decrypt engine 26. In many embodiments, the cryptographic material in one embodiment includes a bitstream frame header along with a cryptographic payload. The cryptographic payload, however, is not dependent on the format of the header of the elementary bitstream, e.g., MPEG-4 or H.264.
[0061] In one embodiment, the payload builder 18 inserts a reserved start code identifier along with a cryptographic payload at the front of each video chunk that is demultiplexed. By utilizing a reserved start code, the decrypt engine 26 can pass the entire video data including the inserted cryptographic material to the decoder 20 that simply discards or ignores the cryptographic material. For example, a MPEG-4 compliant decoder discards frames that contain a reserved start code identifier that is included in the bitstream. Accordingly, removal of any of the cryptographic material from the bitstream is not needed to decode the associated data.
[0062] The cryptographic payload in one embodiment includes three different packet types: a wrap key, a synchronization payload and a frame payload. The frame payload indicates that the current frame is encrypted and includes key information and a reference to at least a portion of the encoded frame that is encrypted. The frame payload can be used to decrypt the video frame. The synchronization payload is the first packet sent to synchronize the authentication engine of the demultiplexer to the decrypt engine of the decoder. This synchronization ensures that data transmitted from the demultiplexer to the decoder is not being intercepted. The wrap key includes information to unwrap or decipher the transmitted data from the demultiplexer.
[0063] The bit stream inserter 17 packages the cryptographic material for transport with the video data. Conversely, the bit stream decoder 27 of the decoder unpacks the cryptographic material from the bitstream. In one embodiment, frame keys are transported in the bitstream and are sent when a key index change is detected by the authentication engine of the demultiplexer. In many embodiments, the decrypt engine of the decoder stores only one frame key and thus frame encryption information sent by the demultiplexer applies to the current frame. If the decrypt engine receives a new frame key from the demultiplexer, the decrypt engine stores the new frame key and uses it to decrypt the next frame. In a number of embodiments, a key table is transmitted and stored in the decrypt engine for reference by subsequent encryption information. In several embodiments, the decoder does not enforce key rotation. In many embodiments, however, the decoder expects a new frame key after a predetermined number of frames in the sequence of frames. In this way, the decrypt engine can identify when supplied frame information is unreliable and terminate the decoding of the multimedia bitstream.
[0064] The wrap key factory 19 encrypts or wraps the cryptographic material for transport on the bitstream to the decoder. In one embodiment, the wrap key factory uses a key wrap process based on the Advanced Encryption Standard (AES) and uses the ECB Cipher Mode to provide cryptographic security for wrapping small blocks of data using chaining and cipher feedback loop. The key wrap process is stateless. A corresponding wrap key factory is included with the decoder to unwrap the cryptographic material. Synchronization with the corresponding wrap key factory 29 is used to allow unwrapping of the material without communication back to the demultiplexer (i.e., bi-directional communication) and to prevent unauthorized decoding of the content by, for example, a rogue process intercepting or copying the transmitted content.
Wrap Key Factory
[0065] In one embodiment, each of the authentication and decryption blocks (digital rights managers 15, 25) construct a series of predictable transform number sequences using a common heuristic. Subsequently, those numbers are combined with a random value for additional entropy used to contribute toward key material for wrapping keys.
[0066] A flow diagram of a wrap key generation process 300 in accordance with an embodiment of the invention is illustrated in
[0067] In accordance with various embodiments, one such heuristic (302) may combine the use of a predictable number sequence generator such that identical transform sequences can be generated by different heuristics even though no information is exchanged. If both authentication and decrypt blocks are created such that the output of the common heuristic are identical, the key material (304) generated from such heuristic will be identical. This may apply in situations where a wrapped key (306) and a selected heuristic (302) are provided. Any process for generating identical encryption keys without exchange of key material can be used as an appropriate heuristic to generate wrapping keys (306) in accordance with embodiments of the invention. Although, some information exchange to enable synchronization between the two wrap key factories can be utilized in accordance with embodiments of the invention.
[0068] The two wrap key factories use the same transform sequence. To synchronize the wrap key factories, the sender's wrap key factory selects one heuristic (302) from a predetermined set of heuristics to generate the key material for the next wrap key. The decoder factory will receive a known payload that has been encrypted with the sender's wrap key (306) generated using selected heuristic (302) from the known set of heuristics. The receiver then attempts to decrypt and verify the contents of the payload using each of the predetermined heuristics. If the material matches what is expected, then the receiver has identified the correct heuristic (302). If all the heuristics are exhausted, then this is considered a fatal error and decryption cannot continue.
[0069] Initially, the synchronization payload is used to assist the decrypt block in identifying the appropriate transform sequence quickly. Once the decrypt block locates the proper heuristic (302), the decrypt block wrap key factory utilizes that transform sequence for all subsequent transforms. In several embodiments, once a heuristic has exhausted all values, that heuristic will deterministically choose the next heuristic to use.
[0070] Run time synchronization is maintained through monotonically incrementing a wrap number that is incremented for each wrap key generated. If an error occurs using a particular wrap key (i.e. unallowable data present in the cryptographic payload), the wrap key factory will regenerate a new wrap key and subsequently increment the wrap number. In one embodiment, the frame payload received by the decrypt block contains a wrap number element. On the decrypt block, this wrap number element is compared with the internal wrap number of the decrypt block to determine if the current wrap key needs to be skipped. In one embodiment, the wrap key includes data fed into a cryptographic digest. The resulting bytes from the digest are then used to create an AES key. A new wrap key will be generated for each payload that is wrapped.
Bitstream Data Insertion
[0071] A flow diagram of a bitstream insertion process 400 utilized with respect to video data extracted from an AVI container in accordance with an embodiment of the invention is illustrated in
[0072] In various embodiments, bitstream data insertion occurs in the authentication block of the demultiplexer. The digital rights manager in one embodiment first receives the container's encryption data and temporarily stores or caches the information. The cached encryption data contains the information for the next video chunk. From this information, the digital rights manager can determine the proper bitstream payload to insert, if any. To reduce memory copies, the digital rights manager inserts the bitstream payload before extracting the chunk from the container.
[0073] Based on the cached encryption data chunk, the digital rights manager can detect frame key changes. If the frame key index has not changed since the last cached encryption data, no key material is sent. In one embodiment, the encryption data is always transported if there is cached encryption data in the digital rights manager. On the first payload, there will be a synchronization payload to allow the decrypt block to synchronize the wrap sequence. The frame information payloads in one embodiment follow the synchronization payload. It should be appreciated that not all payloads are required to appear in each decrypt block. Furthermore, the processes similar to those described above with reference to
[0074] Although the present invention has been described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. It is therefore to be understood that the present invention may be practiced otherwise than specifically described, including various changes in the size, shape and materials, without departing from the scope and spirit of the present invention. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive.