The present invention relates to methods and systems for enhancing content security and is particularly concerned with audiovisual content.
Audiovisual content is generally available in a compressed format (e.g. MPEG-2, MPEG-4). This content can be stored in a file or streamed to a device containing a content player. This processing sequence is well known and shown in
Content is often stored locally at devices that are commonly connected to the Internet. Hence, the Internet is an important infrastructure for the distribution of content. Digital Rights Management (DRM) systems aim to control the use of content and attempt to prevent unauthorized distribution of content. A common feature of DRM systems is to store the content in a secured format.
When a user selects a particular action to be performed on the secured content 20, a DRM decrypt component 22 verifies that the user is entitled to perform the requested operation prior to decrypting the content. If the user has not acquired the necessary rights to the content, the decryption step will fail. This processing scheme makes the redistribution of the secured content file useful to parties that have obtained the necessary rights to the secured content. However, an attacker still may obtain the compressed content at the output of the DRM decrypt component 22 and use that to create a cleartext content file that does not require processing of the DRM system.
Consequently, DRM systems commonly use a secured content player in order to prevent an attacker from obtaining a cleartext version of the compressed content. The associated processing sequence is shown in
After the decryption process 22, the DRM system transfers the content in a transformed format to the secured player 30, which processes the transformed data into a decompressed format. The secured player 30 makes it difficult for the attacker to obtain the cleartext compressed content. The attacker can still obtain a cleartext uncompressed version of the content, but as redistribution requires recompression with an associated additional quality degradation, this is usually considered as a lower risk. In addition, a DRM system may have further mechanisms to complicate recovering even the uncompressed content. For example, most displays have inputs to accept uncompressed content streams over an encrypted link to increase the complexity of obtaining uncompressed content.
The creation of the secured player 30 usually involves adding some form of obfuscation to the software or using a processor with hardware tamper resistance facilities.
In the Applicant's U.S. Pat. No. 7,050,588, the cleartext compressed content stream contains distortions that are introduced prior to the compression of the content.
The content fixer module 44 makes it possible to use a standard content player 12, which simplifies the integration of the DRM system and a content player. The content fixer module 44 receives a distorted decoded content output and removes the distortions using fixer data that are extracted from the encoded content by the demux module 42.
As the decrypted and demultiplexed compressed content decodes to a distorted content output, the attacker would not be interested in distributing that version of the content. Additionally, it is hard for an attacker to obtain a compressed content stream that produces an undistorted content output from analysing the content fixer 44. As in the secured player described above with regard to
The Applicant's U.S. Pat. No. 7,050,588 requires the content to be distorted prior to compression as shown in
The fixer data encoder 54 uses the difference between the corrupted content and the original content, which is used to encode a correcting signal, the fixer data stream.
Because the content corruption 50 takes place prior to the content encoding (compression) 52, it forces the content encoder 52 to process content material for which it may not be well suited. Distorting the content prior to encoding thus may impact the degree of distortion that can be achieved as the content encoding module 52 may not be able to handle higher levels of distortion. Positioning the distortion process 50 prior to the compression module 52 also significantly increases the bandwidth of the encoded content and/or results in a lower quality encoding. In order to revert the distortion after the decoding, a correction signal needs to be provided. As the content encoder operates independently of the distortion process, the fixer data encoder module 54 produces a correction signal that restores the distorted content to the original content. As the content encoder 52 typically uses lossy compression techniques, applying the correction signal to the decoded content output can result in content output with noticeable quality degradations.
Methods and systems are disclosed herein for enhancing content security to obviate or mitigate at least some of the aforementioned disadvantages.
The present disclosure will be further understood from the following detailed description with reference to the drawings in which:
The disclosed embodiment applies the distortion on encoded data. Using the encoded data allows a content corruptor module to be combined in the encoding chain or in the decoding chain.
Conveniently, in order to remove the distortion the content player is split into two components between which a content fixer module is inserted to adapt the partially decoded content. These adaptations enable the second component to generate an undistorted content output.
The embodiment supports an efficient integration with existing content players and maintains the difficulty for an attacker to obtain an encoded content stream that decodes to an undistorted content output. As the embodiment modifies the encoding of the content, it can achieve high levels of distortion and still support distortion free content output from the content player. Modifications to the parameters in the encoded content also result in a more efficient coding of the content fixer data.
An advantage of the embodiment is that distortion can occur on the receiving device, thus the restrictions imposed by the transmition process are no longer relevant, thus allowing much higher levels of distortion to be added.
An advantage of the embodiment is that interdependence of corruption data can be added, for example each previous frame seeds the next RNG, which can prevent stream splicing. This would, for example, prevent republishing content with the advertisements removed.
The content corruptor component 60 includes a content parameter modifier module 62 that parses the data structures of the content, decodes some of these datastructures and modifies one or more parameters contained in the decoded data. A content encoder module 64 converts the modified datastructures into an efficiently coded datastructure and merges them with the remaining unmodified parts of the content to produce an encoded content stream or file as an output 66 of the content corrupter component 60. The produced content can be decodable by a standard decoder, but this would result in a distorted content output. The fixer data encoder module 68 in the content corruptor component 60 receives the modifications that have been made to the parameters in the decoded data and encodes them in a format that allows a content fixer module in the receiver to compensate for the modified parameters in the content.
The secured content 20 is generally stored in encrypted form. Hence the first step is to convert it into a cleartext format using the DRM decrypt component 22. In a software application, this can be implemented by a whitebox decryption module which outputs the content using an output transform to the content corruption module 110. The corruption could also be applied by the whitebox decryption module (i.e. it is the transform applied).
The content corruption module 110 processes the content and modifies the content encoding parameters introducing substantial distortions of the content. The modified content stream is output as a cleartext encoded content stream to an unsecured content player 10. The content corruptor 110 also generates the data needed to correct the changes made to these content encoding parameters. This results in a transformed correction signal output that is transmitted to the content fixer module 112.
The content player 10 that decodes the signal is not secured. Some decoding steps are augmented by a call to the content fixer module 112 to request changes for some of the decoded values used in the content player processing. The decoding requests can be placed after full decoding, or closer to a key decompression step, such as after Inverse Discrete Cosine Transform (IDCT) used in Video decompression. As these steps operate on (partly or fully) decoded content, it is difficult for an attacker to combine the two inputs of the content player 10 to generate the uncorrupted encoded content stream.
As the content is corrupted prior to the content player, it is possible to establish a unique distortion for every time that the secured content is being played. The content corruption module 110 may use a source of randomness to achieve a different distortion for different processing requests.
Many common video compression standards achieve compression by using the 2-dimensional Discrete Cosine Transform (DCT). Pixel-based video data is transformed using DCT into a frequency representation, which allows the codec to reduce the amount of information sent in frequencies that are not as important to our eyes. For instance, an 8 by 8 pixel block in MPEG2 would be converted using:
To improve security, the compressed block can have a transformation applied to it, and the corruption can be altered to work in the transformed space.
The DCT transform is a linear transform. This implies that the fixup required to reverse the corruption of one frequency is independent of the value of other frequencies. In addition, the fixup is proportional to the amount by which the frequency was changed. This allows for a very efficient fixup by using pre-calculated tables. For each frequency, a fixup table is calculated for a particular change. When a block is fixed up, for each frequency that was altered, a scaled version of the corresponding fixup table is added to the pixel block.
For video codecs, an accessible place to perform fixup is right after Inverse DCT as shown in
The process is optimal if the fixup happens before saturation. This allows the corruption to perform arbitrary changes without worrying if the resulting DCT representation remains within the normal range of pixel values. Otherwise, the corruption needs to be careful so that the resulted corrupted blocks do not overflow or underflow pixel values before they are fixed up.
If fixup happens after motion compensation, then the corruption needs to make sure not to affect blocks that take part in motion compensation. Alternatively, fixup needs to take into account the effects of motion compensation and undo them.
Fixup may be added after all decoding, but care must be taken so that post-processing effects, such as deblocking or smoothing, are taken into account.
DCT is just one type of corruption that can be performed. Other types of corruptions could be performed. For instance, motion vectors may be modified by the corruptor in a way that can be reversed in the pixel domain after motion compensation, such as reversing the frame and vectors, or offsetting them, or scaling. Quantization matrices could be altered so that the pixel data needs to be scaled. Reversible wavelet coefficients may be modified in a manner similar to DCT, taking into account overlap. Block order could also be altered so that blocks and their intra-block prediction need to be swapped.
It is possible to apply the corruptor module to the preparation of secured content as shown in
The advantage of this variant is that the secured content corruptor module 170 is not needed in the processing of the secured content 174 as shown in
The decryption module 182 decrypts both the content stream and the parameter stream to correct the encoding parameters upon request of the content player 12. As the content corruption is done at the creation of the secured content, the content corruption is fixed.
Another possible variant is to combine a corrupted content with a further corruption step in the content rendering process.
Numerous modifications, variations and adaptations may be made to the particular embodiments described above without departing from the scope patent disclosure, which is defined in the claims.
This application is the National Stage of International Patent Application No. PCT/CA2011/001003, filed Sep. 7, 2011, the disclosure of which is hereby incorporated by reference in its entirety.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CA2011/001003 | 9/7/2011 | WO | 00 | 11/12/2014 |