throbber
US007 181726B2
`
`(12) United States Patent
`Fam
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,181,726 B2
`Feb. 20, 2007
`
`(54) METHOD FOR PROVIDING ACTIVE
`PROTECTION TO PROGRAMMING TOOLS
`FOR PROGRAMMABLE DEVICES
`
`(75) Inventor: Swee-Koon Fam, Sandiago, CA (US)
`(73) Assignee: BenQ Corporation, Tao-Yuan Hsien
`(TW)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 545 days.
`(21) Appl. No.: 10/248,989
`
`(*) Notice:
`
`(22) Filed:
`
`Mar. 7, 2003
`
`(65)
`
`Prior Publication Data
`US 2004/0177341 A1
`Sep. 9, 2004
`
`(51) Int. Cl.
`(2006.01)
`G06F 9/44
`(52) U.S. Cl. ...................... 717/121; 717/174; 717/175;
`717/177,717/178
`(58) Field of Classification Search ........ 717/148-178;
`713/165. 176; 705/74; 707/10
`See application file for complete search history.
`References Cited
`U.S. PATENT DOCUMENTS
`
`(56)
`
`1/2000 Maes et al.
`6,016,476 A
`2002/0078353 A1* 6/2002 Sandhu et al. .............. 713/17O
`2004/0073801 A1* 4/2004 Kalogridis et al. ......... 713, 176
`2004/0117623 A1* 6/2004 Kalogridis et al. ......... T13,165
`
`2005, 0102244 A1* 5/2005 Dickinson et al. ............ 705/74
`2005, 0160.095 A1
`7/2005 Dick et al. .................... 707/10
`
`FOREIGN PATENT DOCUMENTS
`
`CN
`TW
`
`1187646 A
`487839
`
`7, 1998
`5, 2002
`
`* cited by examiner
`Primary Examiner Meng-Al T. An
`Assistant Examiner Mark P. Francis
`(74) Attorney, Agent, or Firm Winston Hsu
`
`(57)
`
`ABSTRACT
`
`A method includes providing a programmable device. Such
`as a mobile phone, having a plurality of operational modes
`and a key data, and providing a computer system having
`configuration data corresponding to the plurality of opera
`tional modes. An authorized portion of the configuration
`data corresponds to the key data and to at least one autho
`rized operational mode of the mobile phone. The method
`further includes sending the key data from the mobile phone
`to the computer system over a data connection, then, acti
`Vating the authorized configuration data at the computer
`system referencing the received key data, before finally,
`programming the mobile phone with the authorized con
`figuration data through the data connection to enable a
`predetermined authorized operational mode. Protection
`from errors in programming and device cloning is insured,
`as the computer system is prevented from programming the
`mobile phone until receiving the key data from the mobile
`phone.
`
`14 Claims, 3 Drawing Sheets
`
`Computer System
`
`10
`
`r interface
`Use
`
`18
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Configuration
`informat1On
`Authorized
`configuration
`data
`
`Authorized
`;configuration
`
`APPLE 1005
`
`1
`
`

`

`U.S. Patent
`
`US 7,181,726 B2
`
`
`
`
`
`
`
`
`
`| 514
`
`
`enep
`
`UOIme InêIJUOD
`
`2
`
`

`

`U.S. Patent
`
`Feb. 20, 2007
`
`Sheet 2 of 3
`
`US 7,181,726 B2
`
`80[|uoren81yuoopaztuoyinepuas|
`
`GOI
`
`OOT
`
`901
`
`eyepAdySSId0Ig
`
` Jaynduioo0}auoyd
`
`OTT
`
`
`
`auoydwWiess0ld
`
`
`
`POL—|woseyepAdypuas
`auoyd0}1ayndu0dWolfBlep
`
`UOTOIUUODYst[qeisy
`
`oll
`
`@SI
`
`
`
`3
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 20, 2007
`
`Sheet 3 of 3
`
`US 7,181,726 B2
`
`200
`
`
`
`Establish connection
`
`
`
`
`
`Computer requests
`key data
`
`
`
`Send key data from
`phone to computer
`
`Process key data
`
`204
`
`206
`
`208
`
`Send authorized configuration
`data from computer to phOne
`
`210
`
`212
`
`Confirm data Ok?
`
`Y eS
`
`
`
`
`
`
`
`
`
`4
`
`

`

`US 7,181,726 B2
`
`1.
`METHOD FOR PROVIDING ACTIVE
`PROTECTION TO PROGRAMMING TOOLS
`FOR PROGRAMMABLE DEVICES
`
`BACKGROUND OF INVENTION
`
`10
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`1. Field of the Invention
`The present invention relates to digital electronics, and
`more specifically, to computer-based programming tools and
`software for handheld digital electronic devices.
`2. Description of the Prior Art
`Protecting computer Software from misuse has been a
`concern since computers were first developed. One form of
`misuse, Software piracy, normally only results in lost rev
`enue for software developers and publishers, but can have
`more significant consequences. Software piracy and misuse
`has conventionally been fought with various protection
`schemes employing encryption or activation methods.
`A typical Software protection scheme validates a user
`password before enabling and executing a software appli
`cation. This type of scheme is useful for database access
`where different users have different access rights. Another
`conventional protection Scheme common with commercial
`Software applications is a hardware key. Hardware keys can
`take the form of a CD being inserted into a CD drive for
`protecting a home-user application, or a specialized hard
`ware lock (dongle) used for protecting high-end professional
`applications. Besides resulting in inconveniences to users,
`typical protection schemes are easily worked around and
`circumvented.
`When applied to programming Software used to program
`electronic devices, such as programming tools used by
`service providers to program mobile phones, typical Soft
`ware protection schemes offer few advantages. First, these
`schemes are easily defeated, and it can generally be assumed
`that any individual who desires to obtain such protected
`programming tools can obtain them and negate the protec
`tion scheme. Second, these schemes simply passively pro
`tect the Software programming tools from access or unau
`thorized copying, and offer no further means of protecting
`against actual misuse while the programming tools are
`functioning. This is a particularly notable shortcoming in the
`case of mobile phone cloning.
`Once a protection scheme for a set of programming tools
`has been defeated, programming a mobile phone is straight
`forward. Parameters can be sent to the phone indiscrimi
`nately. If these parameters contain errors, the mobile phone
`may operate incorrectly or even cease to operate. When
`these parameters are stolen or duplicated a mobile phone can
`be cloned. Thus, the capabilities of these programming tools
`need to be protected to safeguard the functionality of indi
`vidual mobile phones and entire mobile phone networks.
`Conventionally, programming tools for mobile phones or
`other electronic devices have been protected against unau
`thorized copying and use by conventional software protec
`tion schemes, such as the hardware key or password Vali
`dation schemes. The disadvantages of these schemes require
`that an improved method be developed.
`
`2
`Briefly Summarized, a method according to the present
`invention includes providing a programmable device having
`a plurality of operational modes and a key data, and pro
`viding a computer system having configuration data corre
`sponding to the plurality of operational modes of the pro
`grammable device. An authorized portion of the
`configuration data corresponds to the key data and to at least
`one authorized operational mode. The method further
`includes, first, establishing a data connection between the
`computer system and the programmable device and sending
`the key data from the programmable device to the computer
`system over the data connection, then, activating the autho
`rized configuration data at the computer system referencing
`the received key data, before finally, programming the
`programmable device with the authorized configuration data
`through the data connection to enable a predetermined
`authorized operational mode.
`According to the present invention, the method can fur
`ther include locking configuration data not corresponding to
`the key data at the computer system. Locked configuration
`data being unusable when programming the programmable
`device.
`According to the present invention, the method can fur
`ther include confirming the authorized configuration data by
`referencing the key data with the programmable device and
`rejecting configuration data received not corresponding to
`the key data before programming the programmable device
`with the authorized configuration data.
`It is an advantage of the present invention that the
`programmable device Supplies critical information, namely
`the key data, to the computer system. And, the computer
`system is unable to program the programmable device
`without this critical information.
`It is a further advantage of the present invention that the
`key data includes limitations to how the programmable
`device can be programmed, in effect, reducing the probabil
`ity that the programmable device is programmed errone
`ously or in an unauthorized manner.
`It is a further advantage of the present invention that
`misuse of software embodying the method is prevented by
`information contained in a specific programmable device.
`These and other objectives of the present invention will
`no doubt become obvious to those of ordinary skill in the art
`after reading the following detailed description of the pre
`ferred embodiment that is illustrated in the various figures
`and drawings.
`
`50
`
`55
`
`BRIEF DESCRIPTION OF DRAWINGS
`
`FIG. 1 is a schematic diagram of a computer system for
`programming a mobile phone according to the present
`invention.
`FIG. 2 is a flowchart of a method according to a first
`embodiment of the present invention.
`FIG. 3 is a flowchart of a method according to a second
`embodiment of the present invention.
`
`DETAILED DESCRIPTION
`
`SUMMARY OF INVENTION
`
`It is therefore a primary objective of the present invention
`to provide a method for providing active protection to
`programming tools for programmable devices to provide
`security, and further, to prevent errors in programming,
`accordingly solving the abovementioned problems of the
`prior art.
`
`60
`
`65
`
`The present invention is described in the following as
`applied to programming a mobile phone. The present inven
`tion can be applied to other programmable electronic
`devices as well.
`Please refer to FIG. 1 showing a computer system 10 for
`programming a mobile phone 30. The computer system 10
`includes a processor 12 and a memory 14, Such as a random
`access memory, in a combination well known in the art. The
`
`5
`
`

`

`US 7,181,726 B2
`
`3
`computer further comprises a mass storage device 16, Such
`as a hard drive, and a user interface 18 including a monitor,
`keyboard, pointing device, etc. A data cable 24, or similar
`data transmission device Such as radio transmitters and
`receivers, connects the computer system 10 to the mobile
`phone 30. The mass storage device 16 stores configuration
`information 20 for the mobile phone 30.
`The configuration information 20 includes operating data
`and parameters required for the mobile phone 30 to function
`Such as mobile phone operating Software, network informa
`tion, service provider information, hardware settings, and
`other similar information for Supporting a wide variety of
`mobile phones. The configuration information 20 can be in
`the form of discrete files, each for a distinct mobile phone
`model, serial number, or unique identification number, or
`can have a more generalized data structure. A user can
`modify or amend the configuration data 20 thought the user
`interface 18, however, the user cannot select and transmit
`configuration information to the phone 30. A portion of the
`configuration information 20, or a single file in the case of
`discrete files, is authorized (by a service provider, vendor, or
`manufacturer) for loading to the mobile phone 30, and is
`represented in FIG. 1 as authorized configuration data 22.
`The authorized configuration data 22 present in a memory of
`a mobile phone means the mobile phone is effectively
`programmed into a corresponding authorized operational
`mode. In practical application there is one set of authorized
`configuration data for each mobile phone to be programmed,
`only one authorized configuration data 22 being shown for
`clarity.
`The mobile phone 30 includes a processor 32 and a
`memory 34. The memory 34 stores key data 36 and phone
`data 38, and is capable of storing authorized configuration
`data 22. The phone data 38 includes hardware information
`Such as manufacturer ID, serial number, time and date from
`an internal clock of the processor 32, unique phone identi
`fication number, and other generally non-configurable infor
`mation. The processor 32 acts on the authorized configura
`tion data 22 stored in the memory 34 to realize the functions
`of the mobile phone 30. That is, the authorized configuration
`data 22 is essential to the operation of the mobile phone 30
`and provides the authorized operational mode. For example,
`the authorized configuration data 22 can comprise a service
`provider identification number, so that the processor 32 can
`instruct related systems of the phone 30 to communicate
`with cellular base stations of the correct service provider.
`Before the phone 30 is programmed with the authorized
`configuration data 22, it is nonfunctional. When the mobile
`phone 30 is connected to the computer system 10 through
`the cable 24 and a data connection is established, the mobile
`phone 30 is ready to be programmed with the authorized
`configuration data 22.
`Please refer to FIG. 2 showing a flowchart of a method
`according a first embodiment of the present invention. The
`flowchart of FIG. 2 is described as follows with reference to
`FIG 1.
`Step 100: Start:
`Step 102: Establish a data capable connection between the
`computer 10 and the mobile phone 30 through the connec
`tion cable 24. Once the cable 24 is connected, the processor
`12 of the computer 10 initiates the connection with the
`processor 32 of the phone 30:
`Step 104: The mobile phone 30, detecting the completion
`of the established connection, sends the key data 36 stored
`in the memory 34 to the computer 10;
`Step 106: The computer 10 receives and processes the key
`data 36 correlating it to the configuration information 20 to
`determine the authorized configuration data 22.
`Step 108: The computer 10 sends the authorized configu
`ration data 22 to the mobile phone 30:
`
`40
`
`45
`
`4
`Step 110: The mobile phone 30 receives the authorized
`configuration data 22 and becomes programmed;
`Step 112: End.
`In this way, the above method as illustrated in FIG. 2
`programs the mobile phone 30 with only a preauthorized
`configuration to realize a predetermined operational mode.
`The above method requires very little user interaction, and
`does not support a user directed transfer of configuration
`data to the mobile phone 30. Limited non-critical user
`interaction is allowed through the user interface 18. As a
`result, the mobile phone 30 is prevented from being given
`erroneous or prohibited configuration information, even
`though such information may be stored in the computer 10.
`Further programming can occur in step 110 according to
`other programming tools on the computer system 10, which
`unlocks these tools based on the key data 36 received.
`Please refer to FIG. 3 showing a flowchart of a method
`according to a second embodiment of the present invention.
`The flowchart of FIG. 3 is described as follows with
`reference to FIG. 1.
`Step 200: Start:
`Step 202: Establish a data capable connection between the
`computer 10 and the mobile phone 30 through the connec
`tion cable 24. Once the cable 24 is connected, the processor
`12 of the computer 10 initiates the connection with the
`processor 32 of the phone 30:
`Step 204: The computer 10 sends a request to the mobile
`phone 30 for the key data 36:
`Step 206: The mobile phone 30, receiving and verifying
`the request from the computer 10, sends the key data 36
`stored in the memory 34 to the computer 10;
`Step 208: The computer 10 receives and processes the key
`data 36 correlating it to the configuration information 20 to
`determine the authorized configuration data 22.
`Step 210: The computer 10 sends the authorized configu
`ration data 22 to the mobile phone 30:
`Step 212: The mobile phone 30 receives the authorized
`configuration data 22 and compares it to expected data,
`effectively confirming the configuration data 22 using the
`key data 36. The mobile phone 30 rejects any data received
`that does not correspond to the key data 36. This provides
`another layer of protection and also verifies the Success of
`the data transfer. If the configuration data 22 is confirmed as
`correct go to step 214, otherwise return to step 206;
`Step 214: Upon confirming the received authorized con
`figuration data 22, the mobile phone 30 becomes pro
`grammed;
`Step 216: The processor 32 of the mobile phone 30
`determines how many times the mobile phone 30 has been
`programmed. If the mobile phone 30 has been programmed
`more than a predetermined number of times, a new key data
`is required, go to step 218. If a new key is not required, go
`to step 220;
`Step 218: The processor 32 of the mobile phone 30
`generates a new key data from the phone data 38:
`Step 220: End.
`As described above, the method shown in FIG. 3 pro
`grams the mobile phone 30 with only a preauthorized
`configuration. The request step 204 allows for another layer
`of protection, via a password or similar well-known method.
`That is, the computer 10 is idle until a correct password is
`entered to initiate the programming of the mobile phone 30.
`The confirmation step 212 effectively confirms or verifies
`the configuration data 22 using the key data 36 as a refer
`ence. This can be accomplished, for instance, by including
`the key data 36 or a derivative of the key data 36 (such as
`a checksum) in the configuration data 22, and provides
`additional protection and verification of data transfer Suc
`cess. When the configuration data 22 is not properly con
`firmed, the mobile phone 30 resends the key data 36 to the
`
`10
`
`15
`
`25
`
`30
`
`35
`
`50
`
`55
`
`60
`
`65
`
`6
`
`

`

`US 7,181,726 B2
`
`10
`
`15
`
`25
`
`30
`
`5
`computer 10. In steps 216 and 218, after the same key data
`is used to program the phone 30 a predetermined number of
`times, the phone 30 generates a new key data. The phone 30
`generates this new key data using internal information, Such
`as the phone data 38, in the same way the original key data
`36 was determined. Alternatively, the computer 10 can keep
`track of the number of times the phone 30 has been pro
`grammed and prompt the phone 30 to generate a new key
`data accordingly. Regardless, the key data 36 and any new
`replacement key data should originate from the mobile
`phone 30 to ensure security. Furthermore, in step 214
`additional programming can occur according to other pro
`gramming tools on the computer system 10, the computer
`system 10 unlocking these tools after the key data 36 is
`received. The method illustrated in FIG.3 accomplishes the
`same task as the method of FIG. 2 with enhanced protection.
`In practical application, the present invention of protect
`ing programming the tools of a programmable device Such
`as a mobile phone can be realized with software and related
`hardware as illustrated in FIG. 1. The present invention is
`compatible with state of the art programming tools and
`programmable devices.
`In contrast to the prior art, the present invention provides
`an active protection method for programming tools of pro
`grammable devices. A programmable device sends a key
`data to a computer system, which then unlocks correspond
`ing configuration data (programming instructions) and sends
`this authorized configuration data to the programmable
`device. The computer system is incapable of programming
`the programmable device without receiving valid key data.
`Thus, the present invention method ensures that a program
`mable device cannot be programmed erroneously or in an
`unauthorized manner.
`Those skilled in the art will readily observe that numerous
`modifications and alterations of the device may be made
`while retaining the teachings of the invention. Accordingly,
`the above disclosure should be construed as limited only by
`the metes and bounds of the appended claims.
`What is claimed is:
`1. A method for providing protection to programming
`tools for programmable devices, the method comprising:
`40
`providing a programmable device having a plurality of
`operational modes and a key data, and providing a
`computer system having configuration data corre
`sponding to the plurality of operational modes of the
`programmable device, wherein an authorized portion of
`45
`the configuration data corresponds to the key data and
`to at least one authorized operational mode;
`establishing a data connection between the computer
`system and the programmable device; sending the key
`data from the programmable device to the computer
`system over the data connection;
`locking configuration data, not corresponding to the key
`data at the computer system, wherein locked configu
`ration data cannot be used to program the program
`mable device;
`55
`activating the authorized configuration data at the com
`puter system referencing the received key data; and
`programming the programmable device with the autho
`rized configuration data through the data connection to
`enable a predetermined authorized operational mode.
`2. The method of claim 1 further comprising requesting
`the key data from the programmable device with the com
`puter system before transmitting the key data from the
`programmable device to the computer system.
`3. The method of claim 1 further comprising confirming
`the authorized configuration data by referencing the key data
`with the programmable device and rejecting configuration
`
`50
`
`35
`
`60
`
`65
`
`6
`data received not corresponding to the key data before
`programming the programmable device with the authorized
`configuration data.
`4. The method of claim 1 wherein the programmable
`device is a mobile phone and the key data comprises a
`unique identification number of the mobile phone that
`differentiates the mobile phone from a multitude of other
`mobile phones.
`5. The method of claim 1 wherein the programmable
`device has an internal clock and the key data comprises a
`time stamp generated with the internal clock.
`6. The method of claim 1 wherein the key data comprises
`information identifying the predetermined authorized opera
`tional mode of the plurality of operational modes.
`7. The method of claim 1 wherein the key data comprises
`information identifying a vendor or manufacturer of the
`programmable device.
`8. The method of claim 1 further comprising counting a
`number of instances that the programmable device has been
`programmed with authorized configuration data, and storing
`the number of instances in the programmable device.
`9. The method of claim 8 further comprising generating a
`replacement key data with the programmable device after
`the programmable device has been programmed with the
`authorized configuration data by the computer system when
`the number of instances that the programmable device has
`been programmed exceeds a predetermined number.
`10. The method of claim 1 wherein the programmable
`device is a mobile phone comprising a memory for storing
`the key data and the authorized configuration data, and a
`processor for enabling the predetermined authorized opera
`tional mode.
`11. The method of claim 1 wherein the computer system
`comprises a connection port for establishing the data con
`nection; a processor and a memory for interpreting the key
`data, activating the authorized configuration data, and pro
`gramming the programmable device; a mass storage device
`for storing the configuration data; and a user interface.
`12. A method for providing protection to programming
`tools for programmable devices, the method comprising:
`providing a programmable device having a plurality of
`operational modes and a key data; providing a computer
`system having configuration data corresponding to the plu
`rality of operational modes of the programmable device,
`wherein an authorized portion of the configuration data
`corresponds to the key data and to at least one authorized
`operational mode; establishing a data connection between
`the computer system and the programmable device; sending
`the key data from the programmable device to the computer
`system over the data connection;
`locking configuration data, not corresponding to the key
`data at the computer system wherein locked configu
`ration data cannot be used to program the program
`mable device;
`activating the authorized configuration data at the com
`puter system referencing the received key data; trans
`mitting the authorized configuration data through the
`data connection from the computer system to the pro
`grammable device; the programmable device confirm
`ing the authorized configuration data by referencing the
`key data and rejecting received configuration data not
`corresponding to the key data before programming the
`programmable device with the authorized configuration
`data; and
`programming the programmable device with the autho
`rized configuration data through the data connection to
`enable a predetermined authorized operational mode.
`
`7
`
`

`

`US 7,181,726 B2
`
`7
`13. A method for providing protection to programming
`tools for programmable devices, the method comprising:
`providing a programmable device having a plurality of
`operational modes and a key data, and providing a computer
`system having configuration data corresponding to the plu- 5
`rality of operational modes of the programmable device,
`wherein an authorized portion of the configuration data
`corresponds to the key data and to at least one authorized
`operational mode;
`establishing a data connection between the computer 10
`system and the programmable device;
`locking configuration data, not corresponding to the key
`data at the computer system wherein locked configu
`ration data cannot be used to program the program
`mable device;
`sending the key data from the programmable device to the
`computer system over the data connection; activating
`
`15
`
`8
`the authorized configuration data at the computer sys
`tem referencing the received key data; programming
`the programmable device with the authorized configu
`ration data through the data connection to enable a
`predetermined authorized operational mode; and
`counting a number of instances that the programmable
`device has been programmed with authorized configu
`ration data, and storing, the number of instances in the
`programmable device.
`14. The method of claim 13 further comprising generating
`a replacement key data with the programmable device after
`the programmable device has been programmed with the
`authorized configuration data by the computer system when
`the number of instances that the programmable device has
`been programmed exceeds a predetermined number.
`
`k
`
`k
`
`k
`
`k
`
`k
`
`8
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket