CN113806798A - User side verification method, system, equipment and medium - Google Patents

User side verification method, system, equipment and medium Download PDF

Info

Publication number
CN113806798A
CN113806798A CN202110932822.3A CN202110932822A CN113806798A CN 113806798 A CN113806798 A CN 113806798A CN 202110932822 A CN202110932822 A CN 202110932822A CN 113806798 A CN113806798 A CN 113806798A
Authority
CN
China
Prior art keywords
token
base point
user
challenge information
public key
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN202110932822.3A
Other languages
Chinese (zh)
Other versions
CN113806798B (en
Inventor
麻付强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110932822.3A priority Critical patent/CN113806798B/en
Publication of CN113806798A publication Critical patent/CN113806798A/en
Application granted granted Critical
Publication of CN113806798B publication Critical patent/CN113806798B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)

Abstract

The invention discloses a user side verification method, which comprises the following steps: responding to a login request sent by a user side received by a server side, and determining access authority according to a user name and a password carried in the login request; acquiring registration information corresponding to the user side, generating a token by using the registration information and the access authority, and returning the token to the user side; responding to the token received by the user side, generating challenge information by using the generated random number and the token, and returning the challenge information to the server side; and responding to the server side receiving the challenge information, and verifying the legality of the user side by using the token, the challenge information and the registration information of the server side. The invention also discloses a system, a computer device and a readable storage medium. According to the scheme provided by the invention, after the token is received by the user side, the token is not directly adopted to carry out the resource access request on the server side, but the token challenge information is constructed to carry out the resource access request, so that the confidentiality of the token is ensured.

Description

User side verification method, system, equipment and medium
Technical Field
The invention relates to the field of servers, in particular to a user side verification method, a system, equipment and a storage medium.
Background
With the rapid development of the cloud computing technology, more and more users and enterprises put own data and applications on the cloud computing platform, and the development and maintenance cost of the system is reduced. When a user uses the cloud computing platform, the client needs to frequently request data from the server. In order to verify the validity of the user, the server frequently goes to the database to inquire and compare the user name and the password, judges whether the user name and the password are correct or not, and makes a corresponding prompt. This approach is very inefficient and risks revealing the user name and password. For this reason, token technology arose.
The Token is a string of character strings generated by the server and used as a Token for the client to request, when the user logs in for the first time, the server generates a Token and returns the Token to the client, and the client only needs to take the Token to request data later, and does not need to take the user name and the password again. the purpose of token is to reduce the pressure of the server, reduce the frequent inquiry database, and make the server more robust.
There are many types of tokens, such as UUID tokens, PKI tokens, and Fernet tokens. The UUID token is simple and easy to use, and is only 32 bytes in length. However, because the UUID token does not carry other information, after receiving the token, the server can neither determine whether the token is valid nor know the user information carried by the token. Whenever the server receives a user request, it needs to interact with the database to verify whether the token is valid. The PKI token supports the local authentication of the rest of the service components, but the CA is required to issue a certificate, but the request fails due to the fact that the certificate is too large. Compared with the UUID, the PKI token carries more user information and is attached with a digital signature so as to support local authentication. However, since the PKI token carries more information, the information includes service catalog, and the larger the number of entries carried by the service catalog, the larger the maximum HTTP request header size (default to 8kB) allowed by the HTTP protocol is easily exceeded, resulting in failure of the HTTP request. The Fernet token is a lightweight safety message format, the encrypting token is encrypted by a cryptograph symmetric encryption library without a persistent token, only necessary information is encrypted by the Fernet token, the length of the Fernet token is generally not more than 255 bytes, and the problem of overlarge PKI token is solved. A disadvantage of Fernet tokens is that the symmetric encryption key used to encrypt the token needs to be distributed and rotated.
And the client directly uses the token to access the cloud computing platform each time, so that the risk that the token is hijacked exists, and an attacker can impersonate a normal user to access the cloud computing platform.
Disclosure of Invention
In view of the above, in order to overcome at least one aspect of the above problems, an embodiment of the present invention provides a method for authenticating a user end, including:
responding to a login request sent by a user side received by a server side, and determining access authority according to a user name and a password carried in the login request;
acquiring registration information corresponding to the user side, generating a token by using the registration information and the access authority, and returning the token to the user side;
responding to the user side receiving the token, generating challenge information by using the generated random number and the token, and returning the challenge information to the server side;
and responding to the server end receiving the challenge information, and verifying the validity of the user end by using the token of the server end, the challenge information and the registration information.
In some embodiments, obtaining the registration information corresponding to the user side further includes:
the user side sends a user name and a password to the server side to register the user, and receives an elliptic curve parameter returned by the server side;
generating a first base point and a second base point according to the elliptic curve parameters;
calculating a hash value corresponding to the password to be used as a private key, and multiplying the private key by the first base point and the second base point respectively to obtain a first public key and a second public key;
and the user side sends the first base point, the second base point, the first public key and the second public key as registration information to a server side so that the server side stores the registration information.
In some embodiments, generating a first base point and a second base point from the elliptic curve parameters further comprises:
judging whether the first base point and the second base point are equal or not;
the first base point and the second base point are regenerated in response to the first base point and the second base point being equal.
In some embodiments, the server generates a token by using the registration information and the access right, further comprising:
generating the token using the user name, the access right, the elliptic curve parameter, the first base point, the second base point, the first public key, and the second public key;
calculating a first hash value of the token;
storing the token, the first hash value, the first radix point, the second radix point, the first public key, and the second public key in a cache.
In some embodiments, further comprising:
running the cache in a trusted execution environment.
In some embodiments, the user terminal generates challenge information using the generated random number and the token, further comprising:
calculating a second hash value of the token;
and subtracting the product of the second hash value and the hash value corresponding to the password by using the generated random number to obtain first challenge information, and multiplying the first base point and the second base point by using the random number respectively to obtain second challenge information and third challenge information.
In some embodiments, verifying the validity of the user side using the token of the server side, the challenge information, and the registration information further includes:
obtaining the token, the first hash value, the first base point, the second base point, the first public key and the second public key from the cache;
determining whether a product of the first challenge information and the first base point plus a product of the first hash value and the first public key is equal to the second challenge information, and determining whether a product of the first challenge information and the second base point plus a product of the first hash value and the second public key is equal to the third challenge information;
determining that the user terminal is legitimate in response to the product of the first challenge information and the first base point plus the product of the first hash value and the first public key being equal to the second challenge information and the product of the first challenge information and the second base point plus the product of the first hash value and the second public key being equal to the third challenge information.
Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a user side authentication system, including:
the determining module is configured to respond to a login request sent by a user side received by a server side, and determine access authority according to a user name and a password carried in the login request;
the token module is configured to acquire registration information corresponding to the user side, generate a token by using the registration information and the access right, and return the token to the user side;
the challenge information module is configured to respond to the fact that the user side receives the token, generate challenge information by using the generated random number and the token, and return the challenge information to the server side;
and the verification module is configured to respond to the server end receiving the challenge information and verify the validity of the user end by using the token of the server end, the challenge information and the registration information.
Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a computer apparatus, including:
at least one processor; and
a memory storing a computer program operable on the processor, wherein the processor executes the program to perform any of the steps of the user-side authentication method described above.
Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a computer-readable storage medium, which stores a computer program, which when executed by a processor performs the steps of any of the user side authentication methods described above.
The invention has one of the following beneficial technical effects: according to the scheme provided by the invention, after the token is received by the user side, the token is not directly adopted to carry out the resource access request on the server side, but the token challenge information is constructed to carry out the resource access request, so that the confidentiality of the token is ensured. Moreover, a randomization technology is adopted when challenge information is constructed, token challenge information sent to the server end every time is different, and the dynamics of the token in the using process is ensured, so that the verification of the user end is more reliable.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art that other embodiments can be obtained by using the drawings without creative efforts.
Fig. 1 is a schematic flowchart of a user side authentication method according to an embodiment of the present invention;
fig. 2 is a flowchart of a user side authentication method according to an embodiment of the present invention;
fig. 3 is a schematic structural diagram of a user-side authentication system according to an embodiment of the present invention;
FIG. 4 is a schematic structural diagram of a computer device provided in an embodiment of the present invention;
fig. 5 is a schematic structural diagram of a computer-readable storage medium according to an embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the following embodiments of the present invention are described in further detail with reference to the accompanying drawings.
It should be noted that all expressions using "first" and "second" in the embodiments of the present invention are used for distinguishing two entities with the same name but different names or different parameters, and it should be noted that "first" and "second" are merely for convenience of description and should not be construed as limitations of the embodiments of the present invention, and they are not described in any more detail in the following embodiments.
In the embodiment of the present invention, the SGX is an instruction set extension (software guard extensions), and is intended to provide a trusted execution environment of a user space by taking hardware security as mandatory guarantee and independent of the security states of firmware and software, and guarantee that confidentiality and integrity of user key code and data are not damaged by malware.
According to an aspect of the present invention, an embodiment of the present invention provides a method for authenticating a user end, as shown in fig. 1, which may include the steps of:
s1, responding to the login request sent by the user side received by the server side, and determining the access authority according to the user name and the password carried in the login request;
s2, acquiring the registration information corresponding to the user terminal, generating a token by using the registration information and the access authority, and returning the token to the user terminal;
s3, responding to the user end receiving the token, generating challenge information by using the generated random number and the token, and returning the challenge information to the server end;
and S4, responding to the server end receiving the challenge information, and verifying the validity of the user end by using the token of the server end, the challenge information and the registration information.
According to the scheme provided by the invention, after the token is received by the user side, the token is not directly adopted to carry out the resource access request on the server side, but the token challenge information is constructed to carry out the resource access request, so that the confidentiality of the token is ensured. Moreover, a randomization technology is adopted when challenge information is constructed, token challenge information sent to the server end every time is different, and the dynamics of the token in the using process is ensured, so that the verification of the user end is more reliable.
In some embodiments, obtaining the registration information corresponding to the user side further includes:
the user side sends a user name and a password to the server side to register the user, and receives an elliptic curve parameter returned by the server side;
generating a first base point and a second base point according to the elliptic curve parameters;
calculating a hash value corresponding to the password to be used as a private key, and multiplying the private key by the first base point and the second base point respectively to obtain a first public key and a second public key;
and the user side sends the first base point, the second base point, the first public key and the second public key as registration information to a server side so that the server side stores the registration information.
In some embodiments, generating a first base point and a second base point from the elliptic curve parameters further comprises:
judging whether the first base point and the second base point are equal or not;
the first base point and the second base point are regenerated in response to the first base point and the second base point being equal.
Specifically, as shown in fig. 2, in the registration phase, a user at a user end may select a corresponding user name n and a corresponding password s, and initiate a user registration request to a server at a server end or a cloud server. The username n and password s may then be sent to the server side via the encryption protocol SSL. The server receives a user registration request. And the login authentication module at the server side authenticates the compliance of the user name and the password of the user. And if the user name and the password meet the requirements of the system, registering the user. The server side can preset an asymmetric encrypted elliptic curve to generate corresponding elliptic curve parameters. And after the user registration is completed, the server side sends the elliptic curve to the user side to request to generate a base point. The user end can generate a first base point G and a second base point H on the elliptic curve according to the elliptic curve, and verify whether the two base points G, H are equal. And if equal, regenerating. And the user calculates a corresponding Hash value sk (Hash(s) according to the password s, and the sk is used as a private key of the user. And the user calculates a first public key and a second public key of the user according to the private key sk, wherein the first public key is Pk1 sk G, and the second public key is Pk2 sk H. The user sends two base points G and H, two public keys Pk1 ═ sk G, and Pk2 ═ sk H to the server side through the encryption protocol SSL. The server side stores a user name n, an encrypted password s, a public key Pk1, a public key Pk2 and two base points G and H.
In some embodiments, the server generates a token by using the registration information and the access right, further comprising:
generating the token using the user name, the access right, the elliptic curve parameter, the first base point, the second base point, the first public key, and the second public key;
calculating a first hash value of the token;
storing the token, the first hash value, the first radix point, the second radix point, the first public key, and the second public key in a cache.
In some embodiments, further comprising:
running the cache in a trusted execution environment.
Specifically, as shown in fig. 2, when a user requests to log in, the user selects a corresponding user name n and a corresponding password s, and caches sk (hash)(s) in a token challenge generation module of the client, and sends a login request to the server. The user sends a username n and a password s to the server via an encryption protocol SSL. And the server receives the user name n and the password s of the user, verifies the legality and the access authority of the user, and generates a corresponding token for the user. Token may include a user name, a role, a project, a creation time, an expiration time, an accessible project, an elliptic curve parameter, two base points G, H, and the like. The server calculates the Hash value Ht1 of the token as Hash (token), and stores the Hash value Ht1 and token of the token, two base points G, H, and two public keys Pk1, Pk2 as key values in a memcached (cache). The Memcached service module runs in an SGX trusted execution environment and is responsible for secret protection of a user token. The server sends the token to the user through an encryption protocol SSL.
In some embodiments, the user terminal generates challenge information using the generated random number and the token, further comprising:
calculating a second hash value of the token;
and subtracting the product of the second hash value and the hash value corresponding to the password by using the generated random number to obtain first challenge information, and multiplying the first base point and the second base point by using the random number respectively to obtain second challenge information and third challenge information.
Specifically, as shown in fig. 2, the user side receives the token sent by the server, and sends the token to the challenge generating module. The challenge generation module parses token, receiving two base points G, H. The challenge generation module calculates the Hash value of token, Ht2 Hash (token), and creates a random number v. The challenge generation module calculates first challenge information r-v-Ht 2 sk, second challenge information v G, and third challenge information v H. And finally, sending the challenge information r, vG and vH to the server through an encryption protocol SSL.
In some embodiments, verifying the validity of the user side using the token of the server side, the challenge information, and the registration information further includes:
obtaining the token, the first hash value, the first base point, the second base point, the first public key and the second public key from the cache;
determining whether a product of the first challenge information and the first base point plus a product of the first hash value and the first public key is equal to the second challenge information, and determining whether a product of the first challenge information and the second base point plus a product of the first hash value and the second public key is equal to the third challenge information;
determining that the user terminal is legitimate in response to the product of the first challenge information and the first base point plus the product of the first hash value and the first public key being equal to the second challenge information and the product of the first challenge information and the second base point plus the product of the first hash value and the second public key being equal to the third challenge information.
Specifically, as shown in fig. 2, the server receives token challenge information of the user, and sends the challenge information to the token verification module. the token verification module runs in the SGX trusted execution environment and is responsible for verifying the validity of the user token. the token verification module establishes a trusted connection with the memcached service module, and acquires Ht1 and token, two base points G and H, two public keys Pk1 and Pk2 corresponding to the user from the memcached service module. And the token verification module verifies the legality of the user token according to the challenge information sent by the user and the information corresponding to the user token obtained from the memcached service module. the token validation module calculates if v × G is equal to r × G + Ht1 × Pk1, v × H is r × H + Ht1 × Pk 2. If the two formulas are equal, the token is owned by the user, the cloud computing platform can be accessed, and the user is allowed to access the corresponding cloud computing resource.
According to the scheme provided by the embodiment of the invention, for the conditions of leakage, counterfeiting and the like existing in the token using process, after the user side receives the token, the token is not directly adopted to carry out the resource access request on the cloud server, but the token challenge information is constructed to carry out the resource access request, so that the confidentiality of the token is ensured. And moreover, a randomization technology is adopted when challenge information is constructed, so that token challenge information generated by requesting cloud service every time is different, and the dynamism of the token in the using process is ensured. The user side combines the user private key with token challenge information in the token construction process, and the token cannot be forged effectively. Meanwhile, the Memcached service module and the token verification module in the server run in a trusted execution environment of the SGX, so that confidential data cannot be stolen.
Based on the same inventive concept, according to another aspect of the present invention, an embodiment of the present invention further provides a user side authentication 400, as shown in fig. 3, including:
the determining module 401 is configured to determine, in response to a server receiving a login request sent by a user, an access right according to a user name and a password carried in the login request;
a token module 402, configured to obtain registration information corresponding to the user side, generate a token by using the registration information and the access right, and return the token to the user side;
a challenge information module 403, configured to, in response to the client receiving the token, generate challenge information by using the generated random number and the token, and return the challenge information to the server;
a verification module 404 configured to verify the validity of the user side by using the token of the server side, the challenge information and the registration information in response to the server side receiving the challenge information.
In some embodiments, obtaining the registration information corresponding to the user side further includes:
the user side sends a user name and a password to the server side to register the user, and receives an elliptic curve parameter returned by the server side;
generating a first base point and a second base point according to the elliptic curve parameters;
calculating a hash value corresponding to the password to be used as a private key, and multiplying the private key by the first base point and the second base point respectively to obtain a first public key and a second public key;
and the user side sends the first base point, the second base point, the first public key and the second public key as registration information to a server side so that the server side stores the registration information.
In some embodiments, generating a first base point and a second base point from the elliptic curve parameters further comprises:
judging whether the first base point and the second base point are equal or not;
the first base point and the second base point are regenerated in response to the first base point and the second base point being equal.
In some embodiments, the server generates a token by using the registration information and the access right, further comprising:
generating the token using the user name, the access right, the elliptic curve parameter, the first base point, the second base point, the first public key, and the second public key;
calculating a first hash value of the token;
storing the token, the first hash value, the first radix point, the second radix point, the first public key, and the second public key in a cache.
In some embodiments, further comprising:
running the cache in a trusted execution environment.
In some embodiments, the user terminal generates challenge information using the generated random number and the token, further comprising:
calculating a second hash value of the token;
and subtracting the product of the second hash value and the hash value corresponding to the password by using the generated random number to obtain first challenge information, and multiplying the first base point and the second base point by using the random number respectively to obtain second challenge information and third challenge information.
In some embodiments, verifying the validity of the user side using the token of the server side, the challenge information, and the registration information further includes:
obtaining the token, the first hash value, the first base point, the second base point, the first public key and the second public key from the cache;
determining whether a product of the first challenge information and the first base point plus a product of the first hash value and the first public key is equal to the second challenge information, and determining whether a product of the first challenge information and the second base point plus a product of the first hash value and the second public key is equal to the third challenge information;
determining that the user terminal is legitimate in response to the product of the first challenge information and the first base point plus the product of the first hash value and the first public key being equal to the second challenge information and the product of the first challenge information and the second base point plus the product of the first hash value and the second public key being equal to the third challenge information.
According to the scheme provided by the embodiment of the invention, for the conditions of leakage, counterfeiting and the like existing in the token using process, after the user side receives the token, the token is not directly adopted to carry out the resource access request on the cloud server, but the token challenge information is constructed to carry out the resource access request, so that the confidentiality of the token is ensured. And moreover, a randomization technology is adopted when challenge information is constructed, so that token challenge information generated by requesting cloud service every time is different, and the dynamism of the token in the using process is ensured. The user side combines the user private key with token challenge information in the token construction process, and the token cannot be forged effectively. Meanwhile, the Memcached service module and the token verification module in the server run in a trusted execution environment of the SGX, so that confidential data cannot be stolen.
Based on the same inventive concept, according to another aspect of the present invention, as shown in fig. 4, an embodiment of the present invention further provides a computer apparatus 501, including:
at least one processor 520; and
the memory 510, the memory 510 stores a computer program 511 that can be executed on the processor, and the processor 520 executes the program to perform any of the above steps of the user-side authentication method.
Based on the same inventive concept, according to another aspect of the present invention, as shown in fig. 5, an embodiment of the present invention further provides a computer-readable storage medium 601, where the computer-readable storage medium 601 stores computer program instructions 610, and the computer program instructions 610, when executed by a processor, perform the steps of any of the above user-side authentication methods.
Finally, it should be noted that, as will be understood by those skilled in the art, all or part of the processes of the methods of the above embodiments may be implemented by a computer program, which may be stored in a computer-readable storage medium, and when executed, may include the processes of the embodiments of the methods described above.
Further, it should be appreciated that the computer-readable storage media (e.g., memory) herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as software or hardware depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosed embodiments of the present invention.
The foregoing is an exemplary embodiment of the present disclosure, but it should be noted that various changes and modifications could be made herein without departing from the scope of the present disclosure as defined by the appended claims. The functions, steps and/or actions of the method claims in accordance with the disclosed embodiments described herein need not be performed in any particular order. Furthermore, although elements of the disclosed embodiments of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.
It should be understood that, as used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly supports the exception. It should also be understood that "and/or" as used herein is meant to include any and all possible combinations of one or more of the associated listed items.
The numbers of the embodiments disclosed in the embodiments of the present invention are merely for description, and do not represent the merits of the embodiments.
It will be understood by those skilled in the art that all or part of the steps of implementing the above embodiments may be implemented by hardware, or may be implemented by a program instructing relevant hardware, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a magnetic disk or an optical disk, etc.
Those of ordinary skill in the art will understand that: the discussion of any embodiment above is meant to be exemplary only, and is not intended to intimate that the scope of the disclosure, including the claims, of embodiments of the invention is limited to these examples; within the idea of an embodiment of the invention, also technical features in the above embodiment or in different embodiments may be combined and there are many other variations of the different aspects of the embodiments of the invention as described above, which are not provided in detail for the sake of brevity. Therefore, any omissions, modifications, substitutions, improvements, and the like that may be made without departing from the spirit and principles of the embodiments of the present invention are intended to be included within the scope of the embodiments of the present invention.

Claims (10)

1. A user side authentication method is characterized by comprising the following steps:
responding to a login request sent by a user side received by a server side, and determining access authority according to a user name and a password carried in the login request;
acquiring registration information corresponding to the user side, generating a token by using the registration information and the access authority, and returning the token to the user side;
responding to the user side receiving the token, generating challenge information by using the generated random number and the token, and returning the challenge information to the server side;
and responding to the server end receiving the challenge information, and verifying the validity of the user end by using the token of the server end, the challenge information and the registration information.
2. The method of claim 1, wherein obtaining the registration information corresponding to the user side further comprises:
the user side sends a user name and a password to the server side to register the user, and receives an elliptic curve parameter returned by the server side;
generating a first base point and a second base point according to the elliptic curve parameters;
calculating a hash value corresponding to the password to be used as a private key, and multiplying the private key by the first base point and the second base point respectively to obtain a first public key and a second public key;
and the user side sends the first base point, the second base point, the first public key and the second public key as registration information to a server side so that the server side stores the registration information.
3. The method of claim 2, wherein generating a first base point and a second base point from the elliptic curve parameters further comprises:
judging whether the first base point and the second base point are equal or not;
the first base point and the second base point are regenerated in response to the first base point and the second base point being equal.
4. The method of claim 2, wherein the server generates a token using the registration information and the access right, further comprising:
generating the token using the user name, the access right, the elliptic curve parameter, the first base point, the second base point, the first public key, and the second public key;
calculating a first hash value of the token;
storing the token, the first hash value, the first radix point, the second radix point, the first public key, and the second public key in a cache.
5. The method of claim 4, further comprising:
running the cache in a trusted execution environment.
6. The method of claim 4, wherein the user terminal generates challenge information using the generated random number and the token, further comprising:
calculating a second hash value of the token;
and subtracting the product of the second hash value and the hash value corresponding to the password by using the generated random number to obtain first challenge information, and multiplying the first base point and the second base point by using the random number respectively to obtain second challenge information and third challenge information.
7. The method of claim 6, wherein verifying the validity of the user side using the token of the server side, the challenge information, and the registration information further comprises:
obtaining the token, the first hash value, the first base point, the second base point, the first public key and the second public key from the cache;
determining whether a product of the first challenge information and the first base point plus a product of the first hash value and the first public key is equal to the second challenge information, and determining whether a product of the first challenge information and the second base point plus a product of the first hash value and the second public key is equal to the third challenge information;
determining that the user terminal is legitimate in response to the product of the first challenge information and the first base point plus the product of the first hash value and the first public key being equal to the second challenge information and the product of the first challenge information and the second base point plus the product of the first hash value and the second public key being equal to the third challenge information.
8. A client authentication system, comprising:
the determining module is configured to respond to a login request sent by a user side received by a server side, and determine access authority according to a user name and a password carried in the login request;
the token module is configured to acquire registration information corresponding to the user side, generate a token by using the registration information and the access right, and return the token to the user side;
the challenge information module is configured to respond to the fact that the user side receives the token, generate challenge information by using the generated random number and the token, and return the challenge information to the server side;
and the verification module is configured to respond to the server end receiving the challenge information and verify the validity of the user end by using the token of the server end, the challenge information and the registration information.
9. A computer device, comprising:
at least one processor; and
memory storing a computer program operable on the processor, wherein the processor executes the program to perform the steps of the method according to any of claims 1-7.
10. A computer-readable storage medium, in which a computer program is stored which, when being executed by a processor, is adapted to carry out the steps of the method according to any one of claims 1 to 7.
CN202110932822.3A 2021-08-13 2021-08-13 User side verification method, system, equipment and medium Active CN113806798B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110932822.3A CN113806798B (en) 2021-08-13 2021-08-13 User side verification method, system, equipment and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110932822.3A CN113806798B (en) 2021-08-13 2021-08-13 User side verification method, system, equipment and medium

Publications (2)

Publication Number Publication Date
CN113806798A true CN113806798A (en) 2021-12-17
CN113806798B CN113806798B (en) 2023-07-14

Family

ID=78942946

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110932822.3A Active CN113806798B (en) 2021-08-13 2021-08-13 User side verification method, system, equipment and medium

Country Status (1)

Country Link
CN (1) CN113806798B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201742438U (en) * 2010-06-12 2011-02-09 杭州驭强科技有限公司 Bidirectional authentication type dynamic password token device and dynamic password authentication system
CN108092776A (en) * 2017-12-04 2018-05-29 南京南瑞信息通信科技有限公司 A kind of authentication server and authentication token
CN111050314A (en) * 2018-08-23 2020-04-21 刘高峰 Client registration method, device and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201742438U (en) * 2010-06-12 2011-02-09 杭州驭强科技有限公司 Bidirectional authentication type dynamic password token device and dynamic password authentication system
CN108092776A (en) * 2017-12-04 2018-05-29 南京南瑞信息通信科技有限公司 A kind of authentication server and authentication token
CN111050314A (en) * 2018-08-23 2020-04-21 刘高峰 Client registration method, device and system

Also Published As

Publication number Publication date
CN113806798B (en) 2023-07-14

Similar Documents

Publication Publication Date Title
US11128477B2 (en) Electronic certification system
US10437985B2 (en) Using a second device to enroll a secure application enclave
US8196186B2 (en) Security architecture for peer-to-peer storage system
JP5860815B2 (en) System and method for enforcing computer policy
CA2708059C (en) System and method for dynamic, multi-attribute authentication
CN112671720B (en) Token construction method, device and equipment for cloud platform resource access control
JP2022545627A (en) Decentralized data authentication
KR20190114434A (en) Method for oauth service through blockchain, and terminal and server using the same
KR102192370B1 (en) Method for oauth service through blockchain, and terminal and server using the same
KR20130084315A (en) A bidirectional entity authentication method based on the credible third party
IL266535A (en) System and method for transparent multi-factor authentication and security posture checking
US10897353B2 (en) Computer-implemented method for generating passwords and computer program products of same
KR20190114432A (en) Method for oauth service through blockchain, and terminal and server using the same
US20180007021A1 (en) Public key pinning for private networks
CN114301617A (en) Identity authentication method and device for multi-cloud application gateway, computer equipment and medium
CN110365632B (en) Authentication method and data processing equipment in computer network system
Schwarz et al. Feido: Recoverable FIDO2 tokens using electronic ids
Hussain et al. An improved authentication scheme for digital rights management system
KR20090054774A (en) Method of integrated security management in distribution network
Heilman et al. OpenPubkey: Augmenting OpenID connect with user held signing keys
CN115834149A (en) Numerical control system safety protection method and device based on state cryptographic algorithm
CN113806798A (en) User side verification method, system, equipment and medium
KR20200112771A (en) Method for oauth service through blockchain, and terminal and server using the same
Fongen et al. The integration of trusted platform modules into a tactical identity management system
KR20170111809A (en) Bidirectional authentication method using security token based on symmetric key

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant