WO2018024056A1 - 用户口令管理的方法和服务器 - Google Patents

用户口令管理的方法和服务器 Download PDF

Info

Publication number
WO2018024056A1
WO2018024056A1 PCT/CN2017/090878 CN2017090878W WO2018024056A1 WO 2018024056 A1 WO2018024056 A1 WO 2018024056A1 CN 2017090878 W CN2017090878 W CN 2017090878W WO 2018024056 A1 WO2018024056 A1 WO 2018024056A1
Authority
WO
WIPO (PCT)
Prior art keywords
salt value
password
ciphertext
user
extension information
Prior art date
Application number
PCT/CN2017/090878
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 华为技术有限公司
Publication of WO2018024056A1 publication Critical patent/WO2018024056A1/zh

Links

Images

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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Definitions

  • the embodiments of the present invention relate to the field of computer technologies, and in particular, to a method and a server for user password management.
  • An existing user authentication method is an authentication method based on a user identification (ID) and a password.
  • ID user identification
  • password password
  • An existing method for user registration includes: receiving a user registration request, the user registration request carrying a user ID and a password; generating a random number as a salt value; encrypting the password according to a salt value, obtaining a password ciphertext; ID, password ciphertext, and salt value association storage. In this way, when the user logs in to the server and needs user authentication, the user authentication request is received.
  • the user authentication request carries the user ID and the password to be authenticated; the password ciphertext and the salt value corresponding to the user ID are obtained, according to a preset encryption algorithm and The obtained salt value is encrypted, and the password to be authenticated is encrypted to obtain a password ciphertext; if the calculated password ciphertext is consistent with the obtained password ciphertext, the authentication is passed.
  • the inventor has found that the above process has at least the following problem: since the salt value needs to be stored in association with the user ID and the password ciphertext after encrypting the password, this results in a certain storage space when storing the salt value. .
  • the server needs to consume a large amount of storage resources to store the salt value corresponding to each password, and at the time of authentication, it also needs to obtain the corresponding salt value from the storage resource, thereby consuming a large amount of Input and output (I/O) resources.
  • the salt value stored by the server may be exploited by an attacker to attack the password encrypted by the salt value by constructing a rainbow table.
  • the embodiment of the present invention provides a method and a server for managing the user password, and the technical solution is as follows:
  • a method for user password management comprising:
  • the server receives a user registration request including a user ID and a password sent by a user equipment (User Equipment, UE).
  • a user equipment User Equipment, UE
  • a random string is generated as the salt value
  • the salt value extension information is generated according to the preset generation algorithm and the salt value
  • the salt value and the salt value extension information are spliced into the salt value information according to a preset order.
  • the preset order may be that the salt value is after the pre-salt value expansion information, or the salt value extension information may be after the pre-salt value, and is not limited herein.
  • the server After receiving the user registration request, the server encrypts the salt value information according to the password and the first encryption algorithm to obtain the first ciphertext; the first encryption algorithm is a reversible encryption algorithm.
  • the first encryption algorithm may be an exclusive OR algorithm, an Advanced Encryption Standard (AES) algorithm, a Data Encryption Standard (DES), an RSA algorithm, or other algorithms. Make a limit.
  • the server may encrypt the first ciphertext according to the preset key and the second encryption algorithm to obtain a second ciphertext
  • the second encryption algorithm is a reversible encryption algorithm.
  • the second encryption algorithm may be an AES algorithm or an RSA algorithm.
  • the user ID and the second ciphertext are stored in association.
  • the salt value extension information is generated according to the salt value, and the salt value and the salt value extension information are spliced into the salt value information according to a preset order; thereafter, according to the password in the user registration request and the first encryption algorithm Encrypting the salt value information to obtain the first ciphertext; and encrypting the first ciphertext according to the preset key and the second encryption algorithm to obtain the second ciphertext, and storing the user ID and the second ciphertext in the user registration request.
  • the first encryption algorithm and the second encryption algorithm are reversible encryption algorithms.
  • the above method solves the problem that the server needs to consume a large amount of storage space due to the need to store the salt value in the prior art; the effect of saving the storage space required by the server is achieved. .
  • this also ensures the concealment of the salt value to a certain extent, and avoids the attack of the password encrypted by the attacker by constructing the rainbow table.
  • the password is separately encrypted according to the salt value and the preset key, the security of the password is improved, and the problem of poor security of the password in the prior art is solved.
  • the step of encrypting the salt value information by the server may include:
  • the first target content including at least one of a password, a hash value of the password, and password extension information generated according to the hash value of the password;
  • the salt value information is encrypted according to the first target content and the first encryption algorithm.
  • the first target content may include a password hash value or password extension information.
  • the step of the server generating the first target content may include: generating a hash value of the password according to the hash algorithm.
  • the hash algorithm maps binary values of arbitrary length to fixed-length binary values, and the mapped binary values are called hash values. The probability that the hash value corresponding to different content is the same is less than the threshold, and after the hash value is obtained, the input cannot be obtained by using the hash value.
  • the step of the server generating the first target content may include: generating the password extension information according to the preset extension algorithm and the hash value of the password.
  • the preset extension algorithm may include an algorithm for intercepting a fixed length of the hash value, or an encryption algorithm for encrypting the hash value, or an algorithm for outputting a function value corresponding to the hash value according to the preset function.
  • the length of the password extension information may or may not be fixed, which is not limited in this embodiment.
  • the step of generating the salt value extension information may include: The generation algorithm and the salt value are used to generate the salt extension information of the preset length, and the preset length is the difference between the length of the first target content and the length of the salt value.
  • the server can encrypt the salt value information according to the first target content and the exclusive OR algorithm, thereby obtaining the first ciphertext, and the hidden salt value can be hidden to the first secret. The effect of the text.
  • the manner in which the server generates the preset length of the salt value extension information may include the following two types:
  • the first type generates salt extension information of a preset length according to a hash algorithm and a salt value.
  • the function value of the salt value is generated according to the preset function, and the content of the preset length is intercepted from the function value as the salt value extension information according to the preset interception manner.
  • the server can directly delete the salt value.
  • the method further includes:
  • the user authentication request is received, and the user authentication request includes a user ID and a password to be authenticated.
  • the server After the password is encrypted, the server stores the user ID and the encrypted second ciphertext. Therefore, after the server receives the user authentication request, the server can query the second ciphertext corresponding to the user ID.
  • the server may decrypt the second ciphertext according to the preset key to obtain the first Cipher text.
  • the password to be authenticated is authenticated according to the password to be authenticated and the first ciphertext.
  • the above method achieves the effect of not requiring I/O operations to read the salt value during the password authentication process, thereby improving the authentication efficiency.
  • the password authentication method greatly improves the authentication efficiency in the password authentication process as compared with the scheme of improving the password security by iteration.
  • the steps of password authentication to be authenticated may include:
  • the second target content including at least one of a password to be authenticated, a hash value of the password to be authenticated, and password extension information generated according to a hash value of the password to be authenticated ;
  • the password authentication to be authenticated is passed.
  • a method for user password management comprising:
  • the server may encrypt the password according to the preset key and the first encryption algorithm to obtain the first ciphertext;
  • the first encryption algorithm may be a reversible encryption algorithm or an irreversible encryption algorithm.
  • the first encryption algorithm referred to herein may be an irreversible encryption algorithm.
  • the server may also generate salt value extension information according to the salt value, and splicing the salt value and the salt value extension information into the salt value information according to a preset order.
  • the preset order may be that the salt value is after the pre-salt value expansion information, or the salt value extension information may be after the pre-salt value, which is not limited thereto.
  • the server may encrypt the salt value information according to the first ciphertext and the second encryption algorithm to obtain a second ciphertext, and the second encryption algorithm is a reversible encryption algorithm.
  • the first ciphertext is obtained according to the preset key and the first encryption algorithm, and the salt value extension information is generated according to the salt value, and the salt value and the salt value extension information are in a preset order.
  • the splicing is the salt value information; after that, the salt value information is encrypted according to the first ciphertext and the second encryption algorithm to obtain the second ciphertext, and the user ID and the second ciphertext in the user registration request are stored in association with each other.
  • the second encryption algorithm is a reversible encryption algorithm.
  • the above method solves the problem that the server needs to consume a large amount of storage space due to the need to store the salt value in the prior art; the effect of saving the storage space required by the server is achieved. .
  • this also ensures the concealment of the salt value to some extent, and avoids the attack caused by the attacker's password for encrypting the salt value by constructing the rainbow table.
  • the password is encrypted according to the salt value and the preset key, the security of the password is improved, and the problem of poor security of the password in the prior art is solved.
  • the step of encrypting the salt value information by the server may include:
  • the first target content includes: a first ciphertext, and/or ciphertext extension information generated according to the first ciphertext.
  • the salt value information is encrypted according to the first target content and the second encryption algorithm.
  • the step of generating the salt value extension information may include: according to the salt The value generates a salt extension information of a preset length, and the preset length is a difference between the length of the first target content and the length of the salt value.
  • the server can be based on the first target
  • the tolerance and XOR algorithm encrypts the salt value information, and then obtains the first ciphertext, which achieves the effect of hiding the salt value to the first ciphertext.
  • the manner in which the server generates the preset length of the salt value extension information may include the following two types:
  • the first type generates salt extension information of a preset length according to a hash algorithm and a salt value.
  • a function value of the salt value is generated, and the content of the preset length is intercepted from the function value as the salt value extension information according to the preset interception manner.
  • the server may directly delete the salt value.
  • the method further includes:
  • the user authentication request is received, and the user authentication request includes a user ID and a password to be authenticated.
  • the server may store the user ID and the encrypted second ciphertext. Therefore, in order to implement the password authentication, after the server receives the user authentication request, the server may obtain the second ciphertext corresponding to the user ID.
  • the password to be authenticated is authenticated according to the second ciphertext and the third ciphertext.
  • the above method achieves the effect of not requiring I/O operations to read the salt value in the password authentication process, thereby improving the authentication efficiency.
  • the password authentication method greatly improves the authentication efficiency in the password authentication process as compared with the scheme of improving the password security by iteration.
  • the step of authenticating the password to be authenticated may include:
  • the second target content includes: a third ciphertext, and/or ciphertext extension information generated according to the third ciphertext;
  • the password authentication to be authenticated is passed.
  • an embodiment of the present invention provides a server for managing a user password, and the server for managing the user password has a function of implementing the server behavior in the first aspect or the second aspect.
  • the functions may be implemented by hardware or by corresponding software implemented by hardware.
  • the hardware or software includes one or more modules corresponding to the functions described above.
  • the structure of the user password management server includes a processor and a memory for storing a program supporting the user password management to execute the above method, the processor being configured to be used for The program stored in the memory is executed.
  • the user password management server may further include a communication interface for the server deploying the service in the virtual network to communicate with other devices or communication networks.
  • an embodiment of the present invention provides a computer storage medium for storing computer software instructions for a server managed by the user password, which includes a program designed to execute a server for user password management in the above aspect.
  • the solution provided by the present invention can combine the key stored on the server, the password P stored by the user, and the random salt value salt to protect the password through a two-layer encryption method, thereby ensuring efficient authentication efficiency. And it can greatly improve the difficulty of brute force and dictionary attacks.
  • the salt value can be directly deleted after encryption, even if the attacker obtains the key stored on the machine, the individual password cannot be cracked by the rainbow table attack.
  • FIG. 1A and 1B are schematic views of an implementation environment involved in various embodiments of the present invention.
  • FIG. 2A is a flowchart of a method for a method for user password management according to an embodiment of the present invention.
  • FIG. 2B is a schematic diagram of a method for user password management according to an embodiment of the present invention.
  • FIG. 2C is another schematic diagram of a method for user password management according to an embodiment of the present invention.
  • FIG. 2D is a schematic diagram of user password encryption provided by an embodiment of the present invention.
  • FIG. 2E is a flowchart of a method for user password management according to an embodiment of the present invention.
  • 2F is a flow chart of a method for authenticating salt value information according to an embodiment of the present invention.
  • FIG. 3A is a flowchart of a method for a method for user password management according to another embodiment of the present invention.
  • FIG. 3B is a flowchart of a method for user password management according to an embodiment of the present invention.
  • FIG. 3C is a flowchart of a method for authenticating salt value information according to an embodiment of the present invention.
  • FIG. 4 is a schematic structural diagram of a server for user password management according to an embodiment of the present invention.
  • FIG. 5 is a schematic structural diagram of a server for user password management according to another embodiment of the present invention.
  • FIG. 6 is a schematic structural diagram of a server for user password management according to another embodiment of the present invention.
  • FIG. 1A shows a schematic diagram of an implementation environment involved in various embodiments of the present invention.
  • the implementation environment includes a UE 110 and a server 120.
  • the UE 110 may be a terminal such as a mobile phone, a tablet computer, a desktop computer, or a notebook computer through which the user may send a user registration request or a user authentication request to the server 120.
  • the UE 110 can be connected to the server 120 via a wired or wireless network. There may be one or more UEs 110. This embodiment does not limit the number of UEs.
  • the server 120 is a server for providing a user registration service and a user authentication service.
  • a preset key for encrypting a password may be pre-stored in the server 120, and a salt value for encrypting the password may be generated.
  • the length of the preset key and the characters included in the preset key are not limited, and the salt value is a random string of a fixed length.
  • FIG. 1A is only an example in which the server 120 is a server.
  • the server 120 may also be a server cluster composed of multiple servers.
  • the server 120 may include a key management server 121, a salt value generation server 122, a password encryption server 123, a password authentication server 124, and a database 125.
  • the salt value generation server 122 is configured to generate a random character string as a salt value when receiving an acquisition request.
  • the password encryption server 123 is configured to acquire a key from the key management server 121 and acquire a salt value from the salt value generation server 122, and encrypt the user's password based on the key and the salt value. Encrypted password ciphertext and use The user ID is sent to the database 125 so that the database 125 associates the encrypted password ciphertext and the user ID.
  • the password authentication server 124 is configured to acquire the stored password ciphertext from the database 125 according to the user ID, and acquire the key from the key management server 121.
  • the password sent by the user is authenticated according to the password ciphertext and the key, and the result of the authentication is returned to the user.
  • the key management server 121 is configured to generate and store a key.
  • the key management server 121 generates a key is a technique well known to those skilled in the art, and the present invention does not limit the method of generating a key.
  • the key management server 121 may encrypt the generated key with the root key and then store the encrypted key ciphertext.
  • the root key is determined by a combination of multiple key components. In order to protect the root key, it is necessary to specifically limit the storage of the plurality of key components: (1) a plurality of key components are distributed and stored locally in the key management server 121, and the attacker is simultaneously obtained to obtain all the key components and cracked.
  • the difficulty of the root key (2) setting the access control policy to limit the device access key component outside the server 120, for example, does not allow any communication interface (such as File Transfer Protocol (FTP), human machine language (Man-Machine Language (MML)) is accessed by devices external to the server 120.
  • FTP File Transfer Protocol
  • MML Man-Machine Language
  • the database 125 is configured to associate the password ciphertext and the user ID generated by the password encryption module, and return the corresponding password ciphertext according to the user ID sent by the password authentication module.
  • the user sends a user registration request to the server 120 through the UE 110, which includes the user ID and password.
  • the password encryption server 123 of the server 120 transmits a random number acquisition request to the salt value generation server 122.
  • the salt value generation server 122 Upon receiving the random number acquisition request sent from the password encryption server 123, the salt value generation server 122 generates a random character string as a salt value and returns it to the password encryption server 123.
  • the password encryption server 123 acquires a preset key from the key management server 121, encrypts the user's password according to the salt value and the preset key, and obtains the encrypted password ciphertext.
  • the password encryption server 123 transmits the encrypted password ciphertext and the user ID to the database 125, so that the database 125 associates and stores the encrypted password ciphertext and the user ID.
  • the user sends a user authentication request to the server 120 through the UE 110, where the user authentication request includes the user ID and the password to be authenticated.
  • the password authentication server 124 of the server 120 acquires a preset key from the key management server 121; and obtains the password key corresponding to the user ID from the database 125 according to the user ID in the user authentication request. Text. And authenticating the password to be authenticated in the user authentication request according to the obtained password ciphertext and the key.
  • the method for managing the user password may include:
  • Step 201 Receive a user registration request, where the user registration request includes a user ID and a password.
  • the user may send a user registration request to the server through the UE.
  • the server may receive the user registration request sent by the UE.
  • Step 202 Generate salt value extension information according to the salt value, and splicing the salt value and the salt value extension information into the salt value information according to a preset order.
  • the server may generate the salt value extension information according to a preset generation algorithm and a salt value.
  • the salt value is a randomly generated string of a fixed length
  • the salt value extension information is also a fixed length string.
  • the preset generation algorithm can be an encryption algorithm or any other function.
  • the step may include: the server generating the salt value extension information according to a preset generation algorithm, a salt value, and other parameters.
  • the other parameters may be a password, a hash of the password, or both.
  • mapstr a*salt+b*P+c, a, b, and c are constants, salt is a salt value, and P is a password; optionally, mapstr can also be a preset encryption algorithm. And the information obtained after the password is encrypted.
  • the salt value and the salt value extension information may be spliced into salt value information in a preset order.
  • the preset sequence may be that the salt value is after the pre-salt value expansion information, or the salt value extension information is after the pre-salt value, which is not limited in this embodiment.
  • the salt value information Smap salt
  • mapstr, or, Smap mapstr
  • the salt value is 1011101
  • the salt value expansion information is 011010
  • the preset order is the salt value first, and after the salt value expansion information is followed, the salt value and the salt value expansion information are spliced according to the preset order. Thereafter, the obtained salt value information is 1011101011010.
  • the salt value extension information in the embodiment may be a preset length or an unlimited length, which is not limited in this embodiment.
  • the server may obtain the content by intercepting the generated content according to a preset interception manner.
  • the server can delete the salt value in order to save the storage space of the server.
  • Step 203 Generate a first target content according to the password.
  • the first target content includes at least one of a password, a hash value of the password, and password extension information generated based on the hash value of the password. That is to say, the first target content may be: a password, or a hash value of the password, or a hash value and a password, or a password extension information generated based on the hash value, or a hash value and a password extension. Information, or password extension information and password, or hash value, password extension information, and password.
  • the first target content may include a hash value or password extension information generated according to the hash value.
  • the step may include: generating a hash value of the password according to the hash algorithm.
  • the hash algorithm maps binary values of arbitrary length to fixed-length binary values, and the mapped binary values are called hash values.
  • the probability that the hash value corresponding to different content is the same is less than the threshold, and after the hash value is obtained, the input cannot be obtained by using the hash value.
  • the step may include: generating the password extension information according to a preset extension algorithm and a hash value of the password.
  • the preset extension algorithm may include an algorithm for intercepting a fixed length of the hash value, or an encryption algorithm for encrypting the hash value, or an algorithm for outputting a function value corresponding to the hash value according to the preset function.
  • the length of the password extension information may or may not be fixed, which is not limited in this embodiment.
  • Step 204 Encrypt the salt value information according to the first target content and the first encryption algorithm to obtain the first ciphertext.
  • the first encryption algorithm is a reversible encryption algorithm.
  • the first encryption algorithm is an exclusive OR algorithm, an Advanced Encryption Standard (AES) algorithm, a Data Encryption Standard (DES), an RSA algorithm, or other algorithms, and this embodiment does not do this. limited.
  • Step 205 Encrypt the first ciphertext according to the preset key and the second encryption algorithm to obtain a second ciphertext.
  • the second encryption algorithm is a reversible encryption algorithm.
  • it may be an AES algorithm or an RSA algorithm, which is not limited in this embodiment.
  • Step 206 Store the user ID and the second ciphertext in association.
  • FIG. 2B shows a schematic diagram of a method for user password management provided by this embodiment.
  • the user password management method may be implemented as: the password encryption server receives the user registration request sent by the UE; the password encryption server obtains the randomly generated salt from the salt value generation server, generates the salt value extension information according to the preset generation algorithm and the salt, and The salt and salt value extension information is spliced into salt value information according to a preset order; the password encryption server generates the first target content according to the password, encrypts the salt value information according to the first target content, obtains the first ciphertext, deletes the salt; the password encryption server The key is obtained from the key management server, and C2 is obtained according to the second encryption algorithm and the key encryption C1; the password encryption server stores the user ID and C2 to the database.
  • the server may further include an HMAC encryption server.
  • the first target content includes a
  • the user password management method after receiving the user registration request, generates salt value extension information according to the salt value, and splicing the salt value and the salt value extension information into the salt value according to a preset order.
  • Information thereafter, the first ciphertext is obtained according to the password in the user registration request and the first encryption algorithm to encrypt the salt value information; and the first ciphertext is encrypted according to the preset key and the second encryption algorithm to obtain the second ciphertext.
  • the user ID in the user registration request is stored in association with the second ciphertext.
  • the first encryption algorithm and the second encryption algorithm are reversible encryption algorithms.
  • the above method solves the problem that the server needs to consume a large amount of storage space due to the need to store the salt value in the prior art; the effect of saving the storage space required by the server is achieved. .
  • this also ensures the concealment of the salt value to a certain extent, and avoids the attack of the password encrypted by the attacker by constructing the rainbow table.
  • the password is separately encrypted according to the salt value and the preset key, the security of the password is improved, and the problem of poor security of the password in the prior art is solved.
  • the first encryption algorithm is an exclusive OR algorithm
  • the two pieces of information participating in the exclusive OR operation need to be of equal length, for this case, the length of the first target content and the length of the salt value information are the same. . specific:
  • the length of the first target content and the length of the salt value information may be a preset length L.
  • L is greater than the length of the hash value and is also greater than the length of the salt value.
  • the server may generate the salt value extension information having the length L-Lsalt.
  • the method for generating the salt value extension information may include the following two types:
  • the first type generates salt extension information of a preset length according to a hash algorithm and a salt value.
  • the preset length Lmapstr L-Lsalt. Since the hash algorithm can output a fixed-length output result, in the first possible implementation, the server can directly output the preset length salt value extension information according to the hash algorithm.
  • the function value of the salt value is generated according to the preset function, and the content of the preset length in the function value is intercepted as the salt value extension information according to the preset interception manner.
  • the preset function may be a hash function, another encryption function, or an arbitrary function, which is not limited in this embodiment.
  • the preset intercept mode indicates which of the function values to start intercepting.
  • the server may also generate a salt value and a function value of other parameters according to a preset function, and other parameters may be a hash value, a password, or any other content, which is not limited in this embodiment.
  • HMAC-SHA256(HASH,salt) is the hash value of the password.
  • the above is only an example of the output function value of 256 bits. In actual implementation, other lengths may be output, which is not limited in this embodiment. In the above example, since both HASH and salt are secrets, the two can be interchanged in actual implementation.
  • the length of the first target content in step 203 is also L. Assuming that the length of the hash value is Lhash, Lhash ⁇ L, other parameters are included in the first target content. Taking the first target content including the hash value and the password extension information sorted in a predetermined order as an example, the information length of the password extension information is L-Lhash.
  • the password extension information may be the information THASH intercepted from the hash value.
  • THASH; when the predetermined order is THASH before the HASH is behind, JHASH THASH
  • the obtained first ciphertext C1 JHASH xorSmap.
  • xor is an exclusive OR operation.
  • FIG. 2D shows a schematic diagram of password encryption when the first encryption algorithm is an exclusive OR algorithm.
  • the length of the first target content and the salt value information is not fixed. Only the server takes one of the lengths and adjusts the length of the other to the same. For example, taking the length of the first target content as an example, when the first target content includes a hash value and a password, if the length is L′, the server generates the length L'-Lsalt when generating the salt value extension information. The length information is generated in a manner similar to that described above, and is not described herein again.
  • the user password management method further includes the following steps:
  • Step 207 Receive a user authentication request, where the user authentication request includes a user ID and a password to be authenticated.
  • the user may send a user authentication request to the server through the UE, and the server receives the user authentication request sent by the UE.
  • the user authentication request includes a user ID and a password to be authenticated.
  • Step 208 Obtain a second ciphertext corresponding to the user ID.
  • the server may obtain the second ciphertext corresponding to the user ID in the user authentication request according to the correspondence between the pre-stored user ID and the ciphertext.
  • Step 209 Decrypt the second ciphertext according to the preset key to obtain the first ciphertext.
  • the second encryption algorithm for encrypting the first ciphertext and then obtaining the second ciphertext is a reversible encryption algorithm. Therefore, after obtaining the second ciphertext, the server may decrypt and obtain the pre-stored preset key. Go to the second ciphertext and get the first ciphertext.
  • Step 210 Authenticate the password to be authenticated according to the password to be authenticated and the first ciphertext.
  • the above method achieves the effect of not requiring the I/O operation to read the salt value in the user authentication process, thereby improving the authentication efficiency.
  • the password authentication method greatly improves the authentication efficiency in the password authentication process as compared with the scheme of improving the password security by iteration.
  • Step 210 may include:
  • Step 210a Generate a second target content according to the password to be authenticated.
  • the second target content includes at least one of a password to be authenticated, a hash value of the password to be authenticated, and password extension information generated according to a hash value of the password to be authenticated. That is, the second target content may be: a password to be authenticated, or a hash value of the password to be authenticated, or a hash value and a password of the password to be authenticated, or generated according to a hash value of the password to be authenticated.
  • This step is similar to step 203 and will not be described here.
  • Step 210b Decrypt the first ciphertext according to the second target content.
  • the server can decrypt the first ciphertext according to the second target content.
  • step 210c the decryption result is split according to a preset order, and the salt value carried in the decrypted result and the salt value extension information other than the salt value are obtained.
  • the server can read the fixed length from the decrypted result in a preset order for the subsequent steps to be executed.
  • the content obtained is the salt value, and the remaining content is the salt value extension information.
  • the server can read from the first bit of the operation result and read the fixed length content, and the read content is the salt value, and the remaining content
  • the content is the salt value extension information.
  • Step 210d generating salt value extension information according to the preset generation algorithm and the split salt value.
  • This step is similar to step 202 and will not be described here.
  • step 210e if the generated salt value extension information is the same as the split salt value extension information, the password authentication to be authenticated is passed.
  • the generated salt value extension information is the same as the split salt value extension information, it indicates that the password to be authenticated is the same as the password corresponding to the pre-stored user ID. At this time, it is determined that the password authentication to be authenticated is passed. If the generated salt value extension information is different from the split salt value extension information, the server may determine that the password to be authenticated is different from the real password corresponding to the user ID. At this time, it is determined that the password authentication to be authenticated fails.
  • the authentication step in the method of user password management may be specifically implemented as: the password authentication server receives the user authentication request sent by the UE; the password authentication server acquires the C2 corresponding to the user ID from the database; and the password authentication server from the key management center Get the key, and decrypt the obtained C2 according to the obtained key to obtain C1; the password authentication server authenticates the password to be authenticated according to the password to be authenticated and C1.
  • the password authentication server may invoke an HMAC encryption server, and the HMAC server calculates a hash value of the password to be authenticated.
  • FIG. 3A is a flowchart of a method for managing a user password according to another embodiment of the present invention.
  • the method for managing the user password is used in the implementation environment shown in FIG. 1A to illustrate. .
  • the method for managing the user password may include:
  • Step 301 Receive a user registration request, where the user registration request includes a user ID and a password.
  • Step 302 Encrypt the password according to the preset key and the first encryption algorithm to obtain the first ciphertext.
  • the first encryption algorithm may be a reversible encryption algorithm or an irreversible encryption algorithm.
  • the first encryption algorithm may be HMAC, AES, DES, or RSA, which is not limited in this embodiment.
  • the first encryption algorithm may be an irreversible encryption algorithm, such as an HMAC algorithm, which is not limited in this embodiment.
  • Step 303 generating salt value extension information according to the salt value, and splicing the salt value and the salt value expansion information into the salt value information according to a preset order.
  • This step is similar to step 302 in the foregoing embodiment, and details are not described herein again.
  • Step 304 Generate a first target content according to the first ciphertext.
  • the first target content includes: a first ciphertext, and/or ciphertext extension information generated according to the first ciphertext. That is, the first target content may be: a first ciphertext, or a ciphertext extension information, or a combination of the first ciphertext and ciphertext extension information.
  • the step may include: generating the ciphertext extension information according to the preset extension algorithm and the first ciphertext.
  • the preset extension algorithm may include an algorithm for intercepting a fixed length of the hash value, or an encryption algorithm for encrypting the hash value, or an algorithm for outputting a function value corresponding to the hash value according to the preset function.
  • the length of the ciphertext extension information may or may not be fixed, which is not limited in this embodiment.
  • Step 305 Encrypt the salt value information according to the first target content and the second encryption algorithm to obtain a second ciphertext, and the second encryption algorithm is a reversible encryption algorithm.
  • the second encryption algorithm is an exclusive OR algorithm, an AES algorithm, a DES, an RSA algorithm, or other algorithms, which is not limited in this embodiment.
  • Step 306 Store the user ID and the second ciphertext in association.
  • the user password management method is performed in the implementation environment shown in FIG. 1A.
  • the user password management is performed in the implementation environment shown in FIG. 1B.
  • the method may be implemented as: the password encryption server receives the user registration request sent by the UE; obtains the key from the key management server, and encrypts the password in the user registration request according to the first encryption algorithm and the key to obtain the first ciphertext; the password encryption server The salt value generation server obtains the randomly generated salt, generates the salt value extension information according to the preset generation algorithm and the salt, and splices the salt and the salt value extension information into the salt value information according to the preset order, and deletes the salt; the password encryption server generates the data according to C1.
  • the first target content obtains C2 according to the first target content and the second encryption algorithm to encrypt the salt value information; the password encryption server stores the user ID and C2 to the database.
  • the server may further include an HMAC encryption server.
  • the password encryption server may also invoke an HMAC encryption server, and the ciphertext extension information is calculated by the HMAC encryption server.
  • the user password management method obtains the first ciphertext according to the preset key and the first encryption algorithm after receiving the user registration request, and generates a salt according to the salt value.
  • the value extension information is used to splicing the salt value and the salt value extension information into salt value information according to a preset order; thereafter, the salt value information is encrypted according to the first ciphertext and the second encryption algorithm to obtain a second ciphertext, and the user registration request is
  • the user ID is stored in association with the second ciphertext.
  • the second encryption algorithm is a reversible encryption algorithm.
  • the above method solves the problem that the server needs to consume a large amount of storage space due to the need to store the salt value in the prior art; the effect of saving the storage space required by the server is achieved. .
  • this also ensures the concealment of the salt value to some extent, and avoids the attack caused by the attacker's password for encrypting the salt value by constructing the rainbow table.
  • the password is encrypted according to the salt value and the preset key, the security of the password is improved, and the problem of poor security of the password in the prior art is solved.
  • the second encryption algorithm is an exclusive OR algorithm
  • the two pieces of information participating in the exclusive OR operation need to be equal in length, therefore, for this case,
  • the length of the first target content is the same as the length of the salt value information.
  • the length of the first target content and the length of the salt value information may be a preset length L.
  • L is greater than the length of the hash value and is also greater than the length of the salt value.
  • the server when generating the salt value extension information, the server can generate a salt having a length of L-Lsalt.
  • Value extension information The method for generating the salt value extension information may include the following two types:
  • the first type generates salt extension information of a preset length according to a hash algorithm and a salt value.
  • the function value of the salt value is generated according to the preset function, and the content of the preset length in the function value is intercepted as the salt value extension information according to the preset interception manner.
  • the length of the first target content in step 304 is also L. Assuming that the length of the hash value is Lc1 and Lc1 ⁇ L, other parameters are included in the first target content. Taking the first target content including the first ciphertext C1 and the ciphertext extension information as an example, the information length of the ciphertext extension information is L-Lc1.
  • the ciphertext extension information may be information TC1 intercepted from the hash value.
  • TC1; when the predetermined order is TC1 and the former C1 is after, J C1 TC1
  • the obtained second ciphertext C2 J C1xor Smap.
  • xor is an exclusive OR operation.
  • the length of the first target content and the salt value information is not fixed. Only the server takes one of the lengths and adjusts the length of the other to the same. For example, taking the length of the first target content as an example, when the first target content includes the first ciphertext and the ciphertext extension information, if the length is L′, the server generates the length when the salt value extension information is generated.
  • the L'-Lsalt length information is generated in a manner similar to that described above, and is not described herein again.
  • the user password management method further includes the following steps:
  • Step 307 Receive a user authentication request, where the user authentication request includes a user ID and a password to be authenticated.
  • Step 308 Obtain a second ciphertext corresponding to the user ID.
  • Step 309 Encrypt the password to be authenticated according to the first encryption algorithm and the preset key to obtain a third ciphertext.
  • Step 310 Authenticate the password to be authenticated according to the second ciphertext and the third ciphertext.
  • the above method achieves the effect of not requiring the I/O operation to read the salt value in the password authentication process, thereby improving the authentication efficiency.
  • the password authentication method greatly improves the authentication efficiency in the password authentication process as compared with the scheme of improving the password security by iteration.
  • step 310 may include:
  • Step 310a Generate a second target content according to the third ciphertext.
  • the second target content includes: a third ciphertext, and/or ciphertext extension information generated according to the third ciphertext. That is, the second target content may be: a third ciphertext, or a ciphertext extension information, or a third ciphertext and ciphertext extension information.
  • This step is similar to step 304 and will not be described here.
  • Step 310b Decrypt the second ciphertext according to the second target content.
  • the server may decrypt the second ciphertext according to the second target content.
  • step 310c the decryption result is split according to a preset order, and the salt value carried in the decrypted result and the salt value extension information other than the salt value are obtained.
  • step 310d the salt value extension information is generated according to the preset generation algorithm and the salt value obtained by the splitting.
  • Step 310e if the generated salt value extension information is the same as the split salt value extension information, the password to be authenticated Certification passed.
  • Steps 310c to 310e are similar to steps 210c to 210e in the foregoing embodiment, and are not described herein again.
  • FIG. 4 is a schematic diagram of a server for user password management according to an embodiment of the present invention.
  • the server 400 for user password management includes at least one processor 401, a communication bus 402, a memory 403, and at least one communication interface 404.
  • the processor 401 can be a general purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the present invention.
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • Communication bus 402 can include a path for communicating information between the components described above.
  • the communication interface 404 uses devices such as any transceiver for communicating with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), Wireless Local Area Networks (WLAN), and the like.
  • RAN Radio Access Network
  • WLAN Wireless Local Area Networks
  • the memory 403 may be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type that can store information and instructions.
  • the dynamic storage device can also be an Electrically Erasable Programmable Read-Only Memory (EEPROM), a Compact Disc Read-Only Memory (CD-ROM) or other optical disc storage, and a disc storage device. (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store desired program code in the form of instructions or data structures and can be Any other media accessed, but not limited to this.
  • the memory can exist independently and be connected to the processor via a bus.
  • the memory can also be integrated with the processor.
  • the memory 403 is used to store program code for executing the solution of the present invention, and is controlled by the processor 401 for execution.
  • the processor 401 is configured to execute program code stored in the memory 403.
  • the processor 401 may include one or more CPUs, such as CPU0 and CPU1 in FIG.
  • computer device 400 can include multiple processors, such as processor 401 and processor 408 in FIG. Each of these processors can be a single-CPU processor or a multi-core processor.
  • a processor herein may refer to one or more devices, circuits, and/or processing cores for processing data, such as computer program instructions.
  • the server 400 for user password management may further include an output device 405 and an input device 406.
  • Output device 405 is in communication with processor 401 and can display information in a variety of ways.
  • the output device 405 can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector.
  • Input device 406 is in communication with processor 401 and can accept user input in a variety of ways.
  • input device 406 can be a mouse, keyboard, touch screen device, or sensing device, and the like.
  • the above-described user password management server 400 can be a general purpose computer device or a dedicated computer device.
  • the server 400 for user password management may be a desktop computer, a portable computer, a network server, a personal digital assistant (PDA), a mobile phone, a tablet, a wireless terminal device, a communication device, an embedded device, or A device of similar construction in Figure 4.
  • PDA personal digital assistant
  • the embodiment of the present invention does not limit the type of server 400 for user password management.
  • One or more software modules are stored in the memory of the server for user password management.
  • the user password management server can implement the software module through the processor and the program code in the memory to realize the management of the user password.
  • FIG. 5 is a schematic structural diagram of a server for user password management according to an embodiment of the present invention.
  • the server for managing the user password may include: a receiving unit 510, a generating unit 520, and an encryption unit. 530 and storage unit 540.
  • the receiving unit 510 is configured to receive a user registration request, where the user registration request includes a user identifier ID and a password;
  • a generating unit 520 configured to generate salt value extension information according to the salt value, and splicing the salt value and the salt value extension information into salt value information according to a preset order;
  • the encryption unit 530 is configured to encrypt the salt value information according to the password and the first encryption algorithm to obtain a first ciphertext; the first encryption algorithm is a reversible encryption algorithm;
  • the encryption unit 530 is further configured to: encrypt the first ciphertext according to a preset key and a second encryption algorithm to obtain a second ciphertext, where the second encryption algorithm is a reversible encryption algorithm;
  • the storage unit 540 is configured to store the user ID and the second ciphertext in association.
  • the server for managing the user password after receiving the user registration request, generates the salt value extension information according to the salt value, and splicing the salt value and the salt value extension information into the salt value according to a preset order.
  • Information thereafter, the first ciphertext is obtained according to the password in the user registration request and the first encryption algorithm to encrypt the salt value information; and the first ciphertext is encrypted according to the preset key and the second encryption algorithm to obtain the second ciphertext.
  • the user ID in the user registration request is stored in association with the second ciphertext.
  • the first encryption algorithm and the second encryption algorithm are reversible encryption algorithms.
  • the above method solves the problem that the server in the prior art requires a large amount of storage space due to the need to store the salt value, and the server can save the user password management.
  • the effect of the storage space required since there is no need to store the salt value, this also ensures the concealment of the salt value to a certain extent, and avoids the attack of the password encrypted by the attacker by constructing the rainbow table.
  • the password since the password is separately encrypted according to the salt value and the preset key, the security of the password is improved, and the problem of poor security of the password in the prior art is solved.
  • the encryption unit 530 is further configured to:
  • the first target content includes at least one of the password, a hash value of the password, and password extension information generated according to a hash value of the password ;
  • the salt value information is encrypted according to the first target content and the first encryption algorithm.
  • the first encryption algorithm is an exclusive OR algorithm
  • the generating unit 520 is further configured to generate, according to the salt value, the salt value extension information of a preset length, where the preset length is a difference between a length of the first target content and a length of the salt value.
  • the generating unit 520 is further configured to:
  • the server further includes:
  • the receiving unit 510 is further configured to receive a user authentication request, where the user authentication request includes the user ID and a password to be authenticated;
  • An obtaining unit configured to acquire the second ciphertext corresponding to the user ID
  • a decrypting unit configured to decrypt the second ciphertext according to the preset key, to obtain the first ciphertext
  • An authentication unit configured to authenticate the password to be authenticated according to the password to be authenticated and the first ciphertext.
  • the authenticating unit is further configured to:
  • the password authentication to be authenticated is passed.
  • FIG. 6 is a schematic structural diagram of a server for user password management according to an embodiment of the present invention.
  • the server for managing the user password may include: a receiving unit 610, an encryption unit 620, and a generating unit. 630 and storage unit 640.
  • the receiving unit 610 is configured to receive a user registration request, where the user registration request includes a user identifier ID and a password;
  • the encryption unit 620 is configured to encrypt the password according to the preset key and the first encryption algorithm to obtain the first ciphertext;
  • a generating unit 630 configured to generate salt value extension information according to the salt value, and splicing the salt value and the salt value expansion information into salt value information according to a preset order;
  • the encryption unit 620 is further configured to use the first ciphertext and the second encryption algorithm. Encrypting the salt value information to obtain a second ciphertext, and the second encryption algorithm is a reversible encryption algorithm;
  • the storage unit 640 is configured to store the user ID and the second ciphertext in association.
  • the server for managing the user password obtains the first ciphertext according to the preset key and the first encryption algorithm after receiving the user registration request, and generates a salt according to the salt value.
  • the value extension information is used to splicing the salt value and the salt value extension information into salt value information according to a preset order; thereafter, the salt value information is encrypted according to the first ciphertext and the second encryption algorithm to obtain a second ciphertext, and the user registration request is
  • the user ID is stored in association with the second ciphertext.
  • the second encryption algorithm is a reversible encryption algorithm.
  • the above method solves the problem that the server in the prior art requires a large amount of storage space due to the need to store the salt value, and the server can save the user password management.
  • the effect of the storage space required since there is no need to store the salt value, this also ensures the concealment of the salt value to some extent, and avoids the attack caused by the attacker's password for encrypting the salt value by constructing the rainbow table.
  • the password since the password is encrypted according to the salt value and the preset key, the security of the password is improved, and the problem of poor security of the password in the prior art is solved.
  • the encryption unit 620 is further configured to:
  • the first target content includes: the first ciphertext, and/or ciphertext extension information generated according to the first ciphertext;
  • the salt value information is encrypted according to the first target content and the second encryption algorithm.
  • the second encryption algorithm is an exclusive OR algorithm
  • the generating unit 630 is further configured to generate, according to the salt value, the salt value extension information of a preset length, where the preset length is a difference between a length of the first target content and a length of the salt value.
  • the generating unit 630 is further configured to:
  • the receiving unit 610 is further configured to receive a user authentication request, where the user authentication request includes the user ID and a password to be authenticated;
  • An obtaining unit configured to acquire the second ciphertext corresponding to the user ID
  • the encryption unit is further configured to encrypt the password to be authenticated according to the first encryption algorithm and the preset key to obtain a third ciphertext;
  • An authentication unit configured to authenticate the password to be authenticated according to the second ciphertext and the third ciphertext.
  • the authenticating unit is further configured to:
  • the second target content includes: the third ciphertext, and/or ciphertext extension information generated according to the third ciphertext;
  • the password authentication to be authenticated is passed.
  • embodiments of the present invention can be provided as a method, server (device), or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • the computer program is stored/distributed in a suitable medium, provided with other hardware or as part of the hardware, or in other distributed forms, such as over the Internet or other wired or wireless telecommunication systems.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种用户口令管理的方法和服务器,涉及计算机领域,所述方法包括:通过在接收到包括用户ID和口令的用户注册请求之后,根据盐值生成盐值扩展信息,将所述盐值和所述盐值扩展信息按照预设顺序拼接为盐值信息,进而在口令加密后,只需将用户ID和两次加密后的第二密文关联存储,而无需存储盐值;解决了现有技术中由于需要存储盐值而导致服务器需要耗费大量存储空间的问题。由于无需存储盐值,因此避免了攻击者通过窃取盐值,并构造彩虹表攻击破解用户口令。

Description

用户口令管理的方法和服务器
本申请要求于2016年8月5日提交中国专利局、申请号为201610639733.9,发明名称为“用户口令管理的方法和服务器”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明实施例涉及计算机技术领域,特别涉及一种用户口令管理的方法和服务器。
背景技术
在大数据时代,为了防止对大数据系统中信息资源的非授权访问,在访问大数据系统前需要认证用户。现有的一种用户认证方式为基于用户标识(Identification,ID)和口令的认证方式。实际实现时,为了保证口令的安全,在用户注册是通常需要对口令进行加密。
现有的一种用户注册的方法包括:接收用户注册请求,该用户注册请求中携带有用户ID和口令;生成一个随机数作为盐值;根据盐值,加密口令,得到口令密文;将用户ID、口令密文以及盐值关联存储。这样,在用户登录服务器,需要用户认证时,接收用户认证请求,用户认证请求中携带有用户ID和待认证的口令;获取用户ID所对应的口令密文以及盐值,根据预设加密算法以及获取到的盐值,加密该待认证的口令,得到口令密文;若计算得到的口令密文与获取到的口令密文一致,则认证通过。
发明人在实现本发明的过程中,发现上述过程至少存在如下问题:由于加密口令后需要将盐值与用户ID和口令密文关联存储,所以这就导致存储盐值时耗费了一定的存储空间。特别的,当加密的口令较多时,服务器需要耗费大量的存储资源来存储每个口令所对应的盐值,并且在认证的时候,还需要从存储资源中获取相应的盐值,从而消耗了大量的输入输出(I/O)资源。此外,服务器存储的盐值可能会被攻击者利用,进而通过构造彩虹表针对盐值所加密的口令进行攻击。
发明内容
为了解决现有技术中口令加密后需要耗费存储空间来存储盐值的问题,本发明实施例提供了一种用户口令管理的方法和服务器,所述技术方案如下:
第一方面,提供了一种用户口令管理的方法,该方法包括:
服务器接收用户设备(User Equipment,UE)发送的包括用户ID和口令的用户注册请求。在接收到用户注册请求之后,生成一个随机字符串作为盐值,根据预设生成算法以及盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息。其中,预设顺序可以为盐值在前盐值扩展信息在后,也可以为盐值扩展信息在前盐值在后,在此不做限定。
服务器接收到用户注册请求之后,根据口令以及第一加密算法,加密盐值信息,得到第一密文;第一加密算法为可逆加密算法。可选地,第一加密算法可以为异或算法、高级加密标准(Advanced Encryption Standard,AES)算法、数据加密标准(Data Encryption Standard,DES)、RSA算法或者其它算法,本实施例对此并不做限定。
此后,服务器可以根据预设密钥以及第二加密算法,加密第一密文,得到第二密文,第二加密算法为可逆加密算法。第二加密算法可以为AES算法或者RSA算法。
在得到第二密文之后,将用户ID和第二密文关联存储。
通过在接收到用户注册请求之后,根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息;此后,根据用户注册请求中的口令以及第一加密算法加密盐值信息,得到第一密文;并根据预设密钥以及第二加密算法加密第一密文,得到第二密文,将用户注册请求中的用户ID和第二密文关联存储。其中,第一加密算法和第二加密算法为可逆加密算法。由于在口令加密之后,无需存储盐值,因此,上述方法解决了现有技术中由于需要存储盐值而导致服务器需要耗费大量存储空间的问题;达到了可以节省服务器所需占用的存储空间的效果。同时,由于无需存储盐值,因此这也一定程度上保证了盐值的隐秘性,避免了攻击者通过构造彩虹表对盐值所加密的口令造成的攻击。此外,由于根据盐值和预设密钥分别加密口令,提高了口令的安全性,解决了现有技术中口令的安全性较差的问题。
在一种可能的设计中,服务器加密盐值信息的步骤可以包括:
根据口令生成第一目标内容,第一目标内容包括口令、口令的哈希值以及根据口令的哈希值生成的口令扩展信息中的至少一种;
根据第一目标内容以及第一加密算法,加密盐值信息。
实际实现时,为了保证加密后的口令无法被解密,进而提高口令的安全性,第一目标内容可以包括口令哈希值或者口令扩展信息。
在另一种可能的设计中,当第一目标内容包括口令哈希值时,服务器生成第一目标内容的步骤可以包括:根据哈希算法生成口令的哈希值。哈希算法为将任意长度的二进制值映射为固定长度的二进制值,映射后的二进制值称为哈希值。其中,不同内容所对应的哈希值相同的概率小于阈值,且在得到哈希值之后,无法通过哈希值得到输入。而当第一目标内容包括口令扩展信息时,服务器生成第一目标内容的步骤可以包括:根据预设扩展算法以及口令的哈希值生成该口令扩展信息。其中,预设扩展算法可以包括截取哈希值中的固定长度的算法,或者,对哈希值进行加密的加密算法,或者,根据预设函数输出哈希值所对应的函数值的算法。并且,口令扩展信息的长度可以固定,也可以不固定,本实施例对此并不做限定。
在另一种可能的设计中,当第一加密算法为异或算法时,由于异或算法要求参与运算的两条信息的长度相同,因此,上述生成盐值扩展信息的步骤可以包括:根据预设生成算法以及盐值生成预设长度的盐值扩展信息,预设长度为第一目标内容的长度和盐值的长度之差。
通过生成长度与第一目标内容的长度相同的盐值信息,使得服务器可以根据第一目标内容和异或算法加密盐值信息,进而得到第一密文,达到了可以隐藏盐值至第一密文的效果。
在另一种可能的设计中,服务器生成预设长度的盐值扩展信息的生成方式可以包括如下两种:
第一种,根据哈希算法以及盐值生成预设长度的盐值扩展信息。
第二种,根据预设函数生成盐值的函数值,根据预设截取方式从函数值中截取预设长度的内容作为盐值扩展信息。
此外,在生成盐值信息之后,为了节省服务器的存储空间,服务器可以直接删除盐值。
在另一种可能的设计中,该方法还包括:
接收用户认证请求,用户认证请求中包括用户ID以及待认证的口令。
由于口令加密之后,服务器会将用户ID和加密得到的第二密文关联存储,因此,在服务器接收到用户认证请求之后,服务器可以查询用户ID所对应的第二密文。
另外,由于加密第一密文,得到第二密文时使用的第二加密算法为可逆加密算法,因此,为了后续步骤的执行,服务器可以根据预设密钥解密第二密文,得到第一密文。
根据待认证的口令以及第一密文,认证待认证的口令。
由于在口令认证过程中,由于无需读取盐值,因此上述方法达到了在口令认证过程中无需耗费I/O操作来读取盐值,提高了认证效率的效果。同时,该口令认证方法相对于通过迭代提高口令安全性的方案来说,也大大提高了口令认证过程中的认证效率。
在一种可能的设计中,对待认证的口令认证的步骤可以包括:
根据待认证的口令,生成第二目标内容,第二目标内容包括待认证的口令、待认证的口令的哈希值以及根据待认证的口令的哈希值生成的口令扩展信息中的至少一种;
根据第二目标内容解密第一密文;
按照预设顺序拆分解密结果,得到解密结果中携带的盐值以及除盐值之外的盐值扩展信息;
根据拆分得到的盐值生成盐值扩展信息;
若生成的盐值扩展信息与拆分得到的盐值扩展信息相同,则对待认证的口令认证通过。
第二方面,提供了一种用户口令管理的方法,该方法包括:
接收用户注册请求,用户注册请求中包括用户标识ID和口令;
在接收到用户注册请求之后,服务器可以根据预设密钥以及第一加密算法加密口令,得到第一密文;该第一加密算法可以为可逆加密算法也可以为不可逆加密算法。并且,实际实现时,为了保证加密后的口令无法被解密,此处所说的第一加密算法可以为不可逆加密算法。
在接收到用户注册请求之后,服务器还可以根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息。其中,预设顺序可以为盐值在前盐值扩展信息在后,也可以为盐值扩展信息在前盐值在后,对此并不做限定。
在得到第一密文以及盐值信息之后,服务器可以根据第一密文以及第二加密算法加密盐值信息,得到第二密文,第二加密算法为可逆加密算法。
此后,将用户ID和第二密文关联存储。
通过在接收到用户注册请求之后,根据预设密钥以及第一加密算法加密口令,得到第一密文,并根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息;此后,根据第一密文以及第二加密算法加密盐值信息,得到第二密文,将用户注册请求中的用户ID和第二密文关联存储。其中,第二加密算法为可逆加密算法。由于在口令加密之后,无需存储盐值,因此,上述方法解决了现有技术中由于需要存储盐值而导致服务器需要耗费大量存储空间的问题;达到了可以节省服务器所需占用的存储空间的效果。同时,由于无需存储盐值,因此这也一定程度上保证了盐值的隐秘性,避免了攻击者通过构造彩虹表对盐值加密的口令造成的攻击。此外,由于根据盐值和预设密钥同时加密口令,提高了口令的安全性,解决了现有技术中口令的安全性较差的问题。
在一种可能的设计中,服务器加密盐值信息的步骤可以包括:
根据第一密文生成,第一目标内容,第一目标内容包括:第一密文,和/或,根据第一密文生成的密文扩展信息。
根据第一目标内容以及第二加密算法,加密盐值信息。
在另一种可能的设计中,当第二加密算法为异或算法时,由于异或算法要求参与运算的两条信息的长度相同,因此,上述生成盐值扩展信息的步骤可以包括:根据盐值生成预设长度的盐值扩展信息,预设长度为第一目标内容的长度和盐值的长度之差。
通过生成长度与第一目标内容的长度相同的盐值信息,使得服务器可以根据第一目标内 容和异或算法加密盐值信息,进而得到第一密文,达到了可以隐藏盐值至第一密文的效果。
在另一种可能的设计中,服务器生成预设长度的盐值扩展信息的生成方式可以包括如下两种:
第一种,根据哈希算法以及盐值生成预设长度的盐值扩展信息。
第二种,根据预设函数,生成盐值的函数值,根据预设截取方式从函数值中截取预设长度的内容作为盐值扩展信息。
此外,在第二方面以及第二方面的各种可能的实现方式中,在生成盐值信息之后,为了节省服务器的存储空间,服务器可以直接删除盐值。
在另一种可能的设计中,该方法还包括:
接收用户认证请求,用户认证请求中包括用户ID以及待认证的口令。
口令加密之后,服务器可以将用户ID和加密得到的第二密文关联存储,因此为了实现口令认证,服务器接收到用户认证请求之后,服务器可以获取用户ID所对应的第二密文。
根据第一加密算法以及预设密钥,加密待认证的口令,得到第三密文。
根据第二密文以及第三密文,认证待认证的口令。
在口令认证过程中,由于无需读取盐值,因此上述方法达到了在口令认证过程中无需耗费I/O操作来读取盐值,提高了认证效率的效果。同时,该口令认证方法相对于通过迭代提高口令安全性的方案来说,也大大提高了口令认证过程中的认证效率。
在另一种可能的设计中,认证待认证的口令的步骤可以包括:
根据第三密文生成第二目标内容,第二目标内容包括:第三密文,和/或,根据第三密文生成的密文扩展信息;
根据第二目标内容解密第二密文;
按照预设顺序拆分解密结果,得到解密结果中携带的盐值以及除盐值之外的盐值扩展信息;
根据预设生成算法以及拆分得到的盐值生成盐值扩展信息;
若生成的盐值扩展信息与拆分得到的盐值扩展信息相同,则对待认证的口令认证通过。
第三方面,本发明实施例提供了一种用户口令管理的服务器,该用户口令管理的服务器具有实现上述第一方面或者第二方面中服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该用户口令管理的服务器的结构中包括处理器和存储器,所述存储器用于存储支持该用户口令管理的服务器执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。该用户口令管理的服务器还可以包括通信接口,用于该虚拟网络中部署业务的服务器与其他设备或通信网络通信。
第三方面,本发明实施例提供了一种计算机存储介质,用于储存为上述用户口令管理的服务器所用的计算机软件指令,其包含用于执行上述方面为用户口令管理的服务器所设计的程序。
相较于现有技术,本发明提供的方案可以结合服务器上存储的密钥、用户记忆的口令P和随机盐值salt,通过两层加密方法来共同保护口令,不但可以保证高效的认证效率,而且可以大大提升暴力破解和字典攻击的难度。此外,由于加密后可以把盐值直接删除,攻击者即使获得机器上存储的密钥,也无法通过彩虹表攻击破解单个口令。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A和图1B是本发明各个实施例所涉及的实施环境的示意图。
图2A是本发明一个实施例提供的用户口令管理的方法的方法流程图。
图2B是本发明一个实施例提供的用户口令管理的方法的示意图。
图2C是本发明一个实施例提供的用户口令管理的方法的另一示意图。
图2D是本发明一个实施例提供的用户口令加密的示意图。
图2E是本发明一个实施例提供的用户口令管理的方法流程图。
图2F是本发明一个实施例提供的对盐值信息进行认证的方法流程图。
图3A是本发明另一实施例提供的用户口令管理的方法的方法流程图。
图3B是本发明一个实施例提供的用户口令管理的方法流程图。
图3C是本发明一个实施例提供的对盐值信息进行认证的方法流程图。
图4是本发明一个实施例提供的用户口令管理的服务器结构示意图。
图5是本发明另一实施例提供的用户口令管理的服务器的结构示意图。
图6是本发明另一个实施例提供的用户口令管理的服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。请参考图1A,其示出了本发明各个实施例所涉及的实施环境的示意图。如图1A所示,该实施环境包括UE110和服务器120。
UE110可以为诸如手机、平板电脑、台式电脑或者笔记本电脑之类的终端,用户可以通过该UE110向服务器120发送用户注册请求或者用户认证请求。UE110可以通过有线或者无线网络与服务器120相连。UE110可以有一个,也可以有多个,本实施例对此UE的数量并不做限定。
服务器120为用于提供用户注册服务以及用户认证服务的服务器。在本发明各个实施例中,服务器120中可以预先存储有用于加密口令的预设密钥,并且可以生成用于加密口令的盐值。其中,本实施例对预设密钥的长度和预设密钥中包含的字符并不做限定,盐值为固定长度的随机字符串。
图1A只是以服务器120为一台服务器来举例,可选地,该服务器120还可以为由多台服务器构成的服务器集群。比如,请参考图1B,该服务器120可以包括:密钥管理服务器121、盐值生成服务器122、口令加密服务器123、口令认证服务器124以及数据库125。
所述盐值生成服务器122,用于当接收到一个获取请求时,生成一个随机字符串作为盐值。
所述口令加密服务器123,用于从密钥管理服务器121获取密钥以及从盐值生成服务器122获取盐值,并根据所述密钥和所述盐值,加密用户的口令。将加密后的口令密文以及用 户ID发送给数据库125,以便于数据库125关联存储所述加密后的口令密文以及用户ID。
所述口令认证服务器124,用于根据用户ID,从数据库125获取存储的口令密文,并从密钥管理服务器121获取密钥。根据口令密文以及密钥,认证用户发送的口令,将认证的结果返回给用户。
所述密钥管理服务器121,用于生成和存储密钥。密钥管理服务器121生成密钥是本领域人员公知的技术,本发明对于生成密钥的方法不做限定。出于安全性考虑,对于密钥的存储,密钥管理服务器121可以采用根密钥加密生成的密钥,然后存储加密后的密钥密文。根密钥是由多个密钥组件共同确定的。为了保护根密钥,需要对多个密钥组件的存储进行特别的限制:(1)多个密钥组件分散存储在密钥管理服务器121本地,增加攻击者同时得到全部的密钥组件并破解出根密钥的难度;(2)设置访问控制策略限制服务器120外部的设备访问密钥组件,例如不允许使用任何通信接口(如:文件传输协议(File Transfer Protocol,FTP)、人机语言(Man-Machine Language,MML))供服务器120外部的设备访问。
所述数据库125,用于关联存储口令加密模块生成的口令密文和用户ID,以及根据口令认证模块发送的用户ID,返回相应的口令密文。
在用户注册阶段,用户通过UE110向服务器120发送用户注册请求,该用户注册请求中包括用户ID以及口令。服务器120的口令加密服务器123接收到用户的注册请求后,向盐值生成服务器122发送随机数获取请求。盐值生成服务器122接收到口令加密服务器123发送的随机数获取请求后,生成一个随机字符串作为盐值,并返回给口令加密服务器123。口令加密服务器123从密钥管理服务器121获取预设的密钥,根据盐值以及预设密钥,加密用户的口令,得到加密后的口令密文。口令加密服务器123将加密后的口令密文以及用户ID发送给数据库125,以便于数据库125关联存储所述加密后的口令密文以及用户ID。
在用户认证阶段,用户通过UE110向服务器120发送用户认证请求,该用户认证请求中包括用户ID以及待认证的口令。服务器120的口令认证服务器124接收到用户的认证请求后,从密钥管理服务器121获取预设的密钥;根据用户认证请求中的用户ID,从数据库125获取与所述用户ID对应的口令密文。根据获取的口令密文和密钥,认证所述用户认证请求中的待认证的口令。
请参考图2A,其示出了本发明一个实施例提供的用户口令管理方法的方法流程图。如图2A所示,该用户口令管理的方法可以包括:
步骤201,接收用户注册请求,用户注册请求中包括用户ID和口令。
用户在注册过程中,用户可以通过UE发送用户注册请求至服务器,相应的,服务器可以接收UE发送的该用户注册请求。
步骤202,根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息。
可选地,服务器可以根据预设生成算法以及盐值生成该盐值扩展信息。盐值为随机生成的固定长度的字符串,并且,盐值扩展信息也为固定长度字符串。
预设生成算法可以为加密算法或者是其他任意函数。比如,预设生成算法为mapstr=a*salt+b,a和b为常数,salt为盐值,mapstr为盐值扩展信息。
可选地,本步骤可以包括:服务器根据预设生成算法、盐值以及其它参数生成该盐值扩展信息。其中,其它参数可以为口令、口令的哈希值或者同时包括上述两者。
以其它参数包括口令为例,mapstr=a*salt+b*P+c,a、b和c为常数,salt为盐值,P为口令;可选地,mapstr还可以为根据预设加密算法以及口令加密盐值后得到的信息。该预设加密算法可以为可逆加密算法,也可以为不可逆加密算法,本实施例对此并不做限定。比如,以预设加密算法为密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code,HMAC)为例,mapstr=HMAC(salt,P)。
在生成盐值扩展信息之后,可以将盐值和盐值扩展信息按照预设顺序拼接为盐值信息。其中,预设顺序可以为盐值在前盐值扩展信息在后,或者,盐值扩展信息在前盐值在后,本实施例对此并不做限定。比如,盐值信息Smap=salt||mapstr,或者,Smap=mapstr||salt。
在一个具体例子中,假设盐值为1011101,盐值扩展信息为011010,且预设顺序为盐值在前,盐值扩展信息在后,则按照预设顺序将盐值和盐值扩展信息拼接之后,得到的盐值信息为1011101011010。
需要说明的一点是,本实施例所说的盐值扩展信息可以为预设长度也可以为不限长度,本实施例对此并不做限定。并且,当盐值扩展信息为预设长度时,服务器可以通过按照预设截取方式对上述生成的内容进行截取的方式来得到的内容。
需要说明的另一点是,在生成盐值信息之后,为了节省服务器的存储空间,服务器可以删除盐值。
步骤203,根据口令生成第一目标内容。
第一目标内容包括口令、口令的哈希值以及根据口令的哈希值生成的口令扩展信息中的至少一种。这也就是说,第一目标内容可以为:口令,或者,口令的哈希值,或者,哈希值和口令,或者,根据哈希值生成的口令扩展信息,或者,哈希值和口令扩展信息,或者,口令扩展信息和口令,或者,哈希值、口令扩展信息以及口令。
可选地,为了使得加密后的口令无法被解密,进而提高口令的安全性,第一目标内容可以包括哈希值或者根据哈希值生成的口令扩展信息。
可选地,当第一目标内容包括口令的哈希值时,本步骤可以包括:根据哈希算法生成口令的哈希值。哈希算法为将任意长度的二进制值映射为固定长度的二进制值,映射后的二进制值称为哈希值。其中,不同内容所对应的哈希值相同的概率小于阈值,且在得到哈希值之后,无法通过哈希值得到输入。
可选地,当第一目标内容包括口令扩展信息时,本步骤可以包括:根据预设扩展算法以及口令的哈希值生成该口令扩展信息。其中,预设扩展算法可以包括截取哈希值中的固定长度的算法,或者,对哈希值进行加密的加密算法,或者,根据预设函数输出哈希值所对应的函数值的算法。并且,口令扩展信息的长度可以固定,也可以不固定,本实施例对此并不做限定。
步骤204,根据第一目标内容以及第一加密算法,加密盐值信息,得到第一密文。
第一加密算法为可逆加密算法。可选地,第一加密算法为异或算法、高级加密标准(Advanced Encryption Standard,AES)算法、数据加密标准(Data Encryption Standard,DES)、RSA算法或者其它算法,本实施例对此并不做限定。
步骤205,根据预设密钥以及第二加密算法,加密第一密文,得到第二密文。
第二加密算法为可逆加密算法。比如,可以为AES算法或者RSA算法,本实施例对此并不做限定。以第二加密算法为AES算法为例,第二密文C2=AES(C1,key),C1为第一密文,key为预设密钥。
步骤206,将用户ID和第二密文关联存储。
请参考图2B,其示出了本实施例提供的用户口令管理的方法的示意图。
上述只是以该用户口令管理的方法用于图1A所示的实施环境中来举例,可选地,当该用户口令管理的方法用于图1B所示的实施环境中时,请参考图2C,该用户口令管理的方法可以实现为:口令加密服务器接收UE发送的用户注册请求;口令加密服务器从盐值生成服务器中获取随机生成的salt,根据预设生成算法以及salt生成盐值扩展信息,将salt和盐值扩展信息按照预设顺序拼接为盐值信息;口令加密服务器根据口令生成第一目标内容,根据第一目标内容加密盐值信息,得到第一密文,删除salt;口令加密服务器从密钥管理服务器中获取key,根据第二加密算法以及key加密C1,得到C2;口令加密服务器将用户ID和C2存储至数据库。可选地,服务器中还可以包括HMAC加密服务器,在第一目标内容中包括口令的哈希值或者口令扩展信息时,口令加密服务器还可以调用HMAC加密服务器,通过该HMAC加密服务器来计算口令的哈希值。
综上所述,本实施例提供的用户口令管理的方法,通过在接收到用户注册请求之后,根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息;此后,根据用户注册请求中的口令以及第一加密算法加密盐值信息,得到第一密文;并根据预设密钥以及第二加密算法加密第一密文,得到第二密文,将用户注册请求中的用户ID和第二密文关联存储。其中,第一加密算法和第二加密算法为可逆加密算法。由于在口令加密之后,无需存储盐值,因此,上述方法解决了现有技术中由于需要存储盐值而导致服务器需要耗费大量存储空间的问题;达到了可以节省服务器所需占用的存储空间的效果。同时,由于无需存储盐值,因此这也一定程度上保证了盐值的隐秘性,避免了攻击者通过构造彩虹表对盐值所加密的口令造成的攻击。此外,由于根据盐值和预设密钥分别加密口令,提高了口令的安全性,解决了现有技术中口令的安全性较差的问题。
需要补充说明的是,当第一加密算法为异或算法时,由于参与异或运算的两条信息需要等长,因此,对于此种情况,第一目标内容的长度和盐值信息的长度相同。具体的:
作为一种可能的实现方式,第一目标内容的长度和盐值信息的长度可以为预先设定的长度L。通常情况下,L大于哈希值的长度,且也大于盐值的长度。
则此时,在步骤202中,在生成盐值扩展信息时,服务器可以生成长度为L-Lsalt的盐值扩展信息。其中,盐值扩展信息的生成方式可以包括如下两种:
第一种,根据哈希算法以及盐值生成预设长度的盐值扩展信息。
预设长度Lmapstr=L-Lsalt。由于哈希算法可以输出固定长度的输出结果,因此,在第一种可能的实现方式中,服务器可以根据哈希算法直接输出该预设长度的盐值扩展信息。
第二种,根据预设函数生成盐值的函数值,按照预设截取方式截取函数值中的预设长度的内容作为盐值扩展信息。
其中,该预设函数可以是哈希函数、其它加密函数或者任意函数,本实施例对此并不做限定。预设截取方式表示从函数值中的哪一位开始截取。
实际实现时,服务器还可以根据预设函数生成盐值以及其它参数的函数值,其它参数可以为哈希值、口令或者其它任意内容,本实施例对此并不做限定。
以其它参数为哈希值且预设函数为哈希函数为例,服务器计算得到的函数值为H=HMAC-SHA256(HASH,salt),HASH为口令的哈希值。以预设截取方式为从第一位开始截取, 则截取得到的盐值扩展信息mapstr=H(1:Lmapstr),且截取到的内容为H的前Lmapstr位。上述只是以输出的函数值为256位来举例,实际实现时,还可以输出其他长度,本实施例对此并不做限定。上述举例中由于HASH和salt均为秘密,因此实际实现时两者可以互换。
类似的,步骤203中的第一目标内容的长度也为L。假设哈希值的长度为Lhash,Lhash<L,则第一目标内容中还包括其它参数。以第一目标内容包括按照预定顺序排序的哈希值和口令扩展信息为例,口令扩展信息的信息长度为L-Lhash。该口令扩展信息可以为从哈希值中截取到的信息THASH。预定顺序为HASH在前THASH在后时,第一目标内容JHASH=HASH||THASH;在预定顺序为THASH在前HASH在后时,JHASH=THASH||HASH。
相应的,在异或第一目标内容和盐值信息后,得到的第一密文C1=JHASH xorSmap。其中,xor为异或运算。
请参考图2D,其示出了当第一加密算法为异或算法时,口令加密的示意图。
作为另一种可能的实现方式,第一目标内容和盐值信息的长度不固定。只是服务器以其中一个长度为准,将另一个的长度调至相同。比如,以第一目标内容的长度为准来举例,在第一目标内容包括哈希值和口令时,若长度为L’,则服务器在生成盐值扩展信息时,生成长度为L’-Lsalt长度的信息,其生成方式与上述所说的生成方式类似,本实施例在此不再赘述。
在用户成功注册之后,当用户再次接入时,需要对用户进行认证,请参考图2E,该用户口令管理的方法还包括如下步骤:
步骤207,接收用户认证请求,用户认证请求中包括用户ID和待认证的口令。
当需要进行用户认证时,用户可以通过UE发送用户认证请求至服务器,服务器接收该UE发送的该用户认证请求。其中,用户认证请求中包括用户ID和待认证的口令。
步骤208,获取用户ID所对应的第二密文。
在接收到用户认证请求之后,服务器可以根据预先存储的用户ID与密文之间的对应关系,获取用户认证请求中的用户ID所对应的第二密文。
步骤209,根据预设密钥解密第二密文,得到第一密文。
由于口令加密过程中,加密第一密文进而得到第二密文的第二加密算法为可逆加密算法,因此,在获取到第二密文之后,服务器可以根据预先存储的预设密钥解密获取到的第二密文,得到第一密文。
步骤210,根据待认证的口令以及第一密文,认证待认证的口令。
在对认证用户的过程中,由于无需读取盐值,因此上述方法达到了在用户认证过程中无需耗费I/O操作来读取盐值,提高了认证效率的效果。同时,该口令认证方法相对于通过迭代提高口令安全性的方案来说,也大大提高了口令认证过程中的认证效率。
基于上述实施例,在一种可能的实现方式中,请参考图2F,步骤210可以包括:
步骤210a,根据待认证的口令生成第二目标内容。
第二目标内容包括待认证的口令、待认证的口令的哈希值以及根据待认证的口令的哈希值生成的口令扩展信息中的至少一种。也即第二目标内容可以为:待认证的口令,或者,待认证的口令的哈希值,或者,待认证的口令的哈希值和口令,或者,根据待认证的口令的哈希值生成的口令扩展信息,或者,待认证的口令的哈希值和口令扩展信息,或者,口令扩展 信息和口令,或者,待认证的口令的哈希值、口令扩展信息以及口令。
本步骤与步骤203类似,在此不再赘述。
步骤210b,根据第二目标内容解密第一密文。
由于第一加密算法为可逆加密算法,因此,服务器可以根据该第二目标内容解密第一密文。
步骤210c,按照预设顺序拆分解密结果,得到解密结果中携带的盐值以及除盐值之外的盐值扩展信息。
由于盐值的长度固定,且在步骤202中将盐值和盐值扩展信息按照预设顺序进行拼接,因此,为了后续步骤执行,服务器可以按照预设顺序从解密结果中读取固定长度,读取到的内容即为盐值,剩余的内容即为盐值扩展信息。
比如,结合图2B,若预设顺序为盐值在前,则服务器可以从运算结果的第一位开始读取,并读取固定长度的内容,读取到的内容即为盐值,剩余的内容即为盐值扩展信息。
步骤210d,根据预设生成算法以及拆分得到的盐值生成盐值扩展信息。
本步骤与步骤202类似,在此不再赘述。
步骤210e,若生成的盐值扩展信息与拆分得到的盐值扩展信息相同,则对待认证的口令认证通过。
如果生成的盐值扩展信息与拆分得到的盐值扩展信息相同,则说明待认证的口令与预先存储的用户ID所对应的口令相同,此时,确定对待认证的口令认证通过。而如果生成的盐值扩展信息与拆分得到的盐值扩展信息不同,则服务器可以确定待认证的口令与用户ID所对应的真实口令不同,此时,确定对待认证的口令认证失败。
可选地,上述只是以该用户口令管理的方法用于图1A所示的实施环境中来举例,可选地,当该用户注册的方法用于图1B所示的实施环境中时,结合图2C,该用户口令管理的方法中的认证步骤可以具体实现为:口令认证服务器接收UE发送的用户认证请求;口令认证服务器从数据库中获取用户ID所对应的C2;口令认证服务器从密钥管理中心中获取key,并根据获取到的key解密获取到的C2,得到C1;口令认证服务器根据待认证的口令以及C1认证待认证的口令。其中,在服务器中还包括HMAC加密服务器的过程中,口令认证服务器可以调用HMAC加密服务器,通过该HMAC服务器计算待认证的口令的哈希值。
请参考图3A,其示出了本发明另一个实施例提供的用户口令管理的方法的方法流程图,本实施例以该用户口令管理的方法用于图1A所示的实施环境中来举例说明。如图3A所示,该用户口令管理的方法可以包括:
步骤301,接收用户注册请求,用户注册请求中包括用户ID和口令。
步骤302,根据预设密钥以及第一加密算法,加密口令,得到第一密文。
第一加密算法可以为可逆加密算法也可以为不可逆加密算法。具体的,该第一加密算法可以为HMAC、AES、DES或者RSA,本实施例对此并不做限定。
实际实现时,为了保证加密后的口令无法被解密,进而提高加密后的口令的安全性,该第一加密算法可以为不可逆加密算法,比如HMAC算法,本实施例对此并不做限定。
步骤303,根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息。
本步骤与上述实施例中的步骤302类似,在此不再赘述。
步骤304,根据第一密文生成第一目标内容。
第一目标内容包括:第一密文,和/或,根据第一密文生成的密文扩展信息。也即,第一目标内容可以为:第一密文,或者,密文扩展信息,或者,第一密文和密文扩展信息的组合。
可选地,当第一目标内容包括密文扩展信息时,本步骤可以包括:根据预设扩展算法以及第一密文生成该密文扩展信息。其中,预设扩展算法可以包括截取哈希值中的固定长度的算法,或者,对哈希值进行加密的加密算法,或者,根据预设函数输出哈希值所对应的函数值的算法。并且,密文扩展信息的长度可以固定,也可以不固定,本实施例对此并不做限定。
步骤305,根据第一目标内容以及第二加密算法,加密盐值信息,得到第二密文,第二加密算法为可逆加密算法。
第二加密算法为异或算法、AES算法、DES、RSA算法或者其它算法,本实施例对此并不做限定。
步骤306,将用户ID和第二密文关联存储。
上述只是以该用户口令管理的方法用于图1A所示的实施环境中来举例,可选地,当该用户口令管理的方法用于图1B所示的实施环境中时,该用户口令管理的方法可以实现为:口令加密服务器接收UE发送的用户注册请求;从密钥管理服务器中获取key,根据第一加密算法和key加密用户注册请求中的口令,得到第一密文;口令加密服务器从盐值生成服务器中获取随机生成的salt,根据预设生成算法以及salt生成盐值扩展信息,将salt和盐值扩展信息按照预设顺序拼接为盐值信息,删除salt;口令加密服务器根据C1生成第一目标内容,根据该第一目标内容以及第二加密算法加密盐值信息,得到C2;口令加密服务器将用户ID和C2存储至数据库。可选地,服务器中还可以包括HMAC加密服务器,在第一目标内容中包括密文扩展信息时,口令加密服务器还可以调用HMAC加密服务器,通过该HMAC加密服务器来计算密文扩展信息。
综上所述,本实施例提供的用户口令管理的方法,通过在接收到用户注册请求之后,根据预设密钥以及第一加密算法加密口令,得到第一密文,并根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息;此后,根据第一密文以及第二加密算法加密盐值信息,得到第二密文,将用户注册请求中的用户ID和第二密文关联存储。其中,第二加密算法为可逆加密算法。由于在口令加密之后,无需存储盐值,因此,上述方法解决了现有技术中由于需要存储盐值而导致服务器需要耗费大量存储空间的问题;达到了可以节省服务器所需占用的存储空间的效果。同时,由于无需存储盐值,因此这也一定程度上保证了盐值的隐秘性,避免了攻击者通过构造彩虹表对盐值加密的口令造成的攻击。此外,由于根据盐值和预设密钥同时加密口令,提高了口令的安全性,解决了现有技术中口令的安全性较差的问题。
与图2A所示的用户口令管理的方法类似,在本实施例中,当第二加密算法为异或算法时,由于参与异或运算的两条信息需要等长,因此,对于此种情况,第一目标内容的长度和盐值信息的长度相同。具体的:
作为一种可能的实现方式,第一目标内容的长度和盐值信息的长度可以为预先设定的长度L。通常情况下,L大于哈希值的长度,且也大于盐值的长度。
则此时,在步骤303中,在生成盐值扩展信息时,服务器可以生成长度为L-Lsalt的盐 值扩展信息。其中,盐值扩展信息的生成方式可以包括如下两种:
第一种,根据哈希算法以及盐值生成预设长度的盐值扩展信息。
第二种,根据预设函数生成盐值的函数值,按照预设截取方式截取函数值中的预设长度的内容作为盐值扩展信息。
这与图2A所示的实施例中的实现类似,本实施例在此不再赘述。
类似的,步骤304中的第一目标内容的长度也为L。假设哈希值的长度为Lc1,Lc1<L,则第一目标内容中还包括其它参数。以第一目标内容包括第一密文C1和密文扩展信息为例,密文扩展信息的信息长度为L-Lc1。该密文扩展信息可以为从哈希值中截取到的信息TC1。预定顺序为C1在前TC1在后时,第一目标内容J C1=C1||TC1;在预定顺序为TC1在前C1在后时,J C1=TC1||C1。
相应的,在异或第一目标内容和盐值信息后,得到的第二密文C2=J C1xor Smap。其中,xor为异或运算。
作为另一种可能的实现方式,第一目标内容和盐值信息的长度不固定。只是服务器以其中一个长度为准,将另一个的长度调至相同。比如,以第一目标内容的长度为准来举例,在第一目标内容包括第一密文和密文扩展信息时,若长度为L’,则服务器在生成盐值扩展信息时,生成长度为L’-Lsalt长度的信息,其生成方式与上述所说的生成方式类似,本实施例在此不再赘述。
在用户成功注册之后,当用户再次接入时,需要对用户进行认证,请参考图3B,该用户口令管理的方法还包括如下步骤:
步骤307,接收用户认证请求,用户认证请求中包括用户ID和待认证的口令。
步骤308,获取用户ID所对应的第二密文。
步骤309,根据第一加密算法以及预设密钥,加密待认证的口令,得到第三密文。
步骤310,根据第二密文以及第三密文,认证待认证的口令。
在对口令进行认证过程,由于无需读取盐值,因此上述方法达到了在口令认证过程中无需耗费I/O操作来读取盐值,提高了认证效率的效果。同时,该口令认证方法相对于通过迭代提高口令安全性的方案来说,也大大提高了口令认证过程中的认证效率。
基于上述实施例,在一种可能的实现方式中,请参考图3C,步骤310可以包括:
步骤310a,根据第三密文生成第二目标内容。
第二目标内容包括:第三密文,和/或,根据第三密文生成的密文扩展信息。也即第二目标内容可以为:第三密文,或者,密文扩展信息,或者第三密文和密文扩展信息。
本步骤与步骤304类似,在此不再赘述。
步骤310b,根据第二目标内容解密第二密文。
由于第二加密算法为可逆加密算法,因此,在服务器获取到第二密文以及第二目标内容之后,服务器可以根据第二目标内容解密第二密文。
步骤310c,按照预设顺序拆分解密结果,得到解密结果中携带的盐值以及除盐值之外的盐值扩展信息。
步骤310d,根据预设生成算法以及拆分得到的盐值生成盐值扩展信息。
步骤310e,若生成的盐值扩展信息与拆分得到的盐值扩展信息相同,则对待认证的口令 认证通过。
步骤310c至步骤310e与上述实施例中的步骤210c至步骤210e类似,在此不再赘述。
图4所示为本发明实施例提供的用户口令管理的服务器示意图。用户口令管理的服务器400包括至少一个处理器401,通信总线402,存储器403以及至少一个通信接口404。
处理器401可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线402可包括一通路,在上述组件之间传送信息。所述通信接口404,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器403可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器403用于存储执行本发明方案的程序代码,并由处理器401来控制执行。所述处理器401用于执行所述存储器403中存储的程序代码。
在具体实现中,作为一种实施例,处理器401可以包括一个或多个CPU,例如图4中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备400可以包括多个处理器,例如图4中的处理器401和处理器408。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,用户口令管理的服务器400还可以包括输出设备405和输入设备406。输出设备405和处理器401通信,可以以多种方式来显示信息。例如,输出设备405可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备406和处理器401通信,可以以多种方式接受用户的输入。例如,输入设备406可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的用户口令管理的服务器400可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,用户口令管理的服务器400可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图4中类似结构的设备。本发明实施例不限定用户口令管理的服务器400的类型。
用户口令管理的服务器的存储器中存储了一个或多个软件模块。用户口令管理的服务器可以通过处理器以及存储器中的程序代码来实现软件模块,实现对用户口令的管理。
请参考图5,其示出了本发明一个实施例提供的用户口令管理的服务器的结构示意图,如图5所示,该用户口令管理的服务器可以包括:接收单元510、生成单元520、加密单元530和存储单元540。
接收单元510,用于接收用户注册请求,所述用户注册请求中包括用户标识ID和口令;
生成单元520,用于根据盐值生成盐值扩展信息,将所述盐值和所述盐值扩展信息按照预设顺序拼接为盐值信息;
加密单元530,用于根据所述口令以及第一加密算法,加密所述盐值信息,得到第一密文;所述第一加密算法为可逆加密算法;
所述加密单元530,还用于根据预设密钥以及第二加密算法,加密所述第一密文,得到第二密文,所述第二加密算法为可逆加密算法;
存储单元540,用于将所述用户ID和所述第二密文关联存储。
综上所述,本实施例提供的用户口令管理的服务器,通过在接收到用户注册请求之后,根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息;此后,根据用户注册请求中的口令以及第一加密算法加密盐值信息,得到第一密文;并根据预设密钥以及第二加密算法加密第一密文,得到第二密文,将用户注册请求中的用户ID和第二密文关联存储。其中,第一加密算法和第二加密算法为可逆加密算法。由于在口令加密之后,无需存储盐值,因此,上述方法解决了现有技术中由于需要存储盐值而导致用户口令管理的服务器需要耗费大量存储空间的问题;达到了可以节省用户口令管理的服务器所需占用的存储空间的效果。同时,由于无需存储盐值,因此这也一定程度上保证了盐值的隐秘性,避免了攻击者通过构造彩虹表对盐值所加密的口令造成的攻击。此外,由于根据盐值和预设密钥分别加密口令,提高了口令的安全性,解决了现有技术中口令的安全性较差的问题。
可选地,在上述实施例的第一种可能的实现方式中,所述加密单元530,还用于:
根据所述口令,生成第一目标内容;其中,所述第一目标内容包括所述口令、所述口令的哈希值以及根据所述口令的哈希值生成的口令扩展信息中的至少一种;
根据所述第一目标内容以及所述第一加密算法,加密述盐值信息。
可选地,在上述实施例的第二种可能的实现方式中,若所述第一加密算法为异或算法,则:
所述生成单元520,还用于根据所述盐值生成预设长度的所述盐值扩展信息,所述预设长度为所述第一目标内容的长度和所述盐值的长度之差。
可选地,在上述实施例的第三种可能的实现方式中,所述生成单元520,还用于:
根据哈希算法以及所述盐值,生成所述预设长度的所述盐值扩展信息;
或者,
根据预设函数,生成所述盐值的函数值,按照预设截取方式从所述函数值中截取所述预设长度的内容作为所述盐值扩展信息。
可选地,在上述实施例的第四种可能的实现方式中,该服务器还包括:
所述接收单元510,还用于接收用户认证请求,所述用户认证请求中包括所述用户ID以及待认证的口令;
获取单元,用于获取所述用户ID所对应的所述第二密文;
解密单元,用于根据所述预设密钥解密所述第二密文,得到所述第一密文;
认证单元,用于根据所述待认证的口令以及所述第一密文,认证所述待认证的口令。
可选地,在上述实施例的第五种可能的实现方式中,所述认证单元,还用于:
根据所述待认证的口令,生成第二目标内容,所述第二目标内容包括所述待认证的口令、所述待认证的口令的哈希值以及根据所述待认证的口令的哈希值生成的口令扩展信息中的至少一种;
根据所述第二目标内容解密所述第一密文;
按照预设顺序拆分解密结果,得到所述解密结果中携带的盐值以及除所述盐值之外的盐值扩展信息;
根据拆分得到的所述盐值生成盐值扩展信息;
若生成的所述盐值扩展信息与拆分得到的所述盐值扩展信息相同,则对所述待认证的口令认证通过。
请参考图6,其示出了本发明一个实施例提供的用户口令管理的服务器的结构示意图,如图6所示,该用户口令管理的服务器可以包括:接收单元610、加密单元620、生成单元630和存储单元640。
接收单元610,用于接收用户注册请求,所述用户注册请求中包括用户标识ID和口令;
加密单元620,用于根据预设密钥以及第一加密算法,加密所述口令,得到第一密文;
生成单元630,用于根据盐值生成盐值扩展信息,将所述盐值和所述盐值扩展信息按照预设顺序拼接为盐值信息;
所述加密单元620,还用于根据所述第一密文以及第二加密算法。加密所述盐值信息,得到第二密文,所述第二加密算法为可逆加密算法;
存储单元640,用于将所述用户ID和所述第二密文关联存储。
综上所述,本实施例提供的用户口令管理的服务器,通过在接收到用户注册请求之后,根据预设密钥以及第一加密算法加密口令,得到第一密文,并根据盐值生成盐值扩展信息,将盐值和盐值扩展信息按照预设顺序拼接为盐值信息;此后,根据第一密文以及第二加密算法加密盐值信息,得到第二密文,将用户注册请求中的用户ID和第二密文关联存储。其中,第二加密算法为可逆加密算法。由于在口令加密之后,无需存储盐值,因此,上述方法解决了现有技术中由于需要存储盐值而导致用户口令管理的服务器需要耗费大量存储空间的问题;达到了可以节省用户口令管理的服务器所需占用的存储空间的效果。同时,由于无需存储盐值,因此这也一定程度上保证了盐值的隐秘性,避免了攻击者通过构造彩虹表对盐值加密的口令造成的攻击。此外,由于根据盐值和预设密钥同时加密口令,提高了口令的安全性,解决了现有技术中口令的安全性较差的问题。
可选地,在上述实施例的第一种可能的实现方式中,所述加密单元620,还用于:
根据所述第一密文生成第一目标内容,所述第一目标内容包括:所述第一密文,和/或,根据所述第一密文生成的密文扩展信息;
根据所述第一目标内容以及所述第二加密算法,加密所述盐值信息。
可选地,在上述实施例的第二种可能的实现方式中,若所述第二加密算法为异或算法,则:
所述生成单元630,还用于根据所述盐值生成预设长度的所述盐值扩展信息,所述预设长度为所述第一目标内容的长度和所述盐值的长度之差。
可选地,在上述实施例的第三种可能的实现方式中,所述生成单元630,还用于:
根据哈希算法以及所述盐值生成所述预设长度的所述盐值扩展信息;
或者,
根据预设函数,生成所述盐值的函数值;按照预设截取方式,从所述函数值截取所述预设长度的内容作为所述盐值扩展信息。
可选地,在上述实施例的第四种可能的实现方式中,
所述接收单元610,还用于接收用户认证请求,所述用户认证请求中包括所述用户ID以及待认证的口令;
获取单元,用于获取所述用户ID所对应的所述第二密文;
所述加密单元,还用于根据所述第一加密算法以及所述预设密钥,加密所述待认证的口令,得到第三密文;
认证单元,用于根据所述第二密文以及所述第三密文,认证所述待认证的口令。
可选地,在上述实施例的第五种可能的实现方式中,所述认证单元,还用于:
根据所述第三密文,生成第二目标内容,所述第二目标内容包括:所述第三密文,和/或,根据所述第三密文生成的密文扩展信息;
根据所述第二目标内容,解密所述第二密文;
按照所述预设顺序拆分解密结果,得到所述解密结果中携带的盐值以及除所述盐值之外的盐值扩展信息;
根据拆分得到的所述盐值生成盐值扩展信息;
若生成的所述盐值扩展信息与拆分得到的所述盐值扩展信息相同,则对所述待认证的口令认证通过。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、服务器(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、服务器(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (26)

  1. 一种用户口令管理的方法,其特征在于,所述方法包括:
    接收用户注册请求,所述用户注册请求中包括用户标识ID和口令;
    根据盐值生成盐值扩展信息,将所述盐值和所述盐值扩展信息按照预设顺序拼接为盐值信息;
    根据所述口令以及第一加密算法,加密所述盐值信息,得到第一密文;所述第一加密算法为可逆加密算法;
    根据预设密钥以及第二加密算法,加密所述第一密文,得到第二密文;所述第二加密算法为可逆加密算法;
    将所述用户ID和所述第二密文关联存储。
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述口令以及第一加密算法,加密所述盐值信息,包括:
    根据所述口令,生成第一目标内容;其中,所述第一目标内容包括所述口令、所述口令的哈希值以及根据所述口令的哈希值生成的口令扩展信息中的至少一种;
    根据所述第一目标内容以及所述第一加密算法,加密所述盐值信息。
  3. 根据权利要求2所述的方法,其特征在于,若所述第一加密算法为异或算法,则所述根据盐值生成盐值扩展信息,包括:
    根据所述盐值生成预设长度的所述盐值扩展信息,所述预设长度为所述第一目标内容的长度和所述盐值的长度之差。
  4. 根据权利要求3所述的方法,其特征在于,所述根据所述盐值生成预设长度的所述盐值扩展信息,包括:
    根据哈希算法以及所述盐值,生成所述预设长度的所述盐值扩展信息;
    或者,
    根据预设函数,生成所述盐值的函数值;按照预设截取方式,从所述函数值中截取所述预设长度的内容作为所述盐值扩展信息。
  5. 根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
    接收用户认证请求,所述用户认证请求中包括所述用户ID以及待认证的口令;
    获取所述用户ID所对应的所述第二密文;
    根据预设密钥,解密所述第二密文,得到所述第一密文;
    根据所述待认证的口令以及所述第一密文,认证所述待认证的口令。
  6. 根据权利要求5所述的方法,其特征在于,所述根据所述待认证的口令以及所述第一密文,认证所述待认证的口令,包括:
    根据所述待认证的口令,生成第二目标内容;所述第二目标内容包括所述待认证的口令、所述待认证的口令的哈希值以及根据所述待认证的口令的哈希值生成的口令扩展信息中的至少一种;
    根据所述第二目标内容解密所述第一密文;
    按照所述预设顺序拆分解密结果,得到所述解密结果中携带的盐值以及除所述盐值之外的盐值扩展信息;
    根据拆分得到的所述盐值生成盐值扩展信息;
    若生成的所述盐值扩展信息与拆分得到的所述盐值扩展信息相同,则对所述待认证的口令认证通过。
  7. 一种用户口令管理的方法,其特征在于,所述方法包括:
    接收用户注册请求,所述用户注册请求包括用户标识ID和口令;
    根据预设密钥以及第一加密算法,加密所述口令,得到第一密文;
    根据盐值,生成盐值扩展信息;
    将所述盐值和所述盐值扩展信息按照预设顺序拼接为盐值信息;
    根据所述第一密文以及第二加密算法,加密所述盐值信息,得到第二密文,所述第二加密算法为可逆加密算法;
    将所述用户ID和所述第二密文关联存储。
  8. 根据权利要求7所述的方法,其特征在于,所述根据所述第一密文以及第二加密算法,加密所述盐值信息,包括:
    根据所述第一密文,生成第一目标内容;其中,所述第一目标内容包括:所述第一密文,和/或,根据所述第一密文生成的密文扩展信息;
    根据所述第一目标内容以及所述第二加密算法,加密所述盐值信息。
  9. 根据权利要求8所述的方法,其特征在于,若所述第二加密算法为异或算法,则所述根据盐值,生成盐值扩展信息,包括:
    根据所述盐值生成预设长度的所述盐值扩展信息,其中,所述预设长度为所述第一目标内容的长度和所述盐值的长度之差。
  10. 根据权利要求9所述的方法,其特征在于,所述根据所述盐值生成预设长度的所述盐值扩展信息,包括:
    根据哈希算法以及所述盐值,生成所述预设长度的所述盐值扩展信息;
    或者,
    根据预设函数,生成所述盐值的函数值;按照预设截取方式,从所述函数值中截取所述预设长度的内容作为所述盐值扩展信息。
  11. 根据权利要求7至10任一所述的方法,其特征在于,所述方法包括:
    接收用户认证请求,所述用户认证请求中包括所述用户ID以及待认证的口令;
    获取所述用户ID所对应的所述第二密文;
    根据所述第一加密算法以及所述预设密钥,加密所述待认证的口令,得到第三密文;
    根据所述第二密文以及所述第三密文,认证所述待认证的口令。
  12. 根据权利要求11所述的方法,其特征在于,所述根据所述第二密文以及所述第三密文,认证所述待认证的口令,包括:
    根据所述第三密文,生成第二目标内容,所述第二目标内容包括:所述第三密文,和/或,根据所述第三密文生成的密文扩展信息;
    根据所述第二目标内容解密所述第二密文;
    按照所述预设顺序拆分解密结果,得到所述解密结果中携带的盐值以及除所述盐值之外的盐值扩展信息;
    根据拆分得到的所述盐值生成盐值扩展信息;
    若生成的所述盐值扩展信息与拆分得到的所述盐值扩展信息相同,则对所述待认证的口令认证通过。
  13. 一种用户口令管理的服务器,其特征在于,所述服务器包括:
    接收单元,用于接收用户注册请求,所述用户注册请求中包括用户标识ID和口令;
    生成单元,用于根据盐值生成盐值扩展信息,将所述盐值和所述盐值扩展信息按照预设顺序拼接为盐值信息;
    加密单元,用于根据所述口令以及第一加密算法,加密所述盐值信息,得到第一密文;所述第一加密算法为可逆加密算法;
    所述加密单元,还用于根据预设密钥以及第二加密算法,加密所述第一密文,得到第二密文,所述第二加密算法为可逆加密算法;
    存储单元,用于将所述用户ID和所述第二密文关联存储。
  14. 根据权利要求13所述的服务器,其特征在于,所述加密单元,还用于:
    根据所述口令,生成第一目标内容,所述第一目标内容包括所述口令、所述口令的哈希值以及根据所述口令的哈希值生成的口令扩展信息中的至少一种;
    根据所述第一目标内容以及所述第一加密算法,加密所述盐值信息。
  15. 根据权利要求14所述的服务器,其特征在于,若所述第一加密算法为异或算法,则:
    所述生成单元,还用于根据所述盐值生成预设长度的所述盐值扩展信息,所述预设长度为所述第一目标内容的长度和所述盐值的长度之差。
  16. 根据权利要求15所述的服务器,其特征在于,所述生成单元,还用于:
    根据哈希算法以及所述盐值,生成所述预设长度的所述盐值扩展信息;
    或者,
    根据预设函数,生成所述盐值的函数值;按照预设截取方式从所述函数值中截取所述预设长度的内容作为所述盐值扩展信息。
  17. 根据权利要求13至16任一所述的服务器,其特征在于,
    所述接收单元,还用于接收用户认证请求,所述用户认证请求中包括所述用户ID以及待认证的口令;
    获取单元,用于获取所述用户ID所对应的所述第二密文;
    解密单元,用于根据所述预设密钥解密所述第二密文,得到所述第一密文;
    认证单元,用于根据所述待认证的口令以及所述第一密文,认证所述待认证的口令。
  18. 根据权利要求17所述的服务器,其特征在于,所述认证单元,还用于:
    根据所述待认证的口令,生成第二目标内容,所述第二目标内容包括所述待认证的口令、所述待认证的口令的哈希值以及根据所述待认证的口令的哈希值生成的口令扩展信息中的至少一种;
    根据所述第二目标内容解密所述第一密文;
    按照预设顺序拆分解密结果,得到所述解密结果中携带的盐值以及除所述盐值之外的盐值扩展信息;
    根据拆分得到的所述盐值生成盐值扩展信息;
    若生成的所述盐值扩展信息与拆分得到的所述盐值扩展信息相同,则对所述待认证的口令认证通过。
  19. 一种用户口令管理的服务器,其特征在于,所述服务器包括:
    接收单元,用于接收用户注册请求,所述用户注册请求中包括用户标识ID和口令;
    加密单元,用于根据预设密钥以及第一加密算法,加密所述口令,得到第一密文;
    生成单元,用于根据盐值生成盐值扩展信息,将所述盐值和所述盐值扩展信息按照预设顺序拼接为盐值信息;
    所述加密单元,还用于根据所述第一密文以及第二加密算法,加密所述盐值信息,得到第二密文,所述第二加密算法为可逆加密算法;
    存储单元,用于将所述用户ID和所述第二密文关联存储。
  20. 根据权利要求19所述的服务器,其特征在于,所述加密单元,还用于:
    根据所述第一密文,生成第一目标内容;其中,所述第一目标内容包括:所述第一密文,和/或,根据所述第一密文生成的密文扩展信息;
    根据所述第一目标内容以及所述第二加密算法,加密所述盐值信息。
  21. 根据权利要求20所述的服务器,其特征在于,若所述第二加密算法为异或算法,则:
    所述生成单元,还用于根据所述盐值生成预设长度的所述盐值扩展信息;其中,所述预设长度为所述第一目标内容的长度和所述盐值的长度之差。
  22. 根据权利要求21所述的服务器,其特征在于,所述生成单元,还用于:
    根据哈希算法以及所述盐值生成所述预设长度的所述盐值扩展信息;
    或者,
    根据预设函数,生成所述盐值的函数值;按照预设截取方式,从所述函数值截取所述预设长度的内容作为所述盐值扩展信息。
  23. 根据权利要求19至22任一所述的服务器,其特征在于,
    所述接收单元,还用于接收用户认证请求,所述用户认证请求中包括所述用户ID以及待认证的口令;
    获取单元,用于获取所述用户ID所对应的所述第二密文;
    所述加密单元,还用于根据所述第一加密算法以及所述预设密钥,加密所述待认证的口令,得到第三密文;
    认证单元,用于根据所述第二密文以及所述第三密文,认证所述待认证的口令。
  24. 根据权利要求23所述的服务器,其特征在于,所述认证单元,还用于:
    根据所述第三密文,生成第二目标内容,所述第二目标内容包括:所述第三密文,和/或,根据所述第三密文生成的密文扩展信息;
    根据所述第二目标内容,解密所述第二密文;
    按照所述预设顺序拆分解密结果,得到所述解密结果中携带的盐值以及除所述盐值之外的盐值扩展信息;
    根据拆分得到的所述盐值生成盐值扩展信息;
    若生成的所述盐值扩展信息与拆分得到的所述盐值扩展信息相同,则对所述待认证的口令认证通过。
  25. 一种服务器,其特征在于,包括:处理器和存储器,其中,
    所述存储器中存有计算机可读程序;
    所述处理器通过运行所述存储器中的程序,以用于完成上述权利要求1至6所述的方法。
  26. 一种服务器,其特征在于,包括:处理器和存储器,其中,
    所述存储器中存有计算机可读程序;
    所述处理器通过运行所述存储器中的程序,以用于完成上述权利要求7至12所述的方法。
PCT/CN2017/090878 2016-08-05 2017-06-29 用户口令管理的方法和服务器 WO2018024056A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610639733.9 2016-08-05
CN201610639733.9A CN107689869B (zh) 2016-08-05 2016-08-05 用户口令管理的方法和服务器

Publications (1)

Publication Number Publication Date
WO2018024056A1 true WO2018024056A1 (zh) 2018-02-08

Family

ID=61073378

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/090878 WO2018024056A1 (zh) 2016-08-05 2017-06-29 用户口令管理的方法和服务器

Country Status (2)

Country Link
CN (1) CN107689869B (zh)
WO (1) WO2018024056A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450622A (zh) * 2018-10-16 2019-03-08 平安普惠企业管理有限公司 数据加密方法、数据校验方法、装置、设备及存储介质
CN111428253A (zh) * 2020-03-24 2020-07-17 福建福链科技有限公司 一种适用于区块链的数据保护方法及系统
CN111865869A (zh) * 2019-04-24 2020-10-30 北京沃东天骏信息技术有限公司 基于随机映射的注册、认证方法及装置、介质及电子设备
CN111859435A (zh) * 2020-07-29 2020-10-30 北京千丁互联科技有限公司 一种数据安全处理方法及装置
CN112115491A (zh) * 2020-08-20 2020-12-22 恒安嘉新(北京)科技股份公司 一种对称加密密钥保护方法、装置、设备及存储介质
CN113111365A (zh) * 2021-04-22 2021-07-13 广州市人心网络科技有限公司 一种基于信封加密的在线心理咨询隐私数据保护方法、存储介质及系统
CN115086008A (zh) * 2022-06-13 2022-09-20 北京信长城科技发展有限公司 密码安全保护的实现方法、装置、存储介质及电子设备
CN116155497A (zh) * 2023-01-06 2023-05-23 南京通力峰达软件科技有限公司 一种车联网用户应用程序中的敏感数据加密和保存方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108471352B (zh) * 2018-03-16 2022-03-04 数安时代科技股份有限公司 基于分布式私钥的处理方法、系统、计算机设备及存储介质
CN108616512B (zh) * 2018-04-04 2021-01-19 广州慧睿思通信息科技有限公司 一种改进的ppt2003文件破译方法和装置
CN110912683B (zh) * 2018-09-18 2022-09-23 阿里巴巴集团控股有限公司 密码存储方法及装置、密码验证方法及装置
CN110048835A (zh) * 2019-03-27 2019-07-23 北京三快在线科技有限公司 加密的方法和装置、存储介质
CN110351077B (zh) * 2019-05-30 2023-05-02 平安科技(深圳)有限公司 数据加密的方法、装置、计算机设备和存储介质
CN110535887A (zh) * 2019-09-30 2019-12-03 海南鼎立信科技有限责任公司 基于Kafka的安全访问控制方法、装置、存储介质及电子设备
CN111212419A (zh) * 2019-12-17 2020-05-29 北京威努特技术有限公司 一种无线密码检测方法
CN111835734A (zh) * 2020-06-24 2020-10-27 北京达佳互联信息技术有限公司 信息处理方法、装置、电子设备、服务器及存储介质
CN112000967B (zh) * 2020-08-10 2021-10-22 广州以太教育科技有限责任公司 一种机密参数的生成方法及装置
CN112637836B (zh) * 2020-12-18 2023-08-11 珠海格力电器股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN113014380B (zh) * 2021-02-08 2022-12-27 深圳市亿图软件有限公司 文件数据的密码管理方法、装置、计算机设备及存储介质
CN113486375B (zh) * 2021-07-16 2024-04-19 青岛海尔科技有限公司 设备信息的存储方法和装置、存储介质及电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045169A (zh) * 2010-12-10 2011-05-04 厦门市美亚柏科信息股份有限公司 一种新口令认证方法和装置
US9021269B2 (en) * 2012-07-18 2015-04-28 TapLink, Inc. Blind hashing
CN105721390A (zh) * 2014-12-01 2016-06-29 阿里巴巴集团控股有限公司 一种加密存储方法和装置
CN105812357A (zh) * 2016-03-07 2016-07-27 中标软件有限公司 一种云计算平台的用户密码管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546580A (zh) * 2011-01-04 2012-07-04 中国移动通信有限公司 一种用户口令的更新方法、系统及装置
CN103177225B (zh) * 2013-04-01 2016-04-27 厦门市美亚柏科信息股份有限公司 一种数据管理方法和系统
CN104468579B (zh) * 2014-12-10 2018-03-02 北京众享比特科技有限公司 适用于分布式存储的认证系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045169A (zh) * 2010-12-10 2011-05-04 厦门市美亚柏科信息股份有限公司 一种新口令认证方法和装置
US9021269B2 (en) * 2012-07-18 2015-04-28 TapLink, Inc. Blind hashing
CN105721390A (zh) * 2014-12-01 2016-06-29 阿里巴巴集团控股有限公司 一种加密存储方法和装置
CN105812357A (zh) * 2016-03-07 2016-07-27 中标软件有限公司 一种云计算平台的用户密码管理方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109450622A (zh) * 2018-10-16 2019-03-08 平安普惠企业管理有限公司 数据加密方法、数据校验方法、装置、设备及存储介质
CN111865869A (zh) * 2019-04-24 2020-10-30 北京沃东天骏信息技术有限公司 基于随机映射的注册、认证方法及装置、介质及电子设备
CN111865869B (zh) * 2019-04-24 2023-08-08 北京沃东天骏信息技术有限公司 基于随机映射的注册、认证方法及装置、介质及电子设备
CN111428253B (zh) * 2020-03-24 2023-04-07 福建福链科技有限公司 一种适用于区块链的数据保护方法及系统
CN111428253A (zh) * 2020-03-24 2020-07-17 福建福链科技有限公司 一种适用于区块链的数据保护方法及系统
CN111859435B (zh) * 2020-07-29 2023-06-23 北京千丁互联科技有限公司 一种数据安全处理方法及装置
CN111859435A (zh) * 2020-07-29 2020-10-30 北京千丁互联科技有限公司 一种数据安全处理方法及装置
CN112115491A (zh) * 2020-08-20 2020-12-22 恒安嘉新(北京)科技股份公司 一种对称加密密钥保护方法、装置、设备及存储介质
CN112115491B (zh) * 2020-08-20 2024-03-22 恒安嘉新(北京)科技股份公司 一种对称加密密钥保护方法、装置、设备及存储介质
CN113111365A (zh) * 2021-04-22 2021-07-13 广州市人心网络科技有限公司 一种基于信封加密的在线心理咨询隐私数据保护方法、存储介质及系统
CN113111365B (zh) * 2021-04-22 2024-04-09 广州市人心网络科技有限公司 一种基于信封加密的在线心理咨询隐私数据保护方法、存储介质及系统
CN115086008A (zh) * 2022-06-13 2022-09-20 北京信长城科技发展有限公司 密码安全保护的实现方法、装置、存储介质及电子设备
CN115086008B (zh) * 2022-06-13 2024-02-09 北京信长城科技发展有限公司 密码安全保护的实现方法、装置、存储介质及电子设备
CN116155497A (zh) * 2023-01-06 2023-05-23 南京通力峰达软件科技有限公司 一种车联网用户应用程序中的敏感数据加密和保存方法
CN116155497B (zh) * 2023-01-06 2023-09-29 南京通力峰达软件科技有限公司 一种车联网用户应用程序中的敏感数据加密和保存方法

Also Published As

Publication number Publication date
CN107689869A (zh) 2018-02-13
CN107689869B (zh) 2020-06-16

Similar Documents

Publication Publication Date Title
WO2018024056A1 (zh) 用户口令管理的方法和服务器
US9690954B2 (en) Securing encrypted virtual hard disks
US9805210B2 (en) Encryption-based data access management
US10187373B1 (en) Hierarchical, deterministic, one-time login tokens
CN107959567B (zh) 数据存储方法、数据获取方法、装置及系统
US10142107B2 (en) Token binding using trust module protected keys
WO2019214211A1 (zh) 基于区块链的用户数据授权方法、介质、装置和计算设备
US9461820B1 (en) Method and apparatus for providing a conditional single sign on
Arora et al. Cloud security ecosystem for data security and privacy
US20170214664A1 (en) Secure connections for low power devices
US10659226B2 (en) Data encryption method, decryption method, apparatus, and system
US11606348B2 (en) User authentication using multi-party computation and public key cryptography
US20130290733A1 (en) Systems and methods for caching security information
US10412068B2 (en) API authentication
US20140096213A1 (en) Method and system for distributed credential usage for android based and other restricted environment devices
US20130290734A1 (en) Systems and methods for caching security information
US10462112B1 (en) Secure distributed authentication data
Dey et al. Message digest as authentication entity for mobile cloud computing
US11290277B2 (en) Data processing system
US9336696B2 (en) Enhanced security setup for media decryption
Luo et al. TZ-KMS: A secure key management service for joint cloud computing with ARM TrustZone
KR102398380B1 (ko) 키 교환 방법 및 시스템
US20220247747A1 (en) System and method of secured communication
KR20220103536A (ko) Fpga를 이용한 tee 환경 제공 장치 및 그 방법

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17836238

Country of ref document: EP

Kind code of ref document: A1