On the security of a simple three-party key exchange protocol without server's public keys.

Authenticated key exchange protocols are of fundamental importance in securing communications and are now extensively deployed for use in various real-world network applications. In this work, we reveal major previously unpublished security vulnerabilities in the password-based authenticated three-party key exchange protocol according to Lee and Hwang (2010): (1) the Lee-Hwang protocol is susceptible to a man-in-the-middle attack and thus fails to achieve implicit key authentication; (2) the protocol cannot protect clients' passwords against an offline dictionary attack; and (3) the indistinguishability-based security of the protocol can be easily broken even in the presence of a passive adversary. We also propose an improved password-based authenticated three-party key exchange protocol that addresses the security vulnerabilities identified in the Lee-Hwang protocol.


Introduction
One of the fundamental problems in the areas of cryptography and communication security is to enable two parties communicating over a public network to establish a highentropy secret key (known as a session key) from their lowentropy passwords which are easy for humans to remember. Password-based authenticated key exchange (PAKE) protocols are designed to solve this problem and often assume the three-party setting, in which each party (commonly called a client) needs to remember only a single password shared with a trusted server [1][2][3][4][5][6][7][8][9][10][11]. The design of secure yet efficient threeparty PAKE protocols is notoriously hard and continues to be a subject of active research. A key challenge in designing such protocols is to prevent potential attacks by a malicious client, who is registered with the server, and thus is able to set up normal protocol sessions with other clients.
In this work, we present previously unpublished flaws in the S-EA-3PAKE protocol, a three-party PAKE protocol proposed by Lee and Hwang [4]. The design of the S-EA-3PAKE protocol is relatively simple and efficient and carries a claimed proof of security in the ROR model according to Abdalla et al. [1]. However, despite the claim of provable security, this protocol exhibits major security weaknesses. First, the protocol fails to achieve implicit key authentication, which is the fundamental security property that any given key exchange protocol is expected to provide. We demonstrate this by mounting a man-in-the-middle attack against the protocol. The attacker could be any malicious client. Second, the protocol is vulnerable to an offline dictionary attack by a malicious client and thus other clients cannot be guaranteed of the security of their passwords. Third, the protocol does not achieve semantic security of session keys; that is, session keys established by S-EA-3PAKE are distinguishable from random 2 The Scientific World Journal keys. We show this by mounting a passive attack in the ROR model, thereby invalidating the existing proof of security for S-EA-3PAKE. In addition to reporting the security vulnerabilities, we will also show how to fix the S-EA-3PAKE protocol so that it can achieve implicit key authentication as well as password security and semantic security.
Throughout the paper, we make the following assumptions on the capabilities of the adversary A in order to properly analyze the security properties of three-party PAKE protocols.
(i) A is either an outsider or an insider who runs in a probabilistic polynomial time.
(ii) A has the complete control of all message exchanges between the server and clients. That is, A can eavesdrop, insert, modify, intercept, and delete messages exchanged among the protocol participants at will.
This assumption is the standard one [12,13] and is consistent with Dolev-Yao model.

The S-EA-3PAKE Protocol
The S-EA-3PAKE protocol [4] is built upon Abdalla and Pointcheval's 2-party PAKE protocol called SPAKE [14]. Let and be two clients who wish to establish a session key, and and denote the passwords of and , respectively, shared with a trusted server . The public parameters required by S-EA-3PAKE include S-EA-3PAKE is shown in Figure 1 and proceeds as follows.
Step 1. sends and a protocol initiation message init = ⟨ , ⟩ which states " wants to establish a session key with . " Step 2. and establish a shared secret key by running the 2-party protocol SPAKE. Likewise, and establish a shared secret key . More precisely, and are established as shown in Table 1.
and sends ⟨ * , ⟩ and ⟨ * , ⟩ to and , respectively. Step 6. and perform key confirmation by exchanging = Mac ( ‖ ) and = Mac ( ‖ ) and verifying them in a straightforward way.
The correctness of S-EA-3PAKE can be easily verified from = = .

No Implicit Key Authentication.
Implicit key authentication of S-EA-3PAKE can be violated via a man-in-the-middle attack by a malicious (registered) client . A possible attack scenario is as follows.
(1) The attacker blocks the protocol initiation message init = ⟨ , ⟩ from reaching and instead sends (to ) two forged initiation messages init = ⟨ , ⟩ and init = ⟨ , ⟩ which state, respectively, " wants to establish a session key with " and " wants to establish a session key with . " As a result, will think that there are two protocol sessions running concurrently; let Π , denote the session between and and let Π , denote the session between and .
(2) In both sessions Π , and Π , , performs Step 2 through 5 as per the protocol specification with its true identity. This can go undetected since none of the authenticators, , , , and , can confirm who the actual protocol participants are. As a result, will share a session key, , , with and another session key, , , with .  Figure 1: The S-EA-3PAKE protocol according to Lee and Hwang [4]. → → chooses a random ∈ Z * , computes = and * = ⋅ , and sends * to . At the same time, chooses a random ∈ Z * , computes = and * = ⋅ , and sends * to . Then, and set = .
chooses a random ∈ Z * , computes = and * = ⋅ , and sends * to . At the same time, chooses a random V ∈ Z * , computes = V and * = ⋅ , and sends * to . Then, and set = V .
At the end of the attack scenario, and believe that they have established a secure session with each other sharing a key, while in fact they have shared their keys with the attacker . Consequently, S-EA-3PAKE fails to achieve implicit key authentication.

No Password Security.
We now show that S-EA-3PAKE cannot protect clients' passwords against an offline dictionary attack. Assume a malicious client who wants to find out the passwords of and . Let be the password of . Then, an offline dictionary attack by against both and can be mounted as follows.
Phase 1 (gathering password verifiers online). conducts a type of man-in-the-middle attack to obtain information required to verify password guesses.
(1) blocks the initiation message init = ⟨ , ⟩ from reaching and instead sends two forged initiation messages init = ⟨ , ⟩ and init = ⟨ , ⟩, thereby 4 The Scientific World Journal deceiving into thinking that there are two protocol sessions, Π , and Π , , running concurrently. (2) then performs Step 2 through 5 of both sessions as specified by the protocol except for the following.
(i) When and send * = ⋅ and * = ⋅ in Step 2, makes a copy of these messages for later use.
(ii) sends the same Step 2 message * = ⋅ of its own for both sessions, where ∈ Z * .
(3) Now when and exchange the key confirmation messages = Mac ( ‖ ) and = Mac ( ‖ ), intercepts these messages and instead sends the clients "a failure message" to trick them into believing that, due to an unexpected error, their partner has failed to compute the session key and thus has aborted the protocol.

Phase 2 (verifying password guesses offline).
can now verify password guesses both on and using the obtained information ( * , * , ) and ( * , * , ), respectively. (For simplicity, we here describe this verification phase only for ; the case for proceeds correspondingly).
Step 1. computes where is the secret key shared between and in Step 2 of session Π , .
Step 2. Note that, since * was replaced witĥ * = * ⋅ , must have computed as With this in mind, makes a guess on the password and computes Step 3. verifies the correctness of by checking that is equal to . If they are equal, then is the correct password with an overwhelming probability.
Step 4. repeats Steps 2 and 3 (of this verification phase) until a correct password is found.
This offline dictionary attack can be trivially simplified to an insider-attacker version whereby one of the two clients, and , tries to discover the other client's password. After all, the S-EA-3PAKE protocol cannot prevent any (malicious) client from mounting an offline dictionary attack against any other clients.

No Semantic Security.
Finally, we point out that the S-EA-3PAKE protocol does not achieve the semantic security of session keys. In S-EA-3PAKE, the session key (resp. ) is used as the MAC key in generating the authenticator = Mac ( ‖ ) (resp. = Mac ( ‖ )). This oversight leaks some information about the session key and allows an adversary to distinguish the real session key from a random key chosen from the session key space. Indeed, S-EA-3PAKE can be easily broken even in the presence of a passive adversary who asks only a single Execute and Test query. A simple attack by such an adversary A can be described as follows.
(1) First, A makes an Execute(Π * , Π * , Π * ) query, where Π * , Π * , and Π * denote any instance of , , and , respectively. This query prompts an honest execution of the protocol between the three instances and will return the transcript of the protocol execution.
(2) Next, A makes a Test(Π * ) query and receives a key in response to the query.
(3) Then, A computes = Mac ( ‖ ) and checks if is equal to . The key is real if they are equal and otherwise it is random.
This attack invalidates the existing proof of security for S-EA-3PAKE [4]. We refer the reader to the work of Bellare et al. [13] for a possible countermeasure.

An Improved Three-Party PAKE Protocol
In this section, we propose an improved three-party PAKE protocol which achieves semantic security and is secure against man-in-the-middle attacks as well as offline dictionary attacks. Let be the trusted server and let and be two registered clients of who wish to establish a shared session key. We denote the passwords of and by and , respectively. Our improved protocol uses the following public parameters: (i) a finite cyclic group G of prime order and a generator of G; (ii) two random elements and of G; Ver k (A‖B‖S‖X * , AS ) = 1 ?  → → chooses a random ∈ Z , computes = and * = ⋅ , and sends * to . At the same time, chooses a random ∈ Z , computes = and * = ⋅ , and sends * to . Then, and set = .
chooses a random ∈ Z , computes = and * = ⋅ , and sends * to . At the same time, chooses a random V ∈ Z , computes = V and * = ⋅ , and sends * to . Then, and set = V .
(iv) a pair of message authentication code (MAC) generation/verification algorithms (Mac, Ver), where Ver outputs a bit, with 1 meaning accept and 0 meaning reject.
The improved protocol is illustrated in Figure 2 and its description is as follows.
Step 1. sends and a protocol initiation message init = ⟨ , ⟩ which states " wants to establish a session key with . " Step 2. and establish a shared secret key by running the 2-party protocol SPAKE. Likewise, and establish a shared secret key . More precisely, and are 6 The Scientific World Journal established as shown in Table 2. (Note in Table 2 that all the random exponents are selected from Z as our protocol works in a group of prime order .) Step 3.
Step Step 6. and perform key confirmation by exchanging = ( ‖ ‖ ) and = ( ‖ ‖ ) and verifying them in a straightforward way.
It can be easily verified that and compute session keys of the same value since = = . Compared with the S-EA-3PAKE protocol, our improved protocol does not require the computations of * and * and simplifies the computations of and . Therefore, it is fair to say that our protocol performs slightly better than the S-EA-3PAKE protocol.
Man-in-the-middle attacks and offline dictionary attacks such as the ones we mounted against the S-EA-3PAKE protocol are no longer valid against our improved protocol since the authenticators, , , , and , can now confirm who the actual protocol participants are. Moreover, our protocol achieves semantic security as the key derivation secrets and instead of the session keys and are used in generating the authenticators = ( ‖ ‖ ) and = ( ‖ ‖ ).

Concluding Remarks
The model where S-EA-3PAKE was claimed to be provably secure does not allow the adversary to ask Corrupt queries and thus cannot capture any kind of attacks that can be mounted by malicious clients. Accordingly, neither the man-in-the-middle attack nor the offline dictionary attack described in this work can be captured in the proof model. This situation is clearly unacceptable, from both theoretic and practical perspectives, and highlights the importance of considering Corrupt queries when proving security of threeparty PAKE protocols. Although both the man-in-the-middle attack and the dictionary attack can be easily prevented by modifying the computations of the authenticators , , , and , the existence of a security proof for the S-EA-3PAKE protocol in a stronger model remains an open question. We finally note that all the three attacks presented in this work against S-EA-3PAKE also apply to the S-IA-3PAKE protocol [4], a simplified variant of S-EA-3PAKE. This becomes clear as soon as we notice that S-IA-3PAKE is different from S-EA-3PAKE only in the fact that it does not require the transmission of the authenticators , , , and .