Secure software updates

US11178121B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11178121-B2
Application numberUS-201916579699-A
CountryUS
Kind codeB2
Filing dateSep 23, 2019
Priority dateJul 26, 2005
Publication dateNov 16, 2021
Grant dateNov 16, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • 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

  • G06F21/101Primary

    by binding digital rights to specific entities · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11178121B2 cover?
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. I…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification H04L63/0435. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 16 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).