Abstract

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.

1. 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 high-entropy secret key (known as a session key) from their low-entropy 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 [111]. The design of secure yet efficient three-party 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 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 in order to properly analyze the security properties of three-party PAKE protocols.(i) is either an outsider or an insider who runs in a probabilistic polynomial time.(ii) has the complete control of all message exchanges between the server and clients. That is, 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.

2. 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(i)a large prime and a generator of ,(ii)two random elements and of ,(iii)a cryptographic hash function used as a key derivation function and(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.

S-EA-3PAKE is shown in Figure 1 and proceeds as follows.

Step 1. sends and a protocol initiation message 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.

Step 3. (resp. ) computes the authenticator  (resp. ) and sends it to .

Step 4. aborts if either  or  is untrue. Otherwise, selects a random , computes and sends and to and , respectively.

Step 5. checks if  and aborts if the check fails. Otherwise, computes the key derivation secret, , and the session key, . Meanwhile, checks if  and aborts if the check fails. Otherwise, computes and .

Step 6. and perform key confirmation by exchanging  and  and verifying them in a straightforward way.

The correctness of S-EA-3PAKE can be easily verified from .

3. Previously Unpublished Flaws

3.1. 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 from reaching and instead sends (to ) two forged initiation messages and 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 .(3)With and in hand, can perform Step 6 (of both sessions) in the straightforward way without being detected; simply replaces  and  with  and , respectively.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.

3.2. 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 from reaching and instead sends two forged initiation messages and , thereby 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 .(iii)When sends and , respectively, to and in Step 4 of the sessions, replaces and with and , respectively.Let and denote the two messages sent by to in Step 4 of and , respectively.(3)Now when and exchange the key confirmation messages  and , 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 with , 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.

3.3. 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  (resp. ). 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 can be described as follows.(1)First, makes an  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, makes a  query and receives a key in response to the query.(3)Then, computes  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.

4. 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 of prime order and a generator of ;(ii)two random elements and of ;(iii)a cryptographic hash function , where represents the bit length of session keys;(iv)a pair of message authentication code (MAC) generation/verification algorithms , where  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 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 2. (Note in Table 2 that all the random exponents are selected from as our protocol works in a group of prime order .)

Step 3. (resp. ) computes the authenticator  (resp. ) and sends it to .

Step 4. aborts if either  or , is untrue. Otherwise, selects a random , computes and sends and to and , respectively.

Step 5. checks if  and aborts if the check fails. Otherwise, computes the key derivation secret, , and the session key, . Meanwhile, checks if  and aborts if the check fails. Otherwise, computes and .

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 .

5. 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 three-party 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 .

Conflict of Interests

The authors of the paper do not have a direct financial relation with any institution or organization mentioned in their paper that might lead to a conflict of interests for any of the them.

Acknowledgment

This work was supported by Konkuk University.