This invention relates in general to firmware or software validation and in particular validation of firmware or software used for accessing media content.
One popular method for gaining unauthorized access to media content delivered through the internet is to replace the firmware or software in devices used for accessing the content through the internet, such as that in cable modems. This may be typically done by finding development/diagnostic back-doors or replacing/reprogramming non-volatile memory chips that store the firmware or software image. While secure methods of downloading the firmware, such as those from multi-system operators (“MSOs”), are available for remote provisioning, the integrity of the firmware or software usually is not checked after the installation. It is then possible for hackers to replace the firmware installed with unauthorized code, thereby enabling the hacker to steal cable service or other types of media service.
Other types of media content delivery systems may face the same threat. For example, hackers may also be able to replace the firmware or software in devices used for accessing media content from internet protocol television (IPTV) systems, or still other types of media delivery systems. It is therefore desirable to provide a solution whereby such fraudulent access can be prevented or reduced.
According to one embodiment of the invention, the value of a fingerprint of the firmware or software in a client device is received, and the validity of the fingerprint is verified. Where access of the client device to a network is controlled by a network access control device, the network access control device is notified when the fingerprint of the firmware or software from the client device is determined to be not authorized.
In another embodiment of the invention, a client device provides the value of a fingerprint of the firmware or software to a requester. Preferably, the value of the fingerprint is provided using a hash algorithm.
In yet another embodiment of the invention, a system for validating firmware or software at a client device accessing a network comprises a validation server. The validation server includes a fingerprint database for verifying whether a fingerprint of the firmware or software of the client device is authorized. The system further includes a network access control device. When the validation server determines that the fingerprint of the client device is not authorized, the validation server will send a message to the network access control device. The network access control device controls access to the network by the client device in response to the message from the validation server.
The above features may be used individually or in combination.
All patents, patent applications, articles, books, specifications, other publications, documents and things referenced herein are hereby incorporated herein by this reference in their entirety for all purposes. To the extent of any inconsistency or conflict in the definition or use of a term between any of the incorporated publications, documents or things and the text of the present document, the definition or use of the term in the present document shall prevail.
For simplicity in description, identical components are labeled by the same numerals in this application.
In reference to
In one embodiment, FVS 16 sends a request to client device 12 for a client certificate and fingerprint of the firmware/software as indicated by arrow 24. Alternatively, client device 12 may send client certificate and fingerprint of the firmware/software periodically to FVS 16, without being requested by FVS 16. FVS 16 contains a database 16′ of approved fingerprints. The approved fingerprints may be first obtained from the network owner or operator. Where the network is owned or operated by a MSO, the MSO may work with vendors to obtain these approved fingerprint values or can obtain them during pre-deployment testing of cable modems, using hashing functions to convert an image of legitimate firmware/software to fingerprint values, for example. As described in more detail below, a nonce value may preferably be used to reduce the likelihood or replay attacks in some embodiments. Where a nonce value is used, FVS 16 then validates the certificate of the client device received from the client device, checks the digital signature, checks the updated nonce value and also checks the fingerprint value received from the client device against the approved fingerprint values in the database 16′. If the certificate of the client device is not a valid certificate, the updated nonce is not the expect value, or the fingerprint received from the client device does not match any one of the approved fingerprint values in the database 16′, FVS 16 will notify the network access client device 14 so that device 14 can choose to block the client device 12 from accessing the media content on the network.
Where the media content is provided by IPTV, a database 16′ may contain valid firmware or software fingerprint values that are allowed on the IPTV network. Media content is provided on the IPTV network by an IPTV operator. FVS 16 may then periodically check the firmware fingerprint values of client devices that are online. In this embodiment, the FVS 16 may send periodic requests to client devices that have current access to the network. Alternatively, the protocol of the network can be such that client devices are required to send to the FVS 16 periodically, their certificates and the fingerprint values of the software/firmware therein. A nonce value may also be preferably used to reduce the likelihood of replay attacks on the IPTV network in some embodiments.
The process carried out by FVS 16 for validating the client device 12 is illustrated in more detail in
If the client certificate is not authentic, the updated nonce is not the expected value, or if the device firmware or software fingerprint value is not valid, FVS 16 will notify the network access control device 14 so that access of the client device to the network can be blocked (Diamond 36, Block 38). In either case, FVS 16 then proceeds to obtain the firmware/software fingerprint value from the next client device on the network and repeats this checking process in Block 34 until it has checked the client certificates and firmware or software fingerprint values of all client devices on the network (Block 40). Client device 12 obtains the firmware/software fingerprint value 62 by means of a hashing function 66 operating on the firmware/software 64 as shown in
To prevent or reduce the chances of replay attacks, preferably FVS 16 sends a nonce along with its request for a certificate and fingerprint value to client device 12 indicated by arrow 24. Client device 12 provides an updated value of the nonce to FVS 16 in response thereto.
As shown in
FVS 16 first checks the authenticity of the client certificate 84, using the CA public key in its possession. If the client certificate 84 is not authentic, FVS will notify network access control device 14. In one embodiment, FVS 16 has access to a digital signature validation algorithm that is used to verify the digital signature sent by the client device. If the client certificate 84 has been verified to be authentic, FVS 16 then checks whether the digital signature is valid. If the digital signature is valid, FVS 16 then checks if the updated nonce value is correct. If the updated nonce value is correct the FVS 16 checks if the fingerprint received from the client device matches a fingerprint in the approved database. If there is a match the firmware or software 64 running on the client device is considered valid.
As noted above, where FVS 16 determines that the fingerprint value 62 of firmware or software 64 of client device 12 is not on the approved list of fingerprint values, it then notifies the network access control device 14, such as by sending a “Block client” message as indicated by arrow 30. Client device 14 may then take appropriate action, including the action of blocking access to the network by the client device 12.
Alternatively, where no client certificate 84 is checked by FVS 16 for authenticity, there is no need for device 12 to send any certificate or digital signature to FVS 16, and the FVS 16 will simply compare the fingerprint 62 to the approved fingerprints in database 16′ to determine whether firmware or software 64 is genuine or fraudulent.
While the invention has been described above by reference to various embodiments, it will be understood that changes and modifications may be made without departing from the scope of the invention, which is to be defined only by the appended claims and their equivalents.