draft-ietf-pppext-eap-ttls-05.txt
来自「linux 下通过802.1认证的安装包」· 文本 代码 · 共 1,413 行 · 第 1/5 页
TXT
1,413 行
The Vendor-ID field is present if the 'V' bit is set in the AVP
Flags field. It is four octets, and contains the vendor's IANA-
assigned "SMI Network Management Private Enterprise Codes" [9]
value. Vendors defining their own AVPs must maintain a consistent
namespace for use of those AVPs within RADIUS, Diameter and EAP-
TTLS.
A Vendor-ID value of zero is equivalent to absence of the Vendor-
ID field altogether.
9.2 AVP Sequences
Data encapsulated within the TLS Record Layer must consist entirely
of a sequence of zero or more AVPs. Each AVP must begin on a 4-octet
boundary relative to the first AVP in the sequence. If an AVP is not
a multiple of 4 octets, it must be padded with 0s to the next 4-
octet boundary.
Note that the AVP Length does not include the padding.
9.3 Guidelines for Maximum Compatibility with AAA Servers
For maximum compatibility, the following guidelines for AVP usage
are suggested:
- Non-vendor-specific AVPs should be selected from the set of
attributes defined for RADIUS; that is, attributes with codes
less than 256. This provides compatibility with both RADIUS and
Diameter.
- Vendor-specific AVPs should be defined in terms of RADIUS.
Vendor-specific RADIUS attributes translate to Diameter (and,
hence, to EAP-TTLS) automatically; the reverse is not true.
RADIUS vendor-specific attributes use RADIUS attribute 26 and
include vendor ID, vendor-specific attribute code and length; see
[6] for details.
10. Tunneled Authentication
EAP-TTLS permits user authentication information to be tunneled
within the TLS record layer between client and TTLS server,
Paul Funk expires January 2005 [Page 20]
Internet-Draft April 2004
guaranteeing the security of the authentication information against
active and passive attack between the client and TTLS server. The
TTLS server decrypts and forwards this information to the AAA/H over
the AAA carrier protocol.
Any type of password or other authentication may be tunneled. Also,
multiple tunneled authentications may be performed. Normally,
tunneled authentication is used when the client has not been issued
a certificate and the TLS handshake provides only one-way
authentication of the TTLS server to the client; however, in certain
cases it may be desired to perform certificate authentication of the
client during the TLS handshake as well as tunneled user
authentication afterwards.
10.1 Implicit challenge
Certain authentication protocols that use a challenge/response
mechanism rely on challenge material that is not generated by the
authentication server, and therefore require special handling.
In CHAP, MS-CHAP and MS-CHAP-V2, for example, the NAS issues a
challenge to the client, the client then hashes the challenge with
the password and forwards the response to the NAS. The NAS then
forwards both challenge and response to a AAA server. But because
the AAA server did not itself generate the challenge, such protocols
are susceptible to replay attack.
If the client were able to create both challenge and response,
anyone able to observe a CHAP or MS-CHAP exchange could pose as that
user, even using EAP-TTLS.
To make these protocols secure under EAP-TTLS, it is necessary to
provide a mechanism to produce a challenge that the client cannot
control or predict. This is accomplished using the same technique
described above for generating data connection keying material.
When a challenge-based authentication mechanism is used, both client
and TTLS server use the pseudo-random function to generate as many
octets as are required for the challenge, using the constant string
"ttls challenge", based on the master secret and random values
established during the handshake:
EAP-TTLS_challenge = PRF(SecurityParameters.master_secret,
"ttls challenge",
SecurityParameters.client_random +
SecurityParameters.server_random);
10.2 Tunneled Authentication Protocols
This section describes the methods for tunneling specific
authentication protocols within EAP-TTLS.
Paul Funk expires January 2005 [Page 21]
Internet-Draft April 2004
For the purpose of explication, it is assumed that the TTLS server
and AAA/H use RADIUS as a AAA carrier protocol between them.
However, this is not a requirement, and any AAA protocol capable of
carrying the required information may be used.
10.2.1 EAP
When EAP is the tunneled authentication protocol, each tunneled EAP
packet between the client and TTLS server is encapsulated in an EAP-
Message AVP, prior to tunneling via the TLS record layer.
The client's first tunneled EAP packet within phase 2 will contain
the EAP-Response/Identity. The client places the actual username in
this packet; the privacy of the user's identity is now guaranteed by
the TLS encryption. This username must be a Network Access
Identifier (NAI) [7]; that is, it must be in the following format:
username@realm
The @realm portion is optional, and is used to allow the TTLS server
to forward the EAP packet to the appropriate AAA/H.
Note that the client has two opportunities to specify realms. The
first, in the initial EAP-Response/Identity packet, indicates the
realm of the TTLS server. The second, in the tunneled
authentication, indicates the realm of the client's home network.
Thus, the access point need only know how to route to the realm of
the TTLS server; the TTLS server is assumed to know how to route to
the client's home realm. This serial routing architecture is
anticipated to be useful in roaming environments, allowing access
points or AAA proxies behind access points to be configured only
with a small number of realms.
Upon receipt of the tunneled EAP-Response/Identity, the TTLS server
forwards it to the AAA/H in a RADIUS Access-Request.
The AAA/H may immediately respond with an Access-Reject, in which
case the TTLS server completes the negotiation by sending an EAP-
Failure to the access point. This could occur if the AAA/H does not
recognize the user's identity, or if it does not support EAP.
If the AAA/H does recognize the user's identity and does support
EAP, it responds with an Access-Challenge containing an EAP-Request,
with the Type and Type-Data fields set according to the EAP protocol
with which the AAA/H wishes to authenticate the client; for example
MD-Challenge, OTP or Generic Token Card.
The EAP authentication between client and AAA/H proceeds normally,
as described in [2], with the TTLS server acting as a passthrough
device. Each EAP-Request sent by the AAA/H in an Access-Challenge is
tunneled by the TTLS server to the client, and each EAP-Response
Paul Funk expires January 2005 [Page 22]
Internet-Draft April 2004
tunneled by the client is decrypted and forwarded by the TTLS server
to the AAA/H in an Access-Request.
This process continues until the AAA/H issues an Access-Accept or
Access-Reject, at which point the TTLS server completes the
negotiation by sending an EAP-Success or EAP-Failure to the access
point using the AAA carrier protocol.
10.2.2 CHAP
The CHAP algorithm is described in [5]; RADIUS attribute formats are
described in [6].
Both client and TTLS server generate 17 octets of challenge
material, using the constant string "ttls challenge" as described
above. These octets are used as follows:
CHAP-Challenge [16 octets]
CHAP Identifier [1 octet]
The client tunnels User-Name, CHAP-Challenge and CHAP-Password AVPs
to the TTLS server. The CHAP-Challenge value is taken from the
challenge material. The CHAP-Password consists of CHAP Identifier,
taken from the challenge material; and CHAP response, computed
according to the CHAP algorithm.
Upon receipt of these AVPs from the client, the TTLS server must
verify that the value of the CHAP-Challenge AVP and the value of the
CHAP Identifier in the CHAP-Password AVP are equal to the values
generated as challenge material. If either item does not match
exactly, the TTLS server must reject the client. Otherwise, it
forwards the AVPs to the AAA/H in an Access-Request.
The AAA/H will respond with an Access-Accept or Access-Reject. The
TTLS server will then issue an EAP-Success or EAP-Failure to the
access point.
10.2.3 MS-CHAP
The MS-CHAP algorithm is described in [10]; RADIUS attribute formats
are described in [12].
Both client and TTLS server generate 9 octets of challenge material,
using the constant string "ttls challenge" as described above. These
octets are used as follows:
MS-CHAP-Challenge [8 octets]
Ident [1 octet]
The client tunnels User-Name, MS-CHAP-Challenge and MS-CHAP-Response
AVPs to the TTLS server. The MS-CHAP-Challenge value is taken from
Paul Funk expires January 2005 [Page 23]
Internet-Draft April 2004
the challenge material. The MS-CHAP-Response consists of Ident,
taken from the challenge material; Flags, set according the client
preferences; and LM-Response and NT-Response, computed according to
the MS-CHAP algorithm.
Upon receipt of these AVPs from the client, the TTLS server must
verify that the value of the MS-CHAP-Challenge AVP and the value of
the Ident in the client's MS-CHAP-Response AVP are equal to the
values generated as challenge material. If either item does not
match exactly, the TTLS server must reject the client. Otherwise, it
forwards the AVPs to the AAA/H in an Access-Request.
The AAA/H will respond with an Access-Accept or Access-Reject. The
TTLS server will then issue an EAP-Success or EAP-Failure to the
access point.
10.2.4 MS-CHAP-V2
The MS-CHAP-V2 algorithm is described in [11]; RADIUS attribute
formats are described in [12].
Both client and TTLS server generate 17 octets of challenge
material, using the constant string "ttls challenge" as described
above. These octets are used as follows:
MS-CHAP-Challenge [16 octets]
Ident [1 octet]
The client tunnels User-Name, MS-CHAP-Challenge and MS-CHAP2-
Response AVPs to the TTLS server. The MS-CHAP-Challenge value is
taken from the challenge material. The MS-CHAP2-Response consists of
Ident, taken from the challenge material; Flags, set to 0; Peer-
Challenge, set to a random value; and Response, computed according
to the MS-CHAP-V2 algorithm.
Upon receipt of these AVPs from the client, the TTLS server must
verify that the value of the MS-CHAP-Challenge AVP and the value of
the Ident in the client's MS-CHAP2-Response AVP are equal to the
values generated as challenge material. If either item does not
match exactly, the TTLS server must reject the client. Otherwise, it
forwards the AVPs to the AAA/H in an Access-Request.
If the authentication is successful, the AAA/H will respond with an
Access-Accept containing the MS-CHAP2-Success attribute. This
attribute contains a 42-octet string that authenticates the AAA/H to
the client based on the Peer-Challenge. The TTLS server tunnels this
AVP to the client. Note that the authentication is not yet complete;
the client must still accept the authentication response of the
AAA/H.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?