Secure software updates
First Claim
Patent Images
1. A method for upgrading software on an electronic device associated with a client device, the method comprising:
- sending, from the client device, device information, to a host device via a first data link, wherein the device information includes a software version indicator, and the software version indicator corresponds to a first version of a software module on the electronic device;
receiving, from the host device, a second version of the software module that is more current than the first version of the software module; and
sending, from the client device and through a second data link that is different than the first data link, the second version of the software module to the electronic device.
2 Assignments
0 Petitions
Accused Products
Abstract
Improved techniques to update software in electronic devices that are already in use are disclosed. In one embodiment, software can be updated in a secure and controlled manner using cryptography. The authenticity of the updated software as well as its appropriateness for the particular electronic device can be confirmed prior to update. The software can also be updated on a per module basis. In one embodiment, a server hosts software updates for various electronic devices, and supplies the appropriate software update to the electronic devices via a data network.
54 Citations
31 Claims
-
1. A method for upgrading software on an electronic device associated with a client device, the method comprising:
-
sending, from the client device, device information, to a host device via a first data link, wherein the device information includes a software version indicator, and the software version indicator corresponds to a first version of a software module on the electronic device; receiving, from the host device, a second version of the software module that is more current than the first version of the software module; and sending, from the client device and through a second data link that is different than the first data link, the second version of the software module to the electronic device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing device, comprising:
-
a processor; and a memory configured to store instructions that when executed by the processor cause the computing device to perform steps that include; sending device information to a host device via a first data link, the device information including a current software version indicator, wherein the current software version indicator corresponds to a first version of a software module stored on an electronic device associated with the computing device; receiving, from the host device via the first data link, a second version of the software module; and sending, through a second data link that is different than the first data link, the second version of the software module to the electronic device. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium configured to store instructions that, when executed by a processor of a computing device, cause the computing device to perform steps that include:
-
sending, from the computing device, device information, to a host device via a first data link, wherein the device information includes a current software version indicator and the current software version indicator corresponds to a first version of a software module on an electronic device associated with the computing device; and sending, through a second data link that is different than the first data link, a second version of the software module to the electronic device. - View Dependent Claims (16, 17)
-
-
18. A method for upgrading a software module on a portable electronic device, the method comprising:
-
by a server device; storing a first version of the software module and a second version of the software module, wherein the second version of the software module corresponds to a most current version of the software module; receiving, from a client device associated with the portable electronic device, device information that includes a public cryptographic key and a current software version indicator that identifies a version of the software module associated with the portable electronic device; and when the version of the software module associated with the portable electronic device corresponds to the first version of the software module; encrypting the second version of the software module using the public cryptographic key provided by the client device, and transmitting the encrypted second version of the software module to the client device. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A non-transitory computer readable medium configured to store instructions that, when executed by a processor of a computing device, cause the computing device to perform steps that include:
-
storing a first version of a software module and a second version of the software module, wherein the second version of the software module corresponds to a most current version of the software module; receiving, from a client device, device information that includes a cryptographic key and a current software version indicator that identifies a version of the software module associated with the client device; and when the version of the software module associated with the client device corresponds to the first version of the software module; encrypting the second version of the software module using the cryptographic key provided by the client device, and transmitting the encrypted second version of the software module to the client device. - View Dependent Claims (31)
-
-
26. A computing device comprising:
-
a processor; and a memory configured to store instructions that when executed by the processor cause the computing device to perform steps that include; storing a first version of a software module and a second version of the software module, wherein the second version of the software module corresponds to a most current version of the software module; receiving, from a client device, device information that includes a cryptographic key and a current software version indicator that identifies a version of the software module associated with the client device; and when the version of the software module associated with the client device corresponds to the first version of the software module; encrypting the second version of the software module using the cryptographic key, and transmitting the encrypted second version of the software module to the client device. - View Dependent Claims (27)
-
-
28. A network-based software update system, the system comprising:
-
a server device configured to perform steps that include; storing a first version of a software module and a second version of the software module, wherein the second version of the software module corresponds to a most current version of the software module, and receiving, via a first data link, device information that includes a cryptographic key and a current software version indicator that identifies a version of the software module; and a client device configured to perform steps that include; receiving, from the server device via the first data link, the second version of the software module encrypted with the cryptographic key, and sending, to an electronic device and through a second data link that is different than the first data link, the second version of the software module. - View Dependent Claims (29, 30)
-
Specification