Next Article in Journal
A Privacy Measurement Framework for Multiple Online Social Networks against Social Identity Linkage
Previous Article in Journal
Two Topics of Optical Excitation Dynamics, Newly Unveiled by the Time- and Momentum-Resolved Photo-Electron Emission from the Conduction Band of GaAs: A Theoretical Review
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

A Robust Mutual Authentication with a Key Agreement Scheme for Session Initiation Protocol

1
College of Computer Science and Engineering, Shandong University of Science and Technology, Qingdao 266590, China
2
Harbin Institute of Technology (Shenzhen), Shenzhen 518055, China
3
Department of Computer Science and Engineering, Hong Kong University of Science and Technology, Hong Kong, China
4
Department of Information Management, National Dong Hwa University, Hualien 97401, Taiwan
5
National Demonstration Center for Experimental Electronic Information and Electrical Technology Education, Fujian University of Technology, Fuzhou 350118, China
6
Fujian Provincial Key Laboratory of Big Data Mining and Applications, Fujian University of Technology, Fuzhou 350118, China
*
Author to whom correspondence should be addressed.
Appl. Sci. 2018, 8(10), 1789; https://doi.org/10.3390/app8101789
Submission received: 14 September 2018 / Revised: 14 September 2018 / Accepted: 20 September 2018 / Published: 1 October 2018

Abstract

:
Session initiation protocol (SIP) is the most widely used application layer control protocol for creating, modifying, and terminating session processes. Many authentication schemes have been proposed for SIP aimed at providing secure communication. Recently, a new authentication and key agreement scheme for SIP has been proposed, and it was claimed that it could resist a variety of attacks. However, in this paper, we show that this scheme is vulnerable to an offline password guessing attack and a stolen memory device attack. Furthermore, we show that it lacks the verification mechanism for a wrong password, and that the password updating process is not efficient. To mitigate the flaws and inefficiencies of this scheme, we design a new robust mutual authentication with a key agreement scheme for SIP. A security analysis revealed that our proposed scheme was robust to several kinds of attacks. In addition, the proposed scheme was simulated by the automatic cryptographic protocol tool ProVerif. A performance analysis showed that our proposed scheme was superior to other related schemes.

1. Introduction

Session initiation protocol (SIP) is an application layer control protocol proposed and studied by the Internet Engineering Task Force (IETF) on the Internet Protocol (IP) network for multimedia communication. SIP is used to create, modify, and terminate one or more participants’ session processes. It supports five aspects in establishing and maintaining the termination of a multimedia session: User location, user effectiveness, user ability, session establishment, and session management. An important feature of SIP is that it does not define the type of a session to establish, but only defines how to manage a session. Because of this flexibility, SIP can be used in many applications and services including interactive games; music and video on demand; and voice, video, and Web conferences. SIP reuses a Multipurpose Internet Mail Extensions (MIME) type description as an e-mail client, so that the conversational related applications can be automatically activated. Moreover, SIP reuses several existing mature Internet services and protocols, such as Domain Name System (DNS), Real-time Transport Protocol (RTP), Resource Reservation Protocol (RSVP), and so on. Therefore, since many parts of the infrastructure are in place or ready for use, there is no need to introduce new services to support the SIP infrastructure.
Although users enjoy the services provided by SIP, security has emerged as a major issue because the transmitted data usually contains people’s sensitive and private information. To guarantee a secure communication in SIP, a secure authentication with a key agreement scheme should be executed before the communication begins. For this reason, many related schemes for SIP have been proposed [1,2,3,4,5,6,7,8,9,10,11] in the past few years.
In 2014, Zhang et al. [1] proposed a flexible smart card based authentication scheme for SIP and claimed that it has strong security. However, Irshad et al. [2] pointed out that Zhang et al.’s scheme is vulnerable to a DOS attack, and that it could become more secure by adding a few modifications. They then proposed an improved SIP scheme [2]. Unfortunately, Arshad et al. [3] later found that the scheme of Irshad et al. cannot resist a user impersonation attack. To overcome this weakness, Arshad et al. proposed a new efficient and secure scheme based on ECC [3]. Very recently, Lin et al. [4] demonstrated that the scheme of Arshad et al. is vulnerable to a server spoofing attack, a DOS attack, a privilege insider attack, and that it cannot achieve user anonymity. To mitigate these weaknesses, they proposed a new scheme for SIP using ECC.
In this paper, we analyze the security of Lin et al.’s anonymous authentication and key agreement SIP scheme. We show that their scheme cannot withstand an offline password guessing attack nor a stolen memory device attack. Furthermore, Lin et al.’s scheme lacks a verification mechanism for a wrong password and the password updating process is not efficient. To overcome these flaws and inefficiencies, we propose a robust mutual authentication with a key agreement scheme.
This paper is organized as follows: In Section 2, a review of Lin et al.’s scheme is presented. In Section 3, the flaws and inefficiencies of their scheme are described. In Section 4, a SIP scheme is introduced and described in detail. A security analysis of the proposed scheme is given in Section 5. In Section 6, an automatic cryptographic protocol tool, ProVerif, is used to simulate the proposed scheme. A performance analysis is given in Section 7. Lastly, conclusions and our findings are given in Section 8.

