System for inhibiting installing a radio configuration file onto a software defined radio device unless the file is compatible with the device
A method for securely connecting a software defined radio (SDR) to a server through a network is presented. A request to download a radio configuration (R-CFG) file is sent from the SDR device to the server. A determination is made that the R-CFG file is configured to control a plurality of radio frequency parameters for the SDR device solely within levels permitted by a regulatory agency. The R-CFG is then downloaded to the SDR device.
Latest Matsushita Electric Industrial Co., Ltd. Patents:
- Cathode active material for a nonaqueous electrolyte secondary battery and manufacturing method thereof, and a nonaqueous electrolyte secondary battery that uses cathode active material
- Optimizing media player memory during rendering
- Navigating media content by groups
- Optimizing media player memory during rendering
- Information process apparatus and method, program, and record medium
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.
FIELD OF THE INVENTIONThe 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.
BACKGROUND OF THE INVENTIONA 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.
-
- P12>P11, P12>P14 P23>P22, P23>P24
- P34>P33 Pt>P44
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.
Claims
1. A computer-implemented method for downloading a radio configuration (R-CFG) file onto a software defined radio (SDR) device from a server comprising:
- forming a secure connection between the SDR device and the server;
- sending a message that requests the R-CFG to be downloaded over the network from the server to the SDR device;
- downloading the R-CFG from the server to the SDR; and
- using a device manager on the SDR device to inhibit installing of the R-CFG onto the SDR device until after it determines whether the R-CFG is compatible with the SDR device.
2. The computer-implemented method of claim 1, wherein the R-CFG is compatible with the SDR device provided that the R-CFG controls at least one radio frequency parameter solely within a permitted level established by a regulatory agency.
3. The computer-implemented method of claim 1, wherein the R-CFG is compatible with the SDR device provided that the R-CFG is configured to execute on a particular type of SDR device.
4. The computer-implemented method of claim 1, wherein a jurisdiction identifier is transmitted with the message.
5. The computer-implemented method of claim 4, wherein the jurisdiction identifier can be modified by a user of the SDR device.
6. A method for downloading a R-CFG file onto a SDR device from a server comprising:
- forming a secure connection between the SDR device and the server;
- receiving a message that requests the R-CFG to be downloaded to the SDR device;
- determining a type of SDR device to receive the R-CFG from the request message;
- making a determination based on the SDR device type whether the R-CFG file is configured to control a plurality of radio frequency parameters solely within permitted levels established by a regulatory agency; and
- uploading the R-CFG from the server to the SDR based on the determination.
7. A method for downloading a radio configuration (R-CFG) file onto a software defined radio (SDR) device from a server comprising:
- forming a secure connection between the SDR device and the server;
- receiving a message that requests the R-CFG to be downloaded to the SDR device;
- determining a type of SDR device to receive the R-CFG from the request message;
- making a determination whether the R-CFG file is compatible with the SDR device; and
- uploading the R-CFG from the server to the SDR based on the determination.
8. The computer-implemented method of claim 7, wherein the R-CFG is compatible with the SDR device provided that the R-CFG is configured to execute on a particular type of SDR device.
9. The computer-implemented method of claim 7, wherein a jurisdiction identifier is transmitted with the message.
10. The computer-implemented method of claim 7, wherein the jurisdiction identifier can be modified by a user of the SDR device.
11. An apparatus comprising:
- storage media including instructions stored thereon which when executed cause a computer system to perform a method including:
- forming a secure connection between the SDR device and a server of the computer system;
- receiving a message that requests the R-CFG to be downloaded to the SDR device;
- determining a type of SDR device to receive the R-CFG from the request message;
- making a determination whether the R-CFG file is compatible with the SDR device; and
- uploading the R-CFG from the server to the SDR based on the determination.
12. The apparatus of claim 11, wherein the R-CFG is compatible with the SDR device provided that the R-CFG is configured to execute on a particular type of SDR device.
13. The apparatus of claim 11, wherein a jurisdiction identifier is transmitted with the message.
14. The computer-implemented method of claim 11, wherein the jurisdiction identifier can be modified by a user of the SDR device.
6954634 | October 11, 2005 | Bucknell et al. |
7035932 | April 25, 2006 | Dowling |
20020144134 | October 3, 2002 | Watanabe et al. |
20030083055 | May 1, 2003 | Riordan et al. |
20030099358 | May 29, 2003 | Michael et al. |
20030100297 | May 29, 2003 | Riordan et al. |
20030158954 | August 21, 2003 | Williams |
20040268148 | December 30, 2004 | Karjala et al. |
20060015674 | January 19, 2006 | Murotake |
Type: Grant
Filed: Jul 30, 2004
Date of Patent: May 20, 2008
Patent Publication Number: 20060282497
Assignee: Matsushita Electric Industrial Co., Ltd. (Osaka)
Inventors: David A. Braun (Denville, NJ), Gregory M. Perkins (Pennington, NJ)
Primary Examiner: Le Luu
Attorney: Harness, Dickey & Pierce, PLC
Application Number: 10/565,973
International Classification: G06F 15/177 (20060101);