Secure software updates

US2018302385A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2018302385-A1
Application numberUS-201815914999-A
CountryUS
Kind codeA1
Filing dateMar 7, 2018
Priority dateJul 26, 2005
Publication dateOct 18, 2018
Grant date

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).

1 . A method for updating software modules installed on electronic devices, the method comprising, at a computing device: storing a latest version identifier for a latest version of a software module stored on a server device; establishing a connection with an electronic device; comparing the latest version identifier to a current version identifier for the software module installed on the electronic device to determine whether the software module installed on the electronic device can be updated; and in response to determining that the software module installed on the electronic device can be updated: transmitting, to the server device, a request for the latest version of the software module stored on the server device, receiving the latest version of the software module from the server device, wherein the latest version of the software module is encrypted using a unique encryption key associated with the electronic device, and providing the latest version of the software module to the electronic device for installation at the electronic device. 2 . The method of claim 1 , wherein the unique encryption key is a counterpart of a private key that is used by the electronic device to decrypt the latest version of the software module. 3 . The method of claim 2 , wherein the private key is stored at the electronic device. 4 . The method of claim 1 , wherein the computing device and the server device communicate using a first data link, and the electronic device and the computing device communicate using a second data link that is distinct from the first data link. 5 . The method of claim 4 , wherein the second data link is at least one of a wired connection or a wireless communication protocol. 6 . The method of claim 1 , wherein the request for the latest version of the software module stored on the server device includes: (i) the latest version identifier, and (ii) the unique encryption key. 7 . The method of claim 1 , wherein the latest version identifier and the current version identifier are included in a list that is maintained by the computing device, and the list includes a second current version identifier for the software module installed on a second electronic device that is distinct from the electronic device. 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 computing device, cause the computing device to update software modules installed on electronic devices, by carrying out steps that include: storing a latest version identifier for a latest version of a software module stored on a server device; establishing a connection with an electronic device; comparing the latest version identifier to a current version identifier for the software module installed on the electronic device to determine whether the software module installed on the electronic device can be updated; and in response to determining that the software module installed on the electronic device can be updated: transmitting, to the server device, a request for the latest version of the software module stored on the server device, receiving the latest version of the software module from the server device, wherein the latest version of the software module is encrypted using a unique encryption key associated with the computing device, and providing the latest version of the software module to the electronic device for installation at the electronic device. 9 . The at least one non-transitory computer readable storage medium of claim 8 , wherein the unique encryption key is a symmetric encryption key. 10 . The at least one non-transitory computer readable storage medium of claim 9 , wherein the symmetric encryption key is known to both the computing device and the electronic device. 11 . The at least one non-transitory computer readable storage medium of claim 8 , wherein the computing device and the server device communicate using a first data link, and the electronic device and the computing device communicate using a second data link that is distinct from the first data link. 12 . The at least one non-transitory computer readable storage medium of claim 11 , wherein the second data link is at least one of a wired connection or a wireless communication protocol. 13 . The at least one non-transitory computer readable storage medium of claim 8 , wherein the request for the latest version of the software module stored on the server device includes (i) the latest version identifier. 14 . The at least one non-transitory computer readable storage medium of claim 8 , wherein the latest version identifier and the current version identifier are included in a list that is maintained by the computing device, and the list includes a second current version identifier for the software module installed on a second electronic device that is distinct from the electronic device. 15 . A computing device configured to update software modules installed on electronic devices, the computing device comprising: at least one processor; and at least one memory storing instructions that, when executed by the at least one processor, cause the computing device to: store a latest version identifier for a latest version of a software module stored on a server device; establish a connection with an electronic device; compare the latest version identifier to a current version identifier for the software module installed on the electronic device to determine whether the software module installed on the electronic device can be updated; and in response to determining that the software module installed on the electronic device can be updated: transmit, to the server device, a request for the latest version of the software module stored on the server device, receive the latest version of the software module from the server device, wherein the latest version of the software module is encrypted using a unique encryption key associated with the electronic device, and provide the latest version of the software module to the electronic device for installation at the electronic device. 16 . The computing device of claim 15 , wherein the unique encryption key is a counterpart of a private key that is used by the electronic device to decrypt the latest version of the software module. 17 . The computing device of claim 16 , wherein the private key is stored at the electronic device. 18 . The computing device of claim 15 , wherein the computing device and the server device communicate using a first data link, and the electronic device and the computing device communicate using a second data link that is distinct from the first data link. 19 . The computing device of claim 15 , wherein the request for the latest version of the software module stored on the server device includes: (i) the latest version identifier, and (ii) the unique encryption key. 20 . The computing device of claim 15 , wherein the latest version identifier and the current version identifier are included in a list that is maintained by the computing device, and the list includes a second current version identifier for the software module installed on a second electronic device that is distinct from the electronic 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

  • 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

  • for key exchange, e.g. in peer-to-peer networks (cryptographic mechanisms or cryptographic arrangements for key agreement H04L9/0838) · CPC title

  • Physics · mapped topic

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 US2018302385A1 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 Thu Oct 18 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).