System and method for activating individualized software modules in a digital broadcast environment
First Claim
Patent Images
1. A method for providing selective use of locked software modules on a receiver comprising:
- decrypting an encrypted certificate stored on a storage medium;
using part of the decrypted certificate to initialize the locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules;
receiving a request for the use of a specific locked software module;
checking the code enabled flag corresponding to the specific locked software module to see if can be used;
if the flag indicates use is allowed, using the specific locked software module; and
checking the integrity of the certificate, wherein checking the certificate integrity comprises;
applying a hash function to at least a portion of the certificate and a hash string; and
comparing the result to a hash result stored in the certificate.
6 Assignments
0 Petitions
Accused Products
Abstract
A system and method is disclosed for enabling individualized software functions in a device. In accordance with one embodiment of the present invention software is distributed as omnibus installations containing various software modules that are initially turned off. The user gains access to the turned off modules by requesting a certificate from a system provider. The system provider creates and transmits a certificate containing the information required to enable the desired module. The device can then use the certificate to access the desired software.
-
Citations
36 Claims
-
1. A method for providing selective use of locked software modules on a receiver comprising:
-
decrypting an encrypted certificate stored on a storage medium; using part of the decrypted certificate to initialize the locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; receiving a request for the use of a specific locked software module; checking the code enabled flag corresponding to the specific locked software module to see if can be used; if the flag indicates use is allowed, using the specific locked software module; and checking the integrity of the certificate, wherein checking the certificate integrity comprises; applying a hash function to at least a portion of the certificate and a hash string; and comparing the result to a hash result stored in the certificate. - View Dependent Claims (2)
-
-
3. A method for obtaining enhanced software capabilities comprising:
-
transmitting a features request and a receiver ID from a first device to a system provider; the system provider; receiving the features request and the receiver ID at the system provider; generating a certificate to enable the requested features; retrieving a secret key associated with the receiver ID; encrypting at least part of the certificate using the secret key; transmitting the encrypted certificate; applying a hash function to at least a portion of the certificate and a hash string; and incorporating the result in to the certificate; receiving the encrypted certificate at the first device; decrypting the encrypted certificate using a secret key stored at the first device; applying the hash function to the same portion of the certificate and a locally stored copy of the hash string; and comparing its result to the result stored in the certificate. - View Dependent Claims (4, 5)
-
-
6. A method for enhancing software capabilities on a receiver comprising:
-
receiving a features request and a receiver ID; generating a certificate to enable the requested features; retrieving a key associated with the receiver ID; encrypting at least part of the certificate using the key; and transmitting the encrypted certificate; wherein the receiver decrypts the encrypted certificate; wherein the receiver uses part of the decrypted certificate to initialize any locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; wherein the receiver receives a request for the use of a specific locked software module; wherein the receiver checks the code enabled flag corresponding to the specific locked software capability to see if can be used; and wherein, if the flag indicates use is allowed, the receiver uses the specific locked software capability.
-
-
7. A method for obtaining enhanced software capabilities comprising:
-
transmitting a features request and a receiver ID from a first device to a system provider; receiving an encrypted certificate at the first device; decrypting the encrypted certificate using a secret key stored at the first device; using part of the decrypted certificate to initialize any locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; receiving a request for the use of a specific locked software module; checking the code enabled flag corresponding to the specific locked software capability to see if can be used; and if the flag indicates use is allowed, using the specific locked software capability. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. An apparatus capable of providing individualized software functions comprising:
-
means for interfacing with a user; means for generating a receiver identification code; means for transmitting a new function request, including the receiver identification code; means for receiving a certificate; means for decrypting the certificate; means for using part of the decrypted certificate to initialize any locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; means for receiving a request for the use of a specific locked software module; means for checking the code enabled flaa corresponding to the specific locked software capability to see if can be used; and means for using, if the flag indicates use is allowed, the specific locked software capability. - View Dependent Claims (16, 17)
-
-
18. An apparatus capable of providing individualized software functions comprising:
-
means for interfacing with a user; means for generating a receiver identification code; means for encrypting the receiver identification code; means for transmitting a new function request, including the receiver identification code; means for receiving a certificate; means for authenticating the certificate; means for decrypting the certificate; means for using part of the decrypted certificate to initialize any locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; means for receiving a request for the use of a specific locked software module; means for checking the code enabled flag corresponding to the specific locked software capability to see if can be used; and means for using, if the flag indicates use is allowed, the specific locked software capability.
-
-
19. An apparatus, comprising:
-
a memory having program code stored therein; and a processor disposed in communication with the memory for carrying out instructions in accordance with the stored program code; wherein the program code, when executed by the processor, causes the processor to perform; decrypting an encrypted certificate stored on a storage medium; using part of the decrypted certificate to initialize the locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; receiving a request for the use of a specific locked software module; checking the code enabled flag corresponding to the specific locked software module to see if can be used; if the flag indicates use is allowed, using the specific locked software module; and checking the integrity of the certificate, wherein checking the certificate integrity comprises; applying a hash function to at least a portion of the certificate and a hash string; and comparing the result to a hash result stored in the certificate. - View Dependent Claims (20, 21)
-
-
22. An apparatus, comprising:
-
a memory having program code stored therein; and a processor disposed in communication with the memory for carrying out instructions in accordance with the stored program code; wherein the program code, when executed by the processor, causes the processor to perform; receiving a features request and a receiver ID; generating a certificate to enable the requested features; retrieving a key associated with the receiver ID; encrypting at least part of the certificate using the key; and transmitting the encrypted certificate, wherein the receiver decrypts the encrypted certificate, wherein the receiver uses Dart of the decrypted certificate to initialize any locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; wherein the receiver receives a recquest for the use of a specific locked software module; wherein the receiver checks the code enabled flag corresponding to the specific locked software capability to see if can be used; and wherein, if the flag indicates use is allowed, the receiver uses the specific locked software capability.
-
-
23. An apparatus, comprising:
-
a memory having program code stored therein; and a processor disposed in communication with the memory for carrying out instructions in accordance with the stored program code; wherein the program code, when executed by the processor, causes the processor to perform; transmitting a features request and a receiver ID from the apparatus to a system provider; receiving an encrypted certificate at the apparatus; decrypting the encrypted certificate using a secret key stored at the apparatus; using part of the decrypted certificate to initialize any locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; receiving a request for the use of a specific locked software module; checking the code enabled flag corresponding to the specific locked software capability to see if can be used; and if the flag indicates use is allowed, using the specific locked software capability. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A system, comprising:
-
a device disposed in communication with a system provider, wherein the system provider is configured to; receive a features request and a receiver ID; generate a certificate to enable the requested features; retrieve a secret key associated with the receiver ID; encrypt at least part of the certificate using the secret key; and transmit the encrypted certificate; apply a hash function to at least a portion of the certificate and a hash string; and incorporate the result in to the certificate; and wherein the device is configured to; transmit the features request and the receiver ID to the system provider; receive the encrypted certificate; decrypt the encrypted certificate using a stored secret key; apply the hash function to the same portion of the certificate and a locally stored copy of the hash string; and compare its result to the result stored in the certificate. - View Dependent Claims (33, 34)
-
-
35. An article of manufacture comprising a computer readable medium containing program code that when executed causes an apparatus to perform:
-
decrypting an encrypted certificate stored on a storage medium; using part of the decrypted certificate to initialize the locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; receiving a request for the use of a specific locked software module;
checking the code enabled flag corresponding to the specific locked software module to see if can be used;if the flag indicates use is allowed, using the specific locked software module and checking the integrity of the certificate, wherein checking the certificate integrity comprises; applying a hash function to at least a portion of the certificate and a hash string; and comparing the result to a hash result stored in the certificate.
-
-
36. An article of manufacture comprising a computer readable medium containing program code that when executed causes an apparatus to perform:
-
transmitting a features request and a receiver ID from the apparatus to a system provider; receiving an encrypted certificate at the apparatus; decrypting the encrypted certificate using a secret key stored at the apparatus; using part of the decrypted certificate to initialize any locked software modules indicated by the certificate, including setting a code enabled flag corresponding to the enabled modules; receiving a request for the use of a specific locked software module; checking the code enabled flag corresponding to the specific locked software capability to see if can be used; and if the flag indicates use is allowed, using the specific locked software capability.
-
Specification