Extending SIP Authentication To Exploit User Credentials Stored in Existing Authentication Databases
Extending SIP Authentication To Exploit User Credentials Stored in Existing Authentication Databases
Extending SIP Authentication To Exploit User Credentials Stored in Existing Authentication Databases
1. INTRODUCTION
The SIP (Session Initiation Protocol) [1] is the IETF standard
for setting-up, maintaining, and tearing-down peer-to-peer
sessions between two or more user agents (UAs). SIP is
currently used as standard signaling protocol for VoIP
(Voice-over-IP), Instant Messaging (IM), and conferencing
applications, and has been adopted by the 3GPP (Third
Generation Partnership Project) as standard signaling
protocol for real-time applications within the IP Multimedia
Subsystem (IMS) of the third generation mobile networks
(UMTS) [3].
As specified in RFC3261 [1], SIP uses the HTTP Digest
Authentication mechanism for authenticating and authorizing
the
users.
The
SIP
servers
that
perform
authentication/authorization usually access a database with
the credential of the users. This database of credential can
either store the clear text password (rarely used for security
risks) or a non-revertible hash of the password, using a
mechanism coherent with that used by the HTTP Digest
This work has been partially supported by the Italian Ministry for
University and Research (MIUR) within the project PROFILES under the
PRIN 2006 research program.
Authentication.
The
problem
is
that
with
other
user
authentication/authorization mechanisms different and non
compatible mechanisms are used to store non-revertible
hashes of the password. This prevents reusing an existing
database of user credentials to offer SIP based services.
Examples of password storing mechanisms that are not
compatible with the SIP Digest Authentication are those used
by: i) LDAP server, ii) UNIX with shadow/password file, iii)
Apache (and other systems) with htpasswd file, iv) SQL
database.
Therefore at the current state of the art, if someone wants to
offer SIP services to a community of users that is
authenticated using one of the four mechanisms shown
above, a different SIP specific database of credentials need to
be realized. This may pose some logistic problems and create
user discomfort.
For this reason, in this paper we propose a set of
authentication mechanisms for SIP that extend the one
specified in RFC 3261 [1]. These algorithms use specific
hash algorithms and a combination of various data such as
user name, real, password, salt, and/or other information, in
order to interoperate with the storage of credentials in
existing authentication/authorization mechanisms.
This work was driven by two specific application scenarios
that we had to face. The first scenario was a Wireless VoIP
application, to be realized on top of an already realized WiFi
authentication infrastructure. The WiFi authentication
infrastructure relied on LDAP servers for storing the
password and a set of users was already in the LDAP
database. The advantage of reusing the same authentication is
evident.
The second scenario relates to a research project named
Simple Mobile Services (founded by the EC) [2]. In this
project we have developed a communication middleware
based on SIP [10] to exchange messages among a set of
mobile terminals and servers. In order to provide web based
interaction a web portal is realized using the open source
Content Management System (CMS) Joomla. Each user
needs to be authenticated and authorized to access services on
the Joomla web portal. At the same time the users mobile
terminal uses a SIP UA that needs to be authenticated in
order to use the middleware facilities and be able to
send/receive messages. It was again natural to desire a single,
integrated handling of user credential, and in particular to re-
UAS
Register
Note that both the requestor (the UAC) and the server do not
need to know the user password, but rather this secret i.e. a
digest function of username, realm and password itself: in
order to correctly compute the response the UAC and the
UAS need only to be able to calculate or retrieve from an
archive the value MD5(username:realm:passwd).
3. NEW EXTENSIBLE AUTHENTICATION SCHEME
The HTTP Digest Authentication specified in [4] and
described in the previous section requires that the response to
the challenge, regardless of the selected algorithm, is in the
form of:
response = KD(H(A1), nonce:nc:cnonce:qop:H(method:uri))
Since both the UAC and the UAS have to calculate such
response value, they both have to be able to access users
credentials or, at least, the quantity H(A1). that in case of
algorithm=MD5 is:
H(A1) = MD5(username:realm:passwd)
401 Antauthorized
Register
200 OK
The first solution (a) has the advantage that it may save some
computation of crypto functions. The second option (b) has
the advantage that it inherits all the security properties of the
current MD5 solution specified for HTTP Digest
Authentication. Moreover one could store in the client the
derived password (i.e. the A3 value) instead of the password
and maintain a compatibility with existing clients. The A3
value could be computed externally and then manually stored
in the SIP client. Of course this is not our suggested solution,
i.e. we believe that SIP stacks should be enhanced with the
proposed solution so that SIP UA can natively support the
new authentication method, anyway it was worth mentioning
this possibility to reuse legacy clients in the short term.
Once that we have chosen which solution for the algorithm,
we should discuss: 1) how to introduce the indication of this
different authentication algorithms within SIP signaling; 2)
how to convey the parameters that are needed by the new
authentication algorithms. Again, we introduce two different
options concerning issue 1):
i) introduce new algorithms specified as parameter
algorithm within authentication headers. We could have for
example algorithm=md5-ldap-sha1, algorithm=md5-cryptdes and so on.
ii) introduce a new authentication parameter called pwdalgo in order to indicate the chosen algorithm used to
compute only the derived-passwd A3.
These two choices are not completely independent from the
choice of the algorithm definition, as shown in the following
table.
i) introduce new values
for the algorithm
parameter
a) definition of a new A1
and H(A1)
Yes
No
Possible
Suggested
http://www.ist-sms-org
[3] 3GPP TS 24.229: IP Multimedia Call Control Protocol
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
5. CONCLUSIONS
In this paper we have proposed extensions to SIP
authentication mechanism in order to interoperate with
existing databases of user credentials. We have analyzed four