WO2000058830A1 - System for secure controlled electronic memory updates via networks - Google Patents

System for secure controlled electronic memory updates via networks Download PDF

Info

Publication number
WO2000058830A1
WO2000058830A1 PCT/US2000/004967 US0004967W WO0058830A1 WO 2000058830 A1 WO2000058830 A1 WO 2000058830A1 US 0004967 W US0004967 W US 0004967W WO 0058830 A1 WO0058830 A1 WO 0058830A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
network
remote
card
remote unit
Prior art date
Application number
PCT/US2000/004967
Other languages
French (fr)
Inventor
Anthony Dean Walker
John S. Petty
Original Assignee
Ericsson Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Inc. filed Critical Ericsson Inc.
Priority to AU37084/00A priority Critical patent/AU3708400A/en
Publication of WO2000058830A1 publication Critical patent/WO2000058830A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response

Definitions

  • the present invention relates to a system for updating electronic memory over a network. More specifically, the present invention relates to a system for updating the electronic memory of a mobile unit using a secured procedure thereby preventing tampering with sensitive information.
  • a remote or mobile unit may need to have its software/firmware updated because of defects in the software or the addition of new features for the software/firmware.
  • Such remote units may be cellular telephones, PC cards, and the like. These remote units may have various computer programs that enable the remote unit to function properly.
  • Current solutions to updating remote units force the user of the remote unit to choose between physically transporting the remote unit to a service center, or updating the system over a network without proper security features to prohibit tampering with sensitive information that may be contained in the remote unit or from the provider of the update program.
  • the owner or user of the remote unit may only have one choice to update the program of the remote unit, that being to physically transport the remote unit to a service center for updating of the computer program.
  • the choice of updating the computer program over a network in an unsecured procedure would be prohibited by governmental regulations in order to prevent cellular telephone fraud.
  • a remote unit In current network updating procedures, a remote unit will be connected to a network such as the Internet, and access a server that contains the new update program. The server will transfer the new update program to the remote unit, and the program will be implemented into the remote unit.
  • a problem occurs when the remote unit has been cloned thereby allowing the cloned cellular telephone or other remote unit to have access to the new updated program furthering the cellular telephone fraud .
  • Cellular telephones or other remote units are cloned by getting access to their computer programs. The perpetrators of the fraud acquire valid mobile identification numbers (MIN) and valid electronic serial numbers (ESN) through interception of these numbers over the cellular air waves. These valid MIN/ESN pairs are used to reprogram a remote unit such as a cellular telephone. It is such fraud that current government regulations seek to prevent by requiring programming and reprogramming of remote units such as cellular telephones at an authorized service center, thereby necessitating the physical transport of the remote unit to such service center.
  • a secured system in order to provide an owner or user of a remote unit with facilitated updating of the computer program of the remote unit, a secured system must be provided to enable an owner or user of a remote unit to update their program of the remote unit over a network such as the Internet.
  • the present invention provides a system for secured controlled updates of a remote unit software/firm ware over a network.
  • the present invention is able to accomplish this by providing an authentication protocol that verifies a valid remote unit and a valid update program.
  • One aspect of the present invention is a system for updating software programs of remote units in a controlled secure manner over a network.
  • the system includes a remote programmable unit, an authentication server and an update server.
  • the remote programmable unit has multiple software programs and a memory for storing programs, and it is adapted for connection to the network.
  • the authentication server is disposed at a fixed site and accessible over the network.
  • the authentication server verifies the authenticity of the remote programmable unit and provides an encryption key image to the remote programmable unit over the network.
  • the update server is disposed at a fixed site and accessible over the network.
  • the update server provides an encrypted update file program to the remote programmable unit over the network.
  • the remote programmable unit decrypts the encrypted update file program with the encryption key image from the authentication server to update one of its software programs.
  • the remote unit may be a PC card or a cellular telephone.
  • the system may also include a flasher host to provide connection to the network for the remote programmable unit.
  • the authentication server may be integrated with the update server.
  • the network may be the Internet, or an intracompany network.
  • the remote programmable unit may be able to communicate with the flasher host over a cellular network.
  • Another aspect of the present invention is a method for updating software programs for remote units over a network in a secure controlled manner.
  • the first step of the method is transmitting a request for a software update for a remote unit over a network.
  • the next step is verifying the authenticity of a communication from an authentication server to the remote unit.
  • the communication contains an encryption key to decode the update program for the software.
  • the next step is transmitting the software program update from an update server to the remote unit.
  • the next step is decrypting the update program with the encryption key.
  • the final step is updating the software of the remote unit.
  • the authenticity of the communication may be verified by communicating a first random number from the authentication server to the remote unit, communicating a second random number from the remote unit to the authentication server, and then communicating a challenge response, based on the first and second random numbers, from the authentication server to the remote unit.
  • the system includes a PC card, functions for transferring communications to the PC card over the network, functions for providing an encrypted update file program to the PC card, and functions for decrypting the update file program.
  • the PC card has multiple software programs and a memory for storing software programs.
  • the PC card is adapted for connection to the network.
  • the encrypted update file program allows the PC card to update a particular software program after the update file program is decrypted by the PC card .
  • the decrypting key is provided to the PC card from a remote server via the network.
  • FIG. 1 a schematic diagram of the system of the present invention.
  • Fig. 2 a flow diagram of the authentication process for the system of the present invention.
  • FIG. 3 a flow diagram of an update process for the system of the present invention.
  • FIG. 4 a flow diagram of an alternative authentication process for the system of the present invention.
  • FIG. 5 a flow diagram of yet another alternative authentication process for the system of the present invention.
  • FIG. 6 a flow diagram of an alternative update process for the system of the present invention.
  • Fig. 7 a flow diagram of yet another alternative update process for the system of the present invention.
  • an updating system of the present invention is generally designated 20.
  • the system 20 includes a remote unit 22, a network 24, an authentication server 26, and an update server 28.
  • the remote unit 22 may be a PC card such as a PCMCIA card, a cellular telephone, and the like. If the remote unit 22 is a PC card, it may preferably be a PC card with cellular telephone capacity.
  • the remote unit 22 may be a stand alone unit, or it may be integrated with a flasher host PC 30, such as a laptop computer.
  • the remote unit 22 in the form of a PC card plugs into a PC card slot of the flasher host 30, or in another form connects to the flasher host 30 via a conventional serial link.
  • the necessary software programs of the flasher host 30 may be a component of a PC card or a cellular telephone.
  • a preferred network 24 is the Internet.
  • the basic characteristics of the remote unit 22 are that it must be capable of connecting to the network 24, and it must contain sufficient memory to receive and store the entire update file from the update server 28 before applying the update to its software.
  • the remote unit 22 will accept the update command and use a previously stored key to decrypt the update program file.
  • the remote unit 22 will use specific algorithms for decrypting the file. In order to accomplish this, the remote unit 22 should have an unerasable flash boot sector that will contain the necessary software to execute the update program thereby ensuring that the remote unit 22 is cable of accepting a flash update even if previous attempts to accept the update have failed or been aborted .
  • the remote unit 22 has the capability of issuing commands to the authentication server 26, decoding responses from the authentication server 26, and storing encryption keys in a non-volatile memory.
  • the flasher host 30 manages the network connection and stores the update file prior to transferring the update program to the remote unit 22.
  • the connection to the network from the flasher host 30 may be wired (land telephone) or wireless (cellular telephone) . If the flasher host 30 is utilized as a network connection for the remote unit 22, the flasher host 30 will communicate with the authentication server 26 and the update server 28 over the network 24. The flasher host 30 will also issue appropriate commands to the remote unit 22, and transfer the update program to the remote unit 22. However, all of the functions of the flasher host 30 may be fully integrated on a single component remote unit 22 such as a cellular telephone, or a PC card with cellular telephone capabilities.
  • the authentication server 26 is responsible for verifying the authenticity of the update request from the remote unit 22, and also provides means for verification of the update program from the update server 28 by the remote unit 22.
  • This verification means may be a symmetric or a non-symmetric encrypted image key depending on the update process utilized, and the capabilities of the remote unit 22 and the authentication server 26 as further described below.
  • a non-symmetric key may only be used to decrypt a program file, and may not be used to encrypt such program file.
  • a symmetric key may be used to encrypt a program file as well as decrypt the program file.
  • the update server 28 is responsible for providing the update program to the remote unit 22 via the network 24.
  • the update server 28 is paired with the authentication server 26 thereby combining the functions of the authentication server 26 and the update server 28 into a single server as further described below.
  • An authentication process for the system 20 is illustrated in Figure 2.
  • communication is established between the authentication server 26 and the flasher host 30 via the network 24.
  • the authentication server 26 provides a random number to the flasher host 30.
  • the flasher host 30 communicates the first random number from the authentication server to the PC card 22a within a flash update request command .
  • the PC card 22a communicates a challenge code in the form of a second random number to the flasher host 30.
  • the flasher host 30 communicates the second random number to the authentication server 26.
  • the authentication server 26 communicates a challenge response to the flasher host 30.
  • the challenge response is based on the first random number, the second random number and a private key known only by the authentication server 26.
  • the challenge response is encrypted and also contains an encrypted image key that will be used by the PC card 22a to decode the encrypted update file program from the update server 28.
  • the flasher host 30 transfers the response from the authentication server 26 to the PC card 22a.
  • the PC card 22a processes the challenge response using a public key known by the PC card 22a to verify the authenticity of the challenge response from the authentication server 26 based on the first random number, the second random number, and the private encryption key.
  • the PC card 22a determines if the challenge response is valid or not. The verification of the challenge response allows for the prevention of rogue programs from being introduced into the PC card 22a. If the challenge response is valid, at step 46, the PC card 22a decrypts the image key and writes it to permanent storage on the PC card 22a.
  • a failure code is generated by the PC card 22a.
  • an inquiry is made as to the number of failure _codes to determine if a maximum failure count has been reached by the PC card 22a. If the maximum failure count has been reached, then at step 52 the PC card 22a locks itself to prevent further tampering.
  • the PC card 22a generates an authorization failure message to the flasher host 30 and requests that the authentication server 26 resend the update request. Then, the process is repeated to transmit a valid encryption image key to the PC card 22a.
  • An update process for the system 20 of the present invention is illustrated in Figure 3. After the authentication process of Figure 2, and the PC card 22a has obtained a valid encrypted image key, the PC card 22a receives the update file program from the update server 28. At step 60, the flasher host 30 obtains the update file program from the update server 28. At step 62, the flasher host 30 sends the update file program to the PC card 22a. At step 3.
  • the PC card 22a accepts the encrypted update file program from the flasher host 30. As the program is received, the PC card 22a decrypts the update file program and writes the program to its internal storage. At step 68, the PC card 22a calculates a check sum for the update file program and compares the check sum contained within the decrypted update file program.
  • the check sum may be a one-way hash function which is a function that is simple to compute in a forward direction, but difficult to compute in a reverse direction thereby preventing rogue programs from being introduced into the PC card 22a.
  • a one-way hash function, H(M) operates on an arbitrary-length input, M, which may be composed of selected electronic memory contents.
  • the hash function performed on M returns a fixed-length hash value, h, where an h equals H(M) .
  • h a fixed-length hash value
  • the check sum is verified to determine if it is valid or not. If the check sum is valid, then at step 72 the PC card 22a sends a success message to the flasher host 30 and activates the new program to update its software. However, if the check sum is invalid, at step 74 the PC card 22a sends a program failure message to the flasher host 30 thereby terminating the update process.
  • a perpetrator of fraud may attempt to access the program of the PC card 22a, or some other remote unit 22 such as a cellular telephone to perform cloning operations. Such operations and possible counter-measures are described in co-pending U.S. Patent Application Number 08/706,574, filed on September 5, 1 996, entitled System For Preventing Electronic Memory Tampering, and which relevant parts are hereby incorporated by reference.
  • FIG 4 An alternative authentication process for the system 20 of the present invention is illustrated in Figure 4.
  • the authentication process of Figure 4 requires fewer communication exchanges than the authentication process of Figure 2, however it is functionally equivalent in that the remote unit 22 authenticates the authentication server 26 and thus will accept the software file decode key only if that key is transmitted from the authentication server 26.
  • the authentication process of Figure 4 may used in conjunction with the update process of Figure 3.
  • a PC card 22a will be used as the remote unit 22 for the authentication process of Figure 4.
  • a PC card 22a chooses a private key and calculates a public key.
  • the flasher host 30 establishes communication with the authentication server 26, and sends the public key chosen from the PC card 22a to the authentication server 26.
  • the authentication server 26 sends the encrypted image key to the flasher host 30 in a message encrypted using the public key of the PC card 22a with a digital signature created by the authentication server 26 using a private key of the authentication server 26.
  • the flasher host 30 transfers the response from the authentication server 26 to the PC card 22a.
  • the PC card 22a uses its private key and the public key of the authentication server
  • the PC card 22a also decodes the message from the authentication server 26 using its public key and private key in a conventional manner. At step 90, the PC card 22a determines, in a conventional manner, whether the authentication server 26 sent the message, or if a rogue message has been sent to the flasher host 30.
  • the PC card 22a determines that the authentication server 26 did in fact send the encrypted message, then the PC card 22a stores the encrypted image key from the authentication server 26. However, if it is determined that the response was not sent from the authentication server 26, then at step 94, a failure count is generated by the PC card 22a. At step 96, an inquiry is made as to the number of failure counts generated by the PC card 22a. If the maximum count is reached, then at step 98 the PC card 22a locks itself to prevent further tampering with its program. However, if the maximum count has not been reached, then the PC card 22a generates an authorization failure message to the flasher host 30 and requests that the authentication server 26 resend the update request.
  • FIG. 5 Yet another authentication process for the system 20 of the present invention is illustrated in Figure 5.
  • the authentication process of Figure 5 requires that the remote unit 22 has integrated into its software the necessary public and private keys for use of an encryption key image from the authentication server 26.
  • the authentication server 26 has a database of all of the legitimate mobile unit public keys. This allows the authentication server 26 to transmit the encrypted image key only to legitimate remote units 22.
  • the size of the database maintained in the authentication server depends on the number of remote units 22 and the security of the private key contained within the remote units 22. If the private key is very secure, than all remote units 22 have the same public/private key pair. The other extreme would be for each remote unit 22 to have a distinct key pair.
  • the use of distinct key pairs for each remote unit 22 allows the authentication server 26 to be more intelligent, aware of the update status of each remote unit 22, and reject unnecessary or unpaid for update file requests.
  • the flasher host 30 establishes communication with the authentication server 26 and transmits a public key generated by the PC card 22a.
  • the authentication server 26 verifies the authenticity of the public key transmitted from the flasher host 30.
  • an inquiry is made as to the validity of the public key. If the public key is invalid, thus indicating a request from a rogue remote unit 22, then at step 1 1 6 the request is ignored .
  • An invalid public key is a key that has not been established for the remote unit 22 by the operator of the authentication sever 26, and is not contained on the list of valid public keys.
  • the authentication server 26 transmits an encrypted image key to the flasher host 30 in a message encrypted using the public key of the PC card 22a with a digital signature created by the authentication server 26 using a private key of the authentication server 26.
  • the encrypted image key can be a symmetric key since the key is not vulnerable to interception by a rogue remote unit 22.
  • the authentication server 26 maintains a database of public keys of all remote units 22 thereby allowing for verification of legitimate remote units 22.
  • the rogue mobile unit will not be able to decode the message containing the encrypted image key because a legitimate private key is needed to decode such a message.
  • the flasher host 30 transfers the response from the authentication server 26 to the PC card 22a.
  • the PC card 22a uses its private key and the public key of the authentication server 26 to verify the digital signature and decrypt the message.
  • the PC card 22a determines whether the message was sent from the authentication server 26, or if the message is a rogue message that should be ignored . If the message is verified as being sent from the authentication server 26, then the PC card 22a stores the encrypted image key. However, if it is determined that the message was not sent by the authentication server 26, then at step 1 28 a failure count is generated by the PC card 22a. At step 1 30, an inquiry is made to the number of failure counts generated by the PC card 22a.
  • step 1 32 the PC card 22a locks itself to prevent further tampering. However, if the maximum failure count has not been reached, then at step 1 34, the PC card 22a generates an authorization failure message to the flasher host 30 and requests that the authentication server 26 re-transmit the update request.
  • FIG. 6 An authentication and update process for the system 20 of the present invention is illustrated in Figure 6.
  • the process of Figure 6 utilizes the update server 28 with authentication capability.
  • the remote unit 22 transmits its public key to the update server 28.
  • the update server 28 verifies, in a conventional manner, that the public key of the remote unit 22 is contained on the approved list of public keys.
  • an inquiry is made as to the validity of the public key of the remote unit 22.
  • the update server 28 encrypts an update file program using the public key of the remote unit 22 and transmits that encrypted update file program to the remote unit 22.
  • the update server 28 also uses the update file program, its private key, and the public key of the remote unit 22 to create and send a digital signature along with the encrypted update file program.
  • an inquiry is made as to whether the message has been received by the remote unit 22. If the message is not received, then the remote unit 22 sends an update failure message to the update server 28.
  • the remote unit 22 uses its private key and the public key of the update server 28 to verify the digital signature sent by the update server 28.
  • an inquiry is made as to the source of the message. If it is verified that the message was sent by the update server 28, then the remote unit 22 decodes and implements the update file program thereby updating the software of the remote unit 22.
  • a failure message is generated by the remote unit 22.
  • an inquiry is made as to whether or not the maximum failure count has been reached by the remote unit 22. If the maximum failure count has been reached, then at step 1 64, the remote unit 22 locks itself thereby preventing tampering from any rogue programs. However, if the maximum failure count has not been reached, then at step 1 52 the remote unit 22 sends an update failure message to the update server 28 and retransmits its public key to the update server 28.
  • the update server 28 will contain the update file program in an encrypted form.
  • the update file program will be encrypted using the public key of the remote unit 22.
  • the initial message from the remote unit 22 to the update server 28 will not contain the public key of the remote unit 22, however, the message will contain the current software/firmware level of the remote unit 22 to prevent unnecessary reloads of identical software/firmware.
  • the request message from the remote unit 22 to the update server 28 includes a digital signature that is constructed from the message, the public key of the update server 28 and the private key of the remote unit 22. Such a digital signature allows the update server 28 to verify that the request was transmitted from a legitimate remote unit 22.
  • FIG. 7 Yet another authentication/update process is illustrated in Figure 7.
  • the process of FIG. 7 is for the scenario when the update server 28 only has one software/firmware level to transmit to any of the remote units 22. Under such a scenario, the request message does not need to be encrypted .
  • the remote unit 22 transmits a request with current firmware levels to the update server 28. The request is encrypted with the public key of the update server 28 and possibly with a digital signature.
  • the update server 28 verifies the firmware level and the request.
  • the validity of the request is verified by the update server 28. If the request is not valid, and hence from a rogue remote unit, then at step 1 76 the request is ignored or rejected. However, if the request is verified, then at step 1 78 the update server 28 transmits an encrypted image/update file to the remote unit 22 along with a digital signature generated from the update file program, its private key and the public key of the remote unit 22.
  • an inquiry is made as to whether the message has been received by the remote unit 22. If the message has not been received, then at step 182 the remote unit 22 transmits an update failure and requests that the message be re-sent by the update server 28.
  • the remote unit 22 utilizes its private key, and the public key of the update server 28 to verify the digital signature.
  • an inquiry is made to the source of the message. If the message has been sent by the update server 28, and this has been verified, then at step 1 88 the remote unit 22 decodes and loads the update file program. However, if the source of the message is not the update server 28, then at step 190 a failure count is generated by the remote unit 22.
  • an inquiry is made as to the number of failure counts and if the maximum failure count has been reached, then at step 1 94 the remote unit 22 locks itself to prevent further tampering by a rogue program. However, if the maximum failure count has not been reached, then at step 1 82 the remote unit 22 sends an update failure to the update server 28.
  • the desirable location to decrypt the firmware is in the mobile unit that will be storing the firmware. Otherwise, if the firmware is decrypted in attached laptop
  • the mobile unit is a cellular telephone, there is typically insufficient general purpose memory to accept an entire firmware update as a single transfer.
  • Current cellular phones have about 1 -2 Mbytes of program storage space to be updated, and 1 28 to 256 kbytes of general purpose memory, typically SRAM.
  • the firmware to be updated must be presented to the cellular phone in blocks of data.
  • the simplest approach is to use a multiple of the block size of flash memory in the cellular phone, typically 32 or 64 kbytes. Subdivision of the update file could be done at the update server 28 or the flasher host PC 30.
  • the present invention provides a system and method to securely update a software program of a remote unit 22, such as a PC card 22a or a cellular telephone, over a network such as the Internet.
  • the system and method of the present invention prevent rogue programs from being introduced into the remote unit 22 thereby countering cellular telephone fraud .
  • the system and method also enable an authorized user of the remote unit 22 to update the software program of the remote unit 22 without having to physically transport the remote unit 22 to an authorized dealer.

