The present invention relates generally to wireless digital communications. More particularly, the present invention relates to a method for securely loading executable code onto a mobile device.
A significant demand exists for mobile devices capable of communicating in any wireless standard such as code division multiple access (CDMA) or global system for mobile communications (GSM). A software defined radio (SDR) device exemplifies such a device.
In a SDR device, functions that were formerly carried out solely in hardware, such as the generation of the transmitted radio signal and the tuning of the received radio signal, are controlled by software. Because these functions are controlled by software, the radio is programmable, allowing it to transmit and to receive over a wide range of frequencies and to emulate virtually any desired transmission format. Accordingly, instead of discarding the SDR device when a technological advance occurs, the SDR device merely requires downloading a software upgrade referred to as a radio configuration (R-CFG) file to accommodate this change.
There are several disadvantages associated with the present method for dynamically loading a R-CFG onto a SDR device. First, an inefficient amount of messaging occurs between the SDR device and a server of a SDR device manufacturer during the process of loading the R-CFG onto the SDR device. Second, a lack of security exists to prevent downloading malicious code onto the SDR device. Third, the present method lacks an automatic method of ensuring that a R-CFG does not exceed a permitted operating parameter (e.g., the frequency, the modulation type, the output power, and the maximum field strength) associated with the SDR device. It is therefore desirable to have a system or a method that overcomes these disadvantages.
The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:
The following description of the preferred embodiments is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements.
The present invention defines a secure and efficient communications protocol that supports a wireless radio configuration (R-CFG) file download process to a software defined radio (SDR) device from a server. Mutual authentication occurs between the SDR device and the server to ensure malicious code is not loaded onto the SDR device. The SDR device then requests a R-CFG file from a server. The requested R-CFG file is downloaded over the air (OTA) to the SDR device. A device manager on the SDR device then determines whether the R-CFG file is compatible with the SDR device. A R-CFG file is compatible if the SDR device if the SDR device does not exceed its operating parameters as designated by a regulatory agency (RA) such as the Federal Communications Commission (FCC). Other compatibility issues involve whether the R-CFG matches the type of SDR device and the version of the computer program on the SDR device. In another embodiment, the server 140 determines the compatibility of the R-CFG file with the SDR device before downloading the R-CFG to the SDR device. In some embodiments, both the server and the SDR device determine one or more compatibility criteria. Thus, some or all compatibility criteria determinations can be performed redundantly.
Referring now to
For simplicity, the communication protocol on the server 140 is divided into four modules; however, skilled artisans understand that more or less modules may also be used. Module one (M1) through module four (M4) use five distinct messages to download a R-CFG file to a SDR device. These messages include REQ, ACK, ERR-X where X is the index of the error from 1 to 3, DATA for packets, and END.
M1 establishes a connection to a SDR DM 120 on a SDR device through the use of hypertext transfer protocol (HTTP), secure sockets layer (SSL) protocol, or lightweight SSL (LSSL). Preferably, SSL or LSSL are used when a more secure connection is necessary to protect confidential data.
Mutual authentication between the DM 120 of the SDR device 110 and the server 140 is performed to prevent malicious code from being loaded onto the SDR device. This is accomplished by the server 140 sending its RSA certificate to the DM 120. The DM 120 verifies the information in the RSA certificate. After authenticating the server 140, the DM 120 then provides information in a certificate that authenticates itself to the server 140.
After mutual authentication, M2 is initiated. The DM 120 sends the R-CFG request message (i.e., REQ) over a network to the server 140. The server 140 determines whether it has access to the requested R-CFG. In the meantime, the DM 120 waits for an acknowledgement message (i.e. ACK) from the server 140 that confirms it has the requested R-CFG. If a timeout period expires without the DM 120 receiving such a response, the DM 120 resends the R-CFG request, up to k times, as shown in
If an error occurs during the downloading of the R-CFG, the DM 120 of the SDR device sends an ERR_2 message, as shown in
Generally, M3 involves performing security computations related to the R-CFG. The DM 120 determines whether the R-CFG file meets certain security requirements such as whether the R-CFG is compatible with the SDR device. If the DM 120 determines that the downloaded R-CFG is incompatible with the SDR device, an error message ERR_3 is returned, informing the server 140 that the SDR device received an invalid R-CFG. The connection is then terminated.
The security computations involve validation and/or a data integrity check of the R-CFG. Validation typically involves ensuring that the R-CFG has regulatory preapproval for use on a particular SDR device, the R-CFG is digitally signed, and is appropriate for the SDR device. There are many techniques that may be used to validate the R-CFG. For example, some or all of this information may be verified through a public-private key mechanism. To illustrate, after downloading the R-CFG, a header associated with the R-CFG, and a signature Skr(h) to the SDR device, the DM 120 checks the header to ensure the R-CFG is appropriate for the SDR device. The DM 120 then verifies the digital signature by using the public key as shown in
Skilled artisans appreciate that prior to the DM 120 downloading the R-CFG, the header, and the signature Skr(h), the RA or some other entity inputs both the header and the R-CFG file into a hash function, thereby obtaining a certain hash value h. Generally, this operation may be performed during a time in which the R-CFG is being tested in combination with the SDR device to ensure that the permitted ranges of radio frequency operating parameters cannot be exceeded. After completing this task, value h is then signed with the server's 140 private key Kr.
The DM 120 may also verify data integrity of the R-CFG. Data integrity ensures that the R-CFG has been approved, signed, and not improperly modified. This verification is accomplished through a series of operations. First, the DM 120 calculates a new hash value h′ by inputting the received header and the R-CFG into the same hash function used when the R-CFG was signed. Second, the DM 120 decrypts the received EKr(h) to obtain h. Third, the DM 120 compares h and h′. If h=h′, then the received R-CFG is signed, approved and the data has not been damaged or modified. Alternatively, if h≠h′, the DM 120 rejects the R-CFG. After validation and/or verifying the data integrity of the R-CFG, the DM 120 acknowledges that it has completed its security calculations. In response, the server 140 acknowledges receipt of the completion message from the DM 120.
In M4, the DM 120 releases the connection. Errors can occur when exchanging messages in this module. For instance, the server 140 may never receive the completion message from the SDR device. In this case, a timeout period expires and the server 140 voluntarily ends the connection. The next time this SDR device connects to the network using the new R-CFG, the server 140 updates that information in a database. Other typical timeout periods can still occur, as shown in
In another embodiment to M2 shown in
Referring now to
Each state represents one module (M1 through M4) in the communication protocol. An arrow from one state to another state indicates that the protocol's execution successfully flows from this module to the next module with a certain transition probability. For example, the probability to go from the M1 to M2 states is P12, the probability to loop in M2 is P22, and so on. The probability of correct termination in M4 is Pt. Under normal conditions, the probability that the communication protocol's normal execution flow occurs is higher than any other flows, as shown below.
Referring to
Whenever the protocol execution reaches M4, the protocol is properly terminated. Improper terminations may occur in three different stages: before, during, or after the R-CFG download. If an improper termination occurs before or during the downloading process, the cause of the improper termination most likely remains and therefore causes the download to occur again. If improper termination occurs after the downloading process is completed, the server 140 receives a message as to whether the SDR device accepted the new R-CFG. This message is sent once the SDR device reconnects to the manufacturer's server 140. Otherwise, M4 terminates the session.
Generally, the communication protocol properly terminates if each message is transmitted with a finite delay. For example, consider a message, mi, being transmitted by the SDR device at time t1. As such, t2 is the time that the server 140 correctly receives mi and t3 the time at which the SDR device sends mi+1. Showing that t1<t2<t3 and that t3 is finite, is sufficient to demonstrate liveness, since by induction each message is transmitted with finite delay.
R(t) is the received sequence number as a function of time at the server and S(t) is the transmitted sequence number at the client. N(t) is the sequence number of the next expected transmission (N(t)=R(t)+1)). S(t) is the largest request number received from the manufacturer's server up to time t. Therefore, S(t)≦N(t) and N(t)≦i. This is due to the fact that R(t) is incremented to i+1 at t2, and S(t) is incremented to i+1 at t3 and S(t)≦N(t) it follows that t2<t3.
The SDR device transmits mi repeatedly, with a finite timeout between retransmission, from t1 until it is first received error-free at t2. Since there is a probability p>0 that each transmission is received correctly, an error-free reception eventually occurs and t2 is finite. t3 is finite using a similar argument from the server-side. The server-side consistency is obtained by applying similar principles described above.
Referring now to
In these experiments, a 128-bit session key was used to encrypt the communications. Both the client and the server certificates are X.509 certificates. A 1024-bit RSA public/private key pair for our server. The public key is imported to the SDR device to generate a private key used to sign the approved R-CFG. The implemented hash function uses the full version of MD5. MD5 is currently thought to be secure even if MD5 makes only one round.
In each experiment, different R-CFG files ranging in size from 52 Kilobytes (KB) to 210 KB were transferred. For experiment 1, time measurements were taken to determine the time it took to establish a HTTP connection between the client 110 and the server 140, the total time to download the R-CFG, and the total connection time. For experiments 2, 3, and 4, time measurements were taken to determine the amount of time to establish a HTTP connection, a LSSL or SSL connection, the total time it took to download the R-CFG+signature, the time to validate and check data integrity of the R-CFG, and the total connection time. Each experiment was executed 100 times and the averaged results noted.
When proprietary information is included in R-CFG, it is preferable to use LSSL or SSL to ensure a secure connection between the SDR device and the server 140. As shown in
The description of the invention is merely exemplary in nature and, thus, variations that do not depart from the gist of the invention are intended to be within the scope of the invention. Such variations are not to be regarded as a departure from the spirit and scope of the invention.
This application claims the benefit of U.S. Provisional Application No. 60/491,121, filed on Jul. 30, 2003. The disclosure of that application is incorporated herein by reference in its entirety for any purpose.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2004/024602 | 7/30/2004 | WO | 00 | 1/26/2006 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2005/013540 | 2/10/2005 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6954634 | Bucknell et al. | Oct 2005 | B1 |
7035932 | Dowling | Apr 2006 | B1 |
20020144134 | Watanabe et al. | Oct 2002 | A1 |
20030083055 | Riordan et al. | May 2003 | A1 |
20030099358 | Michael et al. | May 2003 | A1 |
20030100297 | Riordan et al. | May 2003 | A1 |
20030158954 | Williams | Aug 2003 | A1 |
20040268148 | Karjala et al. | Dec 2004 | A1 |
20060015674 | Murotake | Jan 2006 | A1 |
Number | Date | Country | |
---|---|---|---|
20060282497 A1 | Dec 2006 | US |
Number | Date | Country | |
---|---|---|---|
60491121 | Jul 2003 | US |