Internet DRAFT - draft-salowey-guam
draft-salowey-guam
Network Working Group J. Salowey
Internet-Draft Cisco Systems
Expires: December 28, 2005 June 26, 2005
Generally Useful Authentication Mechanisms (GUAM)
draft-salowey-guam-00.txt
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 December 28, 2005.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
Generic Security Services API (GSS-API), the Simple Authentication
and Security Layer (SASL), the Extensible Authentication Protocol
(EAP) and Transport Layer Security (TLS) are examples of four
different security frameworks within the IETF. Each of these
frameworks have evolved separately towards a common goal of
authentication and establishing a cryptographic context. They
support different types of security mechanisms and have historically
evolved to integrate with different security infrastructures. This
document discusses their similarities and differences and how these
Salowey Expires December 28, 2005 [Page 1]
Internet-Draft GUAM June 2005
security mechanisms might start to converge into a more uniform
approach involving generally useful authentication mechanisms that
can be used in any of these frameworks with a variety of different
security infrastructures.
Table of Contents
1. Requirements notation . . . . . . . . . . . . . . . . . . . 4
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Why unify mechanisms? . . . . . . . . . . . . . . . . . . 5
2.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . 6
3. Survey of Authentication Mechanism Frameworks . . . . . . . 7
3.1 GSS-API . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 SASL . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 EAP . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 Transport Layer Security . . . . . . . . . . . . . . . . . 12
3.5 Integration with Security Infrastructures . . . . . . . . 13
3.5.1 Kerberos . . . . . . . . . . . . . . . . . . . . . . . 13
3.5.2 Public Key Infrastructure . . . . . . . . . . . . . . 13
3.5.3 Authentication Authorization and Accounting (AAA)
Services . . . . . . . . . . . . . . . . . . . . . . . 14
3.6 Framework Summary . . . . . . . . . . . . . . . . . . . . 15
4. Recommendations for Unifying Mechanisms . . . . . . . . . . 18
4.1 GUAM Mechanism requirements . . . . . . . . . . . . . . . 18
4.1.1 Mutual Authentication . . . . . . . . . . . . . . . . 18
4.1.2 Key Material Access and Security Layer . . . . . . . . 18
4.1.3 Channel Binding (GSS-API) . . . . . . . . . . . . . . 19
4.1.4 Cryptographic Binding . . . . . . . . . . . . . . . . 19
4.1.5 Channel Bindings (EAP) . . . . . . . . . . . . . . . . 19
4.1.6 Mechanism Naming . . . . . . . . . . . . . . . . . . . 19
4.1.7 Identity and Naming . . . . . . . . . . . . . . . . . 20
4.1.8 Mechanism Initiation . . . . . . . . . . . . . . . . . 20
4.1.9 Additional Security Properties . . . . . . . . . . . . 20
4.1.10 Authentication infrastructure integration . . . . . 20
4.2 GUAM Framework Enhancements . . . . . . . . . . . . . . . 21
4.2.1 GSS-API . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.2 SASL . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.3 EAP . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2.4 TLS . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2.5 Security Layer . . . . . . . . . . . . . . . . . . . . 22
4.2.6 Negotiation . . . . . . . . . . . . . . . . . . . . . 22
4.2.7 Mechanism Gateways . . . . . . . . . . . . . . . . . . 22
4.2.8 Name Mapping . . . . . . . . . . . . . . . . . . . . . 23
4.3 Recommended GUAM Mechanisms . . . . . . . . . . . . . . . 23
5. Security Considerations . . . . . . . . . . . . . . . . . . 24
5.1 Lying NAS . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2 Cryptographic binding between mechanisms . . . . . . . . . 24
5.3 Clear text passwords and PAP . . . . . . . . . . . . . . . 24
Salowey Expires December 28, 2005 [Page 2]
Internet-Draft GUAM June 2005
5.4 Exporting Contexts . . . . . . . . . . . . . . . . . . . . 25
5.5 Unauthenticated Identities . . . . . . . . . . . . . . . . 25
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . 26
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 27
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.1 Normative References . . . . . . . . . . . . . . . . . . . 28
8.2 Informative References . . . . . . . . . . . . . . . . . . 28
Author's Address . . . . . . . . . . . . . . . . . . . . . . 30
Intellectual Property and Copyright Statements . . . . . . . 31
Salowey Expires December 28, 2005 [Page 3]
Internet-Draft GUAM June 2005
1. Requirements notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
Salowey Expires December 28, 2005 [Page 4]
Internet-Draft GUAM June 2005
2. Introduction
There are many authentication technologies available in the IETF.
This memo specifically focuses on the security frameworks of GSS-API
[RFC2743], SASL [RFC2222], EAP [RFC3748] and TLS [RFC2246]. Each of
these frameworks have evolved somewhat independently towards the same
goal of authentication and cryptographic context establishment.
Historically, though not by design, they support different types of
authentication mechanisms and focus on integrating with different
security infrastructures. This has led to some confusion and
fragmentation within the IETF community. Authentication mechanisms
available to one user community are not available to another leading
to decreased deployment or duplication of effort.
This document examines these four frameworks to identify their
similarities and differences. It also looks at three commonly used
security infrastructures: Kerberos, PKI and AAA. It then provides
suggestions for development of new and/or existing mechanisms to
enable use in any of these frameworks. This set of Generally Usable
Authentication Mechanisms (GUAM) will enable broader use of
authentication mechanisms and infrastructures across the Internet
community.
There are other authentication frameworks used within the IETF such
as those used in IKE, SSH, HTTP and SMIME. GUAM mechanisms may not
be able to easily replace all of these uses, but they provide a
starting point for unifying frameworks used to establish an
authenticated cryptographic context.
2.1 Why unify mechanisms?
o The actual mechanisms in each of these frameworks actually have
very similar goals of authentication and establishing a
cryptographic context. In many cases frameworks are developing
new functionality that bring them closer together. This document
will hopefully help accelerate this process of convergence.
o There is pressure to adopt a particular framework because of the
set of mechanisms available not because of the capabilities and
upper-layer interface of the framework. We should be in a
situation where the choice on mechanism was dictated by the
deployment requirements and the choice of framework dictated by
protocol design and implementation simplicity.
o There is a duplication of effort in the development of security
mechanism that support similar credential types and
infrastructures. This is problematic because the development of
security mechanisms is both difficult and time consuming. It
Salowey Expires December 28, 2005 [Page 5]
Internet-Draft GUAM June 2005
would be good to leverage the work and expertise required for
developing a mechanism across all the frameworks.
o Often the cost of deploying a security mechanism is in the
infrastructure and not the implementation of the mechanism itself.
There limited set of mechanisms available to particular frameworks
makes the coordination and administration of security between
applications that use different frameworks more difficult.
2.2 Terminology
TODO: define terms like security framework, authentication mechanism,
security mechanism, security context, security token, ...
Salowey Expires December 28, 2005 [Page 6]
Internet-Draft GUAM June 2005
3. Survey of Authentication Mechanism Frameworks
This memo specifically focuses on the authentication frameworks of
GSS-API [RFC2743], SASL [RFC2222], EAP [RFC3748] and TLS [RFC2246].
A broader survey of authentication mechanisms has been collected in
[I-D.iab-auth-mech].
3.1 GSS-API
The Generic Security Service Application Programming Interface (GSS-
API) is defined as version 1 in [RFC1508] and version 2 in [RFC2743].
It defines an API to access security services which may be provided
by different underlying security mechanism technologies. This allows
an application written to the GSS-API to adjust to different
mechanism requirements in different environments and therefore the
GSS-API does not define security protocols. In GSS-API peers
exchange data, called security tokens, to establish a security
context which can provide further security services. The GSS-API is
independent of transports and application protocols and therefore
does not provide a means to carry security tokens in a protocol, it
just provides an API to generate and process these tokens. GSS-API
requires the application to provide fragmentation support and framing
of tokens. A goal of the GSS-API is to support a wide variety of
applications and environments.
The GSS-API defines an interface to obtain security tokens that are
to be exchanged between two parties to establish a security context.
The context initiator always issues the first token. The security
context can be used to obtain the name of the authenticated parties
and to perform per-message protection of integrity and
confidentiality. The underlying authentication mechanisms may
require several token exchanges until the context is complete and all
the services are ready. Some security services such as integrity and
confidentiality may be available before the context is complete.
Mechanism negotiation is achieved through the use of special
mechanisms designed for negotiation. One such mechanism is the
simple and protected GSS-API negotiation mechanism (SPNEGO) defined
in [I-D.ietf-kitten-2478bis]. Some applications, such as SSH and
NFS, using GSS-API also provide their own mechanism for negotiating
security mechanism in addition to GSS-API.
GSS-API mechanisms can support mutual authentication where both
parties are explicitly authenticated, or forms of authentication
where either or both parties can remain anonymous. In version 2 GSS-
API did not provide direct access to cryptographic key material from
the underlying security context, however the resulting security
context can provide per-message security services such as
confidentiality, integrity protection, replay detection and out-of-
Salowey Expires December 28, 2005 [Page 7]
Internet-Draft GUAM June 2005
sequence detection. Applications can rekey the security layer by
calling the context establishment APIs. The GSS-API provides support
for channel binding to allow data from lower layers to be bound to
the context exchange. The usage GSS-API style channel bindings will
be identified by "channel bindings (GSS_API)" to differentiate it
from EAP channel bindings which are a slightly different usage. The
underlying security context created by GSS_API has a lifetime
associated with it.
GSS-API uses OIDs to represent mechanisms. GSS-API provides a
formalized framework for representing principal names as mechanism
independent quantities by defining name types. Some example name
types are Host-based service name and user names. GSS-API does not
specify how an application should make use of names, but it does make
available canonical name formats that can be used to compare two
names for equality. Naming is a complex issue that needs to be
further investigated across all the various mechanism frameworks.
There are only a few standard GSS-API mechanisms that are defined in
the IETF. These include Kerberos [I-D.ietf-krb-wg-gssapi-cfx],
Simple Public Key Mechanism (SPKM) [RFC2025], Low Infrastructure
Public Key Mechanism using SPKM [RFC2847]. The only mechanism that
is currently widely implemented in different environments and shown
to be interoperable is the Kerberos mechanism. The initial context
token emitted by a context initiator is required to be prefixed with
a small header containing the ASN.1 OID of the mechanism that
produced the token, other tokens can have any format. GSS-API
mechanisms are not required to support all of the services and
features available in the GSS-API. GSS-API does not provide full
credential management functionality therefore mechanisms are expected
to acquire their initial credentials through some other process. In
some cases, such as Kerberos, initial credential acquisition may
require network requests.
There is ongoing work on GSS-API version 3 [I-D.williams-gssapi-v3-
guide-to]. Some of the enhancements include a means to obtain key
material through a PRF associated with the security context, the
ability to stack multiple mechanisms, and extensions to naming to
support attributes authenticated during the context establishment.
This ongoing work may make it easier for GSSAPIv3 to become the
recommended API for GUAM mechanisms.
The GSS-API provides access to a wider variety of security
functionality. However, its deployment has been limited to specific
environments where its advanced functionality is required. In other
environments with simpler requirements the GSS-API has not seen great
uptake. This is due in part to the limited set of mechanisms
available and to the perceived complexity of the framework. An
Salowey Expires December 28, 2005 [Page 8]
Internet-Draft GUAM June 2005
implementation of the GSS-API may have significant complexity, but it
should be noted that it is possible to write mechanisms that are wire
compatible with GSS-API mechanisms that do not implement the GSS-API
framework on their local platform.
3.2 SASL
The Simple Authentication and Security Layer (SASL) is defined in
[RFC2222]. This specification provided a simpler alternative to GSS-
API for incorporating security functionality into connection oriented
applications. As in GSS-API a SASL exchange requires the exchange on
an arbitrary number of security tokens between two entities. In SASL
either party can send the initial security token. SASL provides a
basic unprotected mechanism negotiation scheme.
SASL is primarily focused on authenticating a user to a server,
however some SASL mechanisms do provide mutual authentication. It is
also possible to support anonymous authentication with the Anonymous
SASL mechanism. SASL does not provide access to key material
exchanged during the authentication, but it can negotiate the use of
a security layer to provide confidentiality and integrity. SASL
security layer is more stream oriented as opposed to GSS-API's
message oriented security services. SASL security layers do not
provide re-keying. SASL can also reference an external security
layer using the "EXTERNAL" mechanism. It is common for SASL
implementations to rely upon TLS as an external security layer for
data protection and sometimes authentication. SASL does not have an
equivalent to GSS-API channel bindings for binding the SASL exchange
to an underlying security channel.
SASL mechanisms are named using 20 character names from a restricted
ASCII character set. SASL also specifies that an mechanism may
transmit an authorization name to represent a name that an
authenticated principal wants to use for authorization purposes. The
mechanism or SASL layer must validate that the authenticated name is
authorized to use the authorization name. SASL does not provide any
specific name types and applications must be prepared to process
names of different types from different mechanisms.
SASL supports a wide variety of authentication mechanisms including
PLAIN user name and password [RFC2595], One-Time password [RFC2444]
and digest challenge response authentication [RFC2831]. SASL also
supports GSS-API mechanisms as a SASL mechanism so that any GSS-API
mechanism can be used as a SASL mechanism. This makes the SASL
mechanism space a superset of the GSS-API mechanism space. SASL
provides less advanced functionality than GSS-API, but it appears to
be easier to integrate into applications. The SASL specification
describes the requirements on an applications protocol profile that
Salowey Expires December 28, 2005 [Page 9]
Internet-Draft GUAM June 2005
uses SASL. Protocols such as IMAP and LDAP have specified SASL as a
means to integrate security into their applications.
3.3 EAP
The Extensible Authentication Protocol (EAP) is defined in [RFC3748].
This specification was originally developed as a way to introduce
support for different authentication mechanisms within the PPP
protocol. EAP has since be applied to other environments such as
wired and wireless LAN environments. EAP has largely been applied to
network access authentication.
As in SASL and GSS-API in an EAP mechanism specific messages are
exchanged between two parties until a security context is
established. EAP defines a slightly different model which involves 3
parties an EAP Peer, an EAP Authenticator and an EAP Server. It is
important to note however that EAP method protocols are
authentication protocols between the EAP Peer and EAP Server, the EAP
Authenticator acts in a pass-through mode with respect to EAP
messages. The ultimate goal of an EAP system is often to establish a
security context between a process on the device hosting the EAP Peer
and a process on a device hosting and EAP Authenticator, however this
cannot be done using EAP alone. . Once the EAP method completes
between the EAP Peer and EAP Server security context information from
the EAP method execution is made available to the EAP Authenticator,
which in turn makes the context information available to the layer
invoking the EAP framework. The context transfer happens outside the
EAP protocol. The EAP Server and EAP Authenticator may be
implemented on the same physical device or on a different physical
devices.In some cases the EAP-server is accessed through a AAA
subsystem in which case the AAA subsystem may augment the transferred
context with additional information that it is important for the
process receiving the context to know. Using the key material from
the transferred context the device hosting the EAP-Peer and the
device hosting the EAP-Authenticator can establish a security
association. This security association does not involve EAP
directly, but rather involves a security association protocol
external to EAP that runs between the process hosting the EAP Peer
and the process hosting EAP Authenticator.
The predominant use cases driving the design and implementation of
EAP are associated with network access. Traditionally each the
entity hosting the EAP-Authenticator is call a network access server
(NAS) and the EAP Server is hosed on a AAA server. EAP is popular in
environments where a AAA infrastructure is used and EAP provides an
extensible authentication interface into AAA servers. Having the EAP
Server remote from the authenticator allows for the network to add
support for different authentication mechanisms without having to
Salowey Expires December 28, 2005 [Page 10]
Internet-Draft GUAM June 2005
upgrade all the authenticators. Since in the basic case network
access servers all provide access to the same network services,
provide similar capabilities and are part of the same trusted
infrastructure the EAP Server and EAP Authenticator are often viewed
as the same logical entity even if they are implemented on different
physical devices. EAP mechanisms were originally designed to
authenticate to a realm and not to differentiate between different
authenticators in the same realm. There are proposals such as
[I-D.arkko-eap-service-identity-auth] that attempt to address this.
Unlike GSS-API and SASL, EAP does not provide support for security
layers, instead it provides access to keying material and other
context information derived from the EAP exchange. This key material
is typically provided to a process on the device hosting EAP
authenticator as described above. It is possible for security
associations with multiple entities to be seeded from a single EAP
exchange, however this is the subject of ongoing work.
The security considerations of [RFC3748] and [RFC4017] describe a
number of potential security properties that EAP methods may possess.
EAP does have a concept called "channel bindings" which will be
identified as "channel bindings (EAP)" in this document. It is
different than channel binding (GSS-API) except that the data
declared as channel binding values are expected to be exposed from
the mechanism. This allows for the EAP Peer to communicate
attributes to an EAP Server in a way that the EAP authenticator or
other third party cannot modify it. This provides a way for the EAP
server or and entity associated with the EAP Server to validate
information provided from the EAP Authenticator to the EAP Peer and
vice versa. This make channel bindings (EAP) more similar to
authenticated attributes or names. EAP also defines a concept called
"cryptographic binding" which attempts to provide assurance that
different authentication transactions carried out between two
entities actually occurred between those two entities and are not
compromised by a man in the middle. These two authentication
transactions may occur at different layers or they may occur
sequentially in the same layer. Channel bindings (GSS-API) are a
mechanism that can be used to achieve cryptographic binding.
Additional security properties defined in [RFC3748] include protected
ciphersuite negotiation, mutual authentication, integrity protection,
replay protection, key strength, dictionary attack resistance, fast
reconnect, session independence, identity protection, and protected
result indicators,
In the EAP model the first security token is sent to EAP Peer from
the EAP authenticator or EAP Server. EAP provides a basic level of
insecure mechanism negotiation. This can be enhanced by mechanism
specific negotiation which establishes a secure tunnel in which to
Salowey Expires December 28, 2005 [Page 11]
Internet-Draft GUAM June 2005
perform negotiation. These secure tunnel mechanisms can also be used
to chain mechanisms together. EAP provides an identity exchange
which may be independent of EAP mechanism. The identity is expressed
as an NAI defined in [RFC2486]. The identity is usually primarily
used for AAA routing and mechanism selection, an EAP mechanism may
arrive at a completely different authenticated identity.
There are only a few published EAP methods including EAP-MD5, EAP-OTP
and EAP-TLS. Of these only EAP-TLS derives keying material. There
are many more EAP methods deployed in the field that work with a wide
range of credential types from passwords to SIM based smart cards.
3.4 Transport Layer Security
Transport Layer Security (TLS) is a framework for providing
authenticated key exchange and security services at the "transport"
layer defined in [RFC2246]. Many applications use it as a way to
provide a security layer for the protection of stream oriented
application data. TLS has a large installed base and a wide variety
of implementations. Because of this it is starting to be seen in
other contexts as well such as DTLS for datagram applications and
EAP-TLS for network access scenarios.
TLS has a handshake protocol that provides a protected negotiation of
ciphersuites. A ciphersuite is an identifier for the combination of
an authenticated key exchange with bulk encryption and integrity
algorithms. The negotiation is initiated by the client and currently
has a fixed number of messages. TLS is often used primarily to
provide a security layer and is often deployed with just server
authentication. The security layer is stream oriented and is
typically implemented as a secure socket interface (hence the name
secure sockets layer, SSL, from which TLS was derived) making it easy
to integrate into TCP based applications. TLS does provide a
mechanism for re-keying the security layer. It is not typical for
TLS to provide key material externally, but EAP-TLS [RFC2716] has be
extended within to do this. TLS does not explicitly provide a
mechanism to bind to a lower layer or for an encapsulated layer to
bind to it. It is possible to use parameters from the handshake such
as the finished messages in channel bindings for security mechanism
that layer on top of TLS.
TLS was originally developed with ciphersuites that support X.509
certificates. It has modes that provide for anonymous, server side
authentication and mutual authentication. TLS also has ciphersuites
defined that support Kerberos credentials and shared secrets. TLS
does not deal explicitly with identities and these are left for each
ciphersuite to deal with.
Salowey Expires December 28, 2005 [Page 12]
Internet-Draft GUAM June 2005
3.5 Integration with Security Infrastructures
In order to make security solutions more scalable and manageable it
is common to make use of authentication services to increase
scalability and manageability. It is desirable for authentication
frameworks to integrate with these systems. This section looks at
three different authentication service infrastructure
infrastructures: Kerberos, PKI and AAA. Each of the frameworks
favors a particular type of infrastructure: GSS-API is associated
strongly with Kerberos, EAP is associated with AAA and TLS is often
associated with PKI. SASL is often used in a hybrid approach that
uses TLS for a security layer and another mechanism for client
authentication.
3.5.1 Kerberos
The Kerberos V network authentication [RFC1510] is an authentication
an key management system based on Needham-Schroeder protocol.
Kerberos is a true integrated 3 party protocol in which the trusted
third party server is a Key Distribution Center (KDC). Communication
with the KDC is not required for every authentication. GSS-API is
the preferred mechanism for applications to integrate with Kerberos.
This means that SASL can support Kerberos through its ability to use
GSS-API mechanisms. TLS does have Kerberos based ciphersuites
defined in [RFC2712], but it is somewhat out of date. EAP does not
currently have Kerberos integration. This is partially because
Kerberos mechanism is not ideally suited for network access
authentication since it requires access to the KDC to authenticate.
Some work has been done in this area in the past with the IAKERB GSS-
API mechanism and an EAP-GSS-API mechanism, but this work has
stalled.
3.5.2 Public Key Infrastructure
Public key infrastructure has several different forms, but the most
common is X.509 public key infrastructure. A profile for public key
certificate use for the Internet is available as [RFC3280]. In PKI
the trusted third party is a certificate authority (CA). The CA does
not typically participate directly in the authentication process.
[RFC2025] is a GSS-API mechanism that supports public key
credentials. TLS can use X.509 certificates for mutual
authentication. SASL does not currently have a public key mechanism
although some have been proposed and it can use an underlying TLS
session for authentication with public keys. The EAP-TLS mechanism
can use public key credentials for authentication and key exchange.
Salowey Expires December 28, 2005 [Page 13]
Internet-Draft GUAM June 2005
3.5.3 Authentication Authorization and Accounting (AAA) Services
The AAA model was originally developed to support network access
requirements. In a AAA system you typically have a network client
which is requesting access, a network access server, which hosts a
AAA client, that is providing access to the client and a AAA server
that is performing authentication, authorization and accounting
service for the network access server. A AAA server is expected to
be online to process authentication, accounting and authorization
requests. AAA services are typically implemented as RADIUS [RFC2865]
or Diameter [RFC3588] servers. The authentication interaction
usually consists of two protocols; an authentication protocol such as
EAP which executes between the network client and the AAA server and
a AAA protocol which executes between the network access server and
the AAA server. There is usually a third protocol, such a PPP, that
carries the authentication protocol between the network client and
the network access server. This model maps directly to the EAP
participants with the client hosting the EAP peer, the network access
server hosting the EAP authenticator and the AAA server hosting the
EAP server. In this model the network client authenticates and
establishes an authenticated context with the AAA server and the AAA
server uses a separate security association with the AAA client under
which to transmit key material and other context data. The network
access server then uses this data to establish a security association
with the network access client. As in the EAP model the AAA client
and AAA server are often viewed as the same logical entity from the
point of view of the network access client.
AAA servers originally started as services that maintained shared
secrets for clients. This capability has evolved over time from
support for clear text password based protocols, to challenge
response protocols, to protocols that are based on public key
credentials instead of shared secrets. One method for integrating
with AAA servers is to use them as validators of a clear text
password. This is often referred to as password authentication
protocol or PAP. There are mechanisms such as GSS-API mechanisms
such as LIPKEY, [RFC2847], plain in SASL, and GTC in EAP which
involve sending a password between the client and server. Although
the password may be transmitted to the network access server in
encrypted form in these schemes it is visible and vulnerable at this
point. The use of one time password and token cards can help
mitigate the risk. In this case the authentication protocol does not
provide mutual authentication or authorization between the client and
AAA server. The second method for integration uses the AAA server as
an endpoint of the authentication communication. Examples of these
types of protocols that are supported by AAA are CHAP, Digest
Authentication and EAP. This is the mechanism that EAP uses to
integrate with the AAA server and is defined for both RADIUS
Salowey Expires December 28, 2005 [Page 14]
Internet-Draft GUAM June 2005
[RFC3579] and Diameter. SASL supports Digest authentication
[I-D.ietf-radext-digest-auth] which can back end directly into AAA
using RADIUS or Diameter attributes. In this case mutual
authentication between network access client and AAA Server can be
achieved through the authentication protocol.
3.6 Framework Summary
All of the authentications frameworks described in this section have
similar goals of authentication and optional establishment of a
cryptographic context. They provide some different features and are
tuned to slightly different environments. These different
environments also influence the availability of different mechanisms
within each framework. The next section describes some of the
different capabilities of the various mechanisms.
Security Layer
A framework provides a security layer if it provides mechanisms to
protect the transfer of bulk data between peers after the context
has been established. GSS-API optionally provides this with wrap
and unwrap functions. SASL provides optional support for a
security layer. TLS always provides support for a security layer.
EAP does not support a security Layer.
Key Material Access
A framework may provide access to key material derived during the
authentication process. This is especially useful when the
framework is used in cases where a security layer is already
defined and needs to obtain keys through a certain mechanism. EAP
provides key material access. GSS-API v3 is working on an API to
a PRF, [I-D.ietf-kitten-gssapi-prf], which would provide similar
functionality. Basic TLS does not provide access to key material
although specific uses, such as EAP-TLS, obtain access to certain
key material derived from the master secret. SASL does not
provide access to key material.
Mechanism Negotiation
EAP and SASL provide a basic unprotected support for negotiating
mechanism which can be vulnerable to man-in-the-middle attacks.
GSS-API does not provide built-in support for mechanism
negotiation, however a specialized mechanism, SPNEGO, is available
for purpose of providing protected mechanism negotiation. EAP
also provides mechanisms such as PEAP which can be used to perform
Salowey Expires December 28, 2005 [Page 15]
Internet-Draft GUAM June 2005
protected negotiation of mechanisms. TLS provides a protected
mechanism to negotiate ciphersuites.
Channel Binding (GSS-API)
GSS-API provides formal support for channel bindings. Channel
bindings provide a mechanism to bind the current authentication
exchange to lower level parameters such as cryptographic keys or
addresses. In GSS-API channel bindings are usually validated
within the mechanism and are part of mechanism functionality. In
EAP there is a similar concept called crypto binding which is used
to bind chained mechanisms together. Mechanisms can also provide
quantities for channel binding in higher layers. EAP provides key
material which can help here. EAP also has discussed deriving a
name to identify the keying material derived from a specific
instance of method execution which may be useful in binding to
upper layers. GSSAPIv3 is specifying a PRF API which may be
helpful here. SASL does not support channel bindings.
Channel Binding (EAP)
EAP channel bindings are conveyed between the EAP Peer and EAP
Server and may contain information about the communication layer
between the entity hosting EAP Peer and the entity hosting EAP
Authenticator. EAP the channel bindings usually consist of
information that is best validated outside the EAP method so the
channel binding information is communicated external to the
method.
Mechanism Chaining
None of the frameworks directly support mechanism chaining. It is
possible for an application using one of the frameworks to define
a mechanism for chaining, but it would typically add complexity to
the application which the framework is trying to eliminate. GSS-
APIv3 has proposed support for stackable mechanisms [GSSSTACK] and
EAP has mechanisms such as [I-D.cam-winget-eap-fast] and
[I-D.funk-eap-ttls-v0] which allow for the chaining of multiple
authentication mechanisms. The ability to chain can introduce
complexity into the framework and can increase the difficult to
analyze the security of the resulting system. However mechanism
chaining can provide powerful building blocks to add functionality
into existing mechanisms and environments in a uniform way. For
example a mechanism can be created with the purpose of providing
encryption and integrity protection of messages. This mechanism
Salowey Expires December 28, 2005 [Page 16]
Internet-Draft GUAM June 2005
could then be chained to any mechanism that provides key material
for external use to provide protection for application data.
Mechanism Naming
All mechanisms provide a name space for identifying mechanisms
which is extensible. A mapping for GSS-API mechanisms into the
SASL name space has been defined. It should also be possible to
create mappings for EAP mechanisms into the GSS-API name space.
Principal Naming
All of the frameworks deal with principal naming to a certain
degree. GSS-API provides the facility for the initiator to
specifically identify the target with which it wants to establish
a security context with. The form of the name that is often used
is host based service name. This name form is also used somewhat
in SASL although it is less formal. EAP uses the NAI to name
principals; however this more often used for message routing than
actual identification. The target in EAP is often a "realm" or
"network" instead of an individual entity. SASL defines an
additional quantity called an authorization identity which can be
an alias or sub-name of the authenticated name specified in the
application protocol.
AAA integration
AAA integration is called out specifically here because
interaction with the server is required at the time of the
authentication. While this mechanism has some disadvantages when
compared with PKI or Kerberos models it is widely deployed and
used. EAP has direct support for integration with AAA, while only
certain SASL and GSS-API mechanisms can interface with a AAA
server.
Salowey Expires December 28, 2005 [Page 17]
Internet-Draft GUAM June 2005
4. Recommendations for Unifying Mechanisms
Each of the frameworks described has a particular scope of for which
it is most applicable. SASL is used in application environments, EAP
in network access environments and GSS-API in applications with
advanced security requirements. Even though the scope of
applicability is different the goals of the frameworks are very
similar. One approach could be to define a new authentication
framework that could be a superset of all the above frameworks. This
would be problematic since it introduces yet another framework which
requires not only a new set of mechanisms, but also would require
modifications to the consumers of these mechanisms as well. Instead
this document recommends that new mechanisms from this point on are
developed so they are generally usable in any of these frameworks.
The components of each of the systems can be mapped directly to one
another. The SASL client, EAP Peer, TLS client and GSS-API initiator
all perform the same role. The SASL Server, EAP Server, TLS server
and GSS-API acceptor all perform the same role.
4.1 GUAM Mechanism requirements
The following sections make some recommendations on requirements for
these mechanisms. A mechanism which adheres to these recommendations
would be a generally useful authentication mechanism (GUAM).
4.1.1 Mutual Authentication
A GUAM mechanism MUST provide the capability for mutual
authentication of two communicating entities. In some cases one or
more of the entities authenticated may be a "realm" instead of an
individual entity. It MAY also provide the ability for either or
both parties of the communication to remain anonymous or
unauthenticated. It may also provide a mechanism to protect the
privacy of the identity of one or more of the parties involved from
external parties.
4.1.2 Key Material Access and Security Layer
A GUAM mechanism MUST provide access to some key material derived
from the authentication exchange. Access to key material that can be
defined as the EAP MSK and EMSK MUST be provided. Access to
additional key material should be provided. Key material MUST be
generated such that keys are cryptographically independent from one
another and keys used during the authentication and in the security
layer. Key material MUST be bound to the authentication exchange and
the two parties MUST derive the same keys regardless of what order
they are requested. Access to certain keys may be restricted or
Salowey Expires December 28, 2005 [Page 18]
Internet-Draft GUAM June 2005
controlled. A mechanism MAY provide a security layer. If a
mechanism does not provide a security layer then it MUST derive an
additional security layer master key. This master key can be used to
key a generic message protection layer. (Is this key equivalent to
the EAP MSK/EMSK?). Note that GSS-API is defining an API to access
key material from GSS-API mechanisms in [I-D.ietf-kitten-gssapi-prf]
4.1.3 Channel Binding (GSS-API)
A GUAM mechanism MUST provide mechanisms to achieve channel binding.
This means a mechanism MUST provide a mechanism to bind underlying
cryptographic key material or other session related parameters to the
authentication exchange in a way that can be verified within the
mechanism (i.e. The mechanism does not know the meaning of the data,
just that the data used in the channel binding on both sides is the
same). This is to support channel bindings as defined in the GSS-
API.
A mechanism MUST also provide session data suitable for use in
identifying a particular instance of a mechanisms execution and to
serve as input to the channel bindings for another mechanism to
facilitate chaining and layering of mechanisms. This is to identify
a particular instance of an mechanism execution and the resulting
context.
4.1.4 Cryptographic Binding
A mechanism to achieve cryptographic binding could use the Channel
Bindings (GSS-API) capability.
4.1.5 Channel Bindings (EAP)
A GUAM mechanism MUST provide mechanisms to carry attribute data
within the authentication exchange. This is to allow for EAP style
channel bindings were authenticated data is exported for validation
outside the mechanism.
4.1.6 Mechanism Naming
A GUAM mechanism MUST have a GSS-API OID, an EAP mechanism ID and a
SASL name assigned. This allows the mechanism to be easily used in
any of these environments. It is possible to create a automatic
mapping between the name spaces. A particular EAP Vendor-ID could be
assigned to GUAM mechanisms and a base GSS-API OID could be assigned
to GUAM mechanisms. Then the mechanism would be identified by an
assigned 4 byte integer which is the EAP ID or the completion of the
GSS-API OID. Then the mapping between GSS-API mechanism names and
SASL mechanism names can be used to create SASL names.
Salowey Expires December 28, 2005 [Page 19]
Internet-Draft GUAM June 2005
4.1.7 Identity and Naming
There are several different types of names used in the various
frameworks. Mechanisms must have ways of exporting authenticated
names for the initiator and acceptor of the conversation.
EAP defines an EAP-Identity Response which is external to the
mechanism. Although the identity response may contain a name and a
realm it is primarily used for routing authentication messages so it
may have little no relation to the actual authenticated name. It
does provide a means for the EAP-Peer to specify the realm it wishes
to authenticate to.
SASL defines an Authorization identity which may be asserted by the
imitator of the conversation in addition to the authenticated name.
This name is to be used by the acceptor for authorization purposes.
A GUAM mechanism SHOULD provide support for transmitting the
authorization name. Authorization names need to have their mapping
to authenticated names validated. While this could be done as part
of the mechanism it may be advantageous to define a mapping service
to provide some abstraction between the mechanism and application
specific names.
4.1.8 Mechanism Initiation
It MUST be possible for an GUAM mechanism to be initiated by either
side of the conversation. This MAY be achieved by adding an "empty"
message to an existing protocol.
4.1.9 Additional Security Properties
[RFC3748] and [RFC4017] describe some security requirements for EAP
mechanisms. EAP mechanism are required to make claims about their
support for the various properties listed. GUAM mechanism should
also document which properties they are designed to meet. GUAM
mechanism SHOULD support the following: generation of keying
material, mutual authentication, shared state equivalence, replay
protection, integrity protection, cryptographic binding, session
independence, and any ciphersuite negotiation should be protected.
It is also desirable for GUAM mechanisms to support the following:
resistance to dictionary attacks, fragmentation, identity privacy,
confidentiality, channel bindings (EAP).
4.1.10 Authentication infrastructure integration
Different authentication infrastructures have different requirements
for access to third parties during authentication. In cases such as
Kerberos and AAA where the third party must be contacted for initial
Salowey Expires December 28, 2005 [Page 20]
Internet-Draft GUAM June 2005
authentication before a security context is established between peers
special consideration is needed. Since communication with the third
party server may not be available a GUAM mechanism SHOULD provide a
means to carry out this initial authentication within the
authentication mechanism exchange so it is possible to support
network access authentication. An example of this was specified in
IAKERB for authentication. In order to interface SASL and GSS-API
mechanism into a AAA server then EAP can be used as the interface
into AAA and specialized mechanisms or framework enhancements could
be used to take the exported EAP-AAA security context into a SASL or
GSS-API context. (This would look like GSS-API between client and
server, and EAP between server and AAA server, the context exported
from the AAA server to the AAA client could then be used to create a
GSS-API security context. Perhaps this could be done using stackable
mechanisms. The client would probably have to know that a AAA server
was in use.)
4.2 GUAM Framework Enhancements
This section discusses enhancements for the various frameworks to
support and take full advantage of the GUAM mechanisms. None of
these enhancements are required, but they described are here are to
enable useful functionality across all the frameworks.
4.2.1 GSS-API
GSS-API SHOULD provide the API to access all GUAM functionality.
o API to PRF to retrieve keys
o API to send and receive channel binding (EAP) data as part of
authentication. This might be done as part of naming
enhancements.
o Enhancements for exporting and value that identifies a particular
execution of the mechanism.
o Enhancements for importing an EAP-AAA context.
o Enhancement to naming to identify realms.
4.2.2 SASL
For the most part SASL is trying to provide a simpler interface to
authentication so additional enhancements would probably be
undesirable. Unless there are serious security or usability
implications the interface should remain unchanged. SASL
Salowey Expires December 28, 2005 [Page 21]
Internet-Draft GUAM June 2005
functionality should be described in terms of GSS-API calls to GUAM
mechanisms. Some existing SASL mechanisms may not be GUAM
mechanisms. It would be good to extend SASL in a backwards
compatible way to support features such as channel bindings,
mechanism execution instance identifiers, and EAP-AAA context
integration.
4.2.3 EAP
Similar to SASL EAP is already widely deployed so changes are costly.
Unless there are serious security or usability implications the
interface should remain unchanged. EAP functionality should be
described in terms of GSS-API calls to a GUAM mechanism. Some
existing EAP mechanisms may not be GUAM mechanisms.
4.2.4 TLS
TLS is already widely deployed so changes are costly. Unless there
are serious security or usability implications the interface should
remain unchanged. Because it is so successful it is probably good to
develop a GUAM mechanism based on TLS.
4.2.5 Security Layer
It may be advantageous to provide a generic security layer/ per-
message protection that can be used by mechanisms that generate keys,
but do not specify a security layer.
4.2.6 Negotiation
It is undesirable to have multiple layers of negotiation, especially
when the different negotiation mechanisms have different security
properties. In general secure negotiation mechanisms should be
favored over insecure ones. Recursive negotiation of methods such as
TLS negotiation a GUAM mechanism which in turn is based on TLS should
be avoided.
4.2.7 Mechanism Gateways
Mechanism gateways provide a way to use one mechanism in another
framework. In general the GUAM provide a consistent set of
functionality in all frameworks so they should work well in mechanism
gateways. This is already possible to map GSS-API mechanisms to
SASL. It would be easy to define mechanisms to map EAP to GSS-API
and probably vice-versa. A set of GSS-API/GUAM ciphersuites should
also be developed for TLS to make it easier for TLS to make use of
different authentication mechanisms and infrastructures.
Salowey Expires December 28, 2005 [Page 22]
Internet-Draft GUAM June 2005
4.2.8 Name Mapping
A name mapping service may be useful to provide an authorized mapping
between authenticated names and attributes and names that are usable
by an application for authorization and auditing.
4.3 Recommended GUAM Mechanisms
The following mechanisms may be good candidates for GUAM mechanisms:
o A TLS based mechanisms similar to EAP-TLS
o A digest authentication mechanism
o A Kerberos V mechanism that provided in-band initial
authentication (i.e. In band AS and TGS exchanges)
o A hybrid public key/protected password mechanism such as one that
allows a one time password to be sent within a TLS channel
o A pre-shared key mechanism.
o An SRP based mechanism
Salowey Expires December 28, 2005 [Page 23]
Internet-Draft GUAM June 2005
5. Security Considerations
5.1 Lying NAS
Traditionally in this case all services providing network access
(network access server or NAS) provide the same server, therefore a
client requesting network access was not concerned as to which NAS
they were talking to, but rather that they were talking to a NAS that
was an authorized member of the network. The means the client may
know the identity of the AAA server or network, but often cannot
differentiate between one service and another. This can cause
problems when different services can be authorized to provide
different resources or functions for clients. This problem is often
referred to as the lying network access server (NAS) problem. It is
possible for the service to advertise capabilities that it is not
authorized for and the client would not be able to catch this. This
problem is not unique to EAP, any mechanism that integrates with a
AAA server (or other types of back end servers) may have this
problem. In this case it is often necessary for the supplicant to
inform the AAA server of the claimed identity and authorizations of
the service, or to inform the client what capabilities are authorized
to a particular service. The AAA server or client can then verify
that the service is authorized to advertise these resources.
This problem is not unique to AAA and EAP. In SASL digest
authentication a user is typically authenticated to a "realm." There
is no way through the mechanism itself to determine which server in
the realm the client is communicating with.
5.2 Cryptographic binding between mechanisms
When more than one authentication transaction is taking place it is
often a good idea to bind one authentication transaction to another
to ensure that the endpoints are the same in both cases. This can
help to avoid some types man-in-the-middle attacks. Channel Bindings
(GSS-API) can be used for this purpose.
5.3 Clear text passwords and PAP
Clear text passwords are commonly used authentication mechanism on
the Internet today. Increasingly they are used within a secure
tunnel, such as one provided by TLS, which is an improvement.
However the use of clear text passwords is still problematic since it
exposes the clear text password to entities that may not need to know
the password thereby increasing the exposure of the shared secret.
In addition when a clear text password is used in RADIUS it is sent
in a PAP authentication request. RADIUS PAP may provide insufficient
Salowey Expires December 28, 2005 [Page 24]
Internet-Draft GUAM June 2005
protection unless it is used with additional security measures that
prevent password guessing and modification attacks.
5.4 Exporting Contexts
Security contexts may contains sensitive information such as
cryptographic keys so care should be taken when exporting them.
5.5 Unauthenticated Identities
Some of the frameworks discussed support the communication of
identities outside of the authentication exchange. It is important
to realize that these identities are unauthenticated and may have no
relation to the authenticated identity. These identities should be
used with caution.
Salowey Expires December 28, 2005 [Page 25]
Internet-Draft GUAM June 2005
6. IANA Considerations
To be determined.
Salowey Expires December 28, 2005 [Page 26]
Internet-Draft GUAM June 2005
7. Acknowledgements
Nicolas Williams and Sam Hartman provided valuable discussions and
feedback that went into the preparation of this document.
Salowey Expires December 28, 2005 [Page 27]
Internet-Draft GUAM June 2005
8. References
8.1 Normative References
[RFC2222] Myers, J., "Simple Authentication and Security Layer
(SASL)", RFC 2222, October 1997.
[RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
RFC 2246, January 1999.
[RFC2743] Linn, J., "Generic Security Service Application Program
Interface Version 2, Update 1", RFC 2743, January 2000.
[RFC3748] Aboba, B., Blunk, L., Vollbrecht, J., Carlson, J., and H.
Levkowetz, "Extensible Authentication Protocol (EAP)",
RFC 3748, June 2004.
8.2 Informative References
[I-D.arkko-eap-service-identity-auth]
Arkko, J. and P. Eronen, "Authenticated Service
Information for the Extensible Authentication Protocol
(EAP)", draft-arkko-eap-service-identity-auth-02 (work in
progress), May 2005.
[I-D.cam-winget-eap-fast]
Salowey, J., "EAP Flexible Authentication via Secure
Tunneling (EAP-FAST)", draft-cam-winget-eap-fast-02 (work
in progress), April 2005.
[I-D.funk-eap-ttls-v0]
Funk, P. and S. Blake-Wilson, "EAP Tunneled TLS
Authentication Protocol Version 0 (EAP-TTLSv0)",
draft-funk-eap-ttls-v0-00 (work in progress),
February 2005.
[I-D.iab-auth-mech]
Rescorla, E., "A Survey of Authentication Mechanisms",
draft-iab-auth-mech-03 (work in progress), March 2004.
[I-D.ietf-kitten-2478bis]
Zhu, L., "The Simple and Protected GSS-API Negotiation
Mechanism", draft-ietf-kitten-2478bis-05 (work in
progress), January 2005.
[I-D.ietf-kitten-gssapi-prf]
Williams, N., "A PRF API extension for the GSS-API",
draft-ietf-kitten-gssapi-prf-04 (work in progress),
Salowey Expires December 28, 2005 [Page 28]
Internet-Draft GUAM June 2005
June 2005.
[I-D.ietf-krb-wg-gssapi-cfx]
Zhu, L., Jaganathan, K., and S. Hartman, "The Kerberos
Version 5 GSS-API Mechanism: Version 2",
draft-ietf-krb-wg-gssapi-cfx-07 (work in progress),
March 2004.
[I-D.ietf-radext-digest-auth]
Sterman, B., "RADIUS Extension for Digest Authentication",
draft-ietf-radext-digest-auth-02 (work in progress),
April 2005.
[I-D.williams-gssapi-v3-guide-to]
Williams, N., "Guide to the GSS-APIv3",
draft-williams-gssapi-v3-guide-to-00 (work in progress),
October 2004.
[RFC1508] Linn, J., "Generic Security Service Application Program
Interface", RFC 1508, September 1993.
[RFC1510] Kohl, J. and B. Neuman, "The Kerberos Network
Authentication Service (V5)", RFC 1510, September 1993.
[RFC2025] Adams, C., "The Simple Public-Key GSS-API Mechanism
(SPKM)", RFC 2025, October 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2444] Newman, C., "The One-Time-Password SASL Mechanism",
RFC 2444, October 1998.
[RFC2486] Aboba, B. and M. Beadles, "The Network Access Identifier",
RFC 2486, January 1999.
[RFC2595] Newman, C., "Using TLS with IMAP, POP3 and ACAP",
RFC 2595, June 1999.
[RFC2712] Medvinsky, A. and M. Hur, "Addition of Kerberos Cipher
Suites to Transport Layer Security (TLS)", RFC 2712,
October 1999.
[RFC2716] Aboba, B. and D. Simon, "PPP EAP TLS Authentication
Protocol", RFC 2716, October 1999.
[RFC2831] Leach, P. and C. Newman, "Using Digest Authentication as a
SASL Mechanism", RFC 2831, May 2000.
Salowey Expires December 28, 2005 [Page 29]
Internet-Draft GUAM June 2005
[RFC2847] Eisler, M., "LIPKEY - A Low Infrastructure Public Key
Mechanism Using SPKM", RFC 2847, June 2000.
[RFC2865] Rigney, C., Willens, S., Rubens, A., and W. Simpson,
"Remote Authentication Dial In User Service (RADIUS)",
RFC 2865, June 2000.
[RFC3280] Housley, R., Polk, W., Ford, W., and D. Solo, "Internet
X.509 Public Key Infrastructure Certificate and
Certificate Revocation List (CRL) Profile", RFC 3280,
April 2002.
[RFC3579] Aboba, B. and P. Calhoun, "RADIUS (Remote Authentication
Dial In User Service) Support For Extensible
Authentication Protocol (EAP)", RFC 3579, September 2003.
[RFC3588] Calhoun, P., Loughney, J., Guttman, E., Zorn, G., and J.
Arkko, "Diameter Base Protocol", RFC 3588, September 2003.
[RFC4017] Stanley, D., Walker, J., and B. Aboba, "Extensible
Authentication Protocol (EAP) Method Requirements for
Wireless LANs", RFC 4017, March 2005.
Author's Address
Joseph Salowey
Cisco Systems
Email: jsalowey@cisco.com
Salowey Expires December 28, 2005 [Page 30]
Internet-Draft GUAM June 2005
Intellectual Property Statement
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.
Disclaimer of Validity
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 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.
Copyright Statement
Copyright (C) The Internet Society (2005). 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.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Salowey Expires December 28, 2005 [Page 31]