WO2011050745A1 - 认证方法及系统 - Google Patents

认证方法及系统 Download PDF

Info

Publication number
WO2011050745A1
WO2011050745A1 PCT/CN2010/078238 CN2010078238W WO2011050745A1 WO 2011050745 A1 WO2011050745 A1 WO 2011050745A1 CN 2010078238 W CN2010078238 W CN 2010078238W WO 2011050745 A1 WO2011050745 A1 WO 2011050745A1
Authority
WO
WIPO (PCT)
Prior art keywords
password
dynamic
dynamic password
user
risk
Prior art date
Application number
PCT/CN2010/078238
Other languages
English (en)
French (fr)
Inventor
陆舟
于华章
Original Assignee
北京飞天诚信科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN 200910235952 external-priority patent/CN101699820B/zh
Priority claimed from CN2009102446406A external-priority patent/CN101741567B/zh
Priority claimed from CN2010100341563A external-priority patent/CN101777983B/zh
Priority claimed from CN2010100341648A external-priority patent/CN101777984B/zh
Application filed by 北京飞天诚信科技有限公司 filed Critical 北京飞天诚信科技有限公司
Priority to US13/502,772 priority Critical patent/US8789166B2/en
Publication of WO2011050745A1 publication Critical patent/WO2011050745A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the present invention relates to the field of information security technologies, and in particular, to an authentication method and system.
  • BACKGROUND OF THE INVENTION With the increasing use of network technologies in people's daily lives, people have increasingly relied on the network for more daily activities, such as using the Internet for shopping, office, entertainment, and the like. It is also because of the enhancement of network applications that various websites that provide convenient services have emerged at the historic moment, which has led to an increase in the number of websites, and at the same time, the requirements for network security are also increasing, especially for online banking and government offices.
  • the website requires the login user to be legal.
  • dynamic passwords have been widely used in the authentication field for authentication. This authentication method adds dynamic password verification based on the verification of static passwords, which increases the security of user passwords.
  • the verification of the dynamic password is usually performed in such a manner that the service issues a dynamic password token to the user.
  • the token is an electronic device with a processor, and the size is like a USB flash drive. It can operate independently when the battery or battery is connected.
  • the secure password inside the dynamic password token has a corresponding seed, also called a static factor, the seed is a long string or data, and the dynamic password token can generate dynamics using seeds and dynamic factors according to the built-in dynamic password algorithm.
  • Password, dynamic factor can be a time or event factor, so you can achieve the effect of one password at a time, and the security is higher.
  • the inventor found that at least the following problems exist in the prior art: Although the dynamic password is relatively high in security and difficult to crack, the dynamic password authentication method cannot prevent the phishing website from attacking. Dynamic passwords may be stolen.
  • the interface of the phishing website simulation website if the user opens the phishing website and logs in, the phishing website records the login information input by the user, and uses the information to impersonate the user to log in on the real website, resulting in loss of user information and property.
  • the present invention provides an authentication method and system for improving the security of a user's transaction.
  • the present invention uses the following technical solution:
  • the present invention provides an authentication method, where the authentication method includes: the server receives the user data information and the first dynamic password sent by the user end; The user data information generates a first-risk dynamic password, and the server performs the first dynamic password according to the first-risk dynamic password-risk certificate, and the second-risk certificate is generated after the risk certificate passes a dynamic password, the server sends the second-risk dynamic password or the first password to the client, where the first password is the second-risk Obtaining the dynamic password obtained by splitting the first password and the second password according to a preset rule, and if the server sends the second-risk dynamic password to the client, the month If the server receives the third dynamic password from the user terminal within a predetermined time, the third dynamic password is subjected to a risk certificate, and after the risk certificate is passed, the user terminal is legal; or, the service is The third verification dynamic generated by itself Decrypting the ciphertext information received from the user end to obtain the plaintext information, and
  • the server uses the second password to decrypt the received encrypted ciphertext information from the user end to obtain plaintext information, and determines whether the plaintext information and the transaction information are consistent.
  • the user data information includes the transaction information, and if they are consistent, the transaction is executed, where the ciphertext information is a user.
  • the terminal After receiving the acknowledgment information that the user matches the corresponding data in the second dynamic password generated by the user terminal itself, the terminal uses the remaining data portion of the second dynamic password as the third password. Encrypting the transaction information using the third password.
  • the invention also provides an authentication system, which includes a monthly client and uses ⁇
  • the receiving end module includes: a receiving module, configured to receive user data information and a first dynamic password sent by the user end; and generate a module or generate a splitting module, where the generating module is used to
  • the server generates a second-risk dynamic password according to the first dynamic password according to the first-risk dynamic password-risk certificate, and is further configured to generate a third verification dynamic password;
  • the generating the split module Generating a second-risk dynamic password after the first dynamic password is passed according to the first-risk dynamic password-risk card at the server, and the second verification dynamic password is preset according to the preset
  • the rule is split into a first password and a second password; a sending module, configured to send the second certificate dynamic password or the first password to the client; if the sending module is configured to use the second And the receiving module is further configured to receive a third password from the user end, where the server further includes a verification module, configured to verify that the receiving module receives the
  • the encrypted ciphertext information of the client end obtains the plaintext information; the determining module is configured to determine whether the plaintext information is consistent with the transaction information, and the executing module is configured to perform, when determining that the plaintext information is consistent with the transaction information, Transmitting; if the sending module is configured to send the first password to the user end, the receiving module is further configured to receive a second dynamic password returned by the user end, where the server further includes a verification module, The second dynamic password is verified by using the second password.
  • the receiving module is further configured to receive ciphertext information from the user end, where the user end further includes a decryption module, configured to decrypt the encrypted ciphertext information received by the receiving module from the user end to obtain plaintext information, where The ciphertext information is used after the user receives the confirmation information that the user matches the first password and the corresponding data in the second dynamic password generated by the user itself, and uses the remaining data in the second dynamic password.
  • the determining module is configured to determine whether the plaintext information is consistent with the transaction information, and the executing module is configured to determine, in the determining module, the plaintext. When the information is consistent with the transaction information, the transaction is executed. Therefore, the authentication method and system provided by the present invention confirm the legal identity of both parties of the transaction, thereby improving the security of the user's transaction, and enabling the user to avoid the fishing by the login. The fish website suffered losses.
  • FIG. 1 is a flowchart of a transaction signature method in Embodiment 1 of the present invention.
  • FIG. 2 is a block diagram of an authentication server in Embodiment 1 of the present invention.
  • FIG. 3 is a schematic diagram of a transaction signature system in Embodiment 1 of the present invention.
  • FIG. 5 is a flowchart of a transaction signature method in Embodiment 3 of the present invention.
  • FIG. 6 is a flowchart of a method for authenticating a dynamic password according to Embodiment 4 of the present invention.
  • FIG. 7 is a flowchart of a method for authenticating a dynamic password in Embodiment 5 of the present invention.
  • Embodiment 8 is a flowchart of a method for authenticating a dynamic password in Embodiment 6 of the present invention.
  • FIG. 9 is a structural block diagram of a dynamic password authentication apparatus according to Embodiment 4 of the present invention.
  • FIG. 10 is a block diagram of a preferred structure of a dynamic password authentication apparatus in Embodiment 7 of the present invention
  • FIG. 11 is a flowchart of a method for secure transaction provided in Embodiment 8 of the present invention
  • FIG. 12 is a flowchart of Embodiment 9 of the present invention.
  • FIG. 13 is a schematic diagram of a system structure of a secure transaction provided in Embodiment 10 of the present invention
  • FIG. 14 is a flowchart of a dynamic password-based authentication method provided by Embodiment 11
  • FIG. 15 is a flowchart showing a dynamic password-based authentication method provided in Embodiment 12
  • FIG. 16 is a flowchart showing a dynamic password-based authentication method provided in Embodiment 13;
  • Embodiment 1 The embodiment of the present invention provides a transaction signature method.
  • the same dynamic password generation algorithm and a seed are provided in the authentication server and the dynamic token, so as to authenticate the server and the dynamic token.
  • the passwords can be mutually authenticated.
  • the method includes:
  • the authentication server After receiving the transaction information and the first dynamic password, the authentication server verifies the received first dynamic password. After verifying that the first dynamic password is correct, the authentication server generates a second-risk dynamic password and sends the message.
  • the client sends the to-be-verified information, where the to-be-verified information includes a second dynamic password generated by the authentication server;
  • the UE may perform verification. After verifying that the second verification dynamic password to be verified is correct, the UE uses the third dynamic password generated by the dynamic token to process the transaction. Encrypted to obtain ciphertext information, and sent to the authentication server;
  • the authentication server decrypts the ciphertext information by using a third verification dynamic password generated by itself to obtain plaintext information.
  • the dynamic password token number used by the user end to generate the first dynamic password may be searched according to the user account information in the transaction information, and the corresponding number is found according to the number.
  • the seed and dynamic factor to generate a corresponding verification dynamic password based on the seed and dynamic factor to verify the first dynamic command.
  • the second-risk dynamic password is sent to the client, The user verifies the received second verification dynamic password.
  • the client sends the ciphertext information generated by using the third dynamic password encryption transaction information to the entity that generates the second-risk dynamic password, for example, the authentication server.
  • generating the second-risk dynamic password includes: updating the dynamic factor; generating the second-risk dynamic password by using the updated dynamic factor.
  • the generating the second verification dynamic password may include: generating a second-risk dynamic password using a time or event based manner.
  • the update dynamic factor includes: setting the dynamic factor to a first dynamic factor used by the dynamic token to generate the first dynamic password, where The first dynamic factor is a count value when the dynamic token generates the first dynamic password; and the dynamic factor is increased by a predetermined step size as the updated dynamic factor.
  • the update dynamic factor includes: setting the dynamic factor to a first dynamic factor used by the dynamic token to generate the first dynamic password, where The first dynamic factor is a difference between a timing time when the dynamic token generates the first dynamic password and an initial time of the preset dynamic token; and the timing offset is updated according to the dynamic factor, where the timing is The offset is the difference between the current timing of the entity generating the second-risk dynamic password and the current timing of the dynamic token; the timing of the second-risk dynamic password generated by the timing offset, the entity The time and the preset initial time of the above entity are used to generate the updated dynamic factor.
  • the updated dynamic factor the timing of generating the second-risk dynamic password of the entity - the initial time of the entity - the timing offset.
  • the generating the second risk dynamic password and transmitting the second-risk dynamic password to the client includes: generating a dynamic every fixed time The password is sent to the user terminal as the second-risk dynamic password, so that the user performs a risk certificate on the currently transmitted second license dynamic password.
  • the verifying the first dynamic password may include: generating a first verification dynamic password; determining whether the first dynamic password is the same as the first-risk dynamic password, if If the first dynamic password is correct, the method may include: generating a first group-risk dynamic password; determining whether the first dynamic virtual password has a verification dynamic password. Same as the first dynamic password described above, if present, the first dynamic password is correct.
  • the algorithm for generating the first-risk dynamic password is the same as the algorithm for generating the first dynamic password, and generates an algorithm for any one of the first group-risk dynamic passwords and a dynamic password for the first-time dynamic password. The algorithm is the same.
  • the foregoing performing the third dynamic password may include: generating a third-risk dynamic password; determining whether the third-risk dynamic password is the same as the third-risk dynamic password, and if the same, the foregoing The third dynamic password is correct; or, the third dynamic password may also include: generating a third group-risk dynamic password; determining whether the third dynamic virtual password has a verification dynamic password and the third The dynamic password is the same, and if it exists, the third dynamic password is correct.
  • the algorithm for generating the third-risk dynamic password is the same as the algorithm for generating the third dynamic password, and generates an algorithm for generating any one of the third group-risk dynamic passwords and generating the third dynamic password. The algorithm is the same.
  • the second-risk dynamic password is generated using the time-based manner
  • the second-risk dynamic password is different from the first-risk dynamic password.
  • the method can be implemented as follows: adding the updated dynamic factor to a preset step size; and generating the second-risk dynamic password according to the added dynamic factor.
  • the third face dynamic password is not the same as the second-risk dynamic password.
  • it can be implemented as follows: When generating the third-risk dynamic password, the dynamic factor is first updated, and the method can use the method used to update the dynamic factor after generating the first-risk dynamic password; The updated dynamic factor is increased by a preset step size; then, the third verified dynamic password is generated using the added dynamic factor.
  • the embodiment of the present invention further provides an authentication server, wherein the authentication server and the dynamic token are provided with the same dynamic password generation algorithm and a seed, and in this embodiment, the server and the dynamic order are authenticated.
  • Cards can generate dynamic passwords based on time or event.
  • the authentication server includes: a receiving unit 21, a risk unit 22, a generating unit 23, a sending unit 24, a decrypting unit 25, and an executing unit 26.
  • the receiving unit 21 is configured to receive the transaction information sent by the user end and the first dynamic password, where the first dynamic password is generated by the dynamic token; the risk certificate unit 22 is configured to perform the risk verification on the first dynamic password.
  • the generating unit 23 is configured to generate a second-risk dynamic password after the first dynamic password is passed; the sending unit 24 is configured to send the second-risk dynamic password to the user terminal; 21 is further configured to: after receiving the dynamic password of the second insurance certificate, the user terminal encrypts the transaction information by using the third dynamic password generated by the dynamic token to obtain the ciphertext information; the decrypting unit 25 is configured to generate by using the self-generated The third-risk dynamic password decrypts the ciphertext information to obtain plaintext information; and the executing unit 26 is configured to perform an operation corresponding to the transaction information when the transaction information and the plaintext information are consistent. Specifically, as shown by the broken line in FIG.
  • the implementation manner of the generating unit generating module 23 in the embodiment of the present invention includes: an updating module updating unit 23 1 and a generating module 232.
  • the update module update unit 23 1 is configured to update the dynamic factor; and the generating module 232 is configured to generate the second-risk dynamic password by using the updated dynamic factor.
  • the update module 23 1 may use but is not limited to the following implementation manners:
  • the update module 23 1 includes: a first setting sub-module 23 11 and a first processing sub-module 23 12, wherein the first setting sub-module 23 11 is configured to set a dynamic factor to a first dynamic factor used by the user end to generate the first dynamic password, where the first dynamic factor is generated by the user end
  • the first dynamic sub-module is used to increment the dynamic factor by a predetermined step size as the updated dynamic factor.
  • the update module 23 1 can be used but is not limited to the following implementation manners:
  • the update module 23 1 includes: a second setting sub-module 23 13 and an update sub-module 23
  • the second processing sub-module 23 15 is configured to set a dynamic factor to a first dynamic factor used by the user end to generate the first dynamic password, where the first The dynamic factor is the difference between the time when the user generates the first dynamic password and the preset initial time of the client; the update submodule 23 14 And updating the timing offset according to the dynamic factor, where the timing offset is a difference between a current timing of the authentication server and a current timing of the client; the second processing sub-module 23 15 And generating, by the timing offset, a timing time when the authentication server generates the second verification dynamic password, and a preset initial time of the authentication server to generate the updated dynamic factor.
  • the combination of the generating unit 23 and the transmitting unit 24 of the embodiment of the present invention may be used but not P ⁇ .
  • the generating unit 23 generates a dynamic password every fixed time, and the sending unit 24 sends the generated dynamic password as the second-risk dynamic password to The user end, so as to verify the currently sent second verification dynamic password;
  • the generating unit 23 generates a set of dynamic passwords as the second-risk dynamic password, and the sending unit 24 generates the generated one.
  • the group dynamic password is sent to the client, so that the currently transmitted second certificate dynamic password is subjected to a risk certificate.
  • the generating unit 23 is configured to generate a first-risk dynamic password; For determining whether the first dynamic password is the same as the first-risk dynamic password, if the same, the first dynamic password is correct; second, the generating unit 23 is configured to generate the first group-risk
  • the license key unit 22 is configured to determine whether the first group-risk dynamic password has a -risk dynamic password identical to the first dynamic password, and if so, the first The dynamic password is correct.
  • the embodiment of the invention provides a transaction signature system, which includes an authentication server 3 1 , a client 32 , and a dynamic token 33 ; a communication connection between the authentication server and the client; the dynamic token does not communicate with the client And not communicating with the authentication server; however, the same dynamic password generation algorithm and seed are provided in the authentication server and the dynamic token, and the authentication server and the dynamic token can be used based on time or The way the event is generated generates a dynamic alpha order.
  • a transaction signature system which includes an authentication server 3 1 , a client 32 , and a dynamic token 33 ; a communication connection between the authentication server and the client; the dynamic token does not communicate with the client And not communicating with the authentication server; however, the same dynamic password generation algorithm and seed are provided in the authentication server and the dynamic token, and the authentication server and the dynamic token can be used based on time or The way the event is generated generates a dynamic alpha order.
  • the transaction information and the first dynamic password are sent to the authentication server 3 1 by the client 32;
  • the authentication server 31 is configured to receive the transaction information sent by the client and the first dynamic password;
  • the second-risk dynamic password generated by the authentication server 3 1 is sent to the client 32.
  • the client 32 is configured to use the second-risk dynamic password after the risk certificate is correct.
  • the third dynamic password generated by the dynamic token 33 is used to encrypt the transaction information to obtain the ciphertext information, and is sent to the authentication server 3 1 .
  • the user needs to generate the second dynamic by using the dynamic token.
  • the password, the client compares the received second-risk dynamic password with the dynamic token to generate the second dynamic password, and the two are the same - the risk is correct, and the two are different - the insurance certificate is incorrect.
  • the authentication server 3 1 is further configured to decrypt the ciphertext information by using a third verification dynamic password generated by itself to obtain plaintext information; and when the plaintext information and the transaction information are consistent, perform the corresponding operation of the transaction signal.
  • the information to be verified sent by the authentication server to the client in the embodiment further includes the transaction information.
  • the first dynamic password authentication method used by the authentication server can use the two methods described in FIG. 2 above.
  • the dynamic signature transaction signature method, the authentication server and the system provided by the embodiment of the present invention require transaction information and a first dynamic password when the transaction is performed, and the first dynamic password is used by the authentication server for verification; and the verification server needs to send the first Second, the dynamic password is verified for the user to verify, so that both the authentication server and the client can mutually confirm the legal identity of the other party. After the two parties mutually confirm the legal identity, the client sends the transaction information to the verification server again through encryption.
  • the transaction information sent twice is the same as the corresponding transaction.
  • FIG. 4 is a flowchart of a transaction signature method in Embodiment 2 of the present invention.
  • This embodiment takes The method for performing the transaction signature by using the dynamic password authentication method is described as an example. The method in this embodiment specifically includes the following steps:
  • the time-based or event-based manner is preferably used to generate a dynamic password in a time-based manner (such as using a timed manner). Accordingly, in this embodiment, the The way the event is done (such as the way of counting) to generate a dynamic password.
  • the dynamic token generation triggering method includes but not limited to the following two types: First, a dynamic token is provided with a button, and the dynamic password generated by the user pressing the button for the first time is the first dynamic password, and the second pressing The next button can generate a second dynamic password, and the third button can generate a third dynamic password. Second, the dynamic token has three dynamic password generation buttons. When the first button is pressed, the generated dynamic password is The first dynamic password; pressing the second button can generate a second dynamic password; pressing the third button can generate a third dynamic password;
  • the authentication server receives the transaction information sent by the client and the first dynamic password, and the authentication server generates a first-risk dynamic password, and determines the first verification dynamic password generated by the authentication server and the received first password. If the two are the same, if the two are the same, the received first dynamic password is correct, and 403 is performed; if the two are different, the received first dynamic password is incorrect, and 409 is performed; in the embodiment of the present invention, the authentication server is used.
  • the information of the dynamic token held by the user is pre-registered, and the dynamic password is generated by using the same algorithm as the dynamic token.
  • the information of the dynamic token includes but is not limited to: a serial number of the dynamic token and a sequence corresponding to the serial number a key seed, the serial number and the key seed are all assigned by the authentication server to the dynamic token, and are unique, and the serial number and the key seed are also stored in the dynamic token; wherein the foregoing authentication server generates
  • the first verification dynamic password is the same as the dynamic token generation first dynamic password algorithm, and both use the timing method (or the counting method).
  • Generate action may include: HMAC-SHA 1, MD5, SHA-1, SHA-256, and the like.
  • the authentication server may use the following method to verify whether the received first dynamic password is correct: First, when the authentication server generates a single first verification dynamic password, and generates the generated first verification dynamic password and the received first dynamic password. Directly performing the comparison. If they are the same, the received first dynamic password is considered to be correct; if not, the received first dynamic password is considered to be incorrect; second, when the dynamic factor used (ie, the timing time) includes time At the time of the window (the specific implementation method will be described later), the authentication server generates a dynamic password as the first-risk dynamic password, and the authentication server encrypts all the dynamic passwords in the time window one by one with the first dynamic received. The password is compared.
  • the dynamic factor used ie, the timing time
  • the received first dynamic password is considered to be correct; if any dynamic password in the time window is received and received The first dynamic password is different, and the first dynamic password received is considered to be incorrect; preferably, the authentication service is Before the server verifies that the first dynamic password is received correctly, the authentication server may further determine whether the received first dynamic password has been used, and if not used, perform the said-risk card process; if used, the user is The end returned an error.
  • determining whether the first dynamic password is used may play the following role: preventing the hacker from immediately logging in to the authentication server and requesting the transaction with the same dynamic password after monitoring the dynamic password input by the user, thereby avoiding loss to the user. .
  • a certain period of time may be set, for example, 10 minutes. If the received first dynamic password has not been used within the previous 10 minutes, the authentication server verifies the received first dynamic password.
  • the authentication server may generate a dynamic password according to a dynamic factor, for example, a first verification dynamic password, a second verification dynamic password, or a third verification dynamic password described later.
  • a dynamic password is generated by using a timing method as an example: a dynamic password is generated by using a timing method, that is, a device (dynamic token or authentication server) generates a dynamic password when generating a dynamic password.
  • a one-minute time unit is taken as an example.
  • a dynamic token is set to an initial time at initialization, for example, January 1, 2000, 00:00, when When a dynamic password is generated at 01:00 on January 1, 2000, the dynamic token or authentication server uses January 1, 2000, 01:00 and the initial time, January 1, 2000, 00:00, 4 minutes.
  • the score is reduced by 60 points, and 60 is used as the dynamic factor to generate the dynamic password.
  • the dynamic token and the authentication server are separately timed, the timing is often out of synchronization, so the time factor needs to be corrected.
  • the positive method can be as follows: Assume that the initial time set by the dynamic token and the authentication server is 00:00 on January 1, 2000, and the dynamic token timing is generated on January 1, 2000 at 01:00. Password, the dynamic token used by the dynamic token is 60, and the authentication server generates the first-risk dynamic password. Due to timing and data transmission errors, the authentication server reference time is January 2000. 1st 01:02, that is, the dynamic factor should be 62.
  • a dynamic range of time is set for the dynamic factor, for example, ⁇ 2 points. This floating range may be referred to as a time window in this embodiment, that is, the value of the dynamic factor. The range can be set to [59, 65].
  • first-risk dynamic passwords that is, the dynamic buffer used by the authentication server to generate the first-risk dynamic password is 1st , 59, 60, 61, 62, 63, 64, 65, and compare with the first dynamic password, for example, when the first dynamic password generated by the first dynamic factor 59 is generated, and the server generates the first verification dynamic password and receives When the first dynamic password is different, the next dynamic factor 60 is used to continue to generate the first-risk dynamic password, and compared with the received first dynamic password, and so on.
  • the dynamic factor is 60, the first dynamic password-risk is correct, then the correct dynamic factor is obtained, the dynamic factor is updated to 60, and the timing offset between the authentication server and the dynamic password token can be calculated. For 2 minutes, the next time the dynamic password is calculated, the dynamic factor stored in the authentication server can be verified as follows:
  • the m ⁇ can be set according to actual conditions.
  • the timing unit of the dynamic factor is calculated, for example, based on safety and calculation accuracy. For example, when a dynamic password is generated by timing, a dynamic factor can be calculated in units of minutes, or 30 seconds or 1 second, and a dynamic password is generated based on the dynamic factor.
  • the above-described operation for correcting the dynamic factor stored by the authentication server may be performed in this step or in the subsequent step 403.
  • the authentication server generates a second-risk dynamic password, and returns the second dynamic password and the transaction information to the client.
  • the authentication server may first calculate a timing for generating the second verification dynamic password (for example, 2000). January 01, 01:03) and the initial time (January 1, 2000, 00:00), the difference (equal to 63), and then subtract the difference from the above timing offset (equal to 2)
  • the updated dynamic factor (equal to 61), and generates a second verification dynamic password based on the updated dynamic factor.
  • the authentication server can perform a positive dynamic factor, the authentication server can generate the second-risk dynamic password by using the dynamic factor, preferably, here.
  • the second-risk dynamic password is a separate dynamic password.
  • the authentication server generates a second-risk dynamic password to be returned to the client at a fixed time.
  • the fixed time can be greater than 0 time, and should be within the safe range.
  • the initial time and the timing offset generate the first second-risk dynamic password and send it to the client; then, in the second minute, generate a second second verification dynamic password, and send it to the client; In 3 minutes, a third second-risk dynamic password is generated and sent to the client, and so on, in order to avoid problems caused by delays when the user receives or the user verifies the second verification dynamic password.
  • the number of times the authentication server returns the second verification dynamic password to the user end needs to be limited to a maximum number of times, for example, when the user returns no time, the notification is not performed by the user end.
  • the client timeout did not respond, - the insurance certificate failed.
  • the server can generate the dynamic factor according to the next minute of the current time, and generate the first second-risk dynamic password according to the dynamic factor.
  • J3 ⁇ 4 there are other ways to prevent the generation of the second license dynamic password from the same time as the first dynamic password. For example, after the first dynamic password is correct, wait for 2 timing units, then The second-risk dynamic password is generated on the third timing unit, so that the time for generating the second risk dynamic password can be made different from the time for generating the first dynamic password.
  • the authentication server When the authentication server generates the second-risk dynamic password, if the time interval with the generation of the first dynamic password is too short, the first dynamic password may be the same as the second-risk dynamic password.
  • the updated dynamic factor may be increased by a preset step size, and then the increased dynamic factor is used.
  • a second-risk dynamic password is generated to avoid a security breach caused by the second-risk dynamic password being the same as the first dynamic password.
  • the server In order to prevent the next authentication server from returning the second-risk dynamic password to the client when the authentication fails due to the network delay, the server also generates an implementation method for generating the second verification dynamic password:
  • the authentication server generates a The group dynamic password is returned to the client as the second-risk dynamic password. For example, in step 4, 402, after correcting the dynamic factor, determining the time offset to be -2 points, determining the time for generating the second-risk dynamic password.
  • the calculation dynamic factor should be 6 1 , in order to generate a set of dynamic passwords, increase A backward offset + day-to-day window is +5, and a 'J spear' uses 61, 62, 63, 64, 65, 66 to generate a total of 6 dynamic passwords as the second-risk dynamic password;
  • the user verifies the received transaction information and the second-risk dynamic password verification. If the verification is correct, the B' J performs 405; the result is incorrectly verified, and the B' J executes 409; the specific verification process includes the following steps: After receiving the transaction information returned by the authentication server and the second-risk dynamic password, the user checks whether the transaction information displayed by the client is correct. If the transaction information is incorrect, the user can directly cancel the transaction; if the transaction information is correct, the user needs to check The second verification dynamic password received is correct.
  • the specific check mode is: the user generates a second dynamic password by using the dynamic token, and compares the second dynamic password generated by the dynamic token with the received second verification dynamic password.
  • the client receives the authentication server and sends it.
  • the second verification of the dynamic password the user needs to generate the second dynamic password by using the dynamic token within the prescribed time, for the following reasons:
  • the dynamic token and the authentication server are all used in separate timing, in the process of authentication.
  • the authentication server generates the second verification dynamic password to generate the second dynamic password before the dynamic token, so the authentication server generates the second-risk dynamic password and the dynamic token generates the second dynamic password.
  • the time factor is different, resulting in dynamic
  • the passwords are different, so you can use the improved method: After the first dynamic password comparison is successful, correct the time to achieve dynamic token and authentication server time synchronization, use this time as the reference time, and set a time period. For example, one minute, the base time is extended by one minute as a time factor. Two - insurance certificate dynamic password (second - insurance certificate dynamic password is a dynamic password), i.e., a dynamic password generated within the one minute is the same.
  • the authentication server After the authentication server generates the second verification dynamic password, it returns to the user end, and the user should generate the second dynamic password by using the dynamic token within a predetermined time.
  • the specified time is less than one minute, and the dynamic token is generated second.
  • the dynamic password and the authentication server generate the second-risk dynamic password should be the same; if in step 404, the authentication server will generate a set of second-risk dynamic passwords at a time (for example, six second verification dynamic passwords)
  • the second dynamic password is sequentially compared with the second verification dynamic password of the group, if the second dynamic password and the second-risk of the group If one of the dynamic passwords is the same, it is considered correct to check the second-risk dynamic password. Otherwise, the authentication server is considered illegal and the transaction should be cancelled.
  • the third token is generated by using the dynamic token, and after receiving the confirmation information of the user, the client encrypts the transaction information by using the third dynamic password. And sending the encrypted ciphertext information to the authentication server; the transaction information in this embodiment and the transaction information sent by the client to the authentication server for the first time should be identical;
  • the authentication server generates a third-risk dynamic password.
  • the method described in the 403 process may be used, including whether the third dynamic password of the risk certificate is used, and the factor for preventing the generation of the dynamic password is repeated.
  • the method is described in detail in the specific process of 403. 407.
  • the authentication server decrypts the received ciphertext information by using the generated third-risk dynamic password to obtain plaintext information, and determines whether the plaintext information is consistent with the transaction information.
  • the authentication server and the client use the same algorithm to perform encryption and decryption operations on the transaction information, such as AES, 3DES, RSA, etc.; preferably, the authentication server determines the decrypted information. Whether it is consistent with the transaction information is: the authentication server uses the third-risk dynamic password generated in the time window to decrypt the transaction information, and decrypts to obtain a set of plaintext information, the authentication The server compares the transaction information with the group of plaintext information one by one. When one of the plaintext information in the group has the same plaintext information and the transaction information, the comparison is considered successful. If there is no plaintext information in the group of plaintext information, If the transaction information is the same, the comparison is considered to have failed;
  • the foregoing refusal to execute the transaction includes the following situation: In the process of 402, the authentication server returns the information of the authentication failure to the user end when the first dynamic password is incorrect, and refuses to execute the transaction; When the server verifies that the decrypted information is inconsistent with the transaction information, the signature fails and the transaction is refused.
  • the dynamic signature transaction signature method, the authentication server and the system provided by the embodiment of the present invention require transaction information and a first dynamic password when the transaction is performed, and the first dynamic password is used by the authentication server for verification; and the verification server needs to send the first Second, the dynamic password is verified for the user to verify, so that both the authentication server and the client can mutually confirm the legal identity of the other party.
  • FIG. 5 is a flowchart of a transaction signature method in Embodiment 3 of the present invention. This embodiment is described by taking a transaction signature by using a dynamic password authentication method. The method in this embodiment specifically includes the following steps:
  • the dynamic token When the user needs to perform a transaction, first generate a first dynamic password by using the dynamic token, and send the transaction information and the first dynamic password to the authentication server through the user terminal; specifically, the transaction information
  • the method includes: a user account, a user password, a transaction amount, a transaction time, a currency type, and the like; wherein, the dynamic token generates a dynamic password according to the built-in dynamic password algorithm; and the dynamic factor selection can be used when generating the dynamic password
  • the dynamic password is generated by using an event-based manner (such as a method), and correspondingly, in this embodiment, the dynamic password can also be used. Time-based methods (such as timing) generate dynamic passwords.
  • the dynamic token generation triggering method includes but not limited to the following two types: First, a dynamic token is provided with a button, and the dynamic password generated by the user pressing the button for the first time is the first dynamic password, and the second pressing The next button can generate a second dynamic password, and the third button can generate a third dynamic password. Second, the dynamic token has three dynamic password generation buttons. When the first button is pressed, the generated dynamic password is The first dynamic password; pressing the second button can generate a second dynamic password; pressing the third button can generate a third dynamic password;
  • the authentication server receives the transaction information sent by the client and the first dynamic password, and the authentication server generates the first-risk dynamic password, and determines the first dynamic received by the first verification dynamic password generated by the authentication server. If the passwords are the same, if the two are the same, the received first dynamic password is correct, and 503 is performed; if the two are different, the received first dynamic password is incorrect, and 509 is performed; in this embodiment, the authentication server can be used.
  • the two methods provided in the 402 are used to verify whether the received first dynamic password is correct, and is not described here.
  • the information about the dynamic token held by the user is pre-registered in the authentication server, and the dynamic order is The plaque generates a dynamic password using the same algorithm, and the information of the dynamic token includes but is not limited to: a serial number of the dynamic token and a key species corresponding to the serial number
  • the serial number and the key seed are all assigned by the authentication server to the dynamic token, and are unique, and the serial number and the key seed are also stored in the dynamic token; wherein the foregoing authentication server generates the first verification
  • the dynamic password is the same as the dynamic password generation first dynamic password algorithm, and the dynamic password is generated by using a timing method (or a counting method).
  • the foregoing algorithm may include: HMAC-SHA 1, MD5, SHA-1, SHA-256 and so on.
  • the authentication server can generate a dynamic password according to the dynamic factor.
  • the dynamic password is generated by using the method in this embodiment as an example.
  • dynamically generate a dynamic factor is a count value, when the number of times the second dynamic password, i.e. when the dynamic password generating apparatus 1 ⁇ (dynamic authentication token or that works to filter) generates a dynamic password as a dynamic factor, the first dynamic password generated
  • the dynamic factor of the password is the count value of 2, and so on, each time the dynamic password count value is incremented by 1, or a preset step size is added.
  • the dynamic factor used when the dynamic token generates the first dynamic password is the count value 100, and the dynamic factor saved in the authentication server is the count value 95, and the first risk is calculated in the authentication server.
  • the count value floating range is 95-105, that is, the dynamic factor can be set to [95, 105].
  • the dynamic factor ie, the count value
  • a first-risk dynamic password is calculated according to each dynamic factor, and then the calculated first verification dynamic password and the received first dynamic password are calculated.
  • the count value is increased to continue the calculation of the first-risk dynamic password.
  • a set of up to 11 risk dynamic passwords can be generated by using the count values 95, 96 104, and 105 as dynamic factors, and the first dynamic password received by the authentication server is The first verification dynamic password generated by the above authentication server is compared. For example, when the authentication server generates a dynamic password according to the count value 100 as a dynamic factor, the generated dynamic password is the same as the received first dynamic password, then the first dynamic password of the risk certificate is correct, and the calculation of the first dynamic password is stopped. .
  • the dynamic password token is synchronized with the count value of the authentication server.
  • the authentication server increments the count value 100 by one (or a predetermined step size) and saves it as the dynamic factor for the next calculation of the dynamic password. If none of the above-mentioned one set of 11 dynamic passwords is the same as the first dynamic password, it means that the received first dynamic password is incorrect.
  • the above-described operation of correcting the dynamic factor stored by the authentication server may be performed in this step or in a subsequent step.
  • the authentication server generates a second-risk dynamic password, and returns the second-risk dynamic password and the transaction information to the user.
  • the authentication server can generate the second-risk dynamic password according to the dynamic factor after the correction, and preferably, the second-risk dynamic password at jtb is a separate dynamic password;
  • the user verifies the received transaction information and the second-risk dynamic password verification. If the verification is correct, the B' J executes 505; the verbal verification is incorrect, and the B' J executes 509; the specific verification process includes the following steps: After receiving the transaction information returned by the authentication server and the second-risk dynamic password, the user checks whether the transaction information displayed by the client is correct. If the transaction information is incorrect, the user can directly cancel the transaction; if the transaction information is correct, the user needs to check The second verification dynamic password received is correct.
  • the specific check mode is: the user generates a second dynamic password by using the dynamic token, and compares the second dynamic password generated by the dynamic token with the received second verification dynamic password. If the same, the comparison is considered successful; if not If the comparison is the same, the user can cancel the transaction directly;
  • the dynamic token is used to generate a third dynamic password, and after receiving the user's confirmation information, the user encrypts the transaction information by using the third dynamic password. And sending the encrypted ciphertext information to the authentication server; the transaction information in this embodiment and the transaction information sent by the client to the authentication server for the first time should be identical;
  • the authentication server generates a third-risk dynamic password.
  • the method described in the 403 process may be used, including whether the third dynamic password of the risk certificate is used, and the factor for preventing the generation of the dynamic password is repeated. The method is described in detail in the specific process of 403. 507.
  • the authentication server decrypts the received ciphertext information by using the generated third-risk dynamic password to obtain plaintext information, and determines whether the plaintext information is consistent with the transaction information.
  • the authentication server and the client use the same algorithm to perform encryption and decryption operations on the transaction information, such as AES, 3DES, RSA, and the like; wherein, if the authentication server generates the first step in step 506 3.
  • AES AES, 3DES, RSA, and the like
  • the authentication server uses the third verification generated in the time window respectively.
  • the dynamic password decrypts the transaction information, and obtains a set of plaintext information after decryption, and the authentication server compares the transaction information with the group of plaintext information one by one, and compares the plaintext information with the transaction information in the group of plaintext information. If they are the same, the comparison is considered successful, if there is no clear text in the group. Information and transaction information is the same, it is considered to fail than;
  • the ordinary dynamic token can carry out the risk of the server, and with the cooperation of the client, the ordinary dynamic token realizes the transaction signature.
  • the function increases the security of dynamic password authentication, so that users can avoid losses such as accidental login to the phishing website, and improve the security of the transaction and prevent the attack of the middleman.
  • the embodiments of the present invention are mainly used in various transaction signatures, such as transaction signatures of online banking, and the like.
  • Embodiment 4 According to an embodiment of the present invention, a method for authenticating a dynamic password is provided. As shown in FIG. 6, the method includes the following steps: step S602 to step 4: S608:
  • the user logs in successfully. Otherwise, it is determined that the user has failed to log in.
  • the user name information can be received before the first dynamic password from the user end is verified.
  • the user name information may be used to find the dynamic password token number used by the client to generate the first dynamic password, and the corresponding seed and dynamic factor are found according to the number, so as to generate corresponding verification according to the seed and the dynamic factor.
  • the dynamic password performs a risk certificate on the first dynamic password.
  • the second-risk dynamic password is sent to the user terminal, the user verifies the received second verification dynamic password.
  • generating the second-risk dynamic password includes: updating the dynamic factor; generating the second-risk dynamic password by using the updated dynamic factor.
  • the generating the second verification dynamic password may include: generating a second-risk dynamic password using a time or event based manner.
  • the update dynamic factor includes: setting the dynamic factor to a first dynamic factor used by the user end to generate the first dynamic password, where A dynamic factor is a count value when the user terminal generates the first dynamic password; and the dynamic factor is increased by a predetermined step size as the updated dynamic factor.
  • the update dynamic factor includes: setting the dynamic factor to a first dynamic factor used by the user end to generate the first dynamic password, where a dynamic factor is a difference between a timing time when the user end generates the first dynamic password and an initial time of the preset user end; and the timing offset is updated according to the dynamic factor, wherein the timing offset is generated second.
  • the current timing of the entity of the risk dynamic password and the current calculation of the above-mentioned client The difference between the time and the time; the timing time offset, the timing of generating the second-risk dynamic password of the entity, and the preset initial time of the entity to generate the updated dynamic factor.
  • the updated dynamic factor the timing of generating the second-risk dynamic password of the entity - the initial time of the entity - the timing offset.
  • the generating the second risk dynamic password and transmitting the second-risk dynamic password to the client includes: generating a dynamic every fixed time The password is sent to the user terminal as the second-risk dynamic password, so that the user performs a risk certificate on the currently transmitted second license dynamic password.
  • the performing the foregoing first dynamic password may include: generating a first-risk dynamic password; determining whether the first dynamic password is the same as the first-risk dynamic password, and if the same, the first dynamic password Correctly; or, performing the first dynamic password-risk may include: generating a first group-risk dynamic password; determining whether a verification dynamic password exists in the first group of verification dynamic passwords is the same as the first dynamic password, If so, the first dynamic password is correct.
  • the algorithm for generating the first-risk dynamic password is the same as the algorithm for generating the first dynamic password, and generates an algorithm for any one of the first group-risk dynamic passwords and a dynamic password for the first-time dynamic password. The algorithm is the same.
  • the method further includes: receiving, during the foregoing time period, a static password from the user terminal, in the foregoing time period, to receive the third dynamic password and the foregoing The static password is correct. It is judged that the above user login is successful.
  • the foregoing performing the third dynamic password may include: generating a third-risk dynamic password; determining whether the third-risk dynamic password is the same as the third-risk dynamic password, and if the same, the foregoing The third dynamic password is correct; or, the third dynamic password may also include: generating a third group-risk dynamic password; determining whether the third dynamic virtual password has a verification dynamic password and the third The dynamic password is the same, and if it exists, the third dynamic password is correct.
  • the algorithm for generating the third-risk dynamic password is the same as the algorithm for generating the third dynamic password, and generates an algorithm for generating any one of the third group-risk dynamic passwords and generating the third dynamic password.
  • the algorithm is the same.
  • the second-risk dynamic password is generated using the time-based manner, the second-risk dynamic password is different from the first-risk dynamic password.
  • the method can be implemented as follows: adding the updated dynamic factor to a preset step size; and generating the second-risk dynamic password according to the added dynamic factor.
  • the third face dynamic password is not the same as the second-risk dynamic password.
  • FIG. 7 is a flowchart of a method for authenticating a dynamic password in Embodiment 5 of the present invention. As shown in FIG. 7, a method for authenticating a dynamic password is provided. In this embodiment, a user logs in to the Internet through a dynamic password authentication method, and the dynamic password authentication service is described in the process of user login.
  • the authentication process of the device in this embodiment, the method for generating a dynamic password by using a method of counting (ie, an event-based method), and the method for authenticating the dynamic password according to the embodiment of the present invention specifically includes the following steps: Step S701:
  • the authentication server receives the user name information and the first dynamic ⁇ command sent by the client.
  • the dynamic password token held by the user has been bound to the user name information of the user, and the dynamic password token has a unique number and has a unique internal storage.
  • the seed corresponding to the number may generate a dynamic password according to the built-in dynamic password algorithm.
  • the dynamic password algorithm is the same as the dynamic password algorithm generated by the server.
  • the user name information may include at least one of the following: a user name, an account number, and an ID number.
  • the mailbox may be at least one of the following: a client host and a client dynamic password token.
  • the dynamic password token used may have a button, and the user first The dynamic password generated by pressing the button is the first dynamic password, the second pressing the button can generate the second dynamic password, and the third pressing the button can generate the third dynamic password; or the dynamic password token can also be There are three dynamic password generation buttons. When the first button is pressed, the generated dynamic password is the first dynamic password. Pressing the second button can generate the second dynamic password. Pressing the third button can generate the third dynamic password. .
  • the user inputs the username information and the first dynamic password through the client host, and is sent by the client host to the authentication server.
  • the dynamic factor can be selected in a time-based or event-based manner when generating a dynamic password.
  • a dynamic password is generated by using an event-based method (ie, using a method) to describe and optimize.
  • a dynamic password can also be generated in a time-based manner (i.e., in a timed manner), which will be described in the following embodiments.
  • Step S702 The authentication server searches for the number and seed of the corresponding dynamic password token and the dynamic factor according to the received username information, and generates a first-risk dynamic password ⁇ 1.
  • the foregoing authentication server generates the OTP 1 and the dynamic password token generates the first dynamic password algorithm, and generates a dynamic password by using a method.
  • the algorithm may include: HMAC-SHA 1, MD 5, and SHA. - 1, SHA-256, etc.
  • Step S703 the authentication server verifies whether the first dynamic password is correct. If yes, step S704 is performed, and if not, step S709 is performed.
  • step S702 when the authentication server generates OTP 1, one or a group of dynamic passwords may be generated as OTP 1, that is, OTP 1 may also be a set of dynamic passwords.
  • the authentication server can use the following method - the first dynamic password of the insurance card is correct:
  • OTP 1 is a dynamic password
  • the authentication server compares the first dynamic password with OTP 1. If the same, the first dynamic password is considered correct. If not, the first dynamic password is considered not. Correct
  • the first verification dynamic password OTP 1 is a set of dynamic passwords, and the authentication server will set a group
  • the dynamic password OTP 1 is compared with the first dynamic password respectively.
  • the comparison is considered to be successful, and the first dynamic password is correct, if any one of the OTP 1 If the dynamic password is different from the first dynamic password, it is considered that the risk certificate fails and the first dynamic password is incorrect.
  • the authentication server may generate a dynamic password according to a dynamic factor, for example, a first verification dynamic password, a second verification dynamic password, or a third verification dynamic password described later. The following is an example to illustrate.
  • a dynamic password is generated by way of example.
  • the method uses a counting method to generate a dynamic password, that is, when generating a dynamic password, a device (dynamic password token or authentication service) The number of times the dynamic password is generated as the dynamic factor.
  • the dynamic factor is the count value.
  • the dynamic password is generated for the second time, the dynamic factor is the count value of 2, and so on.
  • Each time a dynamic password count value is generated. Increase by 1, or add a preset step size. Since the dynamic password token and the authentication server are counted separately, it is easy to cause the occurrence of the inconsistency of the counting. Therefore, it is necessary to perform the positive value of the counting value stored by the authentication server.
  • the dynamic factor used when the dynamic password token generates the first dynamic password is the count value 100, and the dynamic factor stored in the authentication server is the count value 95, which is set when the authentication server calculates the OTP 1
  • the count value floats from 95 to 105, that is, the dynamic factor can be set to [95, 105].
  • a dynamic factor ie, a count value
  • a first verification dynamic password is calculated according to each dynamic factor, and then the calculated first verification dynamic password is compared with the first dynamic password, such as If not, the count value is incremented to continue the calculation of the first risk dynamic password.
  • the authentication server can generate the OTP 1 with the count value of 95,
  • the authentication server compares the received first dynamic password with the above verified dynamic password. For example, when the authentication server generates the verification dynamic password according to the count value 100 as the dynamic factor, the generated-risk dynamic password is the same as the first dynamic password, then the first dynamic password of the risk certificate is correct, and the first-risk certificate is stopped. The calculation of dynamic passwords. At this time, it is also possible to correct the dynamic factor stored by the authentication server, that is, to use 100 as the correct count value, so that the dynamic password token is synchronized with the count value of the authentication server. Then, the authentication server increments the count value 100 by one (or a predetermined step size) and saves it.
  • step S703 the authentication server generates a second verification dynamic password OTP2 and returns it to the client.
  • the authentication server can generate the second certificate dynamic password OTP2 according to the dynamic factor of the positive signal, preferably, here OTP2 is a dynamic password.
  • Step S705 The authentication server receives the third dynamic password within the agreed time. If the third dynamic password is received, step S706 is performed. If not, step S709 is performed.
  • the agreed time is an effective time for the authentication server to receive the third dynamic password, and the authentication server verifies the third dynamic password received within the valid time, and the third dynamic password that is not sent within the agreed time. Discarding, the third dynamic password is not verified, wherein the authentication server can set the agreed time according to actual needs.
  • limiting the time can greatly prevent hacker attacks.
  • the authentication server generates a third verification dynamic password OTP3.
  • the authentication server may search for the number and seed of the corresponding dynamic password token according to the received username information, and the dynamic factor, and generate a third-risk dynamic password ⁇ 3.
  • the above-mentioned algorithm may include: HMAC-SHA 1, MD5, SHA-, and the dynamic password is generated in the same manner as the dynamic password token to generate the third dynamic password algorithm. 1, SHA-256 and so on.
  • Step S707 the authentication server uses OTP3 to verify the third dynamic password. If it is correct, step 4 is performed, and if it is not correct, step 4 is performed.
  • the method for authenticating the server to the third dynamic password-risk is: the authentication server uses the OTP3 to compare the third dynamic password, and if the same, the comparison is considered successful, and the step 4 is performed. If they are not the same, the comparison fails, and step 4 is performed S209.
  • the third dynamic password is performed as follows: the authentication server uses the third dynamic password and step S706 The generated set of verification dynamic passwords are compared one by one. If one of the above-mentioned verification dynamic passwords has the same verification dynamic password as the third dynamic password, the comparison is considered to be successful, and step 4 is performed. S708; If any one of the dynamic passwords is different from the third dynamic password, the comparison is considered to be unsuccessful, and the risk certificate is incorrect. Step S709 is performed. In this embodiment, the UE may also send a static password to the authentication server while sending the third dynamic password.
  • the authentication server can also verify the static password while verifying the third dynamic password, thereby preventing the login of the non-legitimate user caused by the loss or theft of the dynamic password token, thereby making the login process more secure.
  • the steps are as follows: the authentication server receives the third dynamic password and the static password sent by the client within a predetermined time, and the authentication server verifies the static password and the third dynamic password, and if all are correct, execute Step S708, otherwise, step S709 is performed. Step S708, if the login is successful, the online transaction can be started; in step S709, an error is returned.
  • the above return error includes the following situation: When the authentication server determines that the first dynamic password is incorrect in step S703, it returns an error that the first dynamic password is incorrect.
  • the third dynamic password is not received within the pre-agreed time in step 4 S705, an error of receiving the third dynamic password timeout is returned.
  • the authentication server determines in step S707 that the third dynamic password is incorrect, an error of login failure is returned.
  • the dynamic password can be generated by using an algorithm including HMAC-SHA 1, MD5, SHA-1, SHA-256, etc., wherein the authentication server generates the OTP 1 and the password token to generate the first dynamic password, The authentication server generates the OTP2 and the password token generates the second dynamic password, the authentication server generates the OTP3, and the password token generates the third dynamic password.
  • the three-dimensional password verification enables the normal dynamic password token to verify the validity of the server, thereby increasing the security of the dynamic password authentication, so that the user can avoid losses such as erroneous login to the phishing website.
  • FIG. 8 is a flowchart of a method for authenticating a dynamic password according to an embodiment of the present invention.
  • the user logs in to the online banking through the dynamic password authentication method as an example, and specifically describes the authentication process of the dynamic password authentication server in the process of the user login, wherein, in this embodiment, the timing is used.
  • the method (ie, the time-based method) generates a dynamic password
  • the method for authenticating the dynamic password according to the embodiment of the present invention specifically includes the following steps: Step S801:
  • the authentication server receives the user name information sent by the client, A dynamic alpha order.
  • the dynamic password token held by the user has been bound to the user name information of the user, and the dynamic password token has a unique number and has a unique internal storage.
  • the seed corresponding to the number may generate a dynamic password according to the built-in dynamic password algorithm.
  • the dynamic password algorithm is the same as the dynamic password algorithm generated by the server.
  • the user name information may include at least one of the following: a user name, an account number, and an ID number. , mailbox.
  • the dynamic password token used may be provided with a button, the dynamic password generated by the user pressing the button for the first time is the first dynamic password, and the second pressing of the button may generate the second dynamic password, the third The third dynamic password can be generated by pressing the button; or the dynamic password token can also have three dynamic password generation buttons. When the first button is pressed, the generated dynamic password is the first dynamic password, and the second password is pressed.
  • the second button can generate a second dynamic password
  • the third button can generate a third dynamic password.
  • the user inputs the username information and the first dynamic password through the client host, and the client sends the identifier to the authentication server.
  • the dynamic factor can be selected in a time-based or event-based manner.
  • the dynamic password is generated in a time-based manner (ie, using a timed manner) for description and optimization.
  • an event-based manner ie, a method of counting times
  • Step S802 the authentication server searches for the number and seed of the corresponding dynamic password token and the dynamic factor according to the received username information, and generates a first-risk dynamic password ⁇ 1.
  • the foregoing authentication server generates the OTP 1 and the dynamic password token generates the first dynamic password algorithm, and generates a dynamic password in a timed manner.
  • the foregoing algorithm may include: HMAC-SHA 1, MD5, SHA- 1, SHA-256 and so on.
  • Step S803 the authentication server verifies whether the first dynamic password is correct. If yes, step S804 is performed, and if not, step S809 is performed.
  • step S802 when the authentication server generates OTP 1, one or a group of dynamic passwords may be generated as OTP 1, that is, OTP 1 may also be a set of dynamic passwords.
  • the authentication server can use the following method - the first dynamic password of the insurance card is correct:
  • OTP 1 is a dynamic password
  • the authentication server compares the first dynamic password with OTP 1. If the same, the first dynamic password is considered correct. If not, the first dynamic password is considered not. Correct
  • OTP 1 is a set of verification dynamic passwords
  • the authentication server performs a set of dynamic password OTP 1 one by one with the first dynamic password. Comparison, when a dynamic password is the same as the first dynamic password in a group of OTP 1, the comparison is considered to be successful, and the first dynamic password is correct, if any dynamic password in OTP 1 is not the same as the first dynamic password. If the same, it is considered that the danger certificate fails and the first dynamic password is incorrect.
  • the authentication server can also determine whether the first dynamic password has been used, and if not used, then listen to Whether a dynamic password is correct; if used, returns an error to the client.
  • determining whether the first dynamic password is used may play the following role: Preventing the hacker from immediately logging in to the authentication server with the same dynamic password after monitoring the dynamic password input by the user, thereby avoiding loss to the user.
  • a certain period of time may be set, for example, 10 minutes. If the first dynamic password has not been used within the previous 10 minutes, the authentication server performs a risk certificate on the first dynamic password.
  • the authentication server may generate a dynamic password according to a dynamic factor, for example, a first verification dynamic password, a second verification dynamic password, or a third verification dynamic password described later.
  • a dynamic password is generated by using a timing method as an example: a dynamic password is generated by using a timing method, that is, a dynamic password is generated by a device (a dynamic password token or an authentication server) when generating a dynamic password.
  • the difference between the time and the preset initial time is taken as the dynamic factor.
  • the one-minute time unit is taken as an example.
  • the dynamic password token sets an initial time at the initial ⁇ , for example. for
  • the dynamic password token or authentication server was used at 01:00 on January 1, 2000.
  • Initial time January 1, 2000, 00:00, 4 points minus 60 points, using 60 as a dynamic factor to generate dynamic passwords, but due to the dynamic password token and the authentication server, the timing is often out of sync. In this case, the time factor needs to be corrected.
  • the above method can be as follows: Assume that the initial time set by the dynamic password token and the authentication server is 00:00 on January 1, 2000, in the dynamic password order. The card timing is generated at 12:00 on January 1, 2000. The dynamic password is used by the dynamic password token at 60.
  • the server reference time is 01:02 on January 1, 2000, that is, the dynamic factor should be 62.
  • a dynamic range of time is set for the dynamic factor, for example, ⁇ 2 points. This floating range may be referred to as a time window in this embodiment, that is, the value of the dynamic factor.
  • the range can be set to [59, 65].
  • use 62 ⁇ 3 to generate a group of up to 7 first verification dynamic passwords that is, the dynamic factors used by the authentication server are 59, 60, 61, 62, 63, 64, 65, respectively, and use these dynamic factors to generate the first one by one.
  • a risk dynamic password compared with the first dynamic password, for example, the first-risk dynamic password generated according to the first dynamic factor 59, and the first-risk dynamic password and the first Dynamic password is not
  • the next dynamic factor 60 is used to continue to generate the first-risk dynamic password and compare it with the first dynamic password, and so on, until the first verification dynamic password is successfully compared with the first dynamic password.
  • the dynamic factor is 60, the first dynamic password-risk is correct, then the correct dynamic factor is obtained, the dynamic factor is updated to 60, and the timing offset between the authentication server and the dynamic password token can be calculated.
  • the dynamic factor stored by the authentication server can be verified as follows:
  • the updated dynamic factor the above authentication server generates the second-risk dynamic password. Current timing of the time - the initial time of the above entity - the above timing offset.
  • the authentication server generates a second license dynamic password at 01:03 on January 1, 2000.
  • the foregoing timing unit for calculating a dynamic factor may be set according to an actual situation, for example, according to security and calculation accuracy.
  • the dynamic factor when generating a dynamic password using timing, the dynamic factor can be calculated in units of minutes, or 30 seconds or 1 second, and a dynamic password is generated based on the dynamic factor.
  • the above-described operation of correcting the dynamic factor stored by the authentication server may be performed in step S303 or subsequent step S304.
  • Step S804 the authentication server generates a second verification dynamic password OTP2 and returns it to the client.
  • the authentication server may first calculate the difference between the time when the second verification dynamic password is generated (for example, 01:03 on January 1, 2000) and the initial time (00:00 on January 1, 2000). (equal to 63), then subtract the above timing offset (equal to 2) from the difference to obtain the updated dynamic factor (equal to 61), and generate OTP2 based on the updated dynamic factor.
  • the authentication server can generate the second certificate dynamic password ⁇ 2 according to the dynamic factor of the 4 ⁇ , preferably, here ⁇ 2 is a dynamic password.
  • ⁇ 2 is a dynamic password.
  • the password is as follows: The dynamic password token and the authentication server are both used in separate timing. During the authentication process, the authentication server generates OTP2 to generate the second dynamic password before the dynamic password token, so the authentication server generates OTP2 and dynamics.
  • the time token for generating the second dynamic password by the password token is different, so that the dynamic password is different, so an improved method can be used:
  • the time is corrected to reach the dynamic password token and the authentication server time. Synchronization, use this time as the reference time, and set a time period, for example, one minute, and extend the reference time by one minute as the time factor to generate OTP2 (OTP2 is a dynamic password), that is, the dynamic generated in this minute.
  • OTP2 is a dynamic password
  • the password is the same.
  • OTP2 is a dynamic password
  • the authentication server generates an OTP2 and returns it to the client at a fixed time.
  • the fixed time can be greater than 0, and should Within the safe range.
  • the embodiment is described by taking a fixed time of one minute as an example: when the authentication server receives the first dynamic password and the authentication is correct, the set time is the 0th minute, and at the first minute, according to the above method.
  • the first OTP2 is generated according to the current timing time, the preset initial time, and the timing offset, and is sent to the UE; then, in the 2nd minute, the second OTP2 is generated and sent to the UE; in the 3rd minute , generate the third OTP2, and send it to the client, and then dance like this, in order to avoid the problem caused by the delay when the user receives or the user verifies the OTP2.
  • the number of times the authentication server returns the OTP2 to the UE is limited to a maximum number of times. For example, when the user returns 10 times and the user does not perform the operation, the user is notified that the timeout has not responded. The certificate failed.
  • the UE After receiving the OTP2, the UE generates a second dynamic password by using the dynamic password token, and compares the second dynamic password with the OTP2. If the comparison is successful, the comparison is considered successful, and the dynamic password token is used again to generate the third dynamic password. And sent to the authentication server. If the second dynamic password is different from OTP2, the comparison is considered to be invalid, and the user can think that The authentication server is invalid and the login operation is stopped.
  • the dynamic factor can be generated according to the next minute of the current time, and the first time is generated according to the dynamic factor.
  • the time for generating ⁇ 2 can be prevented from being the same as the time for generating the first dynamic password by other means. For example, after the first dynamic password is correct, two time units are waited, and then, at the third time.
  • ⁇ 2 is generated on the unit, so that the time to generate ⁇ 2 can be made different from the time at which the first dynamic password is generated.
  • the authentication server generates the second verification dynamic password
  • the first risk dynamic password may be the same as the second-risk dynamic password.
  • the updated dynamic factor may be increased by a preset step size, and then, according to the increase The dynamic factor generates a second verification dynamic password, thereby avoiding a security hole caused by the second verification dynamic password being the same as the first verification dynamic password.
  • Step S805 The authentication server receives the third dynamic password within the agreed time.
  • step S306 is performed. If not, step S309 is performed.
  • the agreed time is an effective time for the authentication server to receive the third dynamic password, and the authentication server verifies the third dynamic password received within the valid time, and the third dynamic password that is not sent within the agreed time. Discarding, not verifying the third dynamic password, limiting the time can greatly prevent hacker attacks.
  • Step S806 the authentication server generates a third verification dynamic password OTP3. Preferably, before the authentication server generates the third verification dynamic password ⁇ 3, it may further include: - whether the third dynamic password of the risk certificate is used.
  • the dynamic password calculation repetition problem caused by the time window problem can be solved by the following method.
  • An example is as follows: For example, when the authentication server generates OTP2, the time is 00:10, the time is 00:13 when OTP3 is generated, and the time window is three minutes. Since OTP3 can be a dynamic password, the time factor is 00.
  • the 4 indicated by the gate is: forcibly setting the time before a certain moment, and no longer calculating as a dynamic factor, even within the range of the time window, obviously, in this example, 00:10 and The previous time is the gate and cannot be used as a dynamic factor.
  • the authentication server generates the third verification dynamic password, if the time interval between generating the second verification dynamic password is too short, the third insurance dynamic password may be the same as the second-risk dynamic password.
  • the dynamic factor is first updated, and the method may use the above-mentioned first-risk dynamic password. Then update the method used by the dynamic factor; then, increase the updated dynamic factor by a preset step size; then, generate the third-risk dynamic password using the added dynamic factor, thereby avoiding the third-risk dynamic password A security hole caused by the same as the second-risk dynamic password.
  • the authentication server verifies the third dynamic password. If yes, step S808 is performed. If not, step S809 is performed.
  • the method for authenticating the server to the third dynamic password-risk is: the authentication server uses the OTP3 to compare the third dynamic password, and if the same, the comparison is considered successful, and the step 4 is performed. If they are not the same, the comparison fails, and step 4 is performed to S809. If the authentication server generates a set of verification dynamic passwords when the authentication server generates the OTP3 in step 4, the third dynamic password is compared as follows: the authentication server uses the third dynamic password and the step S806 is used. The generated set of verification dynamic passwords are compared one by one.
  • step 4 is performed S808; If any of the dynamic passwords in a group-risk dynamic password is different from the third dynamic password, the comparison is considered to be unsuccessful, and the risk certificate is incorrect. Step 4 is performed.
  • the security policy of the static password may be added to prevent the login of the non-legitimate user caused by the loss or theft of the dynamic password token, so that the login process is more secure, wherein the specific steps are: Received the client within the pre-agreed time The third dynamic password and the static password are sent, and the authentication server verifies the static password and the third dynamic password.
  • step S808 If all are correct, step S808 is performed; otherwise, step S809 is performed. Step S808, the login is successful, and the online transaction can be started. Step S809, an error is returned.
  • the above-mentioned return error includes the following case: When the authentication server determines in step S803 that the first dynamic password is incorrect, it returns an error that the first dynamic password is incorrect. When the third dynamic password is not received within the pre-agreed time in step 4, the error of receiving the third dynamic password timeout is returned. When the authentication server determines in step S807 that the third dynamic password is incorrect, it returns an error that the login failed.
  • the dynamic password can be generated by using an algorithm including HMAC-SHA 1, MD5, SHA-1, SHA-256, etc., wherein the authentication server generates OTP 1 and the password token is generated first.
  • the algorithm of the dynamic password is the same, the algorithm for generating the OTP2 by the authentication server is the same as the algorithm for generating the second dynamic password by the password token, and the algorithm for generating the OTP3 by the authentication server is the same as the algorithm for generating the third dynamic password by the password token.
  • FIG. 9 is a structural block diagram of a dynamic password authentication apparatus according to an embodiment of the present invention. As shown in FIG.
  • the device includes: a first verification module 902, configured to perform a first action from a user end The password is verified by the processing module 904, configured to generate a second verification dynamic password when the first dynamic password is verified to be correct, and send the second verification dynamic password to the user terminal; the second-risk module 906 And for performing the third dynamic password in the case of receiving the third dynamic password from the user terminal within a predetermined time period.
  • the second verification module 906 verifies that the third dynamic password is correct, it is determined that the user has successfully logged in.
  • Figure 10 is a block diagram showing a preferred configuration of a dynamic password authentication apparatus of the present invention.
  • the authentication device includes: a communication module 1001, a search module 1002, a first generation module 1003, a first authentication module 1004, a second generation module 1005, a third generation module 1006, a third authentication module 1007, and a storage module 1008, wherein the module Can be implemented in the corresponding hardware through the program.
  • the first-risk module 402 in FIG. 9 may include: a search module 1002, a first generation module 1003, and a first authentication module 1004.
  • the processing module 404 may include: a second generation module 1005; The method includes: a third generation module 1006, and a third authentication module 1007.
  • the communication module 1001 is configured to communicate with the UE, receive the username information sent by the UE, the first dynamic password, send the OTP2 to the UE, and receive the third dynamic password sent by the UE, and return the login result to the UE.
  • the searching module 1002 is configured to: after receiving the username information and the first dynamic password sent by the client, the authentication server searches for a dynamic password token number corresponding to the username information, and a seed and a dynamic factor.
  • the first generation module 1003 is configured to generate a seed and a dynamic factor generated by the lookup module 1002.
  • the first authentication module 1004 is configured to verify the first dynamic password sent by the user end.
  • the first authentication module 1004 may further correct the dynamic factor after verifying that the first dynamic password is correct, so that the second generating module 35 is modified according to the second
  • the dynamic factor is generated by ⁇ 2.
  • the second generation module 1005 is configured to generate ⁇ 2 after the first authentication module 1004 successfully verifies the first dynamic password, and send ⁇ 2 to the client through the communication module 31.
  • the third generation module 1006 is configured to generate ⁇ 3 after the authentication server receives the third dynamic password sent by the client within a predetermined time.
  • the third authentication module 1007 is configured to verify the third dynamic password sent by the client. If the risk certificate is correct, the login is successful. If the risk certificate is incorrect, the login fails.
  • the storage module 1008 is configured to store username information, a dynamic password token number, a seed, and a dynamic factor.
  • the first generation module 1002 can generate one or a group of dynamic passwords; correspondingly, when the first generation module 1002 generates a dynamic password, the first authentication module 1004 sends the first dynamic to the user terminal.
  • the password-specific certificate is specifically: the first authentication module 1004 compares the first dynamic password with a dynamic password generated by the first generating module 1002, and if the same, the risk is successful, if not, then - The first dynamic password is incorrect when the first generating module 1002 generates a dynamic password.
  • the first authentication module 1004 performs a first dynamic password sent by the user terminal.
  • the specific risk is: the first authentication module 1004
  • the first dynamic password is compared with the dynamic password generated by the first generating module 1002, and if one of the dynamic passwords is the same as the first dynamic password, the comparison is considered to be successful, and the first dynamic password is correct. Otherwise, the first dynamic password is incorrect.
  • the An authentication module 1003 determines whether the first dynamic password has been used, and if not used, verifies whether the first dynamic password is correct, and if used, returns an error to the client through the communication module 1001; the first authentication module 1003 - the first risk certificate After the dynamic password is correct, the method further includes: correcting the dynamic factor; the communication module 1001 is further configured to receive the static password sent by the user end; and correspondingly, the third authentication module 1007 sends the third The dynamic password further includes: verifying the static password sent by the client, and if the third dynamic password and the static password-risk certificate are all passed, the risk certificate is considered to be successful, otherwise, the risk certificate fails; the first generation module 1002 generates
  • the OTP 1 algorithm includes: HMAC-SHA 1, MD5, Correspondingly, the algorithm for generating the OTP2 by the second generation module 1005 includes: HMAC-SHA 1, MD5, SHA-1, and SHA-256; and the algorithm for generating the OTP3 by the third generation
  • the password is verified by three times, so that the normal dynamic password token can verify the validity of the server, thereby increasing the security of the dynamic password authentication.
  • the embodiment of the present invention provides a method for secure transaction. Referring to FIG. 1 1 , the method includes: Step 1101: The transaction server receives the transaction information and the first dynamic password sent by the client, where the transaction information is included in the transaction information. It can be, but is not limited to, including: user account, user password, transaction amount, currency type, and the like.
  • the first dynamic password is generated by a dynamic password token legally held by the client user.
  • the dynamic password token used in this embodiment has a button, and the dynamic password generated when the user presses the button for the first time is the first dynamic password.
  • the dynamic password token provided by the embodiment of the present invention, it is required that the dynamic password token held by the client user is bound in advance with the user account of the user.
  • the dynamic password token has a unique number and stores a unique seed corresponding to the number internally.
  • the dynamic password algorithm can be used to generate a dynamic password, and the dynamic password algorithm is the same as the algorithm for generating a dynamic password.
  • the dynamic password token is a dynamic password generating device that is used offline, and there is no physical connection relationship with the client. The data generated and displayed by the dynamic password token is entered into the client by the legal user of the dynamic password token.
  • the dynamic password token to generate a dynamic password can be generated by using a dynamic factor based on time or event.
  • an event-based method is used as a dynamic factor to generate a dynamic password.
  • Step 1102 The server determines whether the first dynamic password has been used. If not, step 1103 is performed; if used, an error is returned to the client. It should be noted here that step 1102 is an optional step.
  • Step 1103 The monthly service generates the first license dynamic password OTP1, and whether the first dynamic password of the first license is correct; if correct, the execution step 4 gathers 1104; otherwise, cancels the transaction.
  • the monthly service generates the first-risk dynamic password OTP1 and the dynamic password token generates the first dynamic password in the same way, that is, the method of using the counting as the dynamic factor, using the same seed, and using the same Algorithm, such as HMAC-SHA1, MD5, SHA-1, SHA-2, etc.
  • the first-risk dynamic password OTP1 generated by the monthly server may be one or a group.
  • the specific process of the first dynamic password of the monthly service-risk certificate may include: When the OTP1 is one, the monthly dynamic password compares the first dynamic password with the OTP1, and if the same, the first dynamic is considered The password is correct. If it is not the same, the first dynamic password is considered to be incorrect.
  • the generated OTP1 is a group, and the first dynamic password is respectively associated with the first dynamic password.
  • the OTP1 is compared.
  • the authentication is successful, and the first dynamic password is correct. If the first dynamic password is verified with any one of the OTP1. If the dynamic passwords are different, the authentication is considered to be invalid and the first dynamic password is incorrect.
  • Step 1104 Perform a correction on the dynamic factor saved by the monthly server. The following uses the method of calculating the dynamic password as the dynamic factor in the embodiment: The dynamic method is used as a dynamic factor to generate a dynamic password.
  • the dynamic password token or server when the dynamic password is generated, the number of times the device (dynamic password token or server) generates a dynamic password is used as a dynamic factor.
  • the dynamic factor When the dynamic password is generated for the first time, the dynamic factor is counted.
  • the value 1, the dynamic factor when generating the dynamic password for the second time is the count value of 2, and so on, each time the dynamic password count value is incremented by one (or one step is added). Since the dynamic password token and the server are counted separately from each other, it is easy to cause inconsistency in counting, so it is necessary to correct the count value stored by the server.
  • the dynamic factor used when the dynamic password token generates the first dynamic password is the count value of 100.
  • the dynamic factor stored in the monthly server is the count value of 95, and the count is set when the monthly server calculates OTP1.
  • the value float range is 10, starting from the count value 95 as the dynamic factor to calculate OTP1, and increasing the count value to 95+10 one by one for OTP1 calculation, each time an OTP1 is calculated, it is compared with the first dynamic password, if not the same Then increase the calculated value to continue the calculation of OTP1. It can be seen from the above that when the OTP1 is generated by the monthly server, a set of up to 11 OTP1s is generated by using the count values 95, 96 104, and 105 as dynamic factors, and the server compares the received first dynamic password with the above 11 OTP1s.
  • Step 1105 The server generates a second verification dynamic password OTP2, and splits the OTP2 into a first password and a second password according to the agreed rule.
  • the second-risk dynamic password OTP2 generated by the server in this step is one.
  • the server splits the OTP2 into the first password and the second password according to the agreed rules.
  • the process may include: the monthly service side uses the part agreed in the OTP2 as the first password, and the remaining part as the second password.
  • OTP2 is an eight-digit number, the first three bits are taken as the first password, and the last five digits are used as the second password.
  • Step 1106 The server returns the first password and the transaction information to the client, and the client outputs the first password and the transaction information.
  • the method for outputting the first password and the transaction information by the client includes but is not limited to : Display, voice broadcast, etc.
  • Step 1107 The user is more consistent with the transaction information outputted by the user than the transaction information input by the user in step 1101; if they are consistent, step 4 is performed 1108; if not, the user cancels the transaction.
  • Step 1108 The user generates a second dynamic password by using the dynamic password token, and compares the first password with a corresponding part of the second dynamic password (for example, the first three digits); if they are the same, the comparison is successful, and step 1 is performed. 109; Otherwise, the comparison fails, the user can think that the monthly transaction is illegal and cancel the transaction.
  • Step 1109 The user inputs the remaining part of the second dynamic password (for example, the last five digits) as a third password to the client, and the client encrypts the transaction information according to the received third password to obtain the ciphertext information, and Sending the ciphertext information to the server;
  • Step 1110 After receiving the ciphertext information, the server decrypts the ciphertext information by using the second password to obtain the plaintext information; the client and the server use the same encryption and decryption algorithm pair
  • the transaction information is encrypted and decrypted, for example, algorithms such as AES, RSA, and 3DES are used.
  • Step 1 111 The monthly service determines whether the plaintext information is the same as the transaction information received in step 1101; if the same, the online transaction is performed; if not, the transaction is cancelled.
  • the embodiment of the invention provides a method for secure transaction.
  • the ordinary dynamic password token can be used for the legality of the monthly service, and at the same time, with the cooperation of the client, Provide the function of transaction signature, thus ensuring the security and privacy of the transaction information, preventing the user's identity from being attacked by the middleman, counterfeiting, and trading information being forged, falsified, and so on.
  • Embodiment 9 The embodiment of the present invention provides a method for secure transaction. Referring to FIG.
  • the method includes: Step 1201: The transaction server receives the transaction information sent by the client and the first dynamic password; wherein, the transaction information may be But not limited to include: user account, user password, transaction amount, currency type, etc.
  • the first dynamic password is generated by a dynamic password token held by the client user.
  • the dynamic password token used in this embodiment has a button, and the dynamic password generated when the user presses the button for the first time is the first dynamic password.
  • the dynamic password token provided by the embodiment of the present invention, it is required that the dynamic password token held by the client user is bound in advance with the user account of the user.
  • the dynamic password token has a unique number and stores a unique seed corresponding to the number internally.
  • the dynamic password algorithm can be used to generate a dynamic password, and the dynamic password algorithm is the same as the dynamic password algorithm generated by the monthly server.
  • the dynamic password token is a dynamic password generating device that is used offline, and there is no physical connection relationship with the client.
  • the data generated and displayed by the dynamic password token is entered into the client by the legal user of the dynamic password token.
  • a time-based or event-based method can be used as the dynamic factor.
  • a dynamic password is generated by using a time-based method as a dynamic factor.
  • Step 1202 The server determines whether the first dynamic password has been used; if not, performs step 1203; if used, returns an error to the client.
  • step 1202 is an optional step.
  • Step 1203 The monthly service generates the first license dynamic password OTP1, and whether the first dynamic password of the first license is correct; if correct, the step 4 is 1204; otherwise, the transaction is cancelled.
  • the monthly service generates the first-risk dynamic password OTP1 in the same manner as the dynamic password token generates the first dynamic password, that is, the time is used as the dynamic factor, and the same algorithm, such as HMAC-SHA1, is used. MD5, SHA-1, SHA-2, etc.
  • the first-risk dynamic password OTP1 generated by the monthly server can be one or a group.
  • the specific process of the server verifying whether the first dynamic password OTP1 is correct may include: when the OTP1 is one, the server selects the first dynamic password and the OTP1, and if the same, the first dynamic password is considered to be correct. If the difference is not the same, the first dynamic password is considered to be incorrect.
  • the monthly server calculates the OTP1 using the continuously increasing dynamic factor, the generated OTP1 is a group, and the monthly dynamic password performs the first dynamic password with a group of OTP1 respectively.
  • Step 1204 Perform a correction on the dynamic factor saved by the monthly server.
  • the method for correcting the dynamic factor saved by the monthly server may include: a dynamic factor of the successful OTP1 of the first dynamic password of the risk certificate
  • the server uses the standard dynamic factor minus its current dynamic factor to obtain the offset value of the current dynamic factor; the monthly dynamics use the current dynamic factor plus its offset value is 4 ⁇ Dynamic cause child.
  • a dynamic password is generated by using a timing method as an example: a dynamic password is generated by using a timing method, that is, a device (a dynamic password token or a monthly server) is generated when a dynamic password is generated.
  • the time of the dynamic password is used as a dynamic factor.
  • a dynamic password is generated by taking a dynamic factor of one minute as a time unit as an example.
  • the dynamic password token sets an initial time at the initial ⁇ , for example.
  • the dynamic password token or the server used January 1, 2000 at 01:00 Initial time: January 1, 2000, 00:00, 4 points minus 60 points, using 60 as a dynamic factor to generate dynamic passwords, but because the dynamic password token and the server are timed separately from each other, the timing often occurs out of sync. Therefore, it is necessary to correct the time dynamic factor of the monthly service.
  • the method can be as follows: The initial time for setting the dynamic password token and the server is 00:00 on January 1, 2000, and the time for the dynamic password token is January 1, 2000, 01:00. Dynamic password is generated. At this time, the dynamic password used by the dynamic password token is 60, and when the server generates OTP 1, due to the error of timing and data transmission, the monthly reference time is January 1, 2000. At 02, the dynamic factor should be 62, and set a floating range of time when the server generates a dynamic password, for example ⁇ 3 points, this floating range is called the time window in this embodiment, and a set of up to 7 OTP 1 is generated by using 62 ⁇ 3, that is, the dynamic factors used by the server are 59, 60, 61, 62, 63, 64, respectively.
  • the next dynamic factor 60 is used to continue generating OTP 1 and The first dynamic password is compared, ⁇ obviously, when the dynamic factor is 60, the first dynamic password-risk is correct, and when the correct dynamic factor is obtained, the dynamic factor is updated to 60, and the monthly enthalpy can be calculated.
  • the timing offset between the server and the dynamic password token is -2 points. After the next time the dynamic password is calculated, after the system time of the server is obtained, the offset value needs to be added to obtain the dynamic password token.
  • the synchronization time is used as the reference time, wherein the reference time is the sum of the monthly system time and the timing offset, and may also be the time after synchronization with the dynamic password token.
  • dynamic password calculation can be performed with a dynamic factor of one unit per minute, or it can be ⁇ ⁇ Or calculating the dynamic password for one unit of dynamic factor every second.
  • the above embodiment uses the calculation of the dynamic password as a unit per minute as an example.
  • the specific application of the dynamic factor time unit can be based on security. Sex and calculation accuracy are determined.
  • Step 1205 The second security key dynamic password OTP2 is generated, and the OTP2 is split into the first password and the second password.
  • the second-risk dynamic password OTP2 generated by the client in this step is one.
  • the server splits the OTP2 into the first password and the second password according to the agreed rules.
  • the process may include: the monthly service side uses the part agreed in the OTP2 as the first password, and the remaining part as the second password.
  • OTP2 is an eight-digit number, the first three bits are taken as the first password, and the last five digits are used as the second password.
  • the second-risk dynamic password OTP2 includes a method, and the second generated by the server- The risk dynamic password OTP2 is a group.
  • the time offset is determined to be -2 points, and it is determined that the time for generating the OTP2 is the synchronized monthly time plus one.
  • the step size which is 01:00 on January 1, 2000 plus 1 minute, the calculation dynamic factor should be 61.
  • the time window of the booster port is offset by +5. Use 61, 62, 63, 64, 65, 66 to generate a total of 6 dynamic passwords OTP2; as in the above method, generate a total of 6 OTP2s, and also need to set each of the above 6 dynamic passwords OTP2.
  • Step 1206 The server returns the first password and the transaction information to the client, and the client outputs the first password and the transaction information. It should be noted that, the manner in which the client outputs the first password and the transaction information includes, but is not limited to, display, voice broadcast, and the like.
  • Step 1207 The user is more consistent with the transaction information outputted by the user than the transaction information input by the user in step 1201; if they are consistent, step 4 is performed 1208; if not, the user cancels the transaction.
  • Step 1208 The user generates a second dynamic password by using the dynamic password token, and compares the first password with a corresponding part of the second dynamic password (for example, the first three digits); if they are the same, the comparison succeeds, and the step 4 is performed. 1209; Otherwise, the comparison fails, the user can think that the monthly transaction is illegal and cancel the transaction.
  • a dynamic password is generated by using a timing method (using a time factor as a dynamic factor)
  • the user receives the first password sent by the server it needs to generate the dynamic password token within a prescribed time.
  • the second dynamic password is as follows: The dynamic password token and the server are both used in separate timing.
  • the client In the process of authentication, the client generates OTP2 to generate a second dynamic password before the dynamic password token.
  • the time factor for generating the OTP2 and the dynamic password token to generate the second dynamic password is different, which will cause the dynamic password to be different, which will result in the failure of the comparison. Therefore, an improved method is needed:
  • the monthly server corrects the time to achieve the dynamic password token and the monthly client time synchronization, and uses this time as the reference time and sets A time period, example 3 ⁇ 4.
  • One minute, the base time and the one minute extension are both generated as a time factor to generate a second verification password ⁇ 2, which is one, that is, the dynamic password generated in this minute is the same.
  • the ⁇ 2 server After the ⁇ 2 server generates ⁇ 2, it returns to the client.
  • the client user should use the dynamic password token to generate the second dynamic password within the specified time. If the dynamic password token is used to generate the second dynamic password, the time is less than one. In minutes, the second dynamic password generated by the dynamic password token is the same as ⁇ 2.
  • the following steps can be taken in the following steps:
  • the monthly transaction end generates a ⁇ 2 return to the client at a fixed time. This embodiment uses a fixed time of one minute as an example, for example: When the server receives the first dynamic password and authenticates to be correct, the set time is the 0th minute, and ⁇ 2 is generated at this time, preferably, in order to avoid the monthly server 4
  • the first OTP2 is the same as the time when the user generates the first dynamic password using the dynamic password token.
  • the next OTP2 is used as the dynamic factor to generate the first OTP2. And generate an OTP2 back to the client every minute thereafter to prevent the client from receiving or delaying the OTP2, where the dynamic password generated by the monthly server and the dynamic password token are the same every minute period.
  • the server When the server generates a plurality of second verification passwords OTP2 in step 1208, the server sends the plurality of first passwords obtained by the splitting to the client, and at this time, the user displays the first-risk dynamic of the token.
  • the password is compared with the plurality of first passwords. If one of the comparisons is successful, the user can think that the comparison is successful.
  • Step 1210 After receiving the ciphertext information, the server decrypts the ciphertext information by using the second password to obtain the plaintext information; the client and the server use the same encryption and decryption
  • the algorithm performs encryption and decryption operations on the transaction information, for example, algorithms such as AES, RSA, and 3DES are used.
  • Step 1211 The monthly transaction terminal determines whether the plaintext information is the same as the transaction information received in step 1201; if the same, the online transaction is performed; if not, the transaction is cancelled.
  • the server decrypts the received ciphertext information by using the plurality of second passwords obtained by the splitting to obtain a set of plaintext information; Comparing the transaction information with the set of plaintext information obtained by decryption, as long as one plaintext information is the same as the transaction information, then the network is performed. On the transaction, if none of the group's plaintext information is consistent with the transaction information, the transaction is cancelled.
  • the embodiment of the invention provides a method for secure transaction.
  • an embodiment of the present invention provides a system for secure transaction, where the system includes: a client 301, a dynamic password token 302, and a server 303; the dynamic password token 302 includes: a generating module 302A The display module 302B is configured to display the first dynamic password and the second dynamic password generated by the generating module 302A to the user.
  • the client 301 includes: a sending module 301A, configured to: Transmitting, by the server 303, the transaction information input by the user and the first dynamic password generated by the generating module of the dynamic password token 302, and the ciphertext information obtained by encrypting the transaction information by the encryption module 301C to the server 303;
  • the receiving module 301B is configured to receive a first password and transaction information sent by the sending module 303 F of the server 303, receive a third password input by the user, and generate a comparison between the first password and the dynamic password token 302.
  • Information; server 303 includes: The receiving module 303A is configured to receive the transaction information and the first dynamic password sent by the sending module 301A of the client 301, and the ciphertext information sent by the client 301.
  • the first generating module 303B is configured to receive the receiving module 303A according to the server 303.
  • the received transaction information generates a first verification dynamic password
  • the verification module 303C is configured to use the first verification dynamic password generated by the first generation module 303B to verify the first dynamic password received by the receiving module
  • the second generation module 303D is configured to: After the verification of the first dynamic password by the verification module 303C, the second-risk dynamic password is generated; the splitting module 303E is configured to split the second verification dynamic password generated by the second generation module 303D into the first password and the first password.
  • a sending module 303F configured to return the first password obtained by the splitting module 303E and the transaction information received by the receiving module 303A to the client 301; the decrypting module 303G, the second obtained by using the splitting module 303E
  • the password decrypts the ciphertext information received by the receiving module 303 A of the server 303 to obtain the plaintext information; 303H, whether the plaintext information obtained by the comparison decryption module 303G is consistent with the transaction information received by the receiving module 303A of the server 303, and when they are consistent, the transaction is executed; when they are inconsistent, the transaction is rejected.
  • the server 303 further includes: a determining module 303J, configured to determine whether the first dynamic password received by the receiving module 303A of the server 303 is used; if yes, the sending module 303F returns to the client 301. Error 4: If no, the first generation module 303B of the server 303 generates a first-risk dynamic password according to the transaction information received by the receiving module 303A of the server 303.
  • the first generating module 303B of the server 303 specifically includes: a searching unit, configured to search for a corresponding seed and a dynamic factor in a user account in the transaction information; and a generating unit, configured to search according to the searching unit
  • the seed and the dynamic The factor generates a first-risk dynamic password, and the first-risk dynamic password is one or a set of dynamic passwords.
  • the dynamic factor is a dynamic factor based on time or event.
  • the risk module 303C of the server 303 specifically includes: a comparison unit, configured to compare whether the first dynamic password is consistent with the first-risk dynamic password generated by the first generation module; When the first-risk dynamic password is a dynamic password, if the comparison unit compares the result of the first dynamic password with the first verification dynamic password, determining Passing the first dynamic password-risk certificate; if the comparison unit is inconsistent with the result of the first dynamic password and the first verification dynamic password, determining that the first dynamic password-risk certificate fails; When the first-risk dynamic password is a dynamic password, if there is a result that the first-risk dynamic password and the first dynamic password are consistent in the comparison result of the comparison unit, the determination is performed.
  • the server 303 further includes: a modification module 303K, configured to: after the first dynamic password of the authentication module 303C of the server 303 passes, correct the dynamic factor of the server 303; correspondingly, the server 303
  • the second generating module 303D is specifically configured to: generate a second-risk dynamic password by using a seed and a dynamic factor after the correcting.
  • the second generating module 303D When the dynamic factor is a time-based dynamic factor, after the first dynamic password is passed, the second generating module 303D generates one or a set of dynamic passwords as the second-risk dynamic password; correspondingly, when the second-risk dynamic password generated by the second generating module 303D is a dynamic password, the first password obtained by the splitting module 303E is a password; When the second-risk dynamic password generated by the second generating module 303D is a set of dynamic passwords, the first password obtained by the splitting module 303E is a set of passwords; and the transmitting module 303F of the monthly server 303 is used.
  • the first password obtained by the splitting module 303E is a password
  • the first password and the transaction information are returned to the client 301 to compare the currently returned first password
  • the split module 303E obtains the first password
  • a password is a set of passwords
  • a set of first passwords and transaction information is returned to the client 301 to compare the currently returned first passwords.
  • the first dynamic password, the second dynamic password, the first-risk dynamic password, and the second-risk dynamic password are generated by the same algorithm.
  • the encryption and decryption algorithm is the same encryption and decryption algorithm that the client 301 and the server 303 pre-agreed.
  • the embodiment of the invention provides a system for secure transaction.
  • Embodiment 11 This embodiment provides a dynamic password-based authentication method. Referring to FIG. 14, the method includes: Step 1401: A server receives a user name and a first dynamic password sent by a user, where the first dynamic password is used by a user. The dynamic password token is generated by the dynamic password token, and the dynamic password token is associated with the user name.
  • the dynamic password token has a unique number, and the seed and the algorithm for generating the dynamic password are stored in advance on the server, and It is associated with the user name of the user; wherein, the user name may be the user's ID number, or the user's email address, or the user's bank account number, as long as the information identifying the user's identity can be used as the user's username;
  • the server selects the corresponding seed and dynamic factor according to the user name, and generates a first verification dynamic password according to the seed and the dynamic factor.
  • the server uses the first-risk certificate.
  • Dynamic password-risk first dynamic password - after the risk certificate is passed, generate a second-risk dynamic password; step 1404, the server splits the second verification dynamic password into the first password and the first according to a preset rule The second password returns the first password to the user; specifically, the client sends the first password to the client, and the client outputs the first password to the user by means of display output or audio playback, and the user receives the password.
  • the second dynamic password is generated by the dynamic password token, and the second dynamic password is split into the first verification password and the second verification password according to the preset rule; the user uses the first-risk password - After the first password is passed, it is confirmed that the client is legal, and the client receives the second verification password input by the user and forwards it to the server.
  • Step 1405 If the server receives the second verification password returned by the user within a predetermined time, the second verification password is verified by using the second password, and the verification succeeds to confirm that the user is legal.
  • the server is a phishing website this month, when the user uses the first-risk password to verify the first password returned by the server, the verification will fail. At this time, the user will not put the second verification password.
  • the server will not be able to obtain the second verification password; even if the server uses the user name intercepted in step 1401 and the first dynamic password to impersonate the user to access the real website, the website cannot be provided to the website.
  • the second verification password mentioned above may be refused to be logged in by the real website, thereby ensuring the interests of the legitimate user; at the same time, the server utilizes;) the method of splitting the second password into a first password and a second password, Reduce the number of times the monthly client and the client generate dynamic passwords, simplifying the authentication process while ensuring security.
  • the server in this embodiment splits the generated dynamic password into two passwords, and sends one of the passwords to the user for the user-risk to prove whether it is legal, and to use another password again--the insurance card is legal. It effectively prevents malicious websites such as phishing websites from using the intercepted user passwords to log in, thereby enhancing the security of the system and ensuring the security of the users.
  • Embodiment 12 This embodiment provides a dynamic password-based authentication method. This embodiment uses a dynamic password authentication method to log in to an online banking as an example. The description describes the authentication process of the dynamic password server during the user login process. In the embodiment, the method for generating a dynamic password is used as an example. Referring to FIG.
  • Step 1501 The client receives the user name and the first dynamic input by the user. Password;
  • the user's dynamic password token has been bound to the user's username.
  • the dynamic password token has a unique number and is stored internally in the server.
  • the dynamic password token can generate a dynamic password according to the built-in dynamic password algorithm, and the dynamic password algorithm is the same as the algorithm for generating the dynamic password by the server; in this embodiment, the dynamic used The password token has a button, and the dynamic password generated by the user when the button is pressed for the first time The first dynamic password; the user inputs the user name, the first dynamic password through the client, and is sent by the client to the server; when the dynamic password is generated, the dynamic factor can be selected by using a time or event based method.
  • the dynamic password is generated by using an event-based manner.
  • the method of counting is used, and the counting refers to the number of times the dynamic password is generated.
  • Step 1502 The user name received by the service terminal searches for the number and seed of the dynamic password token, and the dynamic factor, and generates the first-risk dynamic password OTP 1 according to the found seed and dynamic factor;
  • the OTP 1 generated by the server is the same as the first dynamic password algorithm generated by the dynamic password token.
  • the same method is used to generate the dynamic password.
  • the algorithm used may be: HMAC-SHA 1, MD5, SHA - 1 or SHA-2, etc.
  • Step 1503 the server verifies whether the first dynamic password is correct. If it is correct, step 4 is performed 204. If not, step 4 is performed.
  • step 4 202 when the OTP server generates OTP 1, one or a group of dynamic passwords can be generated as OTP 1, that is, OTP 1 can also be a set of dynamic passwords, and the dynamic passwords are continuously incremented.
  • Dynamic factor calculation According to the number of dynamic passwords in OTP 1, the method for verifying whether the first dynamic password is correct by the server is different. Specifically, when OTP 1 is a dynamic password, the server will be the first dynamic. The password is compared with OTP 1. If the same, the first dynamic password is considered correct. If it is not the same, the first dynamic password is considered incorrect. When OTP 1 is a dynamic password, the server will use the dynamic password. Each dynamic password in the comparison is compared with the first dynamic password.
  • the method may further include: the server determines whether the first dynamic password has been used, and if not used, verifies whether the first dynamic password is correct, and if used, returns an error 4 to the user; After the first dynamic password of the risk certificate is correct, the method may further include: performing a positive (ie, updating the dynamic factor) on the dynamic factor saved by the monthly service.
  • the dynamic password is generated by using the method in this embodiment as an example to illustrate the dynamic factor correction process: using the counting method to generate a dynamic password, that is, when generating a dynamic password ⁇ 1
  • the device dynamic password token or server
  • the dynamic password is the count value.
  • the dynamic factor is the count value of 2.
  • Class 4 dance each time the dynamic password count value is incremented by 1, it can also be added a preset step size. Since the dynamic password token and the server are separately counted, it is easy to generate the inconsistency of the counting, so it is necessary to correct the counting value stored by the server; and set the first dynamic password in the dynamic password token.
  • the dynamic factor used is the count value of 100.
  • the dynamic factor saved in the monthly server is the count value of 95.
  • OTP 1 set the count value to a floating range of 10
  • calculate 95 as the dynamic password corresponding to the dynamic factor, and gradually increase the count value to 95+10, and simultaneously calculate OTP 1, and calculate an OTP 1 for each time. Compare with the first dynamic password. If not, increase the calculated value to continue the calculation of OTP 1. It can be seen from the above that when OTP 1 is generated by the server, the other ones use the count values 95, 96 104, and 105 as dynamic factors to generate a group of up to 11 dynamic passwords, and the first dynamic password that the server will receive.
  • the monthly response is successful with the dynamic value generated by the counting value of 100 as the dynamic factor
  • the first dynamic password is considered to be correct, and the calculation of the OTP 1 is stopped.
  • the counter value stored in the server is corrected, and 100 is used as the correct count value, so that the dynamic password token is synchronized with the count value of the server, and the server increments the count value 100 by 1 (or a predetermined step), as The dynamic factor of the dynamic password is calculated.
  • the monthly service generates a second license dynamic password OTP2, and splits the OTP2 into a first password and a second password.
  • the second verification dynamic password OTP2 generated by the server in the step is a dynamic password, that is, the password is different from the OTP 1.
  • the splitting of the OTP2 into the first password and the second password includes: the part of the OTP2 as the first password and the remaining part as the second password; in this embodiment, preferably , OTP2 is an eight-digit number, the first three digits are taken as the first password, and the last five digits are used as the second password; in step 1505, the server returns the first password to the client, and the client outputs the first password; After receiving the first password, the second dynamic password is generated by using the dynamic password token, and the user divides the second dynamic password into the first-risk password and the second-risk password, and the dividing rule and step 1504 in this embodiment.
  • the splitting rule of the server is the same, and the rule is determined in advance by the client in consultation with the user. Therefore, the user in this embodiment uses the first three digits of the second dynamic password as the first verification password, and the remaining five digits. As the second verification password; The user compares the first password with the first-risk password. If the comparison is successful, the user considers that the comparison is successful, and sends the second-risk password to the server. If not, the comparison is considered to be a failure. If the server is not legal, the login operation is stopped. Step 1506, the server determines whether the second verification password is received within a predetermined time. If yes, go to step 1507. Otherwise, go to step 1509.
  • the scheduled time is the effective time for the monthly service to receive the second-risk password
  • the monthly service terminal carries out a risk certificate for the second-risk password received within the valid time, and is not sent within the agreed time.
  • the second verification password is discarded, and the second verification password is not verified. Limiting the time can prevent hacker attacks to a certain extent.
  • step 1507 the server verifies the second verification password. If yes, step l 1508 is performed. If not, step 4 is performed 1509. In this embodiment, the server verifies the second verification password as: The terminal uses the second password to compare with the second risk password. If the comparison is successful, the comparison is considered to be successful, and the step 4 is performed 1508.
  • step 4 is performed 1509; in this embodiment, It is also possible to join the process of the static password-risk card to prevent the non-legitimate user from logging in due to the loss or theft of the dynamic password token, so that the login process is more secure, specifically:
  • the client receives the message within the pre-agreed time.
  • the second-risk password and the static password sent by the user, and the server verifies the static password and the second verification password respectively. If all are correct, step 4 is performed 1508; otherwise, step 4 is performed 1509.
  • Step 1508 the user identity is legal, allowing the user to log in, and the online transaction can be started; Step 1509, returning the error report;
  • the above return error 4 report includes the following situation: In step 4 When the first dynamic password is incorrect, the first dynamic password error 4 is returned, and the information indicating that the dynamic password token is invalid or the dynamic factor error is too large is indicated in the report; in step 1505, the message is not received within the pre-agreed time. Returning to the second-risk password, returning the report information of receiving the second verification password timeout; When the server determines in step 1507 that the second verification password is incorrect, it returns the false information of the login failure.
  • the following algorithm may be used to generate the dynamic password: HMAC-SHA 1, MD5, SHA-1 or SHA-2, etc., wherein the monthly server generates the OTP 1 and the dynamic password token to generate the first dynamic password.
  • the algorithm for generating the OTP2 and the dynamic password token to generate the second dynamic password is the same.
  • the monthly server of the embodiment generates a dynamic factor in a counting manner, and generates a dynamic password based on the dynamic factor, and splits the generated dynamic password into two passwords, and sends one of the passwords to the user for the user.
  • Embodiment 13 This embodiment provides a dynamic password-based authentication method. This embodiment uses a dynamic password authentication method to log in to an online banking as an example. The description describes the authentication process of the dynamic password server during the user login process.
  • the method for generating a dynamic password is used as an example.
  • the method includes: Step 4: 1601, the client receives the user name and the first dynamic password input by the user.
  • the user's dynamic password token has been bound to the user's username.
  • the dynamic password token has a unique number and is uniquely stored in the server.
  • the dynamic password token can generate a dynamic password according to the built-in dynamic password algorithm, and the dynamic password algorithm is the same as the algorithm for generating the dynamic password by the server; in this embodiment, the dynamic password used
  • the token has a button, and the dynamic password generated by the user pressing the button for the first time is the first State password; user through the client user name and a first dynamic password, sent by the client to the server;
  • the selection of the dynamic factor when generating the dynamic password can be based on a time or event based approach.
  • the dynamic password is generated in a time-based manner.
  • Step 1602 The user name received by the service terminal searches for the number and seed of the dynamic password token, and the dynamic factor, and generates a first-risk dynamic password OTP 1; wherein, the monthly server generates the OTP 1 and the dynamic password token.
  • the first dynamic password algorithm is generated in the same manner, and the dynamic algorithm is generated by using the same algorithm.
  • the dynamic password generation algorithm may be: HMAC-SHA 1, MD5, SHA-1 or SHA-2.
  • Step 1603 the server verifies whether the first dynamic password is correct. If it is correct, step 4 is performed 1604.
  • step 4 is performed 1609; wherein, in step 4, 1602, when the server generates OTP 1, One or a set of dynamic passwords can be generated as OTP 1, that is, OTP 1 can also be a set of dynamic passwords; whether the first dynamic password is correct, including: When OTP 1 is a dynamic password, The server compares the first dynamic password with the OTP 1. If the same, the first dynamic password is considered to be correct. If not, the first dynamic password is considered incorrect. When the OTP 1 is a dynamic password, the group The dynamic factor (timed time) used by the dynamic password is a time window (the specific implementation method will be described later), and the server compares the dynamic password with the first dynamic password respectively.
  • the dynamic factor (timed time) used by the dynamic password is a time window (the specific implementation method will be described later), and the server compares the dynamic password with the first dynamic password respectively.
  • the server may also determine: the server determines whether the first dynamic password has been used, if not Used, verify that the first dynamic password is correct, if used, return error 4 to the user; when the server-risk first dynamic password is correct, it may also include: Dynamic factor saved for the client Perform 4 positive (ie update dynamic factor).
  • a dynamic password is generated by using a timing method as an example, and the process of tampering with the dynamic factor is described.
  • the dynamic password is generated by using a timing method, that is, the device (dynamic password token or monthly server) is generated when the dynamic password is generated.
  • the time when the dynamic password is generated is used as the dynamic factor.
  • the dynamic password is generated by using one minute as a time unit as a dynamic factor.
  • the dynamic password token sets an initial time at the initial ⁇ , for example.
  • the dynamic password token or the server used January 01, 2000 00 points and initial time January 1, 2000, 00:00, 4 points minus 60 points, using 60 as a dynamic factor to generate dynamic passwords, but because the dynamic password token and the server are separately timed, often timing does not occur In the case of synchronization, it is necessary to perform 4 ⁇ positive for the time factor.
  • the above method of correcting is as follows: The initial time set by the token and the server is 2000. At 00:00 on the 1st of the month, the dynamic password is generated when the dynamic password token timing is 01:00 on January 1, 2000.
  • the dynamic password used by the dynamic password token is 60, and the server generates OTP 1 Due to the error of timing and data transmission, the server reference time is 01:02 on January 1, 2000, that is, the dynamic factor should be 62.
  • the floating range for example, ⁇ 2 points, which is called the time window in this embodiment, uses 62 ⁇ 3 to generate a group of up to 7 OTP 1 , that is, the dynamic factors used by the server are 59, 60, 61, 62 respectively. , 63, 64, 65, use these dynamic factors to generate OTP 1 one by one and compare it with the first dynamic password.
  • the OTP 1 generated by the first dynamic factor 59 is unsuccessful, use the next dynamic factor 60 to continue.
  • the OTP 1 is generated and compared with the first dynamic password.
  • the dynamic factor is 60
  • the first dynamic password-risk is correct
  • the correct dynamic factor is obtained
  • the dynamic is dynamic.
  • the sub-update is 60
  • the time offset between the monthly server and the dynamic password token can be calculated as -2 points.
  • the system time of the monthly server needs to be added.
  • the offset value is used to obtain the time synchronized with the dynamic password token as the reference time, wherein the reference time is the sum of the system time and the timing offset of the server, and may also be the time after synchronization with the dynamic password token.
  • the dynamic password when the dynamic password is generated by using the timing method, the dynamic password can be calculated as a dynamic factor every minute, or the dynamic password can be calculated for every 30 seconds or every second.
  • the above embodiment is one per minute
  • the calculation of the dynamic password is performed by an example.
  • the specific factor of the dynamic factor time unit in the specific application can be determined according to the security and the calculation accuracy.
  • Step 1604 the second client generates a second license dynamic password OTP2, and splits the OTP2 into a first password and a second password.
  • the second-risk dynamic password OTP2 generated by the server is a dynamic password.
  • the server splits the OTP2 into the first password and the second password, and specifically includes: the part of the OTP2 as the first password, and the remaining part as the second password; in this embodiment, preferably,
  • the OTP is an eight-digit number. The first three digits are taken as the first password, and the last five digits are used as the second password.
  • OTP2 and OTP 1 cannot be the same, avoiding the generation with OTP2. If the time is too close, the time factor may be increased by one step to generate OTP2 to avoid the same situation as OTP 1. In order to prevent the next server from returning the first password to the client, the authentication failure occurs due to network delay.
  • the server generates the dynamic password OTP2 and includes an implementation method.
  • the dynamic password OTP2 generated by the server is a set of dynamic passwords. For example, in step 303, after the dynamic factor is corrected, and the time offset is determined to be -2 points, it is determined that the time for generating the OTP2 is the synchronized monthly server time plus one step, that is, January 2000. On the 1st, 01:00 plus 1 minute, the calculation dynamic factor should be 61. In order to generate a set of dynamic passwords, the booster port is offset backwards. The day-to-mid window is +5, and the shell 'J spears' is 61.
  • Step 1605 the server returns the first password to the client, and the client outputs the first password; After receiving the OTP2, the client generates a second dynamic password by using the dynamic password token, and the user divides the second dynamic password into the first verification password and the second verification password.
  • the dividing rule in this embodiment and the server in step 304 are removed. The rule is the same.
  • the rule is determined by the server in advance with the user. Therefore, the user in this embodiment uses the first three digits of the second dynamic password as the first verification password, and the remaining five digits as the second verification password. The user compares the first password with the first-risk password. If the comparison is successful, the user considers that the comparison is successful, and sends the second-risk password to the server. If not, the comparison is considered to be a failure. It is considered that the monthly client is not legal and stops the login operation.
  • the dynamic password token needs to be used to generate the second dynamic password within the specified time, for the following reasons: Dynamic password token and server In the process of authentication, the client generates OTP2 to generate a second dynamic password before the dynamic password token, so the client generates OTP2 and the dynamic password token to generate the second dynamic password.
  • the time factor is different, which causes the dynamic password to be different. Therefore, an improved method is needed: After the first dynamic password comparison is successful, the time is corrected to achieve dynamic password token and server time synchronization, and this time is used as the reference time.
  • the client splits the first password and the second password, and returns the first password to the user.
  • the user should generate the second dynamic password by using the dynamic password token within the specified time. If the specified time is less than one minute, the second dynamic password generated by the dynamic password token should be the same as OTP2.
  • the monthly service end generates an OTP2 at a fixed time, and returns the first password after the OTP2 split to the user, and the embodiment takes a fixed time.
  • the set time is 0 minutes, and OTP2 is generated at this time, preferably, in order to avoid server generation.
  • the first OTP2 is the same as the time when the user generates the first dynamic password using the dynamic password token.
  • the next OTC2 is used as the dynamic factor to generate the first OTP2.
  • the first password obtained after the OTP2 split is returned to the user, preventing the user from receiving or verifying the delay of the first password.
  • the dynamic password generated by the monthly server and the dynamic password token is the same every minute period, and can be used.
  • the second second in a minute is used as a dynamic factor, or one of the seconds is set as a dynamic factor.
  • the server When returning the first password, it is necessary to limit the number of times the server returns the first password, that is, set a maximum number of times to return, for example, when the user returns 10 times, the user is notified that the timeout has not responded, and the risk certificate fails;
  • the fixed time may be greater than 0, and should be within a safe range;
  • the monthly server generates a set of multiple dynamic passwords OTP2, and the monthly server will split the obtained multiple
  • the first password is sent to the client.
  • the user compares the first-risk password displayed by the token with the plurality of first passwords. If one of the comparisons is successful, the client returns to the server.
  • the second verification password Step 1606: The server receives the second verification password within the agreed time.
  • the agreed time is the second-risk.
  • the validity time of the password, the month-end server performs a risk certificate on the second-risk password received within the valid time, discards the second verification password that is not sent within the agreed time, and does not perform the second verification password. Verification, limiting time can prevent hacker attacks to a certain extent.
  • Step 1607 the server verifies the second verification password. If yes, step l 1608 is performed. If not, step 4 is performed 1609.
  • the method for the server to verify the second verification password is: The terminal uses the second password to compare with the second insurance password. If the comparison is successful, the comparison is considered successful, and the step 4 is performed 1608.
  • the server verifies the second verification passwords by: the server uses the plurality of second passwords to compare with the second verification passwords. Yes, if one of the second passwords is the same as the second-risk password, the risk is successful.
  • the static password-to-risk process can also be added to prevent the dynamic password token from being lost. Or the illegal user login caused by theft, making the login process more secure. Specifically, the server receives the second-risk password and the static password sent by the user within a predetermined time, and the server verifies the static password and the second verification password respectively.
  • step 4 is performed. Gather 1608, otherwise, perform step 4 to gather 1609.
  • step 1608 the user identity is legal, and the user is allowed to log in successfully, and the online transaction can be started.
  • Step 1609 the error report is returned.
  • the case of returning the error 4 is the same as that in the embodiment 12, and details are not described herein.
  • the following algorithm may be used to generate the dynamic password: HMAC-SHA 1, MD5, SHA-1 or SHA-2, etc., wherein the monthly server generates OTP 1 and the password token to generate the first dynamic password, month The server generates the same OTP2 algorithm as the password token to generate the second dynamic password.
  • the monthly server of the embodiment generates a dynamic factor in a timed manner, generates a dynamic password based on the dynamic factor, and splits the generated dynamic password into two passwords, and sends one of the passwords to the user for user-risk Whether it is legal or not, use another password again - whether the license card user is legal, effectively prevent malicious websites such as phishing websites from using the intercepted user password to log in, thereby enhancing the security of the system and ensuring the security of the user's information;
  • the ordinary dynamic password token is still applicable, and the user can perform the risk certificate on the legality of the client through the dynamic password token, thereby preventing the user from entering the phishing website and suffering losses. , increased the security of dynamic passwords.
  • Embodiment 14 provides a dynamic password-based authentication apparatus.
  • the apparatus includes: a first generation module 1701, configured to receive a user name and a first dynamic password sent by a user, and search for a corresponding name according to the user name. a seed and a dynamic factor, generating a first verification dynamic password according to the seed and the dynamic factor; the first-risk module 1702, the first-risk dynamic password-risk first dynamic generated by using the first generation module 1701 Password
  • the second generation module 1703 is configured to: after the first verification module 1702 verifies that the first dynamic password is passed, generate a second-risk dynamic password; and the split and transmit module 1704 is configured to generate the second generation module 403 according to a preset rule.
  • the second verification dynamic password is split into a first password and a second password, and the first password is returned to the user;
  • the second-risk module 1705 is configured to receive the second verification password returned by the user within a predetermined time.
  • the second verification password is split with the second password split by the sending and sending module 1704, and the risk certificate is passed, and the user is confirmed to be legal.
  • the device further includes: a third verification module, configured to receive a static password input by the user, verify whether the static password is correct, and if so, trigger the second verification module 1705 to verify the second verification password; otherwise, reject the user login .
  • the authentication device in this embodiment interacts with the user through the client, and the authentication device may be specifically the client in the embodiment 1, 1 or 12, or the username is pre-stored on the authentication device, and The number, seed, and dynamic factor of the dynamic password token corresponding to the user name, and an algorithm for generating a dynamic password, and a splitting rule for splitting the generated dynamic password into two passwords, etc., which can be referred to The corresponding information implementation in Embodiment 12 or 13 is not described in detail here.
  • the first-risk dynamic password generated by the first generating module 1701 may be one or a group of dynamic passwords; when the first generating module 1701 generates a dynamic password, the first-risk module 1702 performs the first dynamic password.
  • the verification is specifically: the first verification module 1702 compares the first dynamic password with the dynamic password generated by the first generation module 1701. If the same, the verification succeeds. If not, the first dynamic password is verified to be incorrect;
  • the first generation module 1701 generates a set of dynamic passwords
  • the first-risk module 1702 performs a risk on the first dynamic password. Specifically, the first-risk module 1702 sets the first dynamic password with the first The set of dynamic passwords generated by the generating module 1701 are compared one by one. If one of the dynamic passwords is the same as the first dynamic password, the comparison is considered successful, and the first dynamic password is correct. Otherwise, the first dynamic password is incorrect.
  • the first-risk certificate module 1702 Before the first-risk certificate module 1702 generates the first-risk dynamic password, it may also include, A verification module 1702 determines whether the first dynamic password has been used, if not used, - whether the first dynamic password of the risk certificate is correct, and if used, returns an error 4 to the user; the first - the insurance certificate module 1702 - the risk certificate After the first dynamic password is correct, the method further includes: performing a positive dynamic factor, and the specific method is the same as the method in the embodiment 12 or 13, and is not described in detail herein; the first generating module 1701 generates the first
  • the algorithm for generating the second risk dynamic password may be: HMAC-SHA 1, MD 5, SHA-1 or SHA-2, etc.; the second generation module 1703 may also include First-risk certificate module 1702 - after the first dynamic password is passed, a plurality of second-risk dynamic passwords are generated; when the second generation module 1703 generates a plurality of second-risk dynamic passwords, The splitting and sending module 1704 splits the
  • the splitting and sending module 1704 sets a plurality of second-risk dynamic passwords.
  • the rule is split into a plurality of first passwords and a second password.
  • the second verification module 1705 verifies the second verification passwords by: The second verification module 1705 compares the second password with the second verification password. When one of the second passwords is the same as the second password, the risk is considered successful. .
  • the authentication device of this embodiment splits the generated dynamic password into two passwords, and sends one of the passwords to the user, for the user-risk to prove whether it is legal, and to use another password again - whether the insurance user is legal or not, valid
  • the malicious website such as the phishing website is prevented from using the intercepted user password to log in, thereby enhancing the security of the system and ensuring the information security of the user.
  • a hard disk or an optical disk, etc. including thousands of instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform the methods described in various embodiments of the present invention.
  • a computer device which may be a personal computer, a server, or a network device, etc.
  • the above is only the specific embodiment of the present invention, but the scope of the present invention is not limited thereto, and any person skilled in the art can easily think of changes or substitutions within the technical scope of the present invention. It should be covered by the scope of the present invention. Therefore, the scope of the invention should be determined by the scope of the claims.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种认证方法及系统,涉及信息安全领域,解决了交易过程用户信息不够安全的问题。本发明实施例包括:服务端接收用户端发送的用户数据信息和第一动态口令;服务端根据用户数据信息生成第一验证动态口令,服务端根据第一验证动态口令验证第一动态口令,验证通过后生成第二验证动态口令,服务端将第二验证动态口令或第一口令发送给用户端,所述服务端利用自身生成的第三验证动态口令对用户端发送的用户数据信息或第三动态口令进行认证通过后,执行用户数据信息中的交易数据或对允许用户登录。通过本发明,能够提高用户进行交易的安全性,可以使得用户避免由于登录钓鱼网站而遭受损失。

Description

认证方法及系统 技术领域 本发明涉及信息安全技术领域, 尤其涉及一种认证方法及系统。 背景技术 随着网络技术在人们日常生活中的应用越来越广泛, 人们已经越 来越依赖于网络进行更多的日常活动,例如利用网络进行购物、办公、 娱乐等。 也正是由于网络应用的加强, 各种提供便捷服务的网站也应 运而生, 使得网站的数量不断增加, 同时对网络的安全性要求也越来 越高, 尤其是网络银行、 政府办公相关的网站, 要求登录用户合法。 近年来, 在认证领域广泛使用动态口令的方式进行认证, 这种认证方 式在对静态密码进行验证的基础上增加了动态密码的验证, 使得用户 口令多了一层保护, 增加了安全性。 在现有技术中, 动态口令的验证通常是这样进行的, 服务方向用 户发放动态口令令牌, 这种令牌是一种自带有处理器的电子设备, 其 大小如同 U盘, 在装有电池或接电的情况下可以独立运行。 在动态口 令令牌内部安全的存储有与其对应的种子, 也称为静态因子, 所述种 子为一个长字符串或数据, 动态口令令牌可以根据内置的动态口令算 法利用种子和动态因子生成动态口令, 动态因子可以为时间或事件因 素, 因此可以达到一次一个密码的效果, 安全性较高。 在实现上述动态口令进行-险证的过程中, 发明人发现现有技术中 至少存在如下问题: 动态口令虽然安全性较高, 不易破解, 但是动态 口令的认证方法却无法防止钓鱼网站的攻击, 动态口令可能被窃取。 钓鱼网站模仿真网站的界面, 如果用户打开了钓鱼网站并进行登录, 钓鱼网站会记录用户所输入的登录信息, 并使用这些信息冒充用户在 真网站上进行登录, 造成用户信息和财产的损失。 发明内容 本发明提供了一种认证方法及系统, 提高用户进行交易的安全 性。 为达到上述目的, 本发明釆用如下技术方案: 本发明提供了一种认证方法, 该认证方法包括: 服务端接收用户端发送的用户数据信息和第一动态口令; 所述月艮务端 居用户数据信息生成第一-险证动态口令, 所述艮务端才艮据所述第一-险证动态口令 -险证所述第一动态口令, -险证通 过后生成第二-险证动态口令, 所述艮务端将所述第二-险证动态口令或第一口 令发送给所述用户端, 其中所述第一口令是由所述月艮务端将所述第二-险证动 态口令按照预设的规则拆分为第一口令和第二口令后获得的, 若所述月艮务端将所述第二-险证动态口令发送给所述用户端, 则所述月艮务 端若在预定的时间内接收到来自所述用户端的第三动态口令, 则对所述第三 动态口令进行 -险证, -险证通过后, 则用户端合法; 或, 所述服务端利用自身 生成的第三验证动态口令对接收到来自用户端的加密的密文信息进行解密得 到明文信息, 判断所述明文信息与交易信息是否一致, 其中, 所述用户数据 信息包括所述交易信息, 如果一致, 则执行交易, 其中所述密文信息为所述 用户端对接收到的第二-险证动态口令通过后, 利用所述第三动态口令对所述 交易信息加密得到的; 若所述月艮务端将所述第一口令发送给所述用户端, 则所述月艮务端在预定 的时间内接收到所述用户端返回的第二动态口令, 则使用所述第二口令对第 二动态口令进行验证, 验证通过后则用户端合法; 或, 所述服务端利用所述 第二口令对接收到的来自用户端的加密的密文信息进行解密后得到明文信 息, 判断所述明文信息与交易信息是否一致, 其中, 所述用户数据信息包括 所述交易信息, 如果一致, 则执行交易, 其中, 所述密文信息为用户端接收 到用户比对所述第一口令和所述用户端自身生成的第二动态口令中的相应数 据一致的确认信息后, 使用所述第二动态口令中的剩余数据部分作为第三口 令, 使用所述第三口令对所述交易信息加密得到的。 本发明还提供了一种认证系统, 该认证系统包括月艮务端和用 ^ ^ 其中, 所述月艮务端包括: 接收模块, 用于接收所述用户端发送的用户数据信息和第一动态口令; 生成模块或生成拆分模块, 其中, 所述生成模块用于在所述服务端根据 所述第一-险证动态口令-险证所述第一动态口令通过后生成第二-险证动态口 令, 还用于生成第三验证动态口令; 所述生成拆分模块, 用于在所述服务端 才艮据所述第一-险证动态口令 -险证所述第一动态口令通过后生成第二-险证动态 口令, 并将所述第二验证动态口令按照预设的规则拆分为第一口令和第二口 令; 发送模块 ,用于将所述第二 证动态口令或第一口令发送给所述用户端; 若所述发送模块用于将所述第二-险证动态口令发送给所述用户端, 则所 述接收模块还用于接收来自用户端的第三口令,所述服务端还包括验证模块, 用于验证所述接收模块接收到的来自用户端的第三口令, 验证通过后, 所述 用户端合法; 或, 所述接收模块还用于接收来自用户端的加密的密文信息, 所述服务端还包括解密模块, 用于解密所述接收模块接收到的来自用户端的 加密的密文信息得到明文信息; 判断模块, 用于判断所述明文信息, 与所述 交易信息是否一致, 执行模块, 用于在判断所述明文信息与所述交易信息一 致时, 执行交易; 若所述发送模块用于将所述第一口令发送给所述用户端, 则所述接收模 块还用于接收用户端返回的第二动态口令, 所述服务端还包括验证模块, 用 于使用所述第二口令对所述第二动态口令进行验证, 验证通过后, 所述用户 端合法; 或, 所述接收模块还用于接收来自用户端的密文信息, 所述用户端 还包括解密模块, 用于解密所述接收模块接收到的来自用户端的加密的密文 信息得到明文信息, 其中, 所述密文信息为用户端接收到用户比对所述第一 口令和所述用户端自身生成的第二动态口令中的相应数据一致的确认信息 后, 使用所述第二动态口令中的剩余数据部分作为第三口令, 使用所述第三 口令对所述交易信息加密得到的; 判断模块, 用于判断所述明文信息与所述 交易信息是否一致, 执行模块用于在判断模块判断所述明文信息与所述交易 信息一致时, 执行交易。 所以, 通过本发明提供的认证方法及系统确认交易双方的合法身 份, 能够提高用户进行交易的安全性, 可以使得用户避免由于登录钓 鱼网站而遭受损失。 附图说明
1为本发明实施例 1 中交易签名方法的流程图;
2为本发明实施例 1 中认证服务器的框图;
3为本发明实施例 1 中交易签名系统原理图;
4为本发明实施例 2 中交易签名方法的流程图;
5为本发明实施例 3 中交易签名方法的流程图。
6是本发明实施例 4的动态口令的认证方法的流程图;
7是本发明实施例 5 中的动态口令的认证方法的流程图;
8是本发明实施例 6 中的动态口令的认证方法的流程图;
9是本发明实施例 4的动态口令的认证装置的结构框图;
10是本发明实施例 7 中的动态口令的认证装置的优选结构框 图; 图 1 1是本发明实施例 8中提供的一种安全交易的方法流程图; 图 12是本发明实施例 9中提供的一种安全交易的方法流程图; 图 13是本发明实施例 10中提供的一种安全交易的系统结构示意 图; 图 14示出了实施例 1 1提供的基于动态口令的认证方法流程图; 图 1 5示出了实施例 12提供的基于动态口令的认证方法流程图; 图 16示出了实施例 13提供的基于动态口令的认证方法流程图; 图 17示出了实施例 14提供的基于动态口令的认证装置的结构框 具体实施方式 为使本发明的目的、 技术方案和优点更加清楚, 下面将结合附图 对本发明实施方式作进一步地详细描述。 实施例 1 本发明实施例提供一种交易签名方法, 本实施例在认证月艮务器和 动态令牌中设有相同的动态口令生成算法和种子, 以便认证月艮务器和 动态令牌的口令之间能相互验证, 如图 1所示, 所述方法包括:
101、 用户需要进行交易的时候先通过动态令牌生成一个第一动 态口令, 并通过用户端将交易信息和所述第一动态口令发送给认证月艮 务器;
102、 认证服务器在接收到交易信息和第一动态口令后, 对接收 到的第一动态口令进行验证, 在验证第一动态口令正确后, 认证服务 器生成第二-险证动态口令并发送给向用户端发送待核实信息, 所述待 核实信息包括认证 艮务器生成的第二动态口令;
103、 用户端在收到第二验证动态口令待核实信息后可以进行验 证, 在验证所述第二验证动态口令待核实信息正确后, 用户端利用动 态令牌生成的第三动态口令对交易信息进行加密得到密文信息, 并发 送给认证服务器;
104、 认证服务器利用 自身生成的第三验证动态口令解密所述密 文信息得到明文信息;
105、 在所述明文信息和交易信息一致时, 执行所述交易信息对 应的操作。 相应的, 对来自用户端的第一动态口令进行验证之前, 可以根据 交易信息中的用户账号信息来查找该用户端生成第一动态口令所使 用的动态口令令牌编号, 并根据该编号查找到对应的种子和动态因 子, 以便根据该种子和动态因子生成相应的验证动态口令对第一动态 Π令进行验证。 相应的, 在将上述第二 -险证动态口令发送给上述用户端之后, 用 户对接收到的上述第二验证动态口令进行验证。 在用户验证第二验证 动态口令正确后, 上述用户端发送利用该第三动态口令加密交易信息 生成的密文信息给生成第二-险证动态口令的实体,例如,认证 艮务器。 相应的, 上述生成第二-险证动态口令包括: 更新动态因子; 使 用更新后的动态因子生成上述第二 -险证动态口令。 上述生成第二验证动态口令可以包括: 使用基于时间或事件的方 式生成第二-险证动态口令。 当使用基于事件的方式生成第二 -险证动态口令时, 上述更新动态 因子包括: 将上述动态因子设置为上述动态令牌生成上述第一动态口 令时所使用的第一动态因子, 其中, 上述第一动态因子是上述动态令 牌生成上述第一动态口令时的计数值; 将上述动态因子增加一个预定 的步长, 以作为上述更新后的动态因子。 当使用基于时间的方式生成第二-险证动态口令时, 上述更新动态 因子包括: 将上述动态因子设置为上述动态令牌生成上述第一动态口 令时所使用的第一动态因子, 其中, 上述第一动态因子是上述动态令 牌生成第一动态口令时的计时时间与预设的上述动态令牌的初始时 间之间的差值; 才艮据上述动态因子更新计时偏移, 其中, 上述计时偏 移是生成第二 -险证动态口令的实体的当前计时时间与上述动态令牌 的当前计时时间之间的差值; 居上述计时偏移、 实体的生成第二-险 证动态口令的计时时间和预设的上述实体的初始时间来生成上述更 新后的动态因子。 优选的, 更新后的动态因子=上述实体的生成第二-险证动态口令 的计时时间-上述实体的初始时间 -上述计时偏移。 上述当使用基于时间的方式生成第二-险证动态口令时, 上述生成 第二险证动态口令并将上述第二-险证动态口令发送给上述用户端包 括: 每隔固定的时间生成一个动态口令, 并将生成的上述动态口令作 为上述第二-险证动态口令发送给上述用户端, 以使用户对当前发送的 第二险证动态口令进行 -险证。 上述对上述第一动态口令进行验证可以包括: 生成第一验证动态 口令; 判断上述第一动态口令是否与上述第一-险证动态口令相同, 若 相同, 则上述第一动态口令正确; 或者, 对上述第一动态口令进行-险证可以包括: 生成第一组 -险证 动态口令; 判断上述第一组验证动态口令中是否存在一个验证动态口 令与上述第一动态口令相同, 若存在, 则上述第一动态口令正确。 上述生成上述第一-险证动态口令的算法与生成上述第一动态口 令的算法相同, 生成上述第一组 -险证动态口令中任一个-险证动态口令 的算法与生成第一动态口令的算法相同。 上述对上述第三动态口令进行-险证可以包括: 生成第三-险证动态 口令; 判断上述第三-险证动态口令是否与上述第三-险证动态口令相 同, 若相同, 则上述第三动态口令正确; 或者, 对上述第三动态口令进行 -险证也可以包括: 生成第三组-险 证动态口令; 判断上述第三组验证动态口令中是否存在一个验证动态 口令与上述第三动态口令相同, 若存在, 则上述第三动态口令正确。 上述生成上述第三-险证动态口令的算法与生成上述第三动态口 令的算法相同, 生成上述第三组 -险证动态口令中任一个-险证动态口令 的算法与生成上述第三动态口令的算法相同。 当使用基于时间的方式生成第二-险证动态口令时, 上述第二 -险证 动态口令与第一-险证动态口令不相同。 这里可以通过如下方式来实 现: 将所述更新后的动态因子增加预设的步长; 根据增加后的动态因 子生成所述第二-险证动态口令。 同样, 当使用基于时间的方式生成第二 -险证动态口令时, 上述第 三臉证动态口令与第二-险证动态口令不相同。 这里可以通过如下方式 来实现: 在生成第三 -险证动态口令时, 首先更新动态因子, 方法可以 釆用上述在生成第一-险证动态口令之后更新动态因子所釆用的方法; 然后, 将更新后的动态因子增加预设的步长; 然后, 使用增加后的动 态因子生成第三验证动态口令。 本发明实施例还提供一种认证月艮务器, 所述认证月艮务器和动态令 牌中设有相同的动态口令生成算法和种子, 在本实施例中认证月艮务器 和动态令牌可以釆用基于时间或事件的方式生成动态口令。 如图 2所 示, 所述认证月艮务器包括: 接收单元 21、 一险证单元 22、 生成单元 23、 发送单元 24、 解密单元 25、 执行单元 26。 其中, 接收单元 21 用于接收用户端发送的交易信息和第一动态 口令, 所述第一动态口令由动态令牌生成; -险证单元 22 用于对所述 第一动态口令进行-险证; 生成单元 23 用于在-险证第一动态口令通过 后, 生成第二-险证动态口令; 发送单元 24 用于将第二-险证动态口令 发送给所述用户端; 所述接收单元 21 还用于接收用户端在-险证所述 第二险证动态口令正确后, 利用动态令牌生成的第三动态口令对交易 信息进行加密得到密文信息; 解密单元 25 用于利用 自身生成的第三 -险证动态口令解密所述密文信息得到明文信息; 执行单元 26 用于在 所述交易信息和明文信息一致时, 执行所述交易信息对应的操作。 具体而言, 如图 2中的虚线所示, 本发明实施例中所述生成单元 生成模块 23的实现方式包括: 更新模块更新单元 23 1、生成模块 232。 其中, 更新模块更新单元 23 1用于更新动态因子; 生成模块 232用于 使用更新后的动态因子生成所述第二-险证动态口令。 当使用基于事件的方式生成第二验证动态口令时, 所述更新模块 23 1可以釆用但不限于如下实现方式: 更新模块 23 1 包括: 第一设置子模块 23 11 和第一处理子模块 23 12 , 其中, 第一设置子模块 23 11 用于将动态因子设置为所述用户 端生成所述第一动态口令时所使用的第一动态因子, 所述第一动态因 子是所述用户端生成所述第一动态口令时的计数值; 第一处理子模块 23 12用于将所述动态因子增加一个预定的步长,以作为所述更新后的 动态因子。 当使用基于时间的方式生成第二 -险证动态口令时, 所述更新模块 23 1可以釆用但不限于如下实现方式: 更新模块 23 1 包括: 第二设置子模块 23 13、 更新子模块 23 14、 第二处理子模块 23 15 ; 其中, 第二设置子模块 23 13用于将动态因子 设置为所述用户端生成所述第一动态口令时所使用的第一动态因子, 所述第一动态因子是所述用户端生成所述第一动态口令时的计时时 间与预设的所述用户端的初始时间之间的差值; 更新子模块 23 14 用 于才艮据所述动态因子更新计时偏移, 所述计时偏移是所述认证 艮务器 的当前计时时间与所述用户端的当前计时时间之间的差值; 第二处理 子模块 23 15 用于 居所述计时偏移、 所述认证 艮务器生成所述第二 验证动态口令时的计时时间和预设的所述认证服务器的初始时间来 生成所述更新后的动态因子。 当基于时间的方式生成第二验证动态口令时, 为了保证不会因为 时间上不同步而造成 -险证失败, 本发明实施例生成单元 23 和发送单 元 24的 己合可以釆用但不 P艮于 口下两种方式: 第一、 所述生成单元 23 每隔固定的时间生成一个动态口令, 所 述发送单元 24 并将生成的所述动态口令作为所述第二-险证动态口令 发送给所述用户端, 以使对当前发送的第二验证动态口令进行验证; 第二、 所述生成单元 23 生成一组动态口令作为第二 -险证动态口 令, 所述发送单元 24 将生成的一组动态口令发送给所述用户端, 以 使对当前发送的第二马 证动态口令进行 -险证。 本实施例在对第一动态口令进行验证时, 可以釆用但不限于如下 两种方案: 第一、 所述生成单元 23 用于生成第一-险证动态口令; 所述 -险证 单元 22 用于判断所述第一动态口令是否与所述第一-险证动态口令相 同, 若相同, 则所述第一动态口令正确; 第二、 所述生成单元 23 用于生成第一组-险证动态口令; 所述-险 证单元 22 用于判断所述第一组 -险证动态口令中是否存在一个-险证动 态口令与所述第一动态口令相同,若存在, 则所述第一动态口令正确。 本发明实施例提供一种交易签名系统, 该系统包括认证服务器 3 1、 用户端 32、 动态令牌 33 ; 认证月艮务器和用户端之间进行通信连 接; 动态令牌不与用户端通信, 也不和认证月艮务器通信; 但是, 在认 证服务器和动态令牌中设有相同的动态口令生成算法和种子, 并且所 述认证月艮务器和动态令牌可以釆用基于时间或事件的方式生成动态 α令。 用户需要进行交易的时候先通过动态令牌 33 生成一个第一动态 口令, 并通过用户端 32 将交易信息和所述第一动态口令发送给认证 服务器 3 1 ; 所述认证服务器 3 1用于接收用户端发送的交易信息和第 一动态口令; 在验证所述第一动态口令正确后, 向用户端 32 发送认 证月艮务器 3 1生成的第二-险证动态口令; 所述用户端 32 用于在 -险证所述第二-险证动态口令正确后, 利用 动态令牌 33生成的第三动态口令对交易信息进行加密得到密文信息 , 并发送给认证服务器 3 1 ; 具体在验证第二验证动态口令时, 用户需要 通过动态令牌生成第二动态口令, 用户端将接收到的第二-险证动态口 令和动态令牌生成第二动态口令进行对比, 两者相同表示 -险证正确, 两者不同表示 -险证不正确。 所述认证服务器 3 1 还用于利用 自身生成的第三验证动态口令解 密所述密文信息得到明文信息; 在所述明文信息和交易信息一致时, 执行所述交易信, 对应的操作。 为了使得用户能够对已经输入的交易信息进行核实, 本实施例中 所述认证月艮务器发送给用户端的待核实信息还包括所述交易信息。 本发明实施例交易签名系统中认证月艮务器所釆用的第一动态口 令认证方式可以釆用上述图 2中介绍的两种方法。 本发明实施例提供的动态口令的交易签名方法、 认证月艮务器及系 统, 在交易的时候需要交易信息和第一动态口令, 第一动态口令供认 证服务器进行验证; 并且验证服务器需要发送第二验证动态口令以供 用户端进行验证, 如此一来, 验证服务器和用户端都能够相互确认对 方的合法身份。 在双方相互确认合法身份后用户端通过加密的方式 交易信息再次发送给验证服务器, 在两次发送的交易信息相同是执行 相应的交易。 所以, 本发明实施例提供的交易签名方法、 认证月艮务器及系统能 够确认交易双方的合法身份, 提高用户进行交易的安全性, 可以使得 用户避免由于登录钓鱼网站而遭受损失。 实施例 2 图 4是本发明实施例 2 中的交易签名方法的流程图。 本实施例以 用户通过动态口令的认证方式进行交易签名为例进行说明, 本实施例 的方法具体包括如下步骤:
401、 用户需要进行交易的时候先通过动态令牌生成一个第一动 态口令, 并通过用户端将交易信息和所述第一动态口令发送给认证月艮 务器; 具体而言, 所述交易信息包括: 用户账号、 用户密码、 交易金 额、 交易时间、 货币类型等; 其中, 所述动态令牌才艮据内置的动态口令算法生成动态口令; 在 生成动态口令时对动态因子的选择可以釆用基于时间或事件的方式, 在本实施例中, 优选地, 以釆用基于时间的方式(如釆用计时的方式) 生成动态口令进行说明, 相应地, 在本实施例中还可以釆用基于事件 的方式 (如釆用计次的方式) 来生成动态口令。 动态令牌生成动态口 令的触发方式包括但不限于如下两种: 第一、 动态令牌上设有一个按键, 用户第一次按下按键生成的动 态口令为第一动态口令, 第二次按下按键可以生成第二动态口令, 第 三次按下按键可以生成第三动态口令; 第二、 动态令牌上设有三个动态口令生成按键, 当按下第一个按 键, 生成的动态口令为第一动态口令; 按下第二个按键可以生成第二 动态口令; 按下第三个按键可以生成第三动态口令;
402、 认证服务器接收用户端发送的交易信息及第一动态口令, 后认证 艮务器生成第一-险证动态口令, 并判断认证 艮务器生成的第一 验证动态口令与接收到的第一动态口令是否相同, 如果两者相同, 表 示接收到的第一动态口令正确, 执行 403 ; 如果两者不同, 表示接收 到的第一动态口令不正确, 执行 409; 本发明实施例中, 认证服务器内预先注册有用户所持动态令牌的 信息, 并与该动态令牌釆用相同的算法生成动态口令, 该动态令牌的 信息包括但不限于: 动态令牌的序列号和与该序列号对应的密钥种 子, 该序列号和密钥种子是认证服务器给动态令牌分配的, 均是唯一 的, 且该动态令牌内部也存储有该序列号和密钥种子; 其中, 上述认证服务器生成第一验证动态口令与动态令牌生成第 一动态口令算法相同, 并均釆用计时的方式 (或计次的方式) 生成动 态口令, 其中, 上述算法可以包括: HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256等。 认证服务器可以釆用以下方法来验证接收到的第一动态口令是 否正确: 第一、 认证服务器生成单个第一验证动态口令时, 并将生成的第 一验证动态口令与接收到的第一动态口令直接进行比对, 如果相同, 则认为接收到的第一动态口令正确; 如果不相同, 则认为接收到的第 一动态口令不正确; 第二、 当使用的动态因子 (即计时时间 ) 包括时间窗时 (后面将 描述具体实现办法), 认证 艮务器生成一组动态口令作为第一-险证动 态口令, 认证月艮务器将时间窗内的所有动态口令逐一与接收到的第一 动态口令进行比对, 当时间窗内有一个动态口令与接收到的第一动态 口令比对相同时, 则认为接收到的第一动态口令正确; 如果时间窗内 的任何一个动态口令都与接收到的第一动态口令不相同, 则认为接收 到的第一动态口令不正确; 优选的, 在认证服务器验证接收到第一动态口令是否正确前, 认 证服务器还可以判断接收到的第一动态口令是否使用过, 如果没有使 用过, 则进行所述 -险证过程; 如果使用过, 则向用户端返回错误。 这 里, 判断第一动态口令是否使用过可以起到以下作用: 防止黑客在监 测到用户输入的动态口令之后, 立刻向认证服务器釆用相同的动态口 令登录并请求交易, 从而避免了给用户造成损失。 优选的, 可以设置 一定的时间段, 例如, 10分钟, 如果在之前的 10分钟之内没有使用 过接收到的第一动态口令, 则认证服务器对该接收到的第一动态口令 进行验证。 这里, 认证月艮务器可以才艮据动态因子来生成动态口令, 例如, 第 一验证动态口令、 第二验证动态口令或随后描述的第三验证动态口 令。 下面举例进行说明, 以本实施例釆用计时的方式生成动态口令为 例进行说明: 使用计时的方法生成动态口令, 即在生成动态口令时将设备 (动 态令牌或认证服务器)生成动态口令的时间与预设的初始时间的差值 作为动态因子, 本实施例中以一分钟为计时单位为例进行说明, 一般 情况下, 动态令牌在初始化时设定一个初始时间, 例如为 2000 年 1 月 1 日 00时 00分, 当在 2000年 1 月 1 日 01 时 00分生成动态口令 时, 动态令牌或认证月艮务器使用 2000年 1 月 1 日 01 时 00分与初始 时间 2000年 1 月 1 日 00时 00分 4目减得到 60分, 使用 60作为动态 因子生成动态口令, 但是由于动态令牌和认证月艮务器单独计时, 计时 经常会发生计时不同步的情况, 因此需要对时间因子进行爹正, 上述 4爹正方法可以如下所述: 假设动态令牌与认证服务器设定的初始时间为 2000年 1 月 1 日 00时 00分,在动态令牌计时时间为 2000年 1 月 1 日 01 时 00分生成 动态口令, 此时动态令牌使用的动态因子为 60 , 而认证 艮务器生成第 一 -险证动态口令时, 由于计时和数据传输的误差, 此时认证 艮务器基 准时间为 2000年 1 月 1 日 01 时 02分, 即动态因子应为 62。 在认证 月艮务器生成动态口令时, 对动态因子设定一个时间的浮动范围, 例如 ±2分, 这个浮动范围在本实施例中可以被称为时间窗, 也就是, 动态 因子的取值范围可以设为 [59,65]。 然后, 使用 62±3 生成一组最多 7 个第一-险证动态口令, 即认证 艮务器生成第一-险证动态口令使用的动 态因子分另1 J为 59、 60、 61、 62、 63、 64、 65 , 并与接 4欠 i l ό 第一动态 口令进行比对, 例如, 当才艮据第一个动态因子 59 生成的第一动态口 令, 且服务器生成第一验证动态口令与接收到的第一动态口令不同 时, 则使用下一个动态因子 60 继续生成第一-险证动态口令, 并与接 收到的第一动态口令进行比对, 依此类推。 显然, 当动态因子为 60 时, 第一动态口令 -险证正确, 这时得到 正确的动态因子, 将动态因子更新为 60 , 并可以计算出认证服务器与 动态口令令牌之间的计时偏移为 2分钟, 在下次对动态口令计算时, 可以通过如下方法对认证月艮务器存储的动态因子进行 4爹正: 更新后的 动态因子 =上述认证月艮务器生成第二 -险证动态口令时的当前计时时间 -上述实体的初始时间 -上述计时偏移。 例如, 认证月艮务器在 2000年 1 月 1 日 01 时 03分生成第二一险证 动态口令。 则更新后的动态因子= ( 2000年 1 月 1 日 01 时 03分) - ( 2000年 1 月 1 日 00时 00分) -2=61。 需要说明的是, 本发明实施例可以根据实际情况来设置上 m ^ 计算动态因子的计时单位, 例如根据安全性及计算精度进行确定。 例 如, 在利用计时的方式生成动态口令时, 可以以每一分钟、 或 30 秒 或 1秒为计时单位, 来计算动态因子, 并根据该动态因子生成动态口 令。 上述对认证月艮务器存储的动态因子进行爹正的操作可以在本步 骤中执行或者随后的步骤 403 中执行。
403、 认证 艮务器生成第二-险证动态口令, 并将第二动态口令及 交易信息返回给用户端; 这里, 认证服务器可以首先计算生成第二验证动态口令的计时时 间 (例如 , 2000年 1 月 1 日 01 时 03分) 与初始时间 ( 2000年 1月 1 日 00时 00分) 之间的差值 (等于 63 ) , 然后将该差值减去上述计时 偏移 (等于 2 ) 得到更新后的动态因子 (等于 61 ) , 并根据更新后的 动态因子生成第二验证动态口令。 在本实施例中, 由于认证月艮务器可以对动态因子进行了 4爹正, 从 而认证月艮务器可以 居爹正后的动态因子生成第二-险证动态口令, 优 选的, 此处的第二-险证动态口令为一个单独的动态口令。 另夕卜, 本步 4聚还可以釆取如下的方式: 认证月艮务器每隔固定的时 间生成一个第二-险证动态口令返回给用户端, 优选地, 上述固定的时 间可以为大于 0的时间, 并应该在安全范围内。 下面介绍一个固定时 间为一分钟的实现方式: 在认证服务器接收到第一动态口令并认证为正确时开始计时, 在 计时的第 1分钟内, 按上述方法才艮据当前的计时时间、 预设的初始时 间以及计时偏移生成第一个第二-险证动态口令, 并发送给用户端; 然 后, 在第 2分钟, 生成第二个第二验证动态口令, 并发送给用户端; 在第 3分钟, 生成第三个第二-险证动态口令, 并发送给用户端, 依此 类推, 以便避免在用户接收或用户验证第二验证动态口令时由于延迟 所带来的问题。 优选的, 在向用户端发送第二验证动态口令时, 需要 对认证服务器向用户端返回第二验证动态口令的次数进行限制一个 最大次数, 例如当返回 10 次, 用户端未进行操作时, 通知用户端超 时未响应, -险证失败。 优选地, 为了避免认证 艮务器生成的第一个第二-险证动态口令由 于与用户使用动态令牌生成第一动态口令 (正确的第一动态口令) 时 间过于接近而相同, 认证月艮务器在生成第一个第二 -险证动态口令时, 可以才艮据当前计时时间的下一分钟来生成动态因子, 并才艮据该动态因 子生成第一次第二-险证动态口令。 J¾外, 还可以通过其他方式来防止 生成第二险证动态口令的时间与生成第一动态口令的时间相同, 例 如, 可以在-险证第一动态口令正确之后, 等待 2个计时单位, 然后, 在第 3个计时单位上生成第二-险证动态口令, 这样, 即可以使得生成 第二险证动态口令的时间与生成第一动态口令的时间不同。 在认证 艮务器生成第二 -险证动态口令时, 如果与生成第一动态口 令的时间间隔过短, 第一动态口令可能会与第二-险证动态口令相同。 为了使第二验证动态口令与第一动态口令不相同, 则在生成第二验证 动态口令时, 可以将更新后的动态因子增加一个预设的步长, 然后, 才艮据增加后的动态因子生成第二-险证动态口令, 从而避免由第二 -险证 动态口令与第一动态口令相同而造成的安全漏洞。 为了防止下一步认证月艮务器返回第二-险证动态口令给用户端时 因网络延迟造成认证失败, 服务端生成第二验证动态口令时还包括一 种实现方法: 认证 艮务器生成一组动态口令作为第二-险证动态口令返 回给用户端例如, 在步 4聚 402 中, 校正动态因子后, 确定时间偏移为 -2分, 则确定生成第二 -险证动态口令的时间为同步后的认证月艮务器时 间再力口上一个步长, 即为 2000年 1 月 1 日 01 时 00力口上 1分钟, 计 算动态因子应为 6 1 , 为了能够生成一组动态口令, 增加一个向后偏移 ό 日寸间窗为 +5 , 贝' J矛】用 61、 62、 63、 64、 65、 66 , 生成一组共 6 个 动态口令作为第二 -险证动态口令;
404、 用户对接收到的交易信息及第二-险证动态口令核实, 如果 核实正确, 贝' J执行 405 ; ^口果核实不正确, 贝' J执行 409; 具体核实过程包括如下步骤: 用户端接收到认证服务器返回的交 易信息及第二-险证动态口令后, 用户核对用户端显示的交易信息是否 正确, 如果交易信息不正确, 用户可以直接取消交易; 如果交易信息 正确, 则需要核对接收到的第二验证动态口令是否正确。 具体核对方 式为: 用户利用动态令牌生成第二动态口令, 并将动态令牌生成的第 二动态口令与接收到第二验证动态口令进行比对, 如果相同, m'' 比对成功; 如果不相同, 则认为比对失败, 用户可以直接取消交易; 需要说明的是, 当使用计时的方法生成动态口令时 (使用时间因 子作为动态因子), 用户端接收到认证服务器发送的第二验证动态口 令时, 用户需在规定的时间内利用动态令牌生成第二动态口令, 原因 如下: 动态令牌和认证 艮务器都是釆用单独计时的方式, 在认证的过程 中, 认证服务器生成第二验证动态口令先于动态令牌生成第二动态口 令, 因此认证 艮务器生成第二 -险证动态口令和动态令牌生成第二动态 口令的时间因子不一样, 致使动态口令不一样, 因此可以使用改进办 法: 在第一动态口令比对成功后, 对时间进行爹正以达到动态令牌和 认证服务器时间同步, 将此时间作为基准时间, 并设定一个时间段, 例如一分钟, 将基准时间延长一分钟的时间作为时间因子生成第二-险 证动态口令 (第二-险证动态口令为一个动态口令), 即在这一分钟内 生成的动态口令是相同的。 认证服务器生成第二验证动态口令后即返 回给用户端, 用户此时应该在规定的时间内利用动态令牌生成第二动 态口令, 上述规定的时间小于一分钟, 则动态令牌生成的第二动态口 令与认证月艮务器生成第二-险证动态口令应相同; 如果步骤 404中, 认证 艮务器将一次生成的一组第二 -险证动态口 令 (例如 6个第二验证动态口令) 返回给用户端, 用户端在利用动态 令牌生成第二动态口令后, 用第二动态口令依次与该组第二验证动态 口令进行对比, 如果第二动态口令与该组第二-险证动态口令中有一个 是相同的, 则认为核对第二 -险证动态口令是正确的, 否则, 认为认证 服务器是不合法的, 应取消交易。
405、 用户确认交易信息和第二-险证动态口令正确后, 利用动态 令牌生成一个第三动态口令, 用户端在接收到用户的确认信息后, 利 用第三动态口令对交易信息进行加密, 并将加密得到的密文信息发送 给认证服务器; 本实施例中的交易信息和用户端第一次发给认证服务 器的交易信息应该完全相同;
406、 认证 艮务器生成第三-险证动态口令, 具体实现时, 可以釆 用 403过程中描述的方法, 包括 -险证第三动态口令是否使用过、 以及 防止生成动态口令的因子重复的方法, 详细描述见 403的具体过程。 407、 认证 艮务器利用生成的第三-险证动态口令对接收到的密文 信息进行解密得到明文信息, 并判断明文信息与交易信息是否一致, 如果一致, 则执行 408 ; 如果不一致, 执行 409; 需要说明的是, 所述认证服务器与所述客户端釆用相同的算法对 交易信息进行加解密操作, 例如 AES、 3DES、 RSA等加解密算法; 优选地, 认证服务器判断解密得到的信息是否是与交易信息一致 具体为: 所述认证月艮务器分别利用在时间窗口内生成的第三-险证动态 口令去对交易信息进行解密操作, 解密后得到一组明文信息, 所述认 证服务器将交易信息与该组明文信息逐一进行比对, 当该组明文信息 中有一个明文信息与交易信息比对相同时, 则认为比对成功, 如果该 组明文信息中没有一个明文信息是与交易信息是相同的, 则认为比对 失败;
408、 执行交易;
409、 巨 色 易。 本实施例中, 上述拒绝执行交易包括如下情况: 在 402过程中, 认证 艮务器判断第一动态口令不正确时向用户端返回认证失败的信 息, 并拒绝执行交易; 在 407过程中, 认证服务器验证解密得到的信 息与交易信息不一致时, 提示签名失败, 拒绝执行交易。 本发明实施例提供的动态口令的交易签名方法、 认证月艮务器及系 统, 在交易的时候需要交易信息和第一动态口令, 第一动态口令供认 证服务器进行验证; 并且验证服务器需要发送第二验证动态口令以供 用户端进行验证, 如此一来, 验证服务器和用户端都能够相互确认对 方的合法身份。 在双方相互确认合法身份后用户端通过加密的方式 交易信息再次发送给验证服务器, 在两次发送的交易信息相同是执行 相应的交易。 所以, 本发明实施例提供的交易签名方法、 认证月艮务器及系统能 够确认交易双方的合法身份, 提高用户进行交易的安全性, 可以使得 用户避免由于登录钓鱼网站而遭受损失。 实施例 3 图 5是本发明实施例 3 中的交易签名方法的流程图。 本实施例以 用户通过动态口令的认证方式进行交易签名为例进行说明, 本实施例 的方法具体包括如下步骤:
501、 用户需要进行交易的时候先通过动态令牌生成一个第一动 态口令, 并通过用户端将交易信息和所述第一动态口令发送给认证月艮 务器; 具体而言, 所述交易信息包括: 用户账号、 用户密码、 交易金 额、 交易时间、 货币类型等; 其中, 所述动态令牌才艮据内置的动态口令算法生成动态口令; 在 生成动态口令时对动态因子的选择可以釆用基于时间或事件的方式, 在本实施例中, 优选地, 以釆用基于事件的方式(如釆用计次的方式) 生成动态口令进行说明, 相应地, 在本实施例中还可以釆用基于时间 的方式 (如釆用计时的方式) 来生成动态口令。 动态令牌生成动态口 令的触发方式包括但不限于如下两种: 第一、 动态令牌上设有一个按键, 用户第一次按下按键生成的动 态口令为第一动态口令, 第二次按下按键可以生成第二动态口令, 第 三次按下按键可以生成第三动态口令; 第二、 动态令牌上设有三个动态口令生成按键, 当按下第一个按 键, 生成的动态口令为第一动态口令; 按下第二个按键可以生成第二 动态口令; 按下第三个按键可以生成第三动态口令;
502、 认证服务器接收用户端发送的交易信息及第一动态口令, 后认证 艮务器生成第一-险证动态口令, 并判断认证 艮务器生成的第一 验证动态口令接收到的第一动态口令是否相同, 如果两者相同, 表示 接收到的第一动态口令正确, 执行 503 ; 如果两者不同, 表示接收到 的第一动态口令不正确, 执行 509; 本实施例中认证服务器可以釆用 402 中提供的两种方法来验证接收到的第一动态口令是否正确, 此处 不再赘述; 本发明实施例中, 认证服务器内预先注册有用户所持动态令牌的 信息, 并与该动态令牌釆用相同的算法生成动态口令, 该动态令牌的 信息包括但不限于: 动态令牌的序列号和与该序列号对应的密钥种 子, 该序列号和密钥种子是认证服务器给动态令牌分配的, 均是唯一 的, 且该动态令牌内部也存储有该序列号和密钥种子; 其中, 上述认证服务器生成第一验证动态口令与动态令牌生成第 一动态口令算法相同, 并均釆用计时的方式 (或计次的方式) 生成动 态口令, 其中, 上述算法可以包括: HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256等。 本实施例中, 认证月艮务器可以才艮据动态因子来生成动态口令, 下 面举例进行说明, 以本实施例釆用计次的方式生成动态口令为例进行 说明: 使用计次的方法生成动态口令, 即在生成动态口令时^ 1设备 (动 态令牌或认证 艮务器) 生成动态口令的次数作为动态因子, 第一次生 成动态口令时动态因子为计数值 1、 第二次生成动态口令时动态因子 为计数值 2 , 以此类推, 每生成一次动态口令计数值增加 1 , 或者增 加一个预设的步长。 由于动态口令令牌和认证服务器单独计次, 很容 易产生计次的不一致现象的发生, 因此需要对认证服务器所存储的计 次值进行爹正。 支设在动态令牌生成第一动态口令时使用的动态因子为计数值 100 , 而在认证月艮务器中保存的动态因子为计数值 95 , 此时在认证月艮 务器计算第一险证动态口令时设定计数值浮动范围为 95- 105 , 即, 动 态因子的取值范围可以设为 [95, 105]。 可以从动态因子 ( 即计数值 ) 为 95开始, 才艮据每个动态因子计算出一个第一-险证动态口令, 然后, 将计算出的第一验证动态口令与接收到的第一动态口令进行比对, 如 两者不相同, 则增加计数值继续进行第一-险证动态口令的计算。 由上可知, 认证服务器生成第一验证动态口令时可以分别以计数 值 95、 96 104、 105作为动态因子生成一组最多 11个 -险证动态口 令, 认证服务器将接收到的第一动态口令与上述认证服务器生成的第 一验证动态口令进行比较。 例如, 当认证服务器根据计数值 100作为 动态因子生成动态口令时, 该生成的动态口令与接收到的第一动态口 令相同, 则 -险证第一动态口令正确, 并停止第一动态口令的计算。 这时,还可以对认证服务器存储的动态因子进行修正, 即,将 100 作为正确的计数值, 使得动态口令令牌与认证服务器的计数值保持同 步。 然后, 认证服务器将计数值 100增加 1 (或预定的步长) 并保存, 作为下次计算动态口令的动态因子。 如果上述一组共 1 1 个动态口令 中没有一个动态口令与接收第一动态口令相同, 则表示接收到的第一 动态口令不正确。 上述对认证月艮务器存储的动态因子进行爹正的操作可以在本步 骤中执行或者随后的步骤中执行。
503、 认证月艮务器生成第二-险证动态口令, 并将第二 -险证动态口 令及交易信息返回给用户端; 在本实施例中, 由于步骤 502 中对动态因子进行了修正, 从而认 证月艮务器可以才艮据 爹正后的动态因子生成第二-险证动态口令, 优选 的, jtb处的第二-险证动态口令为单独的动态口令;
504、 用户对接收到的交易信息及第二-险证动态口令核实, 如果 核实正确, 贝' J执行 505 ; ^口果核实不正确, 贝' J执行 509; 具体核实过程包括如下步骤: 用户端接收到认证服务器返回的交 易信息及第二-险证动态口令后, 用户核对用户端显示的交易信息是否 正确, 如果交易信息不正确, 用户可以直接取消交易; 如果交易信息 正确, 则需要核对接收到的第二验证动态口令是否正确。 具体核对方 式为: 用户利用动态令牌生成第二动态口令, 并将动态令牌生成的第 二动态口令与接收到第二验证动态口令进行比对, 如果相同, 则认为 比对成功; 如果不相同, 则认为比对失败, 用户可以直接取消交易;
505、 用户确认交易信息和第二-险证动态口令正确后, 利用动态 令牌生成一个第三动态口令, 用户端在接收到用户的确认信息后, 利 用第三动态口令对交易信息进行加密, 并将加密得到的密文信息发送 给认证服务器; 本实施例中的交易信息和用户端第一次发给认证服务 器的交易信息应该完全相同;
506、 认证 艮务器生成第三-险证动态口令, 具体实现时, 可以釆 用 403过程中描述的方法, 包括 -险证第三动态口令是否使用过、 以及 防止生成动态口令的因子重复的方法, 详细描述见 403的具体过程。 507、 认证 艮务器利用生成的第三-险证动态口令对接收到的密文 信息进行解密得到明文信息, 并判断明文信息与交易信息是否一致, 如果一致, 则执行 508 ; 如果不一致, 执行 509; 需要说明的是, 所述认证服务器与所述客户端釆用相同的算法对 交易信息进行加解密操作, 例如 AES、 3DES、 RSA等加解密算法; 其中, 如果步骤 506 中认证服务器生成第三验证动态口令时, 生 成的是一组验证动态口令, 则按如下方式来判断解密得到的明文信息 是否与交易信息一致: 所述认证月艮务器分别利用在时间窗口内生成的 第三验证动态口令去对交易信息进行解密操作, 解密后得到一组明文 信息, 所述认证服务器将交易信息与该组明文信息逐一进行比对, 当 该组明文信息中有一个明文信息与交易信息比对相同时, 则认为比对 成功, 如果该组明文信息中没有一个明文信息是与交易信息是相同 的, 则认为比对失败;
508、 执行交易操作;
509、 巨 色 易。 才艮据本发明, 通过三次动态口令的-险证, 使得普通的动态令牌可 以对月艮务器的合法性进行-险证, 及在客户端的配合下, 普通动态令牌 实现了交易签名的功能, 从而增加了动态口令认证的安全性, 使得用 户可以避免如由于误登录钓鱼网站而遭受损失, 及提高了交易的安全 性, 防止中间人的攻击。 本发明实施例主要用于各种交易签名中, 例如网上银行的交易签 名等等。 实施例 4 根据本发明的实施例, 提供了一种动态口令的认证方法。 如图 6所示, 该方法包括如下的步 4聚 S602至步 4聚 S608 :
S602 , 对来自用户端的第一动态口令进行验证;
S604 , 若 -险证第一动态口令正确, 则生成第二-险证动态口令, 并 将该第二验证动态口令发送给用户端;
S606 , 若在预定的时间段内接收到来自用户端的第三动态口令, 则对第三动态口令进行 -险证。
S608 , 若-险证上述第三动态口令正确, 则该用户登录成功。 否则, 判断出该用户登录失败。 相应的, 对来自用户端的第一动态口令进行验证之前, 可以接收 用户名信息。 这里, 可以 居用户名信息来查找该用户端生成第一动 态口令所使用的动态口令令牌编号, 并根据该编号查找到对应的种子 和动态因子, 以便根据该种子和动态因子生成相应的验证动态口令对 第一动态口令进行 -险证。 相应的, 在将上述第二 -险证动态口令发送给上述用户端之后, 用 户对接收到的上述第二验证动态口令进行验证。 在用户验证第二验证 动态口令正确后, 上述用户端发送该第三动态口令给生成第二-险证动 态口令的实体, 例如, 认证 艮务器。 相应的, 上述生成第二-险证动态口令包括: 更新动态因子; 使用 更新后的动态因子生成上述第二-险证动态口令。 上述生成第二验证动态口令可以包括: 使用基于时间或事件的方 式生成第二-险证动态口令。 当使用基于事件的方式生成第二 -险证动态口令时, 上述更新动态 因子包括: 将上述动态因子设置为上述用户端生成上述第一动态口令 时所使用的第一动态因子, 其中, 上述第一动态因子是上述用户端生 成上述第一动态口令时的计数值; 将上述动态因子增加一个预定的步 长, 以作为上述更新后的动态因子。 当使用基于时间的方式生成第二-险证动态口令时, 上述更新动态 因子包括: 将上述动态因子设置为上述用户端生成上述第一动态口令 时所使用的第一动态因子, 其中, 上述第一动态因子是上述用户端生 成第一动态口令时的计时时间与预设的上述用户端的初始时间之间 的差值; 根据上述动态因子更新计时偏移, 其中, 上述计时偏移是生 成第二险证动态口令的实体的当前计时时间与上述用户端的当前计 时时间之间的差值; 居上述计时偏移、 实体的生成第二 -险证动态口 令的计时时间和预设的上述实体的初始时间来生成上述更新后的动 态因子。 优选的, 更新后的动态因子=上述实体的生成第二-险证动态口令 的计时时间-上述实体的初始时间 -上述计时偏移。 上述当使用基于时间的方式生成第二-险证动态口令时, 上述生成 第二险证动态口令并将上述第二-险证动态口令发送给上述用户端包 括: 每隔固定的时间生成一个动态口令, 并将生成的上述动态口令作 为上述第二-险证动态口令发送给上述用户端, 以使用户对当前发送的 第二险证动态口令进行 -险证。 上述对上述第一动态口令进行-险证可以包括: 生成第一-险证动态 口令; 判断上述第一动态口令是否与上述第一-险证动态口令相同, 若 相同, 则上述第一动态口令正确; 或者, 对上述第一动态口令进行-险证可以包括: 生成第一组 -险证 动态口令; 判断上述第一组验证动态口令中是否存在一个验证动态口 令与上述第一动态口令相同, 若存在, 则上述第一动态口令正确。 上述生成上述第一-险证动态口令的算法与生成上述第一动态口 令的算法相同, 生成上述第一组 -险证动态口令中任一个-险证动态口令 的算法与生成第一动态口令的算法相同。 上述在预定的时间段内接收来自上述用户端的第三动态口令时, 上述方法还包括: 在上述时间段内还接收到来自上述用户端的静态密 码, 以便在-险证上述第三动态口令和上述静态密码正确的'清况下判断 上述用户登录成功。 上述对上述第三动态口令进行-险证可以包括: 生成第三-险证动态 口令; 判断上述第三-险证动态口令是否与上述第三-险证动态口令相 同, 若相同, 则上述第三动态口令正确; 或者, 对上述第三动态口令进行 -险证也可以包括: 生成第三组-险 证动态口令; 判断上述第三组验证动态口令中是否存在一个验证动态 口令与上述第三动态口令相同, 若存在, 则上述第三动态口令正确。 上述生成上述第三-险证动态口令的算法与生成上述第三动态口 令的算法相同, 生成上述第三组 -险证动态口令中任一个-险证动态口令 的算法与生成上述第三动态口令的算法相同。 当使用基于时间的方式生成第二-险证动态口令时, 上述第二 -险证 动态口令与第一-险证动态口令不相同。 这里可以通过如下方式来实 现: 将所述更新后的动态因子增加预设的步长; 根据增加后的动态因 子生成所述第二-险证动态口令。 同样, 当使用基于时间的方式生成第二 -险证动态口令时, 上述第 三臉证动态口令与第二-险证动态口令不相同。 这里可以通过如下方式 来实现: 在生成第三 -险证动态口令时, 首先更新动态因子, 方法可以 釆用上述在生成第一-险证动态口令之后更新动态因子所釆用的方法; 然后, 将更新后的动态因子增加预设的步长; 然后, 使用增加后的动 态因子生成第三验证动态口令。 实施例 5 图 7是本发明实施例 5 中的动态口令的认证方法的流程图。 如图 7所示, 提供了一种动态口令的认证方法, 本实施例以用户通过动态 口令的认证方式登录网上 4艮行为例进行说明, 具体描述在用户登录的 过程中动态口令认证月艮务器的认证流程, 其中, 在本实施例中, 釆用 计次的方法 (即, 基于事件的方法) 来生成动态口令, 根据本发明实 施例的动态口令的认证方法具体包括如下步 4聚: 步骤 S701 , 认证月艮务器接收用户端发送的用户名信息、 第一动态 α令。 在本实施例中, 在登录认证流程开始前, 用户所持动态口令令牌 已经与该用户的用户名信息进行了绑定, 上述动态口令令牌具有唯一 的编号, 并且在内部存储有唯一的与编号对应的种子, 可以根据内置 的动态口令算法生成动态口令, 上述动态口令算法与 艮务端生成动态 口令算法相同, 其中, 用户名信息可以包括以下至少之一: 用户姓名、 账号、 身份证号、 邮箱, 上述用户端可以包括以下至少之一: 用户端 主机和用户端动态口令令牌。 在本实施例中, 所使用的动态口令令牌可以带有按键, 用户第一 次按下按键生成的动态口令为第一动态口令, 第二次按下按键可以生 成第二动态口令, 第三次按下按键可以生成第三动态口令; 或者, 上述动态口令令牌也可以带有三个动态口令生成按键, 当 按下第一个按键, 生成的动态口令为第一动态口令, 按下第二个按键 可以生成第二动态口令, 按下第三个按键可以生成第三动态口令。 用户通过用户端主机输入用户名信息、 第一动态口令, 并由用户 端主机发送给认证 艮务器。 在生成动态口令时对动态因子的选择可以釆用基于时间或事件 的方式, 在本实施例中, 以釆用基于事件的方式 (即, 釆用计次的方 式) 生成动态口令进行说明, 优选地, 在本实施例中还可以釆用基于 时间的方式 (即, 釆用计时的方式) 来生成动态口令, 该方式将在随 后的实施例中进行描述。 步骤 S702 ,认证服务器根据接收的用户名信息查找对应的动态口 令令牌的编号和种子, 以及动态因子, 并生成第一-险证动态口令 ΟΤΡ 1。 其中, 上述认证 艮务器生成 OTP 1与动态口令令牌生成第一动态 口令算法相同, 并均釆用计次的方式生成动态口令, 其中, 上述算法 可以包括: HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256等。 步骤 S703 , 认证服务器验证第一动态口令是否正确, 如果正确, 执行步骤 S704 , 如果不正确, 执行步骤 S709。 其中, 在步骤 S702 中, 认证服务器生成 OTP 1 时, 可以生成一 个或一组动态口令作为 OTP 1 , 即 OTP 1也可以为一组动态口令。 认证月艮务器可以釆用以下方法来-险证第一动态口令是否正确:
1 ) 当 OTP 1 为一个动态口令时, 认证月艮务器将第一动态口令与 OTP 1进行比对, 如果相同, 则认为第一动态口令正确, 如果不相同, 则认为第一动态口令不正确;
2 ) 当认证服务器使用连续递增的动态因子计算第一验证动态口 令时, 第一验证动态口令 OTP 1为一组动态口令, 认证服务器将一组 动态口令 OTP 1分别与第一动态口令进行比对, 当 OTP 1 中有一个动 态口令与第一动态口令比对相同时, 则认为比对成功, 第一动态口令 正确, 如果 OTP 1 中任一个动态口令都与第一动态口令不相同, 则认 为 -险证失败, 第一动态口令不正确。 这里, 认证月艮务器可以才艮据动态因子来生成动态口令, 例如, 第 一验证动态口令、 第二验证动态口令或随后描述的第三验证动态口 令。 下面举例进行说明, 以本实施例釆用计次的方式生成动态口令为 例进行说明: 使用计次的方法生成动态口令, 即在生成动态口令时^ 1设备 (动 态口令令牌或认证 艮务器) 生成动态口令的次数作为动态因子, 第一 次生成动态口令时动态因子为计数值 1、 第二次生成动态口令时动态 因子为计数值 2 , 以此类推, 每生成一次动态口令计数值增加 1 , 或 者增加一个预设的步长。 由于动态口令令牌和认证 艮务器单独计次, 很容易产生计次的不一致现象的发生, 因此需要对认证服务器所存储 的计次值进行 4爹正。 支设在动态口令令牌生成第一动态口令时使用的动态因子为计 数值 100 , 而在认证服务器中保存的动态因子为计数值 95 , 此时在认 证月艮务器计算 OTP 1 时设定计数值浮动范围为 95- 105 , 即, 动态因子 的取值范围可以设为 [95, 105]。 可以从动态因子 (即计数值) 为 95开 始, 根据每个动态因子计算出一个第一验证动态口令, 然后, 将计算 出的第一验证动态口令与第一动态口令进行比对, 如两者不相同, 则 增加计数值继续进行第一险证动态口令的计算。 由上可知, 认证月艮务器生成 OTP 1 时可以分别以计数值 95、
96 104、 105作为动态因子生成一组最多 1 1 个-险证动态口令, 认 证服务器将接收到的第一动态口令与上述验证动态口令进行比较。 例 如,当认证服务器根据计数值 100作为动态因子生成验证动态口令时, 该生成的 -险证动态口令与第一动态口令相同, 则 -险证第一动态口令正 确, 并停止第一-险证动态口令的计算。 这时,还可以对认证服务器存储的动态因子进行修正, 即,将 100 作为正确的计数值, 使得动态口令令牌与认证 艮务器的计数值保持同 步。 然后, 认证服务器将计数值 100增加 1 (或预定的步长) 并保存, 作为下次计算动态口令的动态因子。 如果上述一组共 11 个-险证动态 口令中没有一个-险证动态口令与第一动态口令相同, 则 -险证第一动态 口令不正确。 需要说明的是, 上述对认证服务器存储的动态因子进行修正的操 作可以在步骤 S703或者随后的步骤 S704中执行。 步骤 S704 , 认证服务器生成第二验证动态口令 OTP2 , 并返回给 用户端。 在本实施例中, 由于步骤 S703 中对动态因子进行了 4爹正, 从而 认证月艮务器可以才艮据 4爹正后的动态因子生成第二 证动态口令 OTP2 , 优选的, 此处的 OTP2为一个动态口令。 用户端接收到 OTP2后, 用户利用动态口令令牌生成第二动态口 令, 并将第二动态口令与 OTP2进行比对, 如果相同, 则认为比对成 功, 并再次使用动态口令令牌生成第三动态口令并发送给认证服务 器。 如果上述第二动态口令与 OTP2不相同, 则认为比对失败, 用户 可以认为认证服务器不合法, 停止登录操作。 步骤 S705 , 认证月艮务器是否在约定的时间内接收到第三动态口 令, 如果接到第三动态口令, 执行步骤 S706 , 如果没有接到, 执行步 骤 S709。 在本实施例中, 约定的时间为认证服务器接收第三动态口令的有 效时间, 认证服务器对在有效时间内接收的第三动态口令进行验证, 对没有在约定的时间内发送的第三动态口令丢弃, 不进行第三动态口 令的验证, 其中, 认证服务器可以根据实际需要来设置上述约定的时 间。 这里, 对时间进行限制可以 艮大程度的防止黑客的攻击。 步骤 S706 , 认证服务器生成第三验证动态口令 OTP3。 认证服务器可以根据接收的用户名信息查找对应的动态口令令 牌的编号和种子, 以及动态因子, 并生成第三-险证动态口令 ΟΤΡ3。 其中, 上述认证 艮务器生成 ΟΤΡ3与动态口令令牌生成第三动态 口令算法相同, 并均釆用计次的方式生成动态口令, 其中, 上述算法 可以包括: HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256等。 步骤 S707 , 认证服务器使用 OTP3对第三动态口令进行验证, 如 果正确, 执行步 4聚 S708 , 如果不正确, 执行步 4聚 S709。 在本实施例中, 认证月艮务器对第三动态口令-险证的方法为, 认证 服务器使用 OTP3对第三动态口令进行比对, 如果相同, 则认为比对 成功, 执行步 4聚 S708 , 如果不相同, 则比对失败, 执行步 4聚 S209。 其中, 如果在步骤 S706 中, 认证服务器生成 OTP3 时生成的是 一组-险证动态口令, 则按如下的方式对第三动态口令进行-险证: 认证 服务器使用第三动态口令与步骤 S706 中生成的一组验证动态口令逐 一进行比对, 如果上述一组验证动态口令中有一个验证动态口令与第 三动态口令相同, 则认为比对成功, 执行步 4聚 S708 ; 如果上述一组-险 证动态口令中任意一个动态口令均与第三动态口令不相同, 则认为比 对失败, -险证不正确, 执行步骤 S709。 在本实施例中, 用户端在发送第三动态口令的同时, 还可以向认 证服务器发送静态密码。 相应的, 认证服务器在对第三动态口令进行 验证的同时, 还可以对静态密码进行验证, 从而防止动态口令令牌丢 失或被盗导致的非合法用户登入, 使得登录过程更加安全, 其中, 具 体的步骤为: 认证月艮务器在预先约定的时间内接收到用户端发送的第 三动态口令和静态密码, 认证 艮务器对静态密码和第三动态口令进行 验证, 如果全部正确, 则执行步骤 S708 , 否则, 执行步骤 S709。 步骤 S708 , 登录成功, 可以开始进行网上交易; 步骤 S709 , 返回错误。 在本实施例中, 上述返回错误包括如下情况: 在步骤 S703 中认证服务器判断第一动态口令不正确时, 返回第 一动态口令不正确的错误。 在步 4聚 S705 中未在预先约定的时间内接收到第三动态口令时, 返回接收第三动态口令超时的错误。 在步骤 S707 中认证服务器判断第三动态口令不正确时, 返回登 录失败的错误。 在本实施例, 生成动态口令均可以釆用算法包括 HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256等, 其中, 认证月艮务器生成 OTP 1与口令令 牌生成第一动态口令、 认证 艮务器生成 OTP2与口令令牌生成第二动 态口令、 认证服务器生成 OTP3与口令令牌生成第三动态口令的算法 相同。 根据本发明, 通过三次口令验证, 使得普通的动态口令令牌可以 对服务器的合法性进行验证, 从而增加了动态口令认证的安全性, 使 得用户可以避免如由于误登录钓鱼网站而遭受损失。 实施例 6 图 8是本发明实施例提供的一种动态口令的认证方法的流程图。 本实施例以用户通过动态口令的认证方式登录网上银行为例进行说 明, 具体描述在用户登录的过程中动态口令认证月艮务器的认证流程, 其中, 在本实施例中, 釆用计时的方法 (即, 基于时间的方法) 来生 成动态口令, 才艮据本发明实施例的动态口令的认证方法具体包括如下 步骤: 步骤 S801 , 认证月艮务器接收用户端发送的用户名信息、 第一动态 α令。 在本实施例中, 在登录认证流程开始前, 用户所持动态口令令牌 已经与该用户的用户名信息进行了绑定, 上述动态口令令牌具有唯一 的编号, 并且在内部存储有唯一的与编号对应的种子, 可以根据内置 的动态口令算法生成动态口令, 上述动态口令算法与 艮务端生成动态 口令算法相同, 其中, 用户名信息可以包括以下至少之一: 用户姓名、 账号、 身份证号、 邮箱。 在本实施例中, 所使用的动态口令令牌可以带有按键, 用户第一 次按下按键生成的动态口令为第一动态口令, 第二次按下按键可以生 成第二动态口令, 第三次按下按键可以生成第三动态口令; 或者, 上述动态口令令牌也可以带有三个动态口令生成按键, 当 按下第一个按键, 生成的动态口令为第一动态口令, 按下第二个按键 可以生成第二动态口令, 按下第三个按键可以生成第三动态口令。 用户通过用户端主机输入用户名信息、 第一动态口令, 并由客户 端发送给认证 艮务器。 在生成动态口令时对动态因子的选择可以釆用基于时间或事件 的方式, 在本实施例 2中, 以釆用基于时间的方式 (即, 釆用计时的 方式) 生成动态口令进行说明, 优选地, 在本实施例中还可以釆用基 于事件的方式 (即, 釆用计次的方式) 来生成动态口令, 如实施例 1 所述。 步骤 S802 ,认证服务器根据接收的用户名信息查找对应的动态口 令令牌的编号和种子, 以及动态因子, 并生成第一-险证动态口令 ΟΤΡ 1。 其中, 上述认证 艮务器生成 OTP 1与动态口令令牌生成第一动态 口令算法相同, 并均釆用计时的方式生成动态口令, 其中, 上述算法 可以包括: HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256等。 步骤 S803 , 认证服务器验证第一动态口令是否正确, 如果正确, 执行步骤 S804 , 如果不正确, 执行步骤 S809。 其中, 在步骤 S802 中, 认证服务器生成 OTP 1 时, 可以生成一 个或一组动态口令作为 OTP 1 , 即 OTP 1也可以为一组动态口令。 认证月艮务器可以釆用以下方法来-险证第一动态口令是否正确:
1 ) 当 OTP 1 为一个动态口令时, 认证月艮务器将第一动态口令与 OTP 1进行比对, 如果相同, 则认为第一动态口令正确, 如果不相同, 则认为第一动态口令不正确;
2 ) 当使用的动态因子 ( 即计时时间 ) 包括时间窗时 (后面将描 述具体实现办法), OTP 1为一组验证动态口令, 认证服务器将一组动 态口令 OTP 1逐一与第一动态口令进行比对, 当一组 OTP 1 中有一个 动态口令与第一动态口令比对相同时, 则认为比对成功, 第一动态口 令正确, 如果 OTP 1 中任一个动态口令都与第一动态口令不相同, 则 认为 -险证失败, 第一动态口令不正确。 优选的, 在认证 艮务器 -险证第一动态口令是否正确前, 认证 艮务 器还可以判断第一动态口令是否使用过, 如果没有使用过, 则聆 ^楚 一动态口令是否正确; 如果使用过, 则向用户端返回错误。 这里, 判 断第一动态口令是否使用过可以起到以下作用: 防止黑客在监测到用 户输入的动态口令之后, 立刻向认证服务器釆用相同的动态口令进行 登录, 从而避免了给用户造成损失。 优选的, 可以设置一定的时间段, 例如, 10分钟, 如果在之前的 10分钟之内没有使用过第一动态口令, 则认证 艮务器对该第一动态口令进行 -险证。 这里, 认证月艮务器可以才艮据动态因子来生成动态口令, 例如, 第 一验证动态口令、 第二验证动态口令或随后描述的第三验证动态口 令。 下面举例进行说明, 以本实施例釆用计时的方式生成动态口令为 例进行说明: 使用计时的方法生成动态口令, 即在生成动态口令时将设备 (动 态口令令牌或认证服务器)生成动态口令的时间与预设的初始时间的 差值作为动态因子, 本实施例中以一分钟为计时单位为例进行说明, 一般情况下, 动态口令令牌在初始^ ^时设定一个初始时间, 例如为
2000年 1 月 1 日 00时 00分, 当在 2000年 1 月 1 日 01 时 00分生成 动态口令时, 动态口令令牌或认证月艮务器使用 2000年 1月 1 日 01 时 00分与初始时间 2000年 1 月 1 日 00 时 00分 4目减得到 60分, 使用 60作为动态因子生成动态口令,但是由于动态口令令牌和认证月艮务器 单独计时, 计时经常会发生计时不同步的情况, 因此需要对时间因子 进行爹正, 上述爹正方法可以如下所述: 假设动态口令令牌与认证服务器设定的初始时间为 2000年 1月 1 日 00时 00分,在动态口令令牌计时时间为 2000年 1 月 1 日 01 时 00 分生成动态口令, 此时动态口令令牌使用的动态因子为 60 , 而认证服 务器生成 OTP 1 时, 由于计时和数据传输的误差, 此时认证服务器基 准时间为 2000年 1 月 1 日 01 时 02分, 即动态因子应为 62。 在认证 月艮务器生成动态口令时, 对动态因子设定一个时间的浮动范围, 例如 ±2分, 这个浮动范围在本实施例中可以被称为时间窗, 也就是, 动态 因子的取值范围可以设为 [59,65]。 然后, 使用 62±3 生成一组最多 7 个第一验证动态口令, 即认证服务器使用的动态因子分别为 59、 60、 61、 62、 63、 64、 65 , 使用这些动态因子逐一地生成第一 -险证动态口 令, 并与第一动态口令进行比对, 例如, 当才艮据第一个动态因子 59 生成的第一-险证动态口令, 且该第一-险证动态口令与第一动态口令不 同时, 则使用下一个动态因子 60 继续生成第一-险证动态口令, 并与 第一动态口令进行比对, 依此类推, 直到第一验证动态口令与第一动 态口令比对成功。 显然, 当动态因子为 60 时, 第一动态口令 -险证正确, 这时得到 正确的动态因子, 将动态因子更新为 60 , 并可以计算出认证服务器与 动态口令令牌之间的计时偏移为 2分钟, 在下次对动态口令计算时, 可以通过如下方法对认证月艮务器存储的动态因子进行 4爹正: 更新后的动态因子 =上述认证 艮务器生成第二 -险证动态口令时的 当前计时时间-上述实体的初始时间 -上述计时偏移。 例如, 认证月艮务器在 2000年 1 月 1 日 01 时 03分生成第二一险证 动态口令。 则更新后的动态因子= ( 2000年 1 月 1 日 01 时 03分) - ( 2000年 1 月 1 日 00时 00分) -2=61。 需要说明的是, 本发明实施例可以根据实际情况来设置上述用于 计算动态因子的计时单位, 例如根据安全性及计算精度进行确定。 例 如, 在利用计时的方式生成动态口令时, 可以以每一分钟、 或 30 秒 或 1秒为计时单位, 来计算动态因子, 并根据该动态因子生成动态口 令。 上述对认证月艮务器存储的动态因子进行爹正的操作可以在步骤 S303或者随后的步骤 S304 中执行。 步骤 S804 , 认证服务器生成第二验证动态口令 OTP2 , 并返回给 用户端。 这里, 认证服务器可以首先计算生成第二验证动态口令的计时时 间 (例如 , 2000年 1 月 1 日 01 时 03分) 与初始时间 ( 2000年 1月 1 日 00时 00分) 之间的差值 (等于 63 ) , 然后将该差值减去上述计时 偏移 (等于 2 ) 得到更新后的动态因子 (等于 61 ) , 并根据更新后的 动态因子生成 OTP2。 在本实施例中, 由于步骤 S803 中对动态因子进行了 4爹正, 从而 认证月艮务器可以才艮据 4爹正后的动态因子生成第二 证动态口令 ΟΤΡ2 , 优选的, 此处的 ΟΤΡ2为一个动态口令。 需要说明的是, 当使用计时的方法生成动态口令时 (使用时间因 子作为动态因子), 用户端接收到认证服务器发送的 OTP2 时, 用户 需在规定的时间内利用动态口令令牌生成第二动态口令, 原因如下: 动态口令令牌和认证服务器都是釆用单独计时的方式, 在认证的 过程中,认证服务器生成 OTP2先于动态口令令牌生成第二动态口令, 因此认证服务器生成 OTP2和动态口令令牌生成第二动态口令的时间 因子不一样, 致使动态口令不一样, 因此可以使用改进办法: 在第一 动态口令比对成功后, 对时间进行修正以达到动态口令令牌和认证服 务器时间同步, 将此时间作为基准时间, 并设定一个时间段, 例如一 分钟, 将基准时间延长一分钟的时间作为时间因子生成 OTP2 ( OTP2 为一个动态口令), 即在这一分钟内生成的动态口令是相同的。 认证 服务器生成 OTP2后即返回给用户端, 用户此时应该在规定的时间内 利用动态口令令牌生成第二动态口令, 上述规定的时间小于一分钟, 则动态口令令牌生成的第二动态口令与 OTP2应相同。 另夕卜, 本步 4聚还可以釆取如下的方式: 认证月艮务器每隔固定的时 间生成一个 OTP2返回给用户端, 优选地, 上述固定的时间可以为大 于 0的时间, 并应该在安全范围内。 下面, 本实施例以固定的时间为一分钟为例进行说明: 在认证服务器接收到第一动态口令并认证为正确时, 设定时间为 第 0分钟, 此时在第 1分钟, 按上述方法根据当前的计时时间、 预设 的初始时间以及计时偏移生成第一次 OTP2 , 并发送给用户端; 然后, 在第 2分钟, 生成第二次 OTP2 , 并发送给用户端; 在第 3分钟, 生 成第三次 OTP2 , 并发送给用户端, 依此类 4舞, 以便避免在用户接收 或用户验证 OTP2时由于延迟所带来的问题。 优选的, 在向用户端发 送 OTP2时, 需要对认证服务器向用户端返回 OTP2的次数进行限制 一个最大次数, 例如当返回 10 次, 用户端未进行操作时, 通知用户 端超时未响应, -险证失败。 用户端接收到 OTP2后, 利用动态口令令牌生成第二动态口令, 并将第二动态口令与 OTP2进行比对, 如果相同, 则认为比对成功, 再次使用动态口令令牌生成第三动态口令并发送给认证服务器。 如果 上述第二动态口令与 OTP2不相同, 则认为比对失败, 用户可以认为 认证服务器不合法, 停止登录操作。 优选地, 为了避免认证月艮务器生成的第一个 OTP2由于与用户使 用动态口令令牌生成第一动态口令 (正确的第一动态口令) 时间过于 接近而相同, 例如, 同在第 0分钟上 (以 1 分钟为计时单位), 认证 月艮务器在生成第一个 OTP2时, 可以才艮据当前计时时间的下一分钟来 生成动态因子, 并才艮据该动态因子生成第一次 OTP2。 此外, 还可以 通过其他方式来防止生成 ΟΤΡ2的时间与生成第一动态口令的时间相 同, 例如, 可以在-险证第一动态口令正确之后, 等待 2个计时单位, 然后, 在第 3个计时单位上生成 ΟΤΡ2 , 这样, 即可以使得生成 ΟΤΡ2 的时间与生成第一动态口令的时间不同。 在认证服务器生成第二验证动态口令时, 如果与生成第一验证动 态口令的时间间隔过短, 第一险证动态口令可能会与第二-险证动态口 令相同。 为了使第二 -险证动态口令与第一-险证动态口令不相同, 则在 生成第二验证动态口令时, 可以将更新后的动态因子增加一个预设的 步长, 然后, 根据增加后的动态因子生成第二验证动态口令, 从而避 免由第二验证动态口令与第一验证动态口令相同而造成的安全漏洞。 步骤 S805 , 认证月艮务器是否在约定的时间内接收到第三动态口 令, 如果接到第三动态口令, 执行步骤 S306 , 如果没有接到, 执行步 骤 S309。 在本实施例中, 约定的时间为认证服务器接收第三动态口令的有 效时间, 认证服务器对在有效时间内接收的第三动态口令进行验证, 对没有在约定的时间内发送的第三动态口令丢弃, 不进行第三动态口 令的验证, 对时间进行限制可以很大程度的防止黑客的攻击。 步骤 S806 , 认证服务器生成第三验证动态口令 OTP3。 优选地,认证服务器生成第三验证动态口令 ΟΤΡ3前还可以包括, -险证第三动态口令是否使用过。 需要说明的是, 优选地, 在利用计时的方式生成动态口令时, 如 上所述, 对动态因子的处理存在一个时间窗, 利用如下的办法可以解 决由于时间窗问题造成的动态口令计算重复问题, 举例说明如下: 例如, 当认证月艮务器生成 OTP2 时, 时间为 00 时 10 分, 生成 OTP3 时时间为 00 时 13分, 时间窗为三分钟, 由于 OTP3可以为一 组动态口令, 则时间因子为 00时 13分 ±3分, 其中包括了将 00时 10 分作为动态因子进行计算, 这属于是重复的并且没有意义的计算, 并 可以造成安全漏洞, 所以应该在计算 OTP3时, 为时间因子设置一个 闸, 本发明中闸表示的 4既念为: 强制设定某时刻之前的时间, 不再作 为动态因子进行计算, 即使是在时间窗的范围内, 显然的, 本例子中, 00时 10分及之前的时间为闸, 不可以作为动态因子。 在认证服务器生成第三验证动态口令时, 如果与生成第二验证动 态口令的时间间隔过短, 第三险证动态口令可能会与第二-险证动态口 令相同。 为了使第三-险证动态口令与第二-险证动态口令不同, 则在生 成第三 -险证动态口令时, 首先更新动态因子, 方法可以釆用上述在生 成第一 -险证动态口令之后更新动态因子所用的方法; 然后, 将更新后 的动态因子增加预设的步长; 然后, 使用增加后的动态因子生成第三 -险证动态口令, 从而避免由第三-险证动态口令与第二-险证动态口令相 同而造成的安全漏洞。 步骤 S807 , 认证服务器对第三动态口令进行验证, 如果正确, 执 行步骤 S808 , 如果不正确, 执行步骤 S809。 在本实施例中, 认证月艮务器对第三动态口令-险证的方法为, 认证 服务器使用 OTP3对第三动态口令进行比对, 如果相同, 则认为比对 成功, 执行步 4聚 S308 , 如果不相同, 则比对失败, 执行步 4聚 S809。 其中, 如果在步 4聚 S806 中, 认证月艮务器生成 OTP3 时生成一组 验证动态口令, 则按如下的方式对第三动态口令进行比对: 认证服务 器使用第三动态口令与步骤 S806 中生成的一组验证动态口令逐一进 行比对, 如果上述一组-险证动态口令中有一个-险证动态口令与第三动 态口令相同, 则认为比对成功, 执行步 4聚 S808 ; 如果上述一组-险证动 态口令中任意一个动态口令均与第三动态口令不相同, 则认为比对失 败, -险证不正确, 执行步 4聚 S 809。 在本实施例中, 还可以加入对静态密码的 -险证过程, 防止动态口 令令牌丢失或被盗导致的非合法用户登入, 使得登录过程更加安全, 其中, 具体的步骤为: 认证服务器在预先约定的时间内接收到用户端 发送的第三动态口令和静态密码, 认证 艮务器对静态密码和第三动态 口令进行验证, 如果全部正确, 则执行步骤 S808 , 否则, 执行步骤 S809。 步骤 S808 , 登录成功, 可以开始进行网上交易。 步骤 S809 , 返回错误。 在本实施例中, 上述返回错误包括如下情况: 在步骤 S803 中认证服务器判断第一动态口令不正确时, 返回第 一动态口令不正确的错误。 在步 4聚 S805 中未在预先约定的时间内接收到第三动态口令时, 返回接收第三动态口令超时的错误。 在步骤 S807 中认证服务器判断第三动态口令不正确时, 返回登 录失败的错误。 在本发明的实施例 中 , 生成动态口令均可以釆用算法包括 HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256 等, 其中, 认证月艮务器生成 OTP 1 与口令令牌生成第一动态口令的算法相同、 认证 艮务器生成 OTP2 与口令令牌生成第二动态口令的算法相同、 认证 艮务器生成 OTP3与口令令牌生成第三动态口令的算法相同。 需要说明的是, 上述生成 ΟΤΡ 1、 第一动态口令、 ΟΤΡ2、 第二动 态口令、 ΟΤΡ3 和第三动态口令均可以釆用基于事件 (如实施例 1 中 所示) 或时间 (如实施例 2 中所示) 的方式来实现。 根据本发明, 通过三次口令验证, 使得普通的动态口令令牌可以 对服务器的合法性进行验证, 从而增加了动态口令认证的安全性, 使 得用户可以避免如由于误登录钓鱼网站而遭受损失。 实施例 7 才艮据本发明的实施例, 提供了一种动态口令的认证装置。 图 9是本发明实施例的动态口令的认证装置的结构框图。 如图 9 所示, 该装置包括: 第一验证模块 902 , 用于对来自用户端的第一动 态口令进行验证; 处理模块 904 , 用于在验证上述第一动态口令正确 的情况下生成第二验证动态口令, 并将上述第二验证动态口令发送给 上述用户端; 第二-险证模块 906 , 用于在预定的时间段内接收到来自 上述用户端的第三动态口令的情况下对上述第三动态口令进行 -险证。 在上述第二验证模块 906验证第三动态口令正确的情况下, 判断 用户登录成功。 图 10 是本发明的动态口令的认证装置的优选结构框图。 该认证 装置包括: 通信模块 1001、 查找模块 1002、 第一生成模块 1003、 第 一认证模块 1004、 第二生成模块 1005、 第三生成模块 1006、 第三认 证模块 1007、 存储模块 1008 , 其中上述模块均可以通过程序在相应 的硬件中实现。 其中, 图 9中的第一-险证模块 402可以包括: 查找模 块 1002、 第一生成模块 1003、 第一认证模块 1004; 处理模块 404可 以包括: 第二生成模块 1005 ; 第二验证模块 406可以包括: 第三生成 模块 1006、 第三认证模块 1007。 通信模块 1001 用于与用户端进行通信, 接收用户端发送的用户 名信息、 第一动态口令, 向用户端发送 OTP2、 接收用户端发送的第 三动态口令, 向用户端返回登录结果。 查找模块 1002 用于在认证服务器接收到用户端发送的用户名信 息和第一动态口令后, 查找该用户名信息对应的动态口令令牌编号以 及种子和动态因子。 第一生成模块 1003用于 ^艮据查找模块 1002查找到的种子和动态 因子生成 ΟΤΡ 1。 第一认证模块 1004用于对用户端发送的第一动态口令进行验证, 这里, 第一认证模块 1004 还可以在对第一动态口令验证正确之后修 正动态因子,以便第二生成模块 35根据修正后的动态因子生成 ΟΤΡ2。 第二生成模块 1005用于当第一认证模块 1004对第一动态口令验 证成功后, 生成 ΟΤΡ2 , 并将 ΟΤΡ2通过通信模块 3 1发送给用户端。 第三生成模块 1006 用于在认证月艮务器在预先约定的时间内接收 到用户端发送的第三动态口令后, 生成 ΟΤΡ3。 第三认证模块 1007用于对用户端发送的第三动态口令进行验证, 如果 -险证正确, 则登录成功, 如果-险证不正确, 则登录失败。 存储模块 1008 , 用于存储用户名信息、 动态口令令牌编号、 种子 和动态因子。 其巾, 第一生成模块 1002 生成 OTP 1 时, 可以生成一个或一组动态口 令; 相应地, 当第一生成模块 1002 生成一个动态口令时, 第一认证 模块 1004 对用户端发送的第一动态口令进行-险证具体的为: 第一认 证模块 1004将第一动态口令与上述第一生成模块 1002生成的一个动 态口令进行比对, 如果相同, 则 -险证成功, 如果不相同, 则-险证第一 动态口令不正确; 当第一生成模块 1002生成一组动态口令时, 第一认证模块 1004 对用户端发送的第一动态口令进行-险证具体的为:第一认证模块 1004 将第一动态口令与上述第一生成模块 1002 生成的一组动态口令逐个 进行比对, 如果其中有一个动态口令与第一动态口令相同, 则认为比 对成功, -险证第一动态口令正确, 否则, 第一动态口令不正确; 第一认证模块 1003 生成第一动态口令前, 还可以包括, 第一认 证模块 1003 判断第一动态口令是否使用过, 如果没有使用过, 验证 第一动态口令是否正确, 如果使用过, 通过通信模块 1001 向用户端 返回错误; 第一认证模块 1003 -险证第一动态口令正确后, 还可以包括, 对 动态因子进行爹正; 通信模块 1001 , 还可以用于接收用户端发送的静态密码; 相应地, 第三认证模块 1007 在 -险证用户端发送的第三动态口令 时还包括, 对用户端发送的静态密码进行验证, 如果第三动态口令和 静态密码 -险证全部通过, 则认为 -险证成功, 否则, -险证失败; 第一生成模块 1002生成 OTP 1的算法包括: HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256; 相应地, 第二生成模块 1005 生成 OTP2 的算法 包括: HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256; 第三生成模块 1006生成 OTP3的算法包括: HMAC-SHA 1、 MD5、 SHA- 1、 SHA-256; 根据本发明实施例, 通过三次口令验证, 使得普通的动态口令令 牌可以对服务器的合法性进行验证, 从而增加了动态口令认证的安全 性, 使得用户可以避免如因误登录钓鱼网站而遭受损失。 实施例 8 本发明实施例提供了一种安全交易的方法, 参见图 1 1 , 该方法包 括: 步骤 1101 : 月艮务端接收客户端发送的交易信息及第一动态口令; 其中, 交易信息中可以但不限于包括: 用户账号、 用户密码、 交 易金额、 货币类型等。 而第一动态口令由客户端用户合法持有的动态 口令令牌生成。 其中, 本实施例中所使用的动态口令令牌带有按键, 当用户第一 次按下按键时生成的动态口令即为第一动态口令。 对于本发明实施例所提供的动态口令令牌需要说明的是, 客户端 用户所持有的动态口令令牌预先与该用户的用户账号进行了绑定。 动 态口令令牌具有唯一的编号, 并且在内部存储有唯一的与编号对应的 种子, 可以 居内置的动态口令算法生成动态口令, 且动态口令算法 与月艮务端生成动态口令的算法相同。 同时, 动态口令令牌是一种脱机 使用的动态口令生成装置, 与客户端之间不存在物理意义上的连接关 系。 动态口令令牌所生成并显示的数据, 均由动态口令令牌的合法持 有用户输入到客户端。 对于动态口令令牌生成动态口令还需要说明的是, 可以釆用基于 时间或事件的动态因子生成动态口令, 在本实施例中, 以釆用基于事 件的方式作为动态因子生成动态口令为例。 其中优选的釆用计次的方 式作为动态因子。 步骤 1102: 月艮务端判断第一动态口令是否使用过; 如果没有使用过, 则执行步骤 1103; 如果使用过, 则向客户端返回错误。 这里需要说明的是, 步骤 1102为可选择执行的步骤。 步骤 1103: 月艮务端生成第一一险证动态口令 OTP1, 并一险证第一动 态口令是否正确; 如果正确, 执行步 4聚 1104; 否则, 取消交易。 其中, 月艮务端生成第一-险证动态口令 OTP1与动态口令令牌生成 第一动态口令的方式相同, 即釆用计次的方式作为动态因子, 使用相 同的种子, 并使用 4目同的算法, 例 口 HMAC-SHA1、 MD5、 SHA-1、 SHA-2等。 需要说明的是, 月艮务端生成的第一-险证动态口令 OTP1, 可以是一个、 也可以是一组。 其中, 月艮务端-险证第一动态口令是否正确的具体过程可以包括: 当 OTP1 为一个时, 月艮务端将第一动态口令与 OTP1进行比对, 如果相同, 则认为第一动态口令正确, 如果不相同, 则认为第一动态 口令不正确; 当月艮务端使用连续递增的动态因子计算 OTP1 时, 生成的 OTP1 为一组, 则月艮务端将第一动态口令分别与一组 OTP1进行比对, 当第 一动态口令与一组 OTP1 中有一个-险证动态口令比对相同时, 则认为 验证成功, 第一动态口令正确, 如果第一动态口令与 OTP1 中任一个 验证动态口令都不相同, 则认为验证失败, 第一动态口令不正确。 步骤 1104: 对月艮务端保存的动态因子进行爹正; 下面以本实施例中釆用计次的方式作为动态因子生成动态口令 为例进行说明: 使用计次的方法作为动态因子生成动态口令, 即在生成动态口令 时将设备 (动态口令令牌或 艮务端) 生成动态口令的次数作为动态因 子, 第一次生成动态口令时动态因子为计数值 1、 第二次生成动态口 令时动态因子为计数值 2, 以此类推, 每生成一次动态口令计数值增 加 1(或者增加一个步长)。由于动态口令令牌和 艮务端彼此单独计次, 很容易产生计次不一致的现象, 因此需要对服务端所存储的计次值进 行修正。 支设在动态口令令牌生成第一动态口令时使用的动态因子为计 数值 100, 此时在月艮务端中保存的动态因子为计数值 95, 在月艮务端计 算 OTP1 时设定计数值浮动范围为 10, 从计数值 95 开始作为动态因 子计算 OTP1, 并将计数值逐个增加到 95+10进行 OTP1 的计算, 每 计算出一个 OTP1 即与第一动态口令进行比对, 如不相同则增加计算 值继续进行 OTP1 的计算。 由上可知, 月艮务端生成 OTP1 时分别以计 数值 95、 96 104、 105作为动态因子生成一组最多 11 个 OTP1, 服务端将接收到的第一动态口令与上述 11 个 OTP1 进行比对, 当比 对到服务端根据计数值 100作为动态因子生成的第一验证动态口令时 比对成功, 则认为第一动态口令正确, 并停止 OTP1的计算, 这时还 要对 艮务端存储的计数值进行爹正, 将 100作为正确的计数值, 使得 动态口令令牌与月艮务端的计数值保持同步, 月艮务端将计数值 100增加 1 (或预定的步长) 保存, 作为下次计算动态口令的动态因子, 如果 上述一组 11 个 OTP1 中没有与第一动态口令相同的, 则认为第一动 态口令不正确。 步骤 1105: 服务端生成第二验证动态口令 OTP2, 并将 OTP2按 照约定的规则拆分为第一口令和第二口令; 在本实施例中, 如果步骤 104 中对动态因子进行了 4爹正, 则本步 骤中月艮务端生成的第二-险证动态口令 OTP2为一个。 服务端将 OTP2按照约定的规则拆分为第一口令和第二口令具体 过程可以包括: 月艮务端将 OTP2中约定的部分作为第一口令, 剩余的部分作为第 二口令。 在本实施例中, 优选地, OTP2 为八位的数字, 将前三位取 出作为第一口令, 后五位作为第二口令。 步骤 1106 : 服务端将第一口令及交易信息返回给客户端, 客户端 输出第一口令及交易信息; 其中, 需要说明的是, 客户端将第一口令和交易信息输出的方式 包括但不限于: 显示、 语音播报等。 步骤 1107 : 用户比对此次输出的交易信息是否与步骤 1 101 中用 户输入的交易信息一致; 如果一致, 则执行步 4聚 1108; 如果不一致, 则用户取消交易。 步骤 1108 : 用户利用动态口令令牌生成第二动态口令, 并将第一 口令与第二动态口令中的相应部分 (例如前三位) 进行比对; 如果相同, 则比对成功, 执行步骤 1 109; 否则, 则比对失败, 则用户可以认为月艮务端不合法, 取消交易。 需要说明的是, 用户釆用的比对方式, 与服务端拆分第二验证动 态口令 OTP2的规则是相同的。 步骤 1109: 用户将第二动态口令中的剩余部分(例如后五位)作 为第三口令输入到客户端, 客户端根据接收到的第三口令对交易信息 进行加密操作, 得到密文信息, 并将该密文信息发送给服务端; 步骤 1110 : 服务端接收到密文信息后, 利用第二口令对密文信息 进行解密, 得到明文信息; 客户端与服务端釆用相同的加解密算法对交易信息进行加解密 操作, 例如均釆用 AES、 RSA、 3DES等算法。 步骤 1 111 : 月艮务端判断明文信息是否与步骤 1101 中接收到的交 易信息相同; 如果相同, 进行网上交易; 如果不相同, 取消交易。 本发明实施例提供了一种安全交易的方法, 通过对月艮务端的改 进,使得普通的动态口令令牌可以对月艮务端的合法性进行-险证, 同时, 在客户端的配合下, 可以提供交易签名的功能, 从而保证交易信息的 安全性和私密性, 防止用户身份被中间人的攻击所^ _冒、 仿冒、 以及 交易信息被伪造、 篡改等。 实施例 9 本发明实施例提供了一种安全交易的方法, 参见图 12 , 该方法包 括: 步骤 1201 : 月艮务端接收客户端发送的交易信息及第一动态口令; 其中, 交易信息中可以但不限于包括: 用户账号、 用户密码、 交 易金额、 货币类型等。 而第一动态口令由客户端用户所持有的动态口 令令牌生成。 其中, 本实施例中所使用的动态口令令牌带有按键, 当用户第一 次按下按键生成的动态口令即为第一动态口令。 对于本发明实施例所提供的动态口令令牌需要说明的是, 客户端 用户所持有的动态口令令牌预先与该用户的用户账号进行了绑定。 动 态口令令牌具有唯一的编号, 并且在内部存储有唯一的与编号对应的 种子, 可以 居内置的动态口令算法生成动态口令, 且动态口令算法 与月艮务端生成动态口令算法相同。 同时, 动态口令令牌是一种脱机使 用的动态口令生成装置, 与客户端之间不存在物理意义上的连接关 系。 动态口令令牌所生成并显示的数据, 均由动态口令令牌的合法持 有用户输入到客户端。 对于动态口令令牌生成动态口令需要说明的是, 可以釆用基于时 间或事件的方式作为动态因子, 在本实施例中, 以釆用基于时间的方 式作为动态因子生成动态口令为例。 步骤 1202 : 月艮务端判断第一动态口令是否使用过; 如果没有使用过, 则执行步骤 1203 ; 如果使用过, 则向客户端返回错误。 这里需要说明的是, 步骤 1202为可选步骤。 步骤 1203: 月艮务端生成第一一险证动态口令 OTP1, 并一险证第一动 态口令是否正确; 如果正确, 执行步 4聚 1204; 否则, 取消交易。 其中, 月艮务端生成第一-险证动态口令 OTP1与动态口令令牌生成 第一动态口令的方式相同, 即釆用时间作为动态因子的方式, 并使用 相同的算法, 例如 HMAC-SHA1、 MD5、 SHA-1、 SHA-2等。 需要说 明的是, 月艮务端生成的第一-险证动态口令 OTP1, 可以是一个、 也可 以是一组。 其中, 服务端验证第一动态口令 OTP1是否正确的具体过程可以 包括: 当 OTP1 为一个时, 月艮务端将第一动态口令与 OTP1进行比对, 如果相同, 则认为第一动态口令正确, 如果不相同, 则认为第一动态 口令不正确; 当月艮务端使用连续递增的动态因子计算 OTP1 时, 生成的 OTP1 为一组, 则月艮务端将第一动态口令分别与一组 OTP1进行比对, 当第 一动态口令与一组 OTP1 中有一个-险证动态口令比对相同时, 则认为 验证成功, 第一动态口令正确, 如果第一动态口令与 OTP1 中任一个 验证动态口令都不相同, 则认为验证失败, 第一动态口令不正确。 步骤 1204: 对月艮务端保存的动态因子进行爹正。 具体的, 在釆用计时的方式作为动态因子生成动态口令的过程 中, 对月艮务端保存的动态因子进行爹正的方法可以包括: 将 -险证第一动态口令成功的 OTP1 的动态因子作为标准动态因 子, 服务端使用标准动态因子减去其当前的动态因子, 得到当前动态 因子的偏移值; 月艮务端使用 当前的动态因子加上其偏移值即为 4爹正后的动态因 子。 下面举例进行说明, 以本实施例釆用计时的方式生成动态口令为 例进行说明: 使用计时的方法生成动态口令, 即在生成动态口令时将设备 (动 态口令令牌或月艮务端) 生成动态口令的时间作为动态因子, 本实施例 中以一分钟为一个计时单位的动态因子生成动态口令为例进行说明, 一般情况下, 动态口令令牌在初始^ ^时设定一个初始时间, 例如为 2000年 1 月 1 日 00时 00分, 当在 2000年 1 月 1 日 01 时 00分生成 动态口令时, 动态口令令牌或月艮务端使用 2000年 1 月 1 日 01 时 00 分与初始时间 2000年 1 月 1 日 00 时 00分 4目减得到 60分, 使用 60 作为动态因子生成动态口令, 但是由于动态口令令牌和服务端彼此单 独计时, 而计时经常会发生不同步的情况, 因此需要对月艮务端的时间 动态因子进行爹正。 4爹正方法可以如下所述: 设定动态口令令牌与服务端的初始时间为 2000年 1月 1 日 00时 00分, 在动态口令令牌计时时间为 2000年 1 月 1 日 01 时 00分生成 动态口令, 此时动态口令令牌使用的动态因子为 60 , 而 艮务端生成 OTP 1 时, 由于计时和数据传输的误差, 此时月艮务端基准时间为 2000 年 1 月 1 日 01 时 02分, 即动态因子应为 62 , 在服务端生成动态口令 时对其设定一个时间的浮动范围, 例如 ±3分, 这个浮动范围在本实施 例中称为时间窗, 使用 62±3生成一组最多 7个 OTP 1 , 即服务端使用 的动态因子分别为 59、 60、 61、 62、 63、 64、 65 , 使用这些动态因子 逐一的生成 OTP 1并与第一动态口令进行比对, 当第一个动态因子 59 生成的 OTP 1 比对不成功时, 使用下一个动态因子 60继续生成 OTP 1 并与第一动态口令进行比对, 艮显然的, 当动态因子为 60 时, 第一 动态口令 -险证正确, 这时得到正确的动态因子, 则将动态因子更新为 60 , 并可以计算出月艮务端与动态口令令牌之间的计时偏移为 -2分, 在 下次对动态口令计算时, 获取月艮务端的系统时间后, 需要加上这个偏 移值, 以得到与动态口令令牌同步的时间作为基准时间, 其中, 基准 时间为月艮务端系统时间与计时偏移之和, 也可成为与动态口令令牌同 步后的计时时间。 需要说明的是, 在利用计时的方式生成动态口令时, 可以以每一 分钟为一个单位的动态因子进行动态口令的计算, 也可以为每 ^Λ ^ 或每一秒钟为一个单位的动态因子进行动态口令的计算, 上述实施例 以每一分钟为一个单位进行动态口令的计算为例进行说明, 具体应用 中对动态因子时间单位的规定可以根据安全性及计算精度进行确定。 步骤 1205 : 月艮务端生成第二一险证动态口令 OTP2 , 并将 OTP2拆 分为第一口令和第二口令; 在本实施例中, 如果步骤 1204 中对月艮务端的动态因子进行了修 _ 正, 则本步骤中月艮务端生成的第二-险证动态口令 OTP2为一个。 服务端将 OTP2按照约定的规则拆分为第一口令和第二口令具体 过程可以包括: 月艮务端将 OTP2中约定的部分作为第一口令, 剩余的部分作为第 二口令。 在本实施例中, 优选地, OTP2 为八位的数字, 将前三位取 出作为第一口令, 后五位作为第二口令。 在服务端生成 OTP2 时, 还需要注意的是, OTP2 与 OTP 1 不应 相同, 避免由于与 OTP 1生成时间过近而造成 OTP2与 OPT 1相同所 造成的安全漏洞, 如果发生上述生成时间过近的情况, 则可以将时间 因子增加一个步长以后生成 OTP2 , 避免发生与 OTP 1相同的情况。 其中, 为了防止下一步服务端返回第一口令给客户端时因网络延 迟所造成认证失败, 月艮务端生成第二-险证动态口令 OTP2还包括一种 方法, 服务端生成的第二-险证动态口令 OTP2为一组, 例如, 在步骤 204 中, 校正完动态因子后, 确定时间偏移为 -2分, 则确定生成 OTP2 的时间为同步后的月艮务端时间再加上一个步长, 即为 2000 年 1 月 1 日 01 时 00加上 1分钟, 计算动态因子应为 61 , 为了能够生成一组动 态口令, 增力口一个向后偏移的时间窗为 +5 , 则利用 61、 62、 63、 64、 65、 66 , 生成一组共 6 个动态口令 OTP2; 如上述方法生成一组共 6 个 OTP2 , 还需将上述一组 6个动态口令 OTP2 中的每一个 OTP2拆 分为第一口令和第二口令, 共可以得到 6组第一口令和第二口令, 拆 分方法与上述拆分方法相同, 这里不再赘述。 步骤 1206 : 服务端将第一口令及交易信息返回给客户端, 客户端 输出第一口令及交易信息; 其中, 需要说明的是, 客户端将第一口令与交易信息输出的方式 包括但不限于: 显示、 语音播报等。 步骤 1207 : 用户比对此次输出的交易信息是否与步骤 1201 中用 户输入的交易信息一致; 如果一致, 则执行步 4聚 1208; 如果不一致, 则用户取消交易。 步骤 1208 : 用户利用动态口令令牌生成第二动态口令, 将第一口 令与第二动态口令中的相应部分 (例如前三位) 进行比对; 如果相同, 则比对成功, 执行步 4聚 1209; 否则, 则比对失败, 则用户可以认为月艮务端不合法, 取消交易。 其中, 还需要说明的是, 当使用计时的方法生成动态口令时 (使 用时间因子作为动态因子), 用户接收到服务端发送的第一口令时, 需在规定的时间内利用动态口令令牌生成第二动态口令, 原因如下: 动态口令令牌和服务端都是釆用单独计时的方式, 在认证的过程 中, 月艮务端生成 OTP2先于动态口令令牌生成第二动态口令, 因此月艮 务端生成 OTP2 和动态口令令牌生成第二动态口令的时间因子不一 样, 会致使动态口令不一样, 造成比对失败的后果。 因此需使用改进 的办法: 月艮务端在第一动态口令比对成功后, 对时间进行爹正以达到 动态口令令牌和月艮务端时间同步, 将此时间作为基准时间, 并设定一 个时间段, 例 ¾。一分钟, 夺基准时间以及延长一分钟的时间均作为时 间因子生成第二验证口令 ΟΤΡ2 , 该第二验证口令 ΟΤΡ2 为一个, 即 在这一分钟内生成的动态口令是相同的。 月艮务端生成 ΟΤΡ2后即返回 给客户端, 客户端用户此时应该在规定的时间内利用动态口令令牌生 成第二动态口令, 如果利用动态口令令牌生成第二动态口令的时间小 于一分钟,则动态口令令牌生成的第二动态口令与 ΟΤΡ2才是相同的。 另夕卜, 本步 4聚还可以釆取如下的方式: 月艮务端每隔固定的时间生 成一个 ΟΤΡ2返回给客户端, 本实施例以固定的时间为一分钟为例进 行说明, 例如: 在服务端接收到第一动态口令并认证为正确时, 设定 时间为第 0分钟, 此时生成 ΟΤΡ2 , 优选地, 为了避免月艮务端 4 第一个 OTP2由于与用户使用动态口令令牌生成第一动态口令时间过 于接近而相同, 月艮务端生成第一个 OTP2时, 使用当时时间的下一分 钟作为动态因子生成第一次 OTP2 , 并在此后的每一分钟内生成一个 OTP2返回给客户端, 防止客户端接收或 -险证 OTP2 的延迟, 其中, 月艮务端和动态口令令牌每一分钟时间段内生成的动态口令相同, 可以 釆用一分钟内的中间那一秒作为动态因子, 或设定一分钟内其中某一 秒作为动态因子。 在返回 OTP2时, 需要对月艮务端返回 OTP2的次数 进行限制一个最大次数, 例如当返回 10 次用户未进行操作时, 通知 用户超时未响应, -险证失败。 该固定的时间可以为大于 0的时间, 并 应该在安全范围内。 当步骤 1208 中服务端生成一组多个第二验证口令 OTP2 时, 服 务端将拆分得到的多个第一口令发送给客户端, 此时, 用户将令牌显 示的第一-险证动态口令与上述多个第一口令进行比对, 如果有一个比 对成功, 即用户可以认为比对成功。 步 4聚 1209: 用户将第二动态口令中的相应部分 (例如后五位 )作 为第三口令输入到客户端, 客户端根据接收到的第三口令对交易信息 进行加密操作, 得到密文信息, 并将该密文信息发送给服务端; 步骤 1210 : 服务端接收到密文信息后, 利用第二口令对密文信息 进行解密, 得到明文信息; 客户端与服务端釆用相同的加解密算法对交易信息进行加解密 操作, 例如均釆用 AES、 RSA、 3DES等算法。 步骤 1211 : 月艮务端判断明文信息是否与步骤 1201 中接收到的交 易信息相同; 如果相同, 进行网上交易; 如果不相同, 取消交易。 当步骤 1203 中服务端生成一组多个第二验证动态口令 OTP2时, 服务端利用拆分得到的多个第二口令对接收到的密文信息进行解密 操作, 得到一组明文信息; 服务端将交易信息与解密得到的该组明文 信息进行对比, 只要有一个明文信息是与交易信息相同的, 则进行网 上交易, 如果该组明文信息中没有一个是与交易信息一致的, 则取消 交易。 本发明实施例提供了一种安全交易的方法, 通过对月艮务端的改 进,使得普通的动态口令令牌可以对月艮务端的合法性进行-险证, 同时, 在客户端的配合下, 可以提供交易签名的功能, 从而保证交易信息的 安全性和私密性, 防止用户身份被中间人的攻击所^ _冒、 仿冒、 以及 交易信息被伪造、 篡改等。 实施例 10 参见图 13 , 本发明实施例提供了一种安全交易的系统, 该系统包 括: 客户端 301、 动态口令令牌 302和月艮务端 303 ; 动态口令令牌 302包括: 生成模块 302A , 用于生成第一动态口令和第二动态口令; 显示模块 302B , 用于将生成模块 302A生成的第一动态口令和第 二动态口令显示给用户; 客户端 301 包括: 发送模块 301A , 用于向服务端 303 发送用户输入的交易信息和 用户输入的由动态口令令牌 302的生成模块生成的第一动态口令, 以 及将加密模块 301C加密交易信息得到的密文信息发送给 艮务端 303 ; 接收模块 301B ,用于接收月艮务端 303的发送模块 303 F发送的第 一口令和交易信息, 接收用户输入的第三口令, 以及接收用户比对第 一口令与动态口令令牌 302的生成模块 302A生成的第二动态口令中 的相应数据一致的确认信息; 加密模块 301C , 用于当客户端 301 的接收模块 301B接收到第一 口令与第二动态口令中的相应数据一致的确认信息后, 使用客户端 301 的接收模块 301B 接收到的第三口令对交易信息进行加密, 得到 密文信息; 服务端 303 包括: 接收模块 303A ,用于接收客户端 301 的发送模块 301A发送的交 易信息和第一动态口令, 以及客户端 301发送的密文信息; 第一生成模块 303B , 用于根据服务端 303的接收模块 303A接收 到的交易信息生成第一验证动态口令; 验证模块 303C , 用于使用第一生成模块 303B生成的第一验证动 态口令验证接收模块接收到的第一动态口令; 第二生成模块 303D , 用于当验证模块 303C的验证第一动态口令 通过后, 生成第二-险证动态口令; 拆分模块 303E , 用于将第二生成模块 303D生成的第二验证动态 口令拆分为第一口令和第二口令; 发送模块 303F , 用于将拆分模块 303E得到的第一口令和接收模 块 303 A接收到的交易信息返回给客户端 301; 解密模块 303G, 用于使用拆分模块 303E得到的第二口令对服务 端 303的接收模块 303 A接收到的密文信息进行解密,得到明文信息; 执行模块 303H,用于比较解密模块 303G得到的明文信息是否与 服务端 303 的接收模块 303A接收到的交易信息相一致, 当一致时, 执行交易; 当不一致时, 拒绝交易。 进一步的, 月艮务端 303还包括: 判断模块 303J , 用于判断月艮务端 303的接收模块 303A接收到的第一动态口令是否使用过; 如果是, 则发送模块 303F向客户端 301返回错误 4艮告; 如果否, 则服务端 303 的第一生成模块 303B根据服务端 303 的 接收模块 303 A接收到的交易信息生成第一 -险证动态口令。 其中, 服务端 303的第一生成模块 303B具体包括: 查找单元, 用于 居所述交易信息中的用户账号查找对应的种子 和动态因子; 生成单元, 用于才艮据所述查找单元查找到的所述种子和所述动态 因子生成第一-险证动态口令, 所述第一-险证动态口令为一个或一组动 态口令。 其中, 动态因子为基于时间或事件的动态因子。 服务端 303的-险证模块 303C具体包括: 比对单元, 用于比对所述第一动态口令是否与所述第一生成模块 生成的第一-险证动态口令相一致; 判定单元, 用于: 当所述第一-险证动态口令为一个动态口令时, 如果所述比对单元 比对所述第一动态口令与所述第一验证动态口令的结果是一致的, 则 判定所述第一动态口令 -险证通过; 如果所述比对单元比对所述第一动 态口令与所述第一验证动态口令的结果是不一致的, 则判定所述第一 动态口令 -险证失败; 当所述第一-险证动态口令为一组动态口令时, 如果所述比对单元 的比对结果中存在第一-险证动态口令与所述第一动态口令一致的结 果, 则判定所述 艮务端-险证所述第一动态口令通过; 如果所述比对单 元的比对结果中不存在第一-险证动态口令与所述第一动态口令一致 的结果, 则判定所述服务端验证所述第一动态口令失败。 服务端 303还包括: 修正模块 303K, 用于在服务端 303 的验证 模块 303C的-险证第一动态口令通过后, 对 艮务端 303 的动态因子进 行修正; 相应的, 月艮务端 303的第二生成模块 303D具体用于: 使用种子和爹正后的动态因子生成第二-险证动态口令。 动态因子为基于时间的动态因子时, 月艮务端 303 -险证第一动态口 令通过后, 第二生成模块 303D生成一个或一组动态口令作为第二-险 证动态口令; 相应的, 当第二生成模块 303D生成的第二-险证动态口令为一个 动态口令时, 拆分模块 303E得到的第一口令为一个口令; 当第二生成模块 303D生成的第二-险证动态口令为一组动态口令 时, 拆分模块 303E得到的第一口令为一组口令; 目应的, 月艮务端 303的发送模块 303F用于: 当拆分模块 303E得到的第一口令为一个口令时, 将第一口令和 交易信息返回给客户端 301 , 以对当前返回的第一口令进行比对; 当拆分模块 303E得到的第一口令为一组口令时, 将一组第一口 令和交易信息返回给客户端 301 ,以对当前返回的第一口令进行比对。 其中, 第一动态口令、 第二动态口令、 第一-险证动态口令、 第二 -险证动态口令的生成算法相同。 其中, 加密、 解密的算法为客户端 301与服务端 303预先约定的 相同的加解密算法。 本发明实施例提供了一种安全交易的系统, 通过对月艮务端的改 进,使得普通的动态口令令牌可以对月艮务端的合法性进行-险证, 同时, 在客户端的配合下, 可以提供交易签名的功能, 从而保证交易信息的 安全性和私密性, 防止用户身份被中间人的攻击所^ _冒、 仿冒、 以及 交易信息被伪造、 篡改等。 实施例 11 本实施例提供了一种基于动态口令的认证方法, 参见图 14 , 该方 法包括: 步骤 1401 , 服务端接收用户发送的用户名和第一动态口令; 其中, 第一动态口令是用户使用动态口令令牌生成的, 动态口令 令牌与用户的用户名是关联的, 该动态口令令牌具有唯一的编号, 该 编号、 生成动态口令使用的种子与算法预先都存储在服务端上, 并与 其用户的用户名相关联; 其中, 用户名可以是用户的身份证号, 也可以是用户的邮箱, 或 者是用户的银行账号, 只要能标识用户身份的信息均可以作为该用户 的用户名; 步骤 1402 , 该月艮务端才艮据上述用户名查找对应的种子和动态因 子, 根据该种子和动态因子生成第一验证动态口令; 步骤 1403 ,该月艮务端使用上述第一-险证动态口令-险证第一动态口 令, -险证通过后, 生成第二-险证动态口令; 步骤 1404,该服务端按照预设规则将上述第二验证动态口令拆分 为第一口令和第二口令, 将第一口令返回给上述用户; 具体的, 上述月艮务端将第一口令发送给客户端, 客户端通过显示 输出或音频播放的方式将第一口令输出给用户, 上述用户收到第一口 令后, 通过动态口令令牌生成第二动态口令, 并按照上述预设规则将 第二动态口令拆分为第一验证口令和第二验证口令; 上述用户使用第一 -险证口令-险证上述第一口令通过后, 确认此月艮 务端合法, 客户端接收用户输入的第二验证口令, 并转发给服务端。 步骤 1405 ,该服务端若在预定的时间内接收到上述用户返回的第 二验证口令, 则使用上述第二口令对该第二验证口令进行验证, 验证 通过, 确认上述用户合法。 当此月艮务端为钓鱼网站时, 用户使用第一 -险证口令对该月艮务端返 回的第一口令验证时, 将会验证失败, 此时, 用户将不会把第二验证 口令返回给该服务端,这样,该服务端将不能得到上述第二验证口令; 即使该服务端使用步骤 1401 截获的用户名和第一动态口令假冒该用 户去访问真正的网站, 也不能向该网站提供上述第二验证口令, 进而 会被真正的网站拒绝登陆, 保证了合法用户的利益; 同时, 服务端利 用;)夺第二险证动态口令拆分为第一口令和第二口令的方法, 可以减少 月艮务端和用户端生成动态口令的次数, 在保证安全性的前提下简化了 认证过程。 本实施例的 艮务端通过将生成的动态口令拆分为两个口令, 将其 中一个口令发送给用户, 用以用户 -险证其是否合法, 使用另一个口令 再次-险证用户是否合法, 有效地防止了钓鱼网站等恶意网站利用截获 的用户密码进行登陆, 进而增强了系统的安全性, 保证了用户的信息 安全。 实施例 12 本实施例提供了一种基于动态口令的认证方法, 本实施例以用户 通过动态口令的认证方式登陆网上银行为例进行说明, 具体描述在用 户登陆的过程中动态口令服务端的认证流程, 其中, 在本实施例中, 以生成动态口令时釆用计次的方法为例进行说明, 参见图 15 , 该方法 包括: 步骤 1501 , 月艮务端接收用户输入的用户名、 第一动态口令; 在本实施例中, 在登陆认证流程开始前, 用户所持动态口令令牌 已经与该用户的用户名进行了绑定, 上述动态口令令牌具有唯一的编 号, 并且在服务端内部存储有唯一的与编号对应的种子, 动态口令令 牌可以 -据内置的动态口令算法生成动态口令, 该动态口令算法与月艮 务端生成动态口令的算法相同; 在本实施例中, 所使用的动态口令令牌带有按键, 当用户第一次 按下该按键生成的动态口令为第一动态口令; 用户通过客户端输入用户名、 第一动态口令, 并由客户端发送给 服务端; 在生成动态口令时对动态因子的选择可以釆用基于时间或事件 的方式, 在本实施例中, 以釆用基于事件的方式生成动态口令进行说 明, 优选地, 在本实施例中釆用计次的方法, 该计次指的是生成动态 口令的次数。 步骤 1502 J艮务端 居接收的用户名查找动态口令令牌的编号和 种子, 以及动态因子, 才艮据查找到的种子和动态因子生成第一-险证动 态口令 OTP 1; 其中, 月艮务端生成 OTP 1与动态口令令牌生成第一动态口令算法 相同, 釆用计次的方式, 并使用相同的算法生成动态口令, 其中, 使 用的算法可以是: HMAC-SHA 1、 MD5、 SHA- 1或 SHA-2等。 步骤 1503 , 服务端验证第一动态口令是否正确, 如果正确, 执行 步 4聚 204 , 如果不正确, 执行步 4聚 209; 其中, 在步 4聚 202中, 月艮务端生成 OTP 1 时, 可以生成一个或一 组动态口令作为 OTP 1 , 即 OTP 1 也可以为一组动态口令, 这组动态 口令是使用连续递增的动态因子计算的; 根据 OTP 1 中动态口令的个数不同, 服务端验证第一动态口令是 否正确的方法也不同, 具体 ¾口下: 当 OTP 1 为一个动态口令时, 服务端将第一动态口令与 OTP 1进 行比对, 如果相同, 则认为第一动态口令正确, 如果不相同, 则认为 第一动态口令不正确; 当 OTP 1为一组动态口令时, 服务端将这一组动态口令中的每个 动态口令分别与第一动态口令进行比对, 当 OTP 1 中有一个动态口令 与第一动态口令比对相同时, 则认为比对成功, 第一动态口令正确, 如果 OTP 1 中任一个动态口令都与第一动态口令不相同, 则认为 -险证 失败, 第一动态口令不正确; 在服务端-险证第一动态口令是否正确前, 还可以包括: 服务端判断第一动态口令是否使用过, 如果没有使用过, 验证第 一动态口令是否正确, 如果使用过, 向用户返回错误 4艮告; 当月艮务端-险证第一动态口令正确后, 还可以包括: 对月艮务端保存的动态因子进行 4爹正 ( 即更新动态因子)。 下面以 本实施例釆用计次的方式生成动态口令为例, 说明动态因子的修正过 程: 使用计次的方法生成动态口令, 即在生成动态口令时^ 1设备 (动 态口令令牌或 艮务端) 生成动态口令的次数作为动态因子, 第一次生 成动态口令时动态因子为计数值 1、 第二次生成动态口令时动态因子 为计数值 2 , 以此类 4舞, 每生成一次动态口令计数值增加 1 , 也可以 为增加一个预设步长。 由于动态口令令牌和 艮务端是单独计次的, 艮 容易产生计次不一致的现象, 因此需要对服务端所存储的计次值进行 修正; 设定在动态口令令牌生成第一动态口令时使用的动态因子为计 数值 100 , 此时在月艮务端中保存的动态因子为计数值 95 , 在月艮 算 OTP 1 时设定计数值浮动范围为 10 , 计算 95作为动态因子对应的 动态口令, 并将计数值逐渐增加到 95+ 10 , 并同时进行 OTP 1的计算, 每计算出一个 OTP 1 , 即与第一动态口令进行比对, 如不相同则增加 计算值继续进行 OTP 1 的计算。 由上可知, 月艮务端生成 OTP 1 时, 分 另 'J以计数值 95、 96 104、 105作为动态因子, 生成一组最多 1 1个 动态口令, 服务端将接收到的第一动态口令与上述 11 个动态口令进 行比对, 当月艮务端以计数值 100作为动态因子生成的动态口令时比对 成功, 则认为第一动态口令正确, 并停止 OTP 1的计算, 这时还要对 服务端存储的计数值进行修正, 将 100作为正确的计数值, 使得动态 口令令牌与服务端的计数值保持同步, 同时服务端将计数值 100增加 1 (或预定的步长) 保存, 作为下次计算动态口令的动态因子, 如果 上述一组 1 1 个 OTP 1 中没有与第一动态口令相同的, 则认为第一动 态口令不正确。 步骤 1504 , 月艮务端生成第二一险证动态口令 OTP2 , 并将 OTP2拆 分为第一口令和第二口令; 在本实施例中, 由于步骤 1503 中对动态因子进行了修正, 因此 本步骤中服务端生成的第二验证动态口令 OTP2为一个动态口令, 即 该口令与 OTP 1不同。 月艮务端将 OTP2拆分为第一口令和第二口令具体包括: 月艮务端将 OTP2中约定的部分作为第一口令, 剩余的部分作为第 二口令; 在本实施例中, 优选地, OTP2 为八位的数字, 将前三位取出作 为第一口令, 后五位作为第二口令; 步骤 1505 , 服务端将第一口令返回给客户端, 客户端输出第一口 令; 当客户端接收到第一口令后, 利用动态口令令牌生成第二动态口 令, 用户将该第二动态口令划分为第一-险证口令和第二 -险证口令, 本 实施例的划分规则与步骤 1504 中服务端的拆分规则相同, 该规则为 月艮务端预先与用户协商确定的, 因此, 本实施例的用户将第二动态口 令中的前三位作为第一验证口令, 剩余的后五位作为第二验证口令; 用户将第一口令与第一-险证口令进行比对, 如果相同, 则认为比 对成功, 将第二-险证口令发送给 艮务端, 如果不相同, 则认为比对失 败, 用户可以认为月艮务端不合法, 停止登陆操作; 步骤 1506 , 服务端判断是否在预定的时间内接收到第二验证口 令, 如果是, 执行步骤 1507 , 否则, 执行步骤 1509; 在本实施例中, 预定的时间为月艮务端接收第二 -险证口令的有效时 间, 月艮务端对在有效时间内接收的第二-险证口令进行-险证, 对没有在 约定的时间内发送的第二验证口令丢弃, 不进行第二验证口令的验 证, 对时间进行限制可以在一定程度上的防止黑客的攻击。 步骤 1507 , 服务端对第二验证口令进行验证, 如果正确, 执行步 l 1508 , 如果不正确, 执行步 4聚 1509; 在本实施例中, 服务端对第二验证口令验证的方法为: 服务端使 用第二口令与第二险证口令进行比对, 如果相同, 则认为比对成功, 执行步 4聚 1508 , 如果不相同, 则比对失败, 执行步 4聚 1509; 在本实施例中, 还可以加入对静态密码的 -险证过程, 防止动态口 令令牌丢失或被盗导致的非合法用户登入, 使得登陆过程更加安全, 具体为: 月艮务端在预先约定的时间内接收到用户发送的第二-险证口令 和静态密码, 服务端对静态密码和第二验证口令分别进行验证, 如果 全部正确, 则执行步 4聚 1508 , 否则, 执行步 4聚 1509。 步骤 1508 , 用户身份合法, 允许其登陆,可以开始进行网上交易; 步骤 1509 , 返回错误报告; 在本实施例中, 上述返回错误 4艮告包括如下情况: 在步 4聚 1503 中 艮务端判断第一动态口令不正确时, 返回第一动 态口令错误 4艮告, 4艮告中指明动态口令令牌不合法或动态因子误差过 大的信息; 在步骤 1505 中未在预先约定的时间内接收到第二-险证口令时, 返回接收第二验证口令超时的报告信息; 在步骤 1507 中服务端判断第二验证口令不正确时, 返回登陆失 败的 艮告信息。 在本实施例中, 生成动态口令可以釆用如下算法: HMAC-SHA 1、 MD5、 SHA- 1或 SHA-2等, 其中, 月艮务端生成 OTP 1与动态口令令牌 生成第一动态口令、 月艮务端生成 OTP2与动态口令令牌生成第二动态 口令的算法相同。 本实施例的月艮务端以计次的方式生成动态因子, 并基于该动态因 子生成动态口令, 通过将生成的动态口令拆分为两个口令, 将其中一 个口令发送给用户, 用以用户 -险证其是否合法, 使用另一个口令再次 -险证用户是否合法, 有效地防止了钓鱼网站等恶意网站利用截获的用 户密码进行登陆,进而增强了系统的安全性,保证了用户的信息安全; 同时, 本实施例通过对 艮务端的改进, 使得普通的动态口令令牌仍适 用, 用户通过该动态口令令牌可以对月艮务端的合法性进行-险证, 防止 用户误入钓鱼网站而遭受损失, 增加了动态口令的安全性。 实施例 13 本实施例提供了一种基于动态口令的认证方法, 本实施例以用户 通过动态口令的认证方式登陆网上银行为例进行说明, 具体描述在用 户登陆的过程中动态口令服务端的认证流程, 其中, 在本实施例以生 成动态口令时釆用计时的方法为例进行说明,参见图 16 ,该方法包括: 步 4聚 1601 , 月艮务端接收用户输入的用户名、 第一动态口令; 在本实施例中, 在登陆认证流程开始前, 用户所持动态口令令牌 已经与该用户的用户名进行了绑定, 上述动态口令令牌具有唯一的编 号, 并且在服务端内部存储有唯一的与编号对应的种子, 动态口令令 牌可以 -据内置的动态口令算法生成动态口令, 该动态口令算法与月艮 务端生成动态口令的算法相同; 在本实施例中, 所使用的动态口令令牌带有按键, 当用户第一次 按下按键生成的动态口令为第一动态口令; 用户通过客户端输入用户名和第一动态口令, 并由客户端发送给 服务端; 在生成动态口令时对动态因子的选择可以釆用基于时间或事件 的方式, 在本实施例中, 以釆用基于时间的方式生成动态口令进行说 明。 步骤 1602 J艮务端 居接收的用户名查找动态口令令牌的编号和 种子, 以及动态因子, 生成第一-险证动态口令 OTP 1 ; 其中, 月艮务端生成 OTP 1与动态口令令牌生成第一动态口令算法 相同, 釆用计时的方式, 并使用相同的算法生成动态口令, 其中, 动 态口令的生成算法可以是: HMAC-SHA 1、 MD5、 SHA- 1或 SHA-2等。 步骤 1603 , 服务端验证第一动态口令是否正确, 如果正确, 执行 步 4聚 1604 , 如果不正确, 执行步 4聚 1609; 其中, 在步 4聚 1602 中, 月艮务端生成 OTP 1 时, 可以生成一个或 一组动态口令作为 OTP 1 , 即 OTP 1也可以为一组动态口令; 月艮务端一险证第一动态口令是否正确, 具体的包括: 当 OTP 1 为一个动态口令时, 服务端将第一动态口令与 OTP 1进 行比对, 如果相同, 则认为第一动态口令正确, 如果不相同, 则认为 第一动态口令不正确; 当 OTP 1为一组动态口令时, 这组动态口令使用的动态因子 (计 时时间 ) 为一个时间窗 (后面将描述具体实现办法), 服务端将该组 动态口令分别与第一动态口令进行比对, 当 OTP 1 中有一个动态口令 与第一动态口令比对相同时, 则认为比对成功, 第一动态口令正确, 如果 OTP 1 中任一个动态口令都与第一动态口令不相同, 则认为 -险证 失败, 第一动态口令不正确; 在服务端-险证第一动态口令是否正确前, 还可以包括: 服务端判断第一动态口令是否使用过, 如果没有使用过, 验证第 一动态口令是否正确, 如果使用过, 向用户返回错误 4艮告; 当服务端-险证第一动态口令为正确后, 还可以包括: 对月艮务端保存的动态因子进行 4爹正 ( 即更新动态因子)。 下面以 本实施例釆用计时的方式生成动态口令为例, 说明 4爹改动态因子的过 程: 使用计时的方法生成动态口令, 即在生成动态口令时将设备 (动 态口令令牌或月艮务端) 生成动态口令的时间作为动态因子, 本例子中 以一分钟为一个计时单位作为动态因子生成动态口令为例进行说明, 一般情况下, 动态口令令牌在初始^ ^时设定一个初始时间, 例如为 2000年 1 月 1 日 00时 00分, 当我^!在 2000年 1 月 1 日 01 时 00分 生成动态口令时, 动态口令令牌或月艮务端使用 2000年 1月 1 日 01 时 00分与初始时间 2000年 1 月 1 日 00 时 00分 4目减得到 60分, 使用 60作为动态因子生成动态口令,但是由于动态口令令牌和服务端是单 独计时的, 经常会发生计时不同步的情况, 因此需要对时间因子进行 4爹正, 上述爹正方法如下: 设定令牌与服务端设定的初始时间为 2000年 1 月 1 日 00 时 00 分, 在动态口令令牌计时时间为 2000年 1 月 1 日 01 时 00分生成动 态口令,此时动态口令令牌使用的动态因子为 60 ,而服务端生成 OTP 1 时, 由于计时和数据传输的误差, 此时服务端基准时间为 2000 年 1 月 1 日 01 时 02分, 即动态因子应为 62 , 在月艮务端生成动态口令时对 其设定一个时间的浮动范围, 例如 ±2分, 这个浮动范围在本实施例中 称为时间窗, 使用 62±3生成一组最多 7个 OTP 1 , 即服务端使用的动 态因子分别为 59、 60、 61、 62、 63、 64、 65 , 使用这些动态因子逐一 的生成 OTP 1 并与第一动态口令进行比对, 当第一个动态因子 59 生 成的 OTP 1 比对不成功时, 使用下一个动态因子 60 继续生成 OTP 1 并与第一动态口令进行比对, 本实施例中, 当动态因子为 60 时, 第 一动态口令 -险证正确, 这时得到正确的动态因子, 则将动态因子更新 为 60 , 并可以计算出月艮务端与动态口令令牌之间的计时偏移为 -2分, 在下次对动态口令计算时, 获取月艮务端的系统时间后, 需要加上这个 偏移值, 以得到与动态口令令牌同步的时间作为基准时间, 其中, 基 准时间为月艮务端系统时间与计时偏移之和, 也可成为与动态口令令牌 同步后的计时时间。 需要说明的是, 在利用计时的方式生成动态口令时, 可以以每一 分钟作为一个动态因子进行动态口令的计算, 也可以为每 30 秒或每 一秒钟为一个单位进行动态口令的计算, 上述实施例以每一分钟为一 个单位进行动态口令的计算为例进行说明, 具体应用中对动态因子时 间单位的规定可以根据安全性及计算精度进行确定。 步骤 1604 , 月艮务端生成第二一险证动态口令 OTP2 , 并将 OTP2拆 分为第一口令和第二口令; 在本实施例中, 由于步骤 1603 中对动态因子进行了修正, 因此 本步骤中月艮务端生成的第二-险证动态口令 OTP2为一个动态口令。 服务端将 OTP2拆分为第一口令和第二口令具体的包括: 月艮务端将 OTP2中约定的部分作为第一口令, 剩余的部分作为第 二口令; 在本实施例中, 优选地, OTP为八位的数字, 将前三位取出作为 第一口令, 后五位作为第二口令; 在服务端生成 OTP2 时, 还需要注意的是, OTP2 与 OTP 1 不能 相同, 避免由于与 OTP2生成时由于时间过近而相同而造成的安全漏 洞, 如发生上述时间过近的情况, 则可以将时间因子增加一个步长生 成 OTP2 , 避免发生与 OTP 1相同的情况。 其中, 为了防止下一步服务端返回第一口令给客户端时因网络延 迟造成认证失败, 服务端生成动态口令 OTP2还包括一种实现方法, 月艮务端生成的动态口令 OTP2为一组动态口令, 例如, 在步骤 303 中, 校正动态因子后, 确定时间偏移为 -2分, 则确定生成 OTP2的时间为 同步后的月艮务端时间再加上一个步长,即为 2000年 1 月 1 日 01 时 00 加上 1分钟, 计算动态因子应为 61 , 为了能够生成一组动态口令, 增 力口一个向后偏移 ό 日寸间窗为 +5 , 贝' J矛】用 61、 62、 63、 64、 65、 66 , 生成一组共 6个动态口令 OTP2; 如上述方法生成一组共 6个 OTP2 , 还需^ 1上述一组 6个动态口 令 OTP2 中的每一个 OTP2拆分为一个第一口令和一个第二口令, 共 可以得到 6组第一口令和第二口令, 拆分方法与上述拆分方法相同, 这里不再赘述; 步骤 1605 , 服务端将第一口令返回给客户端, 客户端输出第一口 令; 客户端接收到 OTP2后, 利用动态口令令牌生成第二动态口令, 用户将该第二动态口令划分为第一验证口令和第二验证口令, 本实施 例的划分规则与步骤 304 中服务端的拆分规则相同, 该规则为服务端 预先与用户协商确定的, 因此, 本实施例的用户将第二动态口令中的 前三位作为第一验证口令, 剩余的后五位作为第二验证口令; 用户将第一口令与第一-险证口令进行比对, 如果相同, 则认为比 对成功, 将第二-险证口令发送给 艮务端, 如果不相同, 则认为比对失 败, 用户可以认为月艮务端不合法, 停止登陆操作; 其中, 还需要说明的是, 当使用计时的方法生成动态口令时 (使 用时间因子作为动态因子), 用户接收到服务端发送的第一口令时, 需在规定的时间内利用动态口令令牌生成第二动态口令, 原因如下: 动态口令令牌和服务端都是釆用单独计时的方式, 在认证的过程 中, 月艮务端生成 OTP2先于动态口令令牌生成第二动态口令, 因此月艮 务端生成 OTP2 和动态口令令牌生成第二动态口令的时间因子不一 样, 致使动态口令不一样, 因此需使用改进办法: 在第一动态口令比 对成功后, 对时间进行修正以达到动态口令令牌和服务端时间同步, 将此时间作为基准时间, 并设定一个时间段, 例如一分钟, 将基准时 间并延长一分钟的时间内作为时间因子生成动态口令 OTP2 , 动态口 令 OTP2为一个动态口令,即在这一分钟内生成的动态口令是相同的。 月艮务端生成 OTP2后将其拆分为第一口令和第二口令, 并将第一口令 返回给用户, 用户此时应该在规定的时间内利用动态口令令牌生成第 二动态口令, 上述规定的时间小于一分钟, 则动态口令令牌生成的第 二动态口令与 OTP2应 4目同。 另夕卜, 本步 4聚还可以釆取如下的方式: 月艮务端每隔固定的时间生 成一个 OTP2 , 并将 OTP2 拆分后的第一口令返回给用户, 本实施例 以固定的时间为一分钟为例进行说明, 例如: 在月艮务端接收到第一动态口令并-险证为正确时, 设定时间为第 0 分钟, 此时生成 OTP2 , 优选地, 为了避免服务端生成的第一个 OTP2 由于与用户使用动态口令令牌生成第一动态口令时间过于接近而相 同, 月艮务端生成第一个 OTP2时, 使用当时时间的下一分钟作为动态 因子生成第一个 OTP2 , 并在此后的每一分钟内生成一个 OTP2 , 将 OTP2 拆分后得到的第一口令返回给用户, 防止用户接收或验证第一 口令的延迟, 其中, 月艮务端和动态口令令牌每一分钟时间段内生成的 动态口令相同, 可以釆用一分钟内的中间那一秒作为动态因子, 或设 定一分钟内其中某一秒作为动态因子。 在返回第一口令时, 需要对服 务端返回第一口令的次数进行限制, 即设定一个返回最大次数, 例如 当返回 10次用户未进行操作时, 通知用户超时未响应, -险证失败; 其中, 上述固定的时间可以为大于 0的时间, 并应该在安全范围 内; 当步 4聚 1604 中月艮务端生成一组多个动态口令 OTP2 时, 月艮务端 将拆分得到的多个第一口令发送给客户端, 此时, 用户将令牌显示的 第一 -险证口令与上述多个第一口令进行比对, 如果有一个比对成功, 即通过客户端向服务端返回第二验证口令。 步骤 1606 , 服务端是否在约定的时间内接收到第二验证口令, 如 果是, 执行步骤 1607 , 否则, 执行步骤 1609; 在本实施例中, 约定的时间为月艮务端接收第二 -险证口令的有效时 间, 月艮务端对在有效时间内接收的第二-险证口令进行-险证, 对没有在 约定的时间内发送的第二验证口令丢弃, 不进行第二验证口令的验 证, 对时间进行限制可以在一定程度上防止黑客的攻击。 步骤 1607 , 服务端对第二验证口令进行验证, 如果正确, 执行步 l 1608 , 如果不正确, 执行步 4聚 1609; 在本实施例中, 服务端对第二验证口令验证的方法为: 服务端使 用第二口令与第二险证口令进行比对, 如果相同, 则认为比对成功, 执行步 4聚 1608 , 如果不相同, 则比对失败, 执行步 4聚 1609; 当月艮务端生成一组多个第二-险证动态口令并拆分得到多个第二 口令时, 服务端对第二验证口令进行验证具体的为: 服务端使用多个 第二口令与第二验证口令进行比对, 如果所述第二口令中有一个与第 二 -险证口令相同即认为 -险证成功; 在本实施例中, 还可以加入对静态密码的 -险证过程, 防止动态口 令令牌丢失或被盗导致的非合法用户登入, 使得登陆过程更加安全, 具体为: 月艮务端在预先约定的时间内接收到用户发送的第二-险证口令 和静态密码, 服务端对静态密码和第二验证口令分别进行验证, 如果 全部正确, 则执行步 4聚 1608 , 否则, 执行步 4聚 1609。 步骤 1608 , 用户身份合法, 允许其登陆成功, 可以开始进行网上 交易; 步骤 1609 , 返回错误报告; 在本实施例中, 上述返回错误 4艮告的情况与实施例 12 相同, 这 里不再详述。 在本实施例, 生成动态口令可以釆用如下算法: HMAC-SHA 1、 MD5、 SHA- 1或 SHA-2等, 其中, 月艮务端生成 OTP 1与口令令牌生成 第一动态口令、 月艮务端生成 OTP2与口令令牌生成第二动态口令的算 法相同。 本实施例的月艮务端以计时的方式生成动态因子, 基于该动态因子 生成动态口令, 通过将生成的动态口令拆分为两个口令, 将其中一个 口令发送给用户, 用以用户 -险证其是否合法, 使用另一个口令再次-险 证用户是否合法, 有效地防止了钓鱼网站等恶意网站利用截获的用户 密码进行登陆, 进而增强了系统的安全性, 保证了用户的信息安全; 同时, 本实施例通过对 艮务端的改进, 使得普通的动态口令令牌仍适 用, 用户通过该动态口令令牌可以对月艮务端的合法性进行-险证, 防止 用户误入钓鱼网站而遭受损失, 增加了动态口令的安全性。 实施例 14 本实施例提供了一种基于动态口令的认证装置, 参见图 17 , 该装 置包括: 第一生成模块 1701 , 用于接收用户发送的用户名和第一动态口 令, 并根据用户名查找对应的种子和动态因子, 根据上述种子和动态 因子生成第一验证动态口令; 第一-险证模块 1702 , 用于使用第一生成模块 1701生成的第一-险 证动态口令 -险证第一动态口令; 第二生成模块 1703 , 用于第一验证模块 1702验证第一动态口令 通过后, 生成第二-险证动态口令; 拆分与发送模块 1704 , 用于按照预设规则将第二生成模块 403 生成的第二验证动态口令拆分为第一口令和第二口令, 将第一口令返 回给该用户; 第二-险证模块 1705 ,用于在预定的时间内接收到用户返回的第二 验证口令后, 使用拆分与发送模块 1704 拆分的第二口令对第二验证 口令进行-险证, -险证通过, 确认该用户合法。 优选地, 该装置还包括: 第三验证模块, 用于接收用户输入的静态密码, 验证静态密码是 否正确, 如果正确, 触发第二验证模块 1705 对第二验证口令进行验 证; 否则, 拒绝用户登陆。 其中, 本实施例中的认证装置通过客户端与用户进行交互, 该认 证装置可以具体为实施例 1 1、 12或 13 中的月艮务端, 该认证装置上预 先存储有用户名, 以及与该用户名对应的动态口令令牌的编号、 种子 和动态因子, 同时还存储有生成动态口令的算法, 以及将生成的动态 口令拆分为两个口令的拆分规则等, 这些信息均可以参考实施例 12 或 13 中对应的信息实现, 这里不再详述。 第一生成模块 1701 生成的第一 -险证动态口令可以是一个或一组 动态口令; 当第一生成模块 1701 生成的是一个动态口令时, 第一-险 证模块 1702对第一动态口令进行验证具体为: 第一验证模块 1702将 第一动态口令与上述第一生成模块 1701 生成的动态口令进行比对, 如果相同, 则验证成功, 如果不相同, 则验证第一动态口令不正确; 当第一生成模块 1701 生成的是一组动态口令时, 第一-险证模块 1702对第一动态口令进行-险证具体的为: 第一-险证模块 1702将第一 动态口令与上述第一生成模块 1701 生成的一组动态口令逐个进行比 对,如果其中有一个动态口令与第一动态口令相同,则认为比对成功, -险证第一动态口令正确, 否则, 第一动态口令不正确; 第一-险证模块 1702 生成第一 -险证动态口令前, 还可以包括, 第 一验证模块 1702 判断第一动态口令是否使用过, 如果没有使用过, -险证第一动态口令是否正确, 如果使用过, 向用户返回错误 4艮告; 第一-险证模块 1702 -险证第一动态口令正确后, 还可以包括, 对 动态因子进行 4爹正, 具体^ ί'爹改方法与实施例 12或 13 中的方法相同, 这里不再详述; 第一生成模块 1701生成第一-险证动态口令和第二生成模块 1703 生成第二险证动态口令的算法可以是: HMAC-SHA 1、 MD5、 SHA- 1 或 SHA-2等; 第二生成模块 1703 , 还可以包括当第一-险证模块 1702 -险证第一 动态口令通过后, 生成一组多个第二-险证动态口令; 当第二生成模块 1703 生成一组多个第二 -险证动态口令时, 拆分 与发送模块 1704 将第二-险证动态口令按预设的规则拆分为第一口令 和第二口令具体为: 拆分与发送模块 1704 将一组多个第二-险证动态 口令按预设的规则拆分为多个第一口令和第二口令; 当第二生成模块 1703 生成一组多个第二 -险证动态口令时, 第二 验证模块 1705 对第二验证口令进行验证时具体为: 第二验证模块 1705使用多个第二口令与第二验证口令进行比对,当其中有一个第二 口令与第二险证口令相同时, 即认为 -险证成功。。 本实施例的认证装置通过将生成的动态口令拆分为两个口令, 将 其中一个口令发送给用户, 用以用户 -险证其是否合法, 使用另一个口 令再次-险证用户是否合法, 有效地防止了钓鱼网站等恶意网站利用截 获的用户密码进行登陆, 进而增强了系统的安全性, 保证了用户的信 息安全。 从以上的描述中, 可以看出, 本发明上述的实施例实现了如下技 术效果: 通过将动态口令拆分为两个口令, 月艮务端和用户可以进行更有保 障的双向认证, 认证更可靠性, 有效地防止了恶意网站的攻击, 以及 防止了非法用户通过截获的用户信息登陆月艮务端。 需要说明的是, 在附图的流程图示出的步骤可以在诸如一 - 机可执行指令的计算机系统中执行, 并且, 虽然在流程图中示出了逻 辑顺序, 但是在某些情况下, 可以以不同于此处的顺序执行所示出或 描述的步 4聚。 通过以上的实施方式的描述, 所属领域的技术人员可以清楚地了 解到本发明可借助软件加必需的通用硬件的方式来实现, 当然也可以 通过硬件, 但很多情况下前者是更佳的实施方式。 基于这样的理解, 本发明的技术方案本质上或者说对现有技术 丈出贡献的部分可以以 软件产品的形式体现出来, 该计算机软件产品存储在可读取的存储介 质中, 如计算机的软盘, 硬盘或光盘等, 包括若千指令用以使得一台 计算机设备 (可以是个人计算机, 服务器, 或者网络设备等) 执行本 发明各个实施例所述的方法。 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并 不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范 围内, 可轻易想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护范围应所述以权利要求的保护范围为准。

Claims

权 利 要 求 书
1. 一种认证方法, 其特征在于, 所述方法包括:
服务端接收用户端发送的用户数据信息和第一动态口令; 所述月艮务端 居用户数据信息生成第一-险证动态口令, 所述艮务端才艮据所述第一-险证动态口令 -险证所述第一动态口令, -险证通过后生成第二-险证动态口令,
所述月艮务端将所述第二验证动态口令或第一口令发送给所述用户 端, 其中所述第一口令是由所述服务端将所述第二验证动态口令按照 预设的规则拆分为第一口令和第二口令后获得的,
若所述月艮务端将所述第二验证动态口令发送给所述用户端, 则 所述月艮务端若在预定的时间内接收到来自所述用户端的第三 动态口令, 则对所述第三动态口令进行验证, 验证通过后, 则用 户端合法;
所述服务端利用自身生成的第三验证动态口令对接收到来自 用户端的加密的密文信息进行解密得到明文信息, 判断所述明文 信息与交易信息是否一致, 其中, 所述用户数据信息包括所述交 易信息, 如果一致, 则执行交易, 其中所述密文信息为所述用户 端对接收到的第二验证动态口令通过后, 利用所述第三动态口令 对所述交易信息加密得到的;
若所述月艮务端将所述第一口令发送给所述用户端, 则 则所述服务端在预定的时间内接收到所述用户端返回的第二 动态口令, 则使用所述第二口令对第二动态口令进行验证, 验证 通过后则用户端合法; 或
所述服务端利用所述第二口令对接收到的来自用户端的加密 的密文信息进行解密后得到明文信息, 判断所述明文信息与交易 信息是否一致, 其中, 所述用户数据信息包括所述交易信息, 如 果一致, 则执行交易, 其中, 所述密文信息为用户端接收到用户 比对所述第一口令和所述用户端自身生成的第二动态口令中的相 应数据一致的确认信息后, 使用所述第二动态口令中的剩余数据 部分作为第三口令, 使用所述第三口令对所述交易信息加密得到 的。
2. 根据权利要求 1所述的方法, 其特征在于, 所述服务端将所述第一口 令发送给所述用户端为:
所述服务端将所述第一口令和所述交易信息发送给所述用户端。
3. 居权利要求 1所述的方法, 其特征在于, 所述艮务端将所述第二-险 证口令或第一口令发送给所述用户端之后, 所述方法还包括:
若所述月艮务端将所述第二 -险证口令发送给所述用户端, 则所述用 户端在对接收到的所述第二验证动态口令进行验证, 且验证正确后, 所述用户端发送所述第三动态口令;
若所述月艮务端将所述第一口令发送给所述用户端, 则所述用户端 输出所述第一口令给用户确认, 所述用户端在所述用户对所述第一口 令比对正确后接收所述用户发送的第二验证口令, 并将所述第二验证 口令发送给所述艮务端。
4. 居权利要求 1所述的方法, 其特征在于, 所述生成第二 -险证动态口 令包括:
更新动态因子;
使用更新后的动态因子生成所述第二-险证动态口令。
5. 根据权利要求 4所述的方法, 其特征在于, 所述生成第二验证动态口 令包括:
使用基于时间或事件的方式生成所述第二-险证动态口令, 其中, 当使用基于事件的方式生成第二验证动态口令时, 所述更 新动态因子包括:
将所述动态因子设置为所述用户端生成所述第一动态口令时 所使用的第一动态因子, 其中, 所述第一动态因子是所述用户端 生成所述第一动态口令时的计数值; 将所述动态因子增加一个预定的步长, 以作为所述更新后的 动态因子;
当使用基于时间的方式生成第二验证动态口令时, 所述更新 动态因子包括:
将所述动态因子设置为所述用户端生成所述第一动态口令时 所使用的第一动态因子, 其中, 所述第一动态因子是所述用户端 生成所述第一动态口令时的计时时间与预设的所述用户端的初始 时间之间的差值;
根据所述动态因子更新计时偏移, 其中, 所述计时偏移是生 成第二险证动态口令的实体的当前计时时间与所述用户端的当前 计时时间之间的差值;
才艮据所述计时偏移、 所述实体生成所述第二验证动态口令时 的计时时间和预设的所述实体的初始时间来生成所述更新后的动 态因子。
6. 根据权利要求 5所述的方法, 其特征在于, 当使用基于时间的方式生 成所述第二验证动态口令时, 所述艮务端将所述第二验证动态口令发 送给所述用户端包括:
每隔固定的时间生成一个动态口令, 并将生成的动态口令作为所 述第二验证动态口令发送给所述用户端, 以使对当前发送的第二验证 动态口令进行-险证。
7. 根据权利要求 1所述的方法, 其特征在于,
对所述第一动态口令进行验证包括:
生成第一-险证动态口令;
判断所述第一动态口令是否与所述第一验证动态口令相同, 若相同, 则所述第一动态口令正确; 或者
对所述第一动态口令进行验证包括:
生成第一组-险证动态口令;
判断所述第一组验证动态口令中是否存在一个验证动态口令 与所述第一动态口令相同, 若存在, 则所述第一动态口令正确。
8. 根据权利要求 1所述的方法, 其特征在于, 所述方法还包括: 所述服 务端在预定的时间内接收来自所述用户端的第三动态口令时,
在所述预定的时间内还接收到来自所述用户端的静态密码, 以便 在-险证所述第三动态口令和所述静态密码都正确的情况下判断用户登 录成功,
所述月艮务端使用所述第二口令对所述第二验证口令进行-险证前, 所述服务端接收所述用户输入的静态密码;
验证所述静态密码是否正确, 如果正确, 执行所述使用所述第二 口令对所述第二验证口令进行验证的步骤; 否则, 拒绝所述用户登陆。
9. 才艮据权利要求 5所述的方法, 其特征在于, 使用基于时间的方式生成 第二验证动态口令具体为: 所述月艮务端生成一组多个第二-险证动态口令, 则
所述月艮务端将所述一组多个第二-险证动态口令或一组多个第一口 令发送给所述用户端, 其中所述一组多个第一口令是由所述月艮务端将 所述一组多个第二验证动态口令按照预设的规则拆分为多个第一口令 和第二口令后获得的。
10. 根据权利要求 1所述的方法, 其特征在于, 所述服务端接收用户发送 的用户信息和第一动态口令后还包括:
所述服务端判断所述第一动态口令是否使用过, 如果是, 则向用 户返回错误报告, 如果否, 则执行所述服务端根据用户数据信息生成 第一-险证动态口令的步骤。
11. 根据权利要求 1所述的方法, 其特征在于, 所述按照预设规则将所述 第二-险证动态口令拆分为第一口令和第二口令具体为:
从所述第二验证动态口令中提取约定的部分作为所述第一口令, 剩余的部分作为所述第二口令。
12. 根据权利要求 1所述的方法, 其特征在于, 所述方法还包括: 将所述 服务端在预定的时间后接收到来自所述用户端的所述第三动态口令或 所述第二动态口令丢弃。
3. —种认证系统, 其特征在于, 所述认证系统包括月艮务端和用户端, 其 中, 所述月艮务端包括:
接收模块, 用于接收所述用户端发送的用户数据信息和第一动态 令; 生成模块或生成拆分模块, 其中, 所述生成模块用于在所述服务 端才艮据所述第一-险证动态口令 -险证所述第一动态口令通过后生成第二 验证动态口令, 还用于生成第三验证动态口令; 所述生成拆分模块, 用于在所述艮务端 居所述第一-险证动态口令 -险证所述第一动态口令 通过后生成第二验证动态口令, 并将所述第二验证动态口令按照预设 的规则拆分为第一口令和第二口令;
发送模块, 用于将所述第二验证动态口令或第一口令发送给所述 用户端;
若所述发送模块用于将所述第二验证动态口令发送给所述用户 端, 则:
所述接收模块还用于接收来自用户端的第三口令, 所述月艮务 端还包括-险证模块, 用于 -险证所述接收模块接收到的来自用户端 的第三口令, -险证通过后, 所述用户端合法;
所述接收模块还用于接收来自用户端的加密的密文信息, 所 述服务端还包括解密模块, 用于解密所述接收模块接收到的来自 用户端的加密的密文信息得到明文信息; 判断模块, 用于判断所 述明文信息, 与所述交易信息是否一致, 执行模块, 用于在判断 所述明文信息与所述交易信息一致时, 执行交易;
若所述发送模块用于将所述第一口令发送给所述用户端, 则: 所述接收模块还用于接收用户端返回的第二动态口令, 所述 月艮务端还包括-险证模块, 用于使用所述第二口令对所述第二动态 口令进行-险证, -险证通过后, 所述用户端合法;
所述接收模块还用于接收来自用户端的密文信息, 所述用户 端还包括解密模块, 用于解密所述接收模块接收到的来自用户端 的加密的密文信息得到明文信息, 其中, 所述密文信息为用卢 接收到用户比对所述第一口令和所述用户端自身生成的第二动态 口令中的相应数据一致的确认信息后, 使用所述第二动态口令中 的剩余数据部分作为第三口令, 使用所述第三口令对所述交易信 息加密得到的; 判断模块, 用于判断所述明文信息与所述交易信 息是否一致, 执行模块用于在判断模块判断所述明文信息与所述 交易信息一致时, 执行交易。
14. 居权利要求 13所述的认证系统, 其特征在于, 所述发送模块用于将 所述第一口令发送给所述用户端为:
所述发送模块用于将所述第一口令和所述交易信息发送给所述用 户端。
15. 居权利要求 13所述的认证系统, 其特征在于, 若所述艮务端将所述 第二验证口令发送给所述用户端, 则所述用户端包括验证发送模块, 用于所述用户端在对接收到的所述第二-险证动态口令进行-险证, JL^ 证正确后, 所述用户端发送所述第三动态口令;
若所述月艮务端将所述第一口令发送给所述用户端, 则所述客户端 包括:
输出模块, 用于所述用户端输出所述第一口令给用户确认; 比对发送模块, 用于所述用户端在所述用户对所述第一口令比对 正确后接收所述用户发送的第二验证口令, 并将所述第二验证口令发 送给所述艮务端。
16. 根据权利要求 13所述的认证系统, 其特征在于, 还包括更新模块, 用 于更新动态因子, 相应地, 所述生成模块还用于使用更新后的动态因 子生成所述第二-险证动态口令。
17. 根据权利要求 16所述的认证系统, 其特征在于, 所述生成模块用于使 用基于时间或事件的方式生成所述第二-险证动态口令,
当所述生成模块为使用基于时间生成所述第二验证动态口令时, 所述更新模块用于将所述动态因子设置为所述用户端生成所述第一动 态口令时所使用的第一动态因子, 其中, 所述第一动态因子是所述用 户端生成所述第一动态口令时的计数值; 将所述动态因子增加一个预 定的步长, 以作为所述更新后的动态因子; 当所述生成模块为使用基于时间的方式生成第二-险证动态口令 时, 所述更新更新模块用于:
将所述动态因子设置为所述用户端生成所述第一动态口令时 所使用的第一动态因子, 其中, 所述第一动态因子是所述用户端 生成所述第一动态口令时的计时时间与预设的所述用户端的初始 时间之间的差值;
根据所述动态因子更新计时偏移, 其中, 所述计时偏移是生 成第二险证动态口令的实体的当前计时时间与所述用户端的当前 计时时间之间的差值;
才艮据所述计时偏移、 所述实体生成所述第二验证动态口令时 的计时时间和预设的所述实体的初始时间来生成所述更新后的动 态因子。
18. 居权利要求 17所述的认证系统, 其特征在于, 所述生成模块使用基 于时间的方式生成第二-险证动态口令时, 所述发送模块用于将所述第 二验证动态口令发送给所述用户端为所述发送模块每隔固定的时间生 成一个动态口令, 并将生成的所述动态口令作为所述第二验证动态口 令发送给所述用户端, 以使对当前发送的第二验证动态口令进行验证。
19. 根据权利 13所述的认证系统, 其特征在于, 所述服务端还包括判断执 行模块, 用于在所述服务端接收用户发送的用户信息和第一动态口令 后,
判断所述第一动态口令是否使用过, 如果是, 则向用户返回错误 艮告, 如果否, 则执行所述月艮务端 居用户数据信息生成第一-险证动 态口令的步 4聚。
20. 居权利要求 13所述的认证系统, 其特征在于, 所述生成拆分模块, 将所述第二验证动态口令按照预设的规则拆分为第一口令和第二口令 具体为从所述第二验证动态口令中提取约定的部分作为第一口令, 剩 余的部分作为第二口令。
PCT/CN2010/078238 2009-10-30 2010-10-29 认证方法及系统 WO2011050745A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/502,772 US8789166B2 (en) 2009-10-30 2010-10-29 Verification method and system thereof

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
CN 200910235952 CN101699820B (zh) 2009-10-30 2009-10-30 动态口令的认证方法和装置
CN200910235952.0 2009-10-30
CN200910244640.6 2009-12-31
CN2009102446406A CN101741567B (zh) 2009-12-31 2009-12-31 基于动态口令的认证方法和装置
CN201010034164.8 2010-01-13
CN201010034156.3 2010-01-13
CN2010100341563A CN101777983B (zh) 2010-01-13 2010-01-13 交易签名方法、认证服务器及系统
CN2010100341648A CN101777984B (zh) 2010-01-13 2010-01-13 一种安全交易的方法和系统

Publications (1)

Publication Number Publication Date
WO2011050745A1 true WO2011050745A1 (zh) 2011-05-05

Family

ID=43921354

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2010/078238 WO2011050745A1 (zh) 2009-10-30 2010-10-29 认证方法及系统

Country Status (2)

Country Link
US (1) US8789166B2 (zh)
WO (1) WO2011050745A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103916254A (zh) * 2012-12-29 2014-07-09 中国移动通信集团黑龙江有限公司 一种动态认证行为分析方法及系统
US8789150B2 (en) 2011-09-22 2014-07-22 Kinesis Identity Security System Inc. System and method for user authentication
CN111126533A (zh) * 2020-01-08 2020-05-08 牛津(海南)区块链研究院有限公司 基于动态口令的身份认证方法、装置和动态令牌
CN114553504A (zh) * 2022-01-29 2022-05-27 重庆华唐云树科技有限公司 一种第三方安全登录方法

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
US9258124B2 (en) * 2006-04-21 2016-02-09 Symantec Corporation Time and event based one time password
US7995196B1 (en) 2008-04-23 2011-08-09 Tracer Detection Technology Corp. Authentication method and system
US9106645B1 (en) * 2011-01-26 2015-08-11 Symantec Corporation Automatic reset for time-based credentials on a mobile device
US20130238500A1 (en) * 2012-03-09 2013-09-12 Bank Of America Corporation Online merchant express payment using a dynamic time-dependent passcode generator
CN102843236B (zh) * 2012-09-12 2014-12-10 飞天诚信科技股份有限公司 一种动态口令的生成及认证方法与系统
GB2509322A (en) * 2012-12-28 2014-07-02 Securenvoy Plc Time-based two factor authentication
KR102015955B1 (ko) * 2013-03-27 2019-10-21 한화테크윈 주식회사 클라이언트 인증 방법
US9830437B2 (en) 2013-08-08 2017-11-28 Empire Technology Development Llc Automatic log-in function control
CN103731272B (zh) * 2014-01-06 2017-06-06 飞天诚信科技股份有限公司 一种身份认证方法、系统及设备
CN104378204B (zh) * 2014-04-21 2017-09-15 平顶山学院 基于组合模式的动态口令生成方法
US10716003B2 (en) 2014-11-24 2020-07-14 Nexmo, Inc. Identity and phone number verification
US9516480B2 (en) * 2014-11-24 2016-12-06 Nexmo Inc. Identity and phone number verification
US11615199B1 (en) * 2014-12-31 2023-03-28 Idemia Identity & Security USA LLC User authentication for digital identifications
US9842205B2 (en) 2015-03-30 2017-12-12 At&T Intellectual Property I, L.P. Time-varying passwords for user authentication
CN104852899B (zh) * 2015-04-03 2019-05-14 北京奇虎科技有限公司 一种otp种子的交换系统及方法
SG10201506058UA (en) * 2015-08-03 2017-03-30 Mastercard Asia Pacific Pte Ltd Method and system for website verification
CN106656907B (zh) * 2015-10-28 2021-03-02 阿里巴巴集团控股有限公司 用于认证的方法、装置、终端设备及系统
US9742761B2 (en) * 2015-11-10 2017-08-22 International Business Machines Corporation Dynamic authentication for a computing system
US9876783B2 (en) * 2015-12-22 2018-01-23 International Business Machines Corporation Distributed password verification
US20170208071A1 (en) * 2016-01-19 2017-07-20 Siu Hong Chui Method and system for real-time transaction enabler powered by interactive pattern exchange
CN107086908B (zh) 2016-02-15 2021-07-06 阿里巴巴集团控股有限公司 一种量子密钥分发方法及装置
CN107086907B (zh) 2016-02-15 2020-07-07 阿里巴巴集团控股有限公司 用于量子密钥分发过程的密钥同步、封装传递方法及装置
CN107347058B (zh) 2016-05-06 2021-07-23 阿里巴巴集团控股有限公司 数据加密方法、数据解密方法、装置及系统
CN107370546B (zh) 2016-05-11 2020-06-26 阿里巴巴集团控股有限公司 窃听检测方法、数据发送方法、装置及系统
CN107404461B (zh) 2016-05-19 2021-01-26 阿里巴巴集团控股有限公司 数据安全传输方法、客户端及服务端方法、装置及系统
US11064358B2 (en) * 2016-05-24 2021-07-13 Feitian Technologies Co., Ltd. One-time-password authentication method and device
CN107959567B (zh) 2016-10-14 2021-07-27 阿里巴巴集团控股有限公司 数据存储方法、数据获取方法、装置及系统
CN107959656B (zh) 2016-10-14 2021-08-31 阿里巴巴集团控股有限公司 数据安全保障系统及方法、装置
JP6579387B2 (ja) * 2016-11-25 2019-09-25 京セラドキュメントソリューションズ株式会社 電子機器
US10164778B2 (en) 2016-12-15 2018-12-25 Alibaba Group Holding Limited Method and system for distributing attestation key and certificate in trusted computing
KR102001516B1 (ko) * 2017-03-03 2019-07-18 주식회사 와임 분할 기능을 이용한 자동 인증 처리 방법 및 시스템
CN108667608B (zh) 2017-03-28 2021-07-27 阿里巴巴集团控股有限公司 数据密钥的保护方法、装置和系统
CN108667773B (zh) 2017-03-30 2021-03-12 阿里巴巴集团控股有限公司 网络防护系统、方法、装置及服务器
CN108736981A (zh) 2017-04-19 2018-11-02 阿里巴巴集团控股有限公司 一种无线投屏方法、装置及系统
CN107425977B (zh) * 2017-04-28 2018-07-31 北京海泰方圆科技股份有限公司 动态令牌时间同步方法和装置
US11847246B1 (en) * 2017-09-14 2023-12-19 United Services Automobile Association (Usaa) Token based communications for machine learning systems
CN109150891B (zh) * 2018-09-05 2020-03-17 北京深思数盾科技股份有限公司 一种验证方法、装置和信息安全设备
CN109450620B (zh) 2018-10-12 2020-11-10 创新先进技术有限公司 一种移动终端中共享安全应用的方法及移动终端
CN109829290A (zh) * 2019-01-17 2019-05-31 阳江核电有限公司 一种核电站工业计算机的登录系统及登录方法
CN109840404A (zh) * 2019-02-14 2019-06-04 阳江核电有限公司 一种基于事件同步算法的工业计算机登录方法和系统
US11194897B2 (en) * 2019-04-10 2021-12-07 Mastercard International Incorporated System and methods for generating and authenticating dynamic usernames replication
US11025658B2 (en) * 2019-05-03 2021-06-01 EMC IP Holding Company LLC Generating summaries of messages associated with assets in an enterprise system
US11429519B2 (en) 2019-12-23 2022-08-30 Alibaba Group Holding Limited System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive
CN112333154A (zh) * 2020-10-16 2021-02-05 四川九八村信息科技有限公司 一种基于动态密码进行权限控制方法及其血浆采集机

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037988A1 (en) * 2007-07-31 2009-02-05 Wen-Her Yang System and method of mutual authentication with dynamic password
CN101453458A (zh) * 2007-12-06 2009-06-10 北京唐桓科技发展有限公司 基于多变量的动态密码口令双向认证的身份识别方法技术
US20090185687A1 (en) * 2008-01-23 2009-07-23 John Wankmueller Systems and Methods for Mutual Authentication Using One Time Codes
CN101699820A (zh) * 2009-10-30 2010-04-28 北京飞天诚信科技有限公司 动态口令的认证方法和装置
CN101741567A (zh) * 2009-12-31 2010-06-16 北京飞天诚信科技有限公司 基于动态口令的认证方法和装置
CN101777983A (zh) * 2010-01-13 2010-07-14 北京飞天诚信科技有限公司 交易签名方法、认证服务器及系统
CN101777984A (zh) * 2010-01-13 2010-07-14 北京飞天诚信科技有限公司 一种安全交易的方法和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1142653C (zh) * 2000-04-28 2004-03-17 杨宏伟 动态口令认证系统及方法
CN101174953A (zh) 2007-03-27 2008-05-07 兰州大学 一种基于S/Key系统的身份认证方法
US8528064B2 (en) * 2007-06-22 2013-09-03 Springo Incorporated Web based system that allows users to log into websites without entering username and password information
CN101459513B (zh) 2007-12-10 2011-09-21 联想(北京)有限公司 一种计算机和用于认证的安全信息的发送方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037988A1 (en) * 2007-07-31 2009-02-05 Wen-Her Yang System and method of mutual authentication with dynamic password
CN101453458A (zh) * 2007-12-06 2009-06-10 北京唐桓科技发展有限公司 基于多变量的动态密码口令双向认证的身份识别方法技术
US20090185687A1 (en) * 2008-01-23 2009-07-23 John Wankmueller Systems and Methods for Mutual Authentication Using One Time Codes
CN101699820A (zh) * 2009-10-30 2010-04-28 北京飞天诚信科技有限公司 动态口令的认证方法和装置
CN101741567A (zh) * 2009-12-31 2010-06-16 北京飞天诚信科技有限公司 基于动态口令的认证方法和装置
CN101777983A (zh) * 2010-01-13 2010-07-14 北京飞天诚信科技有限公司 交易签名方法、认证服务器及系统
CN101777984A (zh) * 2010-01-13 2010-07-14 北京飞天诚信科技有限公司 一种安全交易的方法和系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789150B2 (en) 2011-09-22 2014-07-22 Kinesis Identity Security System Inc. System and method for user authentication
US9729540B2 (en) 2011-09-22 2017-08-08 Kinesis Identity Security System Inc. System and method for user authentication
CN103916254A (zh) * 2012-12-29 2014-07-09 中国移动通信集团黑龙江有限公司 一种动态认证行为分析方法及系统
CN111126533A (zh) * 2020-01-08 2020-05-08 牛津(海南)区块链研究院有限公司 基于动态口令的身份认证方法、装置和动态令牌
CN111126533B (zh) * 2020-01-08 2023-06-23 牛津(海南)区块链研究院有限公司 基于动态口令的身份认证方法、装置和动态令牌
CN114553504A (zh) * 2022-01-29 2022-05-27 重庆华唐云树科技有限公司 一种第三方安全登录方法
CN114553504B (zh) * 2022-01-29 2024-03-08 重庆华唐云树科技有限公司 一种第三方安全登录方法

Also Published As

Publication number Publication date
US20120210408A1 (en) 2012-08-16
US8789166B2 (en) 2014-07-22

Similar Documents

Publication Publication Date Title
WO2011050745A1 (zh) 认证方法及系统
US10116453B2 (en) Method for distributed trust authentication
US7895437B2 (en) Augmented single factor split key asymmetric cryptography-key generation and distributor
US7840993B2 (en) Protecting one-time-passwords against man-in-the-middle attacks
US7886345B2 (en) Password-protection module
US8132020B2 (en) System and method for user authentication with exposed and hidden keys
US8813181B2 (en) Electronic verification systems
US8332921B2 (en) Enhanced security for user instructions
US20080034216A1 (en) Mutual authentication and secure channel establishment between two parties using consecutive one-time passwords
WO2016065321A1 (en) Secure communication channel with token renewal mechanism
US11245514B1 (en) Blockchain delegation
US20220029819A1 (en) Ssl communication system, client, server, ssl communication method, and computer program
US11997210B2 (en) Protection of online applications and webpages using a blockchain
Patiyoot “Patiyoot” Cryptography Authentication Protocol for Computer Network
US20110231656A1 (en) System and methods for authenticating a receiver in an on-demand sender-receiver transaction

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10826108

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13502772

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10826108

Country of ref document: EP

Kind code of ref document: A1