2. Review of Lin et al.’s Scheme

This section presents Lin et al.’s scheme, which includes two phases: The registration phase, and the login and authentication phase. For convenience, the notations used in the rest of the paper are listed in Table 1.

2.1. Registration Phase

A client registers on a remote server via a secure channel by following the steps listed below:
Step 1: 
The client selects an identity I D i , a password P W i , a random number N c , and computes V i = h ( I D i | | P W i | | N c ) . Then, the client submits a registration message { I D i , V i } to the server.
Step 2: 
When the registration message is received, the server first checks the validity of I D i . Then, it computes A i = h ( I D i | | k s ) , B i = h ( A i | | k s ) , and C i = E B i ( V i ) . Next, it stores { A i , C i , E s ( · ) , D s ( · ) } into the memory device and issues it to the client.
Step 3: 
On receiving the memory device, the client stores N c into it.

2.2. Login and Authentication Phase

A legal client can log in to the server by either Case-1 or Case-2. When a client does not want to update his password, Case-1 is used; otherwise, Case-2 is used. The steps of these two cases are described in the following section, and the corresponding procedures are illustrated in Figure 1 and Figure 2.

2.2.1. CASE-1: Login and Authentication Phase without Password Updating

Step 1: 
The client inserts the memory device and inputs I D i and P W i . Then, V i = h ( I D i | | P W i | | N c ) is computed. Next, a random integer r c and current timestamp T 1 are generated, and R c = r c · P , F i = h ( V i | | A i | | C i | | T 1 ) , k 1 = r c K s , H i = E k 1 ( r e a l m | | F i | | A i | | C i | | T 1 ) is computed. Lastly, the REQUEST message { H i , R c } is sent to the server.
Step 2: 
When the server receives the REQUEST message, it obtains the data { r e a l m | | F i | | A i | | C i | | T 1 } by decrypting H i with k 2 = k s R c . Then, it verifies the validity of T 1 . If T 1 is valid, B i = h ( A i | | k s ) is computed and V i is obtained by decrypting C i . Next, it computes F i = h ( V i | | A i | | C i | | T 1 ) and checks whether F i = F i holds or not. If it holds, then the server executes Step 3; otherwise, the authentication process is stopped.
Step 3: 
The server generates a random integer r s , timestamp T 2 , and computes R s = r s · P , J i = h ( V i F i r s R c T 2 ) , session key S K = h ( V i r s R c T 2 ) , and L i = E k 2 ( R s | | J i | | T 2 | | r e a l m ) . Finally, the server sends the ACCEPT message { L i } to the client.
Step 4: 
On receiving the ACCEPT message, the client obtains { R s | | J i | | T 2 | | r e a l m } by decrypting L i with k 1 . Then, the client verifies the validity of T 2 , and if it is valid, J i = h ( V i F i r c R s T 2 ) is computed and checks whether J i = J i holds or not. If it holds, then the session key S K = h ( V i r c R s T 2 ) is computed; otherwise, the authentication process is stopped.

2.2.2. CASE-2: Login and Authentication Phase with Password Updating

Step 1: 
The client inserts the memory device and inputs I D i and P W i . Then, V i = h ( I D i | | P W i | | N c ) is computed. Next, the client generates a random integer r c and current timestamp T 1 , and computes R c = r c · P , F i = h ( V i | | A i | | C i | | T 1 ) .
Step 2: 
The client selects new password P W i n e w , and computes V i n e w = h ( I D i | | P W i n e w | | N c ) , G i = h ( V i n e w V i T 1 R c ) , k 1 = r c K s , and H i = E k 1 ( r e a l m | | F i | | A i | | C i | | T 1 | | V i n e w | | G i | | C H A N G E P W ) . Lastly, the client sends the REQUEST message { H i , R c } to the server.
Step 3: 
When the server receives the REQUEST message, it obtains the data { r e a l m | | F i | | A i | | C i | | T 1 | | V i n e w | | G i | | C H A N G E P W } by decrypting H i with k 2 = k s R c . Then, the server verifies the validity of T 1 , and if it is valid, B i = h ( A i | | k s ) is computed V i is obtained by decrypting C i . Next, the server computes F i = h ( V i | | A i | | C i | | T 1 ) , G i = h ( V i n e w V i T 1 R c ) and checks whether F i = F i and G i = G i hold or not. If they do, then the server executes Step 4; otherwise, the server stops the authentication process.
Step 4: 
The server generates a random integer r s , timestamp T 2 , and computes R s = r s · P , J i = h ( V i F i r s R c T 2 ) , C i n e w = E B i ( V i n e w ) , S K = h ( V i r s R c T 2 ) , and L i = E k 2 ( R s | | J i | | T 2 | | C i n e w | | r e a l m ) . Finally, the server sends the ACCEPT message { L i } to the client.
Step 5: 
On receiving the ACCEPT message, the client obtains { R s | | J i | | T 2 | | C i n e w | | r e a l m } by decrypting L i with k 1 . Then, the client verifies the validity of T 2 . If T 2 is valid, J i = h ( V i F i r c R s T 2 ) is computed and checks whether J i = J i holds or not. If it holds, S K = h ( V i r c R s T 2 ) is computed and C i is replaced with C i n e w ; otherwise, the authentication process is stopped.

