Method, device and system for protecting software

Abstract

The invention, related to information security field, discloses a method for protecting software, and device and system thereof. The method includes that a security device is connected with a terminal device; the security device receives service instruction, determines whether the clock inside the security device is activated, reads the current time of the clock and determines whether the current time is valid; if so, the security device executes the service instruction and returns the executing result to the terminal device; otherwise, the security device returns false result to the terminal device. The invention provides more secure service to the protected software, meanwhile, extends lifetime of the security device.

Claims

1 . A method for protecting software, wherein the method comprises connecting, by a security device in which time limit information is stored, with a terminal device; sending, by a protected software stored in the terminal device, a predetermined service instruction to the security device; and receiving, by the security device, the predetermined service instruction and determining whether the clock inside the security device is activated; if the clock is not activated, activating the clock, reading the current time of the clock and determining whether the current time is valid by the security device; if the current time is valid, executing the service instruction and returning the executing result to the terminal device by the security device; if the current time is not valid, returning a false result to the terminal device by the security device; if the clock is activated, reading the current time of the clock and determining whether the current time is valid by the security device; if the current time is valid, executing the service instruction and returning the executing result to the terminal device by the security device; and if the current time is not valid, returning false result to the terminal device by the security device. 2 . The method of claim 1 , wherein determining whether the clock inside the security device is activated comprises determining, by the security device, whether the activation flag of the clock is activation indicator; if the activation flag of the clock is activation indicator, indicating that the clock is activated; if the activation flag of the clock is not activation indicator, indicating that the clock is not activated. 3 . The method of claim 1 , wherein activating the clock by the security device comprises connecting, by the security device, the clock chip of the clock with battery; supplying, by the battery, power to the clock and the clock starting counting time; modifying the activation flag of the clock to be activation indicator; and setting the time status value of the clock to be the start time of the clock. 4 . The method of claim 1 , wherein activating the clock by the security device comprises controlling, by the security device, the clock oscillator of the clock to make the clock to start working; enabling the power-off pin and the clock starting counting time; modifying the activation flag of the clock to be activation indicator; and setting the time status value of the clock to be the start time of the clock. 5 . The method of claim 1 , wherein determining whether the current time is valid comprises reading, by the security device, the current time of the clock and set expiring time; and determining whether the current time overpasses the expiring time; if the current time overpasses the expiring time, the current time is not valid; if the current time does not overpass the expiring time, the current time is valid. 6 . The method of claim 1 , wherein determining whether the current time is valid comprises reading, by the security device, start time of the clock, current time of the clock, and the time length set in the time limit information; calculating the difference between the current time and the start time; and determining whether the difference is less than the time length set in the time limit information; if the difference is less than the time length, the current time is valid; if the difference is not less than the time length, the current time is not valid. 7 . The method of claim 1 , wherein activating the clock by the security device comprises starting, by the security device, time protecting function of the clock; and modifying the activation flag of the clock to be activation indicator. 8 . The method of claim 7 , wherein determining whether the current time is valid comprises reading, by the security device, the current time of the clock and expiring date set in the time limit information; and determining whether the current time of the clock overpasses the expiring date set in the time limit information; if the current time overpasses the expiring date, the current time is not valid; if the current time does not overpass the expiring date, the current time is valid. 9 . The method of claim 7 , wherein determining whether the current time is valid comprises reading, by the security device, the current time of the clock and time interval set in the time limit information; and determining whether the current time of the clock is within the time interval; if the current time is within the time interval, the current time is valid; if the current time is not within the time interval, the current time is not valid. 10 . A device for protecting software, wherein the device comprises a connecting module adapted to connect with a terminal device; a receiving module adapted to receive predetermined service instruction sent from protected software stored in the terminal device; an activating determining module adapted to determine whether a clock inside the security device is activated; an activating module adapted to activate the clock if the activating determining module determines that the clock is not activated; a reading module adapted to read the current time of clock; a validation determining module adapted to determine whether the current time is valid; and sending module adapted to send executing result to the terminal device if the validation determining module determines that the current time is valid, or to send false result to the terminal device if the validation determining module determines that the current time is not valid. 11 . The device of claim 10 , wherein the activation determining module is adapted to determine whether the activation flag of the clock is activation indicator; if the activation flag of the clock is activation indicator, the clock is activated; and if the activation flag of the clock is not activation indicator, the clock is not activated. 12 . The device of claim 10 , wherein the activating module comprises a connecting unit adapted to connect the clock chip of the clock with battery; a time counting unit adapted to supply power to the clock by battery and start count time by the clock; a modifying unit adapted to modify the activation flag of the clock to be the activation indicator; and a setting unit adapted to set the time status value of the clock to be the start time of the clock. 13 . The device of claim 10 , wherein the activating module comprises a control unit adapted to control the clock oscillator to make the clock to start working; a time counting unit adapted to enable the power-off pin of the clock and the clock to start counting time; a modifying unit adapted to modify the activation flag of the clock to be activation indicator; and a setting unit adapted to set the time status value of the clock to be the start time of the clock. 14 . The device of claim 10 , wherein the validation determining module comprises a reading unit adapted to read the current time and the set expiring time of the clock; and a determining unit adapted to determine whether the current time of the clock overpasses the expiring time; if the current time of the clock overpasses the expiring time, the determining unit determines that the current time is not valid; and if the current time of the clock does not overpass the expiring time, the determining unit determines that the current time is valid. 15 . The device of claim 10 , wherein the validation determining module comprises a reading unit adapted to read the start time, the current time of the clock and the predetermine time length in the time limit information; a calculating unit adapted to calculate difference between the current time and the start time; and a determining unit adapted to determine whether the difference is less than the time length predetermined in the time limit information; if the difference is less than the time length predetermined in the time limit information, the determining unit determines that current time is valid; and if the difference is not less than the time length predetermined in the time limit information, the determining unit determines that current time is not valid. 16 . The device of claim 10 , wherein the activating module comprises a starting unit adapted to start time protecting function of the clock; and a modifying unit adapted to modify the activation flag of the clock to be activation indicator. 17 . The device of claim 16 , wherein the activating module comprises a reading unit adapted to read the current time of the clock and the expiring data predetermined in the time limit information; and a determining unit adapted to determine whether the current time of the clock overpasses the expiring date predetermined in the time limit information; if the clock overpasses the expiring date predetermined in the time limit information, the determining unit determines that the current time is not valid; and if the clock does not overpass the expiring date predetermined in the time limit information, the determining unit determines that the current time is valid. 18 . The device of claim 16 , wherein the activating module comprises a reading unit adapted to read current time of the clock and time interval predetermined in the time limit information; and a determining unit adapted to determine whether the current time is within the time interval; if the current time is within the time interval, the current time is valid; and if the current time is not within the time interval, the current time is not valid. 19 . A system for protecting software, wherein the system comprises a security device and a terminal device, the security device comprises a connecting module adapted to connect with a terminal device; a receiving module adapted to receive a predetermined service instruction sent from a protected software stored in the terminal device; an activating determining module adapted to determine whether a clock inside the security device is activated; an activating module adapted to activate the clock if the activating determining module determines that the clock is not activated; a reading module adapted to read the current time of clock; a validation determining module adapted to determine whether the current time is valid; and a sending module adapted to send executing result of the predetermined service instruction to the terminal device if the validation determining module determines that the current time is valid; and to send false result to the terminal device if the validation determining module determines that the current time is not valid; the terminal device comprises an interface module adapted to connect with the connecting module of the terminal device; a sending module adapted to send predetermined service instruction to the security device; and a receiving module adapted to receive executing result or false result send by the security device.
FIELD OF THE INVENTION [0001] The invention relates to information security field, and more particularly, relates to a method for protecting software, as well as a device and a system thereof. BACKGROUND OF THE INVENTION [0002] In the prior art, the popular method for protecting the right of using software is by using encrypting tool, like token. With secured smart card chip and advanced encryption technology, the token has some ability of storing and computing. The token is widely used in the field of protecting software because the token is hard to be illegally decrypted and copied. [0003] At present, the general way to protect software is that protecting software with token. The software is protected by inserting a token into a computer via communication interface and cooperating with specified software as well. So a user cannot run the software without the token, and then the software is protected. [0004] But the inventors find some disadvantages as follows in the prior art. [0005] The time limit function and date limit function of a token are general, which is convenient to control the trial time of the software. But the token in prior art cannot record the start time of using the software and cannot limit the start time and expiring time of using the software. In addition, the battery power for the token in the prior art is always wasted. SUMMARY OF THE INVENTION [0006] The object of the present invention is to provide to a method for protecting software, as well as a device and a system thereof, which has the time limit function and date limit function of a token. [0007] Thus, according to one aspect of the present invention, there provides a method for protecting software, wherein said method comprises [0008] connecting, by a security device in which time limit information is stored, with a terminal device; [0009] sending, by a protected software stored in the terminal device, a predetermined service instruction to the security device; and [0010] receiving, by the security device, the predetermined service instruction and determining whether the clock inside the security device is activated; [0011] if the clock is not activated, activating the clock, reading the current time of the clock and determining whether the current time is valid by the security device; [0012] if the current time is valid, executing the service instruction and returning the executing result to the terminal device by the security device; [0013] if the current time is not valid, returning a false result to the terminal device by the security device; [0014] if the clock is activated, reading the current time of the clock and determining whether the current time is valid by the security device; [0015] if the current time is valid, executing the service instruction and returning the executing result to the terminal device by the security device; and [0016] if the current time is not valid, returning false result to the terminal device by the security device. [0017] According to another aspect of the present invention, there provides a device for protecting software, wherein the device comprises [0018] a connecting module adapted to connect with a terminal device; [0019] a receiving module adapted to receive predetermined service instruction sent from protected software stored in the terminal device; [0020] an activating determining module adapted to determine whether a clock inside the security device is activated; [0021] an activating module adapted to activate the clock if the activating determining module determines that the clock is not activated; [0022] a reading module adapted to read the current time of clock; [0023] a validation determining module adapted to determine whether the current time is valid; and [0024] sending module adapted to send executing result to the terminal device if the validation determining module determines that the current time is valid, or to send false result to the terminal device if the validation determining module determines that the current time is not valid. [0025] According to another aspect of the present invention, there provides a system for protecting software, wherein the system comprises a security device and a terminal device, [0026] the security device comprises [0027] a connecting module adapted to connect with a terminal device; [0028] a receiving module adapted to receive a predetermined service instruction sent from a protected software stored in the terminal device; [0029] an activating determining module adapted to determine whether a clock inside the security device is activated; [0030] an activating module adapted to activate the clock if the activating determining module determines that the clock is not activated; [0031] a reading module adapted to read the current time of clock; [0032] a validation determining module adapted to determine whether the current time is valid; and [0033] a sending module adapted to send executing result of the predetermined service instruction to the terminal device if the validation determining module determines that the current time is valid; and to send false result to the terminal device if the validation determining module determines that the current time is not valid; [0034] the terminal device comprises [0035] an interface module adapted to connect with the connecting module of the terminal device; [0036] a sending module adapted to send predetermined service instruction to the security device; and [0037] a receiving module adapted to receive executing result or false result send by the security device. [0038] According to the present invention, a security device stores time limit information according to which the time of using the security device is limited. The security device is bind with time or date, etc. conveniently and the period of using the security device by the protected software is limited, which provides safer security to the protected software and extends the lifetime of the security device. BRIEF DESCRIPTION OF THE DRAWINGS [0039] FIG. 1 is a flow chart illustrating a method for protecting software of Embodiment 1 according to the present invention; [0040] FIG. 2 is a flow chart illustrating a method for protecting software of Embodiment 2 according to the present invention; [0041] FIG. 3 is a structural diagram illustrating of a device for protecting software of Embodiment 3 according to the present invention; and [0042] FIG. 4 is a structural diagram illustrating of a system for protecting software of Embodiment 4 according to the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS OF THE INVENTION [0043] Objects, technical solutions and advantages of the invention will be easily understood by reference to the following description of embodiments when read in conjunction with the accompanying drawings. Embodiment 1 [0044] The embodiment 1 provides a method for protecting software. Referring to FIG. 1 , the method includes the following steps. [0045] Step 101 , a security device is connected with a terminal device; [0046] In the embodiment 1, the security device is a token. The token includes a clock which is powered up by battery. The clock does not work, that is, does not count time, at the time of leaving a factory. Only if the token receives a service instruction from the terminal device, can the clock start counting time. In addition, one or more pieces of time limit information can be set up before the token leaving the factory. The time limit information is adapted by the token to implement time protecting function for protected software. The time protection function is not activated before the token leaves the factory. Only if the token receives a service instruction sent from the terminal device after the token is connected with the terminal device, can the time protecting function be activated. Thereby, the service instruction is predetermined by the protected software and the token when the token leaves the factory. [0047] In the embodiment 1, the time limit information can be the time length that the protected software using the token, for example, 10 hours. [0048] The terminal device can be a computer, a card reader with power, RF card reader or any device that can use the token above. [0049] Step 102 , the protected software stored in the terminal device sends a service instruction to the security device; [0050] The protected software refers to the software, of which a part of or all of the functions are modified or encrypted. In addition, the protected software can send service instruction to the security device automatically or the service instructions can be manually sent to the security device when the protected software starts protection function. [0051] The service instruction is predetermined by the security device and the terminal device. It can be any one of plural predetermined instructions. For example, the service instruction can be a communication instruction for the terminal device and the security device, such as APDU instruction 80 10 00 00 00; and the service instruction also can be program start instruction and/or function algorithm instruction. [0052] Furthermore, the protected software of the terminal device can send encrypted service instructions to the security device. The encryption algorithm includes but not limit to AES (Advanced Encryption Standard) or DES (Data Encryption Standard) etc. [0053] Step 103 , the security device receives the service instruction from the terminal device and determines whether the clock of security device is activated, that is, determines whether the clock of security device starts counting time; [0054] If the clock is not activated, goes to Step 104 ; [0055] If the clock is activated, go to Step 105 ; [0056] Thereby, if the security device receives an encrypted service instruction, the security device decrypts the service instruction with the predetermined decryption algorithm. The predetermined algorithm includes but not limit to AES algorithm or DES algorithm, etc. [0057] In Step 103 , the method of determining whether the clock starts counting time includes [0058] determining whether the activation flag of the clock is activation indicator; [0059] if the activation flag is not activation indicator, that is, the clock chip is disconnected from the battery, the clock does not start counting time; [0060] if the activation flag is activation indicator, that is, the clock chip is connected with the battery, the clock starts counting time. [0061] Step 104 , the security device activates the inside clock to start counting time and sets the time status value of the clock to be the start time; [0062] It should be noted that the clock of the security device omits synchronization with the clock of the terminal device. The security device can count time according to the time of the clock. [0063] Before the clock starts counting time, the clock does not work and a time value is stored in the clock, which is called time status value in the embodiment 1. When the clock is activated and starts counting time, the security device sets the time status value as the start time of the clock. [0064] The embodiment 1 further includes that [0065] the security device reads the predetermined time length, for example, 10 hours, for which the protected software uses the security device and determines whether the time status value stored by the clock is 0, if the time status value is 0, the security device sets the read time length, e.g. 10 hours, as the expiring time of the clock; if the time status value is not 0, the security device sets the result, obtained by adding the time length value e.g. 10 hours, to the read time status value, as the expiring time of the clock. [0066] Alternatively, if the security device determines that the time status value stored by the clock is not 0, the security device clears the time status value to be 0 and sets the read time length to be the expiring time of the clock. [0067] Specifically, in the embodiment 1, the security device activates the clock at the following cases. [0068] (1) When the clock chip of the clock is disconnected from the battery, [0069] the security device makes the clock chip of the clock to connect with the battery; [0070] The battery supplies power to the clock, e.g. the clock starts counting time, meanwhile, the activation flag of the clock is modified to be activation indicator. [0071] (2) When the clock chip of the clock is connected with the battery, [0072] the security device controls the clock oscillator to make the clock to start working; [0073] the power-off pin of the clock is enabled, the clock starts counting time; meanwhile, the activation flag of the clock is modified to be activation indicator. [0074] Step 105 , the security device reads current time of the clock and determines whether the current time is valid time; [0075] If the current time is valid time, the security device executes the service instruction and returns the executing result to the terminal device; and [0076] If the current time is not valid time, the security device returns a false result to the terminal device. [0077] Thereby, the executing result or the false result can be encrypted. The encrypted algorithm includes but not limited to AES algorithm or DES algorithm; [0078] In addition, the false result can be but not limited to error or random result or the prompt that the security device is expired. [0079] The method of determining whether the current time is valid time includes that [0080] the security device calculates the difference between the current time and the start time, compares the obtained difference with the predetermined time length for which the protected software uses the security device and determines whether the difference overpasses the predetermined time length, if the difference overpasses the predetermined time length, the current time is not valid; otherwise, the current time is valid. [0081] For example, the current time of the clock of the security device is 06:25 and the start time is 00:00; and the predetermined time length that limits the protected software to use the security device is 10 hours. Because the difference between the current time and the start time does not overpass the predetermined time length, 10 hours, the current time is valid time. [0082] Or, the security device reads the current time and the expiring time of the clock and determines whether the read current time is before the expiring time, if the read current time is not before the expiring time, the current time is not valid; and if the read current time is before the expiring time, the current time is valid. [0083] For example, if the current time of the clock of the security device is 10:45, and the expiring time is 10:00. The current time is valid. [0084] It should be noted that if the clock of the security device is activated, only if the protected software stops using the security device actively or the time reaches the expiring time of the security device, can the clock stops working. If the clock is forced to stop working, the security device will be destroyed and be operated to return information that the security device is destroyed to the terminal device. [0085] In the embodiment 1 of the invention, the security device stores time limit information according to which the time of using the security device is limited. The security device is bind with time or date, etc. conveniently and the period of using the security device by the protected software is limited, which provides safer security to the protected software and extends the lifetime of the security device. Embodiment 2 [0086] The embodiment 2 provides a method for protecting software. Referring to FIG. 2 , the method includes the following steps. [0087] Step 201 , a security device is connected with a terminal device; [0088] In the embodiment 2, the security device is a token. The token includes a clock which is powered up by battery. The clock is calibrated already at the time of leaving a factory, which makes the time and date of the clock to be accurate and reliable. In addition, one or more pieces of time limit information can be set up before the token leaves the factory. The time limit information is adapted by the token to implement time protecting function for the protected software. The time protection function is not activated before the token leaves the factory. Only if the token receives a service instruction sent from the terminal device after the token is connected with the terminal device, can the time protecting function be activated. Thereby, the service instruction is predetermined by the token manufacturer and the terminal device manufacturer before the token leaves the factory. [0089] In the embodiment 2, the time limit information can be that the protected software can only use the token before the expiring date, for example, Dec. 31, 2010; or the time limit information can be that the protected software can only use the token at the specified time interval, for example, from 8:00 a.m to 5:00 p.m, on some day. [0090] The terminal device can be a computer, a card reader with power, RF card reader or any device that can use the token above. [0091] Step 202 , the protected software stored in the terminal device sends a service instruction to the security device; [0092] The protected software refers to the software, of which a part of or all of the functions are modified or encrypted. In addition, the protected software can send service instruction to the security device automatically or the service instructions can be manually sent to the security device when the protected software starts protection function. [0093] The service instruction is predetermined by the security device and the terminal device. It can be any one of plural predetermined instructions. For example, the service instruction can be a communication instruction for the terminal device and the security device, such as APDU instruction 80 10 00 00 00; and the service instruction also can be program start instruction and/or function algorithm instruction. [0094] Furthermore, the protected software of the terminal device can send encrypted service instructions to the security device. The encryption algorithm includes, but not limit to, AES (Advanced Encryption Standard) or DES (Data Encryption Standard) etc. [0095] Step 203 , the security device receives the service instruction from the terminal device and determines whether the clock inside the security device is activated, that is, determines whether the clock starts time protecting function; [0096] If the clock inside the security device is not activated, goes to Step 204 ; and [0097] If the clock inside the security device is activated, goes to Step 205 . [0098] Thereby, if the security device receives an encrypted service instruction, the security device decrypts the service instruction with the predetermined decryption algorithm. The predetermined algorithm includes but not limit to AES algorithm or DES algorithm, etc. [0099] It should be noted that the security device can calibrates its current time with the clock of the terminal device by the received service instruction. [0100] In Step 203 , the method of determining whether the clock starts time protecting function includes [0101] determining whether the activation flag is activation indicator; [0102] if the activation flag is not activation indicator, it is indicated that the clock does not start time protecting function; and [0103] if the activation flag is activation indicator, it is indicated that the clock starts time protecting function; [0104] Step 204 , the security device activates the inside clock to start time protecting function and modifies the activation flag of the clock to be activation indicator. [0105] It should be noted that if the clock of the security device is activated, only if the protected software stops using the security device actively or the time reaches the expiring time of the security device, can the clock stops working. If the clock is forced to stop working, the security device will be destroyed and be operated to return the information that the security device is destroyed to the terminal device. [0106] Step 205 , the security device reads current time of the clock and determines whether the current time is valid time. [0107] If the current time is valid time, the security device executes the service instruction and returns the executing result to the terminal device; and [0108] If the current time is not valid time, the security device returns the false result to the terminal device. [0109] Thereby, the executing result or the false result can be encrypted. The encrypted algorithm includes but not limited to AES algorithm or DES algorithm; [0110] In addition, the false result can be but not limited to error or random result or the prompt that the security device is expired. [0111] The following are some methods for determining whether the current time is valid time. [0112] (1) If the time limit information is that the protected software can only use the security device before the expiring time of using the security device, [0113] The security device reads current time of the clock and the expiring time in the time limit information and determines whether the current time overpasses the expiring time; [0114] If the current time overpasses the expiring time, the current time is not valid time; [0115] If the current time does not overpass the expiring time, the current time is valid time. [0116] For example, the current time of the clock is Jun. 23, 2009 and the expiring time in the time limit information is Dec. 31, 2010. Because the current time does not overpass the expiring time, the current time is valid time. [0117] (2) If the time limit information is that the protected software can only uses the security device at specified time interval; [0118] The security device reads current time of the clock, start time and the expiring time in the time limit information and determines whether the current time is between the start time and the expiring time; [0119] If the current time is between the start time and the expiring time, the current time is valid time; [0120] If the current time is not between the start time and the expiring time, the current time is not valid time. [0121] For example, the current time of the clock is 6:00 a.m, the start time in the time limit information is 8:00 a.m and the expiring time in the time limit information is 5:00 p.m. Because the current time is not between the start time and the expiring time, the current time is not valid. [0122] In the embodiment 2 of the invention, the security device stores time limit information according to which the time of using the security device is limited. The security device is bind with time or date, etc. conveniently and the period of using the security device by the protected software is limited, which provides safer security to the protected software and extends the lifetime of the security device. Embodiment 3 [0123] The embodiment 3 provides a device for protecting software. Referring to FIG. 3 , the device includes [0124] a connecting module 301 adapted to connect with a terminal device; [0125] a receiving module 302 adapted to receive predetermined service instruction sent from protected software stored in the terminal device; [0126] an activating determining module 303 adapted to determine whether a clock inside the security device is activated; [0127] an activating module 304 adapted to activate the clock if the activating determining module 303 determines that the clock is not activated; [0128] a reading module 305 adapted to read the current time of clock; [0129] a validation determining module 306 adapted to determine whether the current time is valid; and [0130] a sending module 307 adapted to send executing result of the predetermined service instruction to the terminal device if the validation determining module 306 determines that the current time is valid; and to send a false result to the terminal device if the validation determining module 306 determines that the current time is not valid, thereby, the false result includes but not limit to error or random result or the prompt that the security device is expired. [0131] The device further includes [0132] a decrypting module adapted to, if the service instruction received by the receiving module 302 is encrypted, decrypt the encrypted instruction with predetermined decryption algorithm. [0133] The device further includes [0134] an encrypting module adapted to encrypt the executing result or false result; [0135] Correspondingly, the sending module 307 adapted to return the encrypted executing result or false result to the terminal device. [0136] The activation determining module 303 is adapted to determine whether the activation flag of the clock is activation indicator; [0137] If the activation flag of the clock is activation indicator, the clock is activated; and [0138] If the activation flag of the clock is not activation indicator, the clock is not activated. [0139] In one embodiment, the activating module 304 specifically includes [0140] a connecting unit adapted to connect the clock chip of the clock with battery; [0141] a time counting unit adapted to supply power to the clock by battery and start counting time by the clock; [0142] a modifying unit adapted to modify the activation flag of the clock to be the activation indicator; and [0143] a setting unit adapted to set the time status value of the clock to be the start time of the clock. [0144] In another embodiment, the activating module 304 specifically includes [0145] a control unit adapted to control the clock oscillator to make the clock to start working; [0146] a time counting unit adapted to enable the power-off pin of the clock; the clock starts counting time; [0147] a modifying unit adapted to modify the activation flag of the clock to be activation indicator; and [0148] a setting unit adapted to set the time status value of the clock to be the start time of the clock; [0149] the setting unit further adapted to set expiring time according to the time status value and the time limit information. [0150] In another embodiment, the activating module 304 specifically includes [0151] a starting unit adapted to start time protecting function of the clock; and [0152] a modifying unit adapted to modify the activation flag of the clock to be activation indicator. [0153] In one embodiment, the validation determining module 306 specially includes [0154] a reading unit adapted to read the current time and the expiring time of the clock; and [0155] a determining unit adapted to determine whether the current time of the clock overpasses the expiring time; [0156] if the current time of the clock overpasses the expiring time, the determining unit determines that the current time is not valid; and [0157] if the current time of the clock does not overpass the expiring time, the determining unit determines that the current time is valid. [0158] In another embodiment, the validation determining module 306 specifically includes [0159] a reading unit adapted to read the start time, the current time of the clock and the predetermine time length in the time limit information; [0160] a calculating unit adapted to calculate difference between the current time and the start time; and [0161] a determining unit adapted to determine whether the difference is less than the time length predetermined in the time limit information; [0162] if the difference is less than the time length predetermined in the time limit information, the determining unit determines that current time is valid; and [0163] if the difference is not less than the time length predetermined in the time limit information, the determining unit determines that current time is not valid. [0164] In another embodiment, the validation determining module 306 specifically includes [0165] a reading unit adapted to read the current time of the clock and the expiring date predetermined in the time limit information; and [0166] a determining unit adapted to determine whether the current time of the clock overpasses the expiring date predetermined in the time limit information; [0167] if the clock overpasses the expiring date predetermined in the time limit information, the determining unit determines that the current time is not valid; and [0168] if the clock does not overpass the expiring date predetermined in the time limit information, the determining unit determines that the current time is valid. [0169] In another embodiment, the validation determining module 306 specifically includes [0170] a reading unit adapted to read current time of the clock and time interval predetermined in the time limit information; and [0171] a determining unit adapted to determine whether the current time is within the time interval; [0172] if the current time is within the time interval, the current time is valid; and [0173] if the current time is not within the time interval, the current time is not valid. [0174] In the embodiment 3 of the invention, the security device stores time limit information according to which the time of using the security device is used. The security device is bind with time or date, etc. conveniently and the period of using the security device by the protected software is limited, which provides safer security to the protected software and extends the lifetime of the security device. Embodiment 4 [0175] The embodiment 4 provides a system for protecting software. Referring to FIG. 4 , the system includes a security device 401 and a terminal device 402 ; [0176] Thereby, the security device 401 can refer to device for protecting software in embodiment 2. No further repeat information is given here. [0177] The terminal device 402 includes [0178] an interface module adapted to connect with the connecting module of the terminal device; [0179] a sending module adapted to send a predetermined service instruction to the security device; and [0180] a receiving module adapted to receive executing result of the predetermined service instruction or a false result send by the security device, thereby, the false result includes but not limit to error or random result or the prompt that the security device is expired. [0181] The terminal device 402 further includes [0182] an encrypting module adapted to encrypt the service instruction; [0183] correspondingly, the sending module of the terminal device 402 further adapted to send encrypted service instruction to the security device. [0184] The terminal device 402 further includes [0185] a decrypting module adapted to decrypt the encrypted executing result of the predetermined service instruction or a false result if the receiving module receives encrypted executing result or encrypted false result. [0186] In the embodiment 4 of the invention, the security device stores time limit information according to which the time of using the security device is limited. The security device is bind with time or date, etc. conveniently and the period of using the security device by the protected software is limited, which provides safer security to the protected software and extends the lifetime of the security device. [0187] The presently disclosed embodiments should be 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 variations which come within the meaning and range of equivalents thereof are intended to be embraced therein.

Description

Topics

Download Full PDF Version (Non-Commercial Use)

Patent Citations (20)

    Publication numberPublication dateAssigneeTitle
    CN-101241531-AAugust 13, 2008北京深思洛克数据保护中心Method for controlling software authorized usage time
    US-2002082997-A1June 27, 2002Hiroshi Kobata, Robert GagneControlling and managing digital assets
    US-2003093705-A1May 15, 2003International Business Machines CorporationMethod and apparatus for generating a virtual clock in a data processing system
    US-2004093505-A1May 13, 2004Fujitsu LimitedOpen generic tamper resistant CPU and application system thereof
    US-2006248596-A1November 02, 2006Microsoft CorporationSecure clock with grace periods
    US-2007100701-A1May 03, 2007Intertrust Technologies CorporationDigital rights management engine systems and methods
    US-2010011214-A1January 14, 2010Interdigital Patent Holdings, Inc.Method and apparatus for secure trusted time techniques
    US-5444780-AAugust 22, 1995International Business Machines CorporationClient/server based secure timekeeping system
    US-5569903-AOctober 29, 1996Mitsubishi Denki Kabushiki KaishaNon-contact IC card
    US-5857146-AJanuary 05, 1999Nec CorporationCircuit and method for controlling a timing of intermittent reception in radio equipment
    US-6473607-B1October 29, 2002Broadcom CorporationCommunication device with a self-calibrating sleep timer
    US-6745338-B1June 01, 2004Cypress Semiconductor Corp.System for automatically selecting clock modes based on a state of clock input pin and generating a clock signal with an oscillator thereafter
    US-6823456-B1November 23, 2004International Business Machines CorporationSystem and method for providing trusted services via trusted server agents
    US-6865678-B2March 08, 2005Addison M. FischerPersonal date/time notary device
    US-7302594-B2November 27, 2007Microsoft CorporationQuery of bios-stored value to determine user intent at return to active state
    US-7539863-B2May 26, 2009Microsoft CorporationRemote services for portable computing environment
    US-7765423-B2July 27, 2010Thomson LicensingImplementation of multiple clock interfaces
    US-8176564-B2May 08, 2012Microsoft CorporationSpecial PC mode entered upon detection of undesired state
    US-8499161-B2July 30, 2013Interdigital Patent Holdings, Inc.Method and apparatus for secure trusted time techniques
    US-8544105-B2September 24, 2013Qualcomm IncorporatedMethod and apparatus for managing policies for time-based licenses on mobile devices

NO-Patent Citations (0)

    Title

Cited By (1)

    Publication numberPublication dateAssigneeTitle
    US-2016253525-A1September 01, 2016Feitian Technologies Co., Ltd.Implementation method for driving of software and hardware supporting opensc