Abstract

A system and method for updating software for a remote unit over a network is disclosed herein. The system and method includes the remote unit, an authentication server and an update server. The remote unit may have a flasher host for communicating over the network and for transmitting commands to the remote unit. The system and method allows for the verification of a request message from the remote unit, and a response from the authentication server. The response message to the remote unit from the authentication server will contain a decryption key to decrypt the update file that will be sent by the update server. Such an authentication process prevents rogue programs from being sent to the remote unit thereby decreasing the potential for cellular fraud.

Description

SYSTEM FOR SECURE CONTROLLED ELECTRONIC MEMORY UPDATES VIA NETWORKS
FIELD OF THE INVENTION
The present invention relates to a system for updating electronic memory over a network. More specifically, the present invention relates to a system for updating the electronic memory of a mobile unit using a secured procedure thereby preventing tampering with sensitive information.
BACKGROUND OF THE INVENTION A remote or mobile unit may need to have its software/firmware updated because of defects in the software or the addition of new features for the software/firmware. Such remote units may be cellular telephones, PC cards, and the like. These remote units may have various computer programs that enable the remote unit to function properly. Current solutions to updating remote units force the user of the remote unit to choose between physically transporting the remote unit to a service center, or updating the system over a network without proper security features to prohibit tampering with sensitive information that may be contained in the remote unit or from the provider of the update program.
Further, due to governmental regulations to combat cellular telephone fraud, the owner or user of the remote unit may only have one choice to update the program of the remote unit, that being to physically transport the remote unit to a service center for updating of the computer program. The choice of updating the computer program over a network in an unsecured procedure would be prohibited by governmental regulations in order to prevent cellular telephone fraud.
In current network updating procedures, a remote unit will be connected to a network such as the Internet, and access a server that contains the new update program. The server will transfer the new update program to the remote unit, and the program will be implemented into the remote unit. A problem occurs when the remote unit has been cloned thereby allowing the cloned cellular telephone or other remote unit to have access to the new updated program furthering the cellular telephone fraud . Cellular telephones or other remote units are cloned by getting access to their computer programs. The perpetrators of the fraud acquire valid mobile identification numbers (MIN) and valid electronic serial numbers (ESN) through interception of these numbers over the cellular air waves. These valid MIN/ESN pairs are used to reprogram a remote unit such as a cellular telephone. It is such fraud that current government regulations seek to prevent by requiring programming and reprogramming of remote units such as cellular telephones at an authorized service center, thereby necessitating the physical transport of the remote unit to such service center.
Thus, in order to provide an owner or user of a remote unit with facilitated updating of the computer program of the remote unit, a secured system must be provided to enable an owner or user of a remote unit to update their program of the remote unit over a network such as the Internet.
SUMMARY OF THE INVENTION The present invention provides a system for secured controlled updates of a remote unit software/firm ware over a network. The present invention is able to accomplish this by providing an authentication protocol that verifies a valid remote unit and a valid update program.
One aspect of the present invention is a system for updating software programs of remote units in a controlled secure manner over a network. The system includes a remote programmable unit, an authentication server and an update server. The remote programmable unit has multiple software programs and a memory for storing programs, and it is adapted for connection to the network. The authentication server is disposed at a fixed site and accessible over the network. The authentication server verifies the authenticity of the remote programmable unit and provides an encryption key image to the remote programmable unit over the network. The update server is disposed at a fixed site and accessible over the network. The update server provides an encrypted update file program to the remote programmable unit over the network. The remote programmable unit decrypts the encrypted update file program with the encryption key image from the authentication server to update one of its software programs.
The remote unit may be a PC card or a cellular telephone. The system may also include a flasher host to provide connection to the network for the remote programmable unit. The authentication server may be integrated with the update server. The network may be the Internet, or an intracompany network. The remote programmable unit may be able to communicate with the flasher host over a cellular network.
Another aspect of the present invention is a method for updating software programs for remote units over a network in a secure controlled manner. The first step of the method is transmitting a request for a software update for a remote unit over a network.
The next step is verifying the authenticity of a communication from an authentication server to the remote unit. The communication contains an encryption key to decode the update program for the software. The next step is transmitting the software program update from an update server to the remote unit. The next step is decrypting the update program with the encryption key. The final step is updating the software of the remote unit.
The authenticity of the communication may be verified by communicating a first random number from the authentication server to the remote unit, communicating a second random number from the remote unit to the authentication server, and then communicating a challenge response, based on the first and second random numbers, from the authentication server to the remote unit.
Another aspect of the present invention is a system for updating software programs via a network. The system includes a PC card, functions for transferring communications to the PC card over the network, functions for providing an encrypted update file program to the PC card, and functions for decrypting the update file program. The PC card has multiple software programs and a memory for storing software programs. The PC card is adapted for connection to the network. The encrypted update file program allows the PC card to update a particular software program after the update file program is decrypted by the PC card . The decrypting key is provided to the PC card from a remote server via the network.
BRIEF DESCRIPTION OF THE DRAWINGS
There is illustrated in Fig. 1 a schematic diagram of the system of the present invention. There is illustrated in Fig. 2 a flow diagram of the authentication process for the system of the present invention.
There is illustrated in Fig. 3 a flow diagram of an update process for the system of the present invention.
There is illustrated in Fig. 4 a flow diagram of an alternative authentication process for the system of the present invention.
There is illustrated in Fig . 5 a flow diagram of yet another alternative authentication process for the system of the present invention.
There is illustrated in Fig. 6 a flow diagram of an alternative update process for the system of the present invention. There is illustrated in Fig . 7 a flow diagram of yet another alternative update process for the system of the present invention.
DETAILED DESCRIPTION OF THE INVENTION As shown in Fig . 1 , an updating system of the present invention is generally designated 20. The system 20 includes a remote unit 22, a network 24, an authentication server 26, and an update server 28. The remote unit 22 may be a PC card such as a PCMCIA card, a cellular telephone, and the like. If the remote unit 22 is a PC card, it may preferably be a PC card with cellular telephone capacity. The remote unit 22 may be a stand alone unit, or it may be integrated with a flasher host PC 30, such as a laptop computer. The remote unit 22 in the form of a PC card plugs into a PC card slot of the flasher host 30, or in another form connects to the flasher host 30 via a conventional serial link. Alternatively, the necessary software programs of the flasher host 30 may be a component of a PC card or a cellular telephone. The functions of the flasher host 30 as they relate to the remote unit 22 are described below. A preferred network 24 is the Internet.
The basic characteristics of the remote unit 22 are that it must be capable of connecting to the network 24, and it must contain sufficient memory to receive and store the entire update file from the update server 28 before applying the update to its software. The remote unit 22 will accept the update command and use a previously stored key to decrypt the update program file. The remote unit 22 will use specific algorithms for decrypting the file. In order to accomplish this, the remote unit 22 should have an unerasable flash boot sector that will contain the necessary software to execute the update program thereby ensuring that the remote unit 22 is cable of accepting a flash update even if previous attempts to accept the update have failed or been aborted . The remote unit 22 has the capability of issuing commands to the authentication server 26, decoding responses from the authentication server 26, and storing encryption keys in a non-volatile memory.
The flasher host 30 manages the network connection and stores the update file prior to transferring the update program to the remote unit 22. The connection to the network from the flasher host 30 may be wired (land telephone) or wireless (cellular telephone) . If the flasher host 30 is utilized as a network connection for the remote unit 22, the flasher host 30 will communicate with the authentication server 26 and the update server 28 over the network 24. The flasher host 30 will also issue appropriate commands to the remote unit 22, and transfer the update program to the remote unit 22. However, all of the functions of the flasher host 30 may be fully integrated on a single component remote unit 22 such as a cellular telephone, or a PC card with cellular telephone capabilities. The authentication server 26 is responsible for verifying the authenticity of the update request from the remote unit 22, and also provides means for verification of the update program from the update server 28 by the remote unit 22. This verification means may be a symmetric or a non-symmetric encrypted image key depending on the update process utilized, and the capabilities of the remote unit 22 and the authentication server 26 as further described below. A non-symmetric key may only be used to decrypt a program file, and may not be used to encrypt such program file. A symmetric key may be used to encrypt a program file as well as decrypt the program file. The update server 28 is responsible for providing the update program to the remote unit 22 via the network 24. In one embodiment, the update server 28 is paired with the authentication server 26 thereby combining the functions of the authentication server 26 and the update server 28 into a single server as further described below. An authentication process for the system 20 is illustrated in Figure 2. At block 32, communication is established between the authentication server 26 and the flasher host 30 via the network 24. For clarity, the authentication process will be described with a PC card 22a as the remote unit 22 which is connected to the flasher host 30. The authentication server 26 provides a random number to the flasher host 30. At step 34, the flasher host 30 communicates the first random number from the authentication server to the PC card 22a within a flash update request command . At step 36 the PC card 22a communicates a challenge code in the form of a second random number to the flasher host 30. At step 38 the flasher host 30 communicates the second random number to the authentication server 26.
The authentication server 26 communicates a challenge response to the flasher host 30. The challenge response is based on the first random number, the second random number and a private key known only by the authentication server 26. The challenge response is encrypted and also contains an encrypted image key that will be used by the PC card 22a to decode the encrypted update file program from the update server 28. At step 40 the flasher host 30 transfers the response from the authentication server 26 to the PC card 22a. At step 42 the PC card 22a processes the challenge response using a public key known by the PC card 22a to verify the authenticity of the challenge response from the authentication server 26 based on the first random number, the second random number, and the private encryption key. At step 44 the PC card 22a determines if the challenge response is valid or not. The verification of the challenge response allows for the prevention of rogue programs from being introduced into the PC card 22a. If the challenge response is valid, at step 46, the PC card 22a decrypts the image key and writes it to permanent storage on the PC card 22a.
However, if the challenge response is not valid, then at step 48 a failure code is generated by the PC card 22a. At step 50 an inquiry is made as to the number of failure _codes to determine if a maximum failure count has been reached by the PC card 22a. If the maximum failure count has been reached, then at step 52 the PC card 22a locks itself to prevent further tampering.
However, if the maximum failure count has not been reached, at step 54 the PC card 22a generates an authorization failure message to the flasher host 30 and requests that the authentication server 26 resend the update request. Then, the process is repeated to transmit a valid encryption image key to the PC card 22a. An update process for the system 20 of the present invention is illustrated in Figure 3. After the authentication process of Figure 2, and the PC card 22a has obtained a valid encrypted image key, the PC card 22a receives the update file program from the update server 28. At step 60, the flasher host 30 obtains the update file program from the update server 28. At step 62, the flasher host 30 sends the update file program to the PC card 22a. At step
66 the PC card 22a accepts the encrypted update file program from the flasher host 30. As the program is received, the PC card 22a decrypts the update file program and writes the program to its internal storage. At step 68, the PC card 22a calculates a check sum for the update file program and compares the check sum contained within the decrypted update file program. The check sum may be a one-way hash function which is a function that is simple to compute in a forward direction, but difficult to compute in a reverse direction thereby preventing rogue programs from being introduced into the PC card 22a. A one-way hash function, H(M), operates on an arbitrary-length input, M, which may be composed of selected electronic memory contents. The hash function performed on M returns a fixed-length hash value, h, where an h equals H(M) . The main characteristics of a one-way hash function are that given M, it is easy to compute h, however, given h it is difficult to compute M.
Returning to Figure 3, at step 70 the check sum is verified to determine if it is valid or not. If the check sum is valid, then at step 72 the PC card 22a sends a success message to the flasher host 30 and activates the new program to update its software. However, if the check sum is invalid, at step 74 the PC card 22a sends a program failure message to the flasher host 30 thereby terminating the update process. A perpetrator of fraud may attempt to access the program of the PC card 22a, or some other remote unit 22 such as a cellular telephone to perform cloning operations. Such operations and possible counter-measures are described in co-pending U.S. Patent Application Number 08/706,574, filed on September 5, 1 996, entitled System For Preventing Electronic Memory Tampering, and which relevant parts are hereby incorporated by reference.
An alternative authentication process for the system 20 of the present invention is illustrated in Figure 4. The authentication process of Figure 4 requires fewer communication exchanges than the authentication process of Figure 2, however it is functionally equivalent in that the remote unit 22 authenticates the authentication server 26 and thus will accept the software file decode key only if that key is transmitted from the authentication server 26. The authentication process of Figure 4 may used in conjunction with the update process of Figure 3. As with the authentication process of Figure 2, a PC card 22a will be used as the remote unit 22 for the authentication process of Figure 4. As shown in Figure 4, at step 80 a PC card 22a chooses a private key and calculates a public key. At step 82, the flasher host 30 establishes communication with the authentication server 26, and sends the public key chosen from the PC card 22a to the authentication server 26. At step 84, the authentication server 26 sends the encrypted image key to the flasher host 30 in a message encrypted using the public key of the PC card 22a with a digital signature created by the authentication server 26 using a private key of the authentication server 26. At step 86, the flasher host 30 transfers the response from the authentication server 26 to the PC card 22a. At step 88, the PC card 22a uses its private key and the public key of the authentication server
26 to verify the digital signature in a conventional manner. The PC card 22a also decodes the message from the authentication server 26 using its public key and private key in a conventional manner. At step 90, the PC card 22a determines, in a conventional manner, whether the authentication server 26 sent the message, or if a rogue message has been sent to the flasher host 30.
If the PC card 22a determines that the authentication server 26 did in fact send the encrypted message, then the PC card 22a stores the encrypted image key from the authentication server 26. However, if it is determined that the response was not sent from the authentication server 26, then at step 94, a failure count is generated by the PC card 22a. At step 96, an inquiry is made as to the number of failure counts generated by the PC card 22a. If the maximum count is reached, then at step 98 the PC card 22a locks itself to prevent further tampering with its program. However, if the maximum count has not been reached, then the PC card 22a generates an authorization failure message to the flasher host 30 and requests that the authentication server 26 resend the update request.
Yet another authentication process for the system 20 of the present invention is illustrated in Figure 5. The authentication process of Figure 5 requires that the remote unit 22 has integrated into its software the necessary public and private keys for use of an encryption key image from the authentication server 26. The authentication server 26 has a database of all of the legitimate mobile unit public keys. This allows the authentication server 26 to transmit the encrypted image key only to legitimate remote units 22. The size of the database maintained in the authentication server depends on the number of remote units 22 and the security of the private key contained within the remote units 22. If the private key is very secure, than all remote units 22 have the same public/private key pair. The other extreme would be for each remote unit 22 to have a distinct key pair. The use of distinct key pairs for each remote unit 22 allows the authentication server 26 to be more intelligent, aware of the update status of each remote unit 22, and reject unnecessary or unpaid for update file requests.
As shown in Figure 5, at step 1 10 the flasher host 30 establishes communication with the authentication server 26 and transmits a public key generated by the PC card 22a. At step 1 12, the authentication server 26 verifies the authenticity of the public key transmitted from the flasher host 30.
At step 1 14, an inquiry is made as to the validity of the public key. If the public key is invalid, thus indicating a request from a rogue remote unit 22, then at step 1 1 6 the request is ignored . An invalid public key is a key that has not been established for the remote unit 22 by the operator of the authentication sever 26, and is not contained on the list of valid public keys.
However, if the public key is valid (if it is on the list of approved public keys), then at step 1 1 8 the authentication server 26 transmits an encrypted image key to the flasher host 30 in a message encrypted using the public key of the PC card 22a with a digital signature created by the authentication server 26 using a private key of the authentication server 26. Using such a procedure, the encrypted image key can be a symmetric key since the key is not vulnerable to interception by a rogue remote unit 22. The authentication server 26 maintains a database of public keys of all remote units 22 thereby allowing for verification of legitimate remote units 22. Thus, even if someone intercepts a legitimate public key and uses it in a fraudulent request for the encrypted image key, the rogue mobile unit will not be able to decode the message containing the encrypted image key because a legitimate private key is needed to decode such a message.
At step 1 20, the flasher host 30 transfers the response from the authentication server 26 to the PC card 22a. At step 1 22, the PC card 22a uses its private key and the public key of the authentication server 26 to verify the digital signature and decrypt the message. At step 1 24, the PC card 22a determines whether the message was sent from the authentication server 26, or if the message is a rogue message that should be ignored . If the message is verified as being sent from the authentication server 26, then the PC card 22a stores the encrypted image key. However, if it is determined that the message was not sent by the authentication server 26, then at step 1 28 a failure count is generated by the PC card 22a. At step 1 30, an inquiry is made to the number of failure counts generated by the PC card 22a. If the maximum failure count has been reached, then at step 1 32 the PC card 22a locks itself to prevent further tampering. However, if the maximum failure count has not been reached, then at step 1 34, the PC card 22a generates an authorization failure message to the flasher host 30 and requests that the authentication server 26 re-transmit the update request.
It is possible using the system 20 of the present invention to combine the authentication software program of the authentication server 26 with the update server 28 into a single server unit. This update server 28 with authentication capability is utilized if the security and processing power of the image server are sufficient, or if every remote unit 22 has the same public and private key pair. An authentication and update process for the system 20 of the present invention is illustrated in Figure 6. The process of Figure 6 utilizes the update server 28 with authentication capability. At step 140, the remote unit 22 transmits its public key to the update server 28. At step 1 42, the update server 28 verifies, in a conventional manner, that the public key of the remote unit 22 is contained on the approved list of public keys. At step 144, an inquiry is made as to the validity of the public key of the remote unit 22. If the public key is not contained in the database of the update server 28, and thus is not valid, then at step 146 the request is ignored. However, if the request and the key are valid, then at step 148 the update server 28 encrypts an update file program using the public key of the remote unit 22 and transmits that encrypted update file program to the remote unit 22. The update server 28 also uses the update file program, its private key, and the public key of the remote unit 22 to create and send a digital signature along with the encrypted update file program. At step 1 50, an inquiry is made as to whether the message has been received by the remote unit 22. If the message is not received, then the remote unit 22 sends an update failure message to the update server 28. However, if the message is received, then at step 1 54 the remote unit 22 uses its private key and the public key of the update server 28 to verify the digital signature sent by the update server 28. At step 1 56, an inquiry is made as to the source of the message. If it is verified that the message was sent by the update server 28, then the remote unit 22 decodes and implements the update file program thereby updating the software of the remote unit 22.
However, if the message was not sent by the update server 28, then at step 160, a failure message is generated by the remote unit 22. At step 1 62, an inquiry is made as to whether or not the maximum failure count has been reached by the remote unit 22. If the maximum failure count has been reached, then at step 1 64, the remote unit 22 locks itself thereby preventing tampering from any rogue programs. However, if the maximum failure count has not been reached, then at step 1 52 the remote unit 22 sends an update failure message to the update server 28 and retransmits its public key to the update server 28.
If all of the remote units 22 contain the same public/private key pair, the update server 28 will contain the update file program in an encrypted form. The update file program will be encrypted using the public key of the remote unit 22. Under such a scenario, the initial message from the remote unit 22 to the update server 28 will not contain the public key of the remote unit 22, however, the message will contain the current software/firmware level of the remote unit 22 to prevent unnecessary reloads of identical software/firmware. If the existing software/firmware level of a remote unit 22 is used to determine which exact software/firmware level to transmit to the remote unit 22, then the request message from the remote unit 22 to the update server 28 includes a digital signature that is constructed from the message, the public key of the update server 28 and the private key of the remote unit 22. Such a digital signature allows the update server 28 to verify that the request was transmitted from a legitimate remote unit 22.
Yet another authentication/update process is illustrated in Figure 7. The process of FIG. 7 is for the scenario when the update server 28 only has one software/firmware level to transmit to any of the remote units 22. Under such a scenario, the request message does not need to be encrypted . At step 1 70, the remote unit 22 transmits a request with current firmware levels to the update server 28. The request is encrypted with the public key of the update server 28 and possibly with a digital signature. At step 1 72, the update server
28 verifies the firmware level and the request. At step 1 74, the validity of the request is verified by the update server 28. If the request is not valid, and hence from a rogue remote unit, then at step 1 76 the request is ignored or rejected. However, if the request is verified, then at step 1 78 the update server 28 transmits an encrypted image/update file to the remote unit 22 along with a digital signature generated from the update file program, its private key and the public key of the remote unit 22. At step 1 80, an inquiry is made as to whether the message has been received by the remote unit 22. If the message has not been received, then at step 182 the remote unit 22 transmits an update failure and requests that the message be re-sent by the update server 28. However, if the message has been received, then at step 1 84 the remote unit 22 utilizes its private key, and the public key of the update server 28 to verify the digital signature. At step 1 86, an inquiry is made to the source of the message. If the message has been sent by the update server 28, and this has been verified, then at step 1 88 the remote unit 22 decodes and loads the update file program. However, if the source of the message is not the update server 28, then at step 190 a failure count is generated by the remote unit 22. At step 192, an inquiry is made as to the number of failure counts and if the maximum failure count has been reached, then at step 1 94 the remote unit 22 locks itself to prevent further tampering by a rogue program. However, if the maximum failure count has not been reached, then at step 1 82 the remote unit 22 sends an update failure to the update server 28.
In an application where the remote unit 22 comprises a mobile unit, the desirable location to decrypt the firmware is in the mobile unit that will be storing the firmware. Otherwise, if the firmware is decrypted in attached laptop
PC, or the like, and then transferred to the mobile unit over a serial link, then the security of the download process is vulnerable to substitution at the serial link. If the mobile unit is a cellular telephone, there is typically insufficient general purpose memory to accept an entire firmware update as a single transfer. Current cellular phones have about 1 -2 Mbytes of program storage space to be updated, and 1 28 to 256 kbytes of general purpose memory, typically SRAM. Thus, the firmware to be updated must be presented to the cellular phone in blocks of data. The simplest approach is to use a multiple of the block size of flash memory in the cellular phone, typically 32 or 64 kbytes. Subdivision of the update file could be done at the update server 28 or the flasher host PC 30.
The present invention provides a system and method to securely update a software program of a remote unit 22, such as a PC card 22a or a cellular telephone, over a network such as the Internet. The system and method of the present invention prevent rogue programs from being introduced into the remote unit 22 thereby countering cellular telephone fraud . The system and method also enable an authorized user of the remote unit 22 to update the software program of the remote unit 22 without having to physically transport the remote unit 22 to an authorized dealer.

Claims

WE CLAIM:
1 . A system for updating software programs of remote units in a controlled secure manner over a network, the system comprising: a remote programmable unit having a memory storing software programs, the remote programmable unit adapted for connection to the network; an authentication server disposed remotely from the remote programmable unit and accessible over the network, the authentication server verifying the authenticity of the remote programmable unit and providing a decryption key to the remote programmable unit over the network for storage in the memory storing program of the remote programmable unit; and an update server disposed remotely from the remote programmable unit and accessible over the network, the update server providing an encrypted update file program to the remote programmable unit over the network for storage in the memory storing program of the remote programmable unit, wherein the remote programmable unit decrypts the encrypted update file program with the decryption key from the authentication server in order to update one of the software programs of the remote programmable unit.
2. The system according to claim 1 wherein the remote unit is a PC card.
3. The system according to claim 1 further comprising a flasher host to provide connection to the network for the remote programmable unit.
4. The system according to claim 1 wherein the authentication server is integrated with the update server.
5. The system according to claim 1 wherein the network is the Internet.
6. The system according to claim 1 wherein the remote programmable unit comprises means for authenticating a communication from the authentication server.
7. The system according to claim 1 wherein the remote programmable unit is a cellular telephone.
8. The system according to claim 3 wherein the remote programmable unit comprises means for communicating with over a cellular network.
9. A method for updating software programs for remote units over a network in a secure controlled manner, the method comprising: transmitting a request for a software update from a remote unit to an authentication server over a network, the authentication server disposed remotely to the remote unit; verifying the authenticity of a communication from the authentication server to the remote unit, the communication containing a decryption key to decode the update program for the software; transmitting the software program update from an update server to the remote unit over the network, the update server disposed remotely to the remote unit; decrypting the update program with the decryption key; and updating the software of the remote unit.
10. The method according to claim 9 wherein verifying the authenticity comprises communicating a first random number from the authentication server to the remote unit, communicating a second random number from the remote unit to the authentication server; and communicating a challenge response, based on the first and second random numbers, from the authentication server to the remote unit.
1 1 . The method according to claim 9 wherein the remote unit is a PC card.
12. The method according to claim 9 wherein the network is the
Internet.
13. The method according to claim 9 further comprising verifying the update program from the update server.
14. A system for updating software programs via a network, the system comprising: a PC card having a memory storing software programs, the PC card adapted for connection to the network; means for controlling the network connection to the PC card and for storing update file programs prior to utilization by the PC card; means for providing an encrypted update file program to the PC card via the network to update a particular software program of the PC card; and means for decrypting the encrypted update file program, the decrypting means provided to the PC card from a remote server via the network.
1 5. The system according to claim 14 wherein the communication transferring means is a flasher host which controls the update process by communicating over the network and transmitting commands to the
PC card.
1 6. The system according to claim 14 wherein the decrypting means is an decrypted key encrypted in a verifiable message provided by an authentication server to the PC card via the network.
1 7. The system according to claim 14 wherein the transferring communication means is integrated into the PC card .
1 8. The system according to claim 14 wherein the network is the Internet.
PCT/US2000/004967 1999-03-26 2000-02-28 System for secure controlled electronic memory updates via networks WO2000058830A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU37084/00A AU3708400A (en) 1999-03-26 2000-02-28 System for secure controlled electronic memory updates via networks

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/277,434 1999-03-26
US09/277,434 US6546492B1 (en) 1999-03-26 1999-03-26 System for secure controlled electronic memory updates via networks

Publications (1)

Publication Number Publication Date
WO2000058830A1 true WO2000058830A1 (en) 2000-10-05

Family

ID=23060839

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/004967 WO2000058830A1 (en) 1999-03-26 2000-02-28 System for secure controlled electronic memory updates via networks

Country Status (3)

Country Link
US (1) US6546492B1 (en)
AU (1) AU3708400A (en)
WO (1) WO2000058830A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2365169A (en) * 1999-12-15 2002-02-13 Pitney Bowes Inc Method and system for providing built-to-order software applications.
EP1580663A1 (en) * 2002-11-13 2005-09-28 Netac Technology Co., Ltd. A method for realizing security data storage and algorithm storage by means of semiconductor memory device
EP1621998A1 (en) * 2003-05-07 2006-02-01 Sony Corporation Information processing device and method, recording medium, and program
WO2008001322A2 (en) * 2006-06-30 2008-01-03 International Business Machines Corporation Message handling at a mobile device
EP1770585A3 (en) * 2005-09-30 2010-04-21 Samsung Electronics Co., Ltd. Security method and system and computer-readable medium storing computer program for executing the security method
CN101662533B (en) * 2008-08-27 2013-02-20 深圳富泰宏精密工业有限公司 Software updating system and method

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801941B1 (en) * 1999-08-12 2004-10-05 Sarnoff Corporation Dynamic wireless internet address assignment scheme with authorization
US7792745B2 (en) * 2000-02-25 2010-09-07 Ipass Inc. Method and system to facilitate financial settlement of service access transactions between multiple parties
US20010034693A1 (en) * 2000-02-25 2001-10-25 Jay Farhat Method and system to broker a service access transaction
US7240112B2 (en) * 2000-05-26 2007-07-03 Ipass Inc. Service quality monitoring process
US6985945B2 (en) * 2000-12-07 2006-01-10 Ipass, Inc. Service quality monitoring process
US7519695B2 (en) 2000-05-26 2009-04-14 Ipass Inc. Service quality monitoring process
AU2001279312A1 (en) 2000-08-02 2002-02-13 Ipass, Inc. A method and system to customize and update a network connection application fordistribution to mulitple end users
DE10038779A1 (en) * 2000-08-09 2002-03-07 Schneider Automation Gmbh Method for transferring data into or from a control device such as a programmable logic controller and control device
AU2001294099A1 (en) * 2000-08-31 2002-03-13 Docubase Reconfiguration and preservation of setup data
US20060039564A1 (en) * 2000-11-17 2006-02-23 Bindu Rama Rao Security for device management and firmware updates in an operator network
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US7921290B2 (en) * 2001-04-18 2011-04-05 Ipass Inc. Method and system for securely authenticating network access credentials for users
US20030065919A1 (en) * 2001-04-18 2003-04-03 Albert Roy David Method and system for identifying a replay attack by an access device to a computer system
US7469341B2 (en) * 2001-04-18 2008-12-23 Ipass Inc. Method and system for associating a plurality of transaction data records generated in a service access system
US7184793B2 (en) * 2001-07-26 2007-02-27 Kyocera Wireless Corp. System and method for over the air area code update
US7027806B2 (en) * 2001-07-26 2006-04-11 Kyocera Wireless, Corp. System and method for field downloading a wireless communications device software code section
US7184759B2 (en) * 2001-07-26 2007-02-27 Kyocera Wireless Corp. Modular software components for wireless communication devices
US7200389B2 (en) * 2001-07-26 2007-04-03 Kyocera Wireless Corp. Dynamic interface software for wireless communication devices
US7328007B2 (en) * 2001-07-26 2008-02-05 Kyocera Wireless Corp. System and method for organizing wireless communication device system software
US7159214B2 (en) 2001-07-26 2007-01-02 Kyocera Wireless Corp. System and method for compacting field upgradeable wireless communication device software code sections
US7386846B2 (en) 2001-07-26 2008-06-10 Kyocera Wireless Corp. System and method for the management of wireless communications device system software downloads in the field
US9554268B2 (en) 2001-07-26 2017-01-24 Kyocera Corporation System and method for updating persistent data in a wireless communications device
US7143407B2 (en) * 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
US7197302B2 (en) 2001-07-26 2007-03-27 Kyocera Wireless Corp. System and method for interchangeable modular hardware components for wireless communication devices
US7761606B2 (en) * 2001-08-02 2010-07-20 Ipass Inc. Method and system to secure a connection application for distribution to multiple end-users
US20030188160A1 (en) * 2001-08-02 2003-10-02 Singam Sunder Method and system to securely update files via a network
US7254386B2 (en) * 2001-08-10 2007-08-07 Kyocera Wireless Corp. System and method for improved security in handset reprovisioning and reprogramming
US6961537B2 (en) * 2001-08-10 2005-11-01 Kyocera Wireless Corp. System and method for peer-to-peer handset communication
US7146412B2 (en) * 2001-08-27 2006-12-05 Hewlett-Packard Development Company, L.P. System and methods for the automatic discovery, notification and installation of firmware upgrades
US8140845B2 (en) * 2001-09-13 2012-03-20 Alcatel Lucent Scheme for authentication and dynamic key exchange
US20030112977A1 (en) * 2001-12-18 2003-06-19 Dipankar Ray Communicating data securely within a mobile communications network
US7961884B2 (en) * 2002-08-13 2011-06-14 Ipass Inc. Method and system for changing security information in a computer network
US20040003081A1 (en) * 2002-06-26 2004-01-01 Microsoft Corporation System and method for providing program credentials
US8393001B1 (en) * 2002-07-26 2013-03-05 Mcafee, Inc. Secure signature server system and associated method
US7895663B1 (en) * 2002-10-29 2011-02-22 Hewlett-Packard Development Company, L.P. Security system for communicating data between a mobile handset and a management server
US7644288B2 (en) * 2003-03-19 2010-01-05 Ricoh Company, Ltd. Image forming apparauts that checks authenticity of an update program
WO2004102379A1 (en) * 2003-05-14 2004-11-25 Fujitsu Limited Software use management system, software use management method, and software use management program
US20040237081A1 (en) * 2003-05-19 2004-11-25 Homiller Daniel P. Methods and apparatus for generating upgraded software from initial software and software upgrade packages
US8606885B2 (en) * 2003-06-05 2013-12-10 Ipass Inc. Method and system of providing access point data associated with a network access point
US20050055371A1 (en) * 2003-06-05 2005-03-10 Singam Sunder Method and system to manage a network connection application
FR2857190B1 (en) * 2003-07-01 2005-10-14 Wavecom METHOD AND APPARATUS FOR DESIGNING AND IMPLEMENTING WIRELESS APPLICATIONS USING PROGRAMMABLE AUTOMATES
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US20050102669A1 (en) * 2003-10-15 2005-05-12 Siemens Medical Solutions Usa, Inc. Software installation file verification media and methods for medical equipment
US7984485B1 (en) * 2004-01-29 2011-07-19 Hewlett-Packard Development Company, L.P. Ingestion interface for transferring update package containers into a distribution network
JP2005228123A (en) * 2004-02-13 2005-08-25 Sharp Corp Communication method, communication system and information reception-side device used in the communication system
US8225304B2 (en) * 2004-03-23 2012-07-17 Kabushiki Kaisha Toshiba System and method for remotely securing software updates of computer systems
US7478383B2 (en) * 2004-03-23 2009-01-13 Toshiba Corporation System and method for remotely securing software updates of computer systems
US7539862B2 (en) * 2004-04-08 2009-05-26 Ipass Inc. Method and system for verifying and updating the configuration of an access device during authentication
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
CN100465889C (en) * 2004-04-29 2009-03-04 杭州斯达康通讯有限公司 Method for downloading computer data to mobile phone
CN1311340C (en) * 2004-05-10 2007-04-18 杭州斯达康通讯有限公司 Method for comparing versions when downloading computer data to mobile phone
CN1311341C (en) * 2004-05-10 2007-04-18 杭州斯达康通讯有限公司 Method for conducting digital signature when downloading computer data to mobile phone
GB2414138B (en) * 2004-05-12 2006-11-22 Nec Technologies Software update apparatus and method
US20060005046A1 (en) * 2004-06-30 2006-01-05 Seagate Technology Llc Secure firmware update procedure for programmable security devices
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7711965B2 (en) * 2004-10-20 2010-05-04 Intel Corporation Data security
DE102005016381A1 (en) * 2005-03-01 2006-09-14 Wincor Nixdorf International Gmbh Method for secure function release of modules
US8086853B2 (en) * 2005-03-18 2011-12-27 Microsoft Corporation Automatic centralized authentication challenge response generation
WO2007096735A2 (en) * 2006-02-22 2007-08-30 Axalto S.A. An authentication token for identifying a cloning attack onto such authentication token
JP2007226740A (en) * 2006-02-27 2007-09-06 Kyocera Corp Communication system, software updating method, communication device, management server device, and program
US7975030B2 (en) * 2006-05-09 2011-07-05 Cisco Technology, Inc. Remote configuration of devices using a secure connection
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US8612538B2 (en) * 2007-08-21 2013-12-17 Honeywell International Inc. System and method for upgrading telemonitor unit firmware
WO2010014109A1 (en) * 2008-08-01 2010-02-04 Hewlett-Packard Development Company, L.P. Verifying firmware
US9405939B2 (en) * 2008-10-07 2016-08-02 Arm Limited Data processing on a non-volatile mass storage device
US9270683B2 (en) * 2009-05-15 2016-02-23 Amazon Technologies, Inc. Storage device authentication
JP5740646B2 (en) * 2010-01-12 2015-06-24 日本電産サンキョー株式会社 How to download software
US9081633B2 (en) * 2010-05-24 2015-07-14 Microsoft Technology Licensing, Llc Remote application connection sharing
US10075471B2 (en) 2012-06-07 2018-09-11 Amazon Technologies, Inc. Data loss prevention techniques
US10084818B1 (en) 2012-06-07 2018-09-25 Amazon Technologies, Inc. Flexibly configurable data modification services
US9286491B2 (en) 2012-06-07 2016-03-15 Amazon Technologies, Inc. Virtual service provider zones
US9590959B2 (en) 2013-02-12 2017-03-07 Amazon Technologies, Inc. Data security service
US10467422B1 (en) 2013-02-12 2019-11-05 Amazon Technologies, Inc. Automatic key rotation
US10211977B1 (en) * 2013-02-12 2019-02-19 Amazon Technologies, Inc. Secure management of information using a security module
US9300464B1 (en) 2013-02-12 2016-03-29 Amazon Technologies, Inc. Probabilistic key rotation
US9705674B2 (en) 2013-02-12 2017-07-11 Amazon Technologies, Inc. Federated key management
US10210341B2 (en) 2013-02-12 2019-02-19 Amazon Technologies, Inc. Delayed data access
US9367697B1 (en) 2013-02-12 2016-06-14 Amazon Technologies, Inc. Data security with a security module
US9547771B2 (en) 2013-02-12 2017-01-17 Amazon Technologies, Inc. Policy enforcement with associated data
JP6070316B2 (en) * 2013-03-19 2017-02-01 富士通株式会社 Legitimacy judgment method, legitimacy judgment program, and legitimacy judgment device
US9832171B1 (en) 2013-06-13 2017-11-28 Amazon Technologies, Inc. Negotiating a session with a cryptographic domain
DE202014011598U1 (en) * 2014-04-29 2023-02-13 Cambridge Mobile Telematics System for obtaining vehicle telematics data
US9397835B1 (en) 2014-05-21 2016-07-19 Amazon Technologies, Inc. Web of trust management in a distributed system
US9438421B1 (en) 2014-06-27 2016-09-06 Amazon Technologies, Inc. Supporting a fixed transaction rate with a variably-backed logical cryptographic key
US9866392B1 (en) 2014-09-15 2018-01-09 Amazon Technologies, Inc. Distributed system web of trust provisioning
US9979667B2 (en) 2014-09-30 2018-05-22 T-Mobile Usa, Inc. Home-based router with traffic prioritization
US10469477B2 (en) 2015-03-31 2019-11-05 Amazon Technologies, Inc. Key export techniques
CN104850445A (en) * 2015-06-05 2015-08-19 东信和平科技股份有限公司 Safe software upgrading method, device and system
JP2017022654A (en) * 2015-07-14 2017-01-26 株式会社東芝 Storage device and method
US9767318B1 (en) * 2015-08-28 2017-09-19 Frank Dropps Secure controller systems and associated methods thereof
US9998285B2 (en) 2015-12-22 2018-06-12 T-Mobile Usa, Inc. Security hardening for a Wi-Fi router
US10021021B2 (en) 2015-12-22 2018-07-10 T-Mobile Usa, Inc. Broadband fallback for router
US10303884B2 (en) * 2016-09-22 2019-05-28 Apple Inc. Countersigning updates for multi-chip devices
US10346071B2 (en) 2016-12-29 2019-07-09 Western Digital Technologies, Inc. Validating firmware for data storage devices
US10657261B2 (en) * 2017-11-30 2020-05-19 Mocana Corporation System and method for recording device lifecycle transactions as versioned blocks in a blockchain network using a transaction connector and broker service
US10057243B1 (en) 2017-11-30 2018-08-21 Mocana Corporation System and method for securing data transport between a non-IP endpoint device that is connected to a gateway device and a connected service
WO2020117549A1 (en) 2018-12-06 2020-06-11 Mocana Corporation System and method for zero touch provisioning of iot devices
US10430179B1 (en) * 2019-03-07 2019-10-01 Capital One Services, Llc Methods and systems for managing application configurations
CN114662087B (en) * 2022-05-20 2022-09-02 广州万协通信息技术有限公司 Multi-terminal verification security chip firmware updating method and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0809182A1 (en) * 1996-05-20 1997-11-26 Nec Corporation Application software distribution system and method, and medium storing application software distributing program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3486043B2 (en) * 1996-03-11 2004-01-13 株式会社東芝 Operating method of software distribution system and software system
US5889860A (en) * 1996-11-08 1999-03-30 Sunhawk Corporation, Inc. Encryption system with transaction coded decryption key
US6378069B1 (en) * 1998-11-04 2002-04-23 Nortel Networks Limited Apparatus and methods for providing software updates to devices in a communication network
US6154543A (en) * 1998-11-25 2000-11-28 Hush Communications Anguilla, Inc. Public key cryptosystem with roaming user capability

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0809182A1 (en) * 1996-05-20 1997-11-26 Nec Corporation Application software distribution system and method, and medium storing application software distributing program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"GAME CARTRIDGE PROGRAMMER FOR HOME USE", IBM TECHNICAL DISCLOSURE BULLETIN,US,IBM CORP. NEW YORK, vol. 39, no. 3, 1 March 1996 (1996-03-01), pages 195 - 197, XP000581670, ISSN: 0018-8689 *
"TABLE-DRIVEN SELECTIVE SOFTWARE DOWNLOAD", IBM TECHNICAL DISCLOSURE BULLETIN,US,IBM CORP. NEW YORK, vol. 32, no. 9B, 1 February 1990 (1990-02-01), pages 40 - 41, XP000082223, ISSN: 0018-8689 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2365169A (en) * 1999-12-15 2002-02-13 Pitney Bowes Inc Method and system for providing built-to-order software applications.
US6668375B1 (en) 1999-12-15 2003-12-23 Pitney Bowes Inc. Method and system for providing build-to-order software applications
GB2365169B (en) * 1999-12-15 2004-07-07 Pitney Bowes Inc Method and system for providing build-to-order software applications.
EP1580663A4 (en) * 2002-11-13 2010-04-28 Netac Technology Co Ltd A method for realizing security data storage and algorithm storage by means of semiconductor memory device
EP1580663A1 (en) * 2002-11-13 2005-09-28 Netac Technology Co., Ltd. A method for realizing security data storage and algorithm storage by means of semiconductor memory device
EP1621998A1 (en) * 2003-05-07 2006-02-01 Sony Corporation Information processing device and method, recording medium, and program
EP1621998A4 (en) * 2003-05-07 2007-05-02 Sony Corp Information processing device and method, recording medium, and program
US8079028B2 (en) 2003-05-07 2011-12-13 Sony Corporation Information processing device and method, recording medium and program
EP1770585A3 (en) * 2005-09-30 2010-04-21 Samsung Electronics Co., Ltd. Security method and system and computer-readable medium storing computer program for executing the security method
US8638932B2 (en) 2005-09-30 2014-01-28 Samsung Electronics Co., Ltd. Security method and system and computer-readable medium storing computer program for executing the security method
WO2008001322A2 (en) * 2006-06-30 2008-01-03 International Business Machines Corporation Message handling at a mobile device
WO2008001322A3 (en) * 2006-06-30 2008-06-19 Ibm Message handling at a mobile device
CN101662533B (en) * 2008-08-27 2013-02-20 深圳富泰宏精密工业有限公司 Software updating system and method

Also Published As

Publication number Publication date
US6546492B1 (en) 2003-04-08
AU3708400A (en) 2000-10-16

Similar Documents

Publication Publication Date Title
US6546492B1 (en) System for secure controlled electronic memory updates via networks
US5457737A (en) Methods and apparatus to verify the identity of a cellular mobile phone
US9143888B2 (en) Method for the authentication of applications
US9450759B2 (en) Apparatus and methods for controlling distribution of electronic access clients
US8001615B2 (en) Method for managing the security of applications with a security module
CN101583124B (en) Authentication method and system of subscriber identity module and terminal
US8208897B2 (en) Portable wireless terminal and its security system
EP2106191B1 (en) A method for updating a smartcard and a smartcard having update capability
US20070050622A1 (en) Method, system and apparatus for prevention of flash IC replacement hacking attack
US20130283040A1 (en) Method, system and device for binding and operating a secure digital memory card
EP0977396A2 (en) Method for establishing a key using over-the-air communication and password protocol
KR20100035712A (en) Method and apparatus for providing security in a radio frequency identification system
CN101663903A (en) Secure soft sim credential transfer
CN106027475B (en) The transmission method and system of a kind of key acquisition method, ID card information
CN106027457B (en) A kind of ID card information transmission method and system
KR100910432B1 (en) Method and apparatus for providing secure processing and data storage for a wireless communication device
US8990887B2 (en) Secure mechanisms to enable mobile device communication with a security panel
CN111583482A (en) Access control system based on two-dimensional code and control method thereof
US8121580B2 (en) Method of securing a mobile telephone identifier and corresponding mobile telephone
CN1695362B (en) Secure access to a subscription module
EP2175674B1 (en) Method and system for paring devices
US20020053022A1 (en) Security arrangement for exchange of encrypted information
GB2412544A (en) Visual verification of the user of a mobile device
WO2004071008A1 (en) Method for setting up a secure connection using public and private key generated in user terminal
EP1587037A1 (en) Method and system for storing and accessing data

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase