WO2014040501A1 - 一种动态口令的生成及认证方法与系统 - Google Patents

一种动态口令的生成及认证方法与系统 Download PDF

Info

Publication number
WO2014040501A1
WO2014040501A1 PCT/CN2013/082714 CN2013082714W WO2014040501A1 WO 2014040501 A1 WO2014040501 A1 WO 2014040501A1 CN 2013082714 W CN2013082714 W CN 2013082714W WO 2014040501 A1 WO2014040501 A1 WO 2014040501A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
dynamic
dynamic password
factor
password
Prior art date
Application number
PCT/CN2013/082714
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
Application filed by 飞天诚信科技股份有限公司 filed Critical 飞天诚信科技股份有限公司
Priority to US14/423,537 priority Critical patent/US9350728B2/en
Publication of WO2014040501A1 publication Critical patent/WO2014040501A1/zh

Links

Images

Classifications

    • 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
    • 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
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • 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/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/61Time-dependent

Definitions

  • the invention belongs to the field of identity authentication, and in particular to a method and system for generating and authenticating a dynamic password.
  • Dynamic passwords are increasingly used in the field of identity authentication.
  • dynamic passwords are classified into time-type dynamic passwords, event-type dynamic passwords, and challenge-response dynamic passwords.
  • a normal time type dynamic password or a challenge response type dynamic password with time participation calculation can generate only one dynamic password in a dynamic password change period.
  • the password is authenticated by the authentication server, it cannot be reused. . If you want to perform authentication, you must wait for a period of time, wait until the next time period begins, and generate the next different dynamic password to proceed, which cannot meet the needs of multiple authentications in a short time;
  • the normal event type dynamic password when there is a dynamic token continuously generating a dynamic password without authentication with the server, the token and the server are out of synchronization, and the number of common event type dynamic passwords is a predictable dynamic factor, and there is a certain Security risks.
  • a method for dynamic password generation and authentication including:
  • the token receives the generate dynamic password command, and generates a first dynamic factor according to a time counted by the first timer inside the token;
  • S3 the token acquires current data from the first data group according to the first offset pointer, invokes a preset algorithm, and calculates a first dynamic password according to the first dynamic factor and the current data, and Determining whether the current data is the last data in the first group of data sets, and then setting the first offset pointer to an invalid state, otherwise pointing the first offset pointer to a next one of current data data;
  • the server receives the second dynamic password input by the user, and obtains a second dynamic factor according to the time counted by the second timer inside the server;
  • S5 Generate a set of dynamic factors according to the second dynamic factor and the authentication window value, to obtain an authentication window;
  • S6 Invoking the preset algorithm, calculating, according to the dynamic factor in the authentication window and each data in the second data group stored in the server, generating a set of dynamic passwords, and verifying whether the set of dynamic passwords exists and The dynamic password with the second dynamic password is the authentication pass, otherwise the authentication fails.
  • the first data group is consistent with the second data group, and includes a preset number of sequentially and different data
  • the current data is data pointed by the first offset pointer.
  • the generating the first dynamic factor according to the time counted by the first timer in the token in the step S1 is specifically: dividing the number of seconds counted by the first timer by the first preset duration value, Extracting the obtained quotient to obtain the first dynamic factor;
  • the second dynamic factor is obtained according to the time counted by the second timer in the server, specifically: dividing the number of seconds counted by the second timer by the first preset duration value, and obtaining the obtained The quotient is rounded to obtain the second dynamic factor.
  • the first offset pointer When the token is checked to a preset condition, the first offset pointer is initialized, where the token periodically monitors the time counted by the first timer, and the first preset is performed. a duration, initializing the first offset pointer;
  • the initializing the first offset pointer is specifically: pointing the first offset pointer to the first data in the first data group.
  • initializing the first offset pointer is specifically: after the token generates the first dynamic factor, determining the first dynamic factor and the first buffer area Whether the data is consistent, if not, initialize the first offset pointer;
  • the initializing the first offset pointer is specifically: pointing the first offset pointer to the first data in the first data group.
  • the step of calculating a set of dynamic passwords in the step S6 is specifically: calling the preset algorithm, respectively performing data obtained by combining each dynamic factor in the authentication window and each data in the second data Calculate to get the set of dynamic passwords.
  • step S6 specifically includes:
  • Step a calling the first dynamic factor in the authentication window in a preset order
  • Step b sequentially combining each data in the second data group with the invoked dynamic factor, and calling a preset algorithm to calculate the combined data to obtain the set of dynamic passwords;
  • Step c verifying whether there is a dynamic password consistent with the second dynamic password in the set of dynamic passwords, if the authentication is passed, otherwise step d is performed;
  • Step d determining whether the dynamic factor of the call is the last dynamic factor in the authentication window, if the authentication fails, otherwise calling the next dynamic factor, and returning to step b.
  • the method when it is verified that the dynamic password that is consistent with the second dynamic password exists in the set of dynamic passwords, the method further includes:
  • Step S7 The server invokes data in the second buffer area, and compares a dynamic factor corresponding to the dynamic password that is consistent with the second dynamic password with data in the second buffer area. If the value is greater than, the authentication passes. Step S8 is performed; if it is less, the authentication fails; if it is equal to, S9 is performed;
  • S8 Update the data in the second buffer area by using a dynamic factor corresponding to the dynamic password that is consistent with the second dynamic password, and set the second offset pointer to point to the second data group that is consistent with the second dynamic password.
  • the step further includes the step of prompting the user to input the transaction account number, the transaction amount, and the challenge code;
  • the step S4 further includes the step of generating a challenge code by the server
  • the calculating, according to the first dynamic factor and the current data, the first dynamic password in the step S3 is specifically:
  • step S6 the preset algorithm is invoked, and according to the dynamic factor in the authentication window and each data in the second data group stored in the server, generating a set of dynamic passwords is specifically:
  • the generating a set of dynamic passwords in the step S6 specifically includes:
  • the first partial dynamic password and the second partial dynamic password constitute the set of dynamic passwords.
  • the method when it is verified that the dynamic password that is consistent with the second dynamic password exists in the set of dynamic passwords, the method further includes:
  • a system for dynamic password generation and authentication comprising: a token and a server;
  • the token includes:
  • a first receiving module configured to receive a dynamic password command
  • a first generating module configured to: when the first receiving module receives the generate dynamic password command, generate a first dynamic factor according to a time counted by a first timer inside the token;
  • An operation module configured to initialize the first offset pointer once every first preset duration; or when determining that the first dynamic factor is inconsistent with data in the first buffer, And shifting the pointer to initialize, and updating the data in the first buffer area by using the first dynamic factor;
  • a first calculating module configured to acquire current data from the first data group according to the first offset pointer, invoke a preset algorithm, and calculate a first dynamic password according to the first dynamic factor and the current data;
  • a first determining module configured to determine, after the first computing module calculates the first dynamic password, whether the current data is the last data in the first data group;
  • a setting module configured to point the first offset pointer to a next data of current data in the first data group when the current data is not the last data; when the current data is the last data Setting the first offset pointer to an invalid state and waiting for initialization;
  • the server includes:
  • a second receiving module configured to receive a second dynamic password input by the user through the host
  • a second generating module configured to obtain a second dynamic factor according to a time counted by the second timer in the server; and generate a dynamic factor according to the second dynamic factor and the authentication window value to obtain an authentication window;
  • a second calculation module configured to invoke the preset algorithm, and generate and generate a dynamic password according to a dynamic factor in the authentication window and each data in the second data group stored in the server;
  • the verification module is configured to verify whether a dynamic password consistent with the second dynamic password exists in the set of dynamic passwords.
  • the second calculation module includes:
  • a first calling unit configured to invoke the preset algorithm and a first dynamic factor in the authentication window
  • a first combining unit configured to sequentially combine each dynamic factor in the authentication window with each data in the second data group
  • a first processing unit configured to calculate, by using the preset algorithm, each data obtained by combining the first combination unit to obtain the set of dynamic passwords.
  • the second calculation module includes:
  • a second calling unit configured to invoke the preset algorithm and sequentially invoke a dynamic factor in the authentication window
  • a second combining unit configured to combine each data in the second data group with the invoked dynamic factor
  • a second processing unit configured to calculate, by using the preset algorithm, data obtained by combining the combination unit to obtain the set of dynamic passwords
  • the verification module includes:
  • a first verification unit configured to verify whether a dynamic password consistent with the second dynamic password exists in the set of dynamic passwords calculated by the second processing unit
  • a first determining unit configured to: when the first verification unit verifies that the dynamic password that is consistent with the second dynamic password does not exist in the set of dynamic passwords, determine whether the invoked dynamic factor is in the authentication window The last dynamic factor, when it is judged that the current dynamic factor is not the last dynamic factor, calls the next dynamic factor, and the second combined unit works.
  • system further includes:
  • a comparison module configured to: when the verification module verifies that the dynamic password corresponding to the second dynamic password is included in the dynamic password, the dynamic factor corresponding to the dynamic password that is consistent with the second dynamic password The data in the second buffer area is compared. If it is greater than the authentication, the first update module works. If it is smaller, the authentication fails. If it is equal, the second judgment module works.
  • the first update module is configured to update data in the second buffer area by using a dynamic factor corresponding to the dynamic password that is consistent with the second dynamic password, and set a second offset pointer to point to the second data group Data corresponding to the dynamic password that is consistent with the second dynamic password;
  • the second determining module is configured to determine whether the order of the data corresponding to the dynamic password that is consistent with the second dynamic password in the second data group in the second data group is pointed at the second offset pointer After the data, the authentication is passed, and the second offset pointer is set to point to the data corresponding to the dynamic password in the second data group that is consistent with the second dynamic password, otherwise the authentication fails.
  • the second calculation module includes:
  • a searching unit configured to find, from the authentication window, a dynamic factor equal to or greater than data in the second buffer area
  • a third processing unit configured to combine a dynamic factor greater than the data in the second buffer area with each data in the second data group, and invoke the preset algorithm to separately perform data obtained by combining Calculating, obtaining a first partial dynamic password; combining a dynamic factor equal to the data in the second buffer area with each data subsequent to the data pointed to by the second offset pointer in the second data group, and calling the pre- An algorithm is configured to separately calculate each data to obtain a second partial dynamic password; and the first partial dynamic password and the second partial dynamic password are combined into the set of dynamic passwords.
  • system further includes:
  • a second update module configured to: when the verification module verifies that there is a dynamic password consistent with the second dynamic password in the set of dynamic passwords, use a dynamic factor corresponding to the dynamic password that is consistent with the second dynamic password Updating data in the second buffer area and pointing the second offset pointer to data in the second data group corresponding to the dynamic password that is consistent with the second dynamic password.
  • the first receiving module is further configured to receive data of a user input token
  • the second receiving module is further configured to receive data input by the user to the server through the host;
  • the second generation module is further configured to generate a challenge code.
  • the first calculation module includes:
  • a third combining unit configured to combine the first dynamic factor, the current data, and a token key with data of a user input token
  • a fourth processing unit configured to invoke the preset algorithm to calculate data obtained by combining the third combination unit to obtain the first dynamic password.
  • the solution provided by the present invention improves the security of the dynamic password authentication based on the time type dynamic token and the event type dynamic token, and satisfies the need for multiple times of identity authentication in a short time.
  • the authentication mode provides a variety of options during the identity authentication process.
  • FIG. 1 is a flowchart of a method for generating and authenticating a dynamic password according to Embodiment 1 of the present invention
  • FIG. 2 is a flowchart of another implementation process of a method for generating and authenticating a dynamic password according to Embodiment 1 of the present invention
  • FIG. 3 is a flowchart of still another implementation process of a method for generating and authenticating a dynamic password according to Embodiment 1 of the present invention
  • FIG. 4 is a block diagram of a system for generating and authenticating a dynamic password according to Embodiment 2 of the present invention.
  • the embodiment 1 of the present invention provides a method for generating and authenticating a dynamic password, which specifically includes:
  • Step 101 The token receives a command that triggers generation of a dynamic password.
  • the command for generating a dynamic password may be a button triggering information
  • the step may further include data that the token prompts the user to input the challenge code, the transaction account number, the transaction amount, and the like of the token.
  • the token may have multiple dynamic password type selections, such as different keys for the user to select to generate a login account, modify account information, transfer, transaction, etc., and follow the server in advance.
  • the agreement prompts the user to enter the corresponding data.
  • Step 102 The token generates a first dynamic factor according to the time counted by the internal first timer and the first preset duration.
  • the first dynamic factor is the number of complete first preset durations included in the time counted by the first timer, specifically, in this embodiment, generating The dynamic factor is specifically: dividing the time value calculated by the timer by the first preset duration value, and obtaining the first dynamic factor by taking the obtained quotient.
  • Step 103 Determine whether the first dynamic factor is consistent with the data in the first buffer area, if yes, execute step 104, otherwise initialize the first offset pointer, and update the first buffer area with the first dynamic factor. Data, perform step 104;
  • the first offset pointer points to a certain data in the first data group, and after the first offset pointer is initialized, the first offset pointer points to the first The first data in a data group.
  • the data stored in the first buffer area may be a dynamic factor generated when the token generates the dynamic password last time, or may be a dynamic factor corresponding to the last time the first offset pointer is initialized.
  • the first offset pointer may further be initialized according to the time counted by the timer, and the first offset pointer is initialized every the first preset duration according to the timer.
  • Step 104 Acquire current data from the first data group according to the first offset pointer, and call a preset algorithm to calculate current data and the first dynamic factor to generate a first dynamic password, where the first offset pointer Pointing to the next data of the current data in the first data group;
  • the step 101 when the step 101 further includes the token prompting the user to input data such as a challenge code, a transaction account number, a transaction amount, and the like, the data input by the user to the token, the current data, the first dynamic factor, Token keys are all involved in generating dynamic passwords.
  • the specific dynamic password is generated by calling a preset algorithm such as SHA1, SM3, etc., and calculating data obtained by combining the above data, and extracting data of a preset number of bits from the calculation result to obtain the first dynamic password.
  • the method before the first offset pointer in the step is directed to the next data of the current data, the method further includes: verifying whether the current data is the last data in the second data group, and The first offset pointer is set to an inactive state, waiting for initialization, otherwise the first offset pointer is executed to execute the next data of the current data.
  • the step further includes the step of determining, by the token, whether the first offset pointer is in an invalid state, and reporting an error if it is in an invalid state, and performing step 104 if it is not in an invalid state.
  • the data in the first data group is different, and the order and the number are fixed.
  • the data may be a set of irregular data, or may be a set of rules-changing data, such as increasing or decreasing data.
  • Step 105 The server receives the second dynamic password input by the user, and generates a second dynamic factor according to the time counted by the second timer in the server and the first preset duration.
  • the server receives the second dynamic password input by the user through the host.
  • the generating the second dynamic factor is specifically obtained by dividing the time counted by the second timer by the drift value obtained by dividing the server by the preset time length and adding the server record.
  • the server Before the step 105, the server further receives the operation request sent by the user, and the step of prompting the user to input the dynamic password by using the host.
  • the step further includes the server generating the challenge code before the step. step.
  • Step 106 Generate a set of dynamic factors according to the second dynamic factor and the authentication window value, to obtain an authentication window.
  • the generated dynamic factor includes: a third dynamic factor obtained by subtracting 1 from the value of the second dynamic factor, and a second dynamic factor And a fourth dynamic factor obtained by adding a value of the second dynamic factor to 1.
  • Step 107 The server invokes a second dynamic factor in the authentication window, and generates a first dynamic password according to the second dynamic factor and each data in the second data group inside the server.
  • the data, the number of data, and the data sequence in the second data group are the same as the first data group.
  • the server generates the first group of dynamic passwords by: calling a preset algorithm, combining the second dynamic factor and each data in the second data group, and respectively calculating the combined data to obtain the first dynamic password;
  • the algorithm and process for generating each dynamic password is consistent with the manner of generation in step 104.
  • the implementation process of generating the first dynamic password with the token is the same, and the user inputs the The data in the server and the corresponding data in the challenge code generated by the server participate in generating the first set of dynamic passwords.
  • This embodiment provides a preferred manner to clearly illustrate the process of generating a dynamic password, in which the data in the second data group are sequentially: 0x 00 00 00 00 ⁇ 00 00 00 09 ten data, the second dynamic factor is 0x 00 00 00 00 01 56 56 01, the challenge code is 0x 31 32 33 34 35 36 37 38-39 30.
  • Token key is 0x 80 d0 3f 19 3f e5 0c 2d-de 8a 84 46 bf a2 88 dc 35 92 65 1c
  • the preset algorithm SM3 is taken as an example, the specific process is: sequentially splicing the key with the second dynamic factor, Then, 10 data in the second data group are sequentially spliced to obtain 10 spliced data, and 10 spliced data are spliced respectively to obtain 10 combined data, and the above 10 combinations are combined by using the preset algorithm.
  • the data is calculated separately, and 10 digests are obtained, and the lower 4 bytes of data are respectively intercepted from each digest, which are converted into decimal numbers, and the lower 8 bits of data are respectively intercepted from 10 decimal numbers to obtain the first group of dynamics. Password.
  • Step 108 The server verifies whether there is a dynamic password consistent with the second dynamic password in the first group of dynamic passwords, if yes, step 111 is performed, otherwise step 109 is performed;
  • Step 109 The server invokes a next dynamic factor of the second dynamic factor in the authentication window, and generates a second dynamic password according to the invoked dynamic factor and the second data group, and determines whether the second dynamic password is included in the second dynamic password. There is a dynamic password consistent with the second dynamic password, if yes, go to step 111, otherwise go to step 110;
  • step 107 the process of generating the second set of dynamic passwords is described in step 107.
  • Step 110 The server invokes a next dynamic factor of a dynamic factor currently called in the authentication window, and generates a third group dynamic password according to the currently invoked dynamic factor and the second data group to determine the third group of dynamic passwords. Whether there is a dynamic password that is consistent with the second dynamic password, if yes, step 111 is performed; otherwise, the authentication fails, and an error is reported;
  • step 107 The process of generating a third set of dynamic passwords is described in step 107.
  • the authentication window value is 2, Therefore, there are three dynamic factors in the authentication window.
  • the order of the dynamic factors is: the dynamic factor obtained by first calling the second dynamic factor and then adding and subtracting the second dynamic factor.
  • the authentication window value may also be other values, and correspondingly, the authentication window further includes other dynamic factors.
  • the other dynamic factors are called successively to generate a dynamic password and authenticated, and the order of calling the remaining dynamic factors is in descending order of the absolute value of the difference from the second dynamic factor.
  • Step 111 Compare a dynamic factor corresponding to the dynamic password consistent with the second dynamic password with data in a second buffer area in the server;
  • step 112 is performed
  • the authentication is passed, the data in the second buffer area is updated by the corresponding dynamic factor, and the second offset pointer is initialized.
  • the second offset pointer is initialized to point to the first data in the second data group.
  • Step 112 Determine whether the order of the data in the second data group corresponding to the dynamic password corresponding to the second dynamic password is in the second data group, and then the authentication is passed.
  • the value of the corresponding dynamic factor updates the data in the second buffer area, and points the second offset pointer to the data in the corresponding second data group, otherwise the authentication fails and an error is reported.
  • the data pointed by the second offset pointer is the data in the second data group corresponding to the dynamic password that was last authenticated.
  • steps 107 - 110 can be replaced with:
  • Step 207 Generate a fourth group dynamic password according to the dynamic factor in the second data group and the authentication window.
  • the fourth dynamic password group is obtained according to each dynamic factor in the authentication window and each data in the second data group.
  • the fourth dynamic password includes the first For all the dynamic passwords of the dynamic password, the second dynamic password, and the third dynamic password, refer to step 107 for the dynamic password.
  • the authentication window value is 2
  • the second data group has 10 data
  • the second dynamic factor is floated up and down to obtain three different dynamic factors, respectively.
  • the obtained fourth group dynamic password group includes 30 dynamic passwords.
  • Step 208 Determine whether there is a dynamic password that is consistent with the second dynamic password in the fourth group of dynamic passwords. If yes, proceed to step 111. Otherwise, the authentication fails and an error is reported.
  • steps 107-112 may also be replaced by:
  • Step 307 Determine whether there is a dynamic factor in the authentication window that is consistent with the data in the second buffer area.
  • Step 308 According to the second data group and each dynamic factor in the authentication window, generate a fourth group of dynamic passwords, step 310;
  • this step is specifically referred to step 207.
  • Step 309 Acquire a dynamic factor of the data in the authentication window that is greater than or equal to the data in the second buffer area, and generate a fifth group according to the acquired dynamic factors, the second offset pointer, and each data in the second data group.
  • Dynamic password step 310;
  • the value of the authentication window is 2, and if the second dynamic factor in the authentication window is consistent with the data in the second buffer, the step is specifically: The dynamic factor is calculated separately from each data in the second data group to obtain a first partial dynamic password; according to the data pointed to by the second offset pointer, each data after the data is respectively obtained and each dynamic factor greater than the second dynamic factor is obtained. Generating a second partial dynamic password, the first partial dynamic password and the second partial dynamic password forming the fifth set of dynamic passwords.
  • Step 310 Determine whether there is a dynamic password that is consistent with the second dynamic password in the generated dynamic password. If yes, the authentication succeeds, and the second cache is updated by using a dynamic factor corresponding to the dynamic password that is consistent with the second dynamic password. The data in the area, and the second offset pointer points to the data corresponding to the dynamic password in the second data group that is consistent with the second dynamic password, otherwise the authentication fails and an error is reported.
  • Embodiment 2 of the present invention provides a dynamic password generation and authentication system, including a token and a server, where the token includes:
  • the first receiving module 401 is configured to receive a dynamic password command.
  • a first generating module 402 configured to: when the first receiving module 401 receives the generate dynamic password command, generate a first dynamic factor according to a time counted by a first timer inside the token;
  • the operation module 403 is configured to initialize the first offset pointer once every first preset duration; or when the first dynamic factor is determined to be inconsistent with the data in the first buffer area, the first The offset pointer is initialized, and the data in the first buffer area is updated by the first dynamic factor;
  • the first calculation module 404 is configured to acquire current data from the first data group according to the first offset pointer, invoke a preset algorithm, and calculate a first dynamic password according to the first dynamic factor and the current data;
  • the first determining module 405 is configured to determine, after the first computing module 404 calculates the first dynamic password, whether the current data is the last data in the first data group;
  • the setting module 406 is configured to: when the current data is not the last data, point the first offset pointer to the next data of the current data in the first data group; when the current data is the last data, Setting the first offset pointer to an invalid state and waiting for initialization;
  • the server includes:
  • a second receiving module 407 configured to receive a second dynamic password input by the user through the host
  • a second generating module 408 configured to obtain a second dynamic factor according to a time counted by a second timer in the server; and generate a dynamic factor according to the second dynamic factor and the authentication window value to obtain an authentication window;
  • the second calculating module 409 is configured to invoke the preset algorithm, and calculate and generate a dynamic password according to the dynamic factor in the authentication window and each data in the second data group stored in the server;
  • the verification module 410 is configured to verify whether a dynamic password consistent with the second dynamic password exists in the set of dynamic passwords.
  • a comparison module 411 configured to: when the verification module 410 verifies that the dynamic password corresponding to the second dynamic password is included in the dynamic password, the dynamic factor corresponding to the dynamic password that is consistent with the second dynamic password Comparing with the data in the second buffer area, if the authentication is greater, the first update module works 412, if not, the authentication fails, and if so, the second determining module 413 works;
  • the first update module 412 is configured to update data in the second buffer area by using a dynamic factor corresponding to the dynamic password that is consistent with the second dynamic password, and set a second offset pointer to point to the second data. Data corresponding to the dynamic password in the group that is consistent with the second dynamic password;
  • the second determining module 413 is configured to determine whether the order of the data corresponding to the dynamic password that is consistent with the second dynamic password in the second data group is after the data pointed by the second offset pointer, and then authenticate By setting the second offset pointer to the data corresponding to the dynamic password in the second data group that is consistent with the second dynamic password, otherwise the authentication fails.
  • the first receiving module 401 is further configured to receive token data input by a user
  • the second receiving module 407 is further configured to receive data input by the user to the server through the host;
  • the second generation module 408 is further configured to generate a challenge code.
  • the first calculating module 404 includes:
  • a third combining unit 4041 configured to combine the first dynamic factor, the current data, and a token key with data of a user input token
  • the fourth processing unit 4042 is configured to invoke the preset algorithm to calculate data obtained by combining the third combining unit 4041 to obtain the first dynamic password.
  • the second calculating module 409 includes:
  • a first calling unit 4091 configured to invoke the preset algorithm and a first dynamic factor in the authentication window
  • the first combining unit 4092 is configured to sequentially combine each data in the second data group with each dynamic factor in the authentication window.
  • the first processing unit 4093 is configured to calculate, by using the preset algorithm, each data obtained by combining the first combining unit 4092 to obtain the set of dynamic passwords.
  • the second calculation module 409 in the embodiment may also be replaced by:
  • a second calling unit configured to invoke the preset algorithm, to sequentially invoke a dynamic factor in the authentication window
  • a second combining unit configured to combine each data in the second data group with the invoked dynamic factor
  • a second processing unit configured to calculate, by using the preset algorithm, data obtained by combining the first combination unit to obtain the set of dynamic passwords
  • the verification module 410 includes:
  • a first verification unit configured to verify whether a dynamic password consistent with the second dynamic password exists in the set of dynamic passwords calculated by the second processing unit
  • a first determining unit configured to: when the first verification unit 4101 verifies that the dynamic password that is consistent with the second dynamic password does not exist in the set of dynamic passwords, determine whether the currently invoked dynamic factor is the authentication window The last dynamic factor in the middle, when it is judged that the current dynamic factor is not the last dynamic factor, the next dynamic factor is called, and the second combined unit works.
  • the second calculating module 409 includes:
  • a searching unit configured to find, from the authentication window, a dynamic factor equal to or greater than data in the second buffer area
  • a third processing unit configured to combine a dynamic factor greater than the data in the second buffer area with each data in the second data group, and invoke the preset algorithm to separately perform data obtained by combining Calculating, obtaining a first partial dynamic password; combining a dynamic factor equal to the data in the second buffer area with each data subsequent to the data pointed to by the second offset pointer in the second data group, and calling the pre- An algorithm is configured to separately calculate each data to obtain a second partial dynamic password; and the first partial dynamic password and the second partial dynamic password are combined into the set of dynamic passwords.
  • system further comprises:
  • a second update module configured to: when the verification module 410 verifies that the dynamic password consistent with the second dynamic password exists in the dynamic password, use a dynamic password corresponding to the second dynamic password The factor updates the data in the second buffer area and points the second offset pointer to data in the second data group corresponding to the dynamic password that is consistent with the second dynamic password.

Abstract

一种动态口令生成及认证的方法及系统,涉及身份认证领域,包括:令牌接收到生成动态口令命令,根据第一计时器生成第一动态因子;根据第一偏移指针从第一数据组中获取当前数据,并根据第一动态因子、当前数据生成第一动态口令;服务器接收到用户输入的第二动态口令,根据第二计时器得到第二动态因子;根据第二动态因子及认证窗口值,得到认证窗口;根据所述认证窗口中的动态因子及第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令。通过上述方案,解决了时间型令牌不能在短时间内多次生成的问题,又避免了事件型令牌不断生成动态口令与服务器产生失步的情况。

Description

一种动态口令的生成及认证方法与系统 技术领域
本发明属于身份认证领域,特别是,涉及一种动态口令的生成及认证方法与系统。
背景技术
动态口令在身份认证领域的应用日益广泛,现有技术中,动态口令分为时间型动态口令、事件型动态口令及挑战应答型动态口令。普通时间型动态口令或者带时间参与计算的挑战应答型动态口令,在一个动态口令变化周期仅能产生一个动态口令,出于安全性考虑,如果口令被认证服务器认证通过后,就不能重复使用了。如果想进行认证,必须等待一段时间,等到达下一个时间周期开始,生成下一个不同的动态口令才能进行,不能满足在短时间内进行多次身份认证的场合的需要;
普通事件型的动态口令,存在动态令牌不断产生动态口令而不与服务器做认证时,令牌与服务器失步的情况,且普通事件型的动态口令引入的次数为可预测动态因子,存在一定的安全隐患。
发明内容
本发明的目的是提供一种动态口令的生成及认证方法及系统,其引入一组数据,参与时间型动态口令的产生,且在一个时间周期内该组数据中的各个数据可以循环参与动态口令的生成。
根据本发明的一方面,提供了一种动态口令生成及认证的方法,包括:
S1:令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器所计时间生成第一动态因子;
所述令牌检查到预设条件时,对所述第一偏移指针进行初始化;
S2:所述令牌判断第一偏移指针是否为无效状态,是则报错,否则继续;
S3:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子、所述当前数据,计算得到第一动态口令,并判断所述当前数据是否为所述第一组数据组中的最后一个数据,是则将所述第一偏移指针设为无效状态,否则将所述第一偏移指针指向当前数据的下一个数据;
S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计时间得到第二动态因子;
S5:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;
S6:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则认证失败。
具体地,所述第一数据组与所述第二数据组一致,包含预设个数的有顺序且各不相同的数据;
所述当前数据为所述第一偏移指针指向的数据。
进一步地,所述步骤S1中根据所述令牌内部的第一计时器所计时间生成第一动态因子具体为:用所述第一计时器所计秒数除以第一预设时长值,对得到的商取整得到所述第一动态因子;
所述步骤S4中,根据服务器内部的第二计时器所计时间得到第二动态因子具体为:用所述第二计时器所计秒数除以所述第一预设时长值,对得到的商取整得到所述第二动态因子。
其中,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为:所述令牌实时监测所述第一计时器所计时间,每隔所述第一预设时长,对所述第一偏移指针进行初始化;
所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一数据组中的第一个数据。
或者,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为:所述令牌生成第一动态因子之后,判断所述第一动态因子与第一缓存区中的数据是否一致,若不一致则对所述第一偏移指针进行初始化;
所述令牌对所述第一偏移指针进行初始化之后,用所述第一动态因子更新所述第一缓存区中的数据;
所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一数据组中的第一个数据。
进一步地,所述步骤S6中计算生成一组动态口令具体为:调用所述预设算法,对所述认证窗口中的每个动态因子与第二数据中的各个数据的组合得到的数据分别进行计算,得到所述一组动态口令。
或者,所述步骤S6具体包括:
步骤a:按预设顺序调用所述认证窗口中的第一个动态因子;
步骤b:依次将所述第二数据组中的各个数据与调用的动态因子组合,调用预设算法对组合得到的各个数据进行计算得到所述一组动态口令;
步骤c:验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则执行步骤d;
步骤d:判断所述调用的动态因子是否为所述认证窗口中的最后一个动态因子,是则认证失败,否则调用下一个动态因子,返回步骤b。
进一步地,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,还包括:
S7:所述服务器调用第二缓存区中的数据,将与所述第二动态口令一致的动态口令对应的动态因子与所述第二缓存区中的数据进行比较,若大于,则认证通过,执行步骤S8;若小于,则认证失败;若等于则执行S9;
S8:用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据;
S9:判断与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。
优选地,所述步骤S1之后还包括令牌提示用户输交易账号、交易金额、挑战码的步骤;
所述步骤S4之前还包括服务器生成挑战码的步骤;
所述步骤S3中根据所述第一动态因子、所述当前数据,计算得到第一动态口令具体为:
将所述第一动态因子、所述当前数据与令牌密钥、用户输入令牌的账号、金额、挑战码进行组合,并用所述预设算法对组合得到的数据进行计算得到所述第一动态口令;
所述步骤S6中调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令具体为:
依次将所述认证窗口中的各个动态因子与第二数据组中的各数据、令牌密钥、服务器接收到的用户输入的账号、金额、服务器生成的挑战码分别进行组合,并用所述预设算法对组合得到的各数据分别进行计算得到所述一组动态口令。
或者,所述步骤S6中生成一组动态口令具体包括:
将第二缓存区中的数据与所述认证窗口中的动态因子进行比对,从所述认证窗口中获取等于或大于所述第二缓存区中的数据的动态因子;
依次将大于所述第二缓存区中的数据的各动态因子与所述第二数据组中的各个数据分别进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据分别进行组合,调用所述预设算法,对组合得到各数据分别进行计算得到第二部分动态口令;
所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。
进一步地,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,还包括:
用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中的数据。
根据本发明的另外一个方面,提供了一种动态口令生成及认证的系统,包括:令牌和服务器;
所述令牌包括:
第一接收模块,用于接收生成动态口令命令;
第一生成模块,用于当所述第一接收模块接收到生成动态口令命令时,根据令牌内部的第一计时器所计时间生成第一动态因子;
操作模块,用于每隔第一预设时长,对所述第一偏移指针初始化一次;或者当判断所述第一动态因子与第一缓存区中的数据不一致时,对所述第一偏移指针进行初始化,并用所述第一动态因子更新第一缓存区中的数据;
第一计算模块,用于根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子及所述当前数据,计算得到第一动态口令;
第一判断模块,用于在所述第一计算模块计算得到第一动态口令后,判断当前数据是否为第一数据组中的最后一个数据;
设置模块,用于当所述当前数据不为最后一个数据时,将所述第一偏移指针指向所述第一数据组中当前数据的下一个数据;当所述当前数据为最后一个数据时,将所述第一偏移指针设为无效状态,等待初始化;
所述服务器包括:
第二接收模块,用于接收用户通过主机输入的第二动态口令;
第二生成模块,用于根据所述服务器内部的第二计时器所计时间得到第二动态因子;并根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;
第二计算模块,用于调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令;
验证模块:用于验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令。
进一步地,所述第二计算模块包括:
第一调用单元,用于调用所述预设算法及所述认证窗口中的第一动态因子;
第一组合单元,用于依次将所述认证窗口中的各个动态因子与所述第二数据组中的各个数据分别进行组合;
第一处理单元,用于用所述预设算法对所述第一组合单元组合得到的各数据分别进行计算,得到所述一组动态口令。
或者,所述第二计算模块包括:
第二调用单元,用于调用所述预设算法及依次调用所述认证窗口中的动态因子;
第二组合单元,用于将所述第二数据组中的各个数据分别与调用的动态因子组合;
第二处理单元,用于用所述预设算法对所述组合单元组合得到的数据进行计算得到所述一组动态口令;
所述验证模块包括:
第一验证单元,用于验证所述第二处理单元计算得到的所述一组动态口令中,是否存在与所述第二动态口令一致的动态口令;
第一判断单元,用于当所述第一验证单元验证所述一组动态口令中不存在与所述第二动态口令一致的动态口令时,判断调用的动态因子是否为所述认证窗口中的最后一个动态因子,当判断当前动态因子不为最后一个动态因子时,调用下一个动态因子,所述第二组合单元工作。
进一步地,所述系统还包括:
比较模块,用于当所述验证模块验证所述一组动态口令中有与所述第二动态口令一致的动态口令时,将与所述第二动态口令一致的动态口令对应的动态因子与第二缓存区中的数据进行比较,若大于则认证通过,第一更新模块工作,若小于则认证失败,若等于则第二判断模块工作;
所述第一更新模块,用于用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向所述第二数据组中与所述第二动态口令一致的动态口令对应的数据;
所述第二判断模块,用于判断在所述第二数据组中与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。
或者,所述第二计算模块包括:
查找单元,用于从所述认证窗口中查找到等于或大于第二缓存区中的数据的动态因子;
第三处理单元,用于将大于所述第二缓存区中的数据的动态因子依次分别与所述第二数据组中的各个数据进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据进行组合,调用所述预设算法,对组合得到各数据分别进行计算得到第二部分动态口令;将所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。
进一步地,所述系统还包括:
第二更新模块,用于当所述验证模块验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中的数据。
所述第一接收模块还用于接收用户输入令牌的数据;
所述第二接收模块还用于接收用户通过主机输入到服务器的数据;
所述第二生成模块还用于生成挑战码。
进一步地,所述第一计算模块包括:
第三组合单元,用于将所述第一动态因子、所述当前数据、令牌密钥与用户输入令牌的数据进行组合;
第四处理单元,用于调用所述预设算法对所述第三组合单元组合得到的数据进行计算得到所述第一动态口令。
通过本发明提供的方案,在时间型动态令牌及事件型动态令牌的基础上,提高了动态口令认证的安全性,且满足了短时间内需要进行多次身份认证的场合的需要,为身份认证过程中认证模式提供了多种选择。
附图说明
图1为根据本发明实施例1的一种动态口令的生成及认证方法流程图;
图2为根据本发明实施例1的一种动态口令的生成及认证方法的另一种实现过程流程图;
图3为根据本发明实施例1的一种动态口令的生成及认证方法的再一种实现过程流程图;
图4为根据本发明实施例2的一种动态口令的生成及认证系统方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域的技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例1提供了一种动态口令的生成及认证方法,具体包括:
步骤101:令牌接收到触发生成动态口令的命令;
优选地,在本实施例中,所述生成动态口令的命令可以为按键触发信息,该步骤之后还可以包括令牌提示用户输入到令牌的挑战码、交易账号、交易金额等数据。
在本实施例中,所述令牌可以有多种动态口令类型选择,例如有不同的按键以供用户选择生成登录账户、修改账户信息、转账、交易等类型的动态口令,并按照与服务器事先约定,提示用户输入相应的数据。
步骤102:令牌根据内部第一计时器所计时间及第一预设时长,生成第一动态因子;
优选地,在本实施例中,所述第一动态因子为所述第一计时器所计时间包含的完整的所述第一预设时长的个数,具体地,在本实施例中,生成动态因子具体为:用所述计时器所计时间值除以所述第一预设时长值,对得到的商取整即得到所述第一动态因子。
步骤103:判断所述第一动态因子是否与第一缓存区中的数据一致,是则执行步骤104,否则初始化第一偏移指针,并用所述第一动态因子更新所述第一缓存区中的数据,执行步骤104;
优选地,在本实施例中,所述第一偏移指针指向第一数据组中的某个数据,当所述第一偏移指针被初始化后,所述第一偏移指针指向所述第一数据组中的第一个数据。
所述第一缓存区中存储的数据可以为令牌上一次生成动态口令时所生成的动态因子,还可以为上一次初始化第一偏移指针时对应的动态因子。
在本实施例中,所述第一偏移指针还可以根据所述计时器所计时间进行初始化,根据所述计时器,每隔所述第一预设时长将所述第一偏移指针初始化一次,相应地,删除步骤103,步骤102之后直接执行步骤104。
步骤104:根据第一偏移指针从所述第一数据组中获取当前数据,并调用预设算法对当前数据与第一动态因子进行计算,生成第一动态口令,所述第一偏移指针指向所述第一数据组中当前数据的下一数据;
优选地,在本实施例中,当步骤101之前还包括令牌提示用户输入挑战码、交易账号、交易金额等数据时,用户输入到令牌的数据、当前数据、所述第一动态因子、令牌密钥均参与生成动态口令。生成第一动态口令的具体为:调用预设的算法如SHA1、SM3等,对上述数据组合得到的数据进行计算,从计算结果中提取预设位数的数据得到所述第一动态口令。
特别地,在本实施例中,本步骤中所述第一偏移指针指向当前数据的下一个数据之前还包括:验证当前数据是否为第二数据组中的最后一个数据,是则将所述第一偏移指针设为无效状态,等待初始化,否则再将所述第一偏移指针执行当前数据的下一数据。相应地,该步骤之前还包括令牌判断所述第一偏移指针是否为无效状态的步骤,若为无效状态则报错,若不为无效状态再执行步骤104。
所述第一数据组中的数据各不相同,顺序、个数固定,可以为一组不规则的数据,也可以为一组规则变化的数据,如递增、递减的数据等。
步骤105:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计时间及第一预设时长生成第二动态因子;
优选地,在本实施例中,服务器通过主机接收到用户输入的第二动态口令。
生成第二动态因子具体为:第二计时器所计时间除以所述预设时长得到的商取整后加服务器记录的漂移值得到。
步骤105之前还包括,服务器接收到用户发送的操作请求,通过主机提示用户输入动态口令的步骤,特别地,当事先约定需要挑战码参与生成动态口令时,该步骤前还包括服务器生成挑战码的步骤。
步骤106:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;
优选地,在本实施例中,以所述认证窗口值为2为例,则生成的一组动态因子包括:所述第二动态因子的值减1得到的第三动态因子、第二动态因子、所述第二动态因子的值加1得到的第四动态因子。
步骤107:服务器调用认证窗口中的第二动态因子,根据所述第二动态因子及服务器内部的第二数据组中的各数据,生成第一组动态口令;
优选地,在本实施例中,所述第二数据组中的数据、数据个数及数据顺序与所述第一数据组相同。服务器生成第一组动态口令具体为:调用预设的算法,将第二动态因子与第二数据组中的各个数据分别进行组合,对组合得到的各数据分别进行计算得到第一组动态口令;生成每个动态口令的算法及过程与步骤104中生成方式一致。特别地,当所述令牌与所述服务器事先约定用户输入的信息或挑战码参与生成动态口令时,则该步骤中,与令牌生成第一动态口令的实现过程相同,用户通过主机输入到服务器中的数据及服务器生成的挑战码中相应的数据参与生成第一组动态口令。
本实施例提供一种优选地方式以清楚说明该生成动态口令的过程,以所述第二数据组中各数据依次为:0x 00 00 00 00~ 00 00 00 09十个数据、第二动态因子为 0x 00 00 00 00 01 56 56 01、挑战码为0x 31 32 33 34 35 36 37 38-39 30、令牌密钥为0x 80 d0 3f 19 3f e5 0c 2d-de 8a 84 46 bf a2 88 dc 35 92 65 1c,所述预设算法 SM3为例,具体过程为:将所述密钥与所述第二动态因子顺序拼接、 再分别与第二数据组中的10个数据分别进行顺序拼接得到10个拼接数据、分别在10个拼接数据后再拼接挑战码得到10个组合数据,用所述预设算法对上述10个组合数据分别进行计算,得到10份摘要,分别从各份摘要中截取低位端4个字节数据,均转化为十进制数,分别从10个十进制数中截取低位8位数据得到所述第一组动态口令。
步骤108:服务器验证第一组动态口令中是否存在与第二动态口令一致的动态口令,是则执行步骤111,否则执行步骤109;
步骤109:所述服务器调用认证窗口中的第二动态因子的下一个动态因子,并根据调用的动态因子及第二数据组,生成第二组动态口令,判断所述第二组动态口令中是否有与第二动态口令一致的动态口令,是则执行步骤111,否则执行步骤110;
本实施例中,生成第二组动态口令的过程参见步骤107。
步骤110:所述服务器调用认证窗口中当前调用的动态因子的下一个动态因子,根据当前调用的动态因子及所述第二数据组生成第三组动态口令,判断所述第三组动态口令中是否有与所述第二动态口令一致的动态口令,是则执行步骤111;否则认证失败,报错;
生成第三组动态口令的过程参见步骤107。
优选地,在本实施例中,所述认证窗口值为2, 从而认证窗口中有三个动态因子,调用动态因子的先后顺序为:先调用第二动态因子、再第二动态因子加减1得到的动态因子。所述认证窗口值还可以为其他值,则相应地,所述认证窗口中还包括其他动态因子,在该步骤中第三组动态口令中没有与所述第二动态口令一致的动态口令时,逐次调用所述其他动态因子来生成动态口令并认证,调用其余动态因子的顺序按与第二动态因子差值的绝对值由小到大的顺序。
步骤111:用与所述第二动态口令一致的动态口令对应的动态因子与服务器中第二缓存区中的数据比较;
若对应的动态因子小于第二缓存区中的数据,则认证失败,报错;
若等于,则执行步骤112;
若大于,则认证通过,用所述对应的动态因子更新第二缓存区中的数据,并将第二偏移指针初始化。
优选地,在本实施例中,所述第二偏移指针初始化后指向第二数据组中的第一个数据。
步骤112:判断与所述第二动态口令一致的动态口令对应的第二数据组中的数据在第二数据组中的顺序是否在第二偏移指针指向的数据之后,是则认证通过,用所述对应的动态因子的值更新第二缓存区中的数据,并将第二偏移指针指向所述对应的第二数据组中的数据,否则认证失败,报错。
优选地,在本实施例中,所述第二偏移指针指向的数据为上一次认证通过的动态口令对应的第二数据组中的数据。参见图2,步骤107-步骤110可以替换为:
步骤207:根据第二数据组及认证窗口中的动态因子,生成第四组动态口令;
优选地,在本实施例中,根据所述认证窗口中的各个动态因子、第二数据组中的各个数据得到上述第四组动态口令组,具体地,所述第四组动态口令包括第一组动态口令、第二组动态口令及第三组动态口令的所有动态口令,生成动态口令的方式参见步骤107。
具体地,在本实施例中,所述认证窗口值为2,所述第二数据组中有10个数据,则相应地,将第二动态因子上下浮动1得到三个不同的动态因子,分别根据三个动态因子与第二数据组中的各个数据生成的第四组动态口令,得到的所述第四组动态口令组中包含30个动态口令。
步骤208:判断上述第四组动态口令中是否存在与所述第二动态口令一致的动态口令,是则继续执行步骤111,否则认证失败,报错。
参见图3,优选地,在本实施例中,步骤107-112还可以替换为:
步骤307:判断所述认证窗口中是否存在与所述第二缓存区中的数据一致的动态因子,
若否,则执行步骤308;
若是,则执行步骤309;
步骤308:根据第二数据组及认证窗口中的各个动态因子,生成第四组动态口令,执行步骤310;
优选地,该步骤具体参见步骤207。
步骤309:获取所述认证窗口中大于或等于第二缓存区中的数据的动态因子,根据获取到的各动态因子、第二偏移指针及第二数据组中的各数据,生成第五组动态口令,执行步骤310;
具体地,在本实施例中,所述认证窗口的值为2,若所述认证窗口中的第二动态因子与所述第二缓存区中的数据一致,则该步骤具体为:对第二动态因子与第二数据组中各个数据分别进行计算得到第一部分动态口令;根据第二偏移指针指向的数据,取该数据之后的各个数据分别与获取到的大于第二动态因子的各动态因子生成第二部分动态口令,所述第一部分动态口令与第二部分动态口令组成所述第五组动态口令。
步骤310:判断生成的一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,用与所述第二动态口令一致的动态口令对应的动态因子更新第二缓存区中的数据,并将第二偏移指针指向第二数据组中与第二动态口令一致的动态口令对应的数据,否则认证失败,报错。
实施例2
参见图4,本发明实施例2提供了一种动态口令的生成及认证系统,包括令牌和服务器,其中令牌包括:
第一接收模块401,用于接收生成动态口令命令;
第一生成模块402,用于当所述第一接收模块401接收到生成动态口令命令时,根据令牌内部的第一计时器所计时间生成第一动态因子;
操作模块403,用于每隔第一预设时长,对所述第一偏移指针初始化一次;或者当判断所述第一动态因子与第一缓存区中的数据不一致时,对所述第一偏移指针进行初始化,并用所述第一动态因子更新第一缓存区中的数据;
第一计算模块404,用于根据第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子及所述当前数据,计算得到第一动态口令;
第一判断模块405,用于在所述第一计算模块404计算得到第一动态口令后,判断当前数据是否为第一数据组中的最后一个数据;
设置模块406,用于当所述当前数据不为最后一个数据时,将所述第一偏移指针指向第一数据组中当前数据的下一个数据;当所述当前数据为最后一个数据时,将所述第一偏移指针设为无效状态,等待初始化;
其中,服务器包括:
第二接收模块407,用于接收用户通过主机输入的第二动态口令;
第二生成模块408,用于根据服务器内部的第二计时器所计时间得到第二动态因子;并根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;
第二计算模块409,用于调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令;
验证模块410,用于验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令。
本实施例系统中的服务器还包括:
比较模块411,用于当所述验证模块410验证所述一组动态口令中有与所述第二动态口令一致的动态口令时,将与所述第二动态口令一致的动态口令对应的动态因子与第二缓存区中的数据进行比较,若大于则认证通过,第一更新模块工作412,若小于则认证失败,若等于则第二判断模块413工作;
所述第一更新模块412,用于用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向所述第二数据组中与所述第二动态口令一致的动态口令对应的数据;
所述第二判断模块413,用于判断与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。
所述第一接收模块401还用于接收用户输入的令牌数据;
所述第二接收模块407还用于接收用户通过主机输入到服务器的数据;
所述第二生成模块408还用于生成挑战码。
所述第一计算模块404包括:
第三组合单元4041,用于将所述第一动态因子、所述当前数据、令牌密钥与用户输入令牌的数据进行组合;
第四处理单元4042,用于调用所述预设算法对所述第三组合单元4041组合得到的数据进行计算得到所述第一动态口令。
所述第二计算模块409包括:
第一调用单元4091,用于调用所述预设算法及所述认证窗口中的第一动态因子;
第一组合单元4092,用于将所述第二数据组中的各个数据依次分别与所述认证窗口中的各个动态因子进行组合;
第一处理单元4093,用于用所述预设算法对所述第一组合单元4092组合得到的各数据分别进行计算,得到所述一组动态口令。
优选地,在本实施例中所述第二计算模块409还可以替换为包括:
第二调用单元,用于调用所述预设算法,用于依次调用所述认证窗口中的动态因子;
第二组合单元,用于将所述第二数据组中的各个数据分别与调用的动态因子组合;
第二处理单元,用于用所述预设算法对所述第一组合单元组合得到的数据进行计算得到所述一组动态口令;
相应地,所述验证模块410包括:
第一验证单元,用于验证所述第二处理单元计算得到的所述一组动态口令中是否存在与所述第二动态口令一致的动态口令;
第一判断单元,用于当所述第一验证单元4101验证所述一组动态口令中不存在与所述第二动态口令一致的动态口令时,判断当前调用的动态因子是否为所述认证窗口中的最后一个动态因子,当判断当前动态因子不为最后一个动态因子时,调用下一个动态因子,所述第二组合单元工作。
或者,所述第二计算模块409包括:
查找单元,用于从所述认证窗口中查找到等于或大于第二缓存区中的数据的动态因子;
第三处理单元,用于将大于所述第二缓存区中的数据的动态因子依次分别与所述第二数据组中的各个数据进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据进行组合,调用所述预设算法,对组合得到各数据分别进行计算得到第二部分动态口令;将所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。
相应地,所述系统还包括:
第二更新模块,用于当所述验证模块410验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中的数据。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

  1. 一种动态口令的生成及认证方法,其特征在于,包括:
    S1:令牌接收到生成动态口令命令,根据所述令牌内部的第一计时器所计时间生成第一动态因子;
    所述令牌检查到预设条件时,对所述第一偏移指针进行初始化;
    S2:所述令牌判断第一偏移指针是否为无效状态,是则报错,否则继续;
    S3:所述令牌根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子、所述当前数据,计算得到第一动态口令,并判断所述当前数据是否为所述第一组数据组中的最后一个数据,是则将所述第一偏移指针设为无效状态,否则将所述第一偏移指针指向当前数据的下一个数据;
    S4:服务器接收到用户输入的第二动态口令,根据服务器内部的第二计时器所计时间得到第二动态因子;
    S5:根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;
    S6:调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令,验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则认证失败。
  2. 如权利要求1所述的方法,其特征在于,所述第一数据组与所述第二数据组一致,包含预设个数的有顺序且各不相同的数据;
    所述当前数据为所述第一偏移指针指向的数据。
  3. 如权利要求2所述的方法,其特征在于,所述步骤S1中根据所述令牌内部的第一计时器所计时间生成第一动态因子具体为:用所述第一计时器所计秒数除以第一预设时长值,对得到的商取整得到所述第一动态因子;
    所述步骤S4中,根据服务器内部的第二计时器所计时间得到第二动态因子具体为:用所述第二计时器所计秒数除以所述第一预设时长值,对得到的商取整得到所述第二动态因子。
  4. 如权利要求3所述的方法,其特征在于,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为:所述令牌实时监测所述第一计时器所计时间,每隔所述第一预设时长,对所述第一偏移指针进行初始化;
    所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一数据组中的第一个数据。
  5. 如权利要求3所述的方法,其特征在于,所述令牌检查到预设条件时,对所述第一偏移指针进行初始化具体为:所述令牌生成第一动态因子之后,判断所述第一动态因子与第一缓存区中的数据是否一致,若不一致则对所述第一偏移指针进行初始化;
    所述令牌对所述第一偏移指针进行初始化之后,用所述第一动态因子更新所述第一缓存区中的数据;
    所述对所述第一偏移指针进行初始化具体为:将所述第一偏移指针指向所述第一数据组中的第一个数据。
  6. 如权利要求2所述的方法,其特征在于,所述步骤S6中计算生成一组动态口令具体为:调用所述预设算法,对所述认证窗口中的每个动态因子与第二数据中的各个数据的组合得到的数据分别进行计算,得到所述一组动态口令。
  7. 如权利要求2所述的方法,其特征在于,所述步骤S6具体包括:
    步骤a:按预设顺序调用所述认证窗口中的第一个动态因子;
    步骤b:依次将所述第二数据组中的各个数据与调用的动态因子组合,调用预设算法对组合得到的各个数据进行计算得到所述一组动态口令;
    步骤c:验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令,是则认证通过,否则执行步骤d;
    步骤d:判断所述调用的动态因子是否为所述认证窗口中的最后一个动态因子,是则认证失败,否则调用下一个动态因子,返回步骤b。
  8. 如权利要求7所述的方法,其特征在于,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,还包括:
    S7:所述服务器调用第二缓存区中的数据,将与所述第二动态口令一致的动态口令对应的动态因子与所述第二缓存区中的数据进行比较,若大于,则认证通过,执行步骤S8;若小于,则认证失败;若等于则执行S9;
    S8:用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据;
    S9:判断与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。
  9. 如权利要求1所述的方法,其特征在于,所述步骤S1之后还包括令牌提示用户输交易账号、交易金额、挑战码的步骤;
    所述步骤S4之前还包括服务器生成挑战码的步骤;
    所述步骤S3中根据所述第一动态因子、所述当前数据,计算得到第一动态口令具体为:
    将所述第一动态因子、所述当前数据与令牌密钥、用户输入令牌的账号、金额、挑战码进行组合,并用所述预设算法对组合得到的数据进行计算得到所述第一动态口令;
    所述步骤S6中调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令具体为:
    依次将所述认证窗口中的各个动态因子与第二数据组中的各数据、令牌密钥、服务器接收到的用户输入的账号、金额、服务器生成的挑战码分别进行组合,并用所述预设算法对组合得到的各数据分别进行计算得到所述一组动态口令。
  10. 如权利要求1所述的方法,其特征在于,所述步骤S6中生成一组动态口令具体包括:
    将第二缓存区中的数据与所述认证窗口中的动态因子进行比对,从所述认证窗口中获取等于或大于所述第二缓存区中的数据的动态因子;
    依次将大于所述第二缓存区中的数据的各动态因子与所述第二数据组中的各个数据分别进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据分别进行组合,调用所述预设算法,对组合得到各数据分别进行计算得到第二部分动态口令;
    所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。
  11. 如权利要求10所述的方法,其特征在于,所述步骤S6中,当验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,还包括:
    用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中的数据。
  12. 一种动态口令的生成及认证系统,其特征在于,包括令牌和服务器,所述令牌包括:
    第一接收模块,用于接收生成动态口令命令;
    第一生成模块,用于当所述第一接收模块接收到生成动态口令命令时,根据令牌内部的第一计时器所计时间生成第一动态因子;
    操作模块,用于每隔第一预设时长,对所述第一偏移指针初始化一次;或者当判断所述第一动态因子与第一缓存区中的数据不一致时,对所述第一偏移指针进行初始化,并用所述第一动态因子更新第一缓存区中的数据;
    第一计算模块,用于根据所述第一偏移指针从第一数据组中获取当前数据,调用预设算法,根据所述第一动态因子及所述当前数据,计算得到第一动态口令;
    第一判断模块,用于在所述第一计算模块计算得到第一动态口令后,判断当前数据是否为第一数据组中的最后一个数据;
    设置模块,用于当所述当前数据不为最后一个数据时,将所述第一偏移指针指向所述第一数据组中当前数据的下一个数据;当所述当前数据为最后一个数据时,将所述第一偏移指针设为无效状态,等待初始化;
    所述服务器包括:
    第二接收模块,用于接收用户通过主机输入的第二动态口令;
    第二生成模块,用于根据所述服务器内部的第二计时器所计时间得到第二动态因子;并根据所述第二动态因子及认证窗口值,生成一组动态因子,得到认证窗口;
    第二计算模块,用于调用所述预设算法,根据所述认证窗口中的动态因子及服务器内部存储的第二数据组中的各数据,计算生成一组动态口令;
    验证模块:用于验证所述一组动态口令中是否存在与所述第二动态口令一致的动态口令。
  13. 如权利要求12所述的系统,其特征在于,所述第二计算模块包括:
    第一调用单元,用于调用所述预设算法及所述认证窗口中的第一动态因子;
    第一组合单元,用于依次将所述认证窗口中的各个动态因子与所述第二数据组中的各个数据分别进行组合;
    第一处理单元,用于用所述预设算法对所述第一组合单元组合得到的各数据分别进行计算,得到所述一组动态口令。
  14. 如权利要求12所述的系统,其特征在于,所述第二计算模块包括:
    第二调用单元,用于调用所述预设算法及依次调用所述认证窗口中的动态因子;
    第二组合单元,用于将所述第二数据组中的各个数据分别与调用的动态因子组合;
    第二处理单元,用于用所述预设算法对所述组合单元组合得到的数据进行计算得到所述一组动态口令;
    所述验证模块包括:
    第一验证单元,用于验证所述第二处理单元计算得到的所述一组动态口令中,是否存在与所述第二动态口令一致的动态口令;
    第一判断单元,用于当所述第一验证单元验证所述一组动态口令中不存在与所述第二动态口令一致的动态口令时,判断调用的动态因子是否为所述认证窗口中的最后一个动态因子,当判断当前动态因子不为最后一个动态因子时,调用下一个动态因子,所述第二组合单元工作。
  15. 如权利要求13所述的系统,其特征在于,所述系统还包括:
    比较模块,用于当所述验证模块验证所述一组动态口令中有与所述第二动态口令一致的动态口令时,将与所述第二动态口令一致的动态口令对应的动态因子与第二缓存区中的数据进行比较,若大于则认证通过,第一更新模块工作,若小于则认证失败,若等于则第二判断模块工作;
    所述第一更新模块,用于用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向所述第二数据组中与所述第二动态口令一致的动态口令对应的数据;
    所述第二判断模块,用于判断在所述第二数据组中与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。
  16. 如权利要求14所述的系统,其特征在于,所述系统还包括:
    比较模块,用于当所述验证模块验证所述一组动态口令中有与所述第二动态口令一致的动态口令时,将与所述第二动态口令一致的动态口令对应的动态因子与第二缓存区中的数据进行比较,若大于则认证通过,第一更新模块工作,若小于则认证失败,若等于则第二判断模块工作;
    所述第一更新模块,用于用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并设置第二偏移指针指向所述第二数据组中与所述第二动态口令一致的动态口令对应的数据;
    所述第二判断模块,用于判断在所述第二数据组中与所述第二动态口令一致的动态口令对应的数据在第二数据组中的顺序是否在所述第二偏移指针指向的数据之后,是则认证通过,设置第二偏移指针指向第二数据组中与所述第二动态口令一致的动态口令对应的数据,否则认证失败。
  17. 如权利要求12所述的系统,其特征在于,所述第二计算模块包括:
    查找单元,用于从所述认证窗口中查找到等于或大于第二缓存区中的数据的动态因子;
    第三处理单元,用于将大于所述第二缓存区中的数据的动态因子依次分别与所述第二数据组中的各个数据进行组合,调用所述预设算法对组合得到的数据分别进行计算,得到第一部分动态口令;将等于所述第二缓存区中的数据的动态因子分别与所述第二数据组中第二偏移指针指向的数据之后的各个数据进行组合,调用所述预设算法,对组合得到各数据分别进行计算得到第二部分动态口令;将所述第一部分动态口令与所述第二部分动态口令组成所述一组动态口令。
  18. 如权利要求17所述的系统,其特征在于,所述系统还包括:
    第二更新模块,用于当所述验证模块验证所述一组动态口令中存在与所述第二动态口令一致的动态口令时,用与所述第二动态口令一致的动态口令对应的动态因子更新所述第二缓存区中的数据,并将所述第二偏移指针指向与所述第二动态口令一致的动态口令对应的第二数据组中的数据。
  19. 如权利要求12所述的系统,其特征在于,
    所述第一接收模块还用于接收用户输入令牌的数据;
    所述第二接收模块还用于接收用户通过主机输入到服务器的数据;
    所述第二生成模块还用于生成挑战码。
  20. 如权利要求19所述的系统,其特征在于,所述第一计算模块包括:
    第三组合单元,用于将所述第一动态因子、所述当前数据、令牌密钥与用户输入令牌的数据进行组合;
    第四处理单元,用于调用所述预设算法对所述第三组合单元组合得到的数据进行计算得到所述第一动态口令。
PCT/CN2013/082714 2012-09-12 2013-08-30 一种动态口令的生成及认证方法与系统 WO2014040501A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/423,537 US9350728B2 (en) 2012-09-12 2013-08-30 Method and system for generating and authorizing dynamic password

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201210337308.6A CN102843236B (zh) 2012-09-12 2012-09-12 一种动态口令的生成及认证方法与系统
CN201210337308.6 2012-09-12

Publications (1)

Publication Number Publication Date
WO2014040501A1 true WO2014040501A1 (zh) 2014-03-20

Family

ID=47370315

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/082714 WO2014040501A1 (zh) 2012-09-12 2013-08-30 一种动态口令的生成及认证方法与系统

Country Status (3)

Country Link
US (1) US9350728B2 (zh)
CN (1) CN102843236B (zh)
WO (1) WO2014040501A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801531B (zh) * 2012-09-04 2015-03-04 飞天诚信科技股份有限公司 一种基于声音传输的动态令牌的工作方法
CN102843236B (zh) * 2012-09-12 2014-12-10 飞天诚信科技股份有限公司 一种动态口令的生成及认证方法与系统
CN103905195A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 基于动态口令的用户卡认证方法和系统
CN103354499B (zh) * 2013-06-21 2016-05-11 樊晓东 一种动态口令的合法性实时验证方法
CN104618112B (zh) * 2015-01-19 2017-02-22 北京海泰方圆科技股份有限公司 一种对动态令牌的动态口令校验的方法
KR20160109151A (ko) * 2015-03-10 2016-09-21 노틸러스효성 주식회사 현금 입출금에 관한 거래를 처리하는 장치 및 방법
US9842205B2 (en) * 2015-03-30 2017-12-12 At&T Intellectual Property I, L.P. Time-varying passwords for user authentication
CN106161029B (zh) * 2015-04-20 2019-12-03 阿里巴巴集团控股有限公司 动态令牌控制方法和装置
CN108123796A (zh) * 2016-11-29 2018-06-05 展讯通信(上海)有限公司 指纹比对的方法及装置、指纹令牌及其控制方法和装置
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
US10541992B2 (en) 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
CN106952378A (zh) * 2017-04-11 2017-07-14 徐士兰 开锁方法及装置、电子锁
CN107194285B (zh) * 2017-04-29 2020-05-12 苏州芯动科技有限公司 一种基于puf的密钥生成方法及数据存储方法
WO2019051429A1 (en) 2017-09-08 2019-03-14 ULedger, Inc. SYSTEMS AND METHODS FOR PROVIDING IMMUABLE RECORDINGS
CN108777615B (zh) * 2018-09-17 2021-07-16 上海并擎软件科技有限公司 动态口令认证方法和装置
CN109840404A (zh) * 2019-02-14 2019-06-04 阳江核电有限公司 一种基于事件同步算法的工业计算机登录方法和系统
CN110034926B (zh) * 2019-03-08 2021-11-05 平安科技(深圳)有限公司 物联网动态密码的生成及验证方法、系统和计算机设备
CN110098923B (zh) * 2019-04-08 2021-08-27 浙江大华技术股份有限公司 一种生成和验证临时密码的方法及设备
US11194897B2 (en) * 2019-04-10 2021-12-07 Mastercard International Incorporated System and methods for generating and authenticating dynamic usernames replication
CN110533410B (zh) * 2019-07-30 2022-02-15 河南兄弟科技发展有限公司 一种支付方法
JP7338386B2 (ja) * 2019-10-04 2023-09-05 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム及びプログラム
CN115280744A (zh) * 2020-05-01 2022-11-01 维萨国际服务协会 数字标签
CN112349003A (zh) * 2020-11-17 2021-02-09 深圳Tcl新技术有限公司 门锁密码的传输方法、锁体、服务器及可读存储介质
US20220217136A1 (en) * 2021-01-04 2022-07-07 Bank Of America Corporation Identity verification through multisystem cooperation
CN113676452B (zh) * 2021-07-15 2024-01-09 北京思特奇信息技术股份有限公司 基于一次性密钥的重放攻击抵御方法及系统
CN114095154B (zh) * 2021-10-12 2023-06-27 福建升腾资讯有限公司 一种App登录的动态口令实现方法、装置、设备和介质
CN114039755B (zh) * 2021-10-29 2024-03-22 中国银联股份有限公司 一种权限控制方法、装置、电子设备及存储介质
CN114996676A (zh) * 2022-08-01 2022-09-02 北京云成金融信息服务有限公司 一种基于历史数据分析的供应链金融平台的认证系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004051585A2 (en) * 2002-11-27 2004-06-17 Rsa Security Inc Identity authentication system and method
CN101783731A (zh) * 2009-12-28 2010-07-21 北京飞天诚信科技有限公司 动态口令的显示方法及动态令牌
CN102123148A (zh) * 2011-03-02 2011-07-13 北京天地融科技有限公司 基于动态口令的认证方法、系统和装置
CN102843236A (zh) * 2012-09-12 2012-12-26 飞天诚信科技股份有限公司 一种动态口令的生成及认证方法与系统

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694539A (en) * 1994-08-10 1997-12-02 Intrinsa Corporation Computer process resource modelling method and apparatus
US6311276B1 (en) * 1998-08-25 2001-10-30 3Com Corporation Secure system for remote management and wake-up commands
US6607136B1 (en) * 1998-09-16 2003-08-19 Beepcard Inc. Physical presence digital authentication system
US20020198848A1 (en) * 2001-06-26 2002-12-26 Michener John R. Transaction verification system and method
KR100611304B1 (ko) * 2005-01-27 2006-08-10 삼성전자주식회사 기 입력된 버튼의 코드값을 이용하여 1회용 비밀키를생성하는 제어기기, 상기 1회용 비밀키를 이용하여 상기제어기기를 인증하는 홈서버, 및, 상기 1회용 비밀키를이용한 제어기기 인증방법
US9002750B1 (en) * 2005-12-09 2015-04-07 Citicorp Credit Services, Inc. (Usa) Methods and systems for secure user authentication
US8667285B2 (en) * 2007-05-31 2014-03-04 Vasco Data Security, Inc. Remote authentication and transaction signatures
CN101355426A (zh) * 2008-09-10 2009-01-28 中国工商银行股份有限公司 基于动态口令的身份认证方法及系统
US8789166B2 (en) * 2009-10-30 2014-07-22 Feitian Technologies Co., Ltd. Verification method and system thereof
KR101838560B1 (ko) * 2011-07-27 2018-03-15 삼성전자주식회사 뉴로모픽 칩에서 스파이크 이벤트를 송수신하는 송수신 장치 및 방법
CN102377783B (zh) * 2011-11-07 2014-03-12 飞天诚信科技股份有限公司 一种动态口令生成及认证的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004051585A2 (en) * 2002-11-27 2004-06-17 Rsa Security Inc Identity authentication system and method
CN101783731A (zh) * 2009-12-28 2010-07-21 北京飞天诚信科技有限公司 动态口令的显示方法及动态令牌
CN102123148A (zh) * 2011-03-02 2011-07-13 北京天地融科技有限公司 基于动态口令的认证方法、系统和装置
CN102843236A (zh) * 2012-09-12 2012-12-26 飞天诚信科技股份有限公司 一种动态口令的生成及认证方法与系统

Also Published As

Publication number Publication date
US9350728B2 (en) 2016-05-24
US20150207790A1 (en) 2015-07-23
CN102843236A (zh) 2012-12-26
CN102843236B (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
WO2014040501A1 (zh) 一种动态口令的生成及认证方法与系统
WO2020125251A1 (zh) 基于联邦学习的模型参数训练方法、装置、设备及介质
WO2019051898A1 (zh) 设备控制方法、装置及计算机可读存储介质
WO2016101745A1 (zh) 一种激活移动终端令牌的方法
WO2010124565A1 (zh) 签名方法、设备及系统
WO2016018083A1 (en) Wearable device and method of operating the same
WO2017067286A1 (zh) 一种指纹模板更新方法、装置及终端
WO2017071363A1 (zh) 密码的共享方法、密码的共享系统及终端设备
WO2022050652A1 (en) Method, apparatus, and computer readable storage medium for controlling account
WO2018076844A1 (zh) 数据备份的方法、装置、存储介质及电子设备
WO2017092498A1 (zh) 一种信息管理方法及用户终端
WO2018076865A1 (zh) 数据分享方法、装置、存储介质及电子设备
WO2018076841A1 (zh) 数据分享方法、装置、存储介质及服务器
WO2017119548A1 (ko) 보안성이 강화된 사용자 인증방법
WO2016123926A1 (zh) 一种基于远程控制的sim卡终端管理方法及系统
WO2018076840A1 (zh) 数据分享方法、装置、存储介质及服务器
WO2020062616A1 (zh) 显示面板的伽马值调节方法、装置及显示设备
WO2017071348A1 (zh) 网络接入方法、服务器、终端及系统
WO2015126037A1 (ko) 일회용 랜덤키를 이용한 본인 확인 및 도용 방지 시스템 및 방법
WO2016095339A1 (zh) 一种更新动态令牌中种子数据的方法
WO2018076870A1 (zh) 数据处理方法、装置、存储介质、服务器及数据处理系统
WO2020062615A1 (zh) 显示面板的伽马值调节方法、装置及显示设备
WO2020189993A1 (ko) 암호화폐 분실 방지 방법 및 시스템
WO2018076873A1 (zh) 数据分享方法、装置、介质、电子设备及系统
WO2017067282A1 (zh) 一种指纹信息的使用方法、装置及终端

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: 13837860

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14423537

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: 13837860

Country of ref document: EP

Kind code of ref document: A1