One document matched: draft-veltri-sip-alt-auth-00.txt
SIP Working Group L. Veltri
Internet-Draft Univ. of Parma
Intended status: Informational S. Salsano
Expires: October 29, 2008 A. Polidoro
Univ. of Rome Tor Vergata
April 27, 2008
HTTP digest authentication using alternate password storage schemes
draft-veltri-sip-alt-auth-00
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on October 29, 2008.
Veltri, et al. Expires October 29, 2008 [Page 1]
Internet-Draft SIP auth. using alternate schemes April 2008
Abstract
This document proposes to extend the HTTP Digest Authentication by
adding a set new algorithms. These algorithms use different hash
functions and combination of various information such as user name,
realm, password, salt, and/or other data, in order to achieve
compatibility with existing mechanisms used to store user credentials
in various authentication/autorization servers.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. HTTP Digest Authentication for SIP . . . . . . . . . . . . . . 4
3. New extensible authentication scheme . . . . . . . . . . . . . 8
3.1. First solution . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Second solution . . . . . . . . . . . . . . . . . . . . . 13
4. Security considerations . . . . . . . . . . . . . . . . . . . 17
5. Informative References . . . . . . . . . . . . . . . . . . . . 18
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 19
Intellectual Property and Copyright Statements . . . . . . . . . . 20
Veltri, et al. Expires October 29, 2008 [Page 2]
Internet-Draft SIP auth. using alternate schemes April 2008
1. Introduction
According to the current SIP specification [RFC3261], the SIP
protocol uses the HTTP Digest Authentication defined in [RFC2617] as
default mechanism for authenticating and authorizing User Agent
Clients (UACs) against remote User Agent Servers (UASs) or
intermediate proxys. HTTP Digest Authentication is a challenge-
response authentication method and requires that both the supplicant
(i.e. the UAC) and the authenticator (i.e. the UAS or the proxy)
access the clear-text user password or a non-revertible function
(hash-derived) of the password and other information. The HTTP
Digest Authentication [RFC2617] specifically define also an
authentication scheme named MD5 that requires the UAs and proxys to
compute or retrive from a database the MD5 digest of a concatenation
(colon-separated) of username, realm, and password. Unfortunately
other user authentication/authorization mechanisms use different and
non compatible mechanisms to store non-revertible hashes of
passwords. This prevents using an existing database of user
credentials to offer SIP based services requiring authentication.
This document tries to extend the stantard SIP/HTTP Digest
Authentication mechanism in order to consider other password-storing
schemes that do not naturally cooperate with the current HTTP Digest
Authentication scheme. Examples of such password-storing schemes are
those generally used in LDAP servers, Unix shadow/password files,
Apache's htpasswd file, or SQL-based storage systems used by other
specific applications.
Veltri, et al. Expires October 29, 2008 [Page 3]
Internet-Draft SIP auth. using alternate schemes April 2008
2. HTTP Digest Authentication for SIP
HTTP Digest Authentication [RFC2617] is a general challenge-response
mechanism in which a UAS authenticates a UAC based on a shared
secret. The challenge response is computed through the use of a one-
way function based on various user's credentials. The standard also
specifies the use of a particular function (in turn based on the MD5
hash function) that requires that both the client and server knows
the user secret (normally a password) or, at least, the hash of the
concatenation of the user name, the realm, and the password.
When the HTTP Digest Authentication [RFC2617] is used in SIP, an UAS
that receives a SIP request (example a REGISTER) may challenge the
UAC by sending a 401 "Unauthorized" error response (or 407 "Proxy
Authentication Required" for proxy authentication) containing a fresh
random nonce value as challenge. Both the UAC and the UAS share a
secret (usually a password) and they use this secret, together with
the nonce value, realm, and other information, respectively to
compute the challenge response (the UAC) and to verify such the
response (the UAS). The UAS sends the challenge in the 401
"Unauthorized" SIP response within a WWW-Authenticate header field
(Proxy-Authenticate header for proxy authentication), then the UAC
sends the challenge response in a new request message within a
Authorization header field (Proxy-Authorization header for proxy
authentication), and finally the UAS sends the authentication and
authorization result with a new response message (2xx if it
successed).
According to [RFC2617] the challenge response is computed as:
response = KD(H(A1), nonce:nc:cnonce:qop:H(method:uri))
where KD(secret,data) is a general two-parameters digest algorithm
applied to "data" with secret "secret", while H(data) is a digest
algorithm applied to "data", and A1 is a quantity that should take
into account user credentials.
As specified in [RFC2617], by default or in case of "algorithm=MD5,
the KD(,) H(), and A1 are respectively:
KD(secret, data) = MD5(secret:data)
H(data) = MD5(data)
A1 = username:realm:passwd
Particularly, the first term of KD(,) (indicated as "secret") and
computed as H(A1) becomes:
Veltri, et al. Expires October 29, 2008 [Page 4]
Internet-Draft SIP auth. using alternate schemes April 2008
secret = H(A1) = MD5(username:realm:passwd)
Note that both the requestor (the UAC) and the auhenticator (the UAS)
do not need to know the user password (eventually retrieved from a
local archive), but rather this "secret" i.e. a digest function of
username, realm and password itself.
Unfortunately, current user's credential databases or storage systems
often protect user's password by implementing one-way cryptographic
algorithms different from the MD5 hashing mechanism specified for the
HTTP Digest Authentication.
For example, in LDAP (Lightweight Directory Access Protocol) servers,
password values can be stored as plaintext or as one of a variety of
hashes. [RFC3112] specifically describes the "MD5" and "SHA1"
schemes for a LDAP directory. The MD5 scheme computes the hashed-
protected password as the base64 encoding of an MD5 [RFC1321] digest
of the concatenation the user password and salt that must be at least
64 bit long. The SHA1 scheme computes the hashed-protected password
in the same way, by using SHA1 [RFC3174] hash function instead of
MD5.
These two hash-protected password schemes are also referred as:
o SSHA - Salted SHA-1 based hash
o SMD5 - Salted MD5 based hash
Other hash-protected password schemes normally supported by an LDAP
server are:
o SHA - SHA-1 based hash.
o MD5 - MD5 based hash.
o CRYPT - Unix crypt() hash, based on DES, also referred as UNIX;
see later.
Note that these three schemes are weaker than the previous two, due
to the absence of a security salt value. In some lucky cases a LDAP
server may also support other schemes that use pre-calculated hash
values compatible with HTTP Digest Authentication.
An other example is the Unix system in which passwords are usually
stored in the "/etc/shadow" file or, in older Unix versions, in the
"/etc/password" file. In both cases, passwords are normally stored
encrypted (actually hashed) with a one-way algorithm generally
referred as "crypt", together with a salt value and an indication of
Veltri, et al. Expires October 29, 2008 [Page 5]
Internet-Draft SIP auth. using alternate schemes April 2008
the used algorithm. The traditional crypt algorithm implementation
uses a modified form of the DES algorithm that performs 25 DES passes
to encrypt an all-bits-zero block using with a 56-bit key formed by
the first 7 password characters. A 12-bit salt is used to perturb
the original DES algorithm. The salt and the final ciphertext are
base64-encoded into a printable string stored in the password or
shadow file. Other more robust crypt functions have been defined
based on other cryptographic or hash algorithms such as MD5,
blowfish, or SHA-1. Such functions generally allow users to have any
length password (> 8bytes), and do not limit the password to ASCII
(7-bit) text. Currently, the most common crypt function used by
Unix/Linux systems supports both the original DES-based and the MD5-
based (MD5-crypt) algorithms. The MD5-crypt function is really not a
straight implementation of MD5: first the password and salt are MD5
hashed together in a first digest, then 1000 iteration loops
continuously remix the password, salt and intermediate digest values;
the output of the last of these rounds is the resulting hash. A
typical output of the stored password together with username, salt,
and other information is:
alice:$1$BZftq3sP$xEeZmr2fGEnKjVAxzj:12747:0:99999:7:::
where $1$ indicates the use of MD5-crypt, while BZftq3sP is the
base-64 encoding of the salt and xEeZmr2fGEnKjVAxzjQo68 is the
password hash.
Other applications also store user's credentials in local files or
database, that have they own format but that re-use similar hashing
algorithms. For example the Apache's htpasswd tool supports four
different methods:
PLAINTEXT: passwords are stored without any encryption mechanism.
In this case in the file will contain lines of the form: user:
passwd
CRYPT: passwords are stored encrypted using the traditional Unix
crypt function described in the previous section.
SHA1: passwords are stored by base64-encoding the SHA-1 digest of
the password. The corresponding htpasswd file has lines that look
like:
alice:{SHA1}VBPuJHI7uixaa6LQGWx4s+5GKNE=
where VBPuJHI7uixaa6LQGWx4s+5GKNE= is the base-64 hash of the
password.
Veltri, et al. Expires October 29, 2008 [Page 6]
Internet-Draft SIP auth. using alternate schemes April 2008
MD5: passwords are stored encrypted through the MD5-crypt function
described in the previous section using an Apache-modified version
of MD5. An example of a corresponding htpasswd line is:
alice:$apr1$r31.....$HqJZimcKQFAMYayBlzkrA/
where $apr1$ indicates the use of the Apache's MD5-crypt
function, followed by the salt and the effective password hash.
Veltri, et al. Expires October 29, 2008 [Page 7]
Internet-Draft SIP auth. using alternate schemes April 2008
3. New extensible authentication scheme
The HTTP Digest Authentication [RFC2617] 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))
In case of "algorithm=MD5", KD(secret,data) is MD5(secret:data),
H(data) is MD5(data), while the H(A1) becomes MD5(username:realm:
passwd).
Assuming for the moment that we have no interest in changing the KD
function, we can envisage two possible solutions:
a. we can define a different A1 and H(A1) function compatible with
the specific authentication system (A1 is a formatted set of
parameters that are taken into account by the H() function). For
example A1 could be the concatenation passwd:salt and H(A1) could
become: H(A1) = MD5(passwd:salt)
b. we can reuse the definition of H(A1) and only replace the
password parameter with a new derived pseudo-password A3 defined
as A3=KP(password,other-params). In this case we are introducing
a new function KP() with a new set of parameters that includes
the user password. The value A1 becomes: A1=username:realm:A3.
For example, if we chose KP() as MD5(passwd:salt) the value H(A1)
becomes:
H(A1) = MD5(username:realm:A3), i.e.:
H(A1) = MD5(username:realm:MD5(passwd:salt))
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. 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. We are here referring to the
approach of several SIP user agents to store the SIP user password
rather then requesting it to the user each time. During this "one-
time" password storing operation, 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
Veltri, et al. Expires October 29, 2008 [Page 8]
Internet-Draft SIP auth. using alternate schemes April 2008
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-crypt-des and so on.
ii introduce a new authentication parameter called "pwd-algo" 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|ii)introduce a new |
| | for the algorithm | pwd-algo parameter |
| | parameter | |
|----------------------|----------------------|----------------------|
|a)definition of a | | |
| new A1 and H(A1) | Yes | No |
| | | |
|----------------------|----------------------|----------------------|
|b)reuse H(A1) and | | |
| include a new | | |
| A3=KP(pwd,params) in | Possible | Suggested |
| place of the passwd | | |
| value | | |
|----------------------|----------------------|----------------------|
Figure 1: Alternatives
If we define new A1 and H(A1) this should be signaled by introducing
new values for the algorithm parameter. At the contrary, if we reuse
H(A1) and introduce A3=KP() in place of the clear password, both
options for the signaling are feasible, but we think that keeping the
algorithm parameter unchanged (that specify A1, H(), and KD()) and
introducing a new pwd-algo is preferable.
Veltri, et al. Expires October 29, 2008 [Page 9]
Internet-Draft SIP auth. using alternate schemes April 2008
Now we finally need to discuss how to convey the additional parameter
that may be needed by the different authentication mechanisms. We
think that three options are possible:
1. introduce new parameters with specific names for each
authentication algorithm;
2. introduce a generic parameter named pwd-param to carry algorithm
specific parameters;
3. carry the new parameters added inside the nonce parameter. This
is the approach that has been followed for example in the
specification of the AKA authentication mechanism.
We believe that 1) is the worst solution as it may lead to add
several new parameters. 2) and 3) are both feasible, where 2) is a
"cleaner" approach that requires the definition of an additional
parameter, while 3) has the advantage that does not require any new
parameter. Considering the various discussed options, we believe
that a first possible solution is based on:
a. reuse of H(A1) with a modified version of A1 in which the
password value is simply replaced by A3 = KP(password,other-
params)
b. introduction of new "pwd-algo" parameter
c. introduction of a new generic "pwd-param" parameter
Examples of the new pwd-algo parameter are:
pwd-algo= ssha
pwd-algo= crypt-md5
pwd-algo= crypt-apache
A second possible solution, more conservative from the point of view
of SIP signaling is the use of A3 = KP(password,other-params) as
above, but specifying the chosen algorithm in the existing
"algorithm" parameter and carrying the algorithm specific parameters
within the "nonce" parameter. Examples of the "algorithm" parameter
are:
algorithm=md5-pwd-hashed
algorithm=sha1-pwd-salt-hashed
Veltri, et al. Expires October 29, 2008 [Page 10]
Internet-Draft SIP auth. using alternate schemes April 2008
When we need to specify variants of the algorithm we think that a
simple and efficient solution is to carry the name of the variant
into the eventual pwd-param or as part of the nonce value.
3.1. First solution
In the first solution we define two new parameters as follows:
pwd-algo = "pwd-algo" "=" ( "plain" | token )
pwd-param = "pwd-param" "=" quoted-string
where "pwd-algo" specifies the function KP() used to compute the
derived-password A3, while "pwd-param" has a completely opaque value,
depending on the particular selected function KP, indicating the
values of the (eventual) parameters used in KP() computation. A
"pwd-algo=plain" value should indicate that none algorithm has to be
used, and hence A3=password. This corresponds to the case in which
no pwd-algo parameter is present, as in case of standard MD5-based
Digest Authentication. Examples of such parameters are:
pwd-algo=crypt-des, pwd-param="fzwhEV6E"
pwd-algo=alternative, pwd-param="12"
pwd-algo=plain
Particularly, in order to support current LDAP, Unix-based, and other
storing mechanisms, the following new values are defined:
pwd-algo = "pwd-algo" "=" ( "plain" | "ssha" | "smd5" | "sha" |
"md5" | crypt-algo | token )
crypt-algo = "crypt-" crypt-hash
crypt-hash = "des" | "md5" | "blowfish" | "apache" | token
pwd-param = "pwd-param" "=" LDQUOT salt-value RDQUOT
salt-value = <base-64 encoding of the salt value>
In case of ssha or smd5 or crypt-XXX, the A3 value is computed as
follows:
A3 = KP(password,salt) = H(password||salt)
where H() is respectively SHA1, MD5, or the the Unix crypt function.
Veltri, et al. Expires October 29, 2008 [Page 11]
Internet-Draft SIP auth. using alternate schemes April 2008
Instead, in the remaining cases:
A3 = KP(password) = H(password)
In case of ssha or smd5 or crypt-XXX, the pwd-param will contain the
base-64 encoding of the salt value.
Examples of use of such parameters within a SIP transaction are:
INVITE sip:bob@neverland.net SIP/2.0
To: sip:bob@neverland.net
From: sip:alice@wonderland.net
[...]
SIP/2.0 401 Unauthorized
To: sip:bob@neverland.net
From: sip:alice@wonderland.net
WWW-Authenticate: Digest realm="example.com",
nonce="cc5a61b2954e03541847f227102f",
qop="auth", algorithm="MD5", pwd-algo="crypt-md5",
pwd-param="fzwhEV6E"
[...]
INVITE sip:bob@neverland.net SIP/2.0
To: sip:bob@neverland.net
From: sip:alice@wonderland.net
Authorization: Digest username="alice", realm="example.com",
nonce="cc5a61b2954e03541847f227102f",
pwd-algo="crypt-md5", pwd-param="MD5-fzwhEV6E"
response="587410ee2dc5edd9bbe9370ddc1fA3a1",
uri="sip:bob@neverland.net", qop="auth", nc="00000001"
Veltri, et al. Expires October 29, 2008 [Page 12]
Internet-Draft SIP auth. using alternate schemes April 2008
cnonce="226827CAD1C949A18B17FD71EC68"
[...]
SIP/2.0 200 OK
To: sip:bob@neverland.net
From: sip:alice@wonderland.net
[...]
3.2. Second solution
The second solution does not require any new authentication
parameters since both the selected function KP() (used to generate
the new "password" value A3 used in A1) and the eventual parameters
of KP() are indicated respectively in the standard algorithm and
nonce authentication parameters. According with this solution, the
"algorithm" parameter defined in [RFC3261] can be extended as
follows:
algorithm = "algorithm" EQUAL ( algorithm-value | new-algorithm)
algorithm-value = "MD5" | "MD5-sess" | token
where "new-algorithm" is a new algorithm name that completely
specifies the KD(), H(), A1, and KP() functions for the new
authentication scheme. For example, in order to support
authentication against a server with Unix-based password archive, we
could define:
new-algorithm = crypt-algorithm
crypt-algorithm = algorithm-value "-crypt"
Examples of the use of "algorithm" parameter are:
algorithm=MD5
algorithm=MD5-crypt
In case of KP() function requires additional parameters such as sub-
algorithm type, salt, etc, their values will be included within the
nonce parameter, in a form named compound-nonce. According to
[RFC3261], the "nonce" parameter can be extended as follows:
Veltri, et al. Expires October 29, 2008 [Page 13]
Internet-Draft SIP auth. using alternate schemes April 2008
nonce = "nonce" EQUAL (nonce-value | compound-nonce )
compound-nonce = LDQUOT compound-nonce-value RDQUOT
compound-nonce-value = algo-param ":" nonce-value
algo-param = *( unreserved | algo-mark )
algo-mark = ";" | "/" | "?" | "@" | "&" | "=" | "+" | "$" | ","
Examples of the use of nonce parameter are:
nonce="cc5a61b2954e0354184"
nonce=":cc5a61b2954e0354184"
nonce="$1$BZftq3sP:cc5a61b2954e0354184"
Particularly, in order to support current LDAP, Unix-based, and other
storing mechanisms, the following new values are defined:
algorithm = "algorithm" EQUAL ( algorithm-value | new-algorithm)
new-algorithm = algorithm-value ( "-pwd-hashed" | "-pwd-salt-
hashed" )
In this case, the nonce parameter will contains indication of both
password hash algorithm and salt, together with the actual nonce
value; that is:
nonce = "nonce" EQUAL (nonce-value | compound-nonce )
compound-nonce = LDQUOT compound-nonce-value RDQUOT
compound-nonce-value = ( salted-hash-algo | hash-algo ) ":" nonce-
value
compound-nonce-value = ( crypt-algo-nonce ) ":" nonce-value
hash-algo = "sha" | "md5" | "des" | "blowfish" | "apache" | token
salted-hash-algo = (hash-algo | crypt-algo) "-" salt-value
crypt-algo = "crypt-" hash-algo
salt-value = <base-64 encoding of the salt value>.
Examples of use of such parameters within a SIP transaction are:
Veltri, et al. Expires October 29, 2008 [Page 14]
Internet-Draft SIP auth. using alternate schemes April 2008
INVITE sip:bob@neverland.net SIP/2.0
To: sip:bob@neverland.net
From: sip:alice@wonderland.net
[...]
SIP/2.0 401 Unauthorized
To: sip:bob@neverland.net
From: sip:alice@wonderland.net
WWW-Authenticate: Digest realm="example.com",
nonce="crypt-des-fzwhEV6E:cc5a61b2954e03541847f2",
qop="auth", algorithm="MD5-crypt"
[...]
INVITE sip:bob@neverland.net SIP/2.0
To: sip:bob@neverland.net
From: sip:alice@wonderland.net
Authorization: Digest username="alice", realm="example.com",
nonce="crypt-des-fzwhEV6E:cc5a61b2954e03541847f2",
response="587410ee2dc5edd9bbe9370ddc1fA3a1",
uri="sip:bob@neverland.net", qop="auth", nc="00000001"
cnonce="226827CAD1C949A18B17FD71EC68"
[...]
SIP/2.0 200 OK
To: sip:bob@neverland.net
From: sip:alice@wonderland.net
[...]
Veltri, et al. Expires October 29, 2008 [Page 15]
Internet-Draft SIP auth. using alternate schemes April 2008
We believe that this second solution is to be preferred to the one
presented in the previous sub-section, as it does not require
addition of new parameters. This is the same approach that has been
followed when defining the SIP-AKA authentication mechanism
[RFC3310].
Veltri, et al. Expires October 29, 2008 [Page 16]
Internet-Draft SIP auth. using alternate schemes April 2008
4. Security considerations
Put security considerations here
Veltri, et al. Expires October 29, 2008 [Page 17]
Internet-Draft SIP auth. using alternate schemes April 2008
5. Informative References
[RFC3261] J. Rosenberg et al., "SIP: Session Initiation Protocol",
RFC 3261, June 2002.
[RFC2617] J. Franks et al., "HTTP Authentication: Basic and Digest
Access Authentication", RFC 2617, June 1999.
[RFC2401] "Security Architecture for the Internet Protocol", RFC
2401, November 1998.
[RFC3310] "Hypertext Transfer Protocol (HTTP) Digest Authentication
Using Authentication and Key Agreement (AKA)", RFC 3310,
September 2002.
[RFC3112] "LDAP Authentication Password Schema", RFC 3112, May 2001.
[RFC1321] "The MD5 Message-Digest Algorithm", RFC 1321, April 1992.
[RFC3174] "US Secure Hash Algorithm 1 (SHA1)", RFC 3174,
September 2001.
Veltri, et al. Expires October 29, 2008 [Page 18]
Internet-Draft SIP auth. using alternate schemes April 2008
Authors' Addresses
Luca Veltri
DII, University of Parma
Viale delle Scienze 181/A
Parma 43100
Italy
Phone: +39 0521 90 5768
Email: luca.veltri@unipr.it
URI: http://www.tlc.unipr.it/veltri
Stefano Salsano
DIE, University of Rome "TorVergata"
Via Politecnico, 1
Rome 00133
Italy
Phone: +39 06 7259 7770
Email: stefano.salsano@uniroma2.it
URI: http://netgroup.uniroma2.it/Stefano_Salsano
Andrea Polidoro
DIE, University of Rome "TorVergata"
Via Politecnico, 1
Rome 00133
Italy
Phone: +39 06 7259 7773
Email: andrea.polidoro@uniroma2.it
URI: http://netgroup.uniroma2.it
Veltri, et al. Expires October 29, 2008 [Page 19]
Internet-Draft SIP auth. using alternate schemes April 2008
Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Veltri, et al. Expires October 29, 2008 [Page 20]
| PAFTECH AB 2003-2026 | 2026-04-24 02:50:28 |