Abstract:
An entity bidirectional authentication method and system, the method involves: the first entity sends the first message; the second entity sends the second message to the credible third party after receiving the said first message; the said credible third party returns the third message after receiving the second message; the said second entity sends the fourth message after receiving the third message and verifying it; the said first entity receives the said fourth message and verifies it, completes the authentication. Compared with the conventional authentication mechanism, the invention defines an on-line retrieval and authentication mechanism of a public key, realizes the centralized management for it, simplifies the operating condition of the protocol, and facilitates the application and implement.

Description:
This application claims priority to Chinese Patent Application No. 200710199241.3, filed with the Chinese Patent Office on Dec. 14, 2007 and titled “Method for two-way entity authentication”, which is hereby incorporated by reference in its entirety. 
     FIELD OF THE INVENTION 
     The present invention relates to a method for two-way entity authentication and a system thereof. 
     BACKGROUND OF THE INVENTION 
     Entity authentication methods based on asymmetric cryptographic algorithm can be categorized into two types: one-way authentication method and two-way authentication method. The uniqueness or timeliness of authentication is identified by time variant parameters, which normally may be a time stamp, a sequence number, a random number, etc. If a time stamp or sequence number is used as the time variant parameter, then the one-way authentication between entities can be completed by one pass authentication, and the two-way authentication between entities can be completed by two pass authentication; and if a random number is used as the time variant parameter, then the one-way authentication between entities can be completed by two pass authentication, and the two-way authentication between entities can be completed by three pass authentication or four pass authentication (i.e., two parallel one-way authentication). 
     In either one of the authentication mechanisms, prior to or during the authentication, the verifier must have the possession of a valid public key of the claimant; otherwise the authentication process may be damaged or may not be accomplished. A method for three pass two-way authentication is described hereinafter as an example: 
     Now refer to  FIG. 1  with the tokens: TokenAB=R A ∥R B ∥B∥Text 3 ∥sS A (R A ∥R B ∥B∥Text 2 ) and TokenBA=R B ∥R R ∥R A ∥A∥Text 5 ∥sS B (R A ∥R A ∥A∥Text 4 ). X represents an entity distinguishing identifier, and the authentication system includes two authentication entities A and B; Cert X  represents a certificate of the entity X; sS X  represents a signature of the entity X; R X  represents a random number generated by the entity X; and Text represents an optional text field. 
     The process of the three pass two-way authentication mechanism is described as follows: 
     Step S 11 : the entity B transmits a random number R B  and an optional text field Text 1  to the entity A; 
     Step S 12 : the entity A transmits the TokenAB and an optional certificate Cert A  to the entity B; 
     Step S 13 : the entity B is assured of the possession of a valid public key of the entity A by verifying a certificate of the entity A or by some other means; 
     Step S 14 : the entity B obtains the public key of the entity A, verifies a signature of the entity A in TokenAB in step S 12 , verifies the entity distinguishing identifier B and checks whether the random number R B  transmitted in step S 11  is consistent with a random number R B  in TokenAB, thereby the entity B accomplishes verification of the entity A; 
     Step S 15 : the entity B transmits the TokenBA and an optional certificate Cert B  to the entity A; 
     Step S 16 : the entity A is assured of the possession of a valid public key of the entity B by verifying a certificate of the entity B or by some other means; 
     Step S 17 : the entity A obtains the public key of the entity B, verifies a signature of the entity B in TokenBA in step S 15 , verifies the entity distinguishing identifier A and checks whether the random number R A  transmitted in step S 12  is consistent with a random number R A  in TokenBA and the random number R B  received in step S 11  is consistent with a random number R B  in TokenBA, thereby the entity A accomplishes verification of the entity B. 
     As can be seen, to accomplish the three pass authentication mechanism, the entities A and B must have the possession of the other&#39;s valid public key. However, how to obtain the other&#39;s public key and its validity is not disclosed in the protocols. Currently, such requirement can not be satisfied in many application scenarios. For example, normally user access control is enabled in a communication network based on an entity authentication mechanism such that the access by a user to the network is not allowed until authentication is passed. Therefore, prior to the authentication, the user cannot or would have difficulty in accessing a certificate authority to obtain the validity of a public key of an opposing entity, i.e., a network access point, which results in failure to perform the authentication. 
     SUMMARY OF THE INVENTION 
     In view of this, the present invention provides a method for two-way entity authentication and a system thereof, in order to address the problem of failure to perform authentication due to the inability in the prior art to access the network prior to successful authentication. 
     An embodiment of the invention provides a method for two-way entity authentication, including the steps of: 
     transmitting, by a first entity, a first message carrying a time variant parameter R A , an entity identity ID A  and a signature; 
     transmitting, by a second entity, upon reception of the first message, to a trusted third party a second message carrying time variant parameters R A  and R B , the entity identity ID A  of the first entity and an entity identity ID B  of the second entity; 
     returning, by the trusted third party, upon reception of the second message, to the second entity a third message carrying a signature of the trusted third party and the time variant parameters R A  and R B ; 
     obtaining, by the second entity, upon reception of the third message, an verification result for the first entity if verification of the signature of the trusted third party is passed and the time variant parameter R B  is consistent with a locally stored time variant parameter R B , and if the verification result indicates that the first entity is valid, then obtaining a public key of the first entity to verify the signature of the first entity in the first message, and if the verification is passed, then transmitting a fourth message carrying the signature of the trusted third party, a signature of the second entity and the time variant parameter R A ; and 
     obtaining, by the first entity, upon reception of the fourth message, a verification result for the second entity if verification of the signature of the trusted third party is passed and the time variant parameter R A  is consistent with a locally stored time variant parameter R A , and if the verification result indicates that the second entity is valid, then obtaining a public key of the second entity to verify the signature of the second entity in the fourth message, thereby completing the authentication. 
     Preferably in the foregoing method, the third message is transmitted after verifying the validity of the first entity and the second entity. 
     Preferably in the foregoing method, the first entity and the second entity are valid if: the entity identities of the first entity and the second entity in the second message are certificates, and the certificates are valid. 
     Preferably in the foregoing method, the first entity and the second entity are valid if: the entity identities of the first entity and the second entity in the second message are entity distinguishing identifiers, and the public keys of the first entity and the second entity exist and are valid. 
     Preferably in the foregoing method, the time variant parameter is a random number, a time stamp, or a sequence number. 
     An embodiment of the invention further discloses a tri-element peer authentication system, including: a first entity, a second entity, and a third entity as a trusted third entity, and: 
     the first entity is adapted to transmit to the second entity a first message carrying a time variant parameter R A  and an entity identity of the first entity ID A  and a signature; to obtain a verification result for the second entity if verification of a signature of the third entity is passed and the time variant parameter R A  is consistent with a locally stored time variant parameter R A  upon reception of a fourth message carrying the signature of the third entity, a signature of the second entity and the time variant parameter R A  returned by the second entity; and to obtain a public key of the second entity to verify the signature of the second entity in the fourth message if the verification result indicates that the second entity is valid; 
     the second entity is adapted to transmit to the third entity a second message carrying time variant parameters R A  and R B , the entity identity ID A  of the first entity, and an entity identity ID B  of the second entity upon reception of the first message; to obtain a verification result for the first entity if verification of the signature of the third entity is passed and the time variant parameter R B  in the third message is consistent with a locally stored time variant parameter R B  upon reception of a third message carrying the signature of the third entity and the time variant parameters R A  and R B  returned by the third entity; to obtain a public key of the first entity to verify the signature of the first entity in the first message if the verification result indicates that the first entity is valid; and to transmit the fourth message if the verification is passed; and 
     the trusted third party is adapted to receive the second message and to return the third message to the second entity. 
     Preferably in the foregoing system, the third message is transmitted after verifying the validity of the first entity and the second entity. 
     Preferably in the foregoing system, the first entity and the second entity are valid if: the entity identities of the first entity and the second entity in the second message are certificates, and the certificates are valid. 
     Preferably in the foregoing system, the first entity and the second entity are valid if: the entity identities of the first entity and the second entity in the second message are distinguishing identifiers, and the public keys of the first entity and the second entity exist and are valid. 
     Preferably in the foregoing system, the time variant parameter is a random number, a time stamp, or a sequence number. 
     The invention employs a tri-entity architecture, in which prior to the authentication an authentication entity shall obtain a public key or a certificate of a trusted third party, and obtain a user certificate issued by the trusted third party or submit its own public key to the trusted third party, without the requirement of having to know in advance a valid public key of the opposing authentication entity. In protocol operation, the public key of the authentication entity and the validity thereof can be transmitted automatically to the opposing end by retrieval and verification at the trusted third party. In comparison with traditional authentication mechanisms, the invention defines an on-line retrieval and authentication mechanism for public keys, which enables centralized management thereof, simplifies operating conditions of the protocol, and facilitates its execution. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Technical solutions in the embodiments of the invention or in the prior art would be better understood with the accompanying drawings of the embodiments of the invention or of the prior art. It should be noted that the drawings below are merely illustrative of some embodiments of the invention, and those skilled in the art may derive from the drawings other drawings without inventive efforts. 
         FIG. 1  illustrates authentication of a three pass authentication mechanism in the prior art; 
         FIG. 2  is a schematic diagram of a two-way authentication method according to an embodiment of the invention; 
         FIG. 3  is a schematic diagram of a verification process by the entity B in the method illustrated in  FIG. 1 ; 
         FIG. 4  is a schematic diagram of a verification process by the entity A in the method illustrated in  FIG. 1 ; 
         FIG. 5  is a schematic diagram of a tri-element peer authentication system according to an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Technical solutions of the invention would be better understood with the description of the embodiments below with reference to the accompanying drawings of the embodiments of the invention. It should be noted that the described embodiments are merely some of the possible embodiments of the invention, and those skilled in the art may obtain other embodiments based on the embodiments described in the invention without inventive efforts, which should be included in the scope of the invention. 
     Reference is made to  FIG. 2 , which illustrates a schematic diagram of a method for two-way entity authentication according to an embodiment of the invention. 
     The method according to the embodiment of the invention relates to three entities: two authentication entities A and B, and a Trusted Third Party (TTP). The TTP is a trusted third party of the authentication entities A and B. Such a system with peer authentication between two entities A and B performed via a trusted third party is referred to as a Tri-element Peer Authentication (TePA) system. Valid X  represents the validity of a certificate Cert X ; PublicKey X  represents a public key of an entity X (X represents A or B); ID X  represents an identity of the entity X, and is represented by the entity distinguishing identifier X or the certificate Cert X ; Pub X  represents a verification result of for the entity X, and includes the certificate Cert X  and its validity Valid X , or the entity distinguishing identifier X and its public key PublicKey X ; and Token represents a token field defined as follows:
 
Token AB=sS   A ( R   A   ∥ID   A ∥Text1)
 
Token TB=R   A   ∥R   B Pub A ∥Pub B   ∥sS   TP ( R   A   ∥R   B ∥Pub A ∥Pub B ∥Text3)
 
Token TB 1= R   B ∥Pub A ∥Text5∥sS TP ( R   B ∥Pub A ∥Text5)
 
Token TB 2= R   A ∥Pub B ∥Text6∥ sS   TP ( R   A ∥Pub B ∥Text6)
 
Token BA 1= sS   B (Text3∥Token TB ∥Text4∥)
 
Token BA 2= sS   B (Token TB 2∥Text4)
 
     A detailed process is described as follows: 
     Step S 21 : the entity A transmits to the entity B a message  1 , including a time variant parameter R A , an identity ID A , the token TokenAB and an optional text field Text 1 ; 
     Step S 22 : upon reception of the message  1 , the entity B transmits to the TTP a message  2 , including time variant parameters R A  and R B , entity identities ID A  and ID B , and an optional text field Text 2 ; 
     Step S 23 : upon reception of the message  2 , the TTP verifies the entities A and B; 
     Particularly, if the entity identities of the entities A and B in the message  2  are certificates, then the validity of the certificates of the entities A and B are checked, and if they are invalid, then the message  2  is discarded directly or a message  3  is returned; if they are valid, then the message  3  is returned. 
     If the entity identities of the entities A and B in the message  2  are entity distinguishing identifiers, then respective public keys of the entities A and B are retrieved and verified; and if no public keys are found or are invalid, then the message  2  is discarded directly or the message  3  is returned; if the public keys are retrieved and valid, the message  3  is returned. 
     Step S 24 : after verifying the entities A and B, the TTP returns to the entity B the message  3  including the token TokenTB and an optional text field Text 3  or including the tokens TokenTB 1  and TokenTB 2 ; 
     Step S 25 : upon reception of the message  3 , the entity B performs verification; 
     As illustrated in  FIG. 3 , a detailed verification process by the entity B includes the following steps: 
     Step S 31 : a signature signed by the TTP on TokenTB or TokenTB 2  is verified, and if the verification is passed, go to step S 32 ; otherwise, end the process; 
     Step S 32 : it checks whether the time variant parameter R B  in the message  2  is consistent with the time variant parameter R B  in TokenTB or TokenTB 1 , and if they are consistent, go to step S 33 ; otherwise, end the process; 
     Step S 33 : a verification result for the entity A Pub A  is obtained; and if the entity A is valid, go to step S 34 ; otherwise, end the process; 
     Step S 34 : the public key of the entity A is obtained, and a signature signed by the entity A on TokenAB in the message  1  is verified; and if the signature is correct, then it determines that the verification is passed. 
     It shall be noted that, in other embodiments, the step of verifying the signature signed by the TTP on TokenTB or TokenTB 1  may be performed following the step of checking whether the time variant parameter R B  in the message  2  is consistent with the time variant parameter R B  in TokenTB or TokenTB 1 . 
     It shall further be noted that, alternatively, step S 26  may be performed directly in the case that the entity A is determined to be invalid in step S 33 . 
     Step S 26 : after verifying the message  3 , the entity B transmits to the entity A a message  4  including the tokens TokenTB and TokenBA 1  and two optional text fields Text 3  and Text 4  or including the tokens TokenTB 2  and TokenBA 2  and an optional text field Text 4 . It shall be noted that, if the message  3  includes the token TokenTB and the optional text Text 3 , then the message  4  includes the tokens TokenTB and TokenBA 1  and the optional text fields Text 3  and Text 4 ; and if the message  3  includes the tokens TokenTB 1  and TokenTB 2 , then the message  4  includes the tokens TokenTB 2  and TokenBA 2  and the optional text Text 4 . 
     Step S 27 : the entity A performs verification upon reception of the message  4 ; 
     As illustrated in  FIG. 4 , a detailed verification process by the entity A includes the following steps: 
     Step S 41 : a signature signed by the TTP on TokenTB or TokenTB 2  is verified, and if the verification is passed, then go to step S 42 ; otherwise, end the process; 
     Step S 42 : it checks whether the time variant parameter R A  in the message  1  is consistent with the time variant parameter R A  in TokenTB or TokenTB 2 , and if they are consistent, go to step S 42 ; otherwise, end the process; 
     Step S 43 : a verification result for the entity B Pub B  is obtained; and if the entity B is valid, then go to step S 44 ; otherwise, end the process; 
     Step S 44 : the public key of the entity B is obtained, and a signature signed by the entity B on TokenBA 1  or TokenBA 2  is verified; and if the verification is passed, then the authentication is accomplished. 
     It shall be noted that the step of verifying the signature signed by the TTP on TokenTB or TokenTB 2  may be performed following the step of checking whether the time variant parameter R A  in the message  1  is consistent with the time variant parameter R A  in TokenTB or TokenTB 2 . 
     It shall further be noted that the time variant parameter in the invention may be a random number, a time stamp or a sequence number. 
     In view of the foregoing method, an embodiment of the invention further provides a system for implementing the method, i.e., a Tri-element Peer Authentication (TePA) system as illustrated in  FIG. 5 , which includes a first entity  51 , a second entity  52  and a third entity  53 . 
     The third entity  53  is a trusted third party of the first entity  51  and the second entity  52 ; 
     The first entity  51  is adapted to transmit to the second entity a first message carrying a time variant parameter R A , its own identity ID A  and a token TokenAB, to receive a fourth message carrying tokens TokenTB and TokenBA 1  or carrying tokens 
     TokenTB 2  and TokentBA 2  transmitted from the second entity  52 , to verify a signature signed by the third entity  53  on the token TokenTB or TokenTB 2 , to check whether the time variant parameter R A  is consistent with the time variant parameter R A  in TokenTB or TokenTB 2 , and if they are consistent, then to obtain a verification result for the second entity  52 , and if the verification result indicates that the second entity  52  is valid, then to obtain a public key of the second entity  52  to verify a signature signed by the second entity  52  on the token TokenBA 1  or TokenBA 2  in the fourth message. 
     The second entity  52  is adapted to transmit to the third entity  53  a second message carrying the time variant parameters R A  and R B , the identity ID A  of the first entity  51  and its own identity ID B  upon reception of the first message, to receive a third message carrying the token TokenTB or carrying the tokens TokenTB 1  and TokenTB 2  returned from the third entity, to verify a signature signed by the third entity  53  on the token TokenTB or TokenTB 1 , to check whether the time variant parameter R B  is consistent with the time variant parameter R B  in TokenTB or TokenTB 1 , and if they are consistent, then to obtain a verification result for the first entity  51 , and if the verification result indicates that the first entity  51  is valid, then obtain a public key of the first entity  51  to verify a signature signed by the first entity  51  on TokenAB in the first message, and to transmit the fourth message upon successful verification. 
     The third entity  53  is adapted to receive the second message, and to return the third message to the second entity  52  after performing verification for the first entity  51  and the second entity  52 . 
     For detailed interactive processes between the respective entities in this embodiment, please refer to the foregoing descriptions of the foregoing method. 
     Based on the description above of the disclosed embodiments, those skilled in the art can implement or use the invention. Various modifications to the embodiments would be apparent to those skilled in the art. The general principle defined herein can be practiced in other embodiments without departing from the spirit or scope of the invention. Accordingly, the invention is limited to the embodiments illustrated herein but shall be accorded with the broadest scope consistent with the principle and novel features disclosed herein.