Secure software updates
US-2018302385-A1 · Oct 18, 2018 · US
US11178121B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11178121-B2 |
| Application number | US-201916579699-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 23, 2019 |
| Priority date | Jul 26, 2005 |
| Publication date | Nov 16, 2021 |
| Grant date | Nov 16, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
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.
Opening claim text (preview).
What is claimed is: 1. A method for updating software modules installed on client devices, the method comprising, at a client device: transmitting, to a first server device, a current version identifier for a software module installed on the client device; receiving an encrypted updated software module from a second server device that is communicatively coupled to and distinct from the first server device, wherein: the client device and the first server device communicate over a first data link, the client device and the second server device communicate over a second data link that is distinct from the first data link, and the encrypted updated software module is encrypted using a public encryption key that is unique to the client device; decrypting the encrypted updated software module using a private encryption key to produce a decrypted updated software module, wherein the private encryption key is a counterpart to the public encryption key; and installing the decrypted updated software module. 2. The method of claim 1 , wherein, when the first server device determines, based on the current version identifier for the software module, that an updated software module is available, the first server device issues a request to the second server device to provide the updated software module to the client device. 3. The method of claim 1 , wherein the first server device manages a plurality of current version identifiers for respective current versions of software modules installed on a plurality of client devices. 4. The method of claim 3 , wherein the plurality of current version identifiers includes the current version identifier, and the plurality of client devices includes the client device. 5. The method of claim 1 , wherein: the first server device and the second server device communicate over a third data link, and the first, second, and third data links are distinct from one another. 6. The method of claim 1 , further comprising: providing, to the first server device, the public encryption key, wherein the first server device provides the public encryption key to the second server device. 7. The method of claim 1 , further comprising, prior to installing the decrypted updated software module: authenticating a digital signature associated with the decrypted updated software module. 8. At least one non-transitory computer readable storage medium configured to store instructions that, when executed by at least one processor included in a client device, cause the client device to carry out steps that include: transmitting, to a first server device, a current version identifier for a software module installed on the client device; receiving an encrypted updated software module from a second server device that is communicatively coupled to and distinct from the first server device, wherein: the client device and the first server device communicate over a first data link, the client device and the second server device communicate over a second data link that is distinct from the first data link, and the encrypted updated software module is encrypted using a public encryption key that is unique to the client device; decrypting the encrypted updated software module using a private encryption key to produce a decrypted updated software module, wherein the private encryption key is a counterpart to the public encryption key; and installing the decrypted updated software module. 9. The at least one non-transitory computer readable storage medium of claim 8 , wherein, when the first server device determines, based on the current version identifier for the software module, that an updated software module is available, the first server device issues a request to the second server device to provide the updated software module to the client device. 10. The at least one non-transitory computer readable storage medium of claim 8 , wherein the first server device manages a plurality of current version identifiers for respective current versions of software modules installed on a plurality of client devices. 11. The at least one non-transitory computer readable storage medium of claim 10 , wherein the plurality of current version identifiers includes the current version identifier, and the plurality of client devices includes the client device. 12. The at least one non-transitory computer readable storage medium of claim 8 , wherein: the first server device and the second server device communicate over a third data link, and the first, second, and third data links are distinct from one another. 13. The at least one non-transitory computer readable storage medium of claim 8 , wherein the steps further include: providing, to the first server device, the public encryption key, wherein the first server device provides the public encryption key to the second server device. 14. The at least one non-transitory computer readable storage medium of claim 8 , wherein the steps further include, prior to installing the decrypted updated software module: authenticating a digital signature associated with the decrypted updated software module. 15. A client device, comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the client device to perform steps that include: transmitting, to a first server device, a current version identifier for a software module installed on the client device; receiving an encrypted updated software module from a second server device that is communicatively coupled to and distinct from the first server device, wherein: the client device and the first server device communicate over a first data link, the client device and the second server device communicate over a second data link that is distinct from the first data link, and the encrypted updated software module is encrypted using a public encryption key that is unique to the client device; decrypting the encrypted updated software module using a private encryption key to produce a decrypted updated software module, wherein the private encryption key is a counterpart to the public encryption key; and installing the decrypted updated software module. 16. The client device of claim 15 , wherein, when the first server device determines, based on the current version identifier for the software module, that an updated software module is available, the first server device issues a request to the second server device to provide the updated software module to the client device. 17. The client device of claim 15 , wherein the first server device manages a plurality of current version identifiers for respective current versions of software modules installed on a plurality of client devices. 18. The client device of claim 17 , wherein the plurality of current version identifiers includes the current version identifier, and the plurality of client devices includes the client device. 19. The client device of claim 15 , wherein: the first server device and the second server device communicate over a third data link, and the first, second, and third data links are distinct from one another. 20. The client device of claim 15 , wherein the at least one processor further causes the client device to perform steps that include: providing, to the first server device, the public encryption key, wherein the first server device provides the public encryption key to the second server device.
File encryption · CPC title
involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416) · CPC title
for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838) · CPC title
wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for symmetric key encryption H04L9/06) · CPC title
by binding digital rights to specific entities · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.