Abstract:
The present invention relates to a production security control apparatus for software products and the control method thereof. The present invention uses security control devices to control the production process for software products, which ensures that the production process cannot proceed without appropriate security control device. There are many ways to embody the present invention and the security level can be customized. The device is simple and easy to use. In addition, the leak of protected code can be prevented—because the data in the production host is not copied to the dongle directly, unauthorized dongles cannot work with the software itself directly. Moreover, the unauthorized production of dongles can be prevented as well—the production number of dongles is also restricted by the developer, which ensures that illegal bulk production cannot occur without authorization.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to a production security control apparatus for software products and the control method thereof. 
       BACKGROUND OF THE INVENTION 
       [0002]    As information technology develops, an increasing number of software products that are customized to a particular application field or industry have been created. The core technology is vital to any software. Once the core technology is stolen or duplicated illegally by others, the loss will be inestimable. 
         [0003]    As information security apparatuses, the software copyright protection products are important in software copyright protection field. They can protect software developer&#39;s interests, increase profit, protect legal user&#39;s interests and control software distribution. 
         [0004]    Besides the anti-attack capability of the software itself and the security of the hardware protection apparatus itself, software product copyright protection should also involve the management and control in the production process. If the production process is not controllable, the security threats in production process can not be blocked, even if perfect security measures are adopted after the sales of the products. 
         [0005]    We use dongles to control the legitimate usage of software products after they are sold. But it is possible that an unauthorized user gets the production data of dongles during the production process of the software products and then clones a “dongle” illegally. Then the anti-piracy efforts for the software will be made in vain. Therefore, the security control in production process is very important. 
       SUMMARY OF THE INVENTION 
       [0006]    The present invention overcomes the above defects and provides a production security control apparatus for software products and the control method thereof for safely and effectively maintaining information security during the production process of software products. 
         [0007]    The solution of the present invention to the technical problems is: a production host with a communication interface and a security control device, which is connected to the production host via the communication interface for transmitting data. 
         [0008]    The security control device may comprises a master chip, and a communication module and a storage module which are connected to the master chip respectively, and the master chip is a microprocessor or smart card chip comprising a Central Processing Unit (CPU), a Micro Controller Unit (MCU) or a Single Chip Micyoco (SCM). 
         [0009]    The communication module is a USB interface, serial interface or parallel interface communication module. 
         [0010]    The communication module and/or the storage module are built into the master chip, or are a communication interface chip and/or an external storage module that are separated from the master chip. 
         [0011]    A security control method using the production security control apparatus for software products, in which it is necessary that the in-dongle data for producing a software protection dongle comprises the key code required to be burned into the dongle along with the control code placed in the security production apparatus. 
         [0012]    The in-dongle data for producing software products is in the form of cipher text, which is decrypted to plain text by the security control device and then the production host begins to produce the software products. 
         [0013]    The in-dongle data is stored in the security control device as cipher text, which is burned into the dongle by the production host, and the dongle then decrypts the burned data and uses the resulting data. 
         [0014]    The in-dongle data is stored in the production host as plain text, which is encrypted by the security control device, and then the cipher text is burned into the dongle with a production tool, and then the dongle decrypts the burned data and uses the resulting data. 
         [0015]    A function of judging whether the current number of software products produced is greater than the authorized number of products; and if it is, the production of dongles is not allowed to proceed. 
         [0016]    The encryption/decryption algorithm is RSA, DES or 3DES. 
         [0017]    Compared with the existing technologies, the benefits of the present invention are: there are many ways to embody the present invention; security level can be customized; the device is simple and easy to use; the production process cannot proceed without appropriate security control device. In addition: 
         [0018]    (1) The leak of protected code can be prevented—because the data in the production host is not copied to the dongle directly, unauthorized dongles cannot work with the software itself directly; 
         [0019]    (2) The unauthorized production of dongles can be prevented as well—the production number of dongles is also restricted by the developer, which ensures that illegal bulk production cannot occur without authorization. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0020]    The present invention may be further understood from the following description in conjunction with the appended drawings. In the drawings: 
           [0021]      FIG. 1  is a block diagram of the hardware structure according to the first embodiment of the security control device of the present invention; 
           [0022]      FIG. 2  is a block diagram of the hardware structure according to the second embodiment of the security control device of the present invention; 
           [0023]      FIG. 3  is a block diagram of the hardware structure according to the third embodiment of the security control device of the present invention; 
           [0024]      FIG. 4  is a control flow diagram according to the first embodiment of the present invention; 
           [0025]      FIG. 5  is a control flow diagram according to the second embodiment of the present invention; 
           [0026]      FIG. 6  is a control flow diagram according to the third embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0027]    In the present invention, the software product can be a dongle or other product that has built-in software. To illustrate, use the production host and the security control device for producing dongles for software protection to further describe the present invention. 
         [0028]      FIGS. 1 ,  2  and  3  are block diagrams of the security control device of the present invention. 
         [0029]      FIG. 1  is a block diagram of a security control device. The software protection apparatus  102  comprises a master chip  103 . The master chip  103  is a MCU integrated with a storage module and an interface module. The software protection apparatus is connected to the production host via a USB interface, serial interface or parallel interface  101  for communicating data. 
         [0030]      FIG. 2  is a block diagram of another security control device. The software protection apparatus  202  comprises a master chip MCU  203  that is integrated with an interface module and an external storage  204  that is attached to the MCU. The software protection apparatus is connected to the production host via a USB interface, serial interface or parallel interface  201  for communicating data. The storage can be RAM, ROM, FLASH, EPROM, EEPROM etc. 
         [0031]      FIG. 3  is a block diagram of a third security control device. The software protection apparatus  302  comprises a MCU  304  used as master chip, and a communication module  303  and an external storage  305  that are connected to the master chip respectively. The communication module  303  is a USB interface chip. The software protection apparatus is connected to the production host via a USB interface  301  for communicating data. The storage can be RAM, ROM, FLASH, EPROM, EEPROM etc. 
         [0032]    Based on any of the above structures, the security control method of the present invention will be described in details with the following embodiments. 
         [0033]    1 st  embodiment: in-dongle data is stored in a host in the form of cipher text. After the host is connected to a security control device, the security control device decrypts the data and burns the plain text data into the dongle with a production tool, then the dongle can use the burned data directly. The detailed steps are:
       1) When the host detects the security control device, it establishes communication with the device.       
 
         [0035]    While producing the dongle for software protection (herein “the dongle”), the production tool will not start the production process until it detects the security control device. Otherwise, it will deny the production.
       2) The host sends commands or data to the security control device.       
 
         [0037]    After the security control device is detected, the host sends the data to be encrypted/decrypted to the security control device or requests to read the data to be burned from the security control device via a USB, serial, or parallel interface, and waits for the response from the device.
       3) After the security control device receives the commands or data, it processes the commands or data.       
 
         [0039]    The security control device encrypts or decrypts the received commands or data, or prepares for the data requested by the host. The security control device must be authorized or valid hardware. The resulting data in this step will be burned into the dongle, and contains the necessary part of the software product.
       4) The security control device returns the data to the host.       
 
         [0041]    The security control device returns the data to the application program via a USB, serial, or parallel interface. The data can be restored to what that is necessary for producing the dongle only if the security control device is the designated and valid hardware. 
         [0042]    Thereby the production of the dongle can proceed normally. Otherwise, the production of the dongle will cease, or even if the production continues, the finished dongle cannot work with the software correctly.
       5) The host burns the processed data into the dongle with a production tool.       
 
         [0044]    Referring to  FIG. 4 , the application side of production starts the production process. The production host detects the security control device, as shown in Step  401 , and judges whether it exists or not, as shown in Step  402 . If not, go to Step  409  to finish the production. If it exists, judge whether the number of the dongles produced is greater than the number of the dongles authorized, as shown in Step  410 . If it is, the production process will cease. Otherwise, send the encrypted data to the security control device, as shown in Step  403 . The apparatus of the present invention will decrypt the received data, as shown in Step  404 , and return the decrypted data to the production host, as shown in Step  405 . Once the host receives the data, it will apply the data in the production, as shown in Step  406 , and determine whether the data is of integrity and reliability, and whether the production can proceed, as shown in Step  407 . If the production can proceed, produce the dongles for software products, or end the production. 
         [0045]    2 nd  embodiment: the in-dongle data is stored in the security control device in the form of cipher text. Then the cipher text is burned into the dongle with a production tool. The dongle decrypts the burned data and uses the resulting data. 
         [0046]    Referring to  FIG. 5 , the production host starts the production process. The host detects the security control device, as shown in Step  501  and judges whether it exists or not, as shown in Step  502 . If not, go to Step  509  and end the production. If it exists, judge whether the number of dongles produced is greater than the number of dongles authorized, as shown in Step  503 . If it is, end the production process. Otherwise, send the commands to get data to the security control device, as shown in Step  504 . The security control device will extract the data according to the commands, as shown in Step  505 . The data stored in the security control device is cipher text data. All cipher text data that has been read will be returned to the host, as shown in Step  506 . After that, the host will apply the cipher text data in the production, as shown in Step  507  and continue to produce dongles for software products. 
         [0047]    The above process can ensure that the production department cannot begin producing dongles without the security control device. The built-in decryption code can be setup inside the dongle in the case of that the burned data provided to the dongle by the security control device is cipher text. The decrypted data is the data required for the dongle to operate. 
         [0048]    3 rd  embodiment: the in-dongle data is stored in the production host in the form of plain text. The plain text is encrypted by using the security control device. Then the encrypted data will be burned into the dongle with a production tool. The dongle decrypts the burned data and uses the resulting data. 
         [0049]    Referring to  FIG. 6 , the production host detects the security control device, as shown in Step  601 , and judges whether it exists or not, as shown in Step  602 . If not, go to Step  608  and end the production. If it exists, then judge whether the number of dongles produced is greater than the number of security control devices authorized, as shown in Step  603 . If it is, end the production process, as shown in Step  608 . Otherwise, the host sends the plain text data for production to the security control device, as shown in Step  604 . The security control device encrypts the data, as shown in Step  605  and returns the encrypted data to the host, as shown in Step  606 . The host applies the cipher text data it has received to the production data, as shown in Step  607 . The host can then proceed to produce dongles, as shown in Step  609 . 
         [0050]    In foregoing embodiments:
       1. The encryption/decryption algorithm can be RSA, DES, or 3DES etc. There are many ways, standard or customized, to implement encryption/decryption.   2. To judge the number of dongles produced, using built-in counter can be a practical way. The developer can set the number of dongles to be produced, depending on its requirement. Note that this value is protected and cannot be modified without permission.   3. To determine data integrity, set some flags in the data. Thereby, the data decrypted using appropriate hardware contains correct use flags.       
 
         [0054]    The production security control apparatus for software products and the control method thereof provided by the present invention are described in details above. It will be appreciated by those of ordinary skill in the art that the invention can be embodied in other specific forms without departing from the spirit or essential character thereof. The presently disclosed embodiments are therefore considered in all respects to be illustrative and not restrictive. The scope of the invention is indicated by the appended claims rather than the foregoing description, and all changes which come within the meaning and range of equivalents thereof are intended to be embraced therein.