The present invention relates generally to digital content delivery systems, and more particularly to an apparatus and a method for receiving and decoding video signals.
In normal operation, digital content is received using input 40. Input 40 may take the form of a satellite receiver, Internet Protocol (IP) receiver or digital cable television receiver, for example. The received content is decoded using decoder 50 responsively to processor 20 executing software instructions accessed via memory bus 25. Power-up and reset circuitry 60 is used to operate, boot and/or re-boot architecture 10 in a conventional manner. Such an architecture is well understood to those possessing an ordinary skill in the pertinent arts.
One drawback of architecture 10 of
Accordingly, it is desirable to provide a method and apparatus that can detect whether hackers or pirates have replaced a set-top box's core software with their own or modified software, and prevent or impede operation of the apparatus when hacking is detected in order to prevent unauthorized capture or viewing of digital content.
A video processing apparatus, including: power-up circuitry; an input for receiving encoded video signals; a memory having stored therein processing instructions for processing the encoded video signals to provide an output signal; a decoder, coupled to the input, for processing the received encoded video signals in accordance with the processing instructions; a first controller, coupled to the memory and decoder, for controlling operation of the decoder to process the encoded video signals in accordance with the processing instructions; and a second controller, coupled to the first controller, memory and power up circuitry, wherein, the second controller in response to a start up procedure restricts operation of the first controller and validates the processing instructions, and upon validation of the processing instructions un-restricts operation of the first controller thereby allowing the controller to read the processing instructions from the memory.
Understanding of the present invention will be facilitated by consideration of the following detailed description of the preferred embodiments of the present invention taken in conjunction with the accompanying drawings, in which like numerals refer to like parts and in which:
It is to be understood that the figures and descriptions of the present invention have been simplified to illustrate elements that are relevant for a clear understanding of the present invention, while eliminating, for purposes of clarity, many other elements found in typical decoding methods and systems. However, because such elements are well known in the art, a discussion of such elements is not provided herein. The disclosure herein is directed to all such variations and modifications known to those skilled in the art.
In one embodiment of the present invention, when a digital set-top box is booted or re-booted, a secure processor performs a start-up validation procedure for restricting operation of the set-top box main processor. In one configuration, the secure processor performs this function by activating a reset input of the main processor. The secure processor performs validation of software contained in memory to verify the software has not been modified. The software may control the operation of the main processor and/or the decoder. Upon validation, the secure processor releases the reset input of the main processor—thereby freeing the main processor to begin or resume normal boot or startup operations. In this manner the apparatus according to the present invention verifies the integrity of the software before the software is loaded into the main processor.
In operation, secure processor 110 controls, or restricts, the processor 20 boot-up process via the reset input 130. Before processor 20 is permitted to boot-up, secure processor 110 validates the on-board software, e.g., software stored in memory 30 and/or 35, to ensure that it has not been tampered with or replaced. Secure processor 110 can provide other secure features as well, such as decrypting on-board software and/or received digital content, and managing and storing content related keys, for example. Additionally, if a hacker removes or otherwise disables secure processor 110, then the secure processor 110 memory 120 stored keys are no longer available to decrypt, descramble or otherwise access digital content received via input 40.
In one embodiment of the invention, secure processor 110 may take the form of part no. AT97SC3201, which is a commercially available integrated circuit (IC) from Atmel Corporation of San Jose, Calif.
Referring still to
Referring now also to
In one embodiment, secure processor 110 compares the checksum within the non-volatile memory 30, e.g., bootROM, against a checksum internally stored, e.g., in memory 120 at step 330. By way of non-limiting example, a checksum may be generated by adding up the basic components of data, typically the asserted bits, and storing the resulting value. The authentic checksum may be stored in memory 120. Secure processor 120 may independently calculate the checksum and compare the result to the authentic checksum to conclude that the code was not altered or replaced.
At step 340 secure processor 110 compares the boot sector of the non-volatile memory 30, e.g., bootROM, against a boot sector internally stored, e.g., in memory 120. By way of further non-limiting explanation, a boot sector is a sector of a memory that contains code for bootstrapping, or booting, programs.
If the compare results for each of process blocks 330, 340 yield a proper match (e.g. no discrepancies between the compared results exist), the architecture 100 is validated at step 350. If validated, processing proceeds to step 2. If not validated, then the architecture is rebooted, which will re-initiate step 1. Processor executable code, e.g., software, for accomplishing steps 320, 330, 340, 350 may be stored in memory 120.
By way of further non-limiting example only, the validation may be based upon public key, or asymmetric key cryptography. Public key cryptography is a form of cryptography which generally allows users to communicate securely without having prior access to a shared secret key. This may be accomplished by using a pair of cryptographic keys, designated as a public key and private key, which are related mathematically. In public key cryptography, the private key is kept secret, while the public key may be widely distributed. Generally, it is not feasible to deduce the private key of a pair given the public key. For example, a private key may be embedded within memory 120 of secure processor 110. At least a portion of the software to be validated may be encrypted and stored in memory 30/35 using a corresponding public key, such that secure processor 110 may decrypt and validate it. Alternatively, a symmetric key may be used.
Alternatively, or in addition thereto, processor 110 may check for watermarks on or in code stored in memory 30 and/or 35 to validate architecture 100. Digital watermarking is a technique which allows for hidden verification data to be inserted into underlying data. Such hidden verification data may take the form of a predetermined group of bits. In such an embodiment, a digital watermark may be embedded in the software to be validated in a conventional manner, such that secure processor 110 may later confirm the presence of the watermark and validate the software.
Referring now also to
Referring now also to
Upon completion of these steps, architecture 100 has successfully performed a secure boot as well as decrypted (securely) one or more keys for security usage, e.g., to-access digital-content received via-input 40. This approach minimizes hacking and malicious spoofing.
Additional steps can be taken to further increase the secure nature of the boot process and handling of keys, however these three steps form the basis of the overall approach. Such additional processing may include sampling select portions of software stored in memory 30/35, and storing data indicative of the samples in memory 120, such that secure processor 110 may later re-sample and validate the stored software. Similarly, function pointers may be validated and/or a checksum of portions, or all, of the software image may be compared, for example.
It will be apparent to those skilled in the art that modifications and variations may be made in the apparatus and process of the present invention without departing from the spirit or scope of the invention. It is intended that the present invention cover the modification and variations of this invention provided they come within the scope of the appended claims and their equivalents.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2006/024039 | 6/22/2006 | WO | 00 | 5/7/2008 |
Number | Date | Country | |
---|---|---|---|
60740463 | Nov 2005 | US |