3. Flaws and Inefficiencies of Lin et al.’s Scheme

Although Lin et al. claimed that their scheme could resist various types of attacks, we have found that their scheme cannot withstand an offline password guessing attack nor a stolen memory device attack. Furthermore, their scheme lacks a verification mechanism for a wrong password, and the password updating process is not efficient. In this section, we describe our findings in detail.
We first illustrate the attacker model under a three-factor authentication scheme [12,13,14]. Assume that an attacker A has the following capabilities.
  • A has the full control of the public channel, but not the secure channel. That means A can obtain all the transmitted data in the login and authentication phase.
  • A can alter, delete, or replay the data that was captured from the public channel.
  • A has the ability to read or extract the secret data from the stolen smart card issued to a user.
  • A knows the authentication scheme since A can be an outsider user or a legal user.

3.1. Offline Password Guessing Attack

Lin et al. claimed in their work that even when attacker A extracts secret data { A i , C i , N i } stored in the memory device and has the capability to guess the client’s identity and password at the same time, a true password still cannot be obtained. However, that is not true in reality. The following steps show that A can successfully launch an offline password guessing attack to obtain the client’s password.
Step 1: 
A extracts the secret data { A i , C i , N i } stored in the memory device.
Step 2: 
A selects an identity I D a = A i , a password P W a , and a random number N a , and then computes V i = h ( I D a | | P W a | | N a ) . Then, A submits the registration message { I D a , V a } to the server.
Step 3: 
When the server receives the registration message from A, it checks I D a . Then, the server computes A a = h ( I D a | | k s ) = h ( A i | | k s ) = B i , B a = h ( A a | | k s ) , and C a = E B a ( V a ) . After that, the server stores { A a , C a , E s ( · ) , D s ( · ) } into the memory device and issues it to the client.
Step 4: 
On receiving the memory device, A obtains V i by decrypting C i with the key A a ( A a = B i ) .
Step 5: 
A guesses the client’s identity I D i and password P W i , and then computes V i = h ( I D i | | P W i | | N c ) .
Step 6: 
A compares V i with V i . If these two values are equal, then A believes that P W i is a true password and returns it; otherwise, A repeats Step 5.

3.2. Stolen Memory Device Attack

A stolen memory device attack means that an attacker A steals a certain user’s memory device and extracts the data stored in it, and then A can impersonate the user to log in to the system.
From the above-stated analysis, we can conclude that when a memory device is lost or stolen, and the secret data stored in it are extracted, it is easy for A to obtain the client’s registered value V i . In the following, it will be shown that Lin et al.’s scheme cannot withstand a stolen memory device attack since A can impersonate a certain client with V i . Case-1 of Lin et al.’s login and authentication phase is taken as an example.
Step 1: 
A extracts the secret data { A i , C i , N i } stored in a memory device.
Step 2: 
A obtains V i with the assistance of memory device using Steps 1 to 4 presented in Section 3.1.
Step 3: 
A generates a random integer r a and timestamp T 1 , and then computes R a = r a · P , F a = h ( V i | | A i | | C i | | T 1 ) , k 1 = r a K s , H a = E k 1 ( r e a l m | | F a | | A i | | C i | | T 1 ) . Lastly, the REQUEST message { H a , R a } is sent to the server.
Step 4: 
When the server receives the REQUEST message from A, it obtains data { r e a l m | | F a | | A i | | C i | | T 1 } by decrypting H a with k 2 = k s R a . Then, the server verifies T 1 , which is valid, computes B a = h ( A i | | k s ) , and obtains V i by decrypting C i . Next, the server computes F a = h ( V i | | A i | | C i | | T 1 ) and checks F a . The same as T 1 , the value passes the verification.
Step 5: 
The server generates r s and timestamp T 2 , and then computes k 2 = k s R a , R s = r s · P , J a = h ( V i F a r s R a T 2 ) , S K = h ( V i r s R a T 2 ) , and L a = E k 2 ( R s | | J a | | T 2 | | r e a l m ) . Finally, it sends the ACCEPT message { L a } to A.
Step 6: 
On receiving the ACCEPT message, A obtains { R s | | J a | | T 2 | | r e a l m } by decrypting L a with k 1 . Then, the shared session key S K = h ( V i r a R s T 2 ) is computed. Until now, A was seen as a legal client and established a session key S K with server. This means that A can pretend to be a legal user to log in and obtain the user’s personal information.

3.3. Absence of a Verification Mechanism for a Wrong Password

As stated in [15,16], in real life, people need to manage a large number of accounts for different applications, so it can easily happen that someone inputs a wrong password. The verification mechanism for a wrong password at a device is an ideal feature for the authentication protocol, which can not only reduce needless communication, but also save calculation costs. However, this valuable mechanism is absent in Lin et al.’s scheme. The consequence of this shortcoming is that a session initiated by a wrong password will be continued until the server finds some errors, and the client will not realize there is a password error until the request is out of time. In this way, much communication and computational resources are wasted, and the authentication process is made ineffective.

3.4. Inefficiency of Password Updating

By analyzing some of the related memory-based authentication schemes [15,16,17,18], we found that a trend in password updating operations was to carry out this operation without help from a server. However, in Lin et al.’s scheme, when a client wants to update his password, he must log in and establish a session key with the server even when the client does not want to access any of the server’s services. Although this is not necessarily wrong, it is absolutely not efficient.

4. The Proposed Scheme

To mitigate the flaws and inefficiencies mentioned above, we propose a robust mutual authentication with a key agreement scheme for SIP. Compared with Lin et al.’s scheme, the proposed scheme has the following advantages:
  • If a user desires to update his password, he does not need help from the server.
  • We add a verification mechanism for a wrong password. This can reduce needless communication and computation cost.
  • To prevent an offline password guessing attack or a stolen memory device attack, we redesign the equations used in the login and authentication phase.
Our proposed scheme contains four phases: Initialization phase, registration phase, login and authentication phase, and password change phase.

4.1. Initialization Phase

In the initialization phase of our proposed scheme, the server initializes some parameters: it selects an elliptic curve equation E p ( a , b ) , a base point P E p ( a , b ) , a secure one-way hash function h ( · ) , and symmetric key encryption/decryption functions E s ( · ) / D s ( · ) . In addition, it selects a high entropy integer k s as its secret key and computes K s = k s · P .

4.2. Registration Phase

When a client desires to access any service provided by a remote server, the client must first register on that server. The steps of registration phase are illustrated in Figure 3 and described below:
Step 1: 
The client selects an identity I D i , a password P W i , and a random number b. Then, the client computes H P W i = h ( P W i | | b ) and sends the registration message { I D i , H P W i } to the server.
Step 2: 
On receiving the registration message, the server generates a random integer m and then computes A i = h ( I D i | | k s ) , B i = h ( h ( I D i | | H P W i ) m o d m ) , and C i = A i H P W i B i . After that, the server issues the data { B i , C i , m , K s , E s ( · ) , D s ( · ) , h ( · ) } into a memory device and sends it to the client.
Step 3: 
When the memory device is received from the server, the client stores b into it. Finally, the memory device contains { B i , C i , m , b , K s , E s ( · ) , D s ( · ) , h ( · ) } .

4.3. Login and Authentication Phase

A legal client can submit a login request message to a remote server and obtain various services after being authenticated. The steps of login and authentication are shown in Figure 4 and explained below:
Step 1: 
The client inserts the memory device and inputs I D i and P W i . Then, the client computes H P W i = h ( P W i | | b ) , B i = h ( h ( I D i | | H P W i ) m o d m ) . After that, B i is compared with B i . If they are equal, the client executes Step 2; otherwise, the process is stopped.
Step 2: 
The client generates a random integer r c , the current timestamp T 1 , and then computes A i = C i H P W i B i , R c = r c A i P , k 1 = r c A i K s , and H i = E k 1 ( r e a l m | | I D i | | A i | | T 1 ) . Lastly, the client sends the REQUEST message { H i , R c } to the server.
Step 3: 
When the REQUEST message is received, the server obtains the data { r e a l m | | I D i | | A i | | T 1 } by decrypting H i with k 2 ( k s R c ). Then, the server verifies the validity of T 1 . If T 1 is valid, A i = h ( I D i | | k s ) is computed and A i = A i checks whether the validity holds or not. If it holds, then the server executes Step 4; otherwise, it stops the process.
Step 4: 
The server generates a random integer r s and timestamp T 2 , and then computes R s = r s · P , J i = r s R c , S K = h ( J i | | T 1 | | T 2 ) , and L i = E k 2 ( I D i | | R s | | J i | | T 2 | | r e a l m ) . Finally, the server sends the ACCEPT message { L i } to the client.
Step 5: 
On receiving the ACCEPT message, the client obtains { I D i | | R s | | J i | | T 2 | | r e a l m } by decrypting L i with k 1 . Then, the client verifies the validity of T 2 , and if it is valid, the client computes J i = r c A i R s and checks whether J i = J i holds or not. If it holds, the client computes the session key S K = h ( J i | | T 1 | | T 2 ) ; otherwise, the client stops the process.

4.4. Password Change Phase

When a client wants to make a password change, then the following steps must be performed without any help from a remote server.
Step 1: 
The client inserts the memory device and inputs I D i and P W i . The client is authenticated before executing Step 2.
Step 2: 
The client inputs a new P W i n e w and computes H P W i n e w = h ( P W i n e w | | b ) , B i n e w = h ( h ( I D i | | H P W i n e w ) m o d m ) , and C i n e w = C i H P W i B i H P W i n e w B i n e w .
Step 3: 
The client uses B i n e w and C i n e w to replace B i and C i in the memory device.

5. Security Analysis

This section presents the security performance of our proposed scheme, and reveals that our scheme is resistant to several kinds of attacks, such as an offline password guessing attack, a stolen memory device attack, a privileged insider attack, etc.

5.1. User Anonymity

In our scheme, even if an attacker A has obtained the message { H i , R c , L i } transmitted via the public channel, then A cannot obtain the true identity I D i because H i , R c , and L i are protected by random integer r c and the server’s secret key k s , which are unknown to A. Therefore, our proposed scheme provides user anonymity.

5.2. Untraceability

In our scheme, the REQUEST message { H i , R c } submitted in the login and authentication phase is different in each communication due to randomly selected integer r c . Similarly, the back ACCEPT message { L i } is also different. Therefore, an attacker A cannot link any two messages nor trace the client. In this way, untraceability is achieved.

5.3. Offline Password Guessing Attack

Suppose an attacker A has obtained client’s memory device and extracted secret data { B i , C i , m , b , K s } stored in it. A can then start to guess the possible pair I D i , P W i , and compute B i = h ( h ( I D i | | h ( P W i | | b ) ) m o d m ) . However, even if B i is equal to B i , then A still cannot be sure if the guessed I D i and P W i are correct. This is because there are various pairs of ( I D i , P W i ) which can obtain the same B i . Therefore, the proposed scheme resists offline password guessing attacks.

5.4. Stolen Memory Device Attack

Stolen memory device attacks happen when an attacker A steals a memory device, extracts the data stored in it, and logs in to the server as a legal client [19,20]. In our proposed scheme, with the data { B i , C i , m , b , K s } stored in the memory devices, to log in to the server, A has to construct a legal REQUEST message { H i , R c } . However, without the client’s true identity I D i and the server’s private key k s , A cannot recreate A i = h ( I D i | | k s ) , which is essential in H i and R c . Therefore, our proposed scheme resists stolen memory device attacks.

5.5. User Impersonation Attack

Assume that an attacker A has obtained the REQUEST message { H i , R c } and extracted the data { B i , C i , m , b , K s } stored in the client’s memory device. When A intends to impersonate the user, H i and R c need to be constructed. However, as we mentioned before, without the client’s true identity I D i and server’s secret key k s , A cannot recreate A i . Therefore, our proposed scheme resists user impersonation attacks.

5.6. Server Spoofing Attack

Assume that an attacker A has obtained all the transmitted messages { H i , R c , L i } and intends to masquerade as a server to deceive the client. In this case, A needs to construct a legal ACCEPT message { L i } . Unfortunately, without the server’s secret key k s , A cannot decrypt H i to acquire I D i , which is used in L i . Therefore, our proposed scheme resists server spoofing attacks.

5.7. Privileged Insider Attack

In our proposed scheme, we assume that a privileged insider has obtained I D i , H P W i = h ( P W i | | b ) of a certain legal client in the registration phase. However, without knowing b, the attacker A can guess, but cannot obtain, the right password P W i . Therefore, our proposed scheme resists privilege insider attacks.

5.8. Replay Attack

In our proposed scheme, if an attacker A intercepts the REQUEST message { H i , R c } and replays it later, the server will detect it by checking the timestamp T 1 . On the other hand, if A replays the ACCEPT message { L i } from the server, then the client can recognize it by checking T 2 . Therefore, our proposed scheme resists replay attacks.

5.9. Stolen Verifier Attack

Stolen verifier attacks [21,22] occur when an attacker A obtains some precious information that is stored on a server’s end. In our scheme, the only information about I D i is stored in a database. H i and L i are enciphered, and R c is protected by k s . Thus, A cannot utilize I D i to obtain other values. Therefore, our proposed scheme resists stolen verifier attacks.

5.10. Forward Secrecy

Forward secrecy means that all past session keys remain secure even though a server’s master key is compromised by an attacker A. In our proposed scheme, S K = h ( J i | | T 1 | | T 2 ) = h ( r s A i R c | | T 1 | | T 2 ) = h ( r c A i R s | | T 1 | | T 2 ) . When A obtains the server’s secret key k s , A can compute k s R c . With this value, A can decrypt H i to obtain T 1 , I D i and decrypt L i to obtain T2, R s . Furthermore, A can compute A i = h ( I D i | | k s ) . However, the values of r s and r c are out of the range of A. Therefore, even if A knows the server’s master key, A cannot know any past session keys. Therefore, our proposed scheme provides forward secrecy.

5.11. Known Key Security

Our proposed scheme can provide known key security, which means that when the authentication and key agreement protocol is executed, both the client and server generate a unique session key. In other words, the disclosure of some session keys has no effect on the security of the others. In our proposed scheme, S K = h ( J i | | T 1 | | T 2 ) = h ( r c r s A i P | | T 1 | | T 2 ) , where timestamps and random integers are exploited in the computation. Therefore, even if A knows some session keys, without knowing the timestamps and random integers generated in a certain communication, A cannot obtain the needed session key. Hence, our proposed scheme provides known key security.

5.12. Perfect Forward Secrecy

Perfect forward secrecy means that when using the secret keys of the server and client, an attacker A still cannot obtain the previous session keys. In our proposed scheme, the secret key of the server is k s , and that of the client is the data { B i , C i , m , b , K s } stored in the memory device. With the above assumption, A can obtain T 1 , T 2 , A i , R c , and R s . However, when A intends to compute the shared session key S K = h ( J i | | T 1 | | T 2 ) = h ( r s A i R c | | T 1 | | T 2 ) = h ( r c A i R s | | T 1 | | T 2 ) , A faces difficulties in extracting r c from R c or r s from R s . Therefore, A cannot obtain the previous session keys. Thus, our proposed scheme provides perfect forward secrecy.

6. Formal Verification

ProVerif is an automatic cryptographic protocol verifier, which is widely used to specify and analyze the security of authenticated key agreement protocols [23,24,25,26,27].
In this section, we used the automatic cryptographic protocol tool ProVerif to show that our proposed scheme is secure. ProVerif was used because it can implement one-way hash function, symmetric and asymmetric encryption, digital signatures, etc. Moreover, various attacks can be reconstructed by ProVerif. The code of the scheme is illustrated below.
There were two types of channels, the private channel for transmitting sensitive messages and the public channel for transmitting general messages. The declarations of variables, functions, keys, and other related parameters are shown in Figure 5. The processes performed by the client and server are presented in Figure 6 and Figure 7, respectively. The main process is shown in Figure 8.
The results of our proposed scheme are presented in Figure 9. It can be concluded from these results that the session key is out of an attacker’s reach.

7. Comparison

In this section, the security features and communication cost of the proposed scheme and other related schemes are compared.

7.1. The Security Features

The proposed scheme was compared with other related schemes [1,2,3,4]. The comparison results are presented in Table 2, from which it is clear that our proposed scheme performed better in terms of security features.

7.2. Performance Discussion

In this subsection, the estimated time of the proposed scheme was compared with other related protocols [1,2,3,4]. First, a personal smart device (iPhone 6s with ARM(armv8-a) CPU, 2GB RAM, and iOS 10.1.1 operating system) was used to calculate the execution time of SHA-256, symmetric encryption/decryption operation (AES-GCM), scalar multiplication on ECC (256bits), and modular multiplication. Our experiment was based on Pairing-Based Cryptography (PBC) library. The PBC library is a free C library that performs the mathematical operations underlying pairing-based cryptosystems.
Each operation was executed 1000 times and the average running times were computed. The experimental result are shown in Table 3. Because the computation of the XOR operation, point addition operation, and modular inversion operation are very trivial, they can be ignored.
The computation costs of all the schemes are listed in Table 4, but it is the authentication and key agreement phase which is frequently utilized.

8. Conclusions

In this paper, we first analyzed an anonymous and secure authentication scheme for SIP proposed by other authors. Although the authors claimed that their scheme could resist various attacks, we found that it is not robust to an offline password guessing attack nor a stolen memory device attack. Moreover, it lacks a verification mechanism for wrong password insertion, and its password updating is not efficient. To mitigate these flaws and inefficiencies and enhance security, we designed a new robust mutual authentication with a key agreement scheme. The results of security and performance analyses showed that our proposed scheme is superior to the other related schemes.

Author Contributions

C.-M.C. and T.-Y.W. wrote the main concepts of the manuscript; K.-H.Y. and B.X. designed and implemented the experiments; K.-H.W. checked the English writing and organization of the manuscript.

Funding

This research was funded by Science and Technology Development Center, Ministry of Education, China [grant number 2017A13025] and funded by Natural Science Foundation of Fujian Province [grant number 2018J01636].

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Zhang, L.; Tang, S.; Cai, Z. Efficient and flexible password authenticated key agreement for voice over internet protocol session initiation protocol using smart card. Int. J. Commun. Syst. 2014, 27, 2691–2702. [Google Scholar]
  2. Irshad, A.; Sher, M.; Rehman, E.; Ch, S.A.; Hassan, M.U.; Ghani, A. A single round-trip sip authentication scheme for voice over internet protocol using smart card. Multimedia Tools Appl. 2015, 74, 3967–3984. [Google Scholar] [CrossRef]
  3. Arshad, H.; Nikooghadam, M. An efficient and secure authentication and key agreement scheme for session initiation protocol using ECC. Multimedia Tools Appl. 2016, 75, 181–197. [Google Scholar] [CrossRef]
  4. Lin, H.; Wen, F.; Du, C. An anonymous and secure authentication and key agreement scheme for session initiation protocol. Multimedia Tools Appl. 2017, 76, 2315–2329. [Google Scholar] [CrossRef]
  5. Yang, C.C.; Wang, R.C.; Liu, W.T. Secure authentication scheme for session initiation protocol. Comput. Secur. 2005, 24, 381–386. [Google Scholar] [CrossRef]
  6. Wu, L.; Zhang, Y.; Wang, F. A new provably secure authentication and key agreement protocol for SIP using ECC. Comput. Standards Interfaces 2009, 31, 286–291. [Google Scholar] [CrossRef]
  7. Yoon, E.J.; Shin, Y.N.; Jeon, I.S.; Yoo, K.Y. Robust mutual authentication with a key agreement scheme for the session initiation protocol. IETE Tech. Rev. 2010, 27, 203–213. [Google Scholar] [CrossRef]
  8. Arshad, R.; Ikram, N. Elliptic curve cryptography based mutual authentication scheme for session initiation protocol. Multimedia Tools Appl. 2013, 66, 165–178. [Google Scholar] [CrossRef]
  9. Kumari, S.; Chaudhry, S.A.; Wu, F.; Li, X.; Farash, M.S.; Khan, M.K. An improved smart card based authentication scheme for session initiation protocol. Peer-to-Peer Netw. Appl. 2017, 10, 92–105. [Google Scholar] [CrossRef]
  10. Poltronieri, F.; Fronteddu, R.; Stefanelli, C.; Suri, N.; Tortonesi, M.; Paulini, M.; Milligan, J. A secure group communication approach for tactical network environments. In Proceedings of the 2018 International Conference on Military Communications and Information Systems (ICMCIS), Warsaw, Poland, 22–23 May 2018. [Google Scholar]
  11. Castiglione, A.; D’Arco, P.; De Santis, A.; Russo, R. Secure group communication schemes for dynamic heterogeneous distributed computing. Future Gener. Comput. Syst. 2017, 74, 313–324. [Google Scholar] [CrossRef]
  12. Sureshkumar, V.; Amin, R.; Anitha, R. An enhanced bilinear pairing based authenticated key agreement protocol for multiserver environment. Int. J. Commun. Syst. 2017, 30, e3358. [Google Scholar] [CrossRef]
  13. Kumari, S.; Khan, M.K. More secure smart card-based remote user password authentication scheme with user anonymity. Secur. Commun. Netw. 2014, 7, 2039–2053. [Google Scholar] [CrossRef]
  14. Kumari, S.; Li, X.; Wu, F.; Das, A.K.; Arshad, H.; Khan, M.K. A user friendly mutual authentication and key agreement scheme for wireless sensor networks using chaotic maps. Future Gener. Comput. Syst. 2016, 63, 56–75. [Google Scholar] [CrossRef]
  15. Li, X.; Niu, J.; Kumari, S.; Wu, F.; Choo, K.K.R. A robust biometrics based three-factor authentication scheme for global mobility networks in smart city. Future Gener. Comput. Syst. 2018, 83, 607–618. [Google Scholar] [CrossRef]
  16. Doshi, N.; Kumari, S.; Mishra, D.; Li, X.; Choo, K.K.R.; Sangaiah, A.K. A password based authentication scheme for wireless multimedia systems. Multimedia Tools Appl. 2017, 76, 25893–25918. [Google Scholar] [CrossRef]
  17. Feng, Q.; He, D.; Zeadally, S.; Wang, H. Anonymous biometrics-based authentication scheme with key distribution for mobile multi-server environment. Future Gener. Comput. Syst. 2018, 84, 239–251. [Google Scholar] [CrossRef]
  18. Srinivas, J.; Mukhopadhyay, S.; Mishra, D. A self-verifiable password based authentication scheme for multi-server architecture using smart card. Wirel. Pers. Commun. 2017, 96, 6273–6297. [Google Scholar] [CrossRef]
  19. Chen, C.M.; Li, C.T.; Liu, S.; Wu, T.Y.; Pan, J.S. A Provable Secure Private Data Delegation Scheme for Mountaineering Events in Emergency System. IEEE Access 2017, 5, 3410–3422. [Google Scholar] [CrossRef]
  20. Chen, C.M.; Xu, L.; Wu, T.Y.; Li, C.R. On the security of a chaotic maps-based three-party authenticated key agreement protocol. J. Netw. Intell. 2016, 1, 61–66. [Google Scholar]
  21. Chen, C.M.; Ku, W.C. Stolen-verifier attack on two new strong-password authentication protocols. IEICE Trans. Commun. 2002, 85, 2519–2521. [Google Scholar]
  22. Wang, K.H.; Chen, C.M.; Fang, W.; Wu, T.Y. A secure authentication scheme for Internet of Things. Pervasive Mob. Comput. 2017, 42, 15–26. [Google Scholar] [CrossRef]
  23. Chen, C.M.; Xiang, B.; Wu, T.Y.; Wang, K.H. An Anonymous Mutual Authenticated Key Agreement Scheme for Wearable Sensors in Wireless Body Area Networks. Appl. Sci. 2018, 8, 1074. [Google Scholar] [CrossRef]
  24. Chaudhry, S.A.; Naqvi, H.; Sher, M.; Farash, M.S.; Hassan, M.U. An improved and provably secure privacy preserving authentication protocol for SIP. Peer-to-Peer Netw. Appl. 2017, 10, 1–15. [Google Scholar] [CrossRef]
  25. Wu, F.; Xu, L.; Kumari, S.; Li, X.; Shen, J.; Choo, K.K.R.; Wazid, M.; Das, A.K. An efficient authentication and key agreement scheme for multi-gateway wireless sensor networks in IoT deployment. J. Netw. Comput. Appl. 2017, 89, 72–85. [Google Scholar] [CrossRef]
  26. Abbasinezhad-Mood, D.; Nikooghadam, M. Efficient anonymous password-authenticated key exchange protocol to read isolated smart meters by utilization of extended chebyshev chaotic maps. IEEE Trans. Ind. Inform. 2018. [Google Scholar] [CrossRef]
  27. Abbasinezhad-Mood, D.; Nikooghadam, M. Design and hardware implementation of a security-enhanced elliptic curve cryptography based lightweight authentication scheme for smart grid communications. Future Gener. Comput. Syst. 2018, 84, 47–57. [Google Scholar] [CrossRef]
Figure 1. Login and authentication phase without password updating.
Figure 1. Login and authentication phase without password updating.
Applsci 08 01789 g001
Figure 2. Login and authentication phase with password updating.
Figure 2. Login and authentication phase with password updating.
Applsci 08 01789 g002
Figure 3. Registration phase of our proposed scheme.
Figure 3. Registration phase of our proposed scheme.
Applsci 08 01789 g003
Figure 4. Login and authentication phase of our proposed scheme.
Figure 4. Login and authentication phase of our proposed scheme.
Applsci 08 01789 g004
Figure 5. The declarations of variables, functions, keys, and other related parameters.
Figure 5. The declarations of variables, functions, keys, and other related parameters.
Applsci 08 01789 g005
Figure 6. The client’s process.
Figure 6. The client’s process.
Applsci 08 01789 g006
Figure 7. The server’s process.
Figure 7. The server’s process.
Applsci 08 01789 g007
Figure 8. The main process.
Figure 8. The main process.
Applsci 08 01789 g008
Figure 9. The results.
Figure 9. The results.
Applsci 08 01789 g009
Table 1. Notations used in this paper.
Table 1. Notations used in this paper.
NotationDescription
I D i Client’s identity
P W i Client’s password
PBase point on ECC
k s Server’s secret key
K s Server’s public key ( K s = k s P ˙ )
| | Concatenatio operation
Exclusive-or operation
E s ( · ) Symmetric key encryption under the key s
D s ( · ) Symmetric key decryption under the key s
Table 2. Comparison of security features.
Table 2. Comparison of security features.
C1C2C3C4C5C6C7C8C9C10
[1]NYNNYYYYYY
[2]NYYNYYYYYY
[3]NYYYNNYYYY
[4]YYNNYYYNYY
Our’sYYYYYYYYYY
C1: Provide user anonymity; C2: Withstand replay attacks; C3: Withstand offline password guessing attacks; C4: Withstand user impersonation attacks; C5: Withstand server spoofing attacks; C6: Withstand privilege insider attacks; C7: Withstand stolen verifier attacks; C8: Withstand stolen memory device attacks; C9: Provide known key security; C10: Provide perfect forward secrecy.
Table 3. Computation of cryptographic operations.
Table 3. Computation of cryptographic operations.
SymbolDescriptionEstimated Time
T h One invocation of SHA-256 hash0.03 ms
T d Scalar multiplication on ECC20.23 ms
T m Modular multiplication4.72 ms
T e d Symmetric encryption/Decryption operation0.12 ms
Table 4. Comparison of computation costs.
Table 4. Comparison of computation costs.
SchemesComputation CostEstimated Time
[1] 10 T h + 8 T d + 2 T a + 2 T m 171.58 ms
[2] 8 T h + 6 T d + 4 T e d + 4 T m + T n 140.98 ms
[3] 8 T h + 4 T d + T m + T n 85.55 ms
[4] 11 T h + 6 T d + 6 T e d 122.43 ms
Our’s 6 T h + 6 T d + 4 T e d + T n 122.04 ms
T h : Time for executing a one-way hash function; T a : Time for executing a point addition operation of an elliptic curve; T d : Time for executing a scalar multiplication operation of an elliptic curve; T m : Time for executing modular multiplication operation; T e d : Time for executing encryption or decryption; T n : Time for executing modular inversion operation.

Share and Cite

MDPI and ACS Style

Chen, C.-M.; Xiang, B.; Wang, K.-H.; Yeh, K.-H.; Wu, T.-Y. A Robust Mutual Authentication with a Key Agreement Scheme for Session Initiation Protocol. Appl. Sci. 2018, 8, 1789. https://doi.org/10.3390/app8101789

AMA Style

Chen C-M, Xiang B, Wang K-H, Yeh K-H, Wu T-Y. A Robust Mutual Authentication with a Key Agreement Scheme for Session Initiation Protocol. Applied Sciences. 2018; 8(10):1789. https://doi.org/10.3390/app8101789

Chicago/Turabian Style

Chen, Chien-Ming, Bin Xiang, King-Hang Wang, Kuo-Hui Yeh, and Tsu-Yang Wu. 2018. "A Robust Mutual Authentication with a Key Agreement Scheme for Session Initiation Protocol" Applied Sciences 8, no. 10: 1789. https://doi.org/10.3390/app8101789